{"version":3,"sources":["webpack:///./node_modules/tslib/tslib.es6.js","webpack:///./app/javascript/utils/ordinal.js","webpack:///./app/javascript/packs/localisation.ts","webpack:///./node_modules/commons-validator-js/dist/DomainValidator.js","webpack:///./node_modules/commons-validator-js/dist/index.js","webpack:///./app/javascript/constants/SupportColours.js","webpack:///./node_modules/date-fns/esm/_lib/format/lightFormatters/index.js","webpack:///./node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js","webpack:///./node_modules/date-fns/esm/_lib/format/formatters/index.js","webpack:///./node_modules/date-fns/esm/format/index.js","webpack:///./node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","webpack:///./node_modules/libphonenumber-js/es6/parsePhoneNumberFromString_.js","webpack:///./node_modules/libphonenumber-js/es6/isValidPhoneNumber.js","webpack:///./node_modules/libphonenumber-js/mobile/exports/isValidPhoneNumber.js","webpack:///./node_modules/downshift/node_modules/react-is/cjs/react-is.production.min.js","webpack:///./node_modules/downshift/node_modules/prop-types/factoryWithThrowingShims.js","webpack:///./node_modules/downshift/node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack:///./node_modules/react-loading-skeleton/dist/index.mjs","webpack:///./node_modules/@apollo/client/react/hooks/useMutation.js","webpack:///./node_modules/date-fns/esm/locale/en-GB/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/esm/locale/en-GB/index.js","webpack:///./node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","webpack:///./node_modules/@apollo/client/react/context/ApolloProvider.js","webpack:///./app/javascript/components/apollo/withApollo.tsx","webpack:///./app/javascript/components/shared/elements/Text/Text.module.sass","webpack:///./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack:///./node_modules/date-fns/esm/_lib/requiredArgs/index.js","webpack:///./app/javascript/services/segment.ts","webpack:///./app/javascript/components/shared/elements/BreedSelector/BreedSelector.tsx","webpack:///./node_modules/commons-validator-js/dist/Domains.js","webpack:///./node_modules/lodash.includes/index.js","webpack:///./node_modules/node-libs-browser/node_modules/punycode/punycode.js","webpack:///./node_modules/commons-validator-js/dist/EmailValidator.js","webpack:///./node_modules/@apollo/client/react/parser/index.js","webpack:///./node_modules/react-i18next/node_modules/@babel/runtime/helpers/toPropertyKey.js","webpack:///./node_modules/react-i18next/node_modules/@babel/runtime/helpers/typeof.js","webpack:///./app/javascript/utils/sentry.ts","webpack:///./node_modules/react-i18next/node_modules/@babel/runtime/helpers/classCallCheck.js","webpack:///./node_modules/react-i18next/node_modules/@babel/runtime/helpers/createClass.js","webpack:///./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack:///./app/javascript/components/shared/elements/Image/Image.tsx","webpack:///./app/javascript/components/shared/elements/BlogExitDiscountModal/components/DiscountModalForm.tsx","webpack:///./app/javascript/components/shared/elements/BlogExitDiscountModal/components/mutations/PreWizardGuestIterableUpsertMutation.ts","webpack:///./app/javascript/components/shared/elements/BlogExitDiscountModal/components/CopyInputButton.tsx","webpack:///./node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","webpack:///./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack:///./node_modules/@babel/runtime/helpers/esm/objectSpread.js","webpack:///./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack:///./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack:///./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack:///./node_modules/@babel/runtime/helpers/esm/inherits.js","webpack:///./node_modules/i18next/dist/esm/i18next.js","webpack:///./node_modules/graphql/jsutils/inspect.mjs","webpack:///./node_modules/@apollo/client/utilities/globals/global.js","webpack:///./node_modules/date-fns/esm/addMilliseconds/index.js","webpack:///./node_modules/graphql/jsutils/nodejsCustomInspectSymbol.mjs","webpack:///./node_modules/@apollo/client/utilities/common/canUse.js","webpack:///./app/javascript/hooks/useUserInactivity.ts","webpack:///./app/javascript/components/shared/elements/BlogExitDiscountModal/BlogExitDiscountModal.tsx","webpack:///./node_modules/date-fns/esm/isDate/index.js","webpack:///./node_modules/date-fns/esm/isValid/index.js","webpack:///./node_modules/date-fns/esm/addMinutes/index.js","webpack:///./node_modules/countries-list/dist/index.es5.min.js","webpack:///./node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/esm/locale/en-US/index.js","webpack:///./node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","webpack:///./node_modules/react-i18next/node_modules/@babel/runtime/helpers/slicedToArray.js","webpack:///./node_modules/@apollo/client/node_modules/zen-observable-ts/module.js","webpack:///./node_modules/@apollo/client/utilities/graphql/fragments.js","webpack:///./node_modules/@apollo/client/utilities/graphql/storeUtils.js","webpack:///./node_modules/@apollo/client/utilities/graphql/getFromAST.js","webpack:///./node_modules/@apollo/client/link/core/ApolloLink.js","webpack:///./node_modules/@apollo/client/link/utils/createOperation.js","webpack:///./node_modules/@apollo/client/link/utils/transformOperation.js","webpack:///./node_modules/@apollo/client/link/utils/validateOperation.js","webpack:///./node_modules/@apollo/client/link/core/execute.js","webpack:///./node_modules/graphql/language/visitor.mjs","webpack:///./node_modules/@apollo/client/utilities/graphql/directives.js","webpack:///./node_modules/@apollo/client/link/http/serializeFetchParameter.js","webpack:///./node_modules/@apollo/client/link/http/selectURI.js","webpack:///./node_modules/@apollo/client/link/http/iterators/nodeStream.js","webpack:///./node_modules/@apollo/client/link/http/iterators/reader.js","webpack:///./node_modules/@apollo/client/link/http/responseIterator.js","webpack:///./node_modules/@apollo/client/link/http/iterators/async.js","webpack:///./node_modules/@apollo/client/utilities/common/responseIterator.js","webpack:///./node_modules/@apollo/client/link/http/iterators/promise.js","webpack:///./node_modules/@apollo/client/link/utils/throwServerError.js","webpack:///./node_modules/@apollo/client/link/http/parseAndCheckHttpResponse.js","webpack:///./node_modules/@apollo/client/link/http/checkFetcher.js","webpack:///./node_modules/graphql/language/printer.mjs","webpack:///./node_modules/@apollo/client/link/http/selectHttpOptionsAndBody.js","webpack:///./node_modules/@apollo/client/link/http/createSignalIfSupported.js","webpack:///./node_modules/@apollo/client/link/utils/fromError.js","webpack:///./node_modules/@apollo/client/link/http/createHttpLink.js","webpack:///./node_modules/@apollo/client/link/http/rewriteURIForGET.js","webpack:///./node_modules/@apollo/client/link/http/HttpLink.js","webpack:///./node_modules/@apollo/client/utilities/common/mergeDeep.js","webpack:///./node_modules/@apollo/client/cache/inmemory/helpers.js","webpack:///./node_modules/@apollo/client/cache/inmemory/object-canon.js","webpack:///./node_modules/@apollo/client/utilities/observables/asyncMap.js","webpack:///./node_modules/@apollo/client/utilities/common/errorHandling.js","webpack:///./node_modules/@apollo/client/utilities/common/filterInPlace.js","webpack:///./node_modules/@apollo/client/utilities/graphql/transform.js","webpack:///./node_modules/@apollo/client/utilities/common/makeUniqueId.js","webpack:///./node_modules/@apollo/client/utilities/observables/iteration.js","webpack:///./node_modules/@apollo/client/utilities/observables/subclassing.js","webpack:///./node_modules/@apollo/client/utilities/observables/Concast.js","webpack:///./node_modules/@apollo/client/utilities/common/cloneDeep.js","webpack:///./node_modules/@apollo/client/core/ObservableQuery.js","webpack:///./node_modules/@apollo/client/core/LocalState.js","webpack:///./node_modules/@apollo/client/core/QueryInfo.js","webpack:///./node_modules/@apollo/client/core/QueryManager.js","webpack:///./node_modules/@apollo/client/cache/inmemory/entityStore.js","webpack:///./node_modules/@apollo/client/utilities/common/incrementalResult.js","webpack:///./node_modules/@apollo/client/core/ApolloClient.js","webpack:///./node_modules/@apollo/client/version.js","webpack:///./node_modules/@apollo/client/cache/core/cache.js","webpack:///./node_modules/@apollo/client/cache/core/types/common.js","webpack:///./node_modules/@apollo/client/cache/inmemory/readFromStore.js","webpack:///./node_modules/@apollo/client/cache/inmemory/key-extractor.js","webpack:///./node_modules/@apollo/client/cache/inmemory/policies.js","webpack:///./node_modules/@apollo/client/utilities/common/stringifyForDisplay.js","webpack:///./node_modules/@apollo/client/cache/inmemory/writeToStore.js","webpack:///./node_modules/@apollo/client/cache/inmemory/inMemoryCache.js","webpack:///./node_modules/@apollo/client/link/batch/batching.js","webpack:///./node_modules/@apollo/client/link/batch/batchLink.js","webpack:///./node_modules/@apollo/client/link/batch-http/batchHttpLink.js","webpack:///./node_modules/@apollo/client/link/error/index.js","webpack:///./node_modules/@apollo/client/link/retry/retryLink.js","webpack:///./node_modules/@apollo/client/link/retry/delayFunction.js","webpack:///./node_modules/@apollo/client/link/retry/retryFunction.js","webpack:///./node_modules/@apollo/client/utilities/policies/pagination.js","webpack:///./app/javascript/components/apollo/client.ts","webpack:///./node_modules/date-fns/esm/subMilliseconds/index.js","webpack:///./node_modules/date-fns/esm/_lib/format/longFormatters/index.js","webpack:///./node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js","webpack:///./node_modules/date-fns/esm/_lib/getUTCWeek/index.js","webpack:///./node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js","webpack:///./node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js","webpack:///./app/javascript/components/shared/elements/Button/Button.module.sass","webpack:///./node_modules/date-fns/esm/_lib/addLeadingZeros/index.js","webpack:///./node_modules/@babel/runtime/helpers/typeof.js","webpack:///./node_modules/i18next-pseudo/es/utils.js","webpack:///./node_modules/i18next-pseudo/es/index.js","webpack:///./node_modules/@apollo/client/react/hooks/useApolloClient.js","webpack:///./node_modules/date-fns/esm/toDate/index.js","webpack:///./app/javascript/types/index.ts","webpack:///./node_modules/graphql/language/blockString.mjs","webpack:///./node_modules/graphql/polyfills/symbols.mjs","webpack:///./node_modules/libphonenumber-js/es6/helpers/matchesEntirely.js","webpack:///./node_modules/@apollo/client/node_modules/ts-invariant/lib/invariant.js","webpack:///./node_modules/@apollo/client/utilities/globals/DEV.js","webpack:///./node_modules/@apollo/client/utilities/globals/fix-graphql.js","webpack:///./node_modules/@apollo/client/utilities/globals/index.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars.js","webpack:///./app/javascript/hooks/useBoolean/useBoolean.ts","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/react-i18next/node_modules/@babel/runtime/helpers/toPrimitive.js","webpack:///./node_modules/graphql/language/kinds.mjs","webpack:///./node_modules/react-motion/lib/stripStyle.js","webpack:///./node_modules/@apollo/client/node_modules/@wry/context/lib/context.esm.js","webpack:///./node_modules/dom-parse/lib/browser.esm.js","webpack:///./node_modules/css-to-style/lib/index.esm.js","webpack:///./node_modules/react-render-markup/lib/index.esm.js","webpack:///./app/assets/images/icons/checkmarks/grey-checkmark.svg","webpack:///./app/javascript/components/shared/TransitionalModal.js","webpack:///./node_modules/date-fns/esm/_lib/toInteger/index.js","webpack:///./node_modules/@apollo/client/node_modules/ts-invariant/process/index.js","webpack:///./node_modules/@apollo/client/react/context/ApolloContext.js","webpack:///./node_modules/graphql/jsutils/devAssert.mjs","webpack:///./node_modules/graphql/jsutils/instanceOf.mjs","webpack:///./node_modules/graphql/language/source.mjs","webpack:///./app/javascript/components/pages/CheckoutPage/helpers/inputs.ts","webpack:///./app/javascript/components/shared/elements/Text/Text.tsx","webpack:///./node_modules/react-i18next/node_modules/@babel/runtime/helpers/arrayWithHoles.js","webpack:///./node_modules/react-i18next/node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","webpack:///./node_modules/react-i18next/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","webpack:///./node_modules/react-i18next/node_modules/@babel/runtime/helpers/arrayLikeToArray.js","webpack:///./node_modules/react-i18next/node_modules/@babel/runtime/helpers/nonIterableRest.js","webpack:///./node_modules/js-cookie/src/js.cookie.js","webpack:///./app/javascript/components/shared/elements/RoughCostCalculator/components/DogDetailsForm.tsx","webpack:///./app/javascript/utils/validator.ts","webpack:///./node_modules/handlebars/dist/cjs/handlebars/base.js","webpack:///./app/javascript/components/cookie_consent/index.tsx","webpack:///./app/javascript/utils/isEqual.ts","webpack:///./node_modules/date-fns/esm/differenceInMilliseconds/index.js","webpack:///./node_modules/date-fns/esm/_lib/roundingMethods/index.js","webpack:///./node_modules/date-fns/esm/locale/pl/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/esm/locale/pl/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/esm/locale/pl/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/esm/_lib/isSameUTCWeek/index.js","webpack:///./node_modules/date-fns/esm/locale/pl/_lib/localize/index.js","webpack:///./node_modules/date-fns/esm/locale/pl/index.js","webpack:///./node_modules/date-fns/esm/locale/pl/_lib/match/index.js","webpack:///./node_modules/date-fns/esm/locale/nl/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/esm/locale/nl/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/esm/locale/nl/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/esm/locale/nl/_lib/localize/index.js","webpack:///./node_modules/date-fns/esm/locale/nl/index.js","webpack:///./node_modules/date-fns/esm/locale/nl/_lib/match/index.js","webpack:///./node_modules/date-fns/esm/locale/nl-BE/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/esm/locale/nl-BE/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/esm/locale/nl-BE/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/esm/locale/nl-BE/_lib/localize/index.js","webpack:///./node_modules/date-fns/esm/locale/nl-BE/index.js","webpack:///./node_modules/date-fns/esm/locale/nl-BE/_lib/match/index.js","webpack:///./node_modules/date-fns/esm/locale/de/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/esm/locale/de/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/esm/locale/de/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/esm/locale/de/_lib/localize/index.js","webpack:///./node_modules/date-fns/esm/locale/de/index.js","webpack:///./node_modules/date-fns/esm/locale/de/_lib/match/index.js","webpack:///./node_modules/react-i18next/dist/es/utils.js","webpack:///./node_modules/react-i18next/dist/es/useTranslation.js","webpack:///./node_modules/react-motion/lib/mapToZero.js","webpack:///./node_modules/react-motion/lib/stepper.js","webpack:///./node_modules/react-motion/node_modules/performance-now/lib/performance-now.js","webpack:///./node_modules/raf/index.js","webpack:///./node_modules/react-motion/lib/shouldStopAnimation.js","webpack:///./app/javascript/components/theme/breakpoints.sass","webpack:///./node_modules/libphonenumber-js/mobile/exports/parsePhoneNumberWithError.js","webpack:///./app/javascript/components/shared/CookieConsent/CookieConsentBanner.tsx","webpack:///./node_modules/libphonenumber-js/es6/AsYouTypeState.js","webpack:///./node_modules/libphonenumber-js/es6/AsYouTypeFormatter.util.js","webpack:///./node_modules/libphonenumber-js/es6/AsYouTypeFormatter.complete.js","webpack:///./node_modules/libphonenumber-js/es6/AsYouTypeFormatter.js","webpack:///./node_modules/libphonenumber-js/es6/AsYouTypeParser.js","webpack:///./node_modules/libphonenumber-js/es6/AsYouType.js","webpack:///./node_modules/libphonenumber-js/mobile/exports/AsYouType.js","webpack:///./app/javascript/components/shared/CookieConsent/Modals/ManageModal.tsx","webpack:///./app/javascript/components/shared/CookieConsent/helpers.ts","webpack:///./app/javascript/components/shared/CookieConsent/Modals/StrictModal.tsx","webpack:///./app/javascript/components/cookie_consent/scroll.ts","webpack:///./node_modules/react-motion/lib/react-motion.js","webpack:///./node_modules/downshift/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack:///./node_modules/downshift/node_modules/@babel/runtime/helpers/esm/extends.js","webpack:///./node_modules/compute-scroll-into-view/dist/index.js","webpack:///./node_modules/downshift/node_modules/tslib/tslib.es6.js","webpack:///./node_modules/downshift/dist/downshift.esm.js","webpack:///./app/assets/images/icons/crosses/close-icon--white.svg","webpack:///./node_modules/date-fns/esm/locale/fr/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/esm/locale/fr/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/esm/locale/fr/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/esm/locale/fr/_lib/localize/index.js","webpack:///./node_modules/date-fns/esm/locale/fr/index.js","webpack:///./node_modules/date-fns/esm/locale/fr/_lib/match/index.js","webpack:///./app/javascript/components/shared/elements/Button/Button.tsx","webpack:///./node_modules/@apollo/client/core/networkStatus.js","webpack:///./app/javascript/utils/debounce.ts","webpack:///./app/javascript/components/shared/elements/BreedSelector/components/BreedAutocomplete/BreedAutocomplete.tsx","webpack:///./node_modules/prop-types/factoryWithThrowingShims.js","webpack:///./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack:///./node_modules/@wry/equality/lib/equality.esm.js","webpack:///./node_modules/libphonenumber-js/es6/ParseError.js","webpack:///./node_modules/@apollo/client/utilities/common/compact.js","webpack:///./node_modules/@apollo/client/utilities/common/arrays.js","webpack:///(webpack)/buildin/module.js","webpack:///./app/javascript/components/analytics/Analytics.js","webpack:///./node_modules/date-fns/esm/locale/cs/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/esm/locale/cs/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/esm/locale/cs/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/esm/locale/cs/_lib/localize/index.js","webpack:///./node_modules/date-fns/esm/locale/cs/index.js","webpack:///./node_modules/date-fns/esm/locale/cs/_lib/match/index.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/helpers.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/logger.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/internal/proto-access.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/no-conflict.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/compiler/ast.js","webpack:///./app/javascript/constants/Breakpoints.ts","webpack:///./node_modules/handlebars/dist/cjs/handlebars/compiler/visitor.js","webpack:///./node_modules/intersection-observer/intersection-observer.js","webpack:///./node_modules/react-display-name/lib/getDisplayName.js","webpack:///./app/javascript/components/shared/elements/BreedSelector/components/BreedCard/BreedCard.tsx","webpack:///./app/javascript/utils/StringHelper.js","webpack:///./node_modules/react-motion/lib/presets.js","webpack:///./node_modules/graphql/jsutils/defineInspect.mjs","webpack:///./node_modules/graphql/jsutils/invariant.mjs","webpack:///./node_modules/graphql/language/ast.mjs","webpack:///./app/assets/images/icons/crosses/close.svg","webpack:///./node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","webpack:///./app/javascript/utils/countryCodeHelper.ts","webpack:///./app/javascript/components/elements/atoms/Text/Text.tsx","webpack:///./app/javascript/packs/blog.tsx","webpack:///./node_modules/@apollo/client/react/hooks/useReactiveVar.js","webpack:///./app/javascript/utils/currency.js","webpack:///./node_modules/libphonenumber-js/es6/helpers/checkNumberLength.js","webpack:///./node_modules/libphonenumber-js/es6/helpers/mergeArrays.js","webpack:///./app/javascript/components/pages/PlansPage/types/routes.ts","webpack:///./app/javascript/utils/formatter.js","webpack:///./app/javascript/hooks/useWindowSize.js","webpack:///./node_modules/@apollo/client/utilities/common/mergeOptions.js","webpack:///./node_modules/graphql/jsutils/isObjectLike.mjs","webpack:///./node_modules/graphql/language/location.mjs","webpack:///./node_modules/graphql/language/printLocation.mjs","webpack:///./node_modules/graphql/error/GraphQLError.mjs","webpack:///./node_modules/graphql/error/syntaxError.mjs","webpack:///./node_modules/graphql/language/tokenKind.mjs","webpack:///./node_modules/graphql/language/directiveLocation.mjs","webpack:///./node_modules/graphql/language/lexer.mjs","webpack:///./node_modules/graphql/language/parser.mjs","webpack:///./node_modules/graphql-tag/lib/index.js","webpack:///./app/javascript/components/apollo/types-with-ids.ts","webpack:///./node_modules/@apollo/client/cache/inmemory/reactiveVars.js","webpack:///./node_modules/libphonenumber-js/es6/helpers/getNumberType.js","webpack:///./node_modules/prop-types/index.js","webpack:///./node_modules/libphonenumber-js/es6/helpers/parseDigits.js","webpack:///./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack:///./app/javascript/components/pages/CheckoutPage/components/Validation/Validation.tsx","webpack:///./node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars.runtime.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/helpers/block-helper-missing.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/helpers/each.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/helpers/helper-missing.js","webpack:///./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/helpers/if.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/helpers/log.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/helpers/lookup.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/helpers/with.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/decorators.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/decorators/inline.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/internal/create-new-lookup-object.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/safe-string.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/runtime.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/internal/wrapHelper.js","webpack:///./node_modules/downshift/node_modules/prop-types/index.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/compiler/base.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/compiler/parser.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/compiler/whitespace-control.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/compiler/helpers.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/compiler/compiler.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/compiler/javascript-compiler.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/compiler/code-gen.js","webpack:///./app/assets/images/icons/checkmarks/green-checkmark.svg","webpack:///./app/javascript/components/pages/CheckoutPage/components/InputField/InputField.tsx","webpack:///./node_modules/libphonenumber-js/es6/helpers/extractNationalNumber.js","webpack:///./app/javascript/utils/onboardingQuiz/setRecommendationCompletion.ts","webpack:///./app/javascript/helpers/ReferralLinkShareHelper.ts","webpack:///./app/javascript/typescript/utils.ts","webpack:///./app/javascript/constants/PopularBreeds.ts","webpack:///./app/assets/images/icons/crosses/red-cross.svg","webpack:///./node_modules/classnames/index.js","webpack:///./node_modules/react-motion/lib/Motion.js","webpack:///./node_modules/performance-now/lib/performance-now.js","webpack:///./node_modules/react-motion/lib/StaggeredMotion.js","webpack:///./node_modules/react-motion/lib/TransitionMotion.js","webpack:///./node_modules/react-motion/lib/mergeDiff.js","webpack:///./node_modules/react-motion/lib/spring.js","webpack:///./node_modules/react-motion/lib/reorderKeys.js","webpack:///./app/javascript/components/shared/elements/Select/Select.tsx","webpack:///./app/javascript/components/shared/CookieConsent/types.ts","webpack:///./app/javascript/components/shared/CookieConsent/CookieConsent.tsx","webpack:///./node_modules/libphonenumber-js/es6/helpers/stripIddPrefix.js","webpack:///./node_modules/libphonenumber-js/es6/helpers/extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js","webpack:///./app/javascript/components/shared/elements/Button/ButtonSkeleton.tsx","webpack:///./node_modules/libphonenumber-js/es6/isPossibleNumber_.js","webpack:///./node_modules/libphonenumber-js/es6/helpers/RFC3966.js","webpack:///./node_modules/libphonenumber-js/es6/helpers/isViablePhoneNumber.js","webpack:///./node_modules/libphonenumber-js/es6/helpers/extension/createExtensionPattern.js","webpack:///./node_modules/libphonenumber-js/es6/helpers/formatNationalNumberUsingFormat.js","webpack:///./app/javascript/static_content/EstimatedDailyPlanPrices.ts","webpack:///./node_modules/libphonenumber-js/es6/helpers/extension/extractExtension.js","webpack:///./node_modules/libphonenumber-js/es6/parseIncompletePhoneNumber.js","webpack:///./node_modules/libphonenumber-js/es6/parse_.js","webpack:///./node_modules/libphonenumber-js/es6/parsePhoneNumber_.js","webpack:///./node_modules/libphonenumber-js/metadata.mobile.json.js","webpack:///./node_modules/libphonenumber-js/mobile/metadata.js","webpack:///./app/javascript/components/shared/elements/RoughCostCalculator/components/Plan.tsx","webpack:///./node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js","webpack:///./node_modules/downshift/node_modules/react-is/index.js","webpack:///./app/javascript/constants/BrandColours.js","webpack:///./app/javascript/components/shared/elements/BreedSelector/components/BreedQuestionaire/index.tsx","webpack:///./app/javascript/components/pages/CheckoutPage/components/InputField/PasswordInputField.tsx","webpack:///./node_modules/@wry/trie/lib/trie.esm.js","webpack:///./node_modules/date-fns/esm/differenceInSeconds/index.js","webpack:///./app/javascript/utils/times.ts","webpack:///./node_modules/handlebars/dist/cjs/handlebars/utils.js","webpack:///./node_modules/libphonenumber-js/es6/helpers/extractNationalNumberFromPossiblyIncompleteNumber.js","webpack:///./app/javascript/static_content/dropdownOptions.ts","webpack:///./app/javascript/components/shared/elements/RoughCostCalculator/components/AgeSelect.tsx","webpack:///./app/javascript/utils/uniqBy.ts","webpack:///./app/javascript/components/shared/elements/RoughCostCalculator/components/WeightSelect.tsx","webpack:///./node_modules/@wry/context/lib/context.esm.js","webpack:///./node_modules/optimism/lib/bundle.esm.js","webpack:///./app/javascript/components/shared/elements/BreedSelector/queries/homeBreedSelectorQuery.ts","webpack:///./app/javascript/components/shared/elements/BreedSelector/components/BreedQuestionaire/BreedQuestionnaire.tsx","webpack:///./app/javascript/components/shared/elements/BreedSelector/components/ExpandableIconButton/ExpandableIconButton.tsx","webpack:///./app/javascript/utils/wizardCtaLink.ts","webpack:///./app/javascript/components/shared/elements/RoughCostCalculator/components/CTA.tsx","webpack:///./node_modules/@apollo/client/errors/index.js","webpack:///./node_modules/@apollo/client/react/hooks/useSyncExternalStore.js","webpack:///./node_modules/@apollo/client/react/hooks/useQuery.js","webpack:///./node_modules/libphonenumber-js/es6/helpers/applyInternationalSeparatorStyle.js","webpack:///./node_modules/libphonenumber-js/es6/helpers/extractCountryCallingCode.js","webpack:///./node_modules/libphonenumber-js/es6/helpers/getCountryByCallingCode.js","webpack:///./node_modules/@apollo/client/utilities/globals/maybe.js","webpack:///./node_modules/libphonenumber-js/es6/helpers/getIddPrefix.js","webpack:///./node_modules/libphonenumber-js/es6/format_.js","webpack:///./node_modules/libphonenumber-js/es6/PhoneNumber.js","webpack:///./node_modules/libphonenumber-js/es6/validate_.js","webpack:///./node_modules/@apollo/client/utilities/common/objects.js","webpack:///./node_modules/react-i18next/dist/es/unescape.js","webpack:///./node_modules/react-i18next/dist/es/context.js","webpack:///./app/javascript/components/shared/elements/Image/index.ts","webpack:///./node_modules/date-fns/esm/_lib/protectedTokens/index.js","webpack:///./app/assets/images/icons/paws/paw-yellow-alt.svg","webpack:///./app/assets/images/icons/arrows/arrow--white.svg","webpack:///./node_modules/handlebars/dist/cjs/handlebars/exception.js","webpack:///./app/javascript/components/elements/atoms/TrustpilotWidget/TrustpilotWidget.tsx","webpack:///./node_modules/@apollo/client/react/hooks/useLazyQuery.js","webpack:///./app/javascript/components/shared/CookieConsent/Modals/CookieConsentModal.tsx","webpack:///./app/javascript/components/pages/SignupWizardPage/types/routes.ts","webpack:///./app/javascript/components/elements/atoms/Text/Text.module.sass","webpack:///./node_modules/react-i18next/node_modules/@babel/runtime/helpers/defineProperty.js","webpack:///./app/javascript/services/apollo.ts","webpack:///./node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","webpack:///./app/javascript/components/shared/elements/RoughCostCalculator/components/BreedSelect.tsx","webpack:///./app/javascript/components/shared/elements/RoughCostCalculator/helpers/roughCostCalculatorHelpers.ts","webpack:///./node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","webpack:///./node_modules/libphonenumber-js/es6/parsePhoneNumber.js","webpack:///./node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","webpack:///./node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js","webpack:///./node_modules/libphonenumber-js/es6/constants.js","webpack:///./node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js","webpack:///./node_modules/@apollo/client/utilities/common/maybeDeepFreeze.js","webpack:///./node_modules/libphonenumber-js/es6/tools/semver-compare.js","webpack:///./node_modules/libphonenumber-js/es6/metadata.js"],"names":["_extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__extends","TypeError","String","__","this","constructor","create","_assign","assign","t","s","i","n","arguments","length","apply","__rest","e","indexOf","getOwnPropertySymbols","propertyIsEnumerable","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","rejected","result","done","then","__generator","body","f","y","g","_","label","sent","trys","ops","verb","Symbol","iterator","v","op","pop","push","__spreadArray","to","from","pack","ar","l","slice","concat","ordinality","lng","Error","supportedLanguages","resources","en","app","ENData","dynamic","surveys","learn_more_about_butternut","shared","frequently_asked_questions","reviews","account","homepage","home_page","contacts","our_products","our_story","making_our_meals","wizard_flow","self_resolution_flow","customer_issue_management_flow","plans_flow","simplified_plans_flow","ds_app_pay_on_signup_flow","checkout","thank_you","models","product_categories","post_signup_wizard","dashboard","shipping_countries","calories_covered","text_field","footer","navigation","unavailable_dates_card","expert","paid_traffic_breeds","paid_traffic","breed_autocomplete","one_time_purchase_footer","order_summary","languages","localisation_modal","plan_management","onboarding_quiz","product_modal","gql_errors","archive_reasons","care","orders","order","butternut_app","atoms","molecules","organisms","one_off_box_page","swap_and_save","limited_offer_paused_page","treatments_paused_page","ribbon","blog","ambassadors","modals","nl","NLData","NLBeData","nl_BE","pl","PLData","invoices","PLPLData","pl_PL","fr","FRData","CSCZData","cs_CZ","DEDEData","de_DE","namespaceToPath","ns","dateLocale","locale","enGB","nlBE","de","ensureNever","development","process","phraseBackendEnabled","Cookies","get","remove","pseudolocaliseCookie","convertLanguageToKebabCase","fallbackLanguage","initI18n","pseudolocalise","phraseEnabled","i18n","isInitialized","on","document","dispatchEvent","CustomEvent","detail","use","Pseudo","enabled","languageToPseudo","letterMultiplier","initReactI18next","init","defaultNS","react","hashTransKey","fallbackLng","debug","saveMissing","supportedLngs","missingKeyHandler","lngs","key","Sentry","map","join","interpolation","format","toUpperCase","StringHelper","formatDate","escapeValue","postProcess","load","global","namespace","includes","fullKey","split","context","defineProperty","exports","DomainValidator","undefined","obj","_createClass","defineProperties","target","props","descriptor","enumerable","configurable","writable","Constructor","protoProps","staticProps","Domains","_interopRequireWildcard","_lodash","_lodash2","__esModule","default","punycode","newObj","_classCallCheck","instance","_ref","allowLocal","domainLabelRegex","topLabelRegex","domainNameRegex","_domainRegex","RegExp","str","substring","input","toASCII","sortedArray","ccTld","_chompLeadingDot","_unicodeToASCII","toLowerCase","_arrayContains","countryCodeTlds","gTld","genericTlds","iTld","infrastructureTlds","tld","isValidInfrastructureTld","isValidGenericTld","isValidCountryCodeTld","domain","groups","match","isValidTld","EmailValidator","_DomainValidator","_EmailValidator","SUPPORT_COLOURS","supportBlue100","supportBlue200","supportBlue300","supportBlue400","supportBlue500","successGreen100","successGreen200","successGreen300","successGreen400","successGreen500","dangerRed100","dangerRed200","dangerRed300","dangerRed400","dangerRed500","warningOrange100","warningOrange200","warningOrange300","warningOrange400","warningOrange500","grey100","grey200","grey300","grey400","grey500","grey600","shadowYellow","date","token","signedYear","getUTCFullYear","year","addLeadingZeros","M","month","getUTCMonth","getUTCDate","a","dayPeriodEnumValue","getUTCHours","h","H","m","getUTCMinutes","getUTCSeconds","S","numberOfDigits","milliseconds","getUTCMilliseconds","fractionalSeconds","Math","floor","pow","MILLISECONDS_IN_DAY","dayPeriodEnum","G","localize","era","width","ordinalNumber","unit","lightFormatters","Y","options","signedWeekYear","getUTCWeekYear","weekYear","twoDigitYear","R","isoWeekYear","getUTCISOWeekYear","u","Q","quarter","ceil","q","L","w","week","getUTCWeek","I","isoWeek","getUTCISOWeek","D","dayOfYear","dirtyDate","requiredArgs","toDate","timestamp","getTime","setUTCMonth","setUTCHours","startOfYearTimestamp","difference","getUTCDayOfYear","E","dayOfWeek","getUTCDay","day","localDayOfWeek","weekStartsOn","c","isoDayOfWeek","dayPeriod","hours","B","K","k","X","_localize","timezoneOffset","_originalDate","getTimezoneOffset","formatTimezoneWithOptionalMinutes","formatTimezone","x","O","formatTimezoneShort","z","originalDate","T","offset","dirtyDelimiter","sign","absOffset","abs","minutes","delimiter","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","dirtyFormatStr","dirtyOptions","formatStr","localeFirstWeekContainsDate","firstWeekContainsDate","defaultFirstWeekContainsDate","toInteger","RangeError","localeWeekStartsOn","defaultWeekStartsOn","formatLong","isValid","getTimezoneOffsetInMilliseconds","utcDate","subMilliseconds","formatterOptions","firstCharacter","longFormatter","longFormatters","cleanEscapedString","formatter","useAdditionalWeekYearTokens","useAdditionalDayOfYearTokens","replace","buildLocalizeFn","args","dirtyIndex","valuesArray","formattingValues","defaultWidth","defaultFormattingWidth","_defaultWidth","_width","values","argumentCallback","_defineProperty","parsePhoneNumberFromString","text","metadata","defaultCountry","source","ownKeys","keys","filter","sym","getOwnPropertyDescriptor","forEach","_objectSpread","error","ParseError","isValidPhoneNumber","_normalizeArguments","phoneNumber","extract","for","r","$$typeof","type","ContextConsumer","ContextProvider","Element","ForwardRef","Fragment","Lazy","Memo","Portal","Profiler","StrictMode","Suspense","SuspenseList","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isMemo","isPortal","isProfiler","isStrictMode","isSuspense","isSuspenseList","isValidElementType","getModuleId","typeOf","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","module","shim","propName","componentName","location","propFullName","secret","err","name","getShim","isRequired","ReactPropTypes","array","bigint","bool","func","number","object","string","symbol","any","arrayOf","element","elementType","instanceOf","node","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","_excluded","_excluded2","enumerableOnly","symbols","getOwnPropertyDescriptors","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","SkeletonThemeContext","createContext","SkeletonTheme","children","styleOptions","createElement","Provider","defaultEnableAnimation","Skeleton","_ref3","_a","_b","count","wrapper","Wrapper","className","customClassName","containerClassName","containerTestId","circle","style","styleProp","propsStyleOptions","useContext","_ref2","baseColor","highlightColor","height","borderRadius","direction","duration","enableAnimation","styleOptionsToCssProperties","inline","elements","skeletonSpan","el","useMutation","mutation","client","Mutation","called","loading","setResult","ref","mutationId","isMounted","current","execute","executeOptions","baseOptions","ignoreResults","data","clientOptions","mutate","response","_c","errors","graphQLErrors","result_1","onCompleted","catch","_d","result_2","onError","reset","buildFormatLongFn","formats","full","long","medium","short","time","dateTime","code","formatDistance","formatRelative","buildMatchFn","matchPattern","matchPatterns","defaultMatchWidth","matchResult","matchedString","parsePatterns","defaultParseWidth","isArray","findIndex","pattern","test","findKey","valueCallback","rest","predicate","ApolloContext","Consumer","__DEV__","withApollo","WrappedComponent","_setPrototypeOf","o","required","trackEvent","eventName","properties","defaultProperties","screen_identifier","window","pathname","dynamicDefaultTrackEventPropertiesVar","analytics","track","BreedSelectorVariant","BreedSelector","scrollToOnFocus","isPreWizardGuest","ctaDestination","variant","Generic","screenIdentifier","useTranslation","selectedBreed","setSelectedBreed","useState","breedSelectorRef","useRef","onOpenCallback","useCallback","linkCTADestination","component_identifier","breed","segmentTrack","href","onFocusCallback","topOffset","getBoundingClientRect","top","pageYOffset","setTimeout","scrollTo","behavior","onBreedSelection","matchingPopularBreed","popularBreeds","set","JSON","stringify","id","parseInt","isPopular","Homepage","onClickCTA","events","onListOpen","onFocus","onInputEmpty","loadingPlaceholder","placeholder","embeddedCTA","INFINITY","MAX_SAFE_INTEGER","MAX_INTEGER","NAN","argsTag","funcTag","genTag","stringTag","symbolTag","reTrim","reIsBadHex","reIsBinary","reIsOctal","reIsUint","freeParseInt","baseIsNaN","baseValues","iteratee","index","arrayMap","transform","objectProto","objectToString","toString","nativeKeys","arg","nativeMax","max","arrayLikeKeys","inherited","isObjectLike","isArrayLike","isArrayLikeObject","isArguments","baseTimes","skipIndexes","isIndex","baseKeys","Ctor","proto","isLength","tag","isObject","isFunction","collection","fromIndex","guard","isSymbol","other","valueOf","isBinary","toNumber","toFinite","remainder","isString","fromRight","baseFindIndex","baseIndexOf","root","nodeType","freeGlobal","self","maxInt","base","regexPunycode","regexNonASCII","regexSeparators","stringFromCharCode","fromCharCode","fn","mapDomain","parts","ucs2decode","extra","output","counter","charCodeAt","ucs2encode","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","baseMinusTMin","decode","out","basic","j","oldi","baseMinusT","codePoint","inputLength","bias","lastIndexOf","splice","encode","handledCPCount","basicLength","currentValue","handledCPCountPlusOne","qMinusT","_ref$allowLocal","_ref$allowTld","allowTld","specialChars","validChars","quotedUser","word","userRegex","_userPattern","emailRegex","_emailPattern","_domainValidator","_allowTld","user","email","_isValidUser","_isValidDomain","DocumentType","cache","Map","operationName","Query","Subscription","verifyDocumentType","operation","variables","cached","kind","fragments","queries","mutations","subscriptions","_i","definitions","definition","variableDefinitions","payload","parser","requiredOperationName","usedOperationName","_typeof","toPrimitive","Product","Team","captureException","message","logLevel","tags","scope","setExtras","level","setLevel","setTags","captureMessage","toPropertyKey","_defineProperties","Image","slug","alt","image","lazyLoad","src","imageParams","retina","resizeMode","urlBuilder","copyContext","shouldShowLeadCaptureForm","discountCode","discountPercentage","funnelCompleted","success","shouldHideForm","handleOnChange","handleOnSubmit","setSuccess","setEmail","errorMessage","inputInteractionState","handleSubmitEmailError","errorKey","EmailAlreadySubscribedError","EmailInvalidError","submitEmailToIterable","PRE_WIZARD_GUEST_ITERABLE_UPSERT_MUTATION","validateEmail","inputHelpers","currentTarget","useStandardInputField","ctaKey","inputLabel","handleOnClick","PlansRoutes","Plan","WizardRoutes","Name","fieldName","dataTestId","onBlur","onChange","copyLinkMessage","referralCode","onClick","disabled","typography","identifier","gql","CopyInputButton","partialLocation","onSuccess","copySuccess","setCopySuccess","React","windowWidth","useWindowSize","copyReferralLink","dummy","appendChild","select","execCommand","removeChild","referralLinkEvent","copyPromptKey","BREAKPOINTS","md","readOnly","Date","UTC","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","setUTCFullYear","_possibleConstructorReturn","assertThisInitialized","_getPrototypeOf","getPrototypeOf","_inherits","subClass","superClass","consoleLogger","log","warn","console","Logger","concreteLogger","prefix","logger","_len","_key","forward","_len2","_key2","_len3","_key3","_len4","_key4","lvl","debugOnly","moduleName","baseLogger","EventEmitter","observers","listener","_this","event","cloned","observer","_cloned","defer","res","rej","promise","makeString","getLastOfPath","path","Empty","cleanKey","canNotTraverseDeeper","stack","shift","setPath","newValue","_getLastOfPath","getPath","_getLastOfPath3","getPathWithDefaults","defaultData","deepExtend","overwrite","prop","regexEscape","_entityMap","isIE10","navigator","userAgent","deepFind","keySeparator","paths","mix","joinedPath","_EventEmitter","ResourceStore","ignoreJSONStructure","silent","addNamespaces","emit","addResource","deep","hasResourceBundle","removeNamespaces","getResource","compatibilityAPI","postProcessor","processors","addPostProcessor","handle","translator","processor","checkedLoadedFor","Translator","services","language","resolved","nsSeparator","namespaces","interpolator","nestingRegexp","lastKey","_this2","overloadTranslationOptionHandler","_this$extractFromKey","extractFromKey","appendNamespaceToCIMode","resUsedKey","usedKey","resExactUsedKey","exactUsedKey","resType","noObject","joinArrays","handleAsObjectInI18nFormat","i18nFormat","handleAsObject","returnObjects","returnedObjectHandler","resTypeIsArray","copy","newKeyToUse","deepKey","translate","extendTranslation","usedDefault","needsPluralHandling","hasDefaultValue","defaultValueSuffix","pluralResolver","getSuffix","defaultValue","isValidLookup","missingKeyNoValueFallbackToKey","resForMissing","updateMissing","fk","fallbackLngs","languageUtils","getFallbackCodes","saveMissingTo","toResolveHierarchy","send","fallbackValue","backendConnector","saveMissingPlurals","getSuffixes","suffix","appendNamespaceToMissingKey","parseMissingKeyHandler","_this3","parse","usedLng","usedNS","skipInterpolation","nestBef","skipOnVariables","nb","defaultVariables","interpolate","na","nest","postProcessorNames","applyPostProcessor","postProcessPassResolved","i18nResolved","found","_this4","extracted","fallbackNS","needsContextHandling","codes","utils","hasLoadedNamespace","pluralSuffix","possibleKey","finalKey","finalKeys","addLookupKeys","contextSeparator","returnNull","returnEmptyString","resourceStore","option","capitalize","charAt","LanguageUtil","whitelist","formatLanguageCode","specialCases","lowerCaseLng","part","cleanCode","deprecate","isSupportedCode","nonExplicitSupportedLngs","getLanguagePartFromCode","cleanedLng","lngOnly","find","supportedLng","fallbacks","getScriptPartFromCode","fallbackCode","fallbackCodes","addCode","fc","sets","nr","_rulesPluralsTypes","Number","createRules","rules","numbers","plurals","PluralResolver","rule","getRule","idx","noAbs","simplifyPluralSuffix","returnSuffix","prepend","compatibilityJSON","Interpolator","iOpts","escape","useRawValueToEscape","prefixEscaped","suffixEscaped","formatSeparator","unescapePrefix","unescapeSuffix","nestingPrefix","nestingPrefixEscaped","nestingSuffix","nestingSuffixEscaped","nestingOptionsSeparator","maxReplaces","alwaysFormat","resetRegExp","regexpStr","regexp","regexpUnescapeStr","regexpUnescape","nestingRegexpStr","replaces","regexSafe","val","handleFormat","interpolationkey","trim","missingInterpolationHandler","regex","safeValue","todo","exec","temp","lastIndex","clonedOptions","handleHasOptions","inheritedOptions","sep","optionsString","formatters","doReduce","elem","reduce","Connector","backend","store","state","queue","callback","toLoad","pending","toLoadLanguages","toLoadNamespaces","hasAllNamespaces","reload","loaded","addResourceBundle","_getLastOfPath2","arr","what","fcName","tried","wait","read","queueLoad","loadOne","prepareLoading","_this5","isUpdate","initImmediate","nonExplicitWhitelist","preload","pluralSeparator","partialBundledLanguages","ret","tDescription","_format","transformOptions","noop","I18n","modules","external","isClone","createClassOnDemand","ClassOrObject","lu","bind","languageDetector","detection","storeApi","_this2$store","storeApiChained","_this2$store2","deferred","finish","initializedStoreOnce","changeLanguage","usedCallback","append","isLanguageChangingTo","setLng","getBestMatchFromCodes","cacheUserLanguage","loadResources","async","detect","keyPrefix","fixedT","opts","resultKey","_this$translator","_this$translator2","exists","_this6","lastLng","loadNotPending","loadState","precheck","preResult","_this7","preloaded","newLngs","_this8","mergedOptions","clone","membersToCopy","i18next","inspect","formatValue","seenValues","previouslySeenValues","customInspectFn","getCustomFn","customValue","len","min","remaining","items","formatArray","getObjectTag","formatObject","formatObjectValue","globalThis","addMilliseconds","dirtyAmount","amount","nodejsCustomInspectSymbol","canUseWeakMap","WeakMap","product","canUseWeakSet","WeakSet","canUseSymbol","canUseAsyncIteratorSymbol","asyncIterator","canUseDOM","usingJSDOM","canUseLayoutEffect","useUserInactivity","countdownDuration","stopCountdown","timeLeft","setTimeLeft","paused","setPaused","resetCountDown","handleTabChange","visibilityState","useEffect","addEventListener","removeEventListener","countdown","clearTimeout","hasAbandoned","BlogExitDiscountModal","discountCopy","shouldSeeBlogDiscountModal","discountModalIsMounted","setDiscountModalIsMounted","discountModalIsOpen","setDiscountModalIsOpen","isMobile","showModal","closeDiscountModal","classList","now","expiration","addMinutes","expires","add","TransitionalModal","closeModal","extraClasses","modalIsOpen","modalSize","showCloseButton","transitionTypes","desktop","mobile","DiscountModalForm","isDate","isNaN","AF","AN","AS","EU","NA","OC","SA","AD","native","phone","continent","capital","currency","emoji","emojiU","AE","AG","AI","AL","AM","AO","AQ","AR","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CU","CV","CW","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SV","SX","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XK","YE","YT","ZA","ZM","ZW","af","am","rtl","ay","az","be","bg","bi","bn","bs","ca","ch","cs","da","dv","dz","es","et","eu","fa","ff","fi","fj","fo","ga","gl","gn","gv","he","hi","hr","ht","hu","hy","is","it","ja","ka","kg","kk","kl","km","ko","ku","ky","la","lb","ln","lo","lt","lv","mg","mh","mi","mk","mn","ms","mt","my","nd","ne","nn","no","ny","oc","pa","ps","pt","qu","rn","ro","ru","rw","sg","si","sk","sl","sm","sn","so","sq","sr","ss","st","sv","sw","ta","tg","th","ti","tk","tn","tr","ts","uk","ur","uz","ve","vi","xh","zh","zu","aa","ab","ak","an","as","av","ba","bh","bm","bo","br","ce","co","cr","cu","cv","cy","ee","eo","fy","gd","gu","ha","ho","hz","ia","ie","ig","ii","ik","io","iu","jv","ki","kj","kn","kr","ks","kv","kw","lg","li","ml","mo","mr","ng","nv","oj","om","or","os","pi","rm","sa","sc","sd","se","sh","su","te","tl","tt","tw","ty","ug","vo","wa","wo","yi","yo","za","overflow","F","U","_t","_e","_F","_m","_c2","_s2","_g","_s","fromCodePoint","_e2","_e3","_a2","_s3","_e4","_n","_e5","_i2","_t2","_m2","version","ucs2","toUnicode","A","continents","countries","languagesAll","getEmojiFlag","getUnicode","arrayWithHoles","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","_createForOfIteratorHelperLoose","allowArrayLike","minLen","_arrayLikeToArray","_unsupportedIterableToArray","arr2","hasSymbols","hasSymbol","Boolean","getSymbol","observable","SymbolIterator","SymbolObservable","SymbolSpecies","getMethod","getSpecies","ctor","Observable","isObservable","hostReportError","enqueue","cleanupSubscription","subscription","cleanup","_cleanup","unsubscribe","closeSubscription","_observer","_queue","_state","notifySubscription","onNotify","flushSubscription","subscriber","subscriptionObserver","SubscriptionObserver","_subscription","_proto2","complete","_subscriber","_proto3","subscribe","C","hasSeed","hasValue","seed","acc","first","sources","startNext","flatMap","outer","inner","completeIfDone","closed","method","_step","_iterator","item","of","getFragmentQueryDocument","fragmentName","actualFragmentName","selectionSet","selections","createFragmentMap","symTable","fragment","getFragmentFromSelection","selection","fragmentMap","makeReference","__ref","valueToObjectRepresentation","argObj","isIntValue","isFloatValue","isBooleanValue","isStringValue","isObjectValue","nestedArgObj_1","fields","isVariable","variableValue","isListValue","listValue","nestedArgArrayObj","isEnumValue","isNullValue","KNOWN_DIRECTIVES","getStoreKeyName","directives","filterKeys","sort","filteredArgs_1","completeFieldName","stringifiedArgs","setStringify","previous","stringifyReplacer","argumentsObjectFromField","field","argObj_1","resultKeyNameFromField","alias","getTypenameFromResult","__typename","isField","typename","isInlineFragment","checkDocument","doc","operations","getOperationDefinition","getOperationName","getFragmentDefinitions","getQueryDefinition","queryDef","getMainDefinition","queryDoc","fragmentDefinition","getDefaultValues","defaultValues","defs","def","variable","passthrough","toLink","handler","isTerminating","link","request","_super","LinkError","ApolloLink","empty","links","left","right","leftLink","rightLink","starting","createOperation","transformedOperation","extensions","query","transformOperation","OPERATION_FIELDS","validateOperation","second","firstLink","nextLink","setOnError","QueryDocumentKeys","Document","OperationDefinition","VariableDefinition","Variable","SelectionSet","Field","Argument","FragmentSpread","InlineFragment","FragmentDefinition","IntValue","FloatValue","StringValue","BooleanValue","NullValue","EnumValue","ListValue","ObjectValue","ObjectField","Directive","NamedType","ListType","NonNullType","SchemaDefinition","OperationTypeDefinition","ScalarTypeDefinition","ObjectTypeDefinition","FieldDefinition","InputValueDefinition","InterfaceTypeDefinition","UnionTypeDefinition","EnumTypeDefinition","EnumValueDefinition","InputObjectTypeDefinition","DirectiveDefinition","SchemaExtension","ScalarTypeExtension","ObjectTypeExtension","InterfaceTypeExtension","UnionTypeExtension","EnumTypeExtension","InputObjectTypeExtension","BREAK","freeze","visit","visitor","visitorKeys","inArray","edits","parent","ancestors","newRoot","isLeaving","isEdited","_Object$keys2","editOffset","editKey","editValue","prev","_visitorKeys$node$kin","visitFn","getVisitFn","kindVisitor","kindSpecificVisitor","leave","enter","specificVisitor","specificKindVisitor","shouldInclude","directive","isInclusionDirective","directiveArguments","directiveName","ifArgument","ifValue","getInclusionDirectives","every","evaledValue","hasDirectives","names","all","nameSet","Set","uniqueCount","size","delete","serialized","parseError","selectURI","fallbackURI","contextURI","getContext","uri","nodeStreamIterator","stream","waiting","onData","chunk","shiftedArr","pair","onEnd","removeListener","canUse","readerIterator","reader","responseIterator","isAsyncIterableIterator","getReader","isReadableStream","isStreamableBlob","arrayBuffer","isBlob","promiseIterator","pipe","isNodeReadableStream","throwServerError","statusCode","status","parseHeaders","headerText","headersInit","line","name_1","parseJsonBody","bodyText","getResult","handleError","parseAndCheckHttpResponse","fetcher","fetch","ast","printDocASTReducer","varDefs","wrap","block","argsLine","indent","_ref4","_ref5","_ref6","typeCondition","_ref7","_ref8","_ref9","_ref10","_ref11","_ref12","_ref13","_ref14","_ref15","_ref16","_ref17","_ref18","_ref19","addDescription","_ref20","operationTypes","_ref21","_ref22","_ref23","interfaces","_ref24","hasMultilineItems","_ref25","_ref26","_ref27","types","_ref28","_ref29","_ref30","_ref31","repeatable","locations","_ref32","_ref33","_ref34","_ref35","_ref36","_ref37","_ref38","cb","description","maybeArray","_maybeArray$filter$jo","separator","start","maybeString","end","isMultiline","some","fallbackHttpConfig","http","includeQuery","includeExtensions","preserveHeaderCase","headers","accept","defaultPrinter","printer","selectHttpOptionsAndBodyInternal","configs","config","credentials","removeDuplicateHeaders","normalizedHeaders_1","headerData","originalName","normalizedHeaders","createSignalIfSupported","AbortController","controller","signal","fromError","errorValue","backupFetch","linkOptions","preferredFetch","print","useGETForQueries","includeUnusedVariables","requestOptions","linkConfig","fetchOptions","chosenURI","clientAwarenessHeaders","clientAwareness","contextHeaders","contextConfig","unusedNames_1","_controller","queryParams","addQueryParam","encodeURIComponent","serializedVariables","serializedExtensions","preFragment","fragmentStart","substr","queryParamsPrefix","newURI","rewriteURIForGET","setContext","ctype","decoder","contentType","boundaryVal","boundary","buffer","running","contentType_1","_f","TextDecoder","readMultipartBody","readJsonBody","abort","HttpLink","mergeDeep","mergeDeepArray","merger","merge","defaultReconciler","property","DeepMerger","reconciler","pastCopies","sourceKey","targetValue","shallowCopyForMerge","has","hasOwn","isNullish","defaultDataIdFromObject","_id","keyObject","defaultConfig","dataIdFromObject","addTypename","resultCaching","canonizeResults","shouldCanonizeResults","TypeOrFieldNameRegExp","fieldNameFromStoreName","storeFieldName","selectionSetMatchesResult","storeValueIsStoreObject","extractFragmentContext","lookupFragment","lookup","stringifyCanon","stringifyCache","ObjectCanon","known","pool","passes","keysByJSON","admit","isKnown","pass","shallowCopy","original","lookupArray","proto_1","array_1","sortedKeys","json","firstValueIndex_1","sorted","obj_1","canonicalStringify","resetCanonicalStringify","canonical","asyncMap","mapFn","catchFn","_complete","activeCallbackCount","completed","promiseQueue","makeCallback","examiner","delegate","both","caught","sub","graphQLResultHasError","filterInPlace","TYPENAME_FIELD","isEmpty","nullIfDocIsEmpty","fragmentDef","getFragmentDefinition","getDirectiveMatcher","dir","removeDirectivesFromDocument","variablesInUse","variablesToRemove","fragmentSpreadsInUse","fragmentSpreadsToRemove","modifiedDoc","getAllFragmentSpreadsFromSelectionSet","frag","argMatcher","argument","aConfig","getArgumentMatcher","varDef","argConfig","argMatchCount_1","removeArgumentsFromDocument","fs","removeFragmentSpreadFromDocument","addTypenameToDocument","added","connectionRemoveConfig","willRemove","allFragments","buildQueryFromSelectionSet","prefixCounts","makeUniqueId","random","iterateObserversSafely","observersWithMethod","obs","fixObservableSubclass","subclass","species","isPromiseLike","Concast","addObserver","removeObserver","handlers","latest","notify","_error","nextResultListeners","cancel","reason","iterable","deliverLastMessage","nextOrError","beforeNext","cloneDeep","cloneDeepHelper","seen","copy_1","child","copy_2","ObservableQuery","queryManager","queryInfo","subObserver","defaultSubscriptionObserverErrorCallback","last","reobserve","tearDownQuery","isTornDown","defaultOptions","watchQuery","fetchPolicy","defaultFetchPolicy","initialFetchPolicy","queryId","generateQueryId","opDef","queryName","removeQuery","getCurrentResult","saveAsLastResult","lastResult","getLastResult","networkStatus","ready","hasForcedResolvers","diff","getDiff","returnPartialData","partial","partialRefetch","logMissingFieldErrors","missing","updateLastResult","isDifferentFromLastResult","newResult","getLast","variablesMustMatch","getLastError","resetLastResults","resetQueryStoreErrors","resetErrors","refetch","reobserveOptions","pollInterval","vars","resetLastWrite","fetchMore","fetchMoreOptions","combinedOptions","qid","originalNetworkStatus","notifyOnNetworkStatusChange","observe","updatedQuerySet","fetchQuery","fetchMoreResult","batch","update","updateQuery","optimistic","writeQuery","onWatchUpdated","watch","finally","reobserveCacheFirst","subscribeToMore","startGraphQLSubscription","subscriptionData","setOptions","newOptions","setVariables","broadcastQueries","startPolling","updatePolling","stopPolling","applyNextFetchPolicy","nextFetchPolicy","newNetworkStatus","setObservableQuery","fetchQueryObservable","ssrMode","pollingInfo","interval","maybeFetch","poll","info","timeout","assumeImmutableResults","useDisposableConcast","oldVariables","oldFetchPolicy","compact","concast","reportResult","reportError","lastError","errorResult","hasObservers","clear","stopQuery","obsQuery","_nextFetchPolicy","LocalState","resolvers","fragmentMatcher","addResolvers","setFragmentMatcher","resolverGroup","setResolvers","getResolvers","runResolvers","remoteResult","onlyRunForcedResolvers","resolveDocument","localResult","getFragmentMatcher","clientQuery","serverQuery","removeClientSetsFromDocument","prepareContext","getCacheKey","identify","addExportedVariables","buildRootValueFromCache","exportedVariables","shouldForceResolvers","forceResolvers","rootValue","mainDefinition","definitionOperation","defaultOperationType","execContext","resolveSelectionSet","resultsToMerge","resolveField","fieldResult","fragmentResult","aliasedFieldName","aliasUsed","defaultResult","resultPromise","resolverType","resolverMap","withValue","resolveSubSelectedArray","destructiveMethodCounts","wrapDestructiveCacheMethod","methodName","cancelNotifyTimeout","QueryInfo","listeners","lastRequestId","stopped","dirty","observableQuery","lastDiff","networkError","getDiffOptions","updateWatch","oq","updateLastDiff","setDiff","oldDiff","notifyTimeout","oqListener","fromOptimisticTransaction","shouldNotify","stop","watchOptions","watcher","lastWatch","lastWrite","shouldWrite","dmCount","markResult","cacheWriteBehavior","incremental","mergedData_1","merger_1","parent_1","shouldWriteResult","errorPolicy","performTransaction","diffOptions","markReady","markError","ignoreErrors","writeWithErrors","EntityStore","Root","QueryManager","queryDeduplication","onBroadcast","localState","fetchCancelFns","transformCache","queryIdCounter","requestIdCounter","mutationIdCounter","inFlightLinkObservables","mutationStore","_info","stopQueryNoBroadcast","cancelPendingFetches","optimisticResponse","updateQueries","refetchQueries","awaitRefetchQueries","updateWithProxyFn","onQueryUpdated","keepRootFields","_h","hasClientExports","mutationStoreValue","_j","generateMutationId","transformForLink","getVariables","markMutationOptimistic","getObservableFromLink","storeResult","markMutationResult","removeOptimistic","cacheWrites","skipCache","dataId","updateQueries_1","updater","currentQueryResult","nextQueryResult","mutationResult","queryVariables","results_1","updateCache","write","asQuery","modify","DELETE","include","recordOptimisticTransaction","getQueryStore","transformed","transformDocument","noConnection","cacheEntry_1","defaultVars","generateRequestId","stopQueryInStore","stopQueryInStoreNoBroadcast","clearStore","discardWatches","getObservableQueries","queryNamesAndDocs","legacyQueryOptions","desc","getQuery","included","nameOrDoc","reFetchObservableQueries","includeStandby","observableQueryPromises","makeObservable","observablePromise_1","getLocalState","deduplication","inFlightLinkObservables_1","forceFetch","byVariables_1","varJson_1","getResultsFromLink","requestId","linkDocument","incrementalResult","hasErrors","aqr","defaults","normalized","fromVariables","concastSources","fetchQueryByPolicy","cleanupCancelFn","includedQueriesById","results","refetchWritePolicy","oldNetworkStatus","readCache","resultsFromCache","fromData","resultsFromLink","newContext","hasSuggestedDevtools","ApolloClient","resetStoreCallbacks","clearStoreCallbacks","ssrForceFetchDelay","connectToDevTools","__APOLLO_CLIENT__","typeDefs","clientAwarenessName","clientAwarenessVersion","disableNetworkFetches","resetStore","__APOLLO_DEVTOOLS_GLOBAL_HOOK__","nav","ua","url","devToolsHookCb","action","dataWithOptimisticResults","mergeOptions","readQuery","readFragment","writeFragment","__actionHookForDevTools","__requestRaw","onResetStore","onClearStore","restore","serializedState","setLocalStateFragmentMatcher","setLink","newLink","ApolloCache","getFragmentDoc","updateResult","optimisticId","transaction","gc","rootId","_update","updateFragment","_update2","MissingFieldError","delModifier","INVALIDATE","policies","group","rootIds","refs","getFieldValue","objectOrReference","maybeDeepFreeze","canRead","objOrRef","toReference","objOrIdOrRef","mergeIntoStore","toObject","depend","storeObject","rootTypenamesById","dependOnExistence","older","newer","existing","incoming","merged","storeObjectReconciler","caching","fieldsToDirty_1","__exists","hasKeyArgs","changedFields_1","needToMerge_1","allDeleted_1","sharedDetails_1","isReference","readField","fieldNameOrOptions","fieldValue","storage","getStorage","getStoreFieldName","evict","limit","evicted","extraRootIds","getRootIdSet","__META","newData","rest_1","retain","release","ids","snapshot","findChildRefIds","idsToRemove","root_1","found_1","workSet_1","makeCacheKey","keyMaker","CacheGroup","resetCaching","makeDepKey","maybeDependOnExistenceOfEntity","entityId","supportsResultCaching","stump","storageTrie","addLayer","layerId","replay","removeLayer","Layer","ownStoreObject","parentStoreObject","fromParent","Stump","existingObject","incomingObject","existingValue","incomingValue","execSelectionSetKeyArgs","StoreReader","knownResults","canon","executeSelectionSet","peekArgs","peek","enclosingRef","execSelectionSetImpl","resultCacheMaxSize","keyArgs","varString","executeSubSelectedArray","execSubSelectedArrayImpl","resetCanon","diffQueryAgainstStore","rootRef","execResult","firstMissing","isFresh","objectsToMerge","missingMerger","handleMissing","resultName","rootIdsByTypename","workSet","FRAGMENT_SPREAD","fragmentMatches","finalResult","frozen","childResult","getTypenameFromStoreObject","assertSelectionSetForIdValue","tree","specifierInfoCache","lookupSpecifierInfo","spec","cacheKey","keyFieldsFnFromSpecifier","specifier","keyFieldsFn","collectSpecifierPaths","schemaKeyPath","extractKeyPath","extractKey","keyArgsFnFromSpecifier","keyArgsFn","collected","keyPath","firstKey","firstChar","variableName","varKeyPath","directiveName_1","directiveArgs","extractor","getSpecifierPaths","toMerge","paths_1","currentPath_1","normalize","reducer","argsFromFieldSpecifier","nullKeyFieldsFn","simpleKeyArgsFn","_args","mergeTrueFn","mergeObjects","mergeFalseFn","Policies","typePolicies","toBeAdded","supertypeMap","fuzzySubtypes","usingPossibleTypes","setRootTypename","possibleTypes","addPossibleTypes","addTypePolicies","partialContext","ROOT_QUERY","normalizeReadFieldOptions","policy","getTypePolicy","keyFn","specifierOrId","queryType","mutationType","subscriptionType","updateTypePolicy","keyFields","setMerge","getFieldPolicy","which","old","supertype","getSupertypeSet","subtype","policy_1","supertypes","inbox","createIfMissing","fieldPolicies","supertypeSet","typenameSupertypeSet","workQueue_1","maybeEnqueue_1","needToCheckFuzzySubtypes","checkingFuzzySubtypes","regExp","fuzzyString","fieldSpec","specifierOrString","directivesObj","storeKeyNameFromField","readOptions","makeFieldFunctionOptions","getReadFunction","getMergeFunction","parentTypename","childTypename","runMergeFunction","makeMergeObjectsFunction","readFieldArgs","undefId","argc","eType","iType","getContextFlavor","clientOnly","flavored","flavors","StoreWriter","writeToStore","operationDefinition","written","incomingById","processSelectionSet","mergeTree","fieldNodeSet","entityRef","applied","applyMerges","fieldsWithSelectionSets_1","hasSelectionSet_1","childTree","hasMergeFunction_1","existingRef","incomingObj","getChild","parentType","typeDotName","warnings","childTypenames","warnAboutDataLoss","flattenFields","resultFieldKey","getChildMergeTree","processFieldValue","maybeRecycleChildMergeTree","dataRef","previous_1","mergeMergeTrees","mergeTreeIsEmpty","fieldMap","limitingTrie","flatten","inheritedContext","visitedNode","visited","if","getStorageArgs","e_1","i_1","getValue_1","eVal","iVal","aVal","emptyMergeTreePool","needToMergeMaps","remainingRightKeys_1","leftTree","InMemoryCache","watches","typenameDocumentCache","makeVar","txCount","normalizeConfig","rootStore","optimisticData","resetResultCache","resetResultIdentities","previousReader","storeReader","storeWriter","maybeBroadcastWatch","broadcastWatch","broadcast","broadcastWatches","immediate","forget","idToRemove","newOptimisticData","_onWatchUpdated","perform","layer","alreadyDirty","OperationBatcher","batchDebounce","batchInterval","batchMax","batchHandler","batchKey","batchesByKey","enqueueRequest","requestCopy","subscribers","isFirstEnqueuedRequest","isFirstSubscriber","scheduleQueueConsumption","consumeQueue","forwards","observables","nexts","completes","batchedObservable","rejecters","scheduledBatchTimer","BatchLink","fetchParams","batcher","BatchHttpLink","optsAndBody","loadedBody","errorHandler","retriedSub","retriedResult","ErrorLink","RetryableOperation","delayFor","retryIf","retryCount","canceled","currentSubscription","onNext","onComplete","scheduleRetry","try","timerId","delay","RetryLink","attempts","delayOptions","initial","jitter","Infinity","baseDelay","buildDelayFunction","retryOptions","buildRetryFunction","retryable","offsetLimitPagination","csrfMeta","querySelector","batchLink","getAttribute","retryLink","apolloLinks","User","ordersByDate","Meal","dateLongFormatter","timeLongFormatter","dateTimeFormat","datePattern","timePattern","startOfUTCWeekYear","firstWeek","startOfUTCWeek","MILLISECONDS_IN_WEEK","round","startOfUTCISOWeekYear","fourthOfJanuary","startOfUTCISOWeek","targetLength","uglifiedAlphabet","J","N","V","W","Z","vowels","_extends","_ref$languageToPseudo","_ref$letterMultiplier","_ref$repeatedLetters","repeatedLetters","_ref$uglifedLetterObj","uglifedLetterObject","_ref$wrapped","wrapped","_ref$enabled","letters","configurePseudo","shouldWrap","bracketCount","processedValue","letter","repeat","useApolloClient","override","argStr","NaN","Account","Activity","Affiliate","AgeClassificationByUserWhenCreated","ApplicableDiscountPartDiscount","ApplicableDiscountPartDiscountBasis","ArchivedType","AuthenticationStrategy","AvailablePlansScopeType","BodyShape","BoxKind","Code","Currency","CurrentFood","CustomerIssueEntryFieldData","CustomerIssueEntryFieldSelectionFormat","CustomerIssueEntryFieldTypesAssociationAssociationType","CustomerIssueEntryFieldTypesAssociationDisplayType","CustomerIssueEntryFieldTypesBooleanDisplayType","CustomerIssueEntryFieldTypesIntegerDisplayType","CustomerIssueEntryFieldTypesMultifieldDisplayType","CustomerIssueEntryFieldTypesStringDisplayType","CustomerIssueManagementInputFieldAssociationAssociationType","CustomerIssueManagementInputFieldAssociationDisplayType","CustomerIssueManagementInputFieldBooleanDisplayType","CustomerIssueManagementInputFieldDataType","CustomerIssueManagementInputFieldIntegerDisplayType","CustomerIssueManagementInputFieldMultifieldDisplayType","CustomerIssueManagementInputFieldSelectionFormat","CustomerIssueManagementInputFieldStringDisplayType","CustomerIssueManagementReportable","CustomerIssueManagementReporterable","CustomerIssueManagementResolutionResolutionType","CustomerIssueResolutionDetailsTypeField","CustomerIssueResolutionKey","CustomerIssueResolutionResolution","Descriptor","DiscountCodePartDiscount","DiscountCodePartDiscountBasis","Eater","Exercise","FavouriteGame","FeedingGuidelinesUsed","Food","FooterColumn","Frequency","Gender","Group","InputPaymentMethod","IntentType","InvoiceStatus","Key","Language","MarketingPreferences","MutationMessage","NonCoreInvoiceStatus","NonPaymentReason","Payment","PaymentMethodType","PaymentMethodable","PaymentResourceType","RecipeSurchargeCalculation","Serving","SnackingHabit","Status","SubscriptionStatus","Trait","TypeOfPlan","UnavailableObjectReason","VariantDelivery","dedentBlockStringValue","rawString","lines","commonIndent","_commonIndent","isFirstLine","isEmptyLine","getBlockStringIndentation","startLine","isBlank","endLine","printBlockString","indentation","preferMultipleLines","isSingleLine","hasLeadingSpace","hasTrailingQuote","hasTrailingSlash","printAsMultipleLines","SYMBOL_TO_STRING_TAG","toStringTag","matchesEntirely","regular_expression","genericMessage","InvariantError","framesToPop","invariant","condition","verbosityLevels","verbosityLevel","wrapConsoleMethod","GLOBAL_KEY","maybe","DEV","_interopRequireDefault","_handlebarsRuntime2","_handlebarsCompilerAst2","_handlebarsCompilerBase","_handlebarsCompilerCompiler","_handlebarsCompilerJavascriptCompiler2","_handlebarsCompilerVisitor2","_handlebarsNoConflict2","_create","hb","compile","precompile","AST","Compiler","JavaScriptCompiler","Parser","parseWithoutProcessing","inst","Visitor","useBoolean","setValue","toggle","setTrue","setFalse","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","run","marker","runClearTimeout","Item","nextTick","title","browser","env","argv","versions","addListener","once","off","removeAllListeners","prependListener","prependOnceListener","binding","cwd","chdir","umask","hint","prim","Kind","NAME","DOCUMENT","OPERATION_DEFINITION","VARIABLE_DEFINITION","SELECTION_SET","FIELD","ARGUMENT","INLINE_FRAGMENT","FRAGMENT_DEFINITION","VARIABLE","INT","FLOAT","STRING","BOOLEAN","NULL","ENUM","LIST","OBJECT","OBJECT_FIELD","DIRECTIVE","NAMED_TYPE","LIST_TYPE","NON_NULL_TYPE","SCHEMA_DEFINITION","OPERATION_TYPE_DEFINITION","SCALAR_TYPE_DEFINITION","OBJECT_TYPE_DEFINITION","FIELD_DEFINITION","INPUT_VALUE_DEFINITION","INTERFACE_TYPE_DEFINITION","UNION_TYPE_DEFINITION","ENUM_TYPE_DEFINITION","ENUM_VALUE_DEFINITION","INPUT_OBJECT_TYPE_DEFINITION","DIRECTIVE_DEFINITION","SCHEMA_EXTENSION","SCALAR_TYPE_EXTENSION","OBJECT_TYPE_EXTENSION","INTERFACE_TYPE_EXTENSION","UNION_TYPE_EXTENSION","ENUM_TYPE_EXTENSION","INPUT_OBJECT_TYPE_EXTENSION","currentContext","MISSING_VALUE","idCounter","ignored","globalKey","globalHost","Slot","context_1","slots","getValue","saved","noContext","markup","DOMParser","parseFromString","wrapMarkup","childNodes","splitDeclaration","declaration","cssText","capturing","declarations","unshift","splitDeclarations","styles","startsWith","p1","standardProps","reactProps","attrs","_standardProps$get","_attrs$i","isHTMLTagName","nodesToElements","nodeList","nodeName","allowed","replacement","attributes","textContent","_ref$allowed","_ref$markup","_ref$replace","_ref$trim","propTypes","super","withBackdrop","closeModalListener","onResizeModals","onresize","setState","renderClassNames","onClose","documentElement","clientWidth","HTMLElement","contains","useCustomCloseButton","customCloseButtonContent","modalClose","CloseButton","checkTransitionType","scale","opacity","backdropOpacity","modalState","transition","getTransitionType","stiffness","damping","defaultStyle","interpolated","formatted","spring","modalClasses","checkWindowResize","render","interpolateStyles","renderCloseButton","dirtyNumber","thunk","safeGlobal","needToRemove","NODE_ENV","contextKey","getApolloContext","displayName","devAssert","Source","locationOffset","column","isSource","mobileNumberRequiredRegions","removeExtraWhiteSpace","formatNameInput","fullName","formattedName","firstSpace","firstName","lastName","shippingCountryCode","AsYouType","interactingState","currentInteractionState","addressLineLimit","supportedCountryNumbers","entries","validate","deliveryNotesLimit","copy_context","Validator","isValidEmail","oneUpperCaseLetter","oneLowercaseLetter","maximumLength","oneSpecialCharacterOrNumber","limitationValue","isPOBoxAddress","trimmedNumber","sanitisedShippingCountryCode","parsedNumberCountryCode","parsePhoneNumber","country","Checkout","validationIndicator","inputField","mapFieldNameToType","mapFieldNameToPlaceholder","isIreland","mapFieldNameToAutocomplete","fieldsWithErrors","fieldNames","accountSectionReducer","form","password","deliveryDateSectionReducer","mobileNumber","deliveryAddressSectionReducer","searchTerm","addressLine1","addressLine2","city","postcode","paymentSectionReducer","card","allowedHtmlElement","accent","STYLES","Text","margin","bold","colour","align","shouldScale","wonky","underline","hideOverflow","uppercase","strikeThrough","tight","translatedText","Handlebars","textToDisplay","char","minWidth","applyRotation","classnames","nomargin","_x","_r","_arr","arrayLikeToArray","factory","OldCookies","api","noConflict","extend","decodeURIComponent","converter","toUTCString","stringifiedAttributes","attributeName","cookie","jar","cookies","getJSON","withConverter","roughCostCalculatorLocalStorage","localStorage","getItem","parsedState","age","weight","interactedWithAge","dogDetailsState","baseClass","DogDetailsForm","breedSelectRef","onBreedFocusCallback","fullWidth","dogDetails","useReactiveVar","setItem","GBRegex","GBUndeliverableRegex","NIRegex","IERegex","NLRegex","BERegex","PLRegex","DERegex","isValidNumber","formattedPostcode","removeWhiteSpace","twoDayPostcodePrefix","twoDayPostcodePrefixes","twoDayPostcodeOutwardCode","twoDayPostcodeOutwardCodes","address","formattedAddress","words","HandlebarsEnvironment","_utils","_exception2","_helpers","_decorators","_logger2","_internalProtoAccess","VERSION","COMPILER_REVISION","LAST_COMPATIBLE_COMPILER_REVISION","REVISION_CHANGES","objectType","helpers","partials","decorators","registerDefaultHelpers","registerDefaultDecorators","registerHelper","unregisterHelper","registerPartial","unregisterPartial","registerDecorator","unregisterDecorator","resetLoggedPropertyAccesses","resetLoggedProperties","createFrame","ConsentModeValue","isEqual","keysA","keysB","thirdPartyCookies","analyticsOnly","marketingOnly","thirdPartyLocalStorageItems","deleteCookies","host","deleteLocalStorageItems","removeItem","initMarketingCookies","initFBPixel","initAnalyticsCookies","marketing","initSentry","initSegment","updateConsentMode","consentMode","functionality_storage","granted","denied","security_storage","ad_storage","analytics_storage","personalization_storage","ad_user_data","ad_personalization","gtag","dataLayer","cookieConsentBannerElement","getElementById","cookieConsentLocalStorageItem","initCookieConsent","CountryCode","Variant","Strict","Default","cookieConsentLocalStorateItem","consent","consentAccepted","applyPreferences","preferences","previousConsentLocalStorageItem","previousConsent","page","startTime","scroll","endTime","differenceInSeconds","trackCookiePreferences","component","Component","Null","Context","Scrolled","ReactDOM","CookieConsent","cookieConsentModalState","visible","cookieConsentBannerState","triggerCookieConsentModal","differenceInMilliseconds","dateLeft","dateRight","roundingMap","trunc","getRoundingMethod","declension","scheme","one","rem100","rem10","twoFour","declensionGroup","formatDistanceLocale","lessThanXSeconds","regular","past","future","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","adjectivesLastWeek","masculine","feminine","adjectivesThisWeek","adjectivesNextWeek","dayGrammaticalGender","getAdjectives","baseDate","dirtyDateLeft","dirtyDateRight","dateLeftStartOfWeek","dateRightStartOfWeek","isSameUTCWeek","dayAndTimeWithAdjective","adjective","getAdjective","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","narrow","abbreviated","wide","pm","midnight","noon","morning","afternoon","evening","night","addSuffix","comparison","buildMatchPatternFn","parsePattern","_date","_baseDate","_options","standalone","withPreposition","tokenValue","monthValues","formattingMonthValues","_console","alreadyWarned","warnOnce","loadNamespaces","initialized","oldI18nextHasLoadedNamespace","bindI18n","isNewerI18next","i18nInstance","ignore","i18nFromProps","i18nFromContext","defaultNSFromContext","reportNamespaces","notReadyT","retNotReady","i18nOptions","useSuspense","addUsedNamespaces","getT","getFixedT","nsMode","_useState","_useState2","setT","joinedNS","previousJoinedNS","bindI18nStore","boundReset","isInitial","secondPerFrame","destX","precision","newV","newX","reusedTuple","getNanoSeconds","hrtime","loadTime","performance","vendors","raf","caf","_now","cp","cancelled","polyfill","requestAnimationFrame","cancelAnimationFrame","currentStyle","currentVelocity","styleValue","parsePhoneNumberWithError","CookieConsentBanner","cookieConsentBanner","isBannerVisible","setIsBannerVisible","closeBanner","handleOnClose","actionToCookieConsent","Action","Accepted","Banner","Close","handleOnManageClick","None","manageCookiesClicked","handleOnAcceptClick","GotIt","CloseIcon","AsYouTypeState","onCountryChange","onCallingCodeChange","_Object$keys","defaultCallingCode","international","IDDPrefix","missingPlus","callingCode","digits","resetNationalSignificantNumber","initCountryAndCallingCode","nationalSignificantNumber","getNationalDigits","nationalSignificantNumberMatchesInput","nationalPrefix","carrierCode","complexPrefixBeforeNationalSignificantNumber","setCountry","setCallingCode","nextDigits","DIGIT_PLACEHOLDER","DIGIT_PLACEHOLDER_MATCHER","times","cutAndStripNonPairedParens","cutBeforeIndex","dangling_braces","cleared_string","_dangling_braces","stripNonPairedParens","formatCompleteNumber","shouldTryNationalPrefixFormattingRule","getSeparatorAfterNationalPrefix","formattedNumber","formatNationalNumber","useNationalPrefixFormattingRule","formatNationalNumberWithAndWithoutNationalPrefixFormattingRule","formattedNationalNumber","formatNationalNumberUsingFormat","useInternationalFormat","withNationalPrefix","parseDigits","isValidFormattedNationalNumber","LONGEST_DUMMY_PHONE_NUMBER","NATIONAL_PREFIX_SEPARATORS_PATTERN","CREATE_CHARACTER_CLASS_PATTERN","CREATE_STANDALONE_DIGIT_PATTERN","NON_ALTERING_FORMAT_REG_EXP","AsYouTypeFormatter","isNANP","nationalPrefixFormattingRule","usesNationalPrefix","resetFormat","chosenFormat","template","nationalNumberTemplate","populatedNationalNumberTemplate","populatedNationalNumberTemplatePosition","numberingPlan","matchingFormats","narrowDownMatchingFormats","checkNumberLength","_isArray","formattedCompleteNumber","setNationalNumberTemplate","formatNationalNumberWithNextDigits","previouslyChosenFormat","newlyChosenFormat","chooseFormat","formatNextNationalNumberDigits","leadingDigits","leadingDigitsPatternIndex","formatSuits","formatMatches","nationalPrefixIsOptionalWhenFormattingInNationalFormat","nationalPrefixIsMandatoryWhenFormattingInNationalFormat","leadingDigitsPatternsCount","leadingDigitsPatterns","leadingDigitsPattern","internationalFormat","_loop2","_isArray2","_iterator2","getFormatFormat","createTemplateForFormat","_loop","getTemplateForFormat","spacing","internationalPrefix","getInternationalPrefixBeforeCountryCallingCode","getDigitsWithoutInternationalPrefix","strictPattern","nationalNumberDummyDigits","nationalPrefixIncludedInTemplate","numberFormat","numberFormatWithNationalPrefix","applyInternationalSeparatorStyle","position","_i3","search","populateTemplateWithDigits","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART","VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART_PATTERN","VALID_FORMATTED_PHONE_NUMBER_PART","AFTER_PHONE_NUMBER_DIGITS_END_PATTERN","COMPLEX_NATIONAL_PREFIX","AsYouTypeParser","onNationalSignificantNumberChange","justLeadingPlus","_extractFormattedDigi","_extractFormattedDigi4","extractedNumber","hasPlus","startsAt","extractFormattedPhoneNumber","_extractFormattedDigitsAndPlus","formattedDigits","extractFormattedDigitsAndPlus","_extractFormattedDigi2","startInternationalNumber","inputDigits","hasReceivedThreeLeadingDigits","appendDigits","extractIddPrefix","isWaitingForCountryCallingCode","extractCountryCallingCode","appendNationalSignificantNumberDigits","hasExtractedNationalSignificantNumber","extractNationalSignificantNumber","_extractCountryCallin","countryCallingCode","hasSelectedNumberingPlan","nationalPrefixForParsing","_nationalPrefixForParsing","couldPossiblyExtractAnotherNationalSignificantNumber","nationalDigits","_extractNationalNumbe","extractNationalNumberFromPossiblyIncompleteNumber","nationalNumber","onExtractedNationalNumber","prevNationalSignificantNumber","_extractNationalNumbe2","nationalSignificantNumberIndex","prefixBeforeNationalNumber","extractAnotherNationalSignificantNumber","fixMissingPlus","extractCallingCodeAndNationalSignificantNumber","numberWithoutIDD","stripIddPrefix","_extractCountryCallin2","extractCountryCallingCodeFromInternationalNumberWithoutPlusSign","newCallingCode","optionsOrDefaultCountry","_this$getCountryAndCa2","getCountryAndCallingCode","hasCountry","_this$parser$input","formattedOutput","determineTheCountryIfNeeded","reExtractNationalSignificantNumber","getFullNumber","getNonFormattedNumber","selectNumberingPlan","getCallingCode","_this$state","isCountryCallingCodeAmbiguous","determineTheCountry","isInternational","_this$state2","getNonFormattedNationalNumberWithPrefix","countryCodes","getCountryCodesForCallingCode","getCountryByCallingCode","_this$state3","countryCode","getCountry","getCountryCallingCode","PhoneNumber","getNumber","isPossible","getTemplate","getNonFormattedTemplate","ManageModal","setShowStrictModal","handleModalClose","functionalCookies","setFunctionalCookies","marketingCookies","setMarketingCookies","cookieType","handleOnAcceptAll","Modal","AcceptAll","updateLocalStateFromLocalStorage","cookieConsent","cookieConsentJson","handleOnCancel","handleOnSave","Saved","SaveChanges","dangerouslySetInnerHTML","__html","privacyUrl","countryCodeToPrivacyUrl","checked","allowedFunctionality","cookieConsentLocalStorageKey","Cancelled","Deny","StrictModal","handleOnDeny","handleOnManage","IntersectionObserver","checkPixelIntersection","pixel","setAttribute","marginTop","dropIntersectionPixel","entry","isIntersecting","disconnect","_interopRequire","_Motion","Motion","_StaggeredMotion","StaggeredMotion","_TransitionMotion","TransitionMotion","_spring","_presets","presets","_stripStyle","stripStyle","_reorderKeys","reorderKeys","clientHeight","scrollHeight","scrollWidth","_o","getComputedStyle","overflowY","overflowX","ownerDocument","defaultView","frameElement","parentElement","getRootNode","SuppressedError","menuNode","actions","scrollMode","skipOverflowHiddenElements","scrollingElement","visualViewport","innerWidth","innerHeight","scrollX","scrollY","bottom","parseFloat","scrollMarginTop","scrollMarginRight","scrollMarginBottom","scrollMarginLeft","_l","borderLeftWidth","borderTopWidth","_p","borderRightWidth","_W","borderBottomWidth","_T","_B","offsetWidth","_V","offsetHeight","scrollLeft","scrollTop","_h2","isOrContainsNode","environment","Node","debounce","timeoutId","callAllEventHandlers","fns","preventDownshiftDefault","nativeEvent","handleRefs","generateId","getState","prevState","isControlledProp","normalizeArrowKey","keyCode","getHighlightedIndex","isItemDisabled","circular","itemsLastIndex","highlightedIndex","getNonDisabledIndex","backwards","_index","targetWithinDownshift","downshiftElements","checkActiveElement","contextNode","activeElement","cleanupStatus","documentProp","getStatusDiv","statusDiv","border","clip","padding","setStatus","dropdownDefaultStateValues","isOpen","selectedItem","inputValue","callOnChangeProps","newState","changes","capitalizeString","invokeOnChangeHandler","onStateChange","updateA11yStatus","useIsomorphicLayoutEffect","labelId","menuId","getItemId","toggleButtonId","inputId","reactId","useId","_ref2$id","getItemAndIndex","itemProp","indexProp","useLatestRef","useEnhancedReducer","createInitialState","isStateEqual","prevStateRef","actionRef","enhancedReducer","stateReducer","_useReducer","dispatch","propsRef","dispatchWithProps","useControlledReducer$1","_useEnhancedReducer","defaultProps$3","itemToString","itemToKey","scrollIntoView","getDefaultValue$1","propKey","defaultStateValues","getInitialValue$1","initialValue","getInitialState$2","getInitialHighlightedIndex","getHighlightedIndexOnOpen","initialHighlightedIndex","defaultHighlightedIndex","useMouseAndTouchTracker","handleBlur","downshiftElementsRefs","mouseAndTouchTrackersRef","isMouseDown","isTouchMove","isTouchEnd","onMouseDown","onMouseUp","onTouchStart","onTouchMove","onTouchEnd","useGetterPropsCalledChecker","useA11yMessageStatus","getA11yStatusMessage","dependencyArray","isInitialMount","useIsInitialMount","useScrollIntoView","itemRefs","getItemNodeFromIndex","menuElement","scrollIntoViewProp","shouldScrollRef","useControlPropsValidator","getChangesOnSelection","_props$items","isDropdownsStateEqual","isInitialMountRef","getDefaultHighlightedIndex","commonPropTypes","commonDropdownPropTypes","defaultIsOpen","initialIsOpen","initialSelectedItem","defaultSelectedItem","onSelectedItemChange","onHighlightedIndexChange","onIsOpenChange","downshiftCommonReducer","stateChangeTypes","ItemMouseMove","MenuMouseLeave","ToggleButtonClick","FunctionToggleMenu","FunctionOpenMenu","FunctionCloseMenu","FunctionSetHighlightedIndex","FunctionSetInputValue","FunctionReset","defaultProps$2","validatePropTypes$2","stateChangeTypes$2","FunctionSelectItem","ItemClick","ToggleButtonBlur","ToggleButtonKeyDownArrowDown","ToggleButtonKeyDownArrowUp","ToggleButtonKeyDownCharacter","ToggleButtonKeyDownEnd","ToggleButtonKeyDownEnter","ToggleButtonKeyDownEscape","ToggleButtonKeyDownHome","ToggleButtonKeyDownPageDown","ToggleButtonKeyDownPageUp","ToggleButtonKeyDownSpaceButton","downshiftSelectReducer","altKey","lowercasedKey","keysSoFar","lowerCasedKeysSoFar","offsetIndex","getItemIndexByCharacterKey","_excluded$2","_excluded2$2","_excluded3$1","_excluded4$1","useSelect","userProps","_useControlledReducer","toggleButtonRef","menuRef","clearTimeoutRef","elementIds","outerDispatch","focus","mouseAndTouchTrackers","setGetterPropCallInfo","toggleButtonKeyDownHandlers","ArrowDown","preventDefault","ArrowUp","Home","End","Escape","Enter","PageUp","PageDown","currentState","toggleMenu","closeMenu","openMenu","setHighlightedIndex","newHighlightedIndex","selectItem","newSelectedItem","setInputValue","newInputValue","getLabelProps","_temp","labelProps","htmlFor","_toggleButtonRef$curr","getMenuProps","_temp2","_temp3","_extends2","onMouseLeave","_ref2$refKey","refKey","_ref3$suppressRefErro","suppressRefError","role","getToggleButtonProps","_temp4","_temp5","_extends3","onPress","onKeyDown","_ref4$refKey","_ref5$suppressRefErro","latestState","toggleProps","toggleButtonNode","tabIndex","isAcceptedCharacterKey","getItemProps","_temp6","_extends4","onMouseMove","_ref6$refKey","disabledProp","_latest$current","latestProps","_getItemAndIndex","itemProps","itemNode","stateChangeTypes$1","ControlledPropUpdatedSelectedItem","InputBlur","InputChange","InputClick","InputKeyDownArrowDown","InputKeyDownArrowUp","InputKeyDownEnd","InputKeyDownEnter","InputKeyDownEscape","InputKeyDownHome","InputKeyDownPageDown","InputKeyDownPageUp","getInitialState$1","initialState","defaultInputValue","initialInputValue","onInputValueChange","validatePropTypes$1","defaultProps$1","downshiftUseComboboxReducer","_excluded$1","_excluded2$1","_excluded3","_excluded4","useCombobox","previousSelectedItemRef","useControlledReducer","inputRef","previousResultCountRef","_inputRef$current","inputKeyDownHandlers","_ref$refKey","_ref2$suppressRefErro","_ref3$refKey","customClickHandler","_ref5$refKey","getInputProps","_extends5","onInput","onChangeText","_ref7$suppressRefErro","_eventHandlers","eventHandlers","isBlurByTabChange","relatedTarget","inputNode","autoComplete","activeIndex","selectedItems","getInitialValue","getDefaultValue","getInitialState","isKeyDownOperationPermitted","shiftKey","metaKey","ctrlKey","HTMLInputElement","selectionStart","selectionEnd","defaultProps","keyNavigationNext","keyNavigationPrevious","validatePropTypes","DropdownClick","DropdownKeyDownBackspace","DropdownKeyDownNavigationPrevious","FunctionAddSelectedItem","FunctionRemoveSelectedItem","FunctionSetActiveIndex","FunctionSetSelectedItems","SelectedItemClick","SelectedItemKeyDownBackspace","SelectedItemKeyDownDelete","SelectedItemKeyDownNavigationNext","SelectedItemKeyDownNavigationPrevious","downshiftMultipleSelectionReducer","newActiveIndex","_newActiveIndex","selectedItemIndex","useMultipleSelection","dropdownRef","selectedItemRefs","selectedItemKeyDownHandlers","Delete","Backspace","dropdownKeyDownHandlers","getSelectedItemProps","selectedItemProp","isFocusable","selectedItemNode","getDropdownProps","_ref4$preventKeyActio","preventKeyAction","dropdownNode","addSelectedItem","removeSelectedItem","setSelectedItems","newSelectedItems","setActiveIndex","Button","typographyProps","displayText","icon","skeleton","disabledOnClick","disableAnalytics","trackDisabledPresses","smallPadding","pressed","setPressed","setUnpressed","variantToTextColor","sizeToButtonHeight","iconPositionToClass","formattedPosition","handleTrackEvent","componentIdentifier","handleOnPressed","handleOnUnpressed","handleKeyDown","handleKeyUp","isLoading","button","onKeyUp","iconOnly","buttonText","NetworkStatus","isNetworkRequestInFlight","later","customRef","breeds","setBreeds","toggleIconButton","setToggleIconButton","findBreeds","useLazyQuery","HOME_BREED_SELECTOR_QUERY","debouncedFindBreeds","useMemo","mixedBreed","popular","otherBreed","actionAndChanges","actionAndChangesType","onInputFocus","showResults","ExpandableIconButton","fnToStr","Function","previousComparisons","equal","check","aTag","previouslyCompared","aKeys","definedKeys","bKeys","keyCount","aIterator","isMap","aKey","aValue","Uint8Array","byteLength","aCode","nativeCodeSuffix","isDefinedKey","bSet","objects","isNonEmptyArray","webpackPolyfill","Analytics","analyticsBackend","interactionEventProperties","extraProperties","few","many","accusativeWeekdays","pluralToken","timeToken","suffixExist","_helpersBlockHelperMissing2","_helpersEach2","_helpersHelperMissing2","_helpersIf2","_helpersLog2","_helpersLookup2","_helpersWith2","moveHelperToHooks","helperName","keepHelper","hooks","methodMap","lookupLevel","levelMap","createProtoAccessControl","runtimeOptions","defaultMethodWhiteList","defaultPropertyWhiteList","_createNewLookupObject","createNewLookupObject","allowedProtoProperties","allowProtoPropertiesByDefault","methods","allowedProtoMethods","allowProtoMethodsByDefault","resultIsAllowed","protoAccessControl","propertyName","checkWhiteList","loggedProperties","protoAccessControlForType","logUnexpecedPropertyAccessOnce","$Handlebars","helperExpression","params","hash","scopedId","simpleId","depth","fromEntries","_exception","parents","visitSubExpression","mustache","acceptRequired","acceptArray","acceptKey","visitBlock","visitPartial","mutating","Program","program","MustacheStatement","Decorator","BlockStatement","DecoratorBlock","PartialStatement","PartialBlockStatement","ContentStatement","CommentStatement","SubExpression","PathExpression","StringLiteral","NumberLiteral","BooleanLiteral","UndefinedLiteral","NullLiteral","Hash","pairs","HashPair","IntersectionObserverEntry","intersectionRatio","startDoc","frame","getFrameElement","registry","crossOriginUpdater","crossOriginRect","THROTTLE_TIMEOUT","POLL_INTERVAL","USE_MUTATION_OBSERVER","_setupCrossOriginUpdater","boundingClientRect","intersectionRect","convertFromParentRect","_checkForIntersections","_resetCrossOriginUpdater","_observationTargets","_registerInstance","_monitorIntersections","unobserve","_unmonitorIntersections","_unregisterInstance","_unmonitorAllIntersections","takeRecords","records","_queuedEntries","_initThresholds","opt_threshold","threshold","_parseRootMargin","opt_rootMargin","margins","win","_monitoringDocuments","monitoringInterval","domObserver","setInterval","addEvent","MutationObserver","childList","characterData","subtree","_monitoringUnsubscribes","clearInterval","removeEvent","rootDoc","hasDependentTargets","itemDoc","unsubscribes","rootIsInDom","_rootIsInDom","rootRect","_getRootRect","targetRect","rootContainsTarget","_rootContainsTarget","oldEntry","_computeTargetAndRootIntersection","rootBounds","newEntry","_hasCrossedThreshold","_callback","display","rect1","rect2","getParentNode","atRoot","parentRect","parentComputedStyle","frameRect","frameIntersect","isDoc","html","_expandRectByRootMargin","rect","_rootMarginValues","newRect","oldRatio","newRatio","thresholds","containsDeep","ensureDOMRect","targetArea","intersectionArea","toFixed","opt_options","timer","rootMargin","opt_useCapture","attachEvent","detatchEvent","parentBoundingRect","parentIntersectionRect","parentNode","assignedSlot","BreedCard","sanitisedNamePlural","lngStringToLngType","pronounContext","genders","toLocalisedSentence","oxfordComma","allButLastName","possessive","endsWith","possessivePronoun","capitaliseFirstLetter","noWobble","gentle","wobbly","stiff","defineInspect","classObject","toJSON","Location","startToken","endToken","Token","isNode","maybeNode","parseResult","countryCodeToDefaultCurrency","countryCodeToDefaultCurrencySymbol","countryCodeToLocale","countryCodeToLocaleCurrency","defaultCurrency","defaultCurrencySymbol","currencySymbol","localeToDateLocale","languageToSanitisedLocale","countrySpecificInstagramLink","countrySpecificFacebookLink","countrySpecificTikTokLink","hyphens","dataContainer","dataset","discountBasis","discountFirstPartValue","trustpilotBusinessUnitId","preferredLanguage","showRCCModalState","RoughCostCalculatorModal","showRCCModal","closeRCCModal","planType","discountValue","businessUnitId","theme","Theme","Light","StickyCTAComponent","handleCTAClick","RoughCostCalculatorSidebar","roughCostCalculatorModalElement","stickyCTA","roughCostCalculatorSidebarElement","discountModalElement","shouldSeeBlogDiscountModalVariant","shouldShowDiscountModal","DiscountModalComponent","rccModal","initDiscountModal","rv","probablySameValue","onNextChange","DEFAULT_OPTIONS","formatCurrencyWithDecimal","toLocaleString","maximumFractionDigits","formatCurrencyWithoutDecimal","minimumFractionDigits","checkNumberLengthForType","type_info","possible_lengths","possibleLengths","mobile_type","mergeArrays","actual_length","minimum_length","Recipes","Extras","Review","Formatter","isClient","getSize","windowHeight","windowSize","setWindowSize","handleResize","getLocation","lineRegexp","printLocation","printSourceLocation","sourceLocation","firstLineColumnOffset","whitespace","lineIndex","lineOffset","lineNum","columnOffset","columnNum","locationStr","locationLine","subLineIndex","subLineColumnNum","subLines","printPrefixedLines","subLine","existingLines","padLen","_assertThisInitialized","ReferenceError","_wrapNativeSuper","Class","_cache","_construct","Parent","_isNativeReflectConstruct","Reflect","construct","sham","Proxy","_Error","GraphQLError","Derived","hasNativeReflectConstruct","Super","NewTarget","nodes","positions","originalError","_nodeLocations","_nodeLocations2","_nodeLocations3","undefinedIfEmpty","nodeLocations","_this$nodes","loc","pos","originalExtensions","captureStackTrace","_i4","_error$nodes2","_i6","_error$locations2","printError","syntaxError","TokenKind","SOF","EOF","BANG","DOLLAR","AMP","PAREN_L","PAREN_R","SPREAD","COLON","EQUALS","BRACKET_L","BRACKET_R","BRACE_L","PIPE","BRACE_R","BLOCK_STRING","COMMENT","DirectiveLocation","QUERY","MUTATION","SUBSCRIPTION","SCHEMA","SCALAR","ARGUMENT_DEFINITION","INTERFACE","UNION","ENUM_VALUE","INPUT_OBJECT","INPUT_FIELD_DEFINITION","Lexer","startOfFileToken","lastToken","lineStart","_proto","advance","lookahead","_token$next","readToken","printCharCode","lexer","bodyLength","_line","_col","readComment","readBlockString","readString","readNumber","readName","unexpectedCharacterMessage","col","firstCode","isFloat","readDigits","isNameStart","chunkStart","charCode","char2hex","invalidSequence","rawValue","sourceObj","_lexer","parseName","expectToken","parseDocument","parseDefinition","parseOperationDefinition","parseFragmentDefinition","parseTypeSystemDefinition","parseTypeSystemExtension","peekDescription","unexpected","parseSelectionSet","parseOperationType","parseVariableDefinitions","parseDirectives","operationToken","optionalMany","parseVariableDefinition","parseVariable","parseTypeReference","expectOptionalToken","parseValueLiteral","parseSelection","parseFragment","parseField","nameOrAlias","parseArguments","isConst","parseConstArgument","parseArgument","hasTypeCondition","expectOptionalKeyword","parseFragmentName","parseNamedType","_this$_options","expectKeyword","experimentalFragmentVariables","parseList","parseObject","parseStringLiteral","parseObjectField","parseDirective","keywordToken","parseSchemaDefinition","parseScalarTypeDefinition","parseObjectTypeDefinition","parseInterfaceTypeDefinition","parseUnionTypeDefinition","parseEnumTypeDefinition","parseInputObjectTypeDefinition","parseDirectiveDefinition","parseDescription","parseOperationTypeDefinition","parseImplementsInterfaces","parseFieldsDefinition","_this$_options2","allowLegacySDLImplementsInterfaces","delimitedMany","_this$_options3","allowLegacySDLEmptyFields","parseFieldDefinition","parseArgumentDefs","parseInputValueDef","parseUnionMemberTypes","parseEnumValuesDefinition","parseEnumValueDefinition","parseInputFieldsDefinition","parseSchemaExtension","parseScalarTypeExtension","parseObjectTypeExtension","parseInterfaceTypeExtension","parseUnionTypeExtension","parseEnumTypeExtension","parseInputObjectTypeExtension","parseDirectiveLocations","parseDirectiveLocation","_this$_options4","noLocation","getTokenKindDesc","getTokenDesc","atToken","openKind","parseFn","closeKind","delimiterKind","isPunctuatorTokenKind","docCache","fragmentSourceMap","printFragmentWarnings","processFragments","seenKeys","sourceKeySet","parsed","allowLegacyFragmentVariables","stripLoc","literals","gql_1","extras","resetCaches","disableFragmentWarnings","enableExperimentalFragmentVariables","disableExperimentalFragmentVariables","typesWithId","cacheSlot","cacheInfoMap","getCacheInfo","dep","forgetCache","recallCache","attachCache","caches","oldListeners","attach","NON_FIXED_LINE_PHONE_TYPES","getNumberType","v2","nationalNumberPattern","isNumberTypeEqualTo","_NON_FIXED_LINE_PHONE","DIGITS","parseDigit","character","Checkmark","color","colourToAsset","greenCheckmark","greyCheckmark","redCross","setUTCDate","_handlebarsSafeString2","_handlebarsException2","Utils","runtime","SafeString","Exception","escapeExpression","VM","inverse","each","contextPath","appendContextPath","priorKey","execIteration","blockParams","conditional","includeZero","lookupProperty","_decoratorsInline2","_decoratorsInline","container","toHTML","checkRevision","compilerInfo","compilerRevision","currentRevision","_base","runtimeVersions","compilerVersions","templateSpec","main","decorator","main_d","compiler","templateWasPrecompiledWithCompilerV7","strict","depths","lambda","invokePartial","resolvePartial","extendedOptions","compilerOptions","programs","declaredBlockParams","programWrapper","wrapProgram","_parent","mergeIfNeeded","param","common","nullContext","seal","_setup","useData","initData","useBlockParams","useDepths","executeDecorators","isTop","mergedHelpers","helper","_internalWrapHelper","wrapHelper","passLookupPropertyOption","wrapHelpersToPassLookupProperty","usePartial","useDecorators","keepHelperInHelpers","allowCallsToHelperMissing","_child","currentPartialBlock","partialBlock","prog","currentDepths","transformOptionsFn","_whitespaceControl2","_parser2","Helpers","yy","locInfo","SourceLocation","srcName","handlebars","trace","symbols_","terminals_","productions_","performAction","yytext","yyleng","yylineno","yystate","$$","_$","$0","$","prepareProgram","stripComment","strip","stripFlags","prepareRawBlock","prepareBlock","open","chained","chain","prepareMustache","preparePartialBlock","preparePath","table","defaultActions","vstack","lstack","recovering","setInput","yylloc","yyloc","ranges","preErrorSymbol","expected","yyval","lex","errStr","showPosition","first_line","last_line","first_column","last_column","range","_input","_more","_less","matched","conditionStack","unput","oldLines","more","less","pastInput","upcomingInput","pre","tempMatch","_currentRules","flex","matches","begin","popState","conditions","topState","pushState","yy_","$avoiding_name_collisions","YY_START","_visitor","_visitor2","WhitespaceControl","isPrevWhitespace","isRoot","sibling","isNextWhitespace","omitRight","multiple","rightStripped","omitLeft","leftStripped","doStandalone","ignoreStandalone","isRootSeen","_isPrevWhitespace","_isNextWhitespace","openStandalone","closeStandalone","inlineStandalone","close","firstInverse","lastInverse","openStrip","closeStrip","inverseStrip","comment","dig","isLiteral","escapeFlag","escaped","openRawBlock","contents","validateClose","openBlock","inverseAndProgram","inverted","statements","firstLoc","lastLoc","errorNode","compat","compiled","compileInput","execOptions","setupOptions","_ast2","argEquals","transformLiteralToPath","sexpr","literal","equals","opcodes","opcode","otherOpcode","guid","sourceNode","stringParams","trackIds","knownHelpers","helperMissing","blockHelperMissing","unless","compileProgram","isSimple","classifySexpr","helperSexpr","simpleSexpr","ambiguousSexpr","setupFullMustacheParams","explicitPartialContext","partialName","isDynamic","preventIndent","noEscape","content","isBlock","knownHelpersOnly","falsy","addDepth","scoped","blockParamId","blockParamIndex","pushParam","isBlockParam","isHelper","isEligible","_name","pushParams","blockParamChild","omitEmpty","_codeGen2","Literal","nameLookup","internalNameLookup","depthedLookup","aliasable","revision","appendToBuffer","explicit","initializeBuffer","quotedString","lookupPropertyFunctionIsUsed","asObject","isChild","environments","preamble","stackSlot","stackVars","aliases","registers","list","hashes","compileStack","inlineStack","compileChildren","currentLocation","pushSource","lookupPropertyFunctionVarDeclaration","createFunctionContext","_context","objectLiteral","toStringWithSourceMap","file","destName","lastContext","varDeclarations","locals","aliasCount","referenceCount","mergeSource","appendOnly","forceBuffer","appendFirst","sourceSeen","bufferStart","bufferEnd","blockValue","contextName","setupHelperArgs","blockName","popStack","functionCall","ambiguousBlockValue","flushInline","topStack","lastHelper","appendContent","pendingContent","pendingLocation","isInline","replaceStack","local","appendEscaped","pushContext","pushStackLiteral","lookupOnContext","resolvePath","lookupBlockParam","lookupData","assumeObjects","requireTerminal","strictLookup","resolvePossibleLambda","pushStringParam","pushString","emptyHash","pushHash","contexts","popHash","pushLiteral","pushProgram","programExpression","paramSize","foundDecorator","invokeHelper","nonHelper","setupHelper","possibleFunctionCalls","functionLookupCode","itemsSeparatedBy","callParams","invokeKnownHelper","invokeAmbiguous","helperCall","useRegister","paramsInit","setupParams","assignToHash","pushId","matchExistingProgram","programParams","expr","createdStack","usedLiteral","incrStack","topStackName","blockHelper","objectArgs","hashIds","hashTypes","hashContexts","generateArray","reservedWords","compilerWords","RESERVED_WORDS","isValidJavaScriptVariableName","SourceNode","castChunk","codeGen","CodeGen","srcFile","chunks","iter","generateList","BaseInputField","isHidden","inputs","placeholderFieldName","isGBMobile","StandardInputField","maxCharacterLimit","indicator","AddressSearchInputField","extractNationalNumber","shouldExtractNationalPrefix","setRecommendationCompletion","recommendationId","localStorageItem","updatedOnboardingRecommendations","recommendation","copyReferralLinkButtonWasClicked","referralLink","copyReferralLinkCallback","blur","getElementsByClassName","createRange","selectNodeContents","getSelection","removeAllRanges","addRange","setSelectionRange","shareOnFacebookButtonWasClicked","shareOnWhatsAppButtonWasClicked","sendEmailButtonWasClicked","basset_hound","beagle","border_collie","boxer","bulldog","cavalier_king_charles_spaniel","cavapoo_cavalier_king_charles_spaniel_poodle_mix","chihuahua","cockapoo_cocker_spaniel_poodle_mix","cocker_spaniel","dachshund","dobermann","french_bulldog","german_shepherd","golden_retriever","goldendoodle_golden_retriever_poodle_mix","jack_russell_terrier","labradoodle_labrador_retriever_poodle_mix","labrador_retriever","maltese","maltipoo_maltese_poodle_mix","mini_american_shepherd","miniature_dachshund","pembroke_welsh_corgi","pomeranian","pug","shih_tzu","sprocker","staffordshire_bull_terrier","tibetan_terrier","vizsla","west_highland_white_terrier","whippet","classNames","classes","appendClass","parseValue","newClass","_mapToZero2","_stripStyle2","_stepper4","_performanceNow2","_raf2","_shouldStopAnimation2","_react2","_propTypes2","msPerFrame","_React$Component","wasAnimating","animationID","prevTime","accumulatedTime","unreadPropStyle","clearUnreadPropStyle","destStyle","lastIdealStyle","lastIdealVelocity","startAnimationIfNecessary","propsStyle","onRest","currentTime","timeDelta","currentFrameCompletion","framesToCatchUp","newLastIdealStyle","newLastIdealVelocity","newCurrentStyle","newCurrentVelocity","newLastIdealStyleValue","newLastIdealVelocityValue","_stepper","_stepper2","nextIdealX","nextIdealV","defaultState","_props","componentDidMount","componentWillReceiveProps","componentWillUnmount","renderedChildren","Children","only","moduleLoadTime","nodeLoadTime","upTime","uptime","unreadPropStyles","currentStyles","currentVelocities","lastIdealStyles","lastIdealVelocities","someDirty","destStyles","shouldStopAnimationAll","newLastIdealStyles","newLastIdealVelocities","newCurrentStyles","newCurrentVelocities","defaultStyles","_mergeDiff2","rehydrateStyles","mergedPropsStyles","plainStyles","cUnreadPropStyles","mergedPropsStyle","mergeAndSync","willEnter","willLeave","didLeave","oldMergedPropsStyles","oldCurrentStyles","oldCurrentVelocities","oldLastIdealStyles","oldLastIdealVelocities","newMergedPropsStyles","oldIndex","oldMergedPropsStyle","leavingStyle","newMergedPropsStyleCell","foundOldIndex","plainStyle","velocity","unmounting","_mergeAndSync","propStyles","_mergeAndSync2","newMergedPropsStyle","styleThatEntered","defaultStyleCell","_mergeAndSync3","hydratedStyles","onRemove","prevKeyIndex","nextKeyIndex","fill","nextOrderA","nextOrderB","prevOrderA","prevOrderB","pivot","_presets2","OptionComponent","optionAccessibilityAttributes","Select","CAPTURING_DIGIT_PATTERN","countryMetadata","IDDPrefixPattern","matchedGroups","possibleShorterNumber","possibleShorterNationalNumber","ButtonSkeleton","BRAND_COLOURS","brandWhite","isPossiblePhoneNumber","isPossibleNumber","isNonGeographicCallingCode","parseRFC3966","ext","_part$split2","formatRFC3966","MIN_LENGTH_PHONE_NUMBER_PATTERN","VALID_PHONE_NUMBER_WITH_EXTENSION","VALID_PHONE_NUMBER_PATTERN","isViablePhoneNumber","getExtensionDigitsPattern","maxLength","createExtensionPattern","purpose","optionalExtnSuffix","possibleSeparatorsBetweenNumberAndExtLabel","possibleSeparatorsNumberExtLabelNoComma","FIRST_GROUP_PATTERN","EstimatedDailyPlanPrices","ageCategory","EXTN_PATTERN","parseIncompletePhoneNumber","parsePhoneNumberCharacter","prevParsedCharacters","PHONE_NUMBER_START_PATTERN","AFTER_PHONE_NUMBER_END_PATTERN","_parseInput","throwOnError","withExtensionStripped","numberWithoutExtension","extractExtension","parseInput","formattedPhoneNumber","_parsePhoneNumber","exactCountry","valid","extended","possible","withMetadata","getDiscountedPrice","price","dogAgeCategory","ageToAgeCategory","dailyPlanPrices","mixedPlanDailyPrice","allPlanDailyPrice","allPlanDiscountedPrice","mixedPlanDiscountedPrice","strikethroughPrice","discountedPrice","isDiscounted","imageAlt","imageSlug","brandBlue100","brandBlue200","brandBlue300","brandBlue400","brandBlue500","brandBlue600","brandBlue700","brandYellow100","brandYellow200","brandYellow300","brandYellow400","brandYellow500","brandYellow600","brandYellow700","brandPink100","brandPink200","brandPink300","brandPink400","brandPink500","brandPink600","brandPink700","brandRed100","brandRed200","brandRed300","brandRed400","brandRed500","brandRed600","brandRed700","brandBlack","cardboardBrown","BreedQuestionnaire","RuleId","ValidationMessage","ruleMessage","invalidatePasswordField","PasswordInputField","passwordDisplayed","setPasswordDisplayed","passwordRules","setPassWordRules","MinimumLength","OneUpperCaseLetter","OneSpecialCharacterOrNumber","OneLowercaseLetter","testValue","validateValue","prevRules","onChangeCallback","togglePasswordVisibility","onKeyPress","defaultMakeData","Trie","weakness","makeData","getChildTrie","isObjRef","weak","strong","roundingMethod","badChars","escapeChar","chr","prefixPattern","prefixMatch","capturedGroupsCount","hasCapturedGroups","nationalPrefixTransformRule","possiblePositionOfTheFirstCapturedGroup","ageOptions","AgeSelect","formattedAgeOptions","formattedAgeOption","handleAgeChange","uniqBy","keyValue","WeightSelect","formattedWeightOptions","estimate","formattedWeightOption","handleWeightChange","defaultDispose","Cache","dispose","newest","oldest","getNode","clean","parentEntrySlot","toArray","maybeUnsubscribe","entryOrDep","emptySetPool","assert","optionalMessage","valueGet","Entry","childValues","dirtyChildren","recomputing","deps","mightBeDirty","rememberParent","recompute","forgetChildren","recomputeNewValue","setDirty","maybeSubscribe","reportClean","setClean","reallyRecompute","reportDirty","eachParent","forgetChild","dependOn","forgetDeps","reportDirtyChild","reportCleanChild","parentCount","parentWasClean","childValue","removeDirtyChild","dc","_value","EntryMethods","depsByKey","dep_1","entryMethodName","m_1","makeDefaultMakeCacheKeyFunction","keyTrie","originalFunction","dirtyKey","peekKey","forgetKey","getKey","Paw","Arrow","UserType","CTA","currentUserType","PreWizardGuest","Guest","wizardCtaLink","isApolloError","ApolloError","clientErrors","extraInfo","didWarnUncachedGetSnapshot","useSyncExternalStore","getSnapshot","getServerSnapshot","forceUpdate","checkIfSnapshotChanged","useQuery","useInternalState","stateRef","setTick","tick","InternalState","asyncResolveFns","optionsToIgnoreOnce","ssrDisabledResult","skipStandbyResult","toQueryResultCache","previousResult","previousData","asyncUpdate","watchQueryOptions","renderPromises","useOptions","useObservableQuery","unsafeHandlePartialRefetch","queryResult","toQueryResult","createWatchQueryOptions","queryHookOptions","currentWatchQueryOptions","getObsQueryOptions","ssr","skip","globalDefaults","otherOptions","getDefaultFetchPolicy","getSSRObservable","obsQueryFields","ssrAllowed","registerSSRObservable","addObservableQueryPromise","nextResult","handleErrorOrCompleted","resultWithoutPartial","shorterNumber","_countryCallingCode","hasCallingCode","nationalPhoneNumber","possibleCountries","selectCountryFromList","SINGLE_IDD_PREFIX_REG_EXP","formatExtension","extension","formatNumber","addExtension","fromCountry","iddPrefix","defaultIDDPrefix","getIddPrefix","formatIDD","formatAs","availableFormats","nationalNnumber","lastLeadingDigitsPattern","chooseFormatForNumber","_metadata","isCountryCode","hasTypes","national_number","isNonNullObject","matchHtmlEntity","htmlEntities","unescapeHtmlEntity","transEmptyNodeValue","transSupportBasicHtmlNodes","transWrapTextNodes","transKeepBasicHtmlNodesFor","unescape","I18nContext","getDefaults","ReportNamespaces","usedNamespaces","getI18n","setDefaults","setI18n","protectedDayOfYearTokens","protectedWeekYearTokens","isProtectedDayOfYearToken","isProtectedWeekYearToken","throwProtectedError","errorProps","endLineNumber","endColumn","tmp","lineNumber","nop","TemplateId","TrustpilotWidget","trustBoxRef","Trustpilot","loadFromElement","Slim","EAGER_METHODS","internalState","execOptionsRef","useQueryResult","eagerMethods","_loop_1","EAGER_METHODS_1","CookieConsentModal","cookieConsentModal","isModalOpen","setIsModalOpen","showStrictModal","Age","Breed","FussinessHelp","Goals","Weight","Allergies","Health","Snacks","PetParent","userDataVar","dogsDataVar","subscriptionDataVar","shippingCountryDataVar","featureFlagsDataVar","hasNotificationsVar","settingsVar","BreedSelect","onBreedSelectionCallback","dogAge","normalizeArguments","_Array$prototype$slic2","arg_1","arg_2","arg_3","arg_4","firstWeekOfNextYear","startOfNextYear","firstWeekOfThisYear","startOfThisYear","MIN_LENGTH_FOR_NSN","MAX_LENGTH_FOR_NSN","MAX_LENGTH_COUNTRY_CODE","VALID_DIGITS","VALID_PUNCTUATION","PLUS_CHARS","fourthOfJanuaryOfNextYear","fourthOfJanuaryOfThisYear","deepFreeze","isFrozen","shallowFreeze","getOwnPropertyNames","pb","DEFAULT_EXT_PREFIX","CALLING_CODE_REG_EXP","Metadata","is_object","type_of","validateMetadata","setVersion","v1","v3","nonGeographic","nonGeographical","getCountryMetadata","countryCallingCodes","NumberingPlan","getNumberingPlanMetadata","getCountryCodeForCallingCode","_type","country_phone_code_to_countries","country_calling_codes","globalMetadataObject","_getFormats","getDefaultCountryMetadataForRegion","Format","_getNationalPrefixFormattingRule","_getNationalPrefixIsOptionalWhenFormatting","_type2","getType","Type","FIRST_GROUP_ONLY_PREFIX_PATTERN","isSupportedCountry","v4"],"mappings":"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ASA,IAEQ,OAAlBI,GACC,6BACE,yBAAKzG,UAAU,sCACb,yBAAKA,UAAU,sCACb,kBAAC,UAAD,CACEyG,cAAeA,EACfN,iBAAkBA,EAClB9b,UAAWA,EACXgc,QAASA,U,kCCpJ7BhpB,OAAOqN,eAAeC,EAAS,aAAc,CAC3ChL,OAAO,IAEgBgL,EAAQ8C,mBAAqB,CAAC,QAErC9C,EAAQ4C,YAAc,CACxC,MACA,OACA,SACA,MACA,SACA,SACA,MACA,OACA,UACA,WACA,UACA,YACA,aACA,cACA,MAEA,QACA,OACA,MACA,QACA,MACA,OACA,QACA,iBACA,MACA,SACA,UACA,SACA,MAEA,SACA,WACA,SACA,OACA,YACA,UACA,SACA,YACA,WACA,OACA,SACA,SACA,SACA,kBACA,iBACA,OACA,QACA,QACA,YACA,YACA,UACA,SACA,MACA,MACA,aACA,MACA,QACA,YACA,OACA,SACA,QACA,OACA,MACA,OACA,OACA,OACA,aACA,UACA,WACA,UACA,OACA,UACA,QACA,UACA,SACA,OACA,QACA,UACA,MACA,MACA,QACA,OACA,QACA,UACA,iBACA,OACA,OACA,MACA,YACA,cACA,WACA,WACA,WACA,WACA,aACA,UACA,SACA,MACA,MACA,OACA,MACA,MACA,QACA,SACA,OACA,UACA,SACA,OACA,UACA,MACA,SACA,QACA,MACA,OACA,OACA,QACA,MACA,MACA,QACA,cAEA,cACA,OACA,YACA,OACA,MACA,MAEA,aACA,QACA,aACA,OACA,MACA,OACA,MACA,OACA,UAEA,QACA,SACA,SACA,MACA,WACA,MACA,WACA,cACA,WACA,SACA,UACA,WACA,WACA,UACA,QACA,WACA,WACA,MACA,OACA,MACA,MACA,OACA,MACA,OACA,cACA,MACA,SACA,OACA,iBACA,QACA,WACA,UACA,aACA,MACA,UACA,QACA,OACA,SACA,UACA,OAEA,OACA,OACA,SACA,OACA,SACA,MACA,WACA,WACA,MACA,MACA,OACA,MACA,MACA,SACA,MACA,OACA,MACA,MACA,SACA,UACA,UACA,QACA,OACA,QACA,UAEA,YACA,SAEA,SACA,WACA,SACA,QACA,UACA,OACA,QACA,OACA,WACA,SACA,WACA,QACA,SACA,WACA,WACA,QACA,OACA,UACA,QACA,QACA,SACA,UACA,UACA,MACA,UACA,WACA,YACA,UACA,UACA,WACA,SACA,SACA,eACA,aACA,UACA,cACA,UACA,iBACA,OACA,OACA,UACA,UACA,SACA,UACA,UACA,MACA,SACA,aACA,cACA,UACA,QACA,MACA,SACA,UACA,MACA,aACA,QACA,OACA,QACA,MACA,QACA,OACA,OACA,SACA,SACA,MACA,OACA,MACA,OACA,SACA,QACA,SACA,WACA,OACA,WACA,QACA,WACA,SACA,UACA,OACA,SACA,MACA,MACA,WACA,OACA,UACA,SACA,YACA,WACA,WACA,OACA,MACA,MACA,OACA,SAEA,MAEA,UAEA,MACA,WACA,QACA,MACA,QACA,OACA,SAEA,SACA,SACA,OACA,MACA,QACA,MACA,MACA,QACA,MACA,YACA,QACA,SACA,SACA,WACA,cACA,cAEA,QACA,YACA,WACA,OACA,MACA,SAEA,WACA,aACA,MACA,SAEA,WACA,SACA,UACA,UACA,aACA,OACA,OACA,YACA,QACA,SACA,MACA,OACA,OACA,UACA,UACA,OACA,QACA,WACA,UACA,UACA,OACA,WACA,OACA,OACA,QACA,UACA,YACA,OACA,YACA,WACA,OACA,UACA,MACA,UACA,SACA,UACA,OACA,UACA,UAEA,MACA,MACA,OACA,cACA,WACA,OACA,QACA,UACA,QACA,aACA,MACA,OACA,YACA,MACA,UACA,YACA,WACA,MACA,UACA,YACA,MACA,OACA,YACA,SACA,MACA,MACA,UACA,QACA,SACA,OACA,QACA,MACA,SACA,MACA,OACA,MACA,MACA,OACA,UACA,SACA,OACA,OACA,QACA,QACA,SACA,QACA,QACA,MACA,SACA,QACA,QACA,OACA,MACA,MACA,UACA,OACA,YACA,OACA,MAEA,WACA,OACA,SACA,MACA,MACA,MACA,WACA,WACA,SACA,QACA,QACA,UACA,QACA,WACA,QACA,OACA,QACA,UACA,OACA,OACA,UACA,UACA,OACA,MACA,OACA,WACA,SACA,aACA,OACA,WACA,OACA,SACA,OACA,SACA,YACA,UACA,MACA,MACA,SACA,WACA,UACA,YACA,YACA,QACA,YACA,QAEA,QACA,WACA,OACA,UACA,MACA,UACA,SACA,UACA,QACA,MACA,OAEA,SACA,QACA,UACA,MACA,OACA,MACA,MACA,OACA,MAEA,QACA,SACA,OACA,OACA,aACA,MACA,aACA,WACA,OACA,MACA,MACA,YACA,YACA,SACA,MACA,QACA,gBACA,SACA,cACA,WACA,QAEA,UACA,MACA,WACA,OACA,MACA,QAEA,SACA,OACA,MACA,MACA,OACA,QACA,UACA,MAEA,MACA,MACA,MACA,OACA,SACA,MACA,MACA,WACA,OACA,SACA,UACA,SACA,OACA,cACA,iBACA,kBACA,MACA,MACA,MACA,SACA,SACA,UACA,OACA,QACA,UACA,SACA,OACA,MACA,MACA,OACA,YACA,QACA,UAEA,cACA,QACA,YACA,SAEA,OACA,YACA,UACA,UACA,MACA,SACA,UACA,MACA,SACA,MACA,QACA,UACA,SACA,QACA,OACA,QACA,OAEA,OACA,OACA,gBACA,YACA,WACA,OACA,QACA,UACA,OACA,UACA,QACA,OACA,QACA,OACA,SACA,QACA,MACA,MACA,OACA,QACA,SACA,QACA,OACA,MACA,SACA,QACA,QACA,OACA,MACA,eACA,MACA,OACA,WACA,QACA,OACA,SACA,QACA,SACA,OACA,SACA,SACA,MACA,aACA,QACA,MACA,SACA,YACA,UACA,WACA,YACA,WACA,SACA,MAGA,WACA,MACA,QACA,OACA,YACA,OACA,WACA,MACA,OAEA,WACA,UACA,QACA,YACA,MACA,OACA,OACA,MACA,aACA,MACA,MACA,MACA,OACA,SAEA,OACA,MACA,MACA,MACA,SACA,QACA,UAGA,SACA,WACA,SACA,OACA,cACA,MACA,QAEA,MACA,MAEA,MACA,SACA,SAEA,MAEA,SACA,OACA,aACA,SACA,OACA,MACA,MACA,MACA,UACA,UACA,UACA,UACA,MACA,aACA,OACA,OACA,aACA,QACA,MACA,MACA,MACA,OACA,OACA,QACA,QACA,SACA,SACA,QACA,qBACA,SACA,MACA,SACA,QACA,MACA,MACA,MACA,MACA,MACA,WACA,MACA,SACA,UACA,SACA,cACA,UACA,OACA,QACA,MACA,MACA,MACA,SACA,aACA,MACA,OACA,SACA,SACA,MACA,UAEA,UACA,QACA,SACA,MACA,MACA,OAEA,YAEA,QACA,OACA,WACA,QACA,QACA,YACA,MACA,OACA,MACA,SACA,WACA,MACA,UACA,QACA,QACA,cACA,SACA,SAEA,OACA,SACA,WACA,MACA,MACA,OACA,OACA,UACA,QACA,QACA,OACA,cACA,WACA,OACA,MACA,OACA,QACA,UACA,OACA,OACA,YACA,QACA,QACA,QACA,MACA,OACA,cACA,OACA,cACA,QACA,aACA,WACA,aACA,MACA,aACA,MACA,MACA,OACA,SACA,QACA,MACA,SACA,QACA,OACA,OACA,aACA,UACA,SACA,UACA,MACA,WACA,cACA,QACA,QACA,SACA,OACA,WACA,MACA,OACA,UACA,SACA,SACA,aACA,OACA,aACA,SACA,UACA,UACA,OACA,YACA,QAEA,MACA,MACA,MACA,OACA,SACA,QACA,QACA,SACA,OACA,OACA,QACA,OACA,MACA,MACA,SACA,WACA,OACA,SACA,SACA,OACA,QACA,WACA,UACA,UACA,kBACA,SACA,MAEA,OACA,MACA,OACA,OACA,MACA,MACA,MACA,MACA,aACA,UACA,eACA,SACA,SACA,UACA,UACA,YAEA,OACA,SACA,OACA,SACA,WACA,OACA,SACA,QACA,WACA,MACA,QACA,MACA,MACA,OACA,MACA,YACA,QACA,OACA,QACA,OACA,UACA,QACA,OACA,WACA,SACA,OACA,WACA,UACA,OACA,OACA,UACA,OACA,MACA,OACA,MACA,QACA,QACA,QACA,QACA,OACA,SACA,SACA,WACA,WACA,OACA,QACA,YACA,OACA,OACA,MACA,QAEA,QACA,OACA,gBACA,MAEA,QACA,UACA,OAEA,YACA,YAEA,MACA,WACA,YACA,UACA,QACA,SACA,SACA,QACA,QACA,QACA,WACA,SACA,UACA,OACA,UACA,SACA,SACA,aACA,QACA,SAEA,UACA,MACA,SACA,OACA,SACA,SACA,aACA,QACA,SACA,MACA,OACA,MACA,MACA,OACA,OACA,aACA,MAGA,UACA,SACA,OACA,MACA,UACA,UACA,OACA,UACA,SACA,UACA,OACA,QACA,QACA,SACA,MACA,SACA,QACA,QACA,QACA,QACA,MACA,QACA,UACA,QACA,QACA,OACA,SACA,OACA,QACA,UACA,WACA,SACA,gBACA,YACA,qBACA,QACA,MACA,OACA,MACA,QACA,QACA,MACA,QACA,MAEA,SACA,aACA,MACA,MACA,MACA,YACA,OACA,WACA,QACA,WACA,WACA,eACA,MACA,SACA,QACA,MACA,SACA,SACA,MACA,MACA,SACA,OACA,SAGA,OACA,OACA,aACA,QACA,aACA,QACA,OACA,SACA,OACA,SACA,SACA,QACA,UACA,SACA,OACA,UAEA,QACA,UACA,UACA,iBACA,SACA,QACA,UACA,MACA,UACA,QACA,OACA,UACA,OACA,OACA,cACA,MACA,UACA,OACA,UACA,MACA,gBACA,WACA,OACA,QACA,QACA,MACA,MACA,MACA,OACA,QACA,UACA,SACA,MACA,cACA,cACA,cACA,aACA,cACA,cACA,oBACA,aACA,cACA,aACA,aACA,cACA,aACA,oBACA,aACA,cACA,iBACA,eACA,iBACA,eACA,aACA,eACA,WACA,aACA,aACA,cACA,iBACA,oBACA,YACA,aACA,cACA,gBACA,aACA,cACA,aACA,aACA,cACA,gBACA,cAEA,cACA,YACA,iBACA,aACA,cACA,cACA,mBACA,cACA,eACA,cACA,cACA,kBACA,cACA,aACA,YACA,iBACA,iBACA,cACA,kBAEA,aACA,iBACA,mBACA,kBACA,eAEA,iBACA,iBACA,eACA,eACA,aACA,eACA,eACA,YACA,YACA,kBACA,cACA,cACA,YAEA,aACA,cACA,eACA,cACA,cACA,cACA,cACA,YACA,gBACA,aACA,0BACA,2BACA,YACA,cACA,uBACA,cACA,cACA,cAEA,MACA,MACA,SACA,QACA,UACA,SACA,YACA,OACA,WACA,MACA,UACA,MACA,SACA,OACA,OACA,MAEA,OACA,WAEsB5C,EAAQ0C,gBAAkB,CAChD,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KAEA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KAEA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,cACA,eACA,cACA,eACA,cACA,iBACA,cACA,aACA,YACA,yBACA,YACA,YACA,aACA,aACA,gBACA,gBACA,cACA,iBACA,cACA,gBACA,YACA,cACA,cACA,cACA,YACA,kBACA,eACA,kBACA,iBACA,oBACA,iBACA,cACA,iBACA,kBACA,oBACA,eACA,eACA,cACA,iBACA,cACA,WACA,aACA,eACA,WACA,cACA,WACA,iBACA,cACA,aACA,aACA,mBACA,oBACA,aACA,gBACA,gBACA,KACA,KACA,KACA,KACA,O,mBChiDA,IAAI0b,EAAW,IACXC,EAAmB,iBACnBC,EAAc,sBACdC,EAAM,IAGNC,EAAU,qBACVC,EAAU,oBACVC,EAAS,6BACTC,EAAY,kBACZC,EAAY,kBAGZC,EAAS,aAGTC,EAAa,qBAGbC,EAAa,aAGbC,EAAY,cAGZC,EAAW,mBAGXC,EAAezB,SAmFnB,SAAS0B,EAAUnqB,GACjB,OAAOA,IAAUA,EAmCnB,SAASoqB,EAAWxM,EAAQrS,GAC1B,OA7GF,SAAkBgS,EAAO8M,GAKvB,IAJA,IAAIC,GAAS,EACTtrB,EAASue,EAAQA,EAAMve,OAAS,EAChCoB,EAASvC,MAAMmB,KAEVsrB,EAAQtrB,GACfoB,EAAOkqB,GAASD,EAAS9M,EAAM+M,GAAQA,EAAO/M,GAGhD,OAAOnd,EAoGAmqB,CAAShf,GAAO,SAAU1B,GAC/B,OAAO+T,EAAO/T,MAqBlB,IARiB6T,EAAM8M,EAQnBC,EAAc/sB,OAAOK,UAGrBC,EAAiBysB,EAAYzsB,eAO7B0sB,EAAiBD,EAAYE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AAAA,M,cAMAC,K,mBAAAA,M,cAIAC,K,oBAAAA,E,2BAAAA,M,cAKAC,K,qCAAAA,M,cAIAC,K,0BAAAA,E,kBAAAA,E,kBAAAA,E,wBAAAA,E,iBAAAA,M,cAQAC,K,oBAAAA,E,kCAAAA,E,mBAAAA,M,cAMAC,K,kCAAAA,E,4BAAAA,E,0CAAAA,E,8BAAAA,E,6CAAAA,M,cAQAC,K,oBAAAA,E,gCAAAA,E,iBAAAA,M,cAMAC,K,oBAAAA,E,oBAAAA,E,qBAAAA,M,cAMAC,K,UAAAA,E,+BAAAA,M,cAKAC,K,sBAAAA,E,aAAAA,M,cAKAC,K,gCAAAA,E,0CAAAA,E,0BAAAA,E,2BAAAA,M,cAOAC,K,gCAAAA,E,8CAAAA,E,0BAAAA,E,kDAAAA,E,2BAAAA,M,cAQAC,K,gCAAAA,E,0BAAAA,E,kCAAAA,E,2BAAAA,M,cAOAC,K,wBAAAA,E,qBAAAA,M,cAKAC,K,gBAAAA,E,YAAAA,E,aAAAA,M,cAMAC,K,8BAAAA,E,kBAAAA,E,kBAAAA,E,yBAAAA,M,cAOAC,K,wBAAAA,E,eAAAA,M,cAKAC,K,8BAAAA,E,0BAAAA,E,wBAAAA,E,2BAAAA,M,cAOAC,K,cAAAA,E,UAAAA,E,iBAAAA,M,cAMAC,K,0BAAAA,E,oCAAAA,E,8BAAAA,E,4BAAAA,E,sCAAAA,E,iDAAAA,M,cASAC,K,8DAAAA,E,0DAAAA,E,sDAAAA,E,gEAAAA,E,qDAAAA,M,cAQAC,K,oBAAAA,E,sBAAAA,E,oBAAAA,E,qBAAAA,M,cAOAC,K,oBAAAA,E,oBAAAA,E,oBAAAA,E,4BAAAA,E,yBAAAA,M,cAQAC,K,kBAAAA,E,uBAAAA,M,cAKAC,K,gBAAAA,E,aAAAA,M,cAKAC,K,cAAAA,E,kBAAAA,E,wBAAAA,E,sBAAAA,E,qCAAAA,M,cAQAC,K,sCAAAA,E,0BAAAA,E,4BAAAA,E,wDAAAA,E,uCAAAA,M,cAQAC,K,gCAAAA,E,6BAAAA,M,cAKAC,K,oBAAAA,E,oBAAAA,E,YAAAA,E,YAAAA,E,wBAAAA,E,iBAAAA,M,cASAC,K,8BAAAA,E,sEAAAA,E,4BAAAA,E,YAAAA,E,oCAAAA,E,gFAAAA,E,gBAAAA,E,cAAAA,E,8BAAAA,E,wDAAAA,E,oCAAAA,E,oCAAAA,E,kEAAAA,E,wEAAAA,E,gCAAAA,E,oCAAAA,E,gCAAAA,E,kDAAAA,E,wCAAAA,E,wDAAAA,E,0CAAAA,E,sCAAAA,E,sDAAAA,E,oCAAAA,E,sDAAAA,E,sCAAAA,E,gEAAAA,E,wCAAAA,E,gDAAAA,E,kDAAAA,E,sCAAAA,E,wCAAAA,E,gDAAAA,E,wCAAAA,E,gDAAAA,E,gCAAAA,E,gCAAAA,E,sBAAAA,E,0FAAAA,E,wCAAAA,E,8CAAAA,E,sCAAAA,E,gDAAAA,E,0CAAAA,E,oDAAAA,E,sEAAAA,E,wCAAAA,E,4DAAAA,E,sCAAAA,E,kBAAAA,E,gBAAAA,E,kBAAAA,E,gBAAAA,E,kDAAAA,E,oDAAAA,E,4BAAAA,E,0EAAAA,E,kBAAAA,E,kDAAAA,E,gBAAAA,E,gCAAAA,E,oBAAAA,E,gCAAAA,E,8FAAAA,E,sBAAAA,E,wCAAAA,E,oCAAAA,E,oCAAAA,E,4CAAAA,E,wDAAAA,E,sDAAAA,E,sDAAAA,E,oCAAAA,E,wBAAAA,E,8BAAAA,E,0FAAAA,E,4CAAAA,E,4BAAAA,E,kEAAAA,E,gCAAAA,E,kDAAAA,E,oDAAAA,E,8CAAAA,E,gCAAAA,E,wBAAAA,E,sBAAAA,E,sCAAAA,E,4CAAAA,E,wCAAAA,E,oEAAAA,E,oBAAAA,E,sCAAAA,E,sBAAAA,E,kBAAAA,E,kEAAAA,E,gBAAAA,E,kBAAAA,E,8BAAAA,E,gCAAAA,E,kGAAAA,E,wEAAAA,E,gBAAAA,E,wEAAAA,E,gCAAAA,E,0CAAAA,E,4CAAAA,E,kBAAAA,E,cAAAA,E,4DAAAA,E,gCAAAA,E,kCAAAA,E,oCAAAA,E,8CAAAA,E,sCAAAA,E,gBAAAA,E,kDAAAA,E,oBAAAA,E,kFAAAA,E,oCAAAA,E,sCAAAA,E,gDAAAA,E,gCAAAA,E,4BAAAA,E,kBAAAA,E,0BAAAA,E,kBAAAA,E,4DAAAA,E,8BAAAA,E,0EAAAA,E,wBAAAA,E,0CAAAA,E,wBAAAA,E,8CAAAA,E,8BAAAA,E,4CAAAA,E,4BAAAA,E,0CAAAA,E,sCAAAA,E,8BAAAA,E,8CAAAA,E,oCAAAA,E,0CAAAA,E,oBAAAA,E,8DAAAA,E,oGAAAA,E,sHAAAA,E,wDAAAA,E,4BAAAA,E,8BAAAA,E,4BAAAA,E,kBAAAA,E,oDAAAA,E,sBAAAA,E,kCAAAA,E,4FAAAA,E,kCAAAA,E,kBAAAA,E,0DAAAA,E,gBAAAA,E,sBAAAA,E,kBAAAA,E,sBAAAA,E,gDAAAA,E,sCAAAA,E,kCAAAA,E,8BAAAA,E,oBAAAA,E,wEAAAA,E,gCAAAA,E,4EAAAA,E,4EAAAA,E,gBAAAA,E,wCAAAA,E,sDAAAA,E,kCAAAA,E,sCAAAA,E,wBAAAA,E,8CAAAA,E,oDAAAA,E,kDAAAA,E,sBAAAA,E,4EAAAA,E,oEAAAA,E,sBAAAA,E,gDAAAA,E,8CAAAA,E,sBAAAA,E,kCAAAA,E,sCAAAA,E,sBAAAA,E,sCAAAA,E,kGAAAA,E,wFAAAA,E,8DAAAA,E,0CAAAA,E,gBAAAA,E,gBAAAA,E,gCAAAA,E,kCAAAA,E,0CAAAA,E,8CAAAA,E,sFAAAA,E,8HAAAA,E,gDAAAA,E,sCAAAA,E,oCAAAA,E,kCAAAA,E,kCAAAA,E,gCAAAA,E,oCAAAA,E,oDAAAA,E,0CAAAA,E,0CAAAA,E,oDAAAA,E,gFAAAA,E,wBAAAA,E,4CAAAA,E,oBAAAA,E,8BAAAA,E,kCAAAA,E,8BAAAA,E,oCAAAA,E,8BAAAA,E,wFAAAA,E,4CAAAA,E,sEAAAA,E,kCAAAA,E,gEAAAA,E,gDAAAA,E,kCAAAA,E,gCAAAA,E,gCAAAA,E,YAAAA,E,wGAAAA,E,sDAAAA,E,kCAAAA,E,kCAAAA,E,0CAAAA,E,oCAAAA,E,0DAAAA,E,wDAAAA,E,4BAAAA,E,sDAAAA,E,kCAAAA,E,0GAAAA,E,8CAAAA,E,oBAAAA,E,oCAAAA,E,kEAAAA,E,oFAAAA,E,8BAAAA,E,4DAAAA,E,gDAAAA,E,wBAAAA,E,4EAAAA,E,gCAAAA,E,oDAAAA,E,wDAAAA,E,kCAAAA,E,8BAAAA,E,sBAAAA,E,wCAAAA,E,oDAAAA,E,wCAAAA,E,sCAAAA,E,0BAAAA,E,kCAAAA,E,kBAAAA,E,oBAAAA,E,oBAAAA,E,oBAAAA,E,oCAAAA,E,sFAAAA,E,kCAAAA,E,8CAAAA,E,4BAAAA,E,wCAAAA,E,sCAAAA,E,4EAAAA,E,wDAAAA,E,4BAAAA,E,8BAAAA,E,gFAAAA,E,0CAAAA,E,kCAAAA,E,sCAAAA,E,kCAAAA,E,8CAAAA,E,4CAAAA,E,oBAAAA,E,oFAAAA,E,sBAAAA,E,kBAAAA,E,0BAAAA,E,sDAAAA,E,gCAAAA,E,8BAAAA,E,wCAAAA,E,gCAAAA,E,oCAAAA,E,sFAAAA,E,UAAAA,E,sCAAAA,E,oBAAAA,E,wCAAAA,E,4CAAAA,E,cAAAA,E,gBAAAA,E,oBAAAA,E,8BAAAA,E,4BAAAA,E,oCAAAA,E,gCAAAA,E,gBAAAA,E,gBAAAA,E,sFAAAA,E,wCAAAA,E,gDAAAA,E,8CAAAA,E,0EAAAA,E,sCAAAA,E,oCAAAA,E,0CAAAA,E,sCAAAA,E,oBAAAA,E,oCAAAA,E,0CAAAA,E,wBAAAA,E,wBAAAA,E,8CAAAA,E,gEAAAA,E,sDAAAA,E,kBAAAA,E,kBAAAA,E,sCAAAA,E,gBAAAA,E,kBAAAA,E,sBAAAA,E,0DAAAA,E,wCAAAA,E,oCAAAA,E,oBAAAA,E,gEAAAA,E,kBAAAA,E,cAAAA,E,YAAAA,E,gDAAAA,E,sJAAAA,E,gDAAAA,E,0CAAAA,E,0IAAAA,E,8DAAAA,E,4IAAAA,E,wCAAAA,E,oCAAAA,E,0CAAAA,E,0DAAAA,E,kBAAAA,E,gBAAAA,E,YAAAA,E,wCAAAA,E,gDAAAA,E,4CAAAA,E,wDAAAA,E,4BAAAA,E,oEAAAA,E,kCAAAA,E,kCAAAA,E,gCAAAA,E,oCAAAA,E,wCAAAA,E,0CAAAA,E,kCAAAA,E,wEAAAA,E,4CAAAA,E,gDAAAA,E,sCAAAA,E,cAAAA,E,wBAAAA,E,sCAAAA,E,sEAAAA,E,sBAAAA,E,oBAAAA,E,0DAAAA,E,0DAAAA,E,gDAAAA,E,wCAAAA,E,4DAAAA,E,sBAAAA,E,4CAAAA,E,gDAAAA,E,sDAAAA,E,4CAAAA,E,4DAAAA,E,gIAAAA,E,kIAAAA,E,8BAAAA,E,kCAAAA,E,gFAAAA,E,cAAAA,E,0BAAAA,E,kCAAAA,E,kCAAAA,E,gCAAAA,E,kBAAAA,E,wCAAAA,E,kDAAAA,E,8CAAAA,E,8DAAAA,E,gBAAAA,E,wBAAAA,E,gBAAAA,E,0CAAAA,E,oEAAAA,E,gBAAAA,E,oDAAAA,E,kEAAAA,E,0DAAAA,E,kBAAAA,E,gFAAAA,E,sEAAAA,E,8DAAAA,E,gBAAAA,E,wCAAAA,E,wDAAAA,E,wCAAAA,E,4CAAAA,E,8BAAAA,E,oCAAAA,E,4BAAAA,E,UAAAA,E,oEAAAA,E,oBAAAA,E,gDAAAA,E,gBAAAA,E,8CAAAA,E,cAAAA,E,YAAAA,E,YAAAA,E,4EAAAA,E,oCAAAA,E,8CAAAA,E,sCAAAA,E,0CAAAA,E,wBAAAA,E,0BAAAA,E,wDAAAA,E,gFAAAA,E,sCAAAA,E,0CAAAA,E,gEAAAA,E,8EAAAA,E,wBAAAA,E,0DAAAA,E,4CAAAA,E,4BAAAA,E,kCAAAA,E,kCAAAA,E,0BAAAA,E,oCAAAA,E,oFAAAA,E,8BAAAA,E,gBAAAA,E,kBAAAA,E,kBAAAA,E,0BAAAA,E,0BAAAA,E,wBAAAA,E,sEAAAA,E,sBAAAA,E,sBAAAA,E,gEAAAA,E,0EAAAA,E,wCAAAA,E,oCAAAA,E,oCAAAA,E,oCAAAA,E,oDAAAA,E,0CAAAA,E,8BAAAA,E,oBAAAA,E,wDAAAA,E,8GAAAA,E,kEAAAA,E,kGAAAA,E,wFAAAA,E,sCAAAA,E,sBAAAA,E,kBAAAA,E,oBAAAA,E,4CAAAA,E,kCAAAA,E,kBAAAA,E,0DAAAA,E,oCAAAA,E,kBAAAA,E,0CAAAA,E,kBAAAA,E,gCAAAA,E,0EAAAA,E,wEAAAA,E,oCAAAA,E,8BAAAA,E,4BAAAA,E,gEAAAA,E,kBAAAA,E,gEAAAA,E,8BAAAA,E,0CAAAA,E,wCAAAA,E,kDAAAA,E,0DAAAA,E,0DAAAA,E,gDAAAA,E,8BAAAA,E,kCAAAA,E,kCAAAA,E,sCAAAA,E,oCAAAA,E,gDAAAA,E,oBAAAA,E,wBAAAA,E,wBAAAA,E,wGAAAA,E,oBAAAA,E,sFAAAA,E,sFAAAA,E,wBAAAA,E,wBAAAA,E,sBAAAA,E,wDAAAA,E,oBAAAA,E,8EAAAA,E,kCAAAA,E,wCAAAA,E,oGAAAA,E,gCAAAA,E,oCAAAA,E,kCAAAA,E,oCAAAA,E,gCAAAA,E,oBAAAA,E,gFAAAA,E,8BAAAA,E,gCAAAA,E,kCAAAA,E,kCAAAA,E,kCAAAA,E,kBAAAA,E,oBAAAA,E,kCAAAA,E,wBAAAA,E,0CAAAA,E,oDAAAA,E,wEAAAA,E,wCAAAA,E,gCAAAA,E,oBAAAA,E,gCAAAA,E,sCAAAA,E,gBAAAA,E,oCAAAA,E,oEAAAA,E,wBAAAA,E,wEAAAA,E,0BAAAA,E,gCAAAA,E,gDAAAA,E,8BAAAA,E,kDAAAA,E,0DAAAA,E,0CAAAA,E,0DAAAA,E,0DAAAA,E,wBAAAA,E,kBAAAA,E,4DAAAA,E,oCAAAA,E,oDAAAA,E,gGAAAA,E,oCAAAA,E,8CAAAA,E,0DAAAA,E,0DAAAA,E,0FAAAA,E,kEAAAA,E,gDAAAA,E,gCAAAA,E,oBAAAA,E,wDAAAA,E,sCAAAA,E,iBAAAA,Q,cAmlBAC,K,cAAAA,E,cAAAA,E,QAAAA,E,QAAAA,E,QAAAA,E,cAAAA,E,QAAAA,E,eAAAA,Q,cAWAC,K,wBAAAA,E,4BAAAA,E,yBAAAA,Q,cAMAC,K,iCAAAA,Q,cAIAC,K,gBAAAA,E,oBAAAA,E,YAAAA,E,YAAAA,E,kBAAAA,E,iBAAAA,Q,cASAC,K,wBAAAA,E,kCAAAA,E,0BAAAA,E,sCAAAA,E,oCAAAA,E,+BAAAA,Q,cASAC,K,sCAAAA,E,0BAAAA,E,4BAAAA,E,wDAAAA,E,uCAAAA,Q,cAQAC,K,sCAAAA,E,0BAAAA,E,4BAAAA,E,wDAAAA,E,uCAAAA,Q,cAQAC,K,oCAAAA,E,wBAAAA,E,0BAAAA,E,oDAAAA,E,mCAAAA,Q,cAQAC,K,gBAAAA,E,iCAAAA,Q,cAKAhjF,K,wBAAAA,E,gBAAAA,E,kBAAAA,E,iBAAAA,Q,cAOAijF,K,sBAAAA,E,2BAAAA,Q,cAKAC,K,wBAAAA,E,4BAAAA,E,qCAAAA,Q,cAMAC,K,0CAAAA,E,gCAAAA,E,oCAAAA,E,mDAAAA,Q,cAOAC,K,sBAAAA,E,wCAAAA,E,sBAAAA,E,sBAAAA,E,sBAAAA,E,QAAAA,E,wBAAAA,E,UAAAA,E,kBAAAA,E,0BAAAA,E,mBAAAA,Q,cAcAC,K,gBAAAA,E,gBAAAA,E,uBAAAA,Q,cAMAC,K,4BAAAA,E,oBAAAA,E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G,EAAuB56G,KAAK66G,yBAAyBh0C,MACxDnsC,GACQggF,EAAkB3L,WAAWr0E,KAIlCogF,EAA4B96G,KAAK+6G,6BAA6Bl0C,MACjEnsC,GAEGggF,EAAkB3L,WAAWr0E,IAC7BggF,EAAkBh6G,OAASg6B,EAAOh6B,SAAW,IAKnD,OAAOk6G,GAAwBE,EAEjC,OAAO,EAGoB,gCAC3B,MAAO,CAAC,KAAM,MAGiB,oCAC/B,MAAO,CACL,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,QAIiB,sBAACE,GACpB,IAAMC,EAAmBD,EAAQnvG,cAEjC,GAAImvG,EAAS,CASX,MARsB,CACpB,UACA,SACA,WACA,OACA,YAGmBn0C,MAAMq0C,GAAUD,EAAiB5uG,SAAS6uG,KAGjE,OAAO,K,iCCrUX,SAAShU,EAAuBr6F,GAC9B,OAAOA,GAAOA,EAAIgB,WAAahB,EAAM,CACnC,QAAWA,GALfH,EAAQmB,YAAa,EACrBnB,EAAQyuG,sBAAwBA,EAQhC,IAAIC,EAAS,EAAQ,IAIjBC,EAAcnU,EAFD,EAAQ,KAIrBoU,EAAW,EAAQ,KAEnBC,EAAc,EAAQ,KAItBC,EAAWtU,EAFD,EAAQ,MAIlBuU,EAAuB,EAAQ,KAGnC/uG,EAAQgvG,QADM,QAGdhvG,EAAQivG,kBADgB,EAGxBjvG,E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AI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,IACP,CACD,EAAG,CAAC,EAAG,GACP,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,IACP,CACD,EAAG,CAAC,EAAG,GACP,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,IACP,CACD,EAAG,CAAC,EAAG,GACP,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,IACP,CACD,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,GACJ,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,IACH,CACD,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,GACJ,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,IACH,CACD,EAAG,GACH,EAAG,EACH,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,EAAG,GACH,EAAG,EACH,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,CAAC,EAAG,IACR,GAAI,GACJ,GAAI,CAAC,EAAG,KACP,CACD,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,GACJ,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,IACH,CACD,EAAG,GACH,EAAG,EACH,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,EAAG,CAAC,EAAG,IACP,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,GACJ,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,IACH,CACD,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,GACJ,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,IACH,CACD,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,GACJ,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,IACH,CACD,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,GACJ,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,IACH,CACD,GAAI,CAAC,EAAG,IACR,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,CAAC,EAAG,IACR,GAAI,IACH,CACD,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,GACJ,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,GACJ,GAAI,CAAC,EAAG,KACP,CACD,GAAI,GACJ,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,CAAC,EAAG,IACR,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,GACJ,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,IACH,CACD,GAAI,GACJ,GAAI,CAAC,EAAG,KACP,CACD,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,CAAC,EAAG,IACR,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,CAAC,EAAG,IACR,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,GACJ,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,IACH,CACD,GAAI,CAAC,EAAG,KACP,CACD,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,GACJ,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,GACJ,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,GACJ,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,IACH,CACD,GAAI,GACJ,GAAI,CAAC,EAAG,KACP,CACD,GAAI,CAAC,EAAG,KACP,CACD,EAAG,GACH,EAAG,EACH,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,CAAC,EAAG,KACP,CACD,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,GACJ,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,IACH,CACD,EAAG,GACH,EAAG,EACH,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,GACJ,GAAI,CAAC,EAAG,KACP,CACD,GAAI,CAAC,EAAG,KACP,CACD,EAAG,CAAC,EAAG,IACP,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,GACJ,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,IACH,CACD,GAAI,CAAC,EAAG,IACR,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,EAAG,CAAC,EAAG,IACP,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,GACJ,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,IACH,CACD,GAAI,GACJ,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,GACJ,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,GACJ,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,IACH,CACD,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,GACJ,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,IACH,CACD,GAAI,GACJ,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,IACJ,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,IACJ,GAAI,GACJ,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,GACJ,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,IACH,CACD,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,IACJ,GAAI,IACJ,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,IACJ,GAAI,GACJ,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,GACJ,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,IACH,CACD,GAAI,CAAC,EAAG,MACP,CACD,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,CAAC,EAAG,KACP,CACD,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,IACJ,GAAI,CAAC,EAAG,KACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,CAAC,EAAG,MACP,CACD,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,CAAC,EAAG,KACP,CACD,EAAG,CAAC,EAAG,IACP,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,IACJ,GAAI,IACJ,GAAI,CAAC,EAAG,KACP,CACD,GAAI,CAAC,EAAG,IACR,GAAI,IACJ,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,CAAC,EAAG,KACP,CACD,EAAG,CAAC,EAAG,IACP,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,CAAC,EAAG,MACP,CACD,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,CAAC,EAAG,KACP,CACD,GAAI,GACJ,GAAI,IACJ,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,IACJ,GAAI,CAAC,EAAG,IACR,GAAI,IACJ,GAAI,GACJ,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,GACJ,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,IACH,CACD,GAAI,CAAC,EAAG,MACP,CACD,GAAI,IACJ,GAAI,CAAC,EAAG,IACR,GAAI,IACJ,GAAI,CAAC,EAAG,MACP,CACD,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,CAAC,EAAG,IACR,GAAI,IACJ,GAAI,IACJ,GAAI,CAAC,EAAG,MACP,CACD,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,CAAC,EAAG,MACP,CACD,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,CAAC,EAAG,KACP,CACD,GAAI,CAAC,EAAG,MACP,CACD,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,CAAC,EAAG,KACP,CACD,EAAG,CAAC,EAAG,IACP,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GA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AC,EAAG,IACR,GAAI,IACJ,GAAI,IACJ,GAAI,CAAC,EAAG,MACP,CACD,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,CAAC,EAAG,KACR,GAAI,CAAC,EAAG,MACP,CACD,GAAI,CAAC,EAAG,KACR,GAAI,CAAC,EAAG,MACP,CACD,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,CAAC,EAAG,MACP,CACD,GAAI,CAAC,EAAG,KACP,CACD,GAAI,CAAC,EAAG,KA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C,KAAM,KAAM,MACnB,GAAM,CAAC,MACP,GAAM,CAAC,MACP,GAAM,CAAC,MACP,GAAM,CAAC,MACP,GAAM,CAAC,MACP,GAAM,CAAC,MACP,GAAM,CAAC,MACP,GAAM,CAAC,MACP,GAAM,CAAC,MACP,GAAM,CAAC,MACP,GAAM,CAAC,MACP,GAAM,CAAC,MACP,GAAM,CAAC,MACP,GAAM,CAAC,MACP,GAAM,CAAC,MACP,GAAM,CAAC,MACP,IAAO,CAAC,MACR,IAAO,CAAC,KAAM,MACd,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,KAAM,MACd,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,KAAM,MACd,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,KAAM,MACd,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,KAAM,KAAM,MACpB,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,KAAM,MACd,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,C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","file":"js/blog-a1fdf22277a3c519c2c3.chunk.js","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\n/* global Reflect, Promise */\nvar _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nvar _assign = function __assign() {\n _assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return _assign.apply(this, arguments);\n};\n\nexport { _assign as __assign };\nexport function __rest(s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length,\n r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,\n d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) {\n if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n }\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\nexport function __param(paramIndex, decorator) {\n return function (target, key) {\n decorator(target, key, paramIndex);\n };\n}\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\nexport function __generator(thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n}\nexport var __createBinding = Object.create ? function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function get() {\n return m[k];\n }\n });\n} : function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n};\nexport function __exportStar(m, o) {\n for (var p in m) {\n if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n }\n}\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator,\n m = s && o[s],\n i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function next() {\n if (o && i >= o.length) o = void 0;\n return {\n value: o && o[i++],\n done: !o\n };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n}\n/** @deprecated */\n\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }\n\n return ar;\n}\n/** @deprecated */\n\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) {\n r[k] = a[j];\n }\n }\n\n return r;\n}\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []),\n i,\n q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i;\n\n function verb(n) {\n if (g[n]) i[n] = function (v) {\n return new Promise(function (a, b) {\n q.push([n, v, a, b]) > 1 || resume(n, v);\n });\n };\n }\n\n function resume(n, v) {\n try {\n step(g[n](v));\n } catch (e) {\n settle(q[0][3], e);\n }\n }\n\n function step(r) {\n r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);\n }\n\n function fulfill(value) {\n resume(\"next\", value);\n }\n\n function reject(value) {\n resume(\"throw\", value);\n }\n\n function settle(f, v) {\n if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);\n }\n}\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) {\n throw e;\n }), verb(\"return\"), i[Symbol.iterator] = function () {\n return this;\n }, i;\n\n function verb(n, f) {\n i[n] = o[n] ? function (v) {\n return (p = !p) ? {\n value: __await(o[n](v)),\n done: n === \"return\"\n } : f ? f(v) : v;\n } : f;\n }\n}\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator],\n i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i);\n\n function verb(n) {\n i[n] = o[n] && function (v) {\n return new Promise(function (resolve, reject) {\n v = o[n](v), settle(resolve, reject, v.done, v.value);\n });\n };\n }\n\n function settle(resolve, reject, d, v) {\n Promise.resolve(v).then(function (v) {\n resolve({\n value: v,\n done: d\n });\n }, reject);\n }\n}\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) {\n Object.defineProperty(cooked, \"raw\", {\n value: raw\n });\n } else {\n cooked.raw = raw;\n }\n\n return cooked;\n}\n;\n\nvar __setModuleDefault = Object.create ? function (o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function (o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) {\n if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n }\n\n __setModuleDefault(result, mod);\n\n return result;\n}\nexport function __importDefault(mod) {\n return mod && mod.__esModule ? mod : {\n default: mod\n };\n}\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value), value;\n}","// @flow\n\nimport type { Language } from '@/packs/localisation'\n\ntype Ordinality =\n | 'st'\n | 'nd'\n | 'rd'\n | 'th'\n | 'e'\n | ''\n | '.'\n\n/**\n * This method returns the ordinality of the number passed in given the\n * following guidelines:\n *\n * 1: If the last 2 digits of the number are between 10 and 20 (inclusive),\n * then return 'th' (111th, 2419th, etc)\n * 2: If the last digit of the number is a 1, return 'st' (1st, 1251st, etc)\n * 3: If the last digit of the number is a 2, return 'nd' (2nd, 1252nd, etc)\n * 4: If the last digit of the number is a 3, return 'rd' (3rd, 1253rd, etc)\n * 5: In all other cases, return a 'th'\n */\nconst ordinality = (n: number, lng: Language = 'en'): Ordinality => {\n // if the last 2 digits of n are between 10 and 20 (inclusive)\n switch (lng) {\n case 'en': {\n if (n % 100 >= 10 && n % 100 <= 20) return 'th'\n // if n ends in a 1\n if (n % 10 === 1) return 'st'\n // if n ends in a 2\n if (n % 10 === 2) return 'nd'\n // if n ends in a 3\n if (n % 10 === 3) return 'rd'\n // all other cases\n return 'th'\n }\n case 'nl':\n case 'nl_BE': {\n return 'e'\n }\n case 'pl':\n case 'pl_PL': {\n // For Polish, there is no suffix, so we can return an empty string\n return '.'\n }\n case 'fr': {\n return 'e'\n }\n case 'de_DE':\n case 'cs_CZ': {\n return '.'\n }\n default: {\n throw new Error(`language ${lng} is not supported.`)\n }\n }\n}\n\nexport { ordinality }\n\nexport type { Ordinality }\n","// @noflow\n// Config\nimport { format as formatDate } from 'date-fns'\nimport { de, enGB, fr, nl, nlBE, pl } from 'date-fns/locale'\nimport i18n from 'i18next'\nimport Pseudo from 'i18next-pseudo'\nimport Cookies from 'js-cookie'\nimport { initReactI18next } from 'react-i18next'\n\nimport * as StringHelper from '@/utils/StringHelper'\nimport { ordinality } from '@/utils/ordinal'\nimport * as Sentry from '@/utils/sentry'\n\nimport { ensureNever } from '@/typescript/utils'\n\nimport * as CSCZData from '../../../config/locales/cs_CZ.yml'\nimport * as DEDEData from '../../../config/locales/de_DE.yml'\nimport * as ENData from '../../../config/locales/en.yml'\nimport * as FRData from '../../../config/locales/fr.yml'\nimport * as NLData from '../../../config/locales/nl.yml'\nimport * as NLBeData from '../../../config/locales/nl_BE.yml'\nimport * as PLData from '../../../config/locales/pl.yml'\nimport * as PLPLData from '../../../config/locales/pl_PL.yml'\n\n// Due to needing to use snake_case elsewhere and i18next expecting kebab-case,\n// we have the two different type declarations here to satisfy i18next's\n// requirement whilst maintaining a consistent use of snake_case everywhere\n// else possible\n\ntype Language =\n | 'nl'\n | 'en'\n | 'nl_BE'\n | 'fr'\n | 'pl'\n | 'pl_PL'\n | 'de_DE'\n | 'cs_CZ'\n\ntype SupportedLanguage =\n | 'en'\n | 'nl'\n | 'nl-BE'\n | 'fr'\n | 'pl'\n | 'pl-PL'\n | 'de-DE'\n | 'cs-CZ'\n\nconst supportedLanguages: Array<SupportedLanguage> = [\n 'nl',\n 'en',\n 'nl-BE',\n 'fr',\n 'pl',\n 'pl-PL',\n 'de-DE',\n 'cs-CZ'\n]\n\nconst resources = {\n en: {\n app: ENData.default.en.app,\n dynamic: ENData.default.en.dynamic,\n surveys: ENData.default.en.surveys,\n learn_more_about_butternut:\n ENData.default.en.shared.learn_more_about_butternut,\n frequently_asked_questions:\n ENData.default.en.shared.frequently_asked_questions,\n reviews: ENData.default.en.reviews,\n account: ENData.default.en.account,\n homepage: ENData.default.en.homepage,\n home_page: ENData.default.en.home_page,\n contacts: ENData.default.en.contacts,\n our_products: ENData.default.en.our_products,\n our_story: ENData.default.en.our_story,\n making_our_meals: ENData.default.en.making_our_meals,\n wizard_flow: ENData.default.en.wizard_flow,\n self_resolution_flow: ENData.default.en.self_resolution_flow,\n customer_issue_management_flow:\n ENData.default.en.customer_issue_management_flow,\n plans_flow: ENData.default.en.plans_flow,\n simplified_plans_flow: ENData.default.en.simplified_plans_flow,\n ds_app_pay_on_signup_flow: ENData.default.en.ds_app_pay_on_signup_flow,\n checkout: ENData.default.en.checkout,\n thank_you: ENData.default.en.thank_you,\n models: ENData.default.en.models,\n product_categories: ENData.default.en.models.product_categories,\n post_signup_wizard: ENData.default.en.post_signup_wizard,\n dashboard: ENData.default.en.dashboard,\n shipping_countries: ENData.default.en.models.shipping_countries,\n calories_covered: ENData.default.en.shared.calories_covered,\n text_field: ENData.default.en.shared.text_field,\n footer: ENData.default.en.shared.footer,\n navigation: ENData.default.en.shared.navigation,\n unavailable_dates_card: ENData.default.en.shared.unavailable_dates_card,\n expert: ENData.default.en.shared.expert,\n paid_traffic_breeds: ENData.default.en.paid_traffic.breed_autocomplete,\n paid_traffic: ENData.default.en.paid_traffic,\n one_time_purchase_footer: ENData.default.en.shared.one_time_purchase_footer,\n order_summary: ENData.default.en.shared.order_summary,\n shared: ENData.default.en.shared,\n languages: ENData.default.en.models.languages,\n localisation_modal: ENData.default.en.shared.localisation_modal,\n plan_management: ENData.default.en.plan_management,\n onboarding_quiz: ENData.default.en.onboarding_quiz,\n product_modal: ENData.default.en.shared.product_modal,\n gql_errors: ENData.default.en.gql_errors,\n archive_reasons: ENData.default.en.archive_reasons,\n care: ENData.default.en.care,\n orders: ENData.default.en.orders,\n order: ENData.default.en.order,\n butternut_app: ENData.default.en.butternut_app,\n atoms: ENData.default.en.atoms,\n molecules: ENData.default.en.molecules,\n organisms: ENData.default.en.organisms,\n one_off_box_page: ENData.default.en.one_off_box_page,\n swap_and_save: ENData.default.en.swap_and_save,\n limited_offer_paused_page: ENData.default.en.limited_offer_paused_page,\n treatments_paused_page: ENData.default.en.treatments_paused_page,\n ribbon: ENData.default.en.ribbon,\n blog: ENData.default.en.blog,\n ambassadors: ENData.default.en.ambassadors,\n modals: ENData.default.en.modals\n },\n nl: {\n dynamic: NLData.default.nl.dynamic,\n surveys: NLData.default.nl.surveys,\n learn_more_about_butternut:\n NLData.default.nl.shared.learn_more_about_butternut,\n frequently_asked_questions:\n NLData.default.nl.shared.frequently_asked_questions,\n reviews: NLData.default.nl.reviews,\n account: NLData.default.nl.account,\n homepage: NLData.default.nl.homepage,\n home_page: NLData.default.nl.home_page,\n contacts: NLData.default.nl.contacts,\n our_products: NLData.default.nl.our_products,\n our_story: NLData.default.nl.our_story,\n making_our_meals: NLData.default.nl.making_our_meals,\n wizard_flow: NLData.default.nl.wizard_flow,\n self_resolution_flow: NLData.default.nl.self_resolution_flow,\n customer_issue_management_flow:\n NLData.default.nl.customer_issue_management_flow,\n plans_flow: NLData.default.nl.plans_flow,\n simplified_plans_flow: NLData.default.nl.simplified_plans_flow,\n checkout: NLData.default.nl.checkout,\n thank_you: NLData.default.nl.thank_you,\n models: NLData.default.nl.models,\n product_categories: NLData.default.nl.models.product_categories,\n post_signup_wizard: NLData.default.nl.post_signup_wizard,\n dashboard: NLData.default.nl.dashboard,\n ds_app_pay_on_signup_flow: NLData.default.nl.ds_app_pay_on_signup_flow,\n shipping_countries: NLData.default.nl.models.shipping_countries,\n calories_covered: NLData.default.nl.shared.calories_covered,\n text_field: NLData.default.nl.shared.text_field,\n footer: NLData.default.nl.shared.footer,\n navigation: NLData.default.nl.shared.navigation,\n unavailable_dates_card: NLData.default.nl.shared.unavailable_dates_card,\n expert: NLData.default.nl.shared.expert,\n paid_traffic_breeds: NLData.default.nl.paid_traffic.breed_autocomplete,\n paid_traffic: NLData.default.nl.paid_traffic,\n one_time_purchase_footer: NLData.default.nl.shared.one_time_purchase_footer,\n order_summary: NLData.default.nl.shared.order_summary,\n shared: NLData.default.nl.shared,\n languages: NLData.default.nl.models.languages,\n localisation_modal: NLData.default.nl.shared.localisation_modal,\n plan_management: NLData.default.nl.plan_management,\n onboarding_quiz: NLData.default.nl.onboarding_quiz,\n product_modal: NLData.default.nl.shared.product_modal,\n gql_errors: NLData.default.nl.gql_errors,\n archive_reasons: NLData.default.nl.archive_reasons,\n care: NLData.default.nl.care,\n orders: NLData.default.nl.orders,\n order: NLData.default.nl.order,\n butternut_app: NLData.default.nl.butternut_app,\n atoms: NLData.default.nl.atoms,\n molecules: NLData.default.nl.molecules,\n organisms: NLData.default.nl.organisms,\n one_off_box_page: NLData.default.nl.one_off_box_page, // Note: New atomic OOB page\n swap_and_save: NLData.default.nl.swap_and_save,\n limited_offer_paused_page: NLData.default.nl.limited_offer_paused_page,\n treatments_paused_page: NLData.default.nl.treatments_paused_page,\n ribbon: NLData.default.nl.ribbon,\n ambassadors: NLData.default.nl.ambassadors,\n modals: NLData.default.nl.modals,\n blog: NLData.default.nl.blog\n },\n 'nl-BE': {\n frequently_asked_questions:\n NLBeData.default.nl_BE.shared.frequently_asked_questions,\n account: NLBeData.default.nl_BE.account,\n homepage: NLBeData.default.nl_BE.homepage,\n home_page: NLBeData.default.nl_BE.home_page,\n contacts: NLBeData.default.nl_BE.contacts,\n ds_app_pay_on_signup_flow: NLBeData.default.nl_BE.ds_app_pay_on_signup_flow,\n our_story: NLBeData.default.nl_BE.our_story,\n wizard_flow: NLBeData.default.nl_BE.wizard_flow,\n plans_flow: NLBeData.default.nl_BE.plans_flow,\n checkout: NLBeData.default.nl_BE.checkout,\n models: NLBeData.default.nl_BE.models,\n post_signup_wizard: NLBeData.default.nl_BE.post_signup_wizard,\n text_field: NLBeData.default.nl_BE.shared.text_field,\n footer: NLBeData.default.nl_BE.shared.footer,\n paid_traffic: NLBeData.default.nl_BE.paid_traffic,\n plan_management: NLBeData.default.nl_BE.plan_management,\n order: NLBeData.default.nl_BE.order,\n molecules: NLBeData.default.nl_BE.molecules,\n organisms: NLBeData.default.nl_BE.organisms,\n modals: NLBeData.default.nl_BE.modals,\n limited_offer_paused_page: NLBeData.default.nl_BE.limited_offer_paused_page,\n ambassadors: NLBeData.default.nl_BE.ambassadors,\n blog: NLBeData.default.nl_BE.blog\n },\n pl: {\n dynamic: PLData.default.pl.dynamic,\n surveys: PLData.default.pl.surveys,\n learn_more_about_butternut:\n PLData.default.pl.shared.learn_more_about_butternut,\n frequently_asked_questions:\n PLData.default.pl.shared.frequently_asked_questions,\n reviews: PLData.default.pl.reviews,\n account: PLData.default.pl.account,\n homepage: PLData.default.pl.homepage,\n home_page: PLData.default.pl.home_page,\n contacts: PLData.default.pl.contacts,\n our_products: PLData.default.pl.our_products,\n our_story: PLData.default.pl.our_story,\n making_our_meals: PLData.default.pl.making_our_meals,\n wizard_flow: PLData.default.pl.wizard_flow,\n self_resolution_flow: PLData.default.pl.self_resolution_flow,\n customer_issue_management_flow:\n PLData.default.pl.customer_issue_management_flow,\n plans_flow: PLData.default.pl.plans_flow,\n simplified_plans_flow: PLData.default.pl.simplified_plans_flow,\n checkout: PLData.default.pl.checkout,\n thank_you: PLData.default.pl.thank_you,\n models: PLData.default.pl.models,\n product_categories: PLData.default.pl.models.product_categories,\n post_signup_wizard: PLData.default.pl.post_signup_wizard,\n dashboard: PLData.default.pl.dashboard,\n ds_app_pay_on_signup_flow: PLData.default.pl.ds_app_pay_on_signup_flow,\n shipping_countries: PLData.default.pl.models.shipping_countries,\n calories_covered: PLData.default.pl.shared.calories_covered,\n text_field: PLData.default.pl.shared.text_field,\n footer: PLData.default.pl.shared.footer,\n navigation: PLData.default.pl.shared.navigation,\n unavailable_dates_card: PLData.default.pl.shared.unavailable_dates_card,\n expert: PLData.default.pl.shared.expert,\n paid_traffic_breeds: PLData.default.pl.paid_traffic.breed_autocomplete,\n paid_traffic: PLData.default.pl.paid_traffic,\n one_time_purchase_footer: PLData.default.pl.shared.one_time_purchase_footer,\n order_summary: PLData.default.pl.shared.order_summary,\n shared: PLData.default.pl.shared,\n languages: PLData.default.pl.models.languages,\n localisation_modal: PLData.default.pl.shared.localisation_modal,\n plan_management: PLData.default.pl.plan_management,\n onboarding_quiz: PLData.default.pl.onboarding_quiz,\n product_modal: PLData.default.pl.shared.product_modal,\n gql_errors: PLData.default.pl.gql_errors,\n archive_reasons: PLData.default.pl.archive_reasons,\n care: PLData.default.pl.care,\n orders: PLData.default.pl.orders,\n order: PLData.default.pl.order,\n butternut_app: PLData.default.pl.butternut_app,\n atoms: PLData.default.pl.atoms,\n molecules: PLData.default.pl.molecules,\n organisms: PLData.default.pl.organisms,\n one_off_box_page: PLData.default.pl.one_off_box_page, // Note: New atomic OOB page\n swap_and_save: PLData.default.pl.swap_and_save,\n limited_offer_paused_page: PLData.default.pl.limited_offer_paused_page,\n treatments_paused_page: PLData.default.pl.treatments_paused_page,\n ribbon: PLData.default.pl.ribbon,\n invoices: PLData.default.pl.invoices,\n ambassadors: PLData.default.pl.ambassadors,\n modals: PLData.default.pl.modals,\n blog: PLData.default.pl.blog\n },\n 'pl-PL': {\n learn_more_about_butternut:\n PLPLData.default.pl_PL.shared.learn_more_about_butternut,\n frequently_asked_questions:\n PLPLData.default.pl_PL.shared.frequently_asked_questions,\n reviews: PLPLData.default.pl_PL.reviews,\n account: PLPLData.default.pl_PL.account,\n homepage: PLPLData.default.pl_PL.homepage,\n home_page: PLPLData.default.pl_PL.home_page,\n contacts: PLPLData.default.pl_PL.contacts,\n our_products: PLPLData.default.pl_PL.our_products,\n our_story: PLPLData.default.pl_PL.our_story,\n making_our_meals: PLPLData.default.pl_PL.making_our_meals,\n wizard_flow: PLPLData.default.pl_PL.wizard_flow,\n self_resolution_flow: PLPLData.default.pl_PL.self_resolution_flow,\n customer_issue_management_flow:\n PLPLData.default.pl_PL.customer_issue_management_flow,\n plans_flow: PLPLData.default.pl_PL.plans_flow,\n simplified_plans_flow: PLPLData.default.pl_PL.simplified_plans_flow,\n checkout: PLPLData.default.pl_PL.checkout,\n thank_you: PLPLData.default.pl_PL.thank_you,\n models: PLPLData.default.pl_PL.models,\n post_signup_wizard: PLPLData.default.pl_PL.post_signup_wizard,\n dashboard: PLPLData.default.pl_PL.dashboard,\n calories_covered: PLPLData.default.pl_PL.shared.calories_covered,\n text_field: PLPLData.default.pl_PL.shared.text_field,\n footer: PLPLData.default.pl_PL.shared.footer,\n navigation: PLPLData.default.pl_PL.shared.navigation,\n unavailable_dates_card:\n PLPLData.default.pl_PL.shared.unavailable_dates_card,\n expert: PLPLData.default.pl_PL.shared.expert,\n paid_traffic_breeds: PLPLData.default.pl_PL.paid_traffic.breed_autocomplete,\n paid_traffic: PLPLData.default.pl_PL.paid_traffic,\n one_time_purchase_footer:\n PLPLData.default.pl_PL.shared.one_time_purchase_footer,\n order_summary: PLPLData.default.pl_PL.shared.order_summary,\n shared: PLPLData.default.pl_PL.shared,\n localisation_modal: PLPLData.default.pl_PL.shared.localisation_modal,\n plan_management: PLPLData.default.pl_PL.plan_management,\n onboarding_quiz: PLPLData.default.pl_PL.onboarding_quiz,\n product_modal: PLPLData.default.pl_PL.shared.product_modal,\n gql_errors: PLPLData.default.pl_PL.gql_errors,\n archive_reasons: PLPLData.default.pl_PL.archive_reasons,\n care: PLPLData.default.pl_PL.care,\n orders: PLPLData.default.pl_PL.orders,\n order: PLPLData.default.pl_PL.order,\n butternut_app: PLPLData.default.pl_PL.butternut_app,\n atoms: PLPLData.default.pl_PL.atoms,\n molecules: PLPLData.default.pl_PL.molecules,\n organisms: PLPLData.default.pl_PL.organisms,\n one_off_box_page: PLPLData.default.pl_PL.one_off_box_page, // Note: New atomic OOB page\n swap_and_save: PLPLData.default.pl_PL.swap_and_save,\n limited_offer_paused_page: PLPLData.default.pl_PL.limited_offer_paused_page,\n treatments_paused_page: PLPLData.default.pl_PL.treatments_paused_page,\n invoices: PLPLData.default.pl_PL.invoices,\n ribbon: PLPLData.default.pl_PL.ribbon,\n modals: PLPLData.default.pl_PL.modals,\n blog: PLPLData.default.pl_PL.blog\n },\n fr: {\n dynamic: FRData.default.fr.dynamic,\n surveys: FRData.default.fr.surveys,\n learn_more_about_butternut:\n FRData.default.fr.shared.learn_more_about_butternut,\n frequently_asked_questions:\n FRData.default.fr.shared.frequently_asked_questions,\n reviews: FRData.default.fr.reviews,\n account: FRData.default.fr.account,\n homepage: FRData.default.fr.homepage,\n home_page: FRData.default.fr.home_page,\n contacts: FRData.default.fr.contacts,\n our_products: FRData.default.fr.our_products,\n our_story: FRData.default.fr.our_story,\n making_our_meals: FRData.default.fr.making_our_meals,\n wizard_flow: FRData.default.fr.wizard_flow,\n self_resolution_flow: FRData.default.fr.self_resolution_flow,\n customer_issue_management_flow:\n FRData.default.fr.customer_issue_management_flow,\n plans_flow: FRData.default.fr.plans_flow,\n simplified_plans_flow: FRData.default.fr.simplified_plans_flow,\n checkout: FRData.default.fr.checkout,\n thank_you: FRData.default.fr.thank_you,\n models: FRData.default.fr.models,\n product_categories: FRData.default.fr.models.product_categories,\n post_signup_wizard: FRData.default.fr.post_signup_wizard,\n dashboard: FRData.default.fr.dashboard,\n ds_app_pay_on_signup_flow: FRData.default.fr.ds_app_pay_on_signup_flow,\n shipping_countries: FRData.default.fr.models.shipping_countries,\n calories_covered: FRData.default.fr.shared.calories_covered,\n text_field: FRData.default.fr.shared.text_field,\n footer: FRData.default.fr.shared.footer,\n navigation: FRData.default.fr.shared.navigation,\n unavailable_dates_card: FRData.default.fr.shared.unavailable_dates_card,\n expert: FRData.default.fr.shared.expert,\n paid_traffic_breeds: FRData.default.fr.paid_traffic.breed_autocomplete,\n paid_traffic: FRData.default.fr.paid_traffic,\n one_time_purchase_footer: FRData.default.fr.shared.one_time_purchase_footer,\n order_summary: FRData.default.fr.shared.order_summary,\n shared: FRData.default.fr.shared,\n languages: FRData.default.fr.models.languages,\n localisation_modal: FRData.default.fr.shared.localisation_modal,\n plan_management: FRData.default.fr.plan_management,\n onboarding_quiz: FRData.default.fr.onboarding_quiz,\n product_modal: FRData.default.fr.shared.product_modal,\n gql_errors: FRData.default.fr.gql_errors,\n archive_reasons: FRData.default.fr.archive_reasons,\n care: FRData.default.fr.care,\n orders: FRData.default.fr.orders,\n order: FRData.default.fr.order,\n butternut_app: FRData.default.fr.butternut_app,\n atoms: FRData.default.fr.atoms,\n molecules: FRData.default.fr.molecules,\n organisms: FRData.default.fr.organisms,\n one_off_box_page: FRData.default.fr.one_off_box_page, // Note: New atomic OOB page\n swap_and_save: FRData.default.fr.swap_and_save,\n limited_offer_paused_page: FRData.default.fr.limited_offer_paused_page,\n treatments_paused_page: FRData.default.fr.treatments_paused_page,\n ribbon: FRData.default.fr.ribbon,\n invoices: FRData.default.fr.invoices,\n ambassadors: FRData.default.fr.ambassadors,\n modals: FRData.default.fr.modals,\n blog: FRData.default.fr.blog\n },\n 'cs-CZ': {\n homepage: CSCZData.default.cs_CZ.homepage\n },\n 'de-DE': {\n dynamic: DEDEData.default.de_DE.dynamic,\n surveys: DEDEData.default.de_DE.surveys,\n learn_more_about_butternut:\n DEDEData.default.de_DE.shared.learn_more_about_butternut,\n frequently_asked_questions:\n DEDEData.default.de_DE.shared.frequently_asked_questions,\n reviews: DEDEData.default.de_DE.reviews,\n account: DEDEData.default.de_DE.account,\n homepage: DEDEData.default.de_DE.homepage,\n home_page: DEDEData.default.de_DE.home_page,\n contacts: DEDEData.default.de_DE.contacts,\n our_products: DEDEData.default.de_DE.our_products,\n our_story: DEDEData.default.de_DE.our_story,\n making_our_meals: DEDEData.default.de_DE.making_our_meals,\n wizard_flow: DEDEData.default.de_DE.wizard_flow,\n self_resolution_flow: DEDEData.default.de_DE.self_resolution_flow,\n customer_issue_management_flow:\n DEDEData.default.de_DE.customer_issue_management_flow,\n plans_flow: DEDEData.default.de_DE.plans_flow,\n simplified_plans_flow: DEDEData.default.de_DE.simplified_plans_flow,\n checkout: DEDEData.default.de_DE.checkout,\n thank_you: DEDEData.default.de_DE.thank_you,\n models: DEDEData.default.de_DE.models,\n product_categories: DEDEData.default.de_DE.models.product_categories,\n post_signup_wizard: DEDEData.default.de_DE.post_signup_wizard,\n dashboard: DEDEData.default.de_DE.dashboard,\n ds_app_pay_on_signup_flow: DEDEData.default.de_DE.ds_app_pay_on_signup_flow,\n shipping_countries: DEDEData.default.de_DE.models.shipping_countries,\n calories_covered: DEDEData.default.de_DE.shared.calories_covered,\n text_field: DEDEData.default.de_DE.shared.text_field,\n footer: DEDEData.default.de_DE.shared.footer,\n navigation: DEDEData.default.de_DE.shared.navigation,\n unavailable_dates_card:\n DEDEData.default.de_DE.shared.unavailable_dates_card,\n expert: DEDEData.default.de_DE.shared.expert,\n paid_traffic_breeds: DEDEData.default.de_DE.paid_traffic.breed_autocomplete,\n paid_traffic: DEDEData.default.de_DE.paid_traffic,\n one_time_purchase_footer:\n DEDEData.default.de_DE.shared.one_time_purchase_footer,\n order_summary: DEDEData.default.de_DE.shared.order_summary,\n shared: DEDEData.default.de_DE.shared,\n languages: DEDEData.default.de_DE.models.languages,\n localisation_modal: DEDEData.default.de_DE.shared.localisation_modal,\n plan_management: DEDEData.default.de_DE.plan_management,\n onboarding_quiz: DEDEData.default.de_DE.onboarding_quiz,\n product_modal: DEDEData.default.de_DE.shared.product_modal,\n gql_errors: DEDEData.default.de_DE.gql_errors,\n archive_reasons: DEDEData.default.de_DE.archive_reasons,\n care: DEDEData.default.de_DE.care,\n orders: DEDEData.default.de_DE.orders,\n order: DEDEData.default.de_DE.order,\n butternut_app: DEDEData.default.de_DE.butternut_app,\n atoms: DEDEData.default.de_DE.atoms,\n molecules: DEDEData.default.de_DE.molecules,\n organisms: DEDEData.default.de_DE.organisms,\n one_off_box_page: DEDEData.default.de_DE.one_off_box_page, // Note: New atomic OOB page\n swap_and_save: DEDEData.default.de_DE.swap_and_save,\n limited_offer_paused_page: DEDEData.default.de_DE.limited_offer_paused_page,\n treatments_paused_page: DEDEData.default.de_DE.treatments_paused_page,\n ribbon: DEDEData.default.de_DE.ribbon,\n invoices: DEDEData.default.de_DE.invoices,\n ambassadors: DEDEData.default.de_DE.ambassadors,\n modals: DEDEData.default.de_DE.modals,\n blog: DEDEData.default.de_DE.blog\n }\n}\n\nconst namespaceToPath = (ns: string): string => {\n switch (ns) {\n case 'learn_more_about_butternut':\n return 'shared.learn_more_about_butternut'\n case 'frequently_asked_questions':\n return 'shared.frequently_asked_questions'\n case 'reviews':\n return 'reviews'\n case 'account':\n return 'account'\n case 'homepage':\n return 'homepage'\n case 'home_page':\n return 'home_page'\n case 'wizard_flow':\n return 'wizard_flow'\n case 'self_resolution_flow':\n return 'self_resolution_flow'\n case 'customer_issue_management_flow':\n return 'customer_issue_management_flow'\n case 'plans_flow':\n return 'plans_flow'\n case 'simplified_plans_flow':\n return 'simplified_plans_flow'\n case 'checkout':\n return 'checkout'\n case 'ds_app_pay_on_signup_flow':\n return 'ds_app_pay_on_signup_flow'\n case 'thank_you':\n return 'thank_you'\n case 'contacts':\n return 'contacts'\n case 'our_products':\n return 'our_products'\n case 'our_story':\n return 'our_story'\n case 'making_our_meals':\n return 'making_our_meals'\n case 'models':\n return 'models'\n case 'product_categories':\n return 'models.product_categories'\n case 'dashboard':\n return 'dashboard'\n case 'post_signup_wizard':\n return 'post_signup_wizard'\n case 'shipping_countries':\n return 'models.shipping_countries'\n case 'calories_covered':\n return 'shared.calories_covered'\n case 'text_field':\n return 'shared.text_field'\n case 'footer':\n return 'shared.footer'\n case 'navigation':\n return 'shared.navigation'\n case 'unavailable_dates_card':\n return 'shared.unavailable_dates_card'\n case 'expert':\n return 'shared.expert'\n case 'paid_traffic_breeds':\n return 'paid_traffic.breed_autocomplete'\n case 'paid_traffic':\n return 'paid_traffic'\n case 'one_time_purchase_footer':\n return 'shared.one_time_purchase_footer'\n case 'order_summary':\n return 'shared.order_summary'\n case 'shared':\n return 'shared'\n case 'localisation_modal':\n return 'shared.localisation_modal'\n case 'plan_management':\n return 'plan_management'\n case 'onboarding_quiz':\n return 'onboarding_quiz'\n case 'product_modal':\n return 'shared.product_modal'\n case 'gql_errors':\n return 'gql_errors'\n case 'archive_reasons':\n return 'archive_reasons'\n case 'care':\n return 'care'\n case 'order':\n return 'order'\n case 'orders':\n return 'orders'\n case 'butternut_app':\n return 'butternut_app'\n case 'atoms':\n return 'atoms'\n case 'molecules':\n return 'molecules'\n case 'organisms':\n return 'organisms'\n case 'one_off_box_page':\n return 'one_off_box_page'\n case 'swap_and_save':\n return 'swap_and_save'\n case 'limited_offer_paused_page':\n return 'limited_offer_paused_page'\n case 'treatments_paused_page':\n return 'treatments_paused_page'\n case 'invoices':\n return 'invoices'\n case 'ribbon':\n return 'ribbon'\n case 'blog':\n return 'blog'\n case 'ambassadors':\n return 'ambassadors'\n case 'modals':\n return 'modals'\n default: {\n return ''\n }\n }\n}\nconst dateLocale = (locale: Language): Locale => {\n switch (locale) {\n case 'cs_CZ':\n case 'en':\n return enGB\n case 'nl':\n return nl\n case 'nl_BE':\n return nlBE\n case 'fr':\n return fr\n case 'de_DE':\n return de\n case 'pl_PL':\n case 'pl':\n return pl\n default:\n ensureNever(locale)\n return enGB\n }\n}\nconst development = process.env.NODE_ENV === 'development'\nconst phraseBackendEnabled = Cookies.get('phraseapp_enabled') === 'true'\nCookies.remove('phraseapp_enabled')\n\nconst pseudolocaliseCookie = Cookies.get('pseudolocalise') === 'true'\n\n// i18next expects kebab-case\nconst convertLanguageToKebabCase = (lng: Language): string => {\n switch (lng) {\n case 'nl_BE':\n return 'nl-BE'\n case 'pl_PL':\n return 'pl-PL'\n case 'de_DE':\n return 'de-DE'\n default:\n return lng\n }\n}\n\nconst fallbackLanguage = (lng: Language): string | Array<string> => {\n switch (lng) {\n case 'pl_PL':\n return ['pl', 'en']\n case 'nl_BE':\n return ['nl', 'en']\n case 'nl':\n case 'fr':\n case 'de_DE':\n case 'pl':\n default:\n return 'en'\n }\n}\n\nconst initI18n = (\n lng: Language,\n pseudolocalise = pseudolocaliseCookie,\n phraseEnabled = phraseBackendEnabled\n): void => {\n if (i18n.isInitialized) return\n i18n.on('initialized', () => {\n document.dispatchEvent(\n new CustomEvent('translationInitialised', { detail: i18n })\n )\n })\n\n i18n\n .use(\n new Pseudo({\n enabled: pseudolocalise,\n languageToPseudo: 'en',\n letterMultiplier: 1\n })\n )\n .use(initReactI18next)\n .init({\n ns: [\n 'ambassadors',\n 'dynamic',\n 'surveys',\n 'learn_more_about_butternut',\n 'frequently_asked_questions',\n 'reviews',\n 'account',\n 'homepage',\n 'home_page',\n 'contacts',\n 'thank_you',\n 'our_products',\n 'our_story',\n 'making_our_meals',\n 'wizard_flow',\n 'self_resolution_flow',\n 'customer_issue_management_flow',\n 'plans_flow',\n 'simplified_plans_flow',\n 'checkout',\n 'models',\n 'product_categories',\n 'dashboard',\n 'post_signup_wizard',\n 'ds_app_pay_on_signup_flow',\n 'shipping_countries',\n 'calories_covered',\n 'text_field',\n 'footer',\n 'navigation',\n 'unavailable_dates_card',\n 'expert',\n 'paid_traffic_breeds',\n 'paid_traffic',\n 'one_time_purchase_footer',\n 'order_summary',\n 'shared',\n 'languages',\n 'localisation_modal',\n 'plan_management',\n 'onboarding_quiz',\n 'product_modal',\n 'gql_errors',\n 'archive_reasons',\n 'care',\n 'orders',\n 'order',\n 'butternut_app',\n 'atoms',\n 'molecules',\n 'organisms',\n 'one_off_box_page',\n 'swap_and_save',\n 'limited_offer_paused_page',\n 'treatments_paused_page',\n 'invoices',\n 'ribbon',\n 'modals'\n ],\n defaultNS: '',\n lng: convertLanguageToKebabCase(lng),\n react: {\n hashTransKey: () => null\n },\n fallbackLng: fallbackLanguage(lng),\n debug: development,\n resources: resources,\n saveMissing: true,\n supportedLngs: supportedLanguages,\n missingKeyHandler: (\n lngs: readonly string[],\n ns: string,\n key: string\n ): void => {\n if (development) {\n console.error(\n // eslint-disable-next-line i18next/no-literal-string\n `Missing key: ${key} in namespace: ${ns} for language(s): ${lngs\n .map((lng: string): string => lng)\n .join(', ')}`\n )\n } else if (ns !== 'dynamic') {\n Sentry.captureException(\n `Missing key: ${key} in namespace: ${ns} for language(s): ${lngs\n .map((lng: string): string => lng)\n .join(', ')}`\n )\n }\n },\n interpolation: {\n format: (value, format) => {\n // Ensure that the date is localised by updating its locale\n // ---\n switch (format) {\n case 'uppercase':\n return value.toUpperCase()\n case 'capitalise':\n return StringHelper.capitaliseFirstLetter(value)\n case 'ordinal':\n return ordinality(value, lng)\n case 'fullDate':\n return formatDate(value, 'P', { locale: dateLocale(lng) })\n case 'day':\n return formatDate(value, 'eeee', { locale: dateLocale(lng) })\n case 'month':\n return formatDate(value, 'MMMM', { locale: dateLocale(lng) })\n case 'year':\n return formatDate(value, 'yyyy', { locale: dateLocale(lng) })\n case 'shortenedMonth':\n return formatDate(value, 'MMM', { locale: dateLocale(lng) })\n case 'monthAndDate':\n return formatDate(value, 'MMMM do', { locale: dateLocale(lng) })\n case 'dateAndMonth':\n return formatDate(value, 'd MMMM', { locale: dateLocale(lng) })\n case 'dateNumber':\n return formatDate(value, 'd', { locale: dateLocale(lng) })\n case 'dayDateMonth':\n return formatDate(value, 'iiii, dd MMM', {\n locale: dateLocale(lng)\n })\n case 'dayDateLongMonth':\n return formatDate(value, 'iiii, dd MMMM', {\n locale: dateLocale(lng)\n })\n default:\n return value\n }\n },\n escapeValue: false // not needed for react as it escapes by default\n },\n postProcess: ['pseudo'],\n load: 'currentOnly'\n })\n if (phraseEnabled) {\n // the types the we see when phrase in context editor is enabled do not correspond to\n // expected value here\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n i18n.t = (key: string, global: any) => {\n let namespace = ''\n if (key.includes(':')) {\n // split up namespace and rest of key\n const fullKey = key.split(':')\n namespace = fullKey[0]\n key = fullKey[1]\n }\n if (global && global.context) {\n key = `${key}_${global.context}`\n }\n // The Phrase in context editor scans the page and identifies exposed keys that\n // look like this:\n // {{__phrase_${key}__}}\n // we attempted this transformation with their postProcessing library, however,\n // the library does not work with varying namespaces. The following solution\n // allows us to interpolate the keys while integrating the appropriate namespace\n // utilised in the I18n t function.\n // eslint-disable-next-line i18next/no-literal-string\n return `{{__phrase_${namespaceToPath(\n namespace || global.ns || ''\n )}.${key}__}}`\n }\n }\n}\n\nexport default initI18n\nexport type { Language }\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.DomainValidator = undefined;\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _Domains = require(\"./Domains\");\n\nvar Domains = _interopRequireWildcard(_Domains);\n\nvar _lodash = require(\"lodash.includes\");\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _punycode = require(\"punycode\");\n\nvar punycode = _interopRequireWildcard(_punycode);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];\n }\n }\n\n newObj.default = obj;\n return newObj;\n }\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nvar DomainValidator = exports.DomainValidator = function () {\n /**\r\n * @param allowLocal Should local addresses be considered valid?\r\n */\n function DomainValidator() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$allowLocal = _ref.allowLocal,\n allowLocal = _ref$allowLocal === undefined ? false : _ref$allowLocal;\n\n _classCallCheck(this, DomainValidator);\n\n var domainLabelRegex = \"[a-zA-Z0-9](?:[a-zA-Z0-9\\\\-]{0,61}[a-zA-Z0-9])?\";\n var topLabelRegex = \"[a-zA-Z](?:[a-zA-Z0-9\\\\-]{0,61}[a-zA-Z0-9])?\";\n var domainNameRegex = \"^(?:\" + domainLabelRegex + \"\\\\.)*(\" + topLabelRegex + \")\\\\.?$\";\n this._domainRegex = new RegExp(domainNameRegex);\n }\n\n _createClass(DomainValidator, [{\n key: \"_chompLeadingDot\",\n value: function _chompLeadingDot(str) {\n if (str[0] === \".\") {\n return str.substring(1);\n }\n\n return str;\n }\n }, {\n key: \"_unicodeToASCII\",\n value: function _unicodeToASCII(input) {\n return punycode.toASCII(input);\n }\n }, {\n key: \"_arrayContains\",\n value: function _arrayContains(sortedArray, key) {\n // TODO: use binary search\n return (0, _lodash2.default)(sortedArray, key);\n }\n }, {\n key: \"isValidCountryCodeTld\",\n value: function isValidCountryCodeTld(ccTld) {\n var key = this._chompLeadingDot(this._unicodeToASCII(ccTld).toLowerCase());\n\n return this._arrayContains(Domains.countryCodeTlds, key);\n }\n }, {\n key: \"isValidGenericTld\",\n value: function isValidGenericTld(gTld) {\n var key = this._chompLeadingDot(this._unicodeToASCII(gTld).toLowerCase());\n\n return this._arrayContains(Domains.genericTlds, key);\n }\n }, {\n key: \"isValidInfrastructureTld\",\n value: function isValidInfrastructureTld(iTld) {\n var key = this._chompLeadingDot(this._unicodeToASCII(iTld).toLowerCase());\n\n return this._arrayContains(Domains.infrastructureTlds, key);\n }\n }, {\n key: \"isValidTld\",\n value: function isValidTld(tld) {\n tld = this._unicodeToASCII(tld);\n return this.isValidInfrastructureTld(tld) || this.isValidGenericTld(tld) || this.isValidCountryCodeTld(tld);\n }\n }, {\n key: \"extractTld\",\n value: function extractTld(domain) {\n if (!domain) {\n return false;\n }\n\n domain = this._unicodeToASCII(domain);\n\n if (domain.length > 253) {\n return false;\n }\n\n var groups = domain.match(this._domainRegex);\n\n if (groups) {\n return groups[1];\n }\n\n return null;\n }\n }, {\n key: \"isValid\",\n value: function isValid(domain) {\n if (!domain) {\n return false;\n }\n\n domain = this._unicodeToASCII(domain);\n\n if (domain.length > 253) {\n return false;\n }\n\n var groups = domain.match(this._domainRegex);\n\n if (groups) {}\n\n if (groups && groups.length > 1) {\n return this.isValidTld(groups[1]) && groups[0] !== groups[1];\n }\n\n return false;\n }\n }]);\n\n return DomainValidator;\n}();","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.EmailValidator = exports.DomainValidator = undefined;\n\nvar _DomainValidator = require(\"./DomainValidator\");\n\nvar _EmailValidator = require(\"./EmailValidator\");\n\nexports.DomainValidator = _DomainValidator.DomainValidator;\nexports.EmailValidator = _EmailValidator.EmailValidator;","// @flow\n\n/**\n * Support Colours\n * Here is where we define our core support colours in JavaScript variables so we\n * can pass them as parameters into our asset functions that are stored inside\n * 'javascript/assets/...'. These colours should ALWAYS be in-line with the\n * variables stored in our `_colours.scss` CSS sheet.\n */\n\ntype SupportColours = {|\n // Blue\n supportBlue100: '#f1fcfd',\n supportBlue200: '#beebf4',\n supportBlue300: '#0bb4d0',\n supportBlue400: '#078aa2',\n supportBlue500: '#05697a',\n\n // Green\n successGreen100: '#eff8ed',\n successGreen200: '#98d98c',\n successGreen300: '#4dbd37',\n successGreen400: '#238a0f',\n successGreen500: '#1f6412',\n\n // Red\n dangerRed100: '#fdf2f1',\n dangerRed200: '#f5bebc',\n dangerRed300: '#d2322d',\n dangerRed400: '#9d100b',\n dangerRed500: '#7a0a06',\n\n // Orange\n warningOrange100: '#fcf2e8',\n warningOrange200: '#f9c794',\n warningOrange300: '#f6820e',\n warningOrange400: '#c60',\n warningOrange500: '#66401a',\n\n // Grey\n grey100: '#f7f5f3',\n grey200: '#e7e6e4',\n grey300: '#cfccc9',\n grey400: '#b6b3af',\n grey500: '#9c9896',\n grey600: '#696563',\n\n // Shadows\n shadowYellow: '#f6d17d'\n|}\n\nconst SUPPORT_COLOURS: SupportColours = {\n // Blue\n supportBlue100: '#f1fcfd',\n supportBlue200: '#beebf4',\n supportBlue300: '#0bb4d0',\n supportBlue400: '#078aa2',\n supportBlue500: '#05697a',\n\n // Green\n successGreen100: '#eff8ed',\n successGreen200: '#98d98c',\n successGreen300: '#4dbd37',\n successGreen400: '#238a0f',\n successGreen500: '#1f6412',\n\n // Red\n dangerRed100: '#fdf2f1',\n dangerRed200: '#f5bebc',\n dangerRed300: '#d2322d',\n dangerRed400: '#9d100b',\n dangerRed500: '#7a0a06',\n\n // Orange\n warningOrange100: '#fcf2e8',\n warningOrange200: '#f9c794',\n warningOrange300: '#f6820e',\n warningOrange400: '#c60',\n warningOrange500: '#66401a',\n\n // Grey\n grey100: '#f7f5f3',\n grey200: '#e7e6e4',\n grey300: '#cfccc9',\n grey400: '#b6b3af',\n grey500: '#9c9896',\n grey600: '#696563',\n\n // Shadows\n shadowYellow: '#f6d17d',\n}\n\nexport default SUPPORT_COLOURS\n\nexport type { SupportColours }\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 */\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 var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\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\n switch (token) {\n case 'a':\n case 'aa':\n return dayPeriodEnumValue.toUpperCase();\n\n case 'aaa':\n return dayPeriodEnumValue;\n\n case 'aaaaa':\n return dayPeriodEnumValue[0];\n\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 toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\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}","import lightFormatters from \"../lightFormatters/index.js\";\nimport 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\";\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\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\n case 'GGGGG':\n return localize.era(era, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n\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(); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, {\n unit: 'year'\n });\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); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear; // Two digit year\n\n if (token === 'YY') {\n var twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n } // Ordinal number\n\n\n if (token === 'Yo') {\n return localize.ordinalNumber(weekYear, {\n unit: 'year'\n });\n } // Padding\n\n\n return addLeadingZeros(weekYear, token.length);\n },\n // ISO week-numbering year\n R: function R(date, token) {\n var isoWeekYear = getUTCISOWeekYear(date); // Padding\n\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\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n return String(quarter);\n // 01, 02, 03, 04\n\n case 'QQ':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n\n case 'Qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\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\n case 'QQQQQ':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n\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\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n return String(quarter);\n // 01, 02, 03, 04\n\n case 'qq':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n\n case 'qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\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\n case 'qqqqq':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n\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\n switch (token) {\n case 'M':\n case 'MM':\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n\n case 'Mo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n\n case 'MMM':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // J, F, ..., D\n\n case 'MMMMM':\n return localize.month(month, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n\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\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return String(month + 1);\n // 01, 02, ..., 12\n\n case 'LL':\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n\n case 'Lo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n\n case 'LLL':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // J, F, ..., D\n\n case 'LLLLL':\n return localize.month(month, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n\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\n if (token === 'wo') {\n return localize.ordinalNumber(week, {\n unit: 'week'\n });\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\n if (token === 'Io') {\n return localize.ordinalNumber(isoWeek, {\n unit: 'week'\n });\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\n return lightFormatters.d(date, token);\n },\n // Day of year\n D: function D(date, token, localize) {\n var dayOfYear = getUTCDayOfYear(date);\n\n if (token === 'Do') {\n return localize.ordinalNumber(dayOfYear, {\n unit: 'dayOfYear'\n });\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\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\n case 'EEEEE':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'EEEEEE':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\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\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\n case 'ee':\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n\n case 'eo':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n\n case 'eee':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'eeeee':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'eeeeee':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\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\n switch (token) {\n // Numerical value (same as in `e`)\n case 'c':\n return String(localDayOfWeek);\n // Padded numerical value\n\n case 'cc':\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n\n case 'co':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n\n case 'ccc':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // T\n\n case 'ccccc':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n\n case 'cccccc':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'standalone'\n });\n // Tuesday\n\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\n switch (token) {\n // 2\n case 'i':\n return String(isoDayOfWeek);\n // 02\n\n case 'ii':\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n\n case 'io':\n return localize.ordinalNumber(isoDayOfWeek, {\n unit: 'day'\n });\n // Tue\n\n case 'iii':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'iiiii':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'iiiiii':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\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\n switch (token) {\n case 'a':\n case 'aa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'aaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n\n case 'aaaaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\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\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\n switch (token) {\n case 'b':\n case 'bb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'bbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n\n case 'bbbbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\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\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\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\n case 'BBBBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\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\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\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\n if (token === 'Ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\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\n if (token === 'ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\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\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\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\n if (timezoneOffset === 0) {\n return 'Z';\n }\n\n switch (token) {\n // Hours and optional minutes\n case 'X':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\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\n case 'XXXX':\n case 'XX':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\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\n case 'XXXXX':\n case 'XXX': // Hours and minutes with `:` delimiter\n\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\n switch (token) {\n // Hours and optional minutes\n case 'x':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\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\n case 'xxxx':\n case 'xx':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\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\n case 'xxxxx':\n case 'xxx': // Hours and minutes with `:` delimiter\n\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\n switch (token) {\n // Short\n case 'O':\n case 'OO':\n case 'OOO':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n\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\n switch (token) {\n // Short\n case 'z':\n case 'zz':\n case 'zzz':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n\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};\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\n if (minutes === 0) {\n return sign + String(hours);\n }\n\n var delimiter = dirtyDelimiter || '';\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\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\n return formatTimezone(offset, dirtyDelimiter);\n}\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}\n\nexport default formatters;","import isValid from \"../isValid/index.js\";\nimport defaultLocale from \"../locale/en-US/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\"; // 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\n\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g; // This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\n\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\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://git.io/fxCyr\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://git.io/fxCyr\n *\n * 9. `D` and `DD` tokens represent days of the year but they are ofthen confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://git.io/fxCyr\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The second argument is now required for the sake of explicitness.\n *\n * ```javascript\n * // Before v2.0.0\n * format(new Date(2016, 0, 1))\n *\n * // v2.0.0 onward\n * format(new Date(2016, 0, 1), \"yyyy-MM-dd'T'HH:mm:ss.SSSxxx\")\n * ```\n *\n * - New format string API for `format` function\n * which is based on [Unicode Technical Standard #35](https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table).\n * See [this post](https://blog.date-fns.org/post/unicode-tokens-in-date-fns-v2-sreatyki91jg) for more details.\n *\n * - Characters are now escaped using single quote symbols (`'`) instead of square brackets.\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://git.io/fxCyr\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://git.io/fxCyr\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://git.io/fxCyr\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * var 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 * var 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 * var result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\n\nexport default function format(dirtyDate, dirtyFormatStr, dirtyOptions) {\n requiredArgs(2, arguments);\n var formatStr = String(dirtyFormatStr);\n var options = dirtyOptions || {};\n var locale = options.locale || defaultLocale;\n var localeFirstWeekContainsDate = locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var localeWeekStartsOn = locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n if (!locale.localize) {\n throw new RangeError('locale must contain localize property');\n }\n\n if (!locale.formatLong) {\n throw new RangeError('locale must contain formatLong property');\n }\n\n var originalDate = toDate(dirtyDate);\n\n if (!isValid(originalDate)) {\n throw new RangeError('Invalid time value');\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\n\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\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong, formatterOptions);\n }\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\n var firstCharacter = substring[0];\n\n if (firstCharacter === \"'\") {\n return cleanEscapedString(substring);\n }\n\n var formatter = formatters[firstCharacter];\n\n if (formatter) {\n if (!options.useAdditionalWeekYearTokens && isProtectedWeekYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, dirtyDate);\n }\n\n if (!options.useAdditionalDayOfYearTokens && isProtectedDayOfYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, dirtyDate);\n }\n\n return formatter(utcDate, substring, locale.localize, formatterOptions);\n }\n\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n\n return substring;\n }).join('');\n return result;\n}\n\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}","export default function buildLocalizeFn(args) {\n return function (dirtyIndex, dirtyOptions) {\n var options = dirtyOptions || {};\n var context = options.context ? String(options.context) : 'standalone';\n var valuesArray;\n\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n\n var _width = options.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[_width] || args.values[_defaultWidth];\n }\n\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex; // @ts-ignore: For some reason TypeScript just don't want to match it, no matter how hard we try. I challange you to try to remove it!\n\n return valuesArray[index];\n };\n}","function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\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\nimport parsePhoneNumber from './parsePhoneNumber_';\nimport ParseError from './ParseError';\nimport { isSupportedCountry } from './metadata';\nexport default function parsePhoneNumberFromString(text, options, metadata) {\n // Validate `defaultCountry`.\n if (options && options.defaultCountry && !isSupportedCountry(options.defaultCountry, metadata)) {\n options = _objectSpread({}, options, {\n defaultCountry: undefined\n });\n } // Parse phone number.\n\n\n try {\n return parsePhoneNumber(text, options, metadata);\n } catch (error) {\n /* istanbul ignore else */\n if (error instanceof ParseError) {//\n } else {\n throw error;\n }\n }\n}","function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\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\nimport { normalizeArguments } from './parsePhoneNumber';\nimport parsePhoneNumberFromString from './parsePhoneNumberFromString_';\nexport default function isValidPhoneNumber() {\n var _normalizeArguments = normalizeArguments(arguments),\n text = _normalizeArguments.text,\n options = _normalizeArguments.options,\n metadata = _normalizeArguments.metadata;\n\n options = _objectSpread({}, options, {\n extract: false\n });\n var phoneNumber = parsePhoneNumberFromString(text, options, metadata);\n return phoneNumber && phoneNumber.isValid() || false;\n}","import { withMetadata } from '../metadata';\nimport { isValidPhoneNumber as _isValidPhoneNumber } from '../../core/index';\nexport function isValidPhoneNumber() {\n return withMetadata(_isValidPhoneNumber, arguments);\n}","/**\n * @license React\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';\n\nvar b = Symbol.for(\"react.element\"),\n c = Symbol.for(\"react.portal\"),\n d = Symbol.for(\"react.fragment\"),\n e = Symbol.for(\"react.strict_mode\"),\n f = Symbol.for(\"react.profiler\"),\n g = Symbol.for(\"react.provider\"),\n h = Symbol.for(\"react.context\"),\n k = Symbol.for(\"react.server_context\"),\n l = Symbol.for(\"react.forward_ref\"),\n m = Symbol.for(\"react.suspense\"),\n n = Symbol.for(\"react.suspense_list\"),\n p = Symbol.for(\"react.memo\"),\n q = Symbol.for(\"react.lazy\"),\n t = Symbol.for(\"react.offscreen\"),\n u;\nu = Symbol.for(\"react.module.reference\");\n\nfunction v(a) {\n if (\"object\" === typeof a && null !== a) {\n var r = a.$$typeof;\n\n switch (r) {\n case b:\n switch (a = a.type, a) {\n case d:\n case f:\n case e:\n case m:\n case n:\n return a;\n\n default:\n switch (a = a && a.$$typeof, a) {\n case k:\n case h:\n case l:\n case q:\n case p:\n case g:\n return a;\n\n default:\n return r;\n }\n\n }\n\n case c:\n return r;\n }\n }\n}\n\nexports.ContextConsumer = h;\nexports.ContextProvider = g;\nexports.Element = b;\nexports.ForwardRef = l;\nexports.Fragment = d;\nexports.Lazy = q;\nexports.Memo = p;\nexports.Portal = c;\nexports.Profiler = f;\nexports.StrictMode = e;\nexports.Suspense = m;\nexports.SuspenseList = n;\n\nexports.isAsyncMode = function () {\n return !1;\n};\n\nexports.isConcurrentMode = function () {\n return !1;\n};\n\nexports.isContextConsumer = function (a) {\n return v(a) === h;\n};\n\nexports.isContextProvider = function (a) {\n return v(a) === g;\n};\n\nexports.isElement = function (a) {\n return \"object\" === typeof a && null !== a && a.$$typeof === b;\n};\n\nexports.isForwardRef = function (a) {\n return v(a) === l;\n};\n\nexports.isFragment = function (a) {\n return v(a) === d;\n};\n\nexports.isLazy = function (a) {\n return v(a) === q;\n};\n\nexports.isMemo = function (a) {\n return v(a) === p;\n};\n\nexports.isPortal = function (a) {\n return v(a) === c;\n};\n\nexports.isProfiler = function (a) {\n return v(a) === f;\n};\n\nexports.isStrictMode = function (a) {\n return v(a) === e;\n};\n\nexports.isSuspense = function (a) {\n return v(a) === m;\n};\n\nexports.isSuspenseList = function (a) {\n return v(a) === n;\n};\n\nexports.isValidElementType = function (a) {\n return \"string\" === typeof a || \"function\" === typeof a || a === d || a === f || a === e || a === m || a === n || a === t || \"object\" === typeof a && null !== a && (a.$$typeof === q || a.$$typeof === p || a.$$typeof === g || a.$$typeof === h || a.$$typeof === l || a.$$typeof === u || void 0 !== a.getModuleId) ? !0 : !1;\n};\n\nexports.typeOf = v;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\n\nfunction emptyFunctionWithReset() {}\n\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function () {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n\n var err = new Error('Calling PropTypes validators directly is not supported by the `prop-types` package. ' + 'Use PropTypes.checkPropTypes() to call them. ' + 'Read more at http://fb.me/use-check-prop-types');\n err.name = 'Invariant Violation';\n throw err;\n }\n\n ;\n shim.isRequired = shim;\n\n function getShim() {\n return shim;\n }\n\n ; // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n ReactPropTypes.PropTypes = ReactPropTypes;\n return ReactPropTypes;\n};","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\nmodule.exports = ReactPropTypesSecret;","var _excluded = [\"children\"],\n _excluded2 = [\"count\", \"wrapper\", \"className\", \"containerClassName\", \"containerTestId\", \"circle\", \"style\"];\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 _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from 'react';\n/**\n * @internal\n */\n\nvar SkeletonThemeContext = React.createContext({});\n\nfunction SkeletonTheme(_ref) {\n var {\n children\n } = _ref,\n styleOptions = _objectWithoutProperties(_ref, _excluded);\n\n return React.createElement(SkeletonThemeContext.Provider, {\n value: styleOptions\n }, children);\n}\n/* eslint-disable react/no-array-index-key */\n\n\nvar defaultEnableAnimation = true; // For performance & cleanliness, don't add any inline styles unless we have to\n\nfunction styleOptionsToCssProperties(_ref2) {\n var {\n baseColor,\n highlightColor,\n width,\n height,\n borderRadius,\n circle,\n direction,\n duration,\n enableAnimation = defaultEnableAnimation\n } = _ref2;\n var style = {};\n if (direction === 'rtl') style['--animation-direction'] = 'reverse';\n if (typeof duration === 'number') style['--animation-duration'] = \"\".concat(duration, \"s\");\n if (!enableAnimation) style['--pseudo-element-display'] = 'none';\n if (typeof width === 'string' || typeof width === 'number') style.width = width;\n if (typeof height === 'string' || typeof height === 'number') style.height = height;\n if (typeof borderRadius === 'string' || typeof borderRadius === 'number') style.borderRadius = borderRadius;\n if (circle) style.borderRadius = '50%';\n if (typeof baseColor !== 'undefined') style['--base-color'] = baseColor;\n if (typeof highlightColor !== 'undefined') style['--highlight-color'] = highlightColor;\n return style;\n}\n\nfunction Skeleton(_ref3) {\n var {\n count = 1,\n wrapper: Wrapper,\n className: customClassName,\n containerClassName,\n containerTestId,\n circle = false,\n style: styleProp\n } = _ref3,\n propsStyleOptions = _objectWithoutProperties(_ref3, _excluded2);\n\n var _a, _b;\n\n var contextStyleOptions = React.useContext(SkeletonThemeContext); // Props take priority over context\n\n var styleOptions = _objectSpread(_objectSpread(_objectSpread({}, contextStyleOptions), propsStyleOptions), {}, {\n circle\n }); // `styleProp` has the least priority out of everything\n\n\n var style = _objectSpread(_objectSpread({}, styleProp), styleOptionsToCssProperties(styleOptions));\n\n var className = 'react-loading-skeleton';\n if (customClassName) className += \" \".concat(customClassName);\n var inline = (_a = styleOptions.inline) !== null && _a !== void 0 ? _a : false;\n var elements = []; // Without the <br />, the skeleton lines will all run together if\n // `width` is specified\n\n for (var i = 0; i < count; i++) {\n var skeletonSpan = React.createElement(\"span\", {\n className: className,\n style: style,\n key: i\n }, \"\\u200C\");\n\n if (inline) {\n elements.push(skeletonSpan);\n } else {\n elements.push(React.createElement(React.Fragment, {\n key: i\n }, skeletonSpan, React.createElement(\"br\", null)));\n }\n }\n\n return React.createElement(\"span\", {\n className: containerClassName,\n \"data-testid\": containerTestId,\n \"aria-live\": \"polite\",\n \"aria-busy\": (_b = styleOptions.enableAnimation) !== null && _b !== void 0 ? _b : defaultEnableAnimation\n }, Wrapper ? elements.map((el, i) => React.createElement(Wrapper, {\n key: i\n }, el)) : elements);\n}\n\nexport { SkeletonTheme, Skeleton as default };","import { __assign } from \"tslib\";\nimport { useCallback, useEffect, useRef, useState } from 'react';\nimport { mergeOptions } from \"../../core/index.js\";\nimport { equal } from '@wry/equality';\nimport { DocumentType, verifyDocumentType } from \"../parser/index.js\";\nimport { ApolloError } from \"../../errors/index.js\";\nimport { useApolloClient } from \"./useApolloClient.js\";\nexport function useMutation(mutation, options) {\n var client = useApolloClient(options === null || options === void 0 ? void 0 : options.client);\n verifyDocumentType(mutation, DocumentType.Mutation);\n\n var _a = useState({\n called: false,\n loading: false,\n client: client\n }),\n result = _a[0],\n setResult = _a[1];\n\n var ref = useRef({\n result: result,\n mutationId: 0,\n isMounted: true,\n client: client,\n mutation: mutation,\n options: options\n });\n {\n Object.assign(ref.current, {\n client: client,\n options: options,\n mutation: mutation\n });\n }\n var execute = useCallback(function (executeOptions) {\n if (executeOptions === void 0) {\n executeOptions = {};\n }\n\n var _a = ref.current,\n client = _a.client,\n options = _a.options,\n mutation = _a.mutation;\n\n var baseOptions = __assign(__assign({}, options), {\n mutation: mutation\n });\n\n if (!ref.current.result.loading && !baseOptions.ignoreResults && ref.current.isMounted) {\n setResult(ref.current.result = {\n loading: true,\n error: void 0,\n data: void 0,\n called: true,\n client: client\n });\n }\n\n var mutationId = ++ref.current.mutationId;\n var clientOptions = mergeOptions(baseOptions, executeOptions);\n return client.mutate(clientOptions).then(function (response) {\n var _a, _b, _c;\n\n var data = response.data,\n errors = response.errors;\n var error = errors && errors.length > 0 ? new ApolloError({\n graphQLErrors: errors\n }) : void 0;\n\n if (mutationId === ref.current.mutationId && !clientOptions.ignoreResults) {\n var result_1 = {\n called: true,\n loading: false,\n data: data,\n error: error,\n client: client\n };\n\n if (ref.current.isMounted && !equal(ref.current.result, result_1)) {\n setResult(ref.current.result = result_1);\n }\n }\n\n (_b = (_a = ref.current.options) === null || _a === void 0 ? void 0 : _a.onCompleted) === null || _b === void 0 ? void 0 : _b.call(_a, response.data, clientOptions);\n (_c = executeOptions.onCompleted) === null || _c === void 0 ? void 0 : _c.call(executeOptions, response.data, clientOptions);\n return response;\n }).catch(function (error) {\n var _a, _b, _c, _d;\n\n if (mutationId === ref.current.mutationId && ref.current.isMounted) {\n var result_2 = {\n loading: false,\n error: error,\n data: void 0,\n called: true,\n client: client\n };\n\n if (!equal(ref.current.result, result_2)) {\n setResult(ref.current.result = result_2);\n }\n }\n\n if (((_a = ref.current.options) === null || _a === void 0 ? void 0 : _a.onError) || clientOptions.onError) {\n (_c = (_b = ref.current.options) === null || _b === void 0 ? void 0 : _b.onError) === null || _c === void 0 ? void 0 : _c.call(_b, error, clientOptions);\n (_d = executeOptions.onError) === null || _d === void 0 ? void 0 : _d.call(executeOptions, error, clientOptions);\n return {\n data: void 0,\n errors: error\n };\n }\n\n throw error;\n });\n }, []);\n var reset = useCallback(function () {\n if (ref.current.isMounted) {\n setResult({\n called: false,\n loading: false,\n client: client\n });\n }\n }, []);\n useEffect(function () {\n ref.current.isMounted = true;\n return function () {\n ref.current.isMounted = false;\n };\n }, []);\n return [execute, __assign({\n reset: reset\n }, result)];\n}","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE, d MMMM yyyy',\n long: 'd MMMM yyyy',\n medium: 'd MMM yyyy',\n short: 'dd/MM/yyyy'\n};\nvar timeFormats = {\n full: 'HH:mm:ss zzzz',\n long: 'HH:mm:ss z',\n medium: 'HH:mm:ss',\n short: 'HH:mm'\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;","import formatDistance from \"../en-US/_lib/formatDistance/index.js\";\nimport formatRelative from \"../en-US/_lib/formatRelative/index.js\";\nimport localize from \"../en-US/_lib/localize/index.js\";\nimport match from \"../en-US/_lib/match/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United Kingdom).\n * @language English\n * @iso-639-2 eng\n * @author Alex [@glintik]{@link https://github.com/glintik}\n */\n\nvar locale = {\n code: 'en-GB',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 4\n }\n};\nexport default locale;","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\n if (!matchResult) {\n return null;\n }\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}\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\n return undefined;\n}\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\n return undefined;\n}","import { invariant } from \"../../utilities/globals/index.js\";\nimport * as React from 'react';\nimport { getApolloContext } from \"./ApolloContext.js\";\nexport var ApolloProvider = function ApolloProvider(_a) {\n var client = _a.client,\n children = _a.children;\n var ApolloContext = getApolloContext();\n return React.createElement(ApolloContext.Consumer, null, function (context) {\n if (context === void 0) {\n context = {};\n }\n\n if (client && context.client !== client) {\n context = Object.assign({}, context, {\n client: client\n });\n }\n\n __DEV__ ? invariant(context.client, 'ApolloProvider was not passed a client instance. Make ' + 'sure you pass in your client via the \"client\" prop.') : invariant(context.client, 28);\n return React.createElement(ApolloContext.Provider, {\n value: context\n }, children);\n });\n};","import { ApolloProvider } from '@apollo/client'\nimport React from 'react'\n\nimport client from './client'\n\n// In most standard ( non railsy ) react apps there is a root level App component\n// in to which we can place the apollo wrapper. But we don't have that. As such we need to\n// wrapp each page component in the apollo provider using this HOC\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nfunction withApollo<P>(WrappedComponent: React.ComponentType<P>) {\n const ComponentWithApollo = (props: P) => (\n <ApolloProvider client={client}>\n <WrappedComponent {...props} />\n </ApolloProvider>\n )\n return ComponentWithApollo\n}\n\nexport default withApollo\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"xs\":\"375px\",\"sm\":\"600px\",\"md\":\"834px\",\"lg\":\"1280px\",\"xl\":\"1280px\",\"wrapper\":\"Text-module__wrapper___1AWXr\",\"nomargin\":\"Text-module__nomargin___2Rcge\",\"leftAlign\":\"Text-module__leftAlign___3Lrh8\",\"centerAlign\":\"Text-module__centerAlign___YwIRg\",\"rightAlign\":\"Text-module__rightAlign___3dJHY\",\"uppercase\":\"Text-module__uppercase___2vgix\",\"strikeThrough\":\"Text-module__strikeThrough___3_cNB\",\"bold\":\"Text-module__bold___c5iiP\",\"discount\":\"Text-module__discount___3Ej9z\",\"textMono18\":\"Text-module__textMono18___3Q4ne\",\"textMono16\":\"Text-module__textMono16___2dPk-\",\"textMono14\":\"Text-module__textMono14___1-VGH\",\"textMono12\":\"Text-module__textMono12___1UTPA\",\"textRegular20\":\"Text-module__textRegular20___22scn\",\"textRegular18\":\"Text-module__textRegular18___13QiL\",\"textRegular16\":\"Text-module__textRegular16___2yxOG\",\"textRegular14\":\"Text-module__textRegular14___2GKiG\",\"textRegular12\":\"Text-module__textRegular12___3xQpx\",\"display45\":\"Text-module__display45___1mI6D\",\"display36\":\"Text-module__display36___3LmhC\",\"display28\":\"Text-module__display28___350q6\",\"display24\":\"Text-module__display24___2g8-i\",\"display20\":\"Text-module__display20___SSooV\",\"display18\":\"Text-module__display18___1zOnn\",\"display16\":\"Text-module__display16___29Iuk\",\"display14\":\"Text-module__display14___2ElYH\",\"display12\":\"Text-module__display12___2HeMT\",\"scale\":\"Text-module__scale___cMpoE\",\"tight\":\"Text-module__tight___3fHKE\",\"brandBlue100\":\"Text-module__brandBlue100___1Fs9M\",\"brandBlue200\":\"Text-module__brandBlue200___2IfrB\",\"brandBlue300\":\"Text-module__brandBlue300___sfIRq\",\"brandBlue400\":\"Text-module__brandBlue400___2p9zS\",\"brandBlue500\":\"Text-module__brandBlue500___2OgN7\",\"brandBlue600\":\"Text-module__brandBlue600___1g3kC\",\"brandRed300\":\"Text-module__brandRed300___5uQeb\",\"brandRed400\":\"Text-module__brandRed400___2RGDi\",\"brandRed500\":\"Text-module__brandRed500___3GsVu\",\"brandRed600\":\"Text-module__brandRed600___1fY4_\",\"brandYellow100\":\"Text-module__brandYellow100___2JTmD\",\"brandYellow300\":\"Text-module__brandYellow300___2YZMw\",\"brandYellow600\":\"Text-module__brandYellow600___30Z2N\",\"brandYellow700\":\"Text-module__brandYellow700___39Kg8\",\"brandPink200\":\"Text-module__brandPink200___2SFyd\",\"brandPink400\":\"Text-module__brandPink400___1wazs\",\"brandPink500\":\"Text-module__brandPink500___2LYAb\",\"brandWhite\":\"Text-module__brandWhite___laIxv\",\"supportGreen300\":\"Text-module__supportGreen300___2bJ-c\",\"supportGreen400\":\"Text-module__supportGreen400___1gTWF\",\"supportGreen500\":\"Text-module__supportGreen500___1V2Pz\",\"supportOrange300\":\"Text-module__supportOrange300___PKPYj\",\"supportOrange400\":\"Text-module__supportOrange400___1VCrJ\",\"supportOrange500\":\"Text-module__supportOrange500___1TVVy\",\"supportRed300\":\"Text-module__supportRed300___1-A7n\",\"supportRed500\":\"Text-module__supportRed500___1Vs5A\",\"supportBlue300\":\"Text-module__supportBlue300___1haMh\",\"supportBlue500\":\"Text-module__supportBlue500___1gIzd\",\"dangerRed300\":\"Text-module__dangerRed300___3eegP\",\"dangerRed500\":\"Text-module__dangerRed500___c-KM0\",\"cardboardBrown\":\"Text-module__cardboardBrown___diY4h\",\"grey400\":\"Text-module__grey400___3Zh0X\",\"shadowBlack\":\"Text-module__shadowBlack___oJISb\",\"squigglyUnderlineYellow\":\"Text-module__squigglyUnderlineYellow___2o4fi\",\"squigglyUnderlineBlue\":\"Text-module__squigglyUnderlineBlue___9Q2J2\",\"squigglyUnderlineGreen\":\"Text-module__squigglyUnderlineGreen___1aMJd\",\"squigglyUnderlinePinkLarge\":\"Text-module__squigglyUnderlinePinkLarge___qmlAW\",\"pillDiscount\":\"Text-module__pillDiscount___2C8CG\",\"angledStrikethrough\":\"Text-module__angledStrikethrough___fFhKa\",\"discountStrikeThrough\":\"Text-module__discountStrikeThrough___1GPQ3\",\"link\":\"Text-module__link___1iRfy\",\"whiteTape\":\"Text-module__whiteTape___2Jry2\",\"lightBlueTape\":\"Text-module__lightBlueTape___39bEn\",\"whiteTapeWithBlueShadow\":\"Text-module__whiteTapeWithBlueShadow___yrlmM\",\"blueTape\":\"Text-module__blueTape___2fzh7\",\"yellowTape\":\"Text-module__yellowTape___3a8ek\",\"pinkTape\":\"Text-module__pinkTape___19vNr\",\"redTape\":\"Text-module__redTape___2wZDy\",\"greenTape\":\"Text-module__greenTape___17ozm\",\"colorAccentDiscount\":\"Text-module__colorAccentDiscount___tx-E-\",\"colorAccentLight\":\"Text-module__colorAccentLight___1pQhE\",\"strikeTrough\":\"Text-module__strikeTrough___28Jvk\",\"underline\":\"Text-module__underline___5CRKC\",\"redAccent\":\"Text-module__redAccent___3P6aG\",\"yellowAccent\":\"Text-module__yellowAccent___3DmJZ\",\"blueTextShadow\":\"Text-module__blueTextShadow___1P9rK\",\"grayTextShadow\":\"Text-module__grayTextShadow___1QpkL\",\"redTextShadow\":\"Text-module__redTextShadow___1yOY7\",\"yellowUnderline\":\"Text-module__yellowUnderline___20wN-\"};","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","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}","// @noflow\nimport {\n DynamicDefaultTrackEventProperties,\n dynamicDefaultTrackEventPropertiesVar\n} from '@/services/apollo'\n\ntype DefaultProperties = {\n source: string\n screen_identifier: string\n} & DynamicDefaultTrackEventProperties\n\ntype TrackEventProperties = {\n component_identifier: string\n screen_identifier?: string\n sub_event_name?: string\n}\n\ntype ComponentAnalyticsEnabled = {\n identifier: string\n screenIdentifier?: string | null\n subEventName?: string | null\n trackDisabledPresses?: boolean\n disableAnalytics?: never\n}\n\ntype ComponentAnalyticsDisabled = {\n disableAnalytics: boolean\n identifier?: never\n screenIdentifier?: never\n subEventName?: never\n trackDisabledPresses?: never\n}\n\ntype AnalyticsProps = ComponentAnalyticsEnabled | ComponentAnalyticsDisabled\n\n/**\n * Track an analytics event\n *\n * This method should only be called from page loads or generic\n * components (atoms and molecules).\n * Direct interaction with this function from a screen is anti-pattern.\n *\n * @example\n ```\n import { trackEvent, AnalyticsProps } from 'services/segment'\n\n type Props = ButtonProps & AnalyticsProps\n\n trackEvent('Component Clicked', {\n component_identifier: identifier\n })\n ```\n *\n * @param {string} eventName - The name of the event to track\n * @param {TrackEventProperties} properties - The properties to attach to the event\n */\nconst trackEvent = (\n eventName: string,\n properties: TrackEventProperties\n): void => {\n /**\n * Get the current route name in order to set the `screen_identifier`\n * property dynamically.\n *\n * If the route is not available, we set the route name to `unknown`.\n *\n * Alternatively, we can pass optional `screen_identifier` prop to the\n * `trackEvent` function to override the default value.\n *\n * TODO: Establish if we want to use pathname or react route name\n */\n const routeName = window.location.pathname ?? 'unknown'\n\n /**\n * Get the dynamic default properties from the Apollo reactive variable.\n * When one of the properties changes, the reactive variable will be\n * updated and future `trackEvent` function calls will be called with new\n * dynamic properties.\n */\n const dynamicDefaultTrackEventProperties =\n dynamicDefaultTrackEventPropertiesVar()\n\n const defaultProperties: DefaultProperties = {\n source: 'web',\n screen_identifier: routeName,\n ...dynamicDefaultTrackEventProperties\n }\n\n window.analytics.track(eventName, {\n ...defaultProperties,\n ...properties\n })\n}\n\nexport type {\n AnalyticsProps,\n ComponentAnalyticsEnabled,\n ComponentAnalyticsDisabled\n}\n\nexport { trackEvent }\n","// @noflow\nimport Cookies from 'js-cookie'\nimport React, { useCallback, useRef, useState } from 'react'\nimport { useTranslation } from 'react-i18next'\n\nimport popularBreeds from '@/constants/PopularBreeds'\n\nimport BreedAutocomplete from './components/BreedAutocomplete/BreedAutocomplete'\nimport BreedCard, {\n NonPopularBreed,\n PopularBreed\n} from './components/BreedCard/BreedCard'\nimport BreedQuestionnaire from './components/BreedQuestionaire'\nimport segmentTrack from '@/components/analytics/Analytics'\n\nimport type { HomeBreedSelectorQuery_breeds as Breed } from './queries/__generated__/HomeBreedSelectorQuery'\n\nenum BreedSelectorVariant {\n Homepage = 'homepage',\n Generic = 'generic'\n}\n\ntype Props = {\n ctaDestination: string\n isPreWizardGuest: boolean\n scrollToOnFocus?:\n | {\n topOffset: number\n }\n | false\n variant: BreedSelectorVariant\n screenIdentifier: string\n}\n\nconst BreedSelector = ({\n scrollToOnFocus,\n isPreWizardGuest,\n ctaDestination,\n variant = BreedSelectorVariant.Generic,\n screenIdentifier\n}: Props): JSX.Element => {\n const namespace = 'paid_traffic'\n const { t } = useTranslation(namespace)\n const [selectedBreed, setSelectedBreed] = useState<\n PopularBreed | NonPopularBreed | null\n >(null)\n\n const breedSelectorRef = useRef<HTMLDivElement>(null)\n\n // Callbacks\n const onOpenCallback = useCallback(() => setSelectedBreed(null), [])\n const linkCTADestination = useCallback(() => {\n const eventName = 'Component Clicked'\n const properties = {\n screen_identifier: screenIdentifier,\n component_identifier: 'breed_selector_cta',\n breed: selectedBreed?.key\n }\n\n segmentTrack(eventName, properties)\n\n window.location.href = ctaDestination\n }, [ctaDestination, screenIdentifier, selectedBreed?.key])\n\n const onFocusCallback = useCallback(() => {\n if (scrollToOnFocus && breedSelectorRef.current) {\n const { topOffset } = scrollToOnFocus\n const containerDistanceFromTop =\n breedSelectorRef.current.getBoundingClientRect().top\n\n const y = containerDistanceFromTop + window.pageYOffset - topOffset\n\n // On iOS, when a user focuses on an input, the window is automatically\n // scrolled so the input element is placed above the keyboard. By setting a\n // very small timeout, we can ensure that our custom scroll position does not\n // scroll too far which was observed previously.\n setTimeout(() => window.scrollTo({ top: y, behavior: 'smooth' }), 100)\n }\n }, [scrollToOnFocus])\n\n const onBreedSelection = useCallback((breed: Breed) => {\n const matchingPopularBreed = popularBreeds[breed.key]\n\n // Set Breed ID cookie to be accessed by the Wizard to allow\n // for pre-populated breed selection\n Cookies.set(\n 'breedSelectorBreedId',\n JSON.stringify({\n id: parseInt(breed.id),\n key: breed.key,\n name: breed.name\n })\n )\n\n if (matchingPopularBreed) {\n return setSelectedBreed({\n ...breed,\n ...matchingPopularBreed,\n isPopular: true\n })\n } else {\n return setSelectedBreed({\n ...breed,\n isPopular: false\n })\n }\n }, [])\n\n switch (variant) {\n case BreedSelectorVariant.Homepage: {\n return (\n <div id=\"breed-questionaire\" ref={breedSelectorRef}>\n <BreedQuestionnaire\n namespace={namespace}\n onClickCTA={linkCTADestination}\n variant={variant}\n isPreWizardGuest={isPreWizardGuest}\n selectedBreed={selectedBreed}\n events={{\n onBreedSelection: onBreedSelection,\n onListOpen: onOpenCallback,\n onFocus: onFocusCallback,\n onInputEmpty: () => null\n }}\n />\n </div>\n )\n }\n default: {\n return (\n <div id=\"breed-questionaire\" ref={breedSelectorRef}>\n <BreedAutocomplete\n loadingPlaceholder={t(\n `breed_hero_section.field_placeholder_loading`\n )}\n placeholder={t('breed_hero_section.placeholder_v2')}\n embeddedCTA\n onClickCTA={linkCTADestination}\n events={{\n onBreedSelection,\n onListOpen: onOpenCallback,\n onFocus: onFocusCallback,\n onInputEmpty: () => null\n }}\n variant={variant}\n />\n {selectedBreed !== null && (\n <div>\n <div className=\"breed-selector__breed-card-section\">\n <div className=\"breed-selector__breed-card-wrapper\">\n <BreedCard\n selectedBreed={selectedBreed}\n isPreWizardGuest={isPreWizardGuest}\n namespace={namespace}\n variant={variant}\n />\n </div>\n </div>\n </div>\n )}\n </div>\n )\n }\n }\n}\n\nexport default BreedSelector\nexport { BreedSelectorVariant }\n","\"use strict\";\n/** Ported from org.apache.commons.validator.routines.DomainValidator */\n\n/** https://github.com/apache/commons-validator/blob/master/src/main/java/org/apache/commons/validator/routines/DomainValidator.java */\n// WARNING: this array MUST be sorted, otherwise it cannot be searched reliably using binary search\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar infrastructureTlds = exports.infrastructureTlds = [\"arpa\"]; // WARNING: this array MUST be sorted, otherwise it cannot be searched reliably using binary search\n\nvar genericTlds = exports.genericTlds = [// Taken from Version 2020073100, Last Updated Fri Jul 31 07:07:01 2020 UTC\n\"aaa\", // aaa American Automobile Association, Inc.\n\"aarp\", // aarp AARP\n\"abarth\", // abarth Fiat Chrysler Automobiles N.V.\n\"abb\", // abb ABB Ltd\n\"abbott\", // abbott Abbott Laboratories, Inc.\n\"abbvie\", // abbvie AbbVie Inc.\n\"abc\", // abc Disney Enterprises, Inc.\n\"able\", // able Able Inc.\n\"abogado\", // abogado Top Level Domain Holdings Limited\n\"abudhabi\", // abudhabi Abu Dhabi Systems and Information Centre\n\"academy\", // academy Half Oaks, LLC\n\"accenture\", // accenture Accenture plc\n\"accountant\", // accountant dot Accountant Limited\n\"accountants\", // accountants Knob Town, LLC\n\"aco\", // aco ACO Severin Ahlmann GmbH & Co. KG\n// \"active\", // active The Active Network, Inc\n\"actor\", // actor United TLD Holdco Ltd.\n\"adac\", // adac Allgemeiner Deutscher Automobil-Club e.V. (ADAC)\n\"ads\", // ads Charleston Road Registry Inc.\n\"adult\", // adult ICM Registry AD LLC\n\"aeg\", // aeg Aktiebolaget Electrolux\n\"aero\", // aero Societe Internationale de Telecommunications Aeronautique (SITA INC USA)\n\"aetna\", // aetna Aetna Life Insurance Company\n\"afamilycompany\", // afamilycompany Johnson Shareholdings, Inc.\n\"afl\", // afl Australian Football League\n\"africa\", // africa ZA Central Registry NPC trading as Registry.Africa\n\"agakhan\", // agakhan Fondation Aga Khan (Aga Khan Foundation)\n\"agency\", // agency Steel Falls, LLC\n\"aig\", // aig American International Group, Inc.\n// \"aigo\", // aigo aigo Digital Technology Co,Ltd. [Not assigned as of Jul 25]\n\"airbus\", // airbus Airbus S.A.S.\n\"airforce\", // airforce United TLD Holdco Ltd.\n\"airtel\", // airtel Bharti Airtel Limited\n\"akdn\", // akdn Fondation Aga Khan (Aga Khan Foundation)\n\"alfaromeo\", // alfaromeo Fiat Chrysler Automobiles N.V.\n\"alibaba\", // alibaba Alibaba Group Holding Limited\n\"alipay\", // alipay Alibaba Group Holding Limited\n\"allfinanz\", // allfinanz Allfinanz Deutsche Vermögensberatung Aktiengesellschaft\n\"allstate\", // allstate Allstate Fire and Casualty Insurance Company\n\"ally\", // ally Ally Financial Inc.\n\"alsace\", // alsace REGION D ALSACE\n\"alstom\", // alstom ALSTOM\n\"amazon\", // amazon Amazon Registry Services, Inc.\n\"americanexpress\", // americanexpress American Express Travel Related Services Company, Inc.\n\"americanfamily\", // americanfamily AmFam, Inc.\n\"amex\", // amex American Express Travel Related Services Company, Inc.\n\"amfam\", // amfam AmFam, Inc.\n\"amica\", // amica Amica Mutual Insurance Company\n\"amsterdam\", // amsterdam Gemeente Amsterdam\n\"analytics\", // analytics Campus IP LLC\n\"android\", // android Charleston Road Registry Inc.\n\"anquan\", // anquan QIHOO 360 TECHNOLOGY CO. LTD.\n\"anz\", // anz Australia and New Zealand Banking Group Limited\n\"aol\", // aol AOL Inc.\n\"apartments\", // apartments June Maple, LLC\n\"app\", // app Charleston Road Registry Inc.\n\"apple\", // apple Apple Inc.\n\"aquarelle\", // aquarelle Aquarelle.com\n\"arab\", // arab League of Arab States\n\"aramco\", // aramco Aramco Services Company\n\"archi\", // archi STARTING DOT LIMITED\n\"army\", // army United TLD Holdco Ltd.\n\"art\", // art UK Creative Ideas Limited\n\"arte\", // arte Association Relative à la Télévision Européenne G.E.I.E.\n\"asda\", // asda Wal-Mart Stores, Inc.\n\"asia\", // asia DotAsia Organisation Ltd.\n\"associates\", // associates Baxter Hill, LLC\n\"athleta\", // athleta The Gap, Inc.\n\"attorney\", // attorney United TLD Holdco, Ltd\n\"auction\", // auction United TLD HoldCo, Ltd.\n\"audi\", // audi AUDI Aktiengesellschaft\n\"audible\", // audible Amazon Registry Services, Inc.\n\"audio\", // audio Uniregistry, Corp.\n\"auspost\", // auspost Australian Postal Corporation\n\"author\", // author Amazon Registry Services, Inc.\n\"auto\", // auto Uniregistry, Corp.\n\"autos\", // autos DERAutos, LLC\n\"avianca\", // avianca Aerovias del Continente Americano S.A. Avianca\n\"aws\", // aws Amazon Registry Services, Inc.\n\"axa\", // axa AXA SA\n\"azure\", // azure Microsoft Corporation\n\"baby\", // baby Johnson & Johnson Services, Inc.\n\"baidu\", // baidu Baidu, Inc.\n\"banamex\", // banamex Citigroup Inc.\n\"bananarepublic\", // bananarepublic The Gap, Inc.\n\"band\", // band United TLD Holdco, Ltd\n\"bank\", // bank fTLD Registry Services, LLC\n\"bar\", // bar Punto 2012 Sociedad Anonima Promotora de Inversion de Capital Variable\n\"barcelona\", // barcelona Municipi de Barcelona\n\"barclaycard\", // barclaycard Barclays Bank PLC\n\"barclays\", // barclays Barclays Bank PLC\n\"barefoot\", // barefoot Gallo Vineyards, Inc.\n\"bargains\", // bargains Half Hallow, LLC\n\"baseball\", // baseball MLB Advanced Media DH, LLC\n\"basketball\", // basketball Fédération Internationale de Basketball (FIBA)\n\"bauhaus\", // bauhaus Werkhaus GmbH\n\"bayern\", // bayern Bayern Connect GmbH\n\"bbc\", // bbc British Broadcasting Corporation\n\"bbt\", // bbt BB&T Corporation\n\"bbva\", // bbva BANCO BILBAO VIZCAYA ARGENTARIA, S.A.\n\"bcg\", // bcg The Boston Consulting Group, Inc.\n\"bcn\", // bcn Municipi de Barcelona\n\"beats\", // beats Beats Electronics, LLC\n\"beauty\", // beauty L'Oréal\n\"beer\", // beer Top Level Domain Holdings Limited\n\"bentley\", // bentley Bentley Motors Limited\n\"berlin\", // berlin dotBERLIN GmbH & Co. KG\n\"best\", // best BestTLD Pty Ltd\n\"bestbuy\", // bestbuy BBY Solutions, Inc.\n\"bet\", // bet Afilias plc\n\"bharti\", // bharti Bharti Enterprises (Holding) Private Limited\n\"bible\", // bible American Bible Society\n\"bid\", // bid dot Bid Limited\n\"bike\", // bike Grand Hollow, LLC\n\"bing\", // bing Microsoft Corporation\n\"bingo\", // bingo Sand Cedar, LLC\n\"bio\", // bio STARTING DOT LIMITED\n\"biz\", // biz Neustar, Inc.\n\"black\", // black Afilias Limited\n\"blackfriday\", // blackfriday Uniregistry, Corp.\n// \"blanco\", // blanco BLANCO GmbH + Co KG\n\"blockbuster\", // blockbuster Dish DBS Corporation\n\"blog\", // blog Knock Knock WHOIS There, LLC\n\"bloomberg\", // bloomberg Bloomberg IP Holdings LLC\n\"blue\", // blue Afilias Limited\n\"bms\", // bms Bristol-Myers Squibb Company\n\"bmw\", // bmw Bayerische Motoren Werke Aktiengesellschaft\n// \"bnl\", // bnl Banca Nazionale del Lavoro\n\"bnpparibas\", // bnpparibas BNP Paribas\n\"boats\", // boats DERBoats, LLC\n\"boehringer\", // boehringer Boehringer Ingelheim International GmbH\n\"bofa\", // bofa NMS Services, Inc.\n\"bom\", // bom Núcleo de Informação e Coordenação do Ponto BR - NIC.br\n\"bond\", // bond Bond University Limited\n\"boo\", // boo Charleston Road Registry Inc.\n\"book\", // book Amazon Registry Services, Inc.\n\"booking\", // booking Booking.com B.V.\n// \"boots\", // boots THE BOOTS COMPANY PLC\n\"bosch\", // bosch Robert Bosch GMBH\n\"bostik\", // bostik Bostik SA\n\"boston\", // boston Boston TLD Management, LLC\n\"bot\", // bot Amazon Registry Services, Inc.\n\"boutique\", // boutique Over Galley, LLC\n\"box\", // box NS1 Limited\n\"bradesco\", // bradesco Banco Bradesco S.A.\n\"bridgestone\", // bridgestone Bridgestone Corporation\n\"broadway\", // broadway Celebrate Broadway, Inc.\n\"broker\", // broker DOTBROKER REGISTRY LTD\n\"brother\", // brother Brother Industries, Ltd.\n\"brussels\", // brussels DNS.be vzw\n\"budapest\", // budapest Top Level Domain Holdings Limited\n\"bugatti\", // bugatti Bugatti International SA\n\"build\", // build Plan Bee LLC\n\"builders\", // builders Atomic Madison, LLC\n\"business\", // business Spring Cross, LLC\n\"buy\", // buy Amazon Registry Services, INC\n\"buzz\", // buzz DOTSTRATEGY CO.\n\"bzh\", // bzh Association www.bzh\n\"cab\", // cab Half Sunset, LLC\n\"cafe\", // cafe Pioneer Canyon, LLC\n\"cal\", // cal Charleston Road Registry Inc.\n\"call\", // call Amazon Registry Services, Inc.\n\"calvinklein\", // calvinklein PVH gTLD Holdings LLC\n\"cam\", // cam AC Webconnecting Holding B.V.\n\"camera\", // camera Atomic Maple, LLC\n\"camp\", // camp Delta Dynamite, LLC\n\"cancerresearch\", // cancerresearch Australian Cancer Research Foundation\n\"canon\", // canon Canon Inc.\n\"capetown\", // capetown ZA Central Registry NPC trading as ZA Central Registry\n\"capital\", // capital Delta Mill, LLC\n\"capitalone\", // capitalone Capital One Financial Corporation\n\"car\", // car Cars Registry Limited\n\"caravan\", // caravan Caravan International, Inc.\n\"cards\", // cards Foggy Hollow, LLC\n\"care\", // care Goose Cross, LLC\n\"career\", // career dotCareer LLC\n\"careers\", // careers Wild Corner, LLC\n\"cars\", // cars Uniregistry, Corp.\n// \"cartier\", // cartier Richemont DNS Inc.\n\"casa\", // casa Top Level Domain Holdings Limited\n\"case\", // case CNH Industrial N.V.\n\"caseih\", // caseih CNH Industrial N.V.\n\"cash\", // cash Delta Lake, LLC\n\"casino\", // casino Binky Sky, LLC\n\"cat\", // cat Fundacio puntCAT\n\"catering\", // catering New Falls. LLC\n\"catholic\", // catholic Pontificium Consilium de Comunicationibus Socialibus (PCCS) (Pontifical Council for Social Communication)\n\"cba\", // cba COMMONWEALTH BANK OF AUSTRALIA\n\"cbn\", // cbn The Christian Broadcasting Network, Inc.\n\"cbre\", // cbre CBRE, Inc.\n\"cbs\", // cbs CBS Domains Inc.\n\"ceb\", // ceb The Corporate Executive Board Company\n\"center\", // center Tin Mill, LLC\n\"ceo\", // ceo CEOTLD Pty Ltd\n\"cern\", // cern European Organization for Nuclear Research ("CERN")\n\"cfa\", // cfa CFA Institute\n\"cfd\", // cfd DOTCFD REGISTRY LTD\n\"chanel\", // chanel Chanel International B.V.\n\"channel\", // channel Charleston Road Registry Inc.\n\"charity\", // charity Corn Lake, LLC\n\"chase\", // chase JPMorgan Chase & Co.\n\"chat\", // chat Sand Fields, LLC\n\"cheap\", // cheap Sand Cover, LLC\n\"chintai\", // chintai CHINTAI Corporation\n// \"chloe\", // chloe Richemont DNS Inc. (Not assigned)\n\"christmas\", // christmas Uniregistry, Corp.\n\"chrome\", // chrome Charleston Road Registry Inc.\n// \"chrysler\", // chrysler FCA US LLC.\n\"church\", // church Holly Fileds, LLC\n\"cipriani\", // cipriani Hotel Cipriani Srl\n\"circle\", // circle Amazon Registry Services, Inc.\n\"cisco\", // cisco Cisco Technology, Inc.\n\"citadel\", // citadel Citadel Domain LLC\n\"citi\", // citi Citigroup Inc.\n\"citic\", // citic CITIC Group Corporation\n\"city\", // city Snow Sky, LLC\n\"cityeats\", // cityeats Lifestyle Domain Holdings, Inc.\n\"claims\", // claims Black Corner, LLC\n\"cleaning\", // cleaning Fox Shadow, LLC\n\"click\", // click Uniregistry, Corp.\n\"clinic\", // clinic Goose Park, LLC\n\"clinique\", // clinique The Estée Lauder Companies Inc.\n\"clothing\", // clothing Steel Lake, LLC\n\"cloud\", // cloud ARUBA S.p.A.\n\"club\", // club .CLUB DOMAINS, LLC\n\"clubmed\", // clubmed Club Méditerranée S.A.\n\"coach\", // coach Koko Island, LLC\n\"codes\", // codes Puff Willow, LLC\n\"coffee\", // coffee Trixy Cover, LLC\n\"college\", // college XYZ.COM LLC\n\"cologne\", // cologne NetCologne Gesellschaft für Telekommunikation mbH\n\"com\", // com VeriSign Global Registry Services\n\"comcast\", // comcast Comcast IP Holdings I, LLC\n\"commbank\", // commbank COMMONWEALTH BANK OF AUSTRALIA\n\"community\", // community Fox Orchard, LLC\n\"company\", // company Silver Avenue, LLC\n\"compare\", // compare iSelect Ltd\n\"computer\", // computer Pine Mill, LLC\n\"comsec\", // comsec VeriSign, Inc.\n\"condos\", // condos Pine House, LLC\n\"construction\", // construction Fox Dynamite, LLC\n\"consulting\", // consulting United TLD Holdco, LTD.\n\"contact\", // contact Top Level Spectrum, Inc.\n\"contractors\", // contractors Magic Woods, LLC\n\"cooking\", // cooking Top Level Domain Holdings Limited\n\"cookingchannel\", // cookingchannel Lifestyle Domain Holdings, Inc.\n\"cool\", // cool Koko Lake, LLC\n\"coop\", // coop DotCooperation LLC\n\"corsica\", // corsica Collectivité Territoriale de Corse\n\"country\", // country Top Level Domain Holdings Limited\n\"coupon\", // coupon Amazon Registry Services, Inc.\n\"coupons\", // coupons Black Island, LLC\n\"courses\", // courses OPEN UNIVERSITIES AUSTRALIA PTY LTD\n\"cpa\", // cpa American Institute of Certified Public Accountants\n\"credit\", // credit Snow Shadow, LLC\n\"creditcard\", // creditcard Binky Frostbite, LLC\n\"creditunion\", // creditunion CUNA Performance Resources, LLC\n\"cricket\", // cricket dot Cricket Limited\n\"crown\", // crown Crown Equipment Corporation\n\"crs\", // crs Federated Co-operatives Limited\n\"cruise\", // cruise Viking River Cruises (Bermuda) Ltd.\n\"cruises\", // cruises Spring Way, LLC\n\"csc\", // csc Alliance-One Services, Inc.\n\"cuisinella\", // cuisinella SALM S.A.S.\n\"cymru\", // cymru Nominet UK\n\"cyou\", // cyou Beijing Gamease Age Digital Technology Co., Ltd.\n\"dabur\", // dabur Dabur India Limited\n\"dad\", // dad Charleston Road Registry Inc.\n\"dance\", // dance United TLD Holdco Ltd.\n\"data\", // data Dish DBS Corporation\n\"date\", // date dot Date Limited\n\"dating\", // dating Pine Fest, LLC\n\"datsun\", // datsun NISSAN MOTOR CO., LTD.\n\"day\", // day Charleston Road Registry Inc.\n\"dclk\", // dclk Charleston Road Registry Inc.\n\"dds\", // dds Minds + Machines Group Limited\n\"deal\", // deal Amazon Registry Services, Inc.\n\"dealer\", // dealer Dealer Dot Com, Inc.\n\"deals\", // deals Sand Sunset, LLC\n\"degree\", // degree United TLD Holdco, Ltd\n\"delivery\", // delivery Steel Station, LLC\n\"dell\", // dell Dell Inc.\n\"deloitte\", // deloitte Deloitte Touche Tohmatsu\n\"delta\", // delta Delta Air Lines, Inc.\n\"democrat\", // democrat United TLD Holdco Ltd.\n\"dental\", // dental Tin Birch, LLC\n\"dentist\", // dentist United TLD Holdco, Ltd\n\"desi\", // desi Desi Networks LLC\n\"design\", // design Top Level Design, LLC\n\"dev\", // dev Charleston Road Registry Inc.\n\"dhl\", // dhl Deutsche Post AG\n\"diamonds\", // diamonds John Edge, LLC\n\"diet\", // diet Uniregistry, Corp.\n\"digital\", // digital Dash Park, LLC\n\"direct\", // direct Half Trail, LLC\n\"directory\", // directory Extra Madison, LLC\n\"discount\", // discount Holly Hill, LLC\n\"discover\", // discover Discover Financial Services\n\"dish\", // dish Dish DBS Corporation\n\"diy\", // diy Lifestyle Domain Holdings, Inc.\n\"dnp\", // dnp Dai Nippon Printing Co., Ltd.\n\"docs\", // docs Charleston Road Registry Inc.\n\"doctor\", // doctor Brice Trail, LLC\n// \"dodge\", // dodge FCA US LLC.\n\"dog\", // dog Koko Mill, LLC\n// \"doha\", // doha Communications Regulatory Authority (CRA)\n\"domains\", // domains Sugar Cross, LLC\n// \"doosan\", // doosan Doosan Corporation (retired)\n\"dot\", // dot Dish DBS Corporation\n\"download\", // download dot Support Limited\n\"drive\", // drive Charleston Road Registry Inc.\n\"dtv\", // dtv Dish DBS Corporation\n\"dubai\", // dubai Dubai Smart Government Department\n\"duck\", // duck Johnson Shareholdings, Inc.\n\"dunlop\", // dunlop The Goodyear Tire & Rubber Company\n// \"duns\", // duns The Dun & Bradstreet Corporation\n\"dupont\", // dupont E. I. du Pont de Nemours and Company\n\"durban\", // durban ZA Central Registry NPC trading as ZA Central Registry\n\"dvag\", // dvag Deutsche Vermögensberatung Aktiengesellschaft DVAG\n\"dvr\", // dvr Hughes Satellite Systems Corporation\n\"earth\", // earth Interlink Co., Ltd.\n\"eat\", // eat Charleston Road Registry Inc.\n\"eco\", // eco Big Room Inc.\n\"edeka\", // edeka EDEKA Verband kaufmännischer Genossenschaften e.V.\n\"edu\", // edu EDUCAUSE\n\"education\", // education Brice Way, LLC\n\"email\", // email Spring Madison, LLC\n\"emerck\", // emerck Merck KGaA\n\"energy\", // energy Binky Birch, LLC\n\"engineer\", // engineer United TLD Holdco Ltd.\n\"engineering\", // engineering Romeo Canyon\n\"enterprises\", // enterprises Snow Oaks, LLC\n// \"epost\", // epost Deutsche Post AG\n\"epson\", // epson Seiko Epson Corporation\n\"equipment\", // equipment Corn Station, LLC\n\"ericsson\", // ericsson Telefonaktiebolaget L M Ericsson\n\"erni\", // erni ERNI Group Holding AG\n\"esq\", // esq Charleston Road Registry Inc.\n\"estate\", // estate Trixy Park, LLC\n// \"esurance\", // esurance Esurance Insurance Company (not assigned as at Version 2020062100)\n\"etisalat\", // etisalat Emirates Telecommunic\n\"eurovision\", // eurovision European Broadcasting Union (EBU)\n\"eus\", // eus Puntueus Fundazioa\n\"events\", // events Pioneer Maple, LLC\n// \"everbank\", // everbank EverBank\n\"exchange\", // exchange Spring Falls, LLC\n\"expert\", // expert Magic Pass, LLC\n\"exposed\", // exposed Victor Beach, LLC\n\"express\", // express Sea Sunset, LLC\n\"extraspace\", // extraspace Extra Space Storage LLC\n\"fage\", // fage Fage International S.A.\n\"fail\", // fail Atomic Pipe, LLC\n\"fairwinds\", // fairwinds FairWinds Partners, LLC\n\"faith\", // faith dot Faith Limited\n\"family\", // family United TLD Holdco Ltd.\n\"fan\", // fan Asiamix Digital Ltd\n\"fans\", // fans Asiamix Digital Limited\n\"farm\", // farm Just Maple, LLC\n\"farmers\", // farmers Farmers Insurance Exchange\n\"fashion\", // fashion Top Level Domain Holdings Limited\n\"fast\", // fast Amazon Registry Services, Inc.\n\"fedex\", // fedex Federal Express Corporation\n\"feedback\", // feedback Top Level Spectrum, Inc.\n\"ferrari\", // ferrari Fiat Chrysler Automobiles N.V.\n\"ferrero\", // ferrero Ferrero Trading Lux S.A.\n\"fiat\", // fiat Fiat Chrysler Automobiles N.V.\n\"fidelity\", // fidelity Fidelity Brokerage Services LLC\n\"fido\", // fido Rogers Communications Canada Inc.\n\"film\", // film Motion Picture Domain Registry Pty Ltd\n\"final\", // final Núcleo de Informação e Coordenação do Ponto BR - NIC.br\n\"finance\", // finance Cotton Cypress, LLC\n\"financial\", // financial Just Cover, LLC\n\"fire\", // fire Amazon Registry Services, Inc.\n\"firestone\", // firestone Bridgestone Corporation\n\"firmdale\", // firmdale Firmdale Holdings Limited\n\"fish\", // fish Fox Woods, LLC\n\"fishing\", // fishing Top Level Domain Holdings Limited\n\"fit\", // fit Minds + Machines Group Limited\n\"fitness\", // fitness Brice Orchard, LLC\n\"flickr\", // flickr Yahoo! Domain Services Inc.\n\"flights\", // flights Fox Station, LLC\n\"flir\", // flir FLIR Systems, Inc.\n\"florist\", // florist Half Cypress, LLC\n\"flowers\", // flowers Uniregistry, Corp.\n// \"flsmidth\", // flsmidth FLSmidth A/S retired 2016-07-22\n\"fly\", // fly Charleston Road Registry Inc.\n\"foo\", // foo Charleston Road Registry Inc.\n\"food\", // food Lifestyle Domain Holdings, Inc.\n\"foodnetwork\", // foodnetwork Lifestyle Domain Holdings, Inc.\n\"football\", // football Foggy Farms, LLC\n\"ford\", // ford Ford Motor Company\n\"forex\", // forex DOTFOREX REGISTRY LTD\n\"forsale\", // forsale United TLD Holdco, LLC\n\"forum\", // forum Fegistry, LLC\n\"foundation\", // foundation John Dale, LLC\n\"fox\", // fox FOX Registry, LLC\n\"free\", // free Amazon Registry Services, Inc.\n\"fresenius\", // fresenius Fresenius Immobilien-Verwaltungs-GmbH\n\"frl\", // frl FRLregistry B.V.\n\"frogans\", // frogans OP3FT\n\"frontdoor\", // frontdoor Lifestyle Domain Holdings, Inc.\n\"frontier\", // frontier Frontier Communications Corporation\n\"ftr\", // ftr Frontier Communications Corporation\n\"fujitsu\", // fujitsu Fujitsu Limited\n\"fujixerox\", // fujixerox Xerox DNHC LLC\n\"fun\", // fun DotSpace, Inc.\n\"fund\", // fund John Castle, LLC\n\"furniture\", // furniture Lone Fields, LLC\n\"futbol\", // futbol United TLD Holdco, Ltd.\n\"fyi\", // fyi Silver Tigers, LLC\n\"gal\", // gal Asociación puntoGAL\n\"gallery\", // gallery Sugar House, LLC\n\"gallo\", // gallo Gallo Vineyards, Inc.\n\"gallup\", // gallup Gallup, Inc.\n\"game\", // game Uniregistry, Corp.\n\"games\", // games United TLD Holdco Ltd.\n\"gap\", // gap The Gap, Inc.\n\"garden\", // garden Top Level Domain Holdings Limited\n\"gay\", // gay Top Level Design, LLC\n\"gbiz\", // gbiz Charleston Road Registry Inc.\n\"gdn\", // gdn Joint Stock Company \"Navigation-information systems\"\n\"gea\", // gea GEA Group Aktiengesellschaft\n\"gent\", // gent COMBELL GROUP NV/SA\n\"genting\", // genting Resorts World Inc. Pte. Ltd.\n\"george\", // george Wal-Mart Stores, Inc.\n\"ggee\", // ggee GMO Internet, Inc.\n\"gift\", // gift Uniregistry, Corp.\n\"gifts\", // gifts Goose Sky, LLC\n\"gives\", // gives United TLD Holdco Ltd.\n\"giving\", // giving Giving Limited\n\"glade\", // glade Johnson Shareholdings, Inc.\n\"glass\", // glass Black Cover, LLC\n\"gle\", // gle Charleston Road Registry Inc.\n\"global\", // global Dot Global Domain Registry Limited\n\"globo\", // globo Globo Comunicação e Participações S.A\n\"gmail\", // gmail Charleston Road Registry Inc.\n\"gmbh\", // gmbh Extra Dynamite, LLC\n\"gmo\", // gmo GMO Internet, Inc.\n\"gmx\", // gmx 1&1 Mail & Media GmbH\n\"godaddy\", // godaddy Go Daddy East, LLC\n\"gold\", // gold June Edge, LLC\n\"goldpoint\", // goldpoint YODOBASHI CAMERA CO.,LTD.\n\"golf\", // golf Lone Falls, LLC\n\"goo\", // goo NTT Resonant Inc.\n// \"goodhands\", // goodhands Allstate Fire and Casualty Insurance Company\n\"goodyear\", // goodyear The Goodyear Tire & Rubber Company\n\"goog\", // goog Charleston Road Registry Inc.\n\"google\", // google Charleston Road Registry Inc.\n\"gop\", // gop Republican State Leadership Committee, Inc.\n\"got\", // got Amazon Registry Services, Inc.\n\"gov\", // gov General Services Administration Attn: QTDC, 2E08 (.gov Domain Registration)\n\"grainger\", // grainger Grainger Registry Services, LLC\n\"graphics\", // graphics Over Madison, LLC\n\"gratis\", // gratis Pioneer Tigers, LLC\n\"green\", // green Afilias Limited\n\"gripe\", // gripe Corn Sunset, LLC\n\"grocery\", // grocery Wal-Mart Stores, Inc.\n\"group\", // group Romeo Town, LLC\n\"guardian\", // guardian The Guardian Life Insurance Company of America\n\"gucci\", // gucci Guccio Gucci S.p.a.\n\"guge\", // guge Charleston Road Registry Inc.\n\"guide\", // guide Snow Moon, LLC\n\"guitars\", // guitars Uniregistry, Corp.\n\"guru\", // guru Pioneer Cypress, LLC\n\"hair\", // hair L'Oreal\n\"hamburg\", // hamburg Hamburg Top-Level-Domain GmbH\n\"hangout\", // hangout Charleston Road Registry Inc.\n\"haus\", // haus United TLD Holdco, LTD.\n\"hbo\", // hbo HBO Registry Services, Inc.\n\"hdfc\", // hdfc HOUSING DEVELOPMENT FINANCE CORPORATION LIMITED\n\"hdfcbank\", // hdfcbank HDFC Bank Limited\n\"health\", // health DotHealth, LLC\n\"healthcare\", // healthcare Silver Glen, LLC\n\"help\", // help Uniregistry, Corp.\n\"helsinki\", // helsinki City of Helsinki\n\"here\", // here Charleston Road Registry Inc.\n\"hermes\", // hermes Hermes International\n\"hgtv\", // hgtv Lifestyle Domain Holdings, Inc.\n\"hiphop\", // hiphop Uniregistry, Corp.\n\"hisamitsu\", // hisamitsu Hisamitsu Pharmaceutical Co.,Inc.\n\"hitachi\", // hitachi Hitachi, Ltd.\n\"hiv\", // hiv dotHIV gemeinnuetziger e.V.\n\"hkt\", // hkt PCCW-HKT DataCom Services Limited\n\"hockey\", // hockey Half Willow, LLC\n\"holdings\", // holdings John Madison, LLC\n\"holiday\", // holiday Goose Woods, LLC\n\"homedepot\", // homedepot Homer TLC, Inc.\n\"homegoods\", // homegoods The TJX Companies, Inc.\n\"homes\", // homes DERHomes, LLC\n\"homesense\", // homesense The TJX Companies, Inc.\n\"honda\", // honda Honda Motor Co., Ltd.\n// \"honeywell\", // honeywell Honeywell GTLD LLC\n\"horse\", // horse Top Level Domain Holdings Limited\n\"hospital\", // hospital Ruby Pike, LLC\n\"host\", // host DotHost Inc.\n\"hosting\", // hosting Uniregistry, Corp.\n\"hot\", // hot Amazon Registry Services, Inc.\n\"hoteles\", // hoteles Travel Reservations SRL\n\"hotels\", // hotels Booking.com B.V.\n\"hotmail\", // hotmail Microsoft Corporation\n\"house\", // house Sugar Park, LLC\n\"how\", // how Charleston Road Registry Inc.\n\"hsbc\", // hsbc HSBC Holdings PLC\n// \"htc\", // htc HTC corporation (Not assigned)\n\"hughes\", // hughes Hughes Satellite Systems Corporation\n\"hyatt\", // hyatt Hyatt GTLD, L.L.C.\n\"hyundai\", // hyundai Hyundai Motor Company\n\"ibm\", // ibm International Business Machines Corporation\n\"icbc\", // icbc Industrial and Commercial Bank of China Limited\n\"ice\", // ice IntercontinentalExchange, Inc.\n\"icu\", // icu One.com A/S\n\"ieee\", // ieee IEEE Global LLC\n\"ifm\", // ifm ifm electronic gmbh\n// \"iinet\", // iinet Connect West Pty. Ltd. (Retired)\n\"ikano\", // ikano Ikano S.A.\n\"imamat\", // imamat Fondation Aga Khan (Aga Khan Foundation)\n\"imdb\", // imdb Amazon Registry Services, Inc.\n\"immo\", // immo Auburn Bloom, LLC\n\"immobilien\", // immobilien United TLD Holdco Ltd.\n\"inc\", // inc Intercap Holdings Inc.\n\"industries\", // industries Outer House, LLC\n\"infiniti\", // infiniti NISSAN MOTOR CO., LTD.\n\"info\", // info Afilias Limited\n\"ing\", // ing Charleston Road Registry Inc.\n\"ink\", // ink Top Level Design, LLC\n\"institute\", // institute Outer Maple, LLC\n\"insurance\", // insurance fTLD Registry Services LLC\n\"insure\", // insure Pioneer Willow, LLC\n\"int\", // int Internet Assigned Numbers Authority\n\"intel\", // intel Intel Corporation\n\"international\", // international Wild Way, LLC\n\"intuit\", // intuit Intuit Administrative Services, Inc.\n\"investments\", // investments Holly Glen, LLC\n\"ipiranga\", // ipiranga Ipiranga Produtos de Petroleo S.A.\n\"irish\", // irish Dot-Irish LLC\n// \"iselect\", // iselect iSelect Ltd\n\"ismaili\", // ismaili Fondation Aga Khan (Aga Khan Foundation)\n\"ist\", // ist Istanbul Metropolitan Municipality\n\"istanbul\", // istanbul Istanbul Metropolitan Municipality / Medya A.S.\n\"itau\", // itau Itau Unibanco Holding S.A.\n\"itv\", // itv ITV Services Limited\n\"iveco\", // iveco CNH Industrial N.V.\n// \"iwc\", // iwc Richemont DNS Inc.\n\"jaguar\", // jaguar Jaguar Land Rover Ltd\n\"java\", // java Oracle Corporation\n\"jcb\", // jcb JCB Co., Ltd.\n\"jcp\", // jcp JCP Media, Inc.\n\"jeep\", // jeep FCA US LLC.\n\"jetzt\", // jetzt New TLD Company AB\n\"jewelry\", // jewelry Wild Bloom, LLC\n\"jio\", // jio Affinity Names, Inc.\n// \"jlc\", // jlc Richemont DNS Inc.\n\"jll\", // jll Jones Lang LaSalle Incorporated\n\"jmp\", // jmp Matrix IP LLC\n\"jnj\", // jnj Johnson & Johnson Services, Inc.\n\"jobs\", // jobs Employ Media LLC\n\"joburg\", // joburg ZA Central Registry NPC trading as ZA Central Registry\n\"jot\", // jot Amazon Registry Services, Inc.\n\"joy\", // joy Amazon Registry Services, Inc.\n\"jpmorgan\", // jpmorgan JPMorgan Chase & Co.\n\"jprs\", // jprs Japan Registry Services Co., Ltd.\n\"juegos\", // juegos Uniregistry, Corp.\n\"juniper\", // juniper JUNIPER NETWORKS, INC.\n\"kaufen\", // kaufen United TLD Holdco Ltd.\n\"kddi\", // kddi KDDI CORPORATION\n\"kerryhotels\", // kerryhotels Kerry Trading Co. Limited\n\"kerrylogistics\", // kerrylogistics Kerry Trading Co. Limited\n\"kerryproperties\", // kerryproperties Kerry Trading Co. Limited\n\"kfh\", // kfh Kuwait Finance House\n\"kia\", // kia KIA MOTORS CORPORATION\n\"kim\", // kim Afilias Limited\n\"kinder\", // kinder Ferrero Trading Lux S.A.\n\"kindle\", // kindle Amazon Registry Services, Inc.\n\"kitchen\", // kitchen Just Goodbye, LLC\n\"kiwi\", // kiwi DOT KIWI LIMITED\n\"koeln\", // koeln NetCologne Gesellschaft für Telekommunikation mbH\n\"komatsu\", // komatsu Komatsu Ltd.\n\"kosher\", // kosher Kosher Marketing Assets LLC\n\"kpmg\", // kpmg KPMG International Cooperative (KPMG International Genossenschaft)\n\"kpn\", // kpn Koninklijke KPN N.V.\n\"krd\", // krd KRG Department of Information Technology\n\"kred\", // kred KredTLD Pty Ltd\n\"kuokgroup\", // kuokgroup Kerry Trading Co. Limited\n\"kyoto\", // kyoto Academic Institution: Kyoto Jyoho Gakuen\n\"lacaixa\", // lacaixa CAIXA D'ESTALVIS I PENSIONS DE BARCELONA\n// \"ladbrokes\", // ladbrokes LADBROKES INTERNATIONAL PLC\n\"lamborghini\", // lamborghini Automobili Lamborghini S.p.A.\n\"lamer\", // lamer The Estée Lauder Companies Inc.\n\"lancaster\", // lancaster LANCASTER\n\"lancia\", // lancia Fiat Chrysler Automobiles N.V.\n// \"lancome\", // lancome L'Oréal\n\"land\", // land Pine Moon, LLC\n\"landrover\", // landrover Jaguar Land Rover Ltd\n\"lanxess\", // lanxess LANXESS Corporation\n\"lasalle\", // lasalle Jones Lang LaSalle Incorporated\n\"lat\", // lat ECOM-LAC Federación de Latinoamérica y el Caribe para Internet y el Comercio Electrónico\n\"latino\", // latino Dish DBS Corporation\n\"latrobe\", // latrobe La Trobe University\n\"law\", // law Minds + Machines Group Limited\n\"lawyer\", // lawyer United TLD Holdco, Ltd\n\"lds\", // lds IRI Domain Management, LLC\n\"lease\", // lease Victor Trail, LLC\n\"leclerc\", // leclerc A.C.D. LEC Association des Centres Distributeurs Edouard Leclerc\n\"lefrak\", // lefrak LeFrak Organization, Inc.\n\"legal\", // legal Blue Falls, LLC\n\"lego\", // lego LEGO Juris A/S\n\"lexus\", // lexus TOYOTA MOTOR CORPORATION\n\"lgbt\", // lgbt Afilias Limited\n// \"liaison\", // liaison Liaison Technologies, Incorporated\n\"lidl\", // lidl Schwarz Domains und Services GmbH & Co. KG\n\"life\", // life Trixy Oaks, LLC\n\"lifeinsurance\", // lifeinsurance American Council of Life Insurers\n\"lifestyle\", // lifestyle Lifestyle Domain Holdings, Inc.\n\"lighting\", // lighting John McCook, LLC\n\"like\", // like Amazon Registry Services, Inc.\n\"lilly\", // lilly Eli Lilly and Company\n\"limited\", // limited Big Fest, LLC\n\"limo\", // limo Hidden Frostbite, LLC\n\"lincoln\", // lincoln Ford Motor Company\n\"linde\", // linde Linde Aktiengesellschaft\n\"link\", // link Uniregistry, Corp.\n\"lipsy\", // lipsy Lipsy Ltd\n\"live\", // live United TLD Holdco Ltd.\n\"living\", // living Lifestyle Domain Holdings, Inc.\n\"lixil\", // lixil LIXIL Group Corporation\n\"llc\", // llc Afilias plc\n\"llp\", // llp Dot Registry LLC\n\"loan\", // loan dot Loan Limited\n\"loans\", // loans June Woods, LLC\n\"locker\", // locker Dish DBS Corporation\n\"locus\", // locus Locus Analytics LLC\n\"loft\", // loft Annco, Inc.\n\"lol\", // lol Uniregistry, Corp.\n\"london\", // london Dot London Domains Limited\n\"lotte\", // lotte Lotte Holdings Co., Ltd.\n\"lotto\", // lotto Afilias Limited\n\"love\", // love Merchant Law Group LLP\n\"lpl\", // lpl LPL Holdings, Inc.\n\"lplfinancial\", // lplfinancial LPL Holdings, Inc.\n\"ltd\", // ltd Over Corner, LLC\n\"ltda\", // ltda InterNetX Corp.\n\"lundbeck\", // lundbeck H. Lundbeck A/S\n\"lupin\", // lupin LUPIN LIMITED\n\"luxe\", // luxe Top Level Domain Holdings Limited\n\"luxury\", // luxury Luxury Partners LLC\n\"macys\", // macys Macys, Inc.\n\"madrid\", // madrid Comunidad de Madrid\n\"maif\", // maif Mutuelle Assurance Instituteur France (MAIF)\n\"maison\", // maison Victor Frostbite, LLC\n\"makeup\", // makeup L'Oréal\n\"man\", // man MAN SE\n\"management\", // management John Goodbye, LLC\n\"mango\", // mango PUNTO FA S.L.\n\"map\", // map Charleston Road Registry Inc.\n\"market\", // market Unitied TLD Holdco, Ltd\n\"marketing\", // marketing Fern Pass, LLC\n\"markets\", // markets DOTMARKETS REGISTRY LTD\n\"marriott\", // marriott Marriott Worldwide Corporation\n\"marshalls\", // marshalls The TJX Companies, Inc.\n\"maserati\", // maserati Fiat Chrysler Automobiles N.V.\n\"mattel\", // mattel Mattel Sites, Inc.\n\"mba\", // mba Lone Hollow, LLC\n// \"mcd\", // mcd McDonald’s Corporation (Not assigned)\n// \"mcdonalds\", // mcdonalds McDonald’s Corporation (Not assigned)\n\"mckinsey\", // mckinsey McKinsey Holdings, Inc.\n\"med\", // med Medistry LLC\n\"media\", // media Grand Glen, LLC\n\"meet\", // meet Afilias Limited\n\"melbourne\", // melbourne The Crown in right of the State of Victoria, represented by its Department of State Development, Business and Innovation\n\"meme\", // meme Charleston Road Registry Inc.\n\"memorial\", // memorial Dog Beach, LLC\n\"men\", // men Exclusive Registry Limited\n\"menu\", // menu Wedding TLD2, LLC\n// \"meo\", // meo PT Comunicacoes S.A.\n\"merckmsd\", // merckmsd MSD Registry Holdings, Inc.\n\"metlife\", // metlife MetLife Services and Solutions, LLC\n\"miami\", // miami Top Level Domain Holdings Limited\n\"microsoft\", // microsoft Microsoft Corporation\n\"mil\", // mil DoD Network Information Center\n\"mini\", // mini Bayerische Motoren Werke Aktiengesellschaft\n\"mint\", // mint Intuit Administrative Services, Inc.\n\"mit\", // mit Massachusetts Institute of Technology\n\"mitsubishi\", // mitsubishi Mitsubishi Corporation\n\"mlb\", // mlb MLB Advanced Media DH, LLC\n\"mls\", // mls The Canadian Real Estate Association\n\"mma\", // mma MMA IARD\n\"mobi\", // mobi Afilias Technologies Limited dba dotMobi\n\"mobile\", // mobile Dish DBS Corporation\n// \"mobily\", // mobily GreenTech Consultancy Company W.L.L.\n\"moda\", // moda United TLD Holdco Ltd.\n\"moe\", // moe Interlink Co., Ltd.\n\"moi\", // moi Amazon Registry Services, Inc.\n\"mom\", // mom Uniregistry, Corp.\n\"monash\", // monash Monash University\n\"money\", // money Outer McCook, LLC\n\"monster\", // monster Monster Worldwide, Inc.\n// \"montblanc\", // montblanc Richemont DNS Inc. (Not assigned)\n// \"mopar\", // mopar FCA US LLC.\n\"mormon\", // mormon IRI Domain Management, LLC ("Applicant")\n\"mortgage\", // mortgage United TLD Holdco, Ltd\n\"moscow\", // moscow Foundation for Assistance for Internet Technologies and Infrastructure Development (FAITID)\n\"moto\", // moto Motorola Trademark Holdings, LLC\n\"motorcycles\", // motorcycles DERMotorcycles, LLC\n\"mov\", // mov Charleston Road Registry Inc.\n\"movie\", // movie New Frostbite, LLC\n// \"movistar\", // movistar Telefónica S.A.\n\"msd\", // msd MSD Registry Holdings, Inc.\n\"mtn\", // mtn MTN Dubai Limited\n// \"mtpc\", // mtpc Mitsubishi Tanabe Pharma Corporation (Retired)\n\"mtr\", // mtr MTR Corporation Limited\n\"museum\", // museum Museum Domain Management Association\n\"mutual\", // mutual Northwestern Mutual MU TLD Registry, LLC\n// \"mutuelle\", // mutuelle Fédération Nationale de la Mutualité Française (Retired)\n\"nab\", // nab National Australia Bank Limited\n// \"nadex\", // nadex Nadex Domains, Inc\n\"nagoya\", // nagoya GMO Registry, Inc.\n\"name\", // name VeriSign Information Services, Inc.\n\"nationwide\", // nationwide Nationwide Mutual Insurance Company\n\"natura\", // natura NATURA COSMÉTICOS S.A.\n\"navy\", // navy United TLD Holdco Ltd.\n\"nba\", // nba NBA REGISTRY, LLC\n\"nec\", // nec NEC Corporation\n\"net\", // net VeriSign Global Registry Services\n\"netbank\", // netbank COMMONWEALTH BANK OF AUSTRALIA\n\"netflix\", // netflix Netflix, Inc.\n\"network\", // network Trixy Manor, LLC\n\"neustar\", // neustar NeuStar, Inc.\n\"new\", // new Charleston Road Registry Inc.\n\"newholland\", // newholland CNH Industrial N.V.\n\"news\", // news United TLD Holdco Ltd.\n\"next\", // next Next plc\n\"nextdirect\", // nextdirect Next plc\n\"nexus\", // nexus Charleston Road Registry Inc.\n\"nfl\", // nfl NFL Reg Ops LLC\n\"ngo\", // ngo Public Interest Registry\n\"nhk\", // nhk Japan Broadcasting Corporation (NHK)\n\"nico\", // nico DWANGO Co., Ltd.\n\"nike\", // nike NIKE, Inc.\n\"nikon\", // nikon NIKON CORPORATION\n\"ninja\", // ninja United TLD Holdco Ltd.\n\"nissan\", // nissan NISSAN MOTOR CO., LTD.\n\"nissay\", // nissay Nippon Life Insurance Company\n\"nokia\", // nokia Nokia Corporation\n\"northwesternmutual\", // northwesternmutual Northwestern Mutual Registry, LLC\n\"norton\", // norton Symantec Corporation\n\"now\", // now Amazon Registry Services, Inc.\n\"nowruz\", // nowruz Asia Green IT System Bilgisayar San. ve Tic. Ltd. Sti.\n\"nowtv\", // nowtv Starbucks (HK) Limited\n\"nra\", // nra NRA Holdings Company, INC.\n\"nrw\", // nrw Minds + Machines GmbH\n\"ntt\", // ntt NIPPON TELEGRAPH AND TELEPHONE CORPORATION\n\"nyc\", // nyc The City of New York by and through the New York City Department of Information Technology & Telecommunications\n\"obi\", // obi OBI Group Holding SE & Co. KGaA\n\"observer\", // observer Top Level Spectrum, Inc.\n\"off\", // off Johnson Shareholdings, Inc.\n\"office\", // office Microsoft Corporation\n\"okinawa\", // okinawa BusinessRalliart inc.\n\"olayan\", // olayan Crescent Holding GmbH\n\"olayangroup\", // olayangroup Crescent Holding GmbH\n\"oldnavy\", // oldnavy The Gap, Inc.\n\"ollo\", // ollo Dish DBS Corporation\n\"omega\", // omega The Swatch Group Ltd\n\"one\", // one One.com A/S\n\"ong\", // ong Public Interest Registry\n\"onl\", // onl I-REGISTRY Ltd., Niederlassung Deutschland\n\"online\", // online DotOnline Inc.\n\"onyourside\", // onyourside Nationwide Mutual Insurance Company\n\"ooo\", // ooo INFIBEAM INCORPORATION LIMITED\n\"open\", // open American Express Travel Related Services Company, Inc.\n\"oracle\", // oracle Oracle Corporation\n\"orange\", // orange Orange Brand Services Limited\n\"org\", // org Public Interest Registry (PIR)\n\"organic\", // organic Afilias Limited\n// \"orientexpress\", // orientexpress Orient Express (retired 2017-04-11)\n\"origins\", // origins The Estée Lauder Companies Inc.\n\"osaka\", // osaka Interlink Co., Ltd.\n\"otsuka\", // otsuka Otsuka Holdings Co., Ltd.\n\"ott\", // ott Dish DBS Corporation\n\"ovh\", // ovh OVH SAS\n\"page\", // page Charleston Road Registry Inc.\n// \"pamperedchef\", // pamperedchef The Pampered Chef, Ltd. (Not assigned)\n\"panasonic\", // panasonic Panasonic Corporation\n// \"panerai\", // panerai Richemont DNS Inc.\n\"paris\", // paris City of Paris\n\"pars\", // pars Asia Green IT System Bilgisayar San. ve Tic. Ltd. Sti.\n\"partners\", // partners Magic Glen, LLC\n\"parts\", // parts Sea Goodbye, LLC\n\"party\", // party Blue Sky Registry Limited\n\"passagens\", // passagens Travel Reservations SRL\n\"pay\", // pay Amazon Registry Services, Inc.\n\"pccw\", // pccw PCCW Enterprises Limited\n\"pet\", // pet Afilias plc\n\"pfizer\", // pfizer Pfizer Inc.\n\"pharmacy\", // pharmacy National Association of Boards of Pharmacy\n\"phd\", // phd Charleston Road Registry Inc.\n\"philips\", // philips Koninklijke Philips N.V.\n\"phone\", // phone Dish DBS Corporation\n\"photo\", // photo Uniregistry, Corp.\n\"photography\", // photography Sugar Glen, LLC\n\"photos\", // photos Sea Corner, LLC\n\"physio\", // physio PhysBiz Pty Ltd\n// \"piaget\", // piaget Richemont DNS Inc.\n\"pics\", // pics Uniregistry, Corp.\n\"pictet\", // pictet Pictet Europe S.A.\n\"pictures\", // pictures Foggy Sky, LLC\n\"pid\", // pid Top Level Spectrum, Inc.\n\"pin\", // pin Amazon Registry Services, Inc.\n\"ping\", // ping Ping Registry Provider, Inc.\n\"pink\", // pink Afilias Limited\n\"pioneer\", // pioneer Pioneer Corporation\n\"pizza\", // pizza Foggy Moon, LLC\n\"place\", // place Snow Galley, LLC\n\"play\", // play Charleston Road Registry Inc.\n\"playstation\", // playstation Sony Computer Entertainment Inc.\n\"plumbing\", // plumbing Spring Tigers, LLC\n\"plus\", // plus Sugar Mill, LLC\n\"pnc\", // pnc PNC Domain Co., LLC\n\"pohl\", // pohl Deutsche Vermögensberatung Aktiengesellschaft DVAG\n\"poker\", // poker Afilias Domains No. 5 Limited\n\"politie\", // politie Politie Nederland\n\"porn\", // porn ICM Registry PN LLC\n\"post\", // post Universal Postal Union\n\"pramerica\", // pramerica Prudential Financial, Inc.\n\"praxi\", // praxi Praxi S.p.A.\n\"press\", // press DotPress Inc.\n\"prime\", // prime Amazon Registry Services, Inc.\n\"pro\", // pro Registry Services Corporation dba RegistryPro\n\"prod\", // prod Charleston Road Registry Inc.\n\"productions\", // productions Magic Birch, LLC\n\"prof\", // prof Charleston Road Registry Inc.\n\"progressive\", // progressive Progressive Casualty Insurance Company\n\"promo\", // promo Afilias plc\n\"properties\", // properties Big Pass, LLC\n\"property\", // property Uniregistry, Corp.\n\"protection\", // protection XYZ.COM LLC\n\"pru\", // pru Prudential Financial, Inc.\n\"prudential\", // prudential Prudential Financial, Inc.\n\"pub\", // pub United TLD Holdco Ltd.\n\"pwc\", // pwc PricewaterhouseCoopers LLP\n\"qpon\", // qpon dotCOOL, Inc.\n\"quebec\", // quebec PointQuébec Inc\n\"quest\", // quest Quest ION Limited\n\"qvc\", // qvc QVC, Inc.\n\"racing\", // racing Premier Registry Limited\n\"radio\", // radio European Broadcasting Union (EBU)\n\"raid\", // raid Johnson Shareholdings, Inc.\n\"read\", // read Amazon Registry Services, Inc.\n\"realestate\", // realestate dotRealEstate LLC\n\"realtor\", // realtor Real Estate Domains LLC\n\"realty\", // realty Fegistry, LLC\n\"recipes\", // recipes Grand Island, LLC\n\"red\", // red Afilias Limited\n\"redstone\", // redstone Redstone Haute Couture Co., Ltd.\n\"redumbrella\", // redumbrella Travelers TLD, LLC\n\"rehab\", // rehab United TLD Holdco Ltd.\n\"reise\", // reise Foggy Way, LLC\n\"reisen\", // reisen New Cypress, LLC\n\"reit\", // reit National Association of Real Estate Investment Trusts, Inc.\n\"reliance\", // reliance Reliance Industries Limited\n\"ren\", // ren Beijing Qianxiang Wangjing Technology Development Co., Ltd.\n\"rent\", // rent XYZ.COM LLC\n\"rentals\", // rentals Big Hollow,LLC\n\"repair\", // repair Lone Sunset, LLC\n\"report\", // report Binky Glen, LLC\n\"republican\", // republican United TLD Holdco Ltd.\n\"rest\", // rest Punto 2012 Sociedad Anonima Promotora de Inversion de Capital Variable\n\"restaurant\", // restaurant Snow Avenue, LLC\n\"review\", // review dot Review Limited\n\"reviews\", // reviews United TLD Holdco, Ltd.\n\"rexroth\", // rexroth Robert Bosch GMBH\n\"rich\", // rich I-REGISTRY Ltd., Niederlassung Deutschland\n\"richardli\", // richardli Pacific Century Asset Management (HK) Limited\n\"ricoh\", // ricoh Ricoh Company, Ltd.\n// \"rightathome\", // rightathome Johnson Shareholdings, Inc. (retired 2020-07-31)\n\"ril\", // ril Reliance Industries Limited\n\"rio\", // rio Empresa Municipal de Informática SA - IPLANRIO\n\"rip\", // rip United TLD Holdco Ltd.\n\"rmit\", // rmit Royal Melbourne Institute of Technology\n\"rocher\", // rocher Ferrero Trading Lux S.A.\n\"rocks\", // rocks United TLD Holdco, LTD.\n\"rodeo\", // rodeo Top Level Domain Holdings Limited\n\"rogers\", // rogers Rogers Communications Canada Inc.\n\"room\", // room Amazon Registry Services, Inc.\n\"rsvp\", // rsvp Charleston Road Registry Inc.\n\"rugby\", // rugby World Rugby Strategic Developments Limited\n\"ruhr\", // ruhr regiodot GmbH & Co. KG\n\"run\", // run Snow Park, LLC\n\"rwe\", // rwe RWE AG\n\"ryukyu\", // ryukyu BusinessRalliart inc.\n\"saarland\", // saarland dotSaarland GmbH\n\"safe\", // safe Amazon Registry Services, Inc.\n\"safety\", // safety Safety Registry Services, LLC.\n\"sakura\", // sakura SAKURA Internet Inc.\n\"sale\", // sale United TLD Holdco, Ltd\n\"salon\", // salon Outer Orchard, LLC\n\"samsclub\", // samsclub Wal-Mart Stores, Inc.\n\"samsung\", // samsung SAMSUNG SDS CO., LTD\n\"sandvik\", // sandvik Sandvik AB\n\"sandvikcoromant\", // sandvikcoromant Sandvik AB\n\"sanofi\", // sanofi Sanofi\n\"sap\", // sap SAP AG\n// \"sapo\", // sapo PT Comunicacoes S.A.\n\"sarl\", // sarl Delta Orchard, LLC\n\"sas\", // sas Research IP LLC\n\"save\", // save Amazon Registry Services, Inc.\n\"saxo\", // saxo Saxo Bank A/S\n\"sbi\", // sbi STATE BANK OF INDIA\n\"sbs\", // sbs SPECIAL BROADCASTING SERVICE CORPORATION\n\"sca\", // sca SVENSKA CELLULOSA AKTIEBOLAGET SCA (publ)\n\"scb\", // scb The Siam Commercial Bank Public Company Limited ("SCB")\n\"schaeffler\", // schaeffler Schaeffler Technologies AG & Co. KG\n\"schmidt\", // schmidt SALM S.A.S.\n\"scholarships\", // scholarships Scholarships.com, LLC\n\"school\", // school Little Galley, LLC\n\"schule\", // schule Outer Moon, LLC\n\"schwarz\", // schwarz Schwarz Domains und Services GmbH & Co. KG\n\"science\", // science dot Science Limited\n\"scjohnson\", // scjohnson Johnson Shareholdings, Inc.\n// \"scor\", // scor SCOR SE (not assigned as at Version 2020062100)\n\"scot\", // scot Dot Scot Registry Limited\n\"search\", // search Charleston Road Registry Inc.\n\"seat\", // seat SEAT, S.A. (Sociedad Unipersonal)\n\"secure\", // secure Amazon Registry Services, Inc.\n\"security\", // security XYZ.COM LLC\n\"seek\", // seek Seek Limited\n\"select\", // select iSelect Ltd\n\"sener\", // sener Sener IngenierÃa y Sistemas, S.A.\n\"services\", // services Fox Castle, LLC\n\"ses\", // ses SES\n\"seven\", // seven Seven West Media Ltd\n\"sew\", // sew SEW-EURODRIVE GmbH & Co KG\n\"sex\", // sex ICM Registry SX LLC\n\"sexy\", // sexy Uniregistry, Corp.\n\"sfr\", // sfr Societe Francaise du Radiotelephone - SFR\n\"shangrila\", // shangrila Shangriâ€La International Hotel Management Limited\n\"sharp\", // sharp Sharp Corporation\n\"shaw\", // shaw Shaw Cablesystems G.P.\n\"shell\", // shell Shell Information Technology International Inc\n\"shia\", // shia Asia Green IT System Bilgisayar San. ve Tic. Ltd. Sti.\n\"shiksha\", // shiksha Afilias Limited\n\"shoes\", // shoes Binky Galley, LLC\n\"shop\", // shop GMO Registry, Inc.\n\"shopping\", // shopping Over Keep, LLC\n\"shouji\", // shouji QIHOO 360 TECHNOLOGY CO. LTD.\n\"show\", // show Snow Beach, LLC\n\"showtime\", // showtime CBS Domains Inc.\n\"shriram\", // shriram Shriram Capital Ltd.\n\"silk\", // silk Amazon Registry Services, Inc.\n\"sina\", // sina Sina Corporation\n\"singles\", // singles Fern Madison, LLC\n\"site\", // site DotSite Inc.\n\"ski\", // ski STARTING DOT LIMITED\n\"skin\", // skin L'Oréal\n\"sky\", // sky Sky International AG\n\"skype\", // skype Microsoft Corporation\n\"sling\", // sling Hughes Satellite Systems Corporation\n\"smart\", // smart Smart Communications, Inc. (SMART)\n\"smile\", // smile Amazon Registry Services, Inc.\n\"sncf\", // sncf SNCF (Société Nationale des Chemins de fer Francais)\n\"soccer\", // soccer Foggy Shadow, LLC\n\"social\", // social United TLD Holdco Ltd.\n\"softbank\", // softbank SoftBank Group Corp.\n\"software\", // software United TLD Holdco, Ltd\n\"sohu\", // sohu Sohu.com Limited\n\"solar\", // solar Ruby Town, LLC\n\"solutions\", // solutions Silver Cover, LLC\n\"song\", // song Amazon Registry Services, Inc.\n\"sony\", // sony Sony Corporation\n\"soy\", // soy Charleston Road Registry Inc.\n\"space\", // space DotSpace Inc.\n// \"spiegel\", // spiegel SPIEGEL-Verlag Rudolf Augstein GmbH & Co. KG\n\"sport\", // sport Global Association of International Sports Federations (GAISF)\n\"spot\", // spot Amazon Registry Services, Inc.\n\"spreadbetting\", // spreadbetting DOTSPREADBETTING REGISTRY LTD\n\"srl\", // srl InterNetX Corp.\n// \"srt\", // srt FCA US LLC.\n\"stada\", // stada STADA Arzneimittel AG\n\"staples\", // staples Staples, Inc.\n\"star\", // star Star India Private Limited\n// \"starhub\", // starhub StarHub Limited\n\"statebank\", // statebank STATE BANK OF INDIA\n\"statefarm\", // statefarm State Farm Mutual Automobile Insurance Company\n// \"statoil\", // statoil Statoil ASA\n\"stc\", // stc Saudi Telecom Company\n\"stcgroup\", // stcgroup Saudi Telecom Company\n\"stockholm\", // stockholm Stockholms kommun\n\"storage\", // storage Self Storage Company LLC\n\"store\", // store DotStore Inc.\n\"stream\", // stream dot Stream Limited\n\"studio\", // studio United TLD Holdco Ltd.\n\"study\", // study OPEN UNIVERSITIES AUSTRALIA PTY LTD\n\"style\", // style Binky Moon, LLC\n\"sucks\", // sucks Vox Populi Registry Ltd.\n\"supplies\", // supplies Atomic Fields, LLC\n\"supply\", // supply Half Falls, LLC\n\"support\", // support Grand Orchard, LLC\n\"surf\", // surf Top Level Domain Holdings Limited\n\"surgery\", // surgery Tin Avenue, LLC\n\"suzuki\", // suzuki SUZUKI MOTOR CORPORATION\n\"swatch\", // swatch The Swatch Group Ltd\n\"swiftcover\", // swiftcover Swiftcover Insurance Services Limited\n\"swiss\", // swiss Swiss Confederation\n\"sydney\", // sydney State of New South Wales, Department of Premier and Cabinet\n// \"symantec\", // symantec Symantec Corporation [Not assigned as of Jul 25]\n\"systems\", // systems Dash Cypress, LLC\n\"tab\", // tab Tabcorp Holdings Limited\n\"taipei\", // taipei Taipei City Government\n\"talk\", // talk Amazon Registry Services, Inc.\n\"taobao\", // taobao Alibaba Group Holding Limited\n\"target\", // target Target Domain Holdings, LLC\n\"tatamotors\", // tatamotors Tata Motors Ltd\n\"tatar\", // tatar LLC \"Coordination Center of Regional Domain of Tatarstan Republic\"\n\"tattoo\", // tattoo Uniregistry, Corp.\n\"tax\", // tax Storm Orchard, LLC\n\"taxi\", // taxi Pine Falls, LLC\n\"tci\", // tci Asia Green IT System Bilgisayar San. ve Tic. Ltd. Sti.\n\"tdk\", // tdk TDK Corporation\n\"team\", // team Atomic Lake, LLC\n\"tech\", // tech Dot Tech LLC\n\"technology\", // technology Auburn Falls, LLC\n\"tel\", // tel Telnic Ltd.\n// \"telecity\", // telecity TelecityGroup International Limited\n// \"telefonica\", // telefonica Telefónica S.A.\n\"temasek\", // temasek Temasek Holdings (Private) Limited\n\"tennis\", // tennis Cotton Bloom, LLC\n\"teva\", // teva Teva Pharmaceutical Industries Limited\n\"thd\", // thd Homer TLC, Inc.\n\"theater\", // theater Blue Tigers, LLC\n\"theatre\", // theatre XYZ.COM LLC\n\"tiaa\", // tiaa Teachers Insurance and Annuity Association of America\n\"tickets\", // tickets Accent Media Limited\n\"tienda\", // tienda Victor Manor, LLC\n\"tiffany\", // tiffany Tiffany and Company\n\"tips\", // tips Corn Willow, LLC\n\"tires\", // tires Dog Edge, LLC\n\"tirol\", // tirol punkt Tirol GmbH\n\"tjmaxx\", // tjmaxx The TJX Companies, Inc.\n\"tjx\", // tjx The TJX Companies, Inc.\n\"tkmaxx\", // tkmaxx The TJX Companies, Inc.\n\"tmall\", // tmall Alibaba Group Holding Limited\n\"today\", // today Pearl Woods, LLC\n\"tokyo\", // tokyo GMO Registry, Inc.\n\"tools\", // tools Pioneer North, LLC\n\"top\", // top Jiangsu Bangning Science & Technology Co.,Ltd.\n\"toray\", // toray Toray Industries, Inc.\n\"toshiba\", // toshiba TOSHIBA Corporation\n\"total\", // total Total SA\n\"tours\", // tours Sugar Station, LLC\n\"town\", // town Koko Moon, LLC\n\"toyota\", // toyota TOYOTA MOTOR CORPORATION\n\"toys\", // toys Pioneer Orchard, LLC\n\"trade\", // trade Elite Registry Limited\n\"trading\", // trading DOTTRADING REGISTRY LTD\n\"training\", // training Wild Willow, LLC\n\"travel\", // travel Tralliance Registry Management Company, LLC.\n\"travelchannel\", // travelchannel Lifestyle Domain Holdings, Inc.\n\"travelers\", // travelers Travelers TLD, LLC\n\"travelersinsurance\", // travelersinsurance Travelers TLD, LLC\n\"trust\", // trust Artemis Internet Inc\n\"trv\", // trv Travelers TLD, LLC\n\"tube\", // tube Latin American Telecom LLC\n\"tui\", // tui TUI AG\n\"tunes\", // tunes Amazon Registry Services, Inc.\n\"tushu\", // tushu Amazon Registry Services, Inc.\n\"tvs\", // tvs T V SUNDRAM IYENGAR & SONS PRIVATE LIMITED\n\"ubank\", // ubank National Australia Bank Limited\n\"ubs\", // ubs UBS AG\n// \"uconnect\", // uconnect FCA US LLC.\n\"unicom\", // unicom China United Network Communications Corporation Limited\n\"university\", // university Little Station, LLC\n\"uno\", // uno Dot Latin LLC\n\"uol\", // uol UBN INTERNET LTDA.\n\"ups\", // ups UPS Market Driver, Inc.\n\"vacations\", // vacations Atomic Tigers, LLC\n\"vana\", // vana Lifestyle Domain Holdings, Inc.\n\"vanguard\", // vanguard The Vanguard Group, Inc.\n\"vegas\", // vegas Dot Vegas, Inc.\n\"ventures\", // ventures Binky Lake, LLC\n\"verisign\", // verisign VeriSign, Inc.\n\"versicherung\", // versicherung dotversicherung-registry GmbH\n\"vet\", // vet United TLD Holdco, Ltd\n\"viajes\", // viajes Black Madison, LLC\n\"video\", // video United TLD Holdco, Ltd\n\"vig\", // vig VIENNA INSURANCE GROUP AG Wiener Versicherung Gruppe\n\"viking\", // viking Viking River Cruises (Bermuda) Ltd.\n\"villas\", // villas New Sky, LLC\n\"vin\", // vin Holly Shadow, LLC\n\"vip\", // vip Minds + Machines Group Limited\n\"virgin\", // virgin Virgin Enterprises Limited\n\"visa\", // visa Visa Worldwide Pte. Limited\n\"vision\", // vision Koko Station, LLC\n// \"vista\", // vista Vistaprint Limited\n// \"vistaprint\", // vistaprint Vistaprint Limited\n\"viva\", // viva Saudi Telecom Company\n\"vivo\", // vivo Telefonica Brasil S.A.\n\"vlaanderen\", // vlaanderen DNS.be vzw\n\"vodka\", // vodka Top Level Domain Holdings Limited\n\"volkswagen\", // volkswagen Volkswagen Group of America Inc.\n\"volvo\", // volvo Volvo Holding Sverige Aktiebolag\n\"vote\", // vote Monolith Registry LLC\n\"voting\", // voting Valuetainment Corp.\n\"voto\", // voto Monolith Registry LLC\n\"voyage\", // voyage Ruby House, LLC\n\"vuelos\", // vuelos Travel Reservations SRL\n\"wales\", // wales Nominet UK\n\"walmart\", // walmart Wal-Mart Stores, Inc.\n\"walter\", // walter Sandvik AB\n\"wang\", // wang Zodiac Registry Limited\n\"wanggou\", // wanggou Amazon Registry Services, Inc.\n// \"warman\", // warman Weir Group IP Limited\n\"watch\", // watch Sand Shadow, LLC\n\"watches\", // watches Richemont DNS Inc.\n\"weather\", // weather The Weather Channel, LLC\n\"weatherchannel\", // weatherchannel The Weather Channel, LLC\n\"webcam\", // webcam dot Webcam Limited\n\"weber\", // weber Saint-Gobain Weber SA\n\"website\", // website DotWebsite Inc.\n\"wed\", // wed Atgron, Inc.\n\"wedding\", // wedding Top Level Domain Holdings Limited\n\"weibo\", // weibo Sina Corporation\n\"weir\", // weir Weir Group IP Limited\n\"whoswho\", // whoswho Who's Who Registry\n\"wien\", // wien punkt.wien GmbH\n\"wiki\", // wiki Top Level Design, LLC\n\"williamhill\", // williamhill William Hill Organization Limited\n\"win\", // win First Registry Limited\n\"windows\", // windows Microsoft Corporation\n\"wine\", // wine June Station, LLC\n\"winners\", // winners The TJX Companies, Inc.\n\"wme\", // wme William Morris Endeavor Entertainment, LLC\n\"wolterskluwer\", // wolterskluwer Wolters Kluwer N.V.\n\"woodside\", // woodside Woodside Petroleum Limited\n\"work\", // work Top Level Domain Holdings Limited\n\"works\", // works Little Dynamite, LLC\n\"world\", // world Bitter Fields, LLC\n\"wow\", // wow Amazon Registry Services, Inc.\n\"wtc\", // wtc World Trade Centers Association, Inc.\n\"wtf\", // wtf Hidden Way, LLC\n\"xbox\", // xbox Microsoft Corporation\n\"xerox\", // xerox Xerox DNHC LLC\n\"xfinity\", // xfinity Comcast IP Holdings I, LLC\n\"xihuan\", // xihuan QIHOO 360 TECHNOLOGY CO. LTD.\n\"xin\", // xin Elegant Leader Limited\n\"xn--11b4c3d\", // कॉम VeriSign Sarl\n\"xn--1ck2e1b\", // セール Amazon Registry Services, Inc.\n\"xn--1qqw23a\", // 佛山 Guangzhou YU Wei Information Technology Co., Ltd.\n\"xn--30rr7y\", // 慈善 Excellent First Limited\n\"xn--3bst00m\", // 集团 Eagle Horizon Limited\n\"xn--3ds443g\", // 在线 TLD REGISTRY LIMITED\n\"xn--3oq18vl8pn36a\", // 大众汽车 Volkswagen (China) Investment Co., Ltd.\n\"xn--3pxu8k\", // 点看 VeriSign Sarl\n\"xn--42c2d9a\", // คà¸à¸¡ VeriSign Sarl\n\"xn--45q11c\", // å…«å¦ Zodiac Scorpio Limited\n\"xn--4gbrim\", // موقع Suhub Electronic Establishment\n\"xn--55qw42g\", // 公益 China Organizational Name Administration Center\n\"xn--55qx5d\", // å…¬å¸ Computer Network Information Center of Chinese Academy of Sciences (China Internet Network Information Center)\n\"xn--5su34j936bgsg\", // é¦™æ ¼é‡Œæ‹‰ Shangriâ€La International Hotel Management Limited\n\"xn--5tzm5g\", // 网站 Global Website TLD Asia Limited\n\"xn--6frz82g\", // 移动 Afilias Limited\n\"xn--6qq986b3xl\", // æˆ‘çˆ±ä½ Tycoon Treasure Limited\n\"xn--80adxhks\", // моÑква Foundation for Assistance for Internet Technologies and Infrastructure Development (FAITID)\n\"xn--80aqecdr1a\", // католик Pontificium Consilium de Comunicationibus Socialibus (PCCS) (Pontifical Council for Social Communication)\n\"xn--80asehdb\", // онлайн CORE Association\n\"xn--80aswg\", // Ñайт CORE Association\n\"xn--8y0a063a\", // è”通 China United Network Communications Corporation Limited\n\"xn--90ae\", // бг Imena.BG Plc (NAMES.BG Plc)\n\"xn--9dbq2a\", // ×§×•× VeriSign Sarl\n\"xn--9et52u\", // 时尚 RISE VICTORY LIMITED\n\"xn--9krt00a\", // å¾®åš Sina Corporation\n\"xn--b4w605ferd\", // 淡马锡 Temasek Holdings (Private) Limited\n\"xn--bck1b9a5dre4c\", // ファッション Amazon Registry Services, Inc.\n\"xn--c1avg\", // орг Public Interest Registry\n\"xn--c2br7g\", // नेट VeriSign Sarl\n\"xn--cck2b3b\", // ストア Amazon Registry Services, Inc.\n\"xn--cckwcxetd\", // アマゾン Amazon Registry Services, Inc.\n\"xn--cg4bki\", // 삼성 SAMSUNG SDS CO., LTD\n\"xn--czr694b\", // å•†æ ‡ HU YI GLOBAL INFORMATION RESOURCES(HOLDING) COMPANY.HONGKONG LIMITED\n\"xn--czrs0t\", // 商店 Wild Island, LLC\n\"xn--czru2d\", // 商城 Zodiac Aquarius Limited\n\"xn--d1acj3b\", // дети The Foundation for Network Initiatives “The Smart Internetâ€\n\"xn--eckvdtc9d\", // ãƒã‚¤ãƒ³ãƒˆ Amazon Registry Services, Inc.\n\"xn--efvy88h\", // æ–°é—» Xinhua News Agency Guangdong Branch æ–°åŽé€šè®¯ç¤¾å¹¿ä¸œåˆ†ç¤¾\n// \"xn--estv75g\", // 工行 Industrial and Commercial Bank of China Limited\n\"xn--fct429k\", // 家電 Amazon Registry Services, Inc.\n\"xn--fhbei\", // كوم VeriSign Sarl\n\"xn--fiq228c5hs\", // ä¸æ–‡ç½‘ TLD REGISTRY LIMITED\n\"xn--fiq64b\", // ä¸ä¿¡ CITIC Group Corporation\n\"xn--fjq720a\", // å¨±ä¹ Will Bloom, LLC\n\"xn--flw351e\", // è°·æŒ Charleston Road Registry Inc.\n\"xn--fzys8d69uvgm\", // 電訊盈科 PCCW Enterprises Limited\n\"xn--g2xx48c\", // è´ç‰© Minds + Machines Group Limited\n\"xn--gckr3f0f\", // クラウド Amazon Registry Services, Inc.\n\"xn--gk3at1e\", // 通販 Amazon Registry Services, Inc.\n\"xn--hxt814e\", // 网店 Zodiac Libra Limited\n\"xn--i1b6b1a6a2e\", // संगठन Public Interest Registry\n\"xn--imr513n\", // é¤åŽ… HU YI GLOBAL INFORMATION RESOURCES (HOLDING) COMPANY. HONGKONG LIMITED\n\"xn--io0a7i\", // 网络 Computer Network Information Center of Chinese Academy of Sciences (China Internet Network Information Center)\n\"xn--j1aef\", // ком VeriSign Sarl\n\"xn--jlq480n2rg\", // 亚马逊 Amazon Registry Services, Inc.\n\"xn--jlq61u9w7b\", // 诺基亚 Nokia Corporation\n\"xn--jvr189m\", // é£Ÿå“ Amazon Registry Services, Inc.\n\"xn--kcrx77d1x4a\", // 飞利浦 Koninklijke Philips N.V.\n// \"xn--kpu716f\", // 手表 Richemont DNS Inc. [Not assigned as of Jul 25]\n\"xn--kput3i\", // 手机 Beijing RITT-Net Technology Development Co., Ltd\n\"xn--mgba3a3ejt\", // ارامكو Aramco Services Company\n\"xn--mgba7c0bbn0a\", // العليان Crescent Holding GmbH\n\"xn--mgbaakc7dvf\", // اتصالات Emirates Telecommunications Corporation (trading as Etisalat)\n\"xn--mgbab2bd\", // بازار CORE Association\n// \"xn--mgbb9fbpob\", // موبايلي GreenTech Consultancy Company W.L.L.\n\"xn--mgbca7dzdo\", // ابوظبي Abu Dhabi Systems and Information Centre\n\"xn--mgbi4ecexp\", // كاثوليك Pontificium Consilium de Comunicationibus Socialibus (PCCS) (Pontifical Council for Social Communication)\n\"xn--mgbt3dhd\", // همراه Asia Green IT System Bilgisayar San. ve Tic. Ltd. Sti.\n\"xn--mk1bu44c\", // ë‹·ì»´ VeriSign Sarl\n\"xn--mxtq1m\", // 政府 Net-Chinese Co., Ltd.\n\"xn--ngbc5azd\", // شبكة International Domain Registry Pty. Ltd.\n\"xn--ngbe9e0a\", // بيتك Kuwait Finance House\n\"xn--ngbrx\", // عرب League of Arab States\n\"xn--nqv7f\", // 机构 Public Interest Registry\n\"xn--nqv7fs00ema\", // 组织机构 Public Interest Registry\n\"xn--nyqy26a\", // å¥åº· Stable Tone Limited\n\"xn--otu796d\", // æ‹›è˜ Dot Trademark TLD Holding Company Limited\n\"xn--p1acf\", // Ñ€ÑƒÑ Rusnames Limited\n// \"xn--pbt977c\", // ç å® Richemont DNS Inc. [Not assigned as of Jul 25]\n\"xn--pssy2u\", // 大拿 VeriSign Sarl\n\"xn--q9jyb4c\", // ã¿ã‚“㪠Charleston Road Registry Inc.\n\"xn--qcka1pmc\", // グーグル Charleston Road Registry Inc.\n\"xn--rhqv96g\", // 世界 Stable Tone Limited\n\"xn--rovu88b\", // æ›¸ç± Amazon EU S.à r.l.\n\"xn--ses554g\", // ç½‘å€ KNET Co., Ltd\n\"xn--t60b56a\", // ë‹·ë„· VeriSign Sarl\n\"xn--tckwe\", // コムVeriSign Sarl\n\"xn--tiq49xqyj\", // 天主教 Pontificium Consilium de Comunicationibus Socialibus (PCCS) (Pontifical Council for Social Communication)\n\"xn--unup4y\", // æ¸¸æˆ Spring Fields, LLC\n\"xn--vermgensberater-ctb\", // VERMöGENSBERATER Deutsche Vermögensberatung Aktiengesellschaft DVAG\n\"xn--vermgensberatung-pwb\", // VERMöGENSBERATUNG Deutsche Vermögensberatung Aktiengesellschaft DVAG\n\"xn--vhquv\", // ä¼ä¸š Dash McCook, LLC\n\"xn--vuq861b\", // ä¿¡æ¯ Beijing Tele-info Network Technology Co., Ltd.\n\"xn--w4r85el8fhu5dnra\", // 嘉里大酒店 Kerry Trading Co. Limited\n\"xn--w4rs40l\", // 嘉里 Kerry Trading Co. Limited\n\"xn--xhq521b\", // 广东 Guangzhou YU Wei Information Technology Co., Ltd.\n\"xn--zfr164b\", // 政务 China Organizational Name Administration Center\n// \"xperia\", // xperia Sony Mobile Communications AB\n\"xxx\", // xxx ICM Registry LLC\n\"xyz\", // xyz XYZ.COM LLC\n\"yachts\", // yachts DERYachts, LLC\n\"yahoo\", // yahoo Yahoo! Domain Services Inc.\n\"yamaxun\", // yamaxun Amazon Registry Services, Inc.\n\"yandex\", // yandex YANDEX, LLC\n\"yodobashi\", // yodobashi YODOBASHI CAMERA CO.,LTD.\n\"yoga\", // yoga Top Level Domain Holdings Limited\n\"yokohama\", // yokohama GMO Registry, Inc.\n\"you\", // you Amazon Registry Services, Inc.\n\"youtube\", // youtube Charleston Road Registry Inc.\n\"yun\", // yun QIHOO 360 TECHNOLOGY CO. LTD.\n\"zappos\", // zappos Amazon Registry Services, Inc.\n\"zara\", // zara Industria de Diseño Textil, S.A. (INDITEX, S.A.)\n\"zero\", // zero Amazon Registry Services, Inc.\n\"zip\", // zip Charleston Road Registry Inc.\n// \"zippo\", // zippo Zadco Company\n\"zone\", // zone Outer Falls, LLC\n\"zuerich\"]; // WARNING: this array MUST be sorted, otherwise it cannot be searched reliably using binary search\n\nvar countryCodeTlds = exports.countryCodeTlds = [// Taken from Version 2018031400, Last Updated Wed Mar 14 07:07:01 2018 UTC\n\"ac\", // Ascension Island\n\"ad\", // Andorra\n\"ae\", // United Arab Emirates\n\"af\", // Afghanistan\n\"ag\", // Antigua and Barbuda\n\"ai\", // Anguilla\n\"al\", // Albania\n\"am\", // Armenia\n// \"an\", // Netherlands Antilles (retired)\n\"ao\", // Angola\n\"aq\", // Antarctica\n\"ar\", // Argentina\n\"as\", // American Samoa\n\"at\", // Austria\n\"au\", // Australia (includes Ashmore and Cartier Islands and Coral Sea Islands)\n\"aw\", // Aruba\n\"ax\", // Ã…land\n\"az\", // Azerbaijan\n\"ba\", // Bosnia and Herzegovina\n\"bb\", // Barbados\n\"bd\", // Bangladesh\n\"be\", // Belgium\n\"bf\", // Burkina Faso\n\"bg\", // Bulgaria\n\"bh\", // Bahrain\n\"bi\", // Burundi\n\"bj\", // Benin\n\"bm\", // Bermuda\n\"bn\", // Brunei Darussalam\n\"bo\", // Bolivia\n\"br\", // Brazil\n\"bs\", // Bahamas\n\"bt\", // Bhutan\n\"bv\", // Bouvet Island\n\"bw\", // Botswana\n\"by\", // Belarus\n\"bz\", // Belize\n\"ca\", // Canada\n\"cc\", // Cocos (Keeling) Islands\n\"cd\", // Democratic Republic of the Congo (formerly Zaire)\n\"cf\", // Central African Republic\n\"cg\", // Republic of the Congo\n\"ch\", // Switzerland\n\"ci\", // Côte d'Ivoire\n\"ck\", // Cook Islands\n\"cl\", // Chile\n\"cm\", // Cameroon\n\"cn\", // China, mainland\n\"co\", // Colombia\n\"cr\", // Costa Rica\n\"cu\", // Cuba\n\"cv\", // Cape Verde\n\"cw\", // Curaçao\n\"cx\", // Christmas Island\n\"cy\", // Cyprus\n\"cz\", // Czech Republic\n\"de\", // Germany\n\"dj\", // Djibouti\n\"dk\", // Denmark\n\"dm\", // Dominica\n\"do\", // Dominican Republic\n\"dz\", // Algeria\n\"ec\", // Ecuador\n\"ee\", // Estonia\n\"eg\", // Egypt\n\"er\", // Eritrea\n\"es\", // Spain\n\"et\", // Ethiopia\n\"eu\", // European Union\n\"fi\", // Finland\n\"fj\", // Fiji\n\"fk\", // Falkland Islands\n\"fm\", // Federated States of Micronesia\n\"fo\", // Faroe Islands\n\"fr\", // France\n\"ga\", // Gabon\n\"gb\", // Great Britain (United Kingdom)\n\"gd\", // Grenada\n\"ge\", // Georgia\n\"gf\", // French Guiana\n\"gg\", // Guernsey\n\"gh\", // Ghana\n\"gi\", // Gibraltar\n\"gl\", // Greenland\n\"gm\", // The Gambia\n\"gn\", // Guinea\n\"gp\", // Guadeloupe\n\"gq\", // Equatorial Guinea\n\"gr\", // Greece\n\"gs\", // South Georgia and the South Sandwich Islands\n\"gt\", // Guatemala\n\"gu\", // Guam\n\"gw\", // Guinea-Bissau\n\"gy\", // Guyana\n\"hk\", // Hong Kong\n\"hm\", // Heard Island and McDonald Islands\n\"hn\", // Honduras\n\"hr\", // Croatia (Hrvatska)\n\"ht\", // Haiti\n\"hu\", // Hungary\n\"id\", // Indonesia\n\"ie\", // Ireland (Éire)\n\"il\", // Israel\n\"im\", // Isle of Man\n\"in\", // India\n\"io\", // British Indian Ocean Territory\n\"iq\", // Iraq\n\"ir\", // Iran\n\"is\", // Iceland\n\"it\", // Italy\n\"je\", // Jersey\n\"jm\", // Jamaica\n\"jo\", // Jordan\n\"jp\", // Japan\n\"ke\", // Kenya\n\"kg\", // Kyrgyzstan\n\"kh\", // Cambodia (Khmer)\n\"ki\", // Kiribati\n\"km\", // Comoros\n\"kn\", // Saint Kitts and Nevis\n\"kp\", // North Korea\n\"kr\", // South Korea\n\"kw\", // Kuwait\n\"ky\", // Cayman Islands\n\"kz\", // Kazakhstan\n\"la\", // Laos (currently being marketed as the official domain for Los Angeles)\n\"lb\", // Lebanon\n\"lc\", // Saint Lucia\n\"li\", // Liechtenstein\n\"lk\", // Sri Lanka\n\"lr\", // Liberia\n\"ls\", // Lesotho\n\"lt\", // Lithuania\n\"lu\", // Luxembourg\n\"lv\", // Latvia\n\"ly\", // Libya\n\"ma\", // Morocco\n\"mc\", // Monaco\n\"md\", // Moldova\n\"me\", // Montenegro\n\"mg\", // Madagascar\n\"mh\", // Marshall Islands\n\"mk\", // Republic of Macedonia\n\"ml\", // Mali\n\"mm\", // Myanmar\n\"mn\", // Mongolia\n\"mo\", // Macau\n\"mp\", // Northern Mariana Islands\n\"mq\", // Martinique\n\"mr\", // Mauritania\n\"ms\", // Montserrat\n\"mt\", // Malta\n\"mu\", // Mauritius\n\"mv\", // Maldives\n\"mw\", // Malawi\n\"mx\", // Mexico\n\"my\", // Malaysia\n\"mz\", // Mozambique\n\"na\", // Namibia\n\"nc\", // New Caledonia\n\"ne\", // Niger\n\"nf\", // Norfolk Island\n\"ng\", // Nigeria\n\"ni\", // Nicaragua\n\"nl\", // Netherlands\n\"no\", // Norway\n\"np\", // Nepal\n\"nr\", // Nauru\n\"nu\", // Niue\n\"nz\", // New Zealand\n\"om\", // Oman\n\"pa\", // Panama\n\"pe\", // Peru\n\"pf\", // French Polynesia With Clipperton Island\n\"pg\", // Papua New Guinea\n\"ph\", // Philippines\n\"pk\", // Pakistan\n\"pl\", // Poland\n\"pm\", // Saint-Pierre and Miquelon\n\"pn\", // Pitcairn Islands\n\"pr\", // Puerto Rico\n\"ps\", // Palestinian territories (PA-controlled West Bank and Gaza Strip)\n\"pt\", // Portugal\n\"pw\", // Palau\n\"py\", // Paraguay\n\"qa\", // Qatar\n\"re\", // Réunion\n\"ro\", // Romania\n\"rs\", // Serbia\n\"ru\", // Russia\n\"rw\", // Rwanda\n\"sa\", // Saudi Arabia\n\"sb\", // Solomon Islands\n\"sc\", // Seychelles\n\"sd\", // Sudan\n\"se\", // Sweden\n\"sg\", // Singapore\n\"sh\", // Saint Helena\n\"si\", // Slovenia\n\"sj\", // Svalbard and Jan Mayen Islands Not in use (Norwegian dependencies; see .no)\n\"sk\", // Slovakia\n\"sl\", // Sierra Leone\n\"sm\", // San Marino\n\"sn\", // Senegal\n\"so\", // Somalia\n\"sr\", // Suriname\n\"st\", // São Tomé and PrÃncipe\n\"su\", // Soviet Union (deprecated)\n\"sv\", // El Salvador\n\"sx\", // Sint Maarten\n\"sy\", // Syria\n\"sz\", // Swaziland\n\"tc\", // Turks and Caicos Islands\n\"td\", // Chad\n\"tf\", // French Southern and Antarctic Lands\n\"tg\", // Togo\n\"th\", // Thailand\n\"tj\", // Tajikistan\n\"tk\", // Tokelau\n\"tl\", // East Timor (deprecated old code)\n\"tm\", // Turkmenistan\n\"tn\", // Tunisia\n\"to\", // Tonga\n// \"tp\", // East Timor (Retired)\n\"tr\", // Turkey\n\"tt\", // Trinidad and Tobago\n\"tv\", // Tuvalu\n\"tw\", // Taiwan, Republic of China\n\"tz\", // Tanzania\n\"ua\", // Ukraine\n\"ug\", // Uganda\n\"uk\", // United Kingdom\n\"us\", // United States of America\n\"uy\", // Uruguay\n\"uz\", // Uzbekistan\n\"va\", // Vatican City State\n\"vc\", // Saint Vincent and the Grenadines\n\"ve\", // Venezuela\n\"vg\", // British Virgin Islands\n\"vi\", // U.S. Virgin Islands\n\"vn\", // Vietnam\n\"vu\", // Vanuatu\n\"wf\", // Wallis and Futuna\n\"ws\", // Samoa (formerly Western Samoa)\n\"xn--2scrj9c\", // à²à²¾à²°à²¤ National Internet eXchange of India\n\"xn--3e0b707e\", // í•œêµ KISA (Korea Internet & Security Agency)\n\"xn--3hcrj9c\", // à¬à¬¾à¬°à¬¤ National Internet eXchange of India\n\"xn--45br5cyl\", // à¦à¦¾à§°à¦¤ National Internet eXchange of India\n\"xn--45brj9c\", // à¦à¦¾à¦°à¦¤ National Internet Exchange of India\n\"xn--54b7fta0cc\", // বাংলা Posts and Telecommunications Division\n\"xn--80ao21a\", // қаз Association of IT Companies of Kazakhstan\n\"xn--90a3ac\", // Ñрб Serbian National Internet Domain Registry (RNIDS)\n\"xn--90ais\", // ??? Reliable Software Inc.\n\"xn--clchc0ea0b2g2a9gcd\", // சிஙà¯à®•à®ªà¯à®ªà¯‚ர௠Singapore Network Information Centre (SGNIC) Pte Ltd\n\"xn--d1alf\", // мкд Macedonian Academic Research Network Skopje\n\"xn--e1a4c\", // ею EURid vzw/asbl\n\"xn--fiqs8s\", // ä¸å›½ China Internet Network Information Center\n\"xn--fiqz9s\", // ä¸åœ‹ China Internet Network Information Center\n\"xn--fpcrj9c3d\", // à°à°¾à°°à°¤à± National Internet Exchange of India\n\"xn--fzc2c9e2c\", // ලංක෠LK Domain Registry\n\"xn--gecrj9c\", // àªàª¾àª°àª¤ National Internet Exchange of India\n\"xn--h2breg3eve\", // à¤à¤¾à¤°à¤¤à¤®à¥ National Internet eXchange of India\n\"xn--h2brj9c\", // à¤à¤¾à¤°à¤¤ National Internet Exchange of India\n\"xn--h2brj9c8c\", // à¤à¤¾à¤°à¥‹à¤¤ National Internet eXchange of India\n\"xn--j1amh\", // укр Ukrainian Network Information Centre (UANIC), Inc.\n\"xn--j6w193g\", // 香港 Hong Kong Internet Registration Corporation Ltd.\n\"xn--kprw13d\", // å°æ¹¾ Taiwan Network Information Center (TWNIC)\n\"xn--kpry57d\", // å°ç£ Taiwan Network Information Center (TWNIC)\n\"xn--l1acc\", // мон Datacom Co.,Ltd\n\"xn--lgbbat1ad8j\", // الجزائر CERIST\n\"xn--mgb9awbf\", // عمان Telecommunications Regulatory Authority (TRA)\n\"xn--mgba3a4f16a\", // ایران Institute for Research in Fundamental Sciences (IPM)\n\"xn--mgbaam7a8h\", // امارات Telecommunications Regulatory Authority (TRA)\n\"xn--mgbai9azgqp6j\", // پاکستان National Telecommunication Corporation\n\"xn--mgbayh7gpa\", // الاردن National Information Technology Center (NITC)\n\"xn--mgbbh1a\", // بارت National Internet eXchange of India\n\"xn--mgbbh1a71e\", // بھارت National Internet Exchange of India\n\"xn--mgbc0a9azcg\", // المغرب Agence Nationale de Réglementation des Télécommunications (ANRT)\n\"xn--mgberp4a5d4ar\", // السعودية Communications and Information Technology Commission\n\"xn--mgbgu82a\", // ڀارت National Internet eXchange of India\n\"xn--mgbpl2fh\", // ????? Sudan Internet Society\n\"xn--mgbtx2b\", // عراق Communications and Media Commission (CMC)\n\"xn--mgbx4cd0ab\", // مليسيا MYNIC Berhad\n\"xn--mix891f\", // 澳門 Bureau of Telecommunications Regulation (DSRT)\n\"xn--node\", // გე Information Technologies Development Center (ITDC)\n\"xn--o3cw4h\", // ไทย Thai Network Information Center Foundation\n\"xn--ogbpf8fl\", // سورية National Agency for Network Services (NANS)\n\"xn--p1ai\", // рф Coordination Center for TLD RU\n\"xn--pgbs0dh\", // تونس Agence Tunisienne d'Internet\n\"xn--qxam\", // ελ ICS-FORTH GR\n\"xn--rvc1e0am3e\", // à´à´¾à´°à´¤à´‚ National Internet eXchange of India\n\"xn--s9brj9c\", // à¨à¨¾à¨°à¨¤ National Internet Exchange of India\n\"xn--wgbh1c\", // مصر National Telecommunication Regulatory Authority - NTRA\n\"xn--wgbl6a\", // قطر Communications Regulatory Authority\n\"xn--xkc2al3hye2a\", // இலஙà¯à®•à¯ˆ LK Domain Registry\n\"xn--xkc2dl3a5ee0h\", // இநà¯à®¤à®¿à®¯à®¾ National Internet Exchange of India\n\"xn--y9a3aq\", // ??? Internet Society\n\"xn--yfro4i67o\", // æ–°åŠ å¡ Singapore Network Information Centre (SGNIC) Pte Ltd\n\"xn--ygbi2ammx\", // Ùلسطين Ministry of Telecom & Information Technology (MTIT)\n\"ye\", // Yemen\n\"yt\", // Mayotte\n\"za\", // South Africa\n\"zm\", // Zambia\n\"zw\" // Zimbabwe\n];","/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_SAFE_INTEGER = 9007199254740991,\n MAX_INTEGER = 1.7976931348623157e+308,\n NAN = 0 / 0;\n/** `Object#toString` result references. */\n\nvar argsTag = '[object Arguments]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n/** Used to match leading and trailing whitespace. */\n\nvar reTrim = /^\\s+|\\s+$/g;\n/** Used to detect bad signed hexadecimal string values. */\n\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n/** Used to detect binary string values. */\n\nvar reIsBinary = /^0b[01]+$/i;\n/** Used to detect octal string values. */\n\nvar reIsOctal = /^0o[0-7]+$/i;\n/** Used to detect unsigned integer values. */\n\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n/** Built-in method references without a dependency on `root`. */\n\nvar freeParseInt = parseInt;\n/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\n\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array ? array.length : 0,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n\n return result;\n}\n/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n\n\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while (fromRight ? index-- : ++index < length) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n\n return -1;\n}\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n\n\nfunction baseIndexOf(array, value, fromIndex) {\n if (value !== value) {\n return baseFindIndex(array, baseIsNaN, fromIndex);\n }\n\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n\n return -1;\n}\n/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\n\n\nfunction baseIsNaN(value) {\n return value !== value;\n}\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\n\n\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n\n return result;\n}\n/**\n * The base implementation of `_.values` and `_.valuesIn` which creates an\n * array of `object` property values corresponding to the property names\n * of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the array of property values.\n */\n\n\nfunction baseValues(object, props) {\n return arrayMap(props, function (key) {\n return object[key];\n });\n}\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\n\n\nfunction overArg(func, transform) {\n return function (arg) {\n return func(transform(arg));\n };\n}\n/** Used for built-in method references. */\n\n\nvar objectProto = Object.prototype;\n/** Used to check objects for own properties. */\n\nvar hasOwnProperty = objectProto.hasOwnProperty;\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\n\nvar objectToString = objectProto.toString;\n/** Built-in value references. */\n\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n/* Built-in method references for those with the same name as other `lodash` methods. */\n\nvar nativeKeys = overArg(Object.keys, Object),\n nativeMax = Math.max;\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\n\nfunction arrayLikeKeys(value, inherited) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n // Safari 9 makes `arguments.length` enumerable in strict mode.\n var result = isArray(value) || isArguments(value) ? baseTimes(value.length, String) : [];\n var length = result.length,\n skipIndexes = !!length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) && !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n result.push(key);\n }\n }\n\n return result;\n}\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\n\n\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n\n var result = [];\n\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n\n return result;\n}\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\n\n\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length && (typeof value == 'number' || reIsUint.test(value)) && value > -1 && value % 1 == 0 && value < length;\n}\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\n\n\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = typeof Ctor == 'function' && Ctor.prototype || objectProto;\n return value === proto;\n}\n/**\n * Checks if `value` is in `collection`. If `collection` is a string, it's\n * checked for a substring of `value`, otherwise\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * is used for equality comparisons. If `fromIndex` is negative, it's used as\n * the offset from the end of `collection`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {boolean} Returns `true` if `value` is found, else `false`.\n * @example\n *\n * _.includes([1, 2, 3], 1);\n * // => true\n *\n * _.includes([1, 2, 3], 1, 2);\n * // => false\n *\n * _.includes({ 'a': 1, 'b': 2 }, 1);\n * // => true\n *\n * _.includes('abcd', 'bc');\n * // => true\n */\n\n\nfunction includes(collection, value, fromIndex, guard) {\n collection = isArrayLike(collection) ? collection : values(collection);\n fromIndex = fromIndex && !guard ? toInteger(fromIndex) : 0;\n var length = collection.length;\n\n if (fromIndex < 0) {\n fromIndex = nativeMax(length + fromIndex, 0);\n }\n\n return isString(collection) ? fromIndex <= length && collection.indexOf(value, fromIndex) > -1 : !!length && baseIndexOf(collection, value, fromIndex) > -1;\n}\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\n\n\nfunction isArguments(value) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') && (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n}\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\n\n\nvar isArray = Array.isArray;\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\n\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\n\n\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\n\n\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\n\n\nfunction isLength(value) {\n return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\n\n\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\n\n\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\n\n\nfunction isString(value) {\n return typeof value == 'string' || !isArray(value) && isObjectLike(value) && objectToString.call(value) == stringTag;\n}\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\n\n\nfunction isSymbol(value) {\n return typeof value == 'symbol' || isObjectLike(value) && objectToString.call(value) == symbolTag;\n}\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\n\n\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n\n value = toNumber(value);\n\n if (value === INFINITY || value === -INFINITY) {\n var sign = value < 0 ? -1 : 1;\n return sign * MAX_INTEGER;\n }\n\n return value === value ? value : 0;\n}\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\n\n\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n return result === result ? remainder ? result - remainder : result : 0;\n}\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\n\n\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n\n if (isSymbol(value)) {\n return NAN;\n }\n\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? other + '' : other;\n }\n\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value;\n}\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\n\n\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n/**\n * Creates an array of the own enumerable string keyed property values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.values(new Foo);\n * // => [1, 2] (iteration order is not guaranteed)\n *\n * _.values('hi');\n * // => ['h', 'i']\n */\n\n\nfunction values(object) {\n return object ? baseValues(object, keys(object)) : [];\n}\n\nmodule.exports = includes;","/*! https://mths.be/punycode v1.4.1 by @mathias */\n;\n\n(function (root) {\n /** Detect free variables */\n var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n var freeModule = typeof module == 'object' && module && !module.nodeType && module;\n var freeGlobal = typeof global == 'object' && global;\n\n if (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal || freeGlobal.self === freeGlobal) {\n root = freeGlobal;\n }\n /**\n * The `punycode` object.\n * @name punycode\n * @type Object\n */\n\n\n var punycode,\n\n /** Highest positive signed 32-bit float value */\n maxInt = 2147483647,\n // aka. 0x7FFFFFFF or 2^31-1\n\n /** Bootstring parameters */\n base = 36,\n tMin = 1,\n tMax = 26,\n skew = 38,\n damp = 700,\n initialBias = 72,\n initialN = 128,\n // 0x80\n delimiter = '-',\n // '\\x2D'\n\n /** Regular expressions */\n regexPunycode = /^xn--/,\n regexNonASCII = /[^\\x20-\\x7E]/,\n // unprintable ASCII chars + non-ASCII chars\n regexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g,\n // RFC 3490 separators\n\n /** Error messages */\n errors = {\n 'overflow': 'Overflow: input needs wider integers to process',\n 'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n 'invalid-input': 'Invalid input'\n },\n\n /** Convenience shortcuts */\n baseMinusTMin = base - tMin,\n floor = Math.floor,\n stringFromCharCode = String.fromCharCode,\n\n /** Temporary variable */\n key;\n /*--------------------------------------------------------------------------*/\n\n /**\n * A generic error utility function.\n * @private\n * @param {String} type The error type.\n * @returns {Error} Throws a `RangeError` with the applicable error message.\n */\n\n function error(type) {\n throw new RangeError(errors[type]);\n }\n /**\n * A generic `Array#map` utility function.\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} callback The function that gets called for every array\n * item.\n * @returns {Array} A new array of values returned by the callback function.\n */\n\n\n function map(array, fn) {\n var length = array.length;\n var result = [];\n\n while (length--) {\n result[length] = fn(array[length]);\n }\n\n return result;\n }\n /**\n * A simple `Array#map`-like wrapper to work with domain name strings or email\n * addresses.\n * @private\n * @param {String} domain The domain name or email address.\n * @param {Function} callback The function that gets called for every\n * character.\n * @returns {Array} A new string of characters returned by the callback\n * function.\n */\n\n\n function mapDomain(string, fn) {\n var parts = string.split('@');\n var result = '';\n\n if (parts.length > 1) {\n // In email addresses, only the domain name should be punycoded. Leave\n // the local part (i.e. everything up to `@`) intact.\n result = parts[0] + '@';\n string = parts[1];\n } // Avoid `split(regex)` for IE8 compatibility. See #17.\n\n\n string = string.replace(regexSeparators, '\\x2E');\n var labels = string.split('.');\n var encoded = map(labels, fn).join('.');\n return result + encoded;\n }\n /**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n * @see `punycode.ucs2.encode`\n * @see <https://mathiasbynens.be/notes/javascript-encoding>\n * @memberOf punycode.ucs2\n * @name decode\n * @param {String} string The Unicode input string (UCS-2).\n * @returns {Array} The new array of code points.\n */\n\n\n function ucs2decode(string) {\n var output = [],\n counter = 0,\n length = string.length,\n value,\n extra;\n\n while (counter < length) {\n value = string.charCodeAt(counter++);\n\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n // high surrogate, and there is a next character\n extra = string.charCodeAt(counter++);\n\n if ((extra & 0xFC00) == 0xDC00) {\n // low surrogate\n output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n // unmatched surrogate; only append this code unit, in case the next\n // code unit is the high surrogate of a surrogate pair\n output.push(value);\n counter--;\n }\n } else {\n output.push(value);\n }\n }\n\n return output;\n }\n /**\n * Creates a string based on an array of numeric code points.\n * @see `punycode.ucs2.decode`\n * @memberOf punycode.ucs2\n * @name encode\n * @param {Array} codePoints The array of numeric code points.\n * @returns {String} The new Unicode string (UCS-2).\n */\n\n\n function ucs2encode(array) {\n return map(array, function (value) {\n var output = '';\n\n if (value > 0xFFFF) {\n value -= 0x10000;\n output += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n value = 0xDC00 | value & 0x3FF;\n }\n\n output += stringFromCharCode(value);\n return output;\n }).join('');\n }\n /**\n * Converts a basic code point into a digit/integer.\n * @see `digitToBasic()`\n * @private\n * @param {Number} codePoint The basic numeric code point value.\n * @returns {Number} The numeric value of a basic code point (for use in\n * representing integers) in the range `0` to `base - 1`, or `base` if\n * the code point does not represent a value.\n */\n\n\n function basicToDigit(codePoint) {\n if (codePoint - 48 < 10) {\n return codePoint - 22;\n }\n\n if (codePoint - 65 < 26) {\n return codePoint - 65;\n }\n\n if (codePoint - 97 < 26) {\n return codePoint - 97;\n }\n\n return base;\n }\n /**\n * Converts a digit/integer into a basic code point.\n * @see `basicToDigit()`\n * @private\n * @param {Number} digit The numeric value of a basic code point.\n * @returns {Number} The basic code point whose value (when used for\n * representing integers) is `digit`, which needs to be in the range\n * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n * used; else, the lowercase form is used. The behavior is undefined\n * if `flag` is non-zero and `digit` has no uppercase form.\n */\n\n\n function digitToBasic(digit, flag) {\n // 0..25 map to ASCII a..z or A..Z\n // 26..35 map to ASCII 0..9\n return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n }\n /**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n * @private\n */\n\n\n function adapt(delta, numPoints, firstTime) {\n var k = 0;\n delta = firstTime ? floor(delta / damp) : delta >> 1;\n delta += floor(delta / numPoints);\n\n for (; delta > baseMinusTMin * tMax >> 1; k += base) {\n delta = floor(delta / baseMinusTMin);\n }\n\n return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n }\n /**\n * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n * symbols.\n * @memberOf punycode\n * @param {String} input The Punycode string of ASCII-only symbols.\n * @returns {String} The resulting string of Unicode symbols.\n */\n\n\n function decode(input) {\n // Don't use UCS-2\n var output = [],\n inputLength = input.length,\n out,\n i = 0,\n n = initialN,\n bias = initialBias,\n basic,\n j,\n index,\n oldi,\n w,\n k,\n digit,\n t,\n\n /** Cached calculation results */\n baseMinusT; // Handle the basic code points: let `basic` be the number of input code\n // points before the last delimiter, or `0` if there is none, then copy\n // the first basic code points to the output.\n\n basic = input.lastIndexOf(delimiter);\n\n if (basic < 0) {\n basic = 0;\n }\n\n for (j = 0; j < basic; ++j) {\n // if it's not a basic code point\n if (input.charCodeAt(j) >= 0x80) {\n error('not-basic');\n }\n\n output.push(input.charCodeAt(j));\n } // Main decoding loop: start just after the last delimiter if any basic code\n // points were copied; start at the beginning otherwise.\n\n\n for (index = basic > 0 ? basic + 1 : 0; index < inputLength;) {\n // `index` is the index of the next character to be consumed.\n // Decode a generalized variable-length integer into `delta`,\n // which gets added to `i`. The overflow checking is easier\n // if we increase `i` as we go, then subtract off its starting\n // value at the end to obtain `delta`.\n for (oldi = i, w = 1, k = base;; k += base) {\n if (index >= inputLength) {\n error('invalid-input');\n }\n\n digit = basicToDigit(input.charCodeAt(index++));\n\n if (digit >= base || digit > floor((maxInt - i) / w)) {\n error('overflow');\n }\n\n i += digit * w;\n t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;\n\n if (digit < t) {\n break;\n }\n\n baseMinusT = base - t;\n\n if (w > floor(maxInt / baseMinusT)) {\n error('overflow');\n }\n\n w *= baseMinusT;\n }\n\n out = output.length + 1;\n bias = adapt(i - oldi, out, oldi == 0); // `i` was supposed to wrap around from `out` to `0`,\n // incrementing `n` each time, so we'll fix that now:\n\n if (floor(i / out) > maxInt - n) {\n error('overflow');\n }\n\n n += floor(i / out);\n i %= out; // Insert `n` at position `i` of the output\n\n output.splice(i++, 0, n);\n }\n\n return ucs2encode(output);\n }\n /**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n * @memberOf punycode\n * @param {String} input The string of Unicode symbols.\n * @returns {String} The resulting Punycode string of ASCII-only symbols.\n */\n\n\n function encode(input) {\n var n,\n delta,\n handledCPCount,\n basicLength,\n bias,\n j,\n m,\n q,\n k,\n t,\n currentValue,\n output = [],\n\n /** `inputLength` will hold the number of code points in `input`. */\n inputLength,\n\n /** Cached calculation results */\n handledCPCountPlusOne,\n baseMinusT,\n qMinusT; // Convert the input in UCS-2 to Unicode\n\n input = ucs2decode(input); // Cache the length\n\n inputLength = input.length; // Initialize the state\n\n n = initialN;\n delta = 0;\n bias = initialBias; // Handle the basic code points\n\n for (j = 0; j < inputLength; ++j) {\n currentValue = input[j];\n\n if (currentValue < 0x80) {\n output.push(stringFromCharCode(currentValue));\n }\n }\n\n handledCPCount = basicLength = output.length; // `handledCPCount` is the number of code points that have been handled;\n // `basicLength` is the number of basic code points.\n // Finish the basic string - if it is not empty - with a delimiter\n\n if (basicLength) {\n output.push(delimiter);\n } // Main encoding loop:\n\n\n while (handledCPCount < inputLength) {\n // All non-basic code points < n have been handled already. Find the next\n // larger one:\n for (m = maxInt, j = 0; j < inputLength; ++j) {\n currentValue = input[j];\n\n if (currentValue >= n && currentValue < m) {\n m = currentValue;\n }\n } // Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,\n // but guard against overflow\n\n\n handledCPCountPlusOne = handledCPCount + 1;\n\n if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n error('overflow');\n }\n\n delta += (m - n) * handledCPCountPlusOne;\n n = m;\n\n for (j = 0; j < inputLength; ++j) {\n currentValue = input[j];\n\n if (currentValue < n && ++delta > maxInt) {\n error('overflow');\n }\n\n if (currentValue == n) {\n // Represent delta as a generalized variable-length integer\n for (q = delta, k = base;; k += base) {\n t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;\n\n if (q < t) {\n break;\n }\n\n qMinusT = q - t;\n baseMinusT = base - t;\n output.push(stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0)));\n q = floor(qMinusT / baseMinusT);\n }\n\n output.push(stringFromCharCode(digitToBasic(q, 0)));\n bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n delta = 0;\n ++handledCPCount;\n }\n }\n\n ++delta;\n ++n;\n }\n\n return output.join('');\n }\n /**\n * Converts a Punycode string representing a domain name or an email address\n * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n * it doesn't matter if you call it on a string that has already been\n * converted to Unicode.\n * @memberOf punycode\n * @param {String} input The Punycoded domain name or email address to\n * convert to Unicode.\n * @returns {String} The Unicode representation of the given Punycode\n * string.\n */\n\n\n function toUnicode(input) {\n return mapDomain(input, function (string) {\n return regexPunycode.test(string) ? decode(string.slice(4).toLowerCase()) : string;\n });\n }\n /**\n * Converts a Unicode string representing a domain name or an email address to\n * Punycode. Only the non-ASCII parts of the domain name will be converted,\n * i.e. it doesn't matter if you call it with a domain that's already in\n * ASCII.\n * @memberOf punycode\n * @param {String} input The domain name or email address to convert, as a\n * Unicode string.\n * @returns {String} The Punycode representation of the given domain name or\n * email address.\n */\n\n\n function toASCII(input) {\n return mapDomain(input, function (string) {\n return regexNonASCII.test(string) ? 'xn--' + encode(string) : string;\n });\n }\n /*--------------------------------------------------------------------------*/\n\n /** Define the public API */\n\n\n punycode = {\n /**\n * A string representing the current Punycode.js version number.\n * @memberOf punycode\n * @type String\n */\n 'version': '1.4.1',\n\n /**\n * An object of methods to convert from JavaScript's internal character\n * representation (UCS-2) to Unicode code points, and back.\n * @see <https://mathiasbynens.be/notes/javascript-encoding>\n * @memberOf punycode\n * @type Object\n */\n 'ucs2': {\n 'decode': ucs2decode,\n 'encode': ucs2encode\n },\n 'decode': decode,\n 'encode': encode,\n 'toASCII': toASCII,\n 'toUnicode': toUnicode\n };\n /** Expose `punycode` */\n // Some AMD build optimizers, like r.js, check for specific condition patterns\n // like the following:\n\n if (typeof define == 'function' && typeof define.amd == 'object' && define.amd) {\n define('punycode', function () {\n return punycode;\n });\n } else if (freeExports && freeModule) {\n if (module.exports == freeExports) {\n // in Node.js, io.js, or RingoJS v0.8.0+\n freeModule.exports = punycode;\n } else {\n // in Narwhal or RingoJS v0.7.0-\n for (key in punycode) {\n punycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);\n }\n }\n } else {\n // in Rhino or a web browser\n root.punycode = punycode;\n }\n})(this);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.EmailValidator = undefined;\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _DomainValidator = require(\"./DomainValidator\");\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nvar EmailValidator = exports.EmailValidator = function () {\n /**\r\n * @param allowLocal Should local addresses be considered valid?\r\n * @param allowTld Should TLDs be allowed?\r\n */\n function EmailValidator() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$allowLocal = _ref.allowLocal,\n allowLocal = _ref$allowLocal === undefined ? false : _ref$allowLocal,\n _ref$allowTld = _ref.allowTld,\n allowTld = _ref$allowTld === undefined ? false : _ref$allowTld;\n\n _classCallCheck(this, EmailValidator); //const specialChars = \"\\\\p{Cntrl}\\\\(\\\\)<>@,;:'\\\\\\\\\\\\\\\"\\\\.\\\\[\\\\]\" // TODO: \\\\p{Cntrl}\n\n\n var specialChars = \"\\\\(\\\\)<>@,;:'\\\\\\\\\\\\\\\"\\\\.\\\\[\\\\]\";\n var validChars = \"(\\\\\\\\.)|[^\\\\s\" + specialChars + \"]\";\n var quotedUser = \"(\\\"(\\\\\\\\\\\"|[^\\\"])*\\\")\";\n var word = \"((\" + validChars + \"|')+|\" + quotedUser + \")\";\n var userRegex = \"^\\\\s*\" + word + \"(\\\\.\" + word + \")*$\";\n this._userPattern = new RegExp(userRegex);\n var emailRegex = \"^\\\\s*?(.+)@(.+?)\\\\s*$\";\n this._emailPattern = new RegExp(emailRegex);\n this._domainValidator = new _DomainValidator.DomainValidator({\n allowLocal: allowLocal\n });\n this._allowTld = allowTld;\n }\n\n _createClass(EmailValidator, [{\n key: \"_isValidDomain\",\n value: function _isValidDomain(domain) {\n if (this._allowTld) {\n return this._domainValidator.isValid(domain) || domain[0] !== \".\" && this._domainValidator.isValidTld(domain);\n } else {\n return this._domainValidator.isValid(domain);\n }\n }\n }, {\n key: \"_isValidUser\",\n value: function _isValidUser(user) {\n if (!user || user.length > 64) {\n return false;\n }\n\n return user.match(this._userPattern);\n }\n }, {\n key: \"isValid\",\n value: function isValid(email) {\n if (!email) {\n return false;\n }\n\n if (email[email.length - 1] === \".\") {\n return false;\n }\n\n var groups = email.match(this._emailPattern);\n\n if (!groups) {\n return false;\n }\n\n if (!this._isValidUser(groups[1])) {\n return false;\n }\n\n if (!this._isValidDomain(groups[2])) {\n return false;\n }\n\n return true;\n }\n }]);\n\n return EmailValidator;\n}();","import { invariant } from \"../../utilities/globals/index.js\";\nexport var DocumentType;\n\n(function (DocumentType) {\n DocumentType[DocumentType[\"Query\"] = 0] = \"Query\";\n DocumentType[DocumentType[\"Mutation\"] = 1] = \"Mutation\";\n DocumentType[DocumentType[\"Subscription\"] = 2] = \"Subscription\";\n})(DocumentType || (DocumentType = {}));\n\nvar cache = new Map();\nexport function operationName(type) {\n var name;\n\n switch (type) {\n case DocumentType.Query:\n name = 'Query';\n break;\n\n case DocumentType.Mutation:\n name = 'Mutation';\n break;\n\n case DocumentType.Subscription:\n name = 'Subscription';\n break;\n }\n\n return name;\n}\nexport function parser(document) {\n var cached = cache.get(document);\n if (cached) return cached;\n var variables, type, name;\n __DEV__ ? invariant(!!document && !!document.kind, \"Argument of \".concat(document, \" passed to parser was not a valid GraphQL \") + \"DocumentNode. You may need to use 'graphql-tag' or another method \" + \"to convert your operation into a document\") : invariant(!!document && !!document.kind, 32);\n var fragments = [];\n var queries = [];\n var mutations = [];\n var subscriptions = [];\n\n for (var _i = 0, _a = document.definitions; _i < _a.length; _i++) {\n var x = _a[_i];\n\n if (x.kind === 'FragmentDefinition') {\n fragments.push(x);\n continue;\n }\n\n if (x.kind === 'OperationDefinition') {\n switch (x.operation) {\n case 'query':\n queries.push(x);\n break;\n\n case 'mutation':\n mutations.push(x);\n break;\n\n case 'subscription':\n subscriptions.push(x);\n break;\n }\n }\n }\n\n __DEV__ ? invariant(!fragments.length || queries.length || mutations.length || subscriptions.length, \"Passing only a fragment to 'graphql' is not yet supported. \" + \"You must include a query, subscription or mutation as well\") : invariant(!fragments.length || queries.length || mutations.length || subscriptions.length, 33);\n __DEV__ ? invariant(queries.length + mutations.length + subscriptions.length <= 1, \"react-apollo only supports a query, subscription, or a mutation per HOC. \" + \"\".concat(document, \" had \").concat(queries.length, \" queries, \").concat(subscriptions.length, \" \") + \"subscriptions and \".concat(mutations.length, \" mutations. \") + \"You can use 'compose' to join multiple operation types to a component\") : invariant(queries.length + mutations.length + subscriptions.length <= 1, 34);\n type = queries.length ? DocumentType.Query : DocumentType.Mutation;\n if (!queries.length && !mutations.length) type = DocumentType.Subscription;\n var definitions = queries.length ? queries : mutations.length ? mutations : subscriptions;\n __DEV__ ? invariant(definitions.length === 1, \"react-apollo only supports one definition per HOC. \".concat(document, \" had \") + \"\".concat(definitions.length, \" definitions. \") + \"You can use 'compose' to join multiple operation types to a component\") : invariant(definitions.length === 1, 35);\n var definition = definitions[0];\n variables = definition.variableDefinitions || [];\n\n if (definition.name && definition.name.kind === 'Name') {\n name = definition.name.value;\n } else {\n name = 'data';\n }\n\n var payload = {\n name: name,\n type: type,\n variables: variables\n };\n cache.set(document, payload);\n return payload;\n}\nexport function verifyDocumentType(document, type) {\n var operation = parser(document);\n var requiredOperationName = operationName(type);\n var usedOperationName = operationName(operation.type);\n __DEV__ ? invariant(operation.type === type, \"Running a \".concat(requiredOperationName, \" requires a graphql \") + \"\".concat(requiredOperationName, \", but a \").concat(usedOperationName, \" was used instead.\")) : invariant(operation.type === type, 36);\n}","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar toPrimitive = require(\"./toPrimitive.js\");\nfunction _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}\nmodule.exports = _toPropertyKey, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _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 }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","import * as Sentry from '@sentry/browser'\nimport { Extras, SeverityLevel } from '@sentry/types'\n\nenum Product {\n Account = 'Account',\n Checkout = 'Checkout',\n HomePage = 'HomePage',\n PaidTraffic = 'PaidTraffic',\n OurProducts = 'OurProducts',\n PlansFlow = 'PlansFlow',\n Wizard = 'Wizard',\n Influencer = 'Influencer',\n Ambassador = 'Ambassador',\n PayOnOwnDevice = 'PayOnOwnDevice'\n}\n\nenum Team {\n Retention = 'retention',\n CoreEx = 'core-ex'\n}\n\ntype Options = {\n extra?: Extras | unknown\n tags?: {\n product?: Product\n team?: Team\n }\n}\n\ntype CaptureMessageOptions = { logLevel: SeverityLevel } & Options\n\n/**\n * Calls Sentry captureMessage event with configurable message, logging level and additional data\n *\n * @name captureMessage\n *\n * @function\n *\n * @param { string } message - Event that will be displayed as Sentry issue title\n * @param { Object } options - Options to pass to Sentry.captureEvent\n * @param { Object } options.extra - Additional object containing any error data\n * @param { string } options.logLevel - Log level in Sentry, if this is `error` and NODE_EVN === `development` this will change to `warning`\n * @param { Object } options.tags - Object containing custom tags to be added to the Sentry event\n *\n * @returns { void }\n */\nexport const captureMessage = (\n message: string,\n { extra, logLevel = 'warning', tags }: CaptureMessageOptions\n): void => {\n Sentry.withScope((scope) => {\n extra && scope.setExtras(extra as Extras)\n\n const level =\n process.env.NODE_ENV === 'development' && logLevel === 'error'\n ? 'warning'\n : logLevel\n\n scope.setLevel(level)\n\n if (tags) scope.setTags(tags)\n\n Sentry.captureMessage(message)\n })\n}\n\n/**\n * Calls Sentry captureException event with configurable message, logging level and additional data\n *\n * @name captureException\n *\n * @function\n *\n * @param { string } message - Event that will be displayed as Sentry issue title\n * @param { Object } options - Options to pass to Sentry.captureEvent\n * @param { Object } options.extra - Additional object containing any error data\n *\n * @returns { void }\n */\nexport const captureException = (message: string, options?: Options): void =>\n captureMessage(message, { ...options, logLevel: 'error' })\n\nexport { Product, Team }\n","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nmodule.exports = _classCallCheck, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nmodule.exports = _createClass, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","export default 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}","// @noflow\nimport Cookies from 'js-cookie'\nimport * as React from 'react'\n\ntype GravityType =\n | 'auto'\n | 'north_west'\n | 'north'\n | 'north_east'\n | 'west'\n | 'center'\n | 'east'\n | 'south_west'\n | 'south'\n | 'south_east'\n | 'custom'\n | 'xy_center'\n\ntype ResizeModeType =\n | 'resize_to_fill'\n | 'resize_to_fit'\n | 'resize_to_limit'\n | 'resize_and_pad'\n | 'crop'\n\ntype ImageParams = {\n width: number\n height: number\n resizeMode?: ResizeModeType\n quality?: string\n format?: string\n gravity?: GravityType\n aspectRatio?: string\n x?: number\n y?: number\n rotate?: number\n monochrome?: boolean\n backgroundColour?: string\n retina?: boolean\n}\n\ntype Props = {\n slug: string\n image: ImageParams\n alt: string\n className?: string\n lazyLoad?: boolean\n}\n\nconst urlBuilder = (imageParams: ImageParams, slug: string): string => {\n // eslint-disable-next-line i18next/no-literal-string\n let src = `/asset_management/assets/${slug}/${Cookies.get('user_language')}?`\n\n // multiply width and height by 2 for retina screens\n const width = imageParams.retina ? imageParams.width * 2 : imageParams.width\n const height = imageParams.retina\n ? imageParams.height * 2\n : imageParams.height\n\n if (imageParams.resizeMode === 'crop') {\n src += `&${imageParams.resizeMode}=${imageParams.x},${imageParams.y},${width},${height}`\n } else if (imageParams.resizeMode) {\n src += `&${imageParams.resizeMode}=${width},${height}`\n }\n\n Object.keys(imageParams).forEach((key: string) => {\n if (!['resizeMode', 'width', 'height', 'x', 'y', 'crop'].includes(key)) {\n const formattedKey = key === 'format' ? 'convert' : key\n // eslint-disable-next-line i18next/no-literal-string\n src += `&${formattedKey}=${imageParams[key as keyof ImageParams]}`\n }\n })\n\n return src\n}\n\n/**\n * An image element that uses the butternut asset management system and React package to dynamically\n * transform our uploaded images\n * The system allows us to set many transformations including height, width,\n * mode (scale, crop, etc), and quality (by default we set quality to auto).\n * All props other than slug are optional.\n *\n * Example usage\n * <Image\n * alt='An image of butternut box'\n * slug='top-logo'\n * image={{ width: 200, height: 200, resizeMode: 'resize_to_fit'}}\n * />\n */\n\nconst Image = ({\n slug,\n alt,\n image,\n className,\n lazyLoad = false\n}: Props): JSX.Element => {\n const src = urlBuilder(image, slug)\n\n const { width, height } = image\n\n return (\n <img\n alt={alt}\n className={`image ${lazyLoad ? 'lazy' : ''} ${className || ''}`}\n width={width}\n height={height}\n src={src}\n data-src={lazyLoad ? src : undefined}\n />\n )\n}\n\nexport type { GravityType, Props, ImageParams }\n\nexport default Image\n","// @noflow\nimport { ApolloError, useMutation } from '@apollo/client'\nimport React, { ChangeEvent, ReactElement, useCallback, useState } from 'react'\nimport { useTranslation } from 'react-i18next'\n\nimport withApollo from '@/components/apollo/withApollo'\nimport { StandardInputField } from '@/components/pages/CheckoutPage/components/InputField/InputField'\nimport * as inputHelpers from '@/components/pages/CheckoutPage/helpers/inputs'\nimport type { FormSection } from '@/components/pages/CheckoutPage/types'\nimport PlansRoutes from '@/components/pages/PlansPage/types/routes'\nimport WizardRoutes from '@/components/pages/SignupWizardPage/types/routes'\nimport { Button } from '@/components/shared/elements/Button/Button'\n\nimport { PRE_WIZARD_GUEST_ITERABLE_UPSERT_MUTATION } from './mutations/PreWizardGuestIterableUpsertMutation'\n\nimport type {\n PreWizardGuestIterableUpsertMutation,\n PreWizardGuestIterableUpsertMutationVariables\n} from './mutations/__generated__/PreWizardGuestIterableUpsertMutation'\n\nimport CopyInputButton from './CopyInputButton'\n\nconst namespace = 'shared'\nconst copyContext = 'blog_discount_modal'\n\ntype InputProps = {\n shouldShowLeadCaptureForm: boolean\n discountCode: string\n discountPercentage: string\n funnelCompleted: boolean\n}\n\nconst useStandardInputField = () => {\n const { t } = useTranslation(namespace)\n\n const [success, setSuccess] = useState(false)\n const [email, setEmail] = useState<FormSection>({\n errorMessage: null,\n value: '',\n inputInteractionState: 'NotInteractingNotInteracted'\n })\n\n const handleSubmitEmailError = useCallback(\n ({ graphQLErrors }: ApolloError) => {\n const error = graphQLErrors[0]\n const errorClass: string = (error.message || '').split('::').pop() || ''\n\n const errorMessages: { [key: string]: string } = {\n EmailAlreadySubscribedError: 'already_exists_error',\n EmailInvalidError: 'validaiton_error'\n }\n const errorKey = errorMessages[errorClass] || 'generic_error'\n\n setEmail({\n ...email,\n inputInteractionState: 'NotInteractingInteracted',\n errorMessage: t(`${copyContext}.email.${errorKey}`)\n })\n },\n [email, t]\n )\n\n const [submitEmailToIterable, { loading }] = useMutation<\n PreWizardGuestIterableUpsertMutation,\n PreWizardGuestIterableUpsertMutationVariables\n >(PRE_WIZARD_GUEST_ITERABLE_UPSERT_MUTATION, {\n onError: handleSubmitEmailError,\n onCompleted() {\n setSuccess(true)\n }\n })\n\n const handleOnSubmit = useCallback(\n () => submitEmailToIterable({ variables: { email: email.value } }),\n [email.value, submitEmailToIterable]\n )\n\n const validateEmail = useCallback((email: FormSection['value']): boolean => {\n // The `validate` function from `inputHelpers` returns\n // its own message error, but since we want to use a\n // custom one, we just check for `null` to provide\n // our own message.\n\n return !inputHelpers.validate(email, 'email')\n }, [])\n\n const handleOnChange = useCallback(\n ({ currentTarget: { value } }: ChangeEvent<HTMLInputElement>): void => {\n const inputInteractionState = inputHelpers.interactingState(\n email.inputInteractionState\n )\n const errorMessage = validateEmail(value)\n ? t(`${copyContext}.email.validation_error`)\n : null\n\n setEmail({ value, inputInteractionState, errorMessage })\n },\n [t, email, validateEmail]\n )\n\n return {\n email,\n loading,\n success,\n handleOnChange,\n handleOnSubmit\n }\n}\n\nconst DiscountModalForm = ({\n shouldShowLeadCaptureForm,\n discountCode,\n discountPercentage,\n funnelCompleted\n}: InputProps): ReactElement | null => {\n const { t } = useTranslation(namespace)\n\n const {\n email,\n loading,\n success: shouldHideForm,\n handleOnChange,\n handleOnSubmit\n } = useStandardInputField()\n\n const incompleteFunnelCtaKey = shouldShowLeadCaptureForm\n ? 'cta_variant'\n : 'cta'\n const ctaKey = funnelCompleted ? 'cta_plan' : incompleteFunnelCtaKey\n\n const inputLabelVariant = shouldHideForm\n ? 'title_variant_success'\n : 'title_variant'\n const inputLabel = shouldShowLeadCaptureForm ? inputLabelVariant : 'title'\n\n const handleOnClick = useCallback((): void => {\n if (shouldShowLeadCaptureForm) {\n handleOnSubmit()\n } else {\n window.location.href = funnelCompleted\n ? PlansRoutes.Plan\n : WizardRoutes.Name\n }\n }, [funnelCompleted, shouldShowLeadCaptureForm, handleOnSubmit])\n\n return (\n <>\n <p className=\"text-regular-16\">\n {t(`${copyContext}.${inputLabel}`, { discountPercentage })}\n </p>\n {!shouldHideForm ? (\n <>\n {shouldShowLeadCaptureForm ? (\n <StandardInputField\n fieldName=\"email\"\n dataTestId=\"blog-discount-email-input\"\n input={email}\n onBlur={handleOnChange}\n onChange={handleOnChange}\n />\n ) : (\n <CopyInputButton\n copyLinkMessage={discountCode}\n namespace=\"dashboard\"\n referralCode={discountCode}\n />\n )}\n <div className=\"discount-modal__cta-button-wrapper\">\n <Button\n onClick={handleOnClick}\n disabled={!email.errorMessage || loading}\n typography={{\n text: `${copyContext}.${ctaKey}`,\n namespace: namespace,\n variables: { discountPercentage }\n }}\n screenIdentifier=\"Blog\"\n identifier=\"Blog Exit Discount Modal\"\n />\n </div>\n </>\n ) : null}\n </>\n )\n}\n\nexport default withApollo(DiscountModalForm)\n","import { gql } from '@apollo/client'\n\nconst PRE_WIZARD_GUEST_ITERABLE_UPSERT_MUTATION = gql`\n mutation PreWizardGuestIterableUpsertMutation($email: String!) {\n preWizardGuestIterableUpsert(email: $email) {\n trackingId\n }\n }\n`\n\nexport { PRE_WIZARD_GUEST_ITERABLE_UPSERT_MUTATION }\n","// @noflow\nimport { referralLinkEvent } from '@/helpers/ReferralLinkShareHelper'\nimport type { PartialLocation } from '@/helpers/ReferralLinkShareHelper'\nimport React from 'react'\nimport { useTranslation } from 'react-i18next'\n\nimport BREAKPOINTS from '@/constants/Breakpoints'\n\nimport useWindowSize from '@/hooks/useWindowSize'\n\ntype Props = {\n namespace: string\n referralCode: string\n copyLinkMessage: string\n partialLocation?: PartialLocation\n onSuccess?: () => void\n}\n\nconst copyContext = 'refer_a_friend.give_and_get_tab.copy_input_button'\n\nconst CopyInputButton = ({\n namespace,\n referralCode,\n copyLinkMessage,\n partialLocation = 'Dashboard',\n onSuccess\n}: Props): JSX.Element => {\n const [copySuccess, setCopySuccess] = React.useState(false)\n const { windowWidth } = useWindowSize()\n const { t } = useTranslation(namespace)\n\n const copyReferralLink = React.useCallback(() => {\n const dummy = document.createElement('textarea')\n\n document.body.appendChild(dummy)\n // eslint-disable-next-line i18next/no-literal-string\n dummy.value = copyLinkMessage\n dummy.select()\n\n const success = document.execCommand('copy')\n document.body.removeChild(dummy)\n\n if (success) {\n setCopySuccess(true)\n if (onSuccess) {\n onSuccess()\n }\n setTimeout((): void => {\n setCopySuccess(false)\n }, 3000)\n }\n\n referralLinkEvent('Copy Link', partialLocation)\n }, [copyLinkMessage, onSuccess, partialLocation])\n\n const copyPromptKey = windowWidth < BREAKPOINTS.md ? 'mobile' : 'desktop'\n const copySuccessKey = 'success'\n\n return (\n <button\n className=\"copy-input__button\"\n onClick={copyReferralLink}\n type=\"button\"\n >\n <p className=\"text-regular-12\">\n {t(`${copyContext}_${copySuccess ? copySuccessKey : copyPromptKey}`)}\n </p>\n <input\n id=\"copyInputButton\"\n className=\"copy-input__input\"\n value={referralCode}\n readOnly\n name=\"referral-link\"\n />\n </button>\n )\n}\n\nexport { Props }\nexport default CopyInputButton\n","/**\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}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","import defineProperty from \"./defineProperty.js\";\nexport default function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? Object(arguments[i]) : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys.push.apply(ownKeys, Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","import _typeof from \"@babel/runtime/helpers/typeof\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","import _typeof from '@babel/runtime/helpers/esm/typeof';\nimport _objectSpread from '@babel/runtime/helpers/esm/objectSpread';\nimport _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _possibleConstructorReturn from '@babel/runtime/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '@babel/runtime/helpers/esm/getPrototypeOf';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _inherits from '@babel/runtime/helpers/esm/inherits';\nvar consoleLogger = {\n type: 'logger',\n log: function log(args) {\n this.output('log', args);\n },\n warn: function warn(args) {\n this.output('warn', args);\n },\n error: function error(args) {\n this.output('error', args);\n },\n output: function output(type, args) {\n if (console && console[type]) console[type].apply(console, args);\n }\n};\n\nvar Logger = function () {\n function Logger(concreteLogger) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Logger);\n\n this.init(concreteLogger, options);\n }\n\n _createClass(Logger, [{\n key: \"init\",\n value: function init(concreteLogger) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.prefix = options.prefix || 'i18next:';\n this.logger = concreteLogger || consoleLogger;\n this.options = options;\n this.debug = options.debug;\n }\n }, {\n key: \"setDebug\",\n value: function setDebug(bool) {\n this.debug = bool;\n }\n }, {\n key: \"log\",\n value: function log() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return this.forward(args, 'log', '', true);\n }\n }, {\n key: \"warn\",\n value: function warn() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return this.forward(args, 'warn', '', true);\n }\n }, {\n key: \"error\",\n value: function error() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n return this.forward(args, 'error', '');\n }\n }, {\n key: \"deprecate\",\n value: function deprecate() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n return this.forward(args, 'warn', 'WARNING DEPRECATED: ', true);\n }\n }, {\n key: \"forward\",\n value: function forward(args, lvl, prefix, debugOnly) {\n if (debugOnly && !this.debug) return null;\n if (typeof args[0] === 'string') args[0] = \"\".concat(prefix).concat(this.prefix, \" \").concat(args[0]);\n return this.logger[lvl](args);\n }\n }, {\n key: \"create\",\n value: function create(moduleName) {\n return new Logger(this.logger, _objectSpread({}, {\n prefix: \"\".concat(this.prefix, \":\").concat(moduleName, \":\")\n }, this.options));\n }\n }]);\n\n return Logger;\n}();\n\nvar baseLogger = new Logger();\n\nvar EventEmitter = function () {\n function EventEmitter() {\n _classCallCheck(this, EventEmitter);\n\n this.observers = {};\n }\n\n _createClass(EventEmitter, [{\n key: \"on\",\n value: function on(events, listener) {\n var _this = this;\n\n events.split(' ').forEach(function (event) {\n _this.observers[event] = _this.observers[event] || [];\n\n _this.observers[event].push(listener);\n });\n return this;\n }\n }, {\n key: \"off\",\n value: function off(event, listener) {\n if (!this.observers[event]) return;\n\n if (!listener) {\n delete this.observers[event];\n return;\n }\n\n this.observers[event] = this.observers[event].filter(function (l) {\n return l !== listener;\n });\n }\n }, {\n key: \"emit\",\n value: function emit(event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n if (this.observers[event]) {\n var cloned = [].concat(this.observers[event]);\n cloned.forEach(function (observer) {\n observer.apply(void 0, args);\n });\n }\n\n if (this.observers['*']) {\n var _cloned = [].concat(this.observers['*']);\n\n _cloned.forEach(function (observer) {\n observer.apply(observer, [event].concat(args));\n });\n }\n }\n }]);\n\n return EventEmitter;\n}();\n\nfunction defer() {\n var res;\n var rej;\n var promise = new Promise(function (resolve, reject) {\n res = resolve;\n rej = reject;\n });\n promise.resolve = res;\n promise.reject = rej;\n return promise;\n}\n\nfunction makeString(object) {\n if (object == null) return '';\n return '' + object;\n}\n\nfunction copy(a, s, t) {\n a.forEach(function (m) {\n if (s[m]) t[m] = s[m];\n });\n}\n\nfunction getLastOfPath(object, path, Empty) {\n function cleanKey(key) {\n return key && key.indexOf('###') > -1 ? key.replace(/###/g, '.') : key;\n }\n\n function canNotTraverseDeeper() {\n return !object || typeof object === 'string';\n }\n\n var stack = typeof path !== 'string' ? [].concat(path) : path.split('.');\n\n while (stack.length > 1) {\n if (canNotTraverseDeeper()) return {};\n var key = cleanKey(stack.shift());\n if (!object[key] && Empty) object[key] = new Empty();\n\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n object = object[key];\n } else {\n object = {};\n }\n }\n\n if (canNotTraverseDeeper()) return {};\n return {\n obj: object,\n k: cleanKey(stack.shift())\n };\n}\n\nfunction setPath(object, path, newValue) {\n var _getLastOfPath = getLastOfPath(object, path, Object),\n obj = _getLastOfPath.obj,\n k = _getLastOfPath.k;\n\n obj[k] = newValue;\n}\n\nfunction pushPath(object, path, newValue, concat) {\n var _getLastOfPath2 = getLastOfPath(object, path, Object),\n obj = _getLastOfPath2.obj,\n k = _getLastOfPath2.k;\n\n obj[k] = obj[k] || [];\n if (concat) obj[k] = obj[k].concat(newValue);\n if (!concat) obj[k].push(newValue);\n}\n\nfunction getPath(object, path) {\n var _getLastOfPath3 = getLastOfPath(object, path),\n obj = _getLastOfPath3.obj,\n k = _getLastOfPath3.k;\n\n if (!obj) return undefined;\n return obj[k];\n}\n\nfunction getPathWithDefaults(data, defaultData, key) {\n var value = getPath(data, key);\n\n if (value !== undefined) {\n return value;\n }\n\n return getPath(defaultData, key);\n}\n\nfunction deepExtend(target, source, overwrite) {\n for (var prop in source) {\n if (prop !== '__proto__' && prop !== 'constructor') {\n if (prop in target) {\n if (typeof target[prop] === 'string' || target[prop] instanceof String || typeof source[prop] === 'string' || source[prop] instanceof String) {\n if (overwrite) target[prop] = source[prop];\n } else {\n deepExtend(target[prop], source[prop], overwrite);\n }\n } else {\n target[prop] = source[prop];\n }\n }\n }\n\n return target;\n}\n\nfunction regexEscape(str) {\n return str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\n}\n\nvar _entityMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '/': '/'\n};\n\nfunction escape(data) {\n if (typeof data === 'string') {\n return data.replace(/[&<>\"'\\/]/g, function (s) {\n return _entityMap[s];\n });\n }\n\n return data;\n}\n\nvar isIE10 = typeof window !== 'undefined' && window.navigator && window.navigator.userAgent && window.navigator.userAgent.indexOf('MSIE') > -1;\n\nfunction deepFind(obj, path) {\n var keySeparator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '.';\n if (!obj) return undefined;\n if (obj[path]) return obj[path];\n var paths = path.split(keySeparator);\n var current = obj;\n\n for (var i = 0; i < paths.length; ++i) {\n if (!current) return undefined;\n\n if (typeof current[paths[i]] === 'string' && i + 1 < paths.length) {\n return undefined;\n }\n\n if (current[paths[i]] === undefined) {\n var j = 2;\n var p = paths.slice(i, i + j).join(keySeparator);\n var mix = current[p];\n\n while (mix === undefined && paths.length > i + j) {\n j++;\n p = paths.slice(i, i + j).join(keySeparator);\n mix = current[p];\n }\n\n if (mix === undefined) return undefined;\n if (typeof mix === 'string') return mix;\n if (p && typeof mix[p] === 'string') return mix[p];\n var joinedPath = paths.slice(i + j).join(keySeparator);\n if (joinedPath) return deepFind(mix, joinedPath, keySeparator);\n return undefined;\n }\n\n current = current[paths[i]];\n }\n\n return current;\n}\n\nvar ResourceStore = function (_EventEmitter) {\n _inherits(ResourceStore, _EventEmitter);\n\n function ResourceStore(data) {\n var _this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n ns: ['translation'],\n defaultNS: 'translation'\n };\n\n _classCallCheck(this, ResourceStore);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(ResourceStore).call(this));\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n _this.data = data || {};\n _this.options = options;\n\n if (_this.options.keySeparator === undefined) {\n _this.options.keySeparator = '.';\n }\n\n if (_this.options.ignoreJSONStructure === undefined) {\n _this.options.ignoreJSONStructure = true;\n }\n\n return _this;\n }\n\n _createClass(ResourceStore, [{\n key: \"addNamespaces\",\n value: function addNamespaces(ns) {\n if (this.options.ns.indexOf(ns) < 0) {\n this.options.ns.push(ns);\n }\n }\n }, {\n key: \"removeNamespaces\",\n value: function removeNamespaces(ns) {\n var index = this.options.ns.indexOf(ns);\n\n if (index > -1) {\n this.options.ns.splice(index, 1);\n }\n }\n }, {\n key: \"getResource\",\n value: function getResource(lng, ns, key) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n var ignoreJSONStructure = options.ignoreJSONStructure !== undefined ? options.ignoreJSONStructure : this.options.ignoreJSONStructure;\n var path = [lng, ns];\n if (key && typeof key !== 'string') path = path.concat(key);\n if (key && typeof key === 'string') path = path.concat(keySeparator ? key.split(keySeparator) : key);\n\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n }\n\n var result = getPath(this.data, path);\n if (result || !ignoreJSONStructure || typeof key !== 'string') return result;\n return deepFind(this.data && this.data[lng] && this.data[lng][ns], key, keySeparator);\n }\n }, {\n key: \"addResource\",\n value: function addResource(lng, ns, key, value) {\n var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n silent: false\n };\n var keySeparator = this.options.keySeparator;\n if (keySeparator === undefined) keySeparator = '.';\n var path = [lng, ns];\n if (key) path = path.concat(keySeparator ? key.split(keySeparator) : key);\n\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n value = ns;\n ns = path[1];\n }\n\n this.addNamespaces(ns);\n setPath(this.data, path, value);\n if (!options.silent) this.emit('added', lng, ns, key, value);\n }\n }, {\n key: \"addResources\",\n value: function addResources(lng, ns, resources) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {\n silent: false\n };\n\n for (var m in resources) {\n if (typeof resources[m] === 'string' || Object.prototype.toString.apply(resources[m]) === '[object Array]') this.addResource(lng, ns, m, resources[m], {\n silent: true\n });\n }\n\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n }, {\n key: \"addResourceBundle\",\n value: function addResourceBundle(lng, ns, resources, deep, overwrite) {\n var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {\n silent: false\n };\n var path = [lng, ns];\n\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n deep = resources;\n resources = ns;\n ns = path[1];\n }\n\n this.addNamespaces(ns);\n var pack = getPath(this.data, path) || {};\n\n if (deep) {\n deepExtend(pack, resources, overwrite);\n } else {\n pack = _objectSpread({}, pack, resources);\n }\n\n setPath(this.data, path, pack);\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n }, {\n key: \"removeResourceBundle\",\n value: function removeResourceBundle(lng, ns) {\n if (this.hasResourceBundle(lng, ns)) {\n delete this.data[lng][ns];\n }\n\n this.removeNamespaces(ns);\n this.emit('removed', lng, ns);\n }\n }, {\n key: \"hasResourceBundle\",\n value: function hasResourceBundle(lng, ns) {\n return this.getResource(lng, ns) !== undefined;\n }\n }, {\n key: \"getResourceBundle\",\n value: function getResourceBundle(lng, ns) {\n if (!ns) ns = this.options.defaultNS;\n if (this.options.compatibilityAPI === 'v1') return _objectSpread({}, {}, this.getResource(lng, ns));\n return this.getResource(lng, ns);\n }\n }, {\n key: \"getDataByLanguage\",\n value: function getDataByLanguage(lng) {\n return this.data[lng];\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n return this.data;\n }\n }]);\n\n return ResourceStore;\n}(EventEmitter);\n\nvar postProcessor = {\n processors: {},\n addPostProcessor: function addPostProcessor(module) {\n this.processors[module.name] = module;\n },\n handle: function handle(processors, value, key, options, translator) {\n var _this = this;\n\n processors.forEach(function (processor) {\n if (_this.processors[processor]) value = _this.processors[processor].process(value, key, options, translator);\n });\n return value;\n }\n};\nvar checkedLoadedFor = {};\n\nvar Translator = function (_EventEmitter) {\n _inherits(Translator, _EventEmitter);\n\n function Translator(services) {\n var _this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Translator);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Translator).call(this));\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n copy(['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector', 'i18nFormat', 'utils'], services, _assertThisInitialized(_this));\n _this.options = options;\n\n if (_this.options.keySeparator === undefined) {\n _this.options.keySeparator = '.';\n }\n\n _this.logger = baseLogger.create('translator');\n return _this;\n }\n\n _createClass(Translator, [{\n key: \"changeLanguage\",\n value: function changeLanguage(lng) {\n if (lng) this.language = lng;\n }\n }, {\n key: \"exists\",\n value: function exists(key) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n\n if (key === undefined || key === null) {\n return false;\n }\n\n var resolved = this.resolve(key, options);\n return resolved && resolved.res !== undefined;\n }\n }, {\n key: \"extractFromKey\",\n value: function extractFromKey(key, options) {\n var nsSeparator = options.nsSeparator !== undefined ? options.nsSeparator : this.options.nsSeparator;\n if (nsSeparator === undefined) nsSeparator = ':';\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n var namespaces = options.ns || this.options.defaultNS;\n\n if (nsSeparator && key.indexOf(nsSeparator) > -1) {\n var m = key.match(this.interpolator.nestingRegexp);\n\n if (m && m.length > 0) {\n return {\n key: key,\n namespaces: namespaces\n };\n }\n\n var parts = key.split(nsSeparator);\n if (nsSeparator !== keySeparator || nsSeparator === keySeparator && this.options.ns.indexOf(parts[0]) > -1) namespaces = parts.shift();\n key = parts.join(keySeparator);\n }\n\n if (typeof namespaces === 'string') namespaces = [namespaces];\n return {\n key: key,\n namespaces: namespaces\n };\n }\n }, {\n key: \"translate\",\n value: function translate(keys, options, lastKey) {\n var _this2 = this;\n\n if (_typeof(options) !== 'object' && this.options.overloadTranslationOptionHandler) {\n options = this.options.overloadTranslationOptionHandler(arguments);\n }\n\n if (!options) options = {};\n if (keys === undefined || keys === null) return '';\n if (!Array.isArray(keys)) keys = [String(keys)];\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n\n var _this$extractFromKey = this.extractFromKey(keys[keys.length - 1], options),\n key = _this$extractFromKey.key,\n namespaces = _this$extractFromKey.namespaces;\n\n var namespace = namespaces[namespaces.length - 1];\n var lng = options.lng || this.language;\n var appendNamespaceToCIMode = options.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;\n\n if (lng && lng.toLowerCase() === 'cimode') {\n if (appendNamespaceToCIMode) {\n var nsSeparator = options.nsSeparator || this.options.nsSeparator;\n return namespace + nsSeparator + key;\n }\n\n return key;\n }\n\n var resolved = this.resolve(keys, options);\n var res = resolved && resolved.res;\n var resUsedKey = resolved && resolved.usedKey || key;\n var resExactUsedKey = resolved && resolved.exactUsedKey || key;\n var resType = Object.prototype.toString.apply(res);\n var noObject = ['[object Number]', '[object Function]', '[object RegExp]'];\n var joinArrays = options.joinArrays !== undefined ? options.joinArrays : this.options.joinArrays;\n var handleAsObjectInI18nFormat = !this.i18nFormat || this.i18nFormat.handleAsObject;\n var handleAsObject = typeof res !== 'string' && typeof res !== 'boolean' && typeof res !== 'number';\n\n if (handleAsObjectInI18nFormat && res && handleAsObject && noObject.indexOf(resType) < 0 && !(typeof joinArrays === 'string' && resType === '[object Array]')) {\n if (!options.returnObjects && !this.options.returnObjects) {\n if (!this.options.returnedObjectHandler) {\n this.logger.warn('accessing an object - but returnObjects options is not enabled!');\n }\n\n return this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, res, _objectSpread({}, options, {\n ns: namespaces\n })) : \"key '\".concat(key, \" (\").concat(this.language, \")' returned an object instead of string.\");\n }\n\n if (keySeparator) {\n var resTypeIsArray = resType === '[object Array]';\n var copy = resTypeIsArray ? [] : {};\n var newKeyToUse = resTypeIsArray ? resExactUsedKey : resUsedKey;\n\n for (var m in res) {\n if (Object.prototype.hasOwnProperty.call(res, m)) {\n var deepKey = \"\".concat(newKeyToUse).concat(keySeparator).concat(m);\n copy[m] = this.translate(deepKey, _objectSpread({}, options, {\n joinArrays: false,\n ns: namespaces\n }));\n if (copy[m] === deepKey) copy[m] = res[m];\n }\n }\n\n res = copy;\n }\n } else if (handleAsObjectInI18nFormat && typeof joinArrays === 'string' && resType === '[object Array]') {\n res = res.join(joinArrays);\n if (res) res = this.extendTranslation(res, keys, options, lastKey);\n } else {\n var usedDefault = false;\n var usedKey = false;\n var needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n var hasDefaultValue = Translator.hasDefaultValue(options);\n var defaultValueSuffix = needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count) : '';\n var defaultValue = options[\"defaultValue\".concat(defaultValueSuffix)] || options.defaultValue;\n\n if (!this.isValidLookup(res) && hasDefaultValue) {\n usedDefault = true;\n res = defaultValue;\n }\n\n if (!this.isValidLookup(res)) {\n usedKey = true;\n res = key;\n }\n\n var missingKeyNoValueFallbackToKey = options.missingKeyNoValueFallbackToKey || this.options.missingKeyNoValueFallbackToKey;\n var resForMissing = missingKeyNoValueFallbackToKey && usedKey ? undefined : res;\n var updateMissing = hasDefaultValue && defaultValue !== res && this.options.updateMissing;\n\n if (usedKey || usedDefault || updateMissing) {\n this.logger.log(updateMissing ? 'updateKey' : 'missingKey', lng, namespace, key, updateMissing ? defaultValue : res);\n\n if (keySeparator) {\n var fk = this.resolve(key, _objectSpread({}, options, {\n keySeparator: false\n }));\n if (fk && fk.res) this.logger.warn('Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.');\n }\n\n var lngs = [];\n var fallbackLngs = this.languageUtils.getFallbackCodes(this.options.fallbackLng, options.lng || this.language);\n\n if (this.options.saveMissingTo === 'fallback' && fallbackLngs && fallbackLngs[0]) {\n for (var i = 0; i < fallbackLngs.length; i++) {\n lngs.push(fallbackLngs[i]);\n }\n } else if (this.options.saveMissingTo === 'all') {\n lngs = this.languageUtils.toResolveHierarchy(options.lng || this.language);\n } else {\n lngs.push(options.lng || this.language);\n }\n\n var send = function send(l, k, fallbackValue) {\n if (_this2.options.missingKeyHandler) {\n _this2.options.missingKeyHandler(l, namespace, k, updateMissing ? fallbackValue : resForMissing, updateMissing, options);\n } else if (_this2.backendConnector && _this2.backendConnector.saveMissing) {\n _this2.backendConnector.saveMissing(l, namespace, k, updateMissing ? fallbackValue : resForMissing, updateMissing, options);\n }\n\n _this2.emit('missingKey', l, namespace, k, res);\n };\n\n if (this.options.saveMissing) {\n if (this.options.saveMissingPlurals && needsPluralHandling) {\n lngs.forEach(function (language) {\n _this2.pluralResolver.getSuffixes(language).forEach(function (suffix) {\n send([language], key + suffix, options[\"defaultValue\".concat(suffix)] || defaultValue);\n });\n });\n } else {\n send(lngs, key, defaultValue);\n }\n }\n }\n\n res = this.extendTranslation(res, keys, options, resolved, lastKey);\n if (usedKey && res === key && this.options.appendNamespaceToMissingKey) res = \"\".concat(namespace, \":\").concat(key);\n if ((usedKey || usedDefault) && this.options.parseMissingKeyHandler) res = this.options.parseMissingKeyHandler(res);\n }\n\n return res;\n }\n }, {\n key: \"extendTranslation\",\n value: function extendTranslation(res, key, options, resolved, lastKey) {\n var _this3 = this;\n\n if (this.i18nFormat && this.i18nFormat.parse) {\n res = this.i18nFormat.parse(res, options, resolved.usedLng, resolved.usedNS, resolved.usedKey, {\n resolved: resolved\n });\n } else if (!options.skipInterpolation) {\n if (options.interpolation) this.interpolator.init(_objectSpread({}, options, {\n interpolation: _objectSpread({}, this.options.interpolation, options.interpolation)\n }));\n var skipOnVariables = options.interpolation && options.interpolation.skipOnVariables || this.options.interpolation.skipOnVariables;\n var nestBef;\n\n if (skipOnVariables) {\n var nb = res.match(this.interpolator.nestingRegexp);\n nestBef = nb && nb.length;\n }\n\n var data = options.replace && typeof options.replace !== 'string' ? options.replace : options;\n if (this.options.interpolation.defaultVariables) data = _objectSpread({}, this.options.interpolation.defaultVariables, data);\n res = this.interpolator.interpolate(res, data, options.lng || this.language, options);\n\n if (skipOnVariables) {\n var na = res.match(this.interpolator.nestingRegexp);\n var nestAft = na && na.length;\n if (nestBef < nestAft) options.nest = false;\n }\n\n if (options.nest !== false) res = this.interpolator.nest(res, function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (lastKey && lastKey[0] === args[0] && !options.context) {\n _this3.logger.warn(\"It seems you are nesting recursively key: \".concat(args[0], \" in key: \").concat(key[0]));\n\n return null;\n }\n\n return _this3.translate.apply(_this3, args.concat([key]));\n }, options);\n if (options.interpolation) this.interpolator.reset();\n }\n\n var postProcess = options.postProcess || this.options.postProcess;\n var postProcessorNames = typeof postProcess === 'string' ? [postProcess] : postProcess;\n\n if (res !== undefined && res !== null && postProcessorNames && postProcessorNames.length && options.applyPostProcessor !== false) {\n res = postProcessor.handle(postProcessorNames, res, key, this.options && this.options.postProcessPassResolved ? _objectSpread({\n i18nResolved: resolved\n }, options) : options, this);\n }\n\n return res;\n }\n }, {\n key: \"resolve\",\n value: function resolve(keys) {\n var _this4 = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var found;\n var usedKey;\n var exactUsedKey;\n var usedLng;\n var usedNS;\n if (typeof keys === 'string') keys = [keys];\n keys.forEach(function (k) {\n if (_this4.isValidLookup(found)) return;\n\n var extracted = _this4.extractFromKey(k, options);\n\n var key = extracted.key;\n usedKey = key;\n var namespaces = extracted.namespaces;\n if (_this4.options.fallbackNS) namespaces = namespaces.concat(_this4.options.fallbackNS);\n var needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n var needsContextHandling = options.context !== undefined && (typeof options.context === 'string' || typeof options.context === 'number') && options.context !== '';\n var codes = options.lngs ? options.lngs : _this4.languageUtils.toResolveHierarchy(options.lng || _this4.language, options.fallbackLng);\n namespaces.forEach(function (ns) {\n if (_this4.isValidLookup(found)) return;\n usedNS = ns;\n\n if (!checkedLoadedFor[\"\".concat(codes[0], \"-\").concat(ns)] && _this4.utils && _this4.utils.hasLoadedNamespace && !_this4.utils.hasLoadedNamespace(usedNS)) {\n checkedLoadedFor[\"\".concat(codes[0], \"-\").concat(ns)] = true;\n\n _this4.logger.warn(\"key \\\"\".concat(usedKey, \"\\\" for languages \\\"\").concat(codes.join(', '), \"\\\" won't get resolved as namespace \\\"\").concat(usedNS, \"\\\" was not yet loaded\"), 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n }\n\n codes.forEach(function (code) {\n if (_this4.isValidLookup(found)) return;\n usedLng = code;\n var finalKey = key;\n var finalKeys = [finalKey];\n\n if (_this4.i18nFormat && _this4.i18nFormat.addLookupKeys) {\n _this4.i18nFormat.addLookupKeys(finalKeys, key, code, ns, options);\n } else {\n var pluralSuffix;\n if (needsPluralHandling) pluralSuffix = _this4.pluralResolver.getSuffix(code, options.count);\n if (needsPluralHandling && needsContextHandling) finalKeys.push(finalKey + pluralSuffix);\n if (needsContextHandling) finalKeys.push(finalKey += \"\".concat(_this4.options.contextSeparator).concat(options.context));\n if (needsPluralHandling) finalKeys.push(finalKey += pluralSuffix);\n }\n\n var possibleKey;\n\n while (possibleKey = finalKeys.pop()) {\n if (!_this4.isValidLookup(found)) {\n exactUsedKey = possibleKey;\n found = _this4.getResource(code, ns, possibleKey, options);\n }\n }\n });\n });\n });\n return {\n res: found,\n usedKey: usedKey,\n exactUsedKey: exactUsedKey,\n usedLng: usedLng,\n usedNS: usedNS\n };\n }\n }, {\n key: \"isValidLookup\",\n value: function isValidLookup(res) {\n return res !== undefined && !(!this.options.returnNull && res === null) && !(!this.options.returnEmptyString && res === '');\n }\n }, {\n key: \"getResource\",\n value: function getResource(code, ns, key) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n if (this.i18nFormat && this.i18nFormat.getResource) return this.i18nFormat.getResource(code, ns, key, options);\n return this.resourceStore.getResource(code, ns, key, options);\n }\n }], [{\n key: \"hasDefaultValue\",\n value: function hasDefaultValue(options) {\n var prefix = 'defaultValue';\n\n for (var option in options) {\n if (Object.prototype.hasOwnProperty.call(options, option) && prefix === option.substring(0, prefix.length) && undefined !== options[option]) {\n return true;\n }\n }\n\n return false;\n }\n }]);\n\n return Translator;\n}(EventEmitter);\n\nfunction capitalize(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nvar LanguageUtil = function () {\n function LanguageUtil(options) {\n _classCallCheck(this, LanguageUtil);\n\n this.options = options;\n this.whitelist = this.options.supportedLngs || false;\n this.supportedLngs = this.options.supportedLngs || false;\n this.logger = baseLogger.create('languageUtils');\n }\n\n _createClass(LanguageUtil, [{\n key: \"getScriptPartFromCode\",\n value: function getScriptPartFromCode(code) {\n if (!code || code.indexOf('-') < 0) return null;\n var p = code.split('-');\n if (p.length === 2) return null;\n p.pop();\n if (p[p.length - 1].toLowerCase() === 'x') return null;\n return this.formatLanguageCode(p.join('-'));\n }\n }, {\n key: \"getLanguagePartFromCode\",\n value: function getLanguagePartFromCode(code) {\n if (!code || code.indexOf('-') < 0) return code;\n var p = code.split('-');\n return this.formatLanguageCode(p[0]);\n }\n }, {\n key: \"formatLanguageCode\",\n value: function formatLanguageCode(code) {\n if (typeof code === 'string' && code.indexOf('-') > -1) {\n var specialCases = ['hans', 'hant', 'latn', 'cyrl', 'cans', 'mong', 'arab'];\n var p = code.split('-');\n\n if (this.options.lowerCaseLng) {\n p = p.map(function (part) {\n return part.toLowerCase();\n });\n } else if (p.length === 2) {\n p[0] = p[0].toLowerCase();\n p[1] = p[1].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n } else if (p.length === 3) {\n p[0] = p[0].toLowerCase();\n if (p[1].length === 2) p[1] = p[1].toUpperCase();\n if (p[0] !== 'sgn' && p[2].length === 2) p[2] = p[2].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n if (specialCases.indexOf(p[2].toLowerCase()) > -1) p[2] = capitalize(p[2].toLowerCase());\n }\n\n return p.join('-');\n }\n\n return this.options.cleanCode || this.options.lowerCaseLng ? code.toLowerCase() : code;\n }\n }, {\n key: \"isWhitelisted\",\n value: function isWhitelisted(code) {\n this.logger.deprecate('languageUtils.isWhitelisted', 'function \"isWhitelisted\" will be renamed to \"isSupportedCode\" in the next major - please make sure to rename it\\'s usage asap.');\n return this.isSupportedCode(code);\n }\n }, {\n key: \"isSupportedCode\",\n value: function isSupportedCode(code) {\n if (this.options.load === 'languageOnly' || this.options.nonExplicitSupportedLngs) {\n code = this.getLanguagePartFromCode(code);\n }\n\n return !this.supportedLngs || !this.supportedLngs.length || this.supportedLngs.indexOf(code) > -1;\n }\n }, {\n key: \"getBestMatchFromCodes\",\n value: function getBestMatchFromCodes(codes) {\n var _this = this;\n\n if (!codes) return null;\n var found;\n codes.forEach(function (code) {\n if (found) return;\n\n var cleanedLng = _this.formatLanguageCode(code);\n\n if (!_this.options.supportedLngs || _this.isSupportedCode(cleanedLng)) found = cleanedLng;\n });\n\n if (!found && this.options.supportedLngs) {\n codes.forEach(function (code) {\n if (found) return;\n\n var lngOnly = _this.getLanguagePartFromCode(code);\n\n if (_this.isSupportedCode(lngOnly)) return found = lngOnly;\n found = _this.options.supportedLngs.find(function (supportedLng) {\n if (supportedLng.indexOf(lngOnly) === 0) return supportedLng;\n });\n });\n }\n\n if (!found) found = this.getFallbackCodes(this.options.fallbackLng)[0];\n return found;\n }\n }, {\n key: \"getFallbackCodes\",\n value: function getFallbackCodes(fallbacks, code) {\n if (!fallbacks) return [];\n if (typeof fallbacks === 'function') fallbacks = fallbacks(code);\n if (typeof fallbacks === 'string') fallbacks = [fallbacks];\n if (Object.prototype.toString.apply(fallbacks) === '[object Array]') return fallbacks;\n if (!code) return fallbacks[\"default\"] || [];\n var found = fallbacks[code];\n if (!found) found = fallbacks[this.getScriptPartFromCode(code)];\n if (!found) found = fallbacks[this.formatLanguageCode(code)];\n if (!found) found = fallbacks[this.getLanguagePartFromCode(code)];\n if (!found) found = fallbacks[\"default\"];\n return found || [];\n }\n }, {\n key: \"toResolveHierarchy\",\n value: function toResolveHierarchy(code, fallbackCode) {\n var _this2 = this;\n\n var fallbackCodes = this.getFallbackCodes(fallbackCode || this.options.fallbackLng || [], code);\n var codes = [];\n\n var addCode = function addCode(c) {\n if (!c) return;\n\n if (_this2.isSupportedCode(c)) {\n codes.push(c);\n } else {\n _this2.logger.warn(\"rejecting language code not found in supportedLngs: \".concat(c));\n }\n };\n\n if (typeof code === 'string' && code.indexOf('-') > -1) {\n if (this.options.load !== 'languageOnly') addCode(this.formatLanguageCode(code));\n if (this.options.load !== 'languageOnly' && this.options.load !== 'currentOnly') addCode(this.getScriptPartFromCode(code));\n if (this.options.load !== 'currentOnly') addCode(this.getLanguagePartFromCode(code));\n } else if (typeof code === 'string') {\n addCode(this.formatLanguageCode(code));\n }\n\n fallbackCodes.forEach(function (fc) {\n if (codes.indexOf(fc) < 0) addCode(_this2.formatLanguageCode(fc));\n });\n return codes;\n }\n }]);\n\n return LanguageUtil;\n}();\n\nvar sets = [{\n lngs: ['ach', 'ak', 'am', 'arn', 'br', 'fil', 'gun', 'ln', 'mfe', 'mg', 'mi', 'oc', 'pt', 'pt-BR', 'tg', 'tl', 'ti', 'tr', 'uz', 'wa'],\n nr: [1, 2],\n fc: 1\n}, {\n lngs: ['af', 'an', 'ast', 'az', 'bg', 'bn', 'ca', 'da', 'de', 'dev', 'el', 'en', 'eo', 'es', 'et', 'eu', 'fi', 'fo', 'fur', 'fy', 'gl', 'gu', 'ha', 'hi', 'hu', 'hy', 'ia', 'it', 'kk', 'kn', 'ku', 'lb', 'mai', 'ml', 'mn', 'mr', 'nah', 'nap', 'nb', 'ne', 'nl', 'nn', 'no', 'nso', 'pa', 'pap', 'pms', 'ps', 'pt-PT', 'rm', 'sco', 'se', 'si', 'so', 'son', 'sq', 'sv', 'sw', 'ta', 'te', 'tk', 'ur', 'yo'],\n nr: [1, 2],\n fc: 2\n}, {\n lngs: ['ay', 'bo', 'cgg', 'fa', 'ht', 'id', 'ja', 'jbo', 'ka', 'km', 'ko', 'ky', 'lo', 'ms', 'sah', 'su', 'th', 'tt', 'ug', 'vi', 'wo', 'zh'],\n nr: [1],\n fc: 3\n}, {\n lngs: ['be', 'bs', 'cnr', 'dz', 'hr', 'ru', 'sr', 'uk'],\n nr: [1, 2, 5],\n fc: 4\n}, {\n lngs: ['ar'],\n nr: [0, 1, 2, 3, 11, 100],\n fc: 5\n}, {\n lngs: ['cs', 'sk'],\n nr: [1, 2, 5],\n fc: 6\n}, {\n lngs: ['csb', 'pl'],\n nr: [1, 2, 5],\n fc: 7\n}, {\n lngs: ['cy'],\n nr: [1, 2, 3, 8],\n fc: 8\n}, {\n lngs: ['fr'],\n nr: [1, 2],\n fc: 9\n}, {\n lngs: ['ga'],\n nr: [1, 2, 3, 7, 11],\n fc: 10\n}, {\n lngs: ['gd'],\n nr: [1, 2, 3, 20],\n fc: 11\n}, {\n lngs: ['is'],\n nr: [1, 2],\n fc: 12\n}, {\n lngs: ['jv'],\n nr: [0, 1],\n fc: 13\n}, {\n lngs: ['kw'],\n nr: [1, 2, 3, 4],\n fc: 14\n}, {\n lngs: ['lt'],\n nr: [1, 2, 10],\n fc: 15\n}, {\n lngs: ['lv'],\n nr: [1, 2, 0],\n fc: 16\n}, {\n lngs: ['mk'],\n nr: [1, 2],\n fc: 17\n}, {\n lngs: ['mnk'],\n nr: [0, 1, 2],\n fc: 18\n}, {\n lngs: ['mt'],\n nr: [1, 2, 11, 20],\n fc: 19\n}, {\n lngs: ['or'],\n nr: [2, 1],\n fc: 2\n}, {\n lngs: ['ro'],\n nr: [1, 2, 20],\n fc: 20\n}, {\n lngs: ['sl'],\n nr: [5, 1, 2, 3],\n fc: 21\n}, {\n lngs: ['he', 'iw'],\n nr: [1, 2, 20, 21],\n fc: 22\n}];\nvar _rulesPluralsTypes = {\n 1: function _(n) {\n return Number(n > 1);\n },\n 2: function _(n) {\n return Number(n != 1);\n },\n 3: function _(n) {\n return 0;\n },\n 4: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 5: function _(n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : n == 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5);\n },\n 6: function _(n) {\n return Number(n == 1 ? 0 : n >= 2 && n <= 4 ? 1 : 2);\n },\n 7: function _(n) {\n return Number(n == 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 8: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n != 8 && n != 11 ? 2 : 3);\n },\n 9: function _(n) {\n return Number(n >= 2);\n },\n 10: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n < 7 ? 2 : n < 11 ? 3 : 4);\n },\n 11: function _(n) {\n return Number(n == 1 || n == 11 ? 0 : n == 2 || n == 12 ? 1 : n > 2 && n < 20 ? 2 : 3);\n },\n 12: function _(n) {\n return Number(n % 10 != 1 || n % 100 == 11);\n },\n 13: function _(n) {\n return Number(n !== 0);\n },\n 14: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n == 3 ? 2 : 3);\n },\n 15: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 16: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n !== 0 ? 1 : 2);\n },\n 17: function _(n) {\n return Number(n == 1 || n % 10 == 1 && n % 100 != 11 ? 0 : 1);\n },\n 18: function _(n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : 2);\n },\n 19: function _(n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 1 && n % 100 < 11 ? 1 : n % 100 > 10 && n % 100 < 20 ? 2 : 3);\n },\n 20: function _(n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 0 && n % 100 < 20 ? 1 : 2);\n },\n 21: function _(n) {\n return Number(n % 100 == 1 ? 1 : n % 100 == 2 ? 2 : n % 100 == 3 || n % 100 == 4 ? 3 : 0);\n },\n 22: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : (n < 0 || n > 10) && n % 10 == 0 ? 2 : 3);\n }\n};\n\nfunction createRules() {\n var rules = {};\n sets.forEach(function (set) {\n set.lngs.forEach(function (l) {\n rules[l] = {\n numbers: set.nr,\n plurals: _rulesPluralsTypes[set.fc]\n };\n });\n });\n return rules;\n}\n\nvar PluralResolver = function () {\n function PluralResolver(languageUtils) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, PluralResolver);\n\n this.languageUtils = languageUtils;\n this.options = options;\n this.logger = baseLogger.create('pluralResolver');\n this.rules = createRules();\n }\n\n _createClass(PluralResolver, [{\n key: \"addRule\",\n value: function addRule(lng, obj) {\n this.rules[lng] = obj;\n }\n }, {\n key: \"getRule\",\n value: function getRule(code) {\n return this.rules[code] || this.rules[this.languageUtils.getLanguagePartFromCode(code)];\n }\n }, {\n key: \"needsPlural\",\n value: function needsPlural(code) {\n var rule = this.getRule(code);\n return rule && rule.numbers.length > 1;\n }\n }, {\n key: \"getPluralFormsOfKey\",\n value: function getPluralFormsOfKey(code, key) {\n return this.getSuffixes(code).map(function (suffix) {\n return key + suffix;\n });\n }\n }, {\n key: \"getSuffixes\",\n value: function getSuffixes(code) {\n var _this = this;\n\n var rule = this.getRule(code);\n\n if (!rule) {\n return [];\n }\n\n return rule.numbers.map(function (number) {\n return _this.getSuffix(code, number);\n });\n }\n }, {\n key: \"getSuffix\",\n value: function getSuffix(code, count) {\n var _this2 = this;\n\n var rule = this.getRule(code);\n\n if (rule) {\n var idx = rule.noAbs ? rule.plurals(count) : rule.plurals(Math.abs(count));\n var suffix = rule.numbers[idx];\n\n if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n if (suffix === 2) {\n suffix = 'plural';\n } else if (suffix === 1) {\n suffix = '';\n }\n }\n\n var returnSuffix = function returnSuffix() {\n return _this2.options.prepend && suffix.toString() ? _this2.options.prepend + suffix.toString() : suffix.toString();\n };\n\n if (this.options.compatibilityJSON === 'v1') {\n if (suffix === 1) return '';\n if (typeof suffix === 'number') return \"_plural_\".concat(suffix.toString());\n return returnSuffix();\n } else if (this.options.compatibilityJSON === 'v2') {\n return returnSuffix();\n } else if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n return returnSuffix();\n }\n\n return this.options.prepend && idx.toString() ? this.options.prepend + idx.toString() : idx.toString();\n }\n\n this.logger.warn(\"no plural rule found for: \".concat(code));\n return '';\n }\n }]);\n\n return PluralResolver;\n}();\n\nvar Interpolator = function () {\n function Interpolator() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Interpolator);\n\n this.logger = baseLogger.create('interpolator');\n this.options = options;\n\n this.format = options.interpolation && options.interpolation.format || function (value) {\n return value;\n };\n\n this.init(options);\n }\n\n _createClass(Interpolator, [{\n key: \"init\",\n value: function init() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (!options.interpolation) options.interpolation = {\n escapeValue: true\n };\n var iOpts = options.interpolation;\n this.escape = iOpts.escape !== undefined ? iOpts.escape : escape;\n this.escapeValue = iOpts.escapeValue !== undefined ? iOpts.escapeValue : true;\n this.useRawValueToEscape = iOpts.useRawValueToEscape !== undefined ? iOpts.useRawValueToEscape : false;\n this.prefix = iOpts.prefix ? regexEscape(iOpts.prefix) : iOpts.prefixEscaped || '{{';\n this.suffix = iOpts.suffix ? regexEscape(iOpts.suffix) : iOpts.suffixEscaped || '}}';\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n this.unescapePrefix = iOpts.unescapeSuffix ? '' : iOpts.unescapePrefix || '-';\n this.unescapeSuffix = this.unescapePrefix ? '' : iOpts.unescapeSuffix || '';\n this.nestingPrefix = iOpts.nestingPrefix ? regexEscape(iOpts.nestingPrefix) : iOpts.nestingPrefixEscaped || regexEscape('$t(');\n this.nestingSuffix = iOpts.nestingSuffix ? regexEscape(iOpts.nestingSuffix) : iOpts.nestingSuffixEscaped || regexEscape(')');\n this.nestingOptionsSeparator = iOpts.nestingOptionsSeparator ? iOpts.nestingOptionsSeparator : iOpts.nestingOptionsSeparator || ',';\n this.maxReplaces = iOpts.maxReplaces ? iOpts.maxReplaces : 1000;\n this.alwaysFormat = iOpts.alwaysFormat !== undefined ? iOpts.alwaysFormat : false;\n this.resetRegExp();\n }\n }, {\n key: \"reset\",\n value: function reset() {\n if (this.options) this.init(this.options);\n }\n }, {\n key: \"resetRegExp\",\n value: function resetRegExp() {\n var regexpStr = \"\".concat(this.prefix, \"(.+?)\").concat(this.suffix);\n this.regexp = new RegExp(regexpStr, 'g');\n var regexpUnescapeStr = \"\".concat(this.prefix).concat(this.unescapePrefix, \"(.+?)\").concat(this.unescapeSuffix).concat(this.suffix);\n this.regexpUnescape = new RegExp(regexpUnescapeStr, 'g');\n var nestingRegexpStr = \"\".concat(this.nestingPrefix, \"(.+?)\").concat(this.nestingSuffix);\n this.nestingRegexp = new RegExp(nestingRegexpStr, 'g');\n }\n }, {\n key: \"interpolate\",\n value: function interpolate(str, data, lng, options) {\n var _this = this;\n\n var match;\n var value;\n var replaces;\n var defaultData = this.options && this.options.interpolation && this.options.interpolation.defaultVariables || {};\n\n function regexSafe(val) {\n return val.replace(/\\$/g, '$$$$');\n }\n\n var handleFormat = function handleFormat(key) {\n if (key.indexOf(_this.formatSeparator) < 0) {\n var path = getPathWithDefaults(data, defaultData, key);\n return _this.alwaysFormat ? _this.format(path, undefined, lng, _objectSpread({}, options, data, {\n interpolationkey: key\n })) : path;\n }\n\n var p = key.split(_this.formatSeparator);\n var k = p.shift().trim();\n var f = p.join(_this.formatSeparator).trim();\n return _this.format(getPathWithDefaults(data, defaultData, k), f, lng, _objectSpread({}, options, data, {\n interpolationkey: k\n }));\n };\n\n this.resetRegExp();\n var missingInterpolationHandler = options && options.missingInterpolationHandler || this.options.missingInterpolationHandler;\n var skipOnVariables = options && options.interpolation && options.interpolation.skipOnVariables || this.options.interpolation.skipOnVariables;\n var todos = [{\n regex: this.regexpUnescape,\n safeValue: function safeValue(val) {\n return regexSafe(val);\n }\n }, {\n regex: this.regexp,\n safeValue: function safeValue(val) {\n return _this.escapeValue ? regexSafe(_this.escape(val)) : regexSafe(val);\n }\n }];\n todos.forEach(function (todo) {\n replaces = 0;\n\n while (match = todo.regex.exec(str)) {\n value = handleFormat(match[1].trim());\n\n if (value === undefined) {\n if (typeof missingInterpolationHandler === 'function') {\n var temp = missingInterpolationHandler(str, match, options);\n value = typeof temp === 'string' ? temp : '';\n } else if (skipOnVariables) {\n value = match[0];\n continue;\n } else {\n _this.logger.warn(\"missed to pass in variable \".concat(match[1], \" for interpolating \").concat(str));\n\n value = '';\n }\n } else if (typeof value !== 'string' && !_this.useRawValueToEscape) {\n value = makeString(value);\n }\n\n var safeValue = todo.safeValue(value);\n str = str.replace(match[0], safeValue);\n\n if (skipOnVariables) {\n todo.regex.lastIndex += safeValue.length;\n todo.regex.lastIndex -= match[0].length;\n } else {\n todo.regex.lastIndex = 0;\n }\n\n replaces++;\n\n if (replaces >= _this.maxReplaces) {\n break;\n }\n }\n });\n return str;\n }\n }, {\n key: \"nest\",\n value: function nest(str, fc) {\n var _this2 = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var match;\n var value;\n\n var clonedOptions = _objectSpread({}, options);\n\n clonedOptions.applyPostProcessor = false;\n delete clonedOptions.defaultValue;\n\n function handleHasOptions(key, inheritedOptions) {\n var sep = this.nestingOptionsSeparator;\n if (key.indexOf(sep) < 0) return key;\n var c = key.split(new RegExp(\"\".concat(sep, \"[ ]*{\")));\n var optionsString = \"{\".concat(c[1]);\n key = c[0];\n optionsString = this.interpolate(optionsString, clonedOptions);\n optionsString = optionsString.replace(/'/g, '\"');\n\n try {\n clonedOptions = JSON.parse(optionsString);\n if (inheritedOptions) clonedOptions = _objectSpread({}, inheritedOptions, clonedOptions);\n } catch (e) {\n this.logger.warn(\"failed parsing options string in nesting for key \".concat(key), e);\n return \"\".concat(key).concat(sep).concat(optionsString);\n }\n\n delete clonedOptions.defaultValue;\n return key;\n }\n\n while (match = this.nestingRegexp.exec(str)) {\n var formatters = [];\n var doReduce = false;\n\n if (match[0].indexOf(this.formatSeparator) !== -1 && !/{.*}/.test(match[1])) {\n var r = match[1].split(this.formatSeparator).map(function (elem) {\n return elem.trim();\n });\n match[1] = r.shift();\n formatters = r;\n doReduce = true;\n }\n\n value = fc(handleHasOptions.call(this, match[1].trim(), clonedOptions), clonedOptions);\n if (value && match[0] === str && typeof value !== 'string') return value;\n if (typeof value !== 'string') value = makeString(value);\n\n if (!value) {\n this.logger.warn(\"missed to resolve \".concat(match[1], \" for nesting \").concat(str));\n value = '';\n }\n\n if (doReduce) {\n value = formatters.reduce(function (v, f) {\n return _this2.format(v, f, options.lng, _objectSpread({}, options, {\n interpolationkey: match[1].trim()\n }));\n }, value.trim());\n }\n\n str = str.replace(match[0], value);\n this.regexp.lastIndex = 0;\n }\n\n return str;\n }\n }]);\n\n return Interpolator;\n}();\n\nfunction remove(arr, what) {\n var found = arr.indexOf(what);\n\n while (found !== -1) {\n arr.splice(found, 1);\n found = arr.indexOf(what);\n }\n}\n\nvar Connector = function (_EventEmitter) {\n _inherits(Connector, _EventEmitter);\n\n function Connector(backend, store, services) {\n var _this;\n\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n _classCallCheck(this, Connector);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Connector).call(this));\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n _this.backend = backend;\n _this.store = store;\n _this.services = services;\n _this.languageUtils = services.languageUtils;\n _this.options = options;\n _this.logger = baseLogger.create('backendConnector');\n _this.state = {};\n _this.queue = [];\n\n if (_this.backend && _this.backend.init) {\n _this.backend.init(services, options.backend, options);\n }\n\n return _this;\n }\n\n _createClass(Connector, [{\n key: \"queueLoad\",\n value: function queueLoad(languages, namespaces, options, callback) {\n var _this2 = this;\n\n var toLoad = [];\n var pending = [];\n var toLoadLanguages = [];\n var toLoadNamespaces = [];\n languages.forEach(function (lng) {\n var hasAllNamespaces = true;\n namespaces.forEach(function (ns) {\n var name = \"\".concat(lng, \"|\").concat(ns);\n\n if (!options.reload && _this2.store.hasResourceBundle(lng, ns)) {\n _this2.state[name] = 2;\n } else if (_this2.state[name] < 0) ;else if (_this2.state[name] === 1) {\n if (pending.indexOf(name) < 0) pending.push(name);\n } else {\n _this2.state[name] = 1;\n hasAllNamespaces = false;\n if (pending.indexOf(name) < 0) pending.push(name);\n if (toLoad.indexOf(name) < 0) toLoad.push(name);\n if (toLoadNamespaces.indexOf(ns) < 0) toLoadNamespaces.push(ns);\n }\n });\n if (!hasAllNamespaces) toLoadLanguages.push(lng);\n });\n\n if (toLoad.length || pending.length) {\n this.queue.push({\n pending: pending,\n loaded: {},\n errors: [],\n callback: callback\n });\n }\n\n return {\n toLoad: toLoad,\n pending: pending,\n toLoadLanguages: toLoadLanguages,\n toLoadNamespaces: toLoadNamespaces\n };\n }\n }, {\n key: \"loaded\",\n value: function loaded(name, err, data) {\n var s = name.split('|');\n var lng = s[0];\n var ns = s[1];\n if (err) this.emit('failedLoading', lng, ns, err);\n\n if (data) {\n this.store.addResourceBundle(lng, ns, data);\n }\n\n this.state[name] = err ? -1 : 2;\n var loaded = {};\n this.queue.forEach(function (q) {\n pushPath(q.loaded, [lng], ns);\n remove(q.pending, name);\n if (err) q.errors.push(err);\n\n if (q.pending.length === 0 && !q.done) {\n Object.keys(q.loaded).forEach(function (l) {\n if (!loaded[l]) loaded[l] = [];\n\n if (q.loaded[l].length) {\n q.loaded[l].forEach(function (ns) {\n if (loaded[l].indexOf(ns) < 0) loaded[l].push(ns);\n });\n }\n });\n q.done = true;\n\n if (q.errors.length) {\n q.callback(q.errors);\n } else {\n q.callback();\n }\n }\n });\n this.emit('loaded', loaded);\n this.queue = this.queue.filter(function (q) {\n return !q.done;\n });\n }\n }, {\n key: \"read\",\n value: function read(lng, ns, fcName) {\n var _this3 = this;\n\n var tried = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n var wait = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 350;\n var callback = arguments.length > 5 ? arguments[5] : undefined;\n if (!lng.length) return callback(null, {});\n return this.backend[fcName](lng, ns, function (err, data) {\n if (err && data && tried < 5) {\n setTimeout(function () {\n _this3.read.call(_this3, lng, ns, fcName, tried + 1, wait * 2, callback);\n }, wait);\n return;\n }\n\n callback(err, data);\n });\n }\n }, {\n key: \"prepareLoading\",\n value: function prepareLoading(languages, namespaces) {\n var _this4 = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var callback = arguments.length > 3 ? arguments[3] : undefined;\n\n if (!this.backend) {\n this.logger.warn('No backend was added via i18next.use. Will not load resources.');\n return callback && callback();\n }\n\n if (typeof languages === 'string') languages = this.languageUtils.toResolveHierarchy(languages);\n if (typeof namespaces === 'string') namespaces = [namespaces];\n var toLoad = this.queueLoad(languages, namespaces, options, callback);\n\n if (!toLoad.toLoad.length) {\n if (!toLoad.pending.length) callback();\n return null;\n }\n\n toLoad.toLoad.forEach(function (name) {\n _this4.loadOne(name);\n });\n }\n }, {\n key: \"load\",\n value: function load(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {}, callback);\n }\n }, {\n key: \"reload\",\n value: function reload(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {\n reload: true\n }, callback);\n }\n }, {\n key: \"loadOne\",\n value: function loadOne(name) {\n var _this5 = this;\n\n var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var s = name.split('|');\n var lng = s[0];\n var ns = s[1];\n this.read(lng, ns, 'read', undefined, undefined, function (err, data) {\n if (err) _this5.logger.warn(\"\".concat(prefix, \"loading namespace \").concat(ns, \" for language \").concat(lng, \" failed\"), err);\n if (!err && data) _this5.logger.log(\"\".concat(prefix, \"loaded namespace \").concat(ns, \" for language \").concat(lng), data);\n\n _this5.loaded(name, err, data);\n });\n }\n }, {\n key: \"saveMissing\",\n value: function saveMissing(languages, namespace, key, fallbackValue, isUpdate) {\n var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n\n if (this.services.utils && this.services.utils.hasLoadedNamespace && !this.services.utils.hasLoadedNamespace(namespace)) {\n this.logger.warn(\"did not save key \\\"\".concat(key, \"\\\" as the namespace \\\"\").concat(namespace, \"\\\" was not yet loaded\"), 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n return;\n }\n\n if (key === undefined || key === null || key === '') return;\n\n if (this.backend && this.backend.create) {\n this.backend.create(languages, namespace, key, fallbackValue, null, _objectSpread({}, options, {\n isUpdate: isUpdate\n }));\n }\n\n if (!languages || !languages[0]) return;\n this.store.addResource(languages[0], namespace, key, fallbackValue);\n }\n }]);\n\n return Connector;\n}(EventEmitter);\n\nfunction get() {\n return {\n debug: false,\n initImmediate: true,\n ns: ['translation'],\n defaultNS: ['translation'],\n fallbackLng: ['dev'],\n fallbackNS: false,\n whitelist: false,\n nonExplicitWhitelist: false,\n supportedLngs: false,\n nonExplicitSupportedLngs: false,\n load: 'all',\n preload: false,\n simplifyPluralSuffix: true,\n keySeparator: '.',\n nsSeparator: ':',\n pluralSeparator: '_',\n contextSeparator: '_',\n partialBundledLanguages: false,\n saveMissing: false,\n updateMissing: false,\n saveMissingTo: 'fallback',\n saveMissingPlurals: true,\n missingKeyHandler: false,\n missingInterpolationHandler: false,\n postProcess: false,\n postProcessPassResolved: false,\n returnNull: true,\n returnEmptyString: true,\n returnObjects: false,\n joinArrays: false,\n returnedObjectHandler: false,\n parseMissingKeyHandler: false,\n appendNamespaceToMissingKey: false,\n appendNamespaceToCIMode: false,\n overloadTranslationOptionHandler: function handle(args) {\n var ret = {};\n if (_typeof(args[1]) === 'object') ret = args[1];\n if (typeof args[1] === 'string') ret.defaultValue = args[1];\n if (typeof args[2] === 'string') ret.tDescription = args[2];\n\n if (_typeof(args[2]) === 'object' || _typeof(args[3]) === 'object') {\n var options = args[3] || args[2];\n Object.keys(options).forEach(function (key) {\n ret[key] = options[key];\n });\n }\n\n return ret;\n },\n interpolation: {\n escapeValue: true,\n format: function format(value, _format, lng, options) {\n return value;\n },\n prefix: '{{',\n suffix: '}}',\n formatSeparator: ',',\n unescapePrefix: '-',\n nestingPrefix: '$t(',\n nestingSuffix: ')',\n nestingOptionsSeparator: ',',\n maxReplaces: 1000,\n skipOnVariables: false\n }\n };\n}\n\nfunction transformOptions(options) {\n if (typeof options.ns === 'string') options.ns = [options.ns];\n if (typeof options.fallbackLng === 'string') options.fallbackLng = [options.fallbackLng];\n if (typeof options.fallbackNS === 'string') options.fallbackNS = [options.fallbackNS];\n\n if (options.whitelist) {\n if (options.whitelist && options.whitelist.indexOf('cimode') < 0) {\n options.whitelist = options.whitelist.concat(['cimode']);\n }\n\n options.supportedLngs = options.whitelist;\n }\n\n if (options.nonExplicitWhitelist) {\n options.nonExplicitSupportedLngs = options.nonExplicitWhitelist;\n }\n\n if (options.supportedLngs && options.supportedLngs.indexOf('cimode') < 0) {\n options.supportedLngs = options.supportedLngs.concat(['cimode']);\n }\n\n return options;\n}\n\nfunction noop() {}\n\nvar I18n = function (_EventEmitter) {\n _inherits(I18n, _EventEmitter);\n\n function I18n() {\n var _this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n\n _classCallCheck(this, I18n);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(I18n).call(this));\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n _this.options = transformOptions(options);\n _this.services = {};\n _this.logger = baseLogger;\n _this.modules = {\n external: []\n };\n\n if (callback && !_this.isInitialized && !options.isClone) {\n if (!_this.options.initImmediate) {\n _this.init(options, callback);\n\n return _possibleConstructorReturn(_this, _assertThisInitialized(_this));\n }\n\n setTimeout(function () {\n _this.init(options, callback);\n }, 0);\n }\n\n return _this;\n }\n\n _createClass(I18n, [{\n key: \"init\",\n value: function init() {\n var _this2 = this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n\n if (options.whitelist && !options.supportedLngs) {\n this.logger.deprecate('whitelist', 'option \"whitelist\" will be renamed to \"supportedLngs\" in the next major - please make sure to rename this option asap.');\n }\n\n if (options.nonExplicitWhitelist && !options.nonExplicitSupportedLngs) {\n this.logger.deprecate('whitelist', 'options \"nonExplicitWhitelist\" will be renamed to \"nonExplicitSupportedLngs\" in the next major - please make sure to rename this option asap.');\n }\n\n this.options = _objectSpread({}, get(), this.options, transformOptions(options));\n this.format = this.options.interpolation.format;\n if (!callback) callback = noop;\n\n function createClassOnDemand(ClassOrObject) {\n if (!ClassOrObject) return null;\n if (typeof ClassOrObject === 'function') return new ClassOrObject();\n return ClassOrObject;\n }\n\n if (!this.options.isClone) {\n if (this.modules.logger) {\n baseLogger.init(createClassOnDemand(this.modules.logger), this.options);\n } else {\n baseLogger.init(null, this.options);\n }\n\n var lu = new LanguageUtil(this.options);\n this.store = new ResourceStore(this.options.resources, this.options);\n var s = this.services;\n s.logger = baseLogger;\n s.resourceStore = this.store;\n s.languageUtils = lu;\n s.pluralResolver = new PluralResolver(lu, {\n prepend: this.options.pluralSeparator,\n compatibilityJSON: this.options.compatibilityJSON,\n simplifyPluralSuffix: this.options.simplifyPluralSuffix\n });\n s.interpolator = new Interpolator(this.options);\n s.utils = {\n hasLoadedNamespace: this.hasLoadedNamespace.bind(this)\n };\n s.backendConnector = new Connector(createClassOnDemand(this.modules.backend), s.resourceStore, s, this.options);\n s.backendConnector.on('*', function (event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n _this2.emit.apply(_this2, [event].concat(args));\n });\n\n if (this.modules.languageDetector) {\n s.languageDetector = createClassOnDemand(this.modules.languageDetector);\n s.languageDetector.init(s, this.options.detection, this.options);\n }\n\n if (this.modules.i18nFormat) {\n s.i18nFormat = createClassOnDemand(this.modules.i18nFormat);\n if (s.i18nFormat.init) s.i18nFormat.init(this);\n }\n\n this.translator = new Translator(this.services, this.options);\n this.translator.on('*', function (event) {\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\n _this2.emit.apply(_this2, [event].concat(args));\n });\n this.modules.external.forEach(function (m) {\n if (m.init) m.init(_this2);\n });\n }\n\n if (this.options.fallbackLng && !this.services.languageDetector && !this.options.lng) {\n var codes = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n if (codes.length > 0 && codes[0] !== 'dev') this.options.lng = codes[0];\n }\n\n if (!this.services.languageDetector && !this.options.lng) {\n this.logger.warn('init: no languageDetector is used and no lng is defined');\n }\n\n var storeApi = ['getResource', 'hasResourceBundle', 'getResourceBundle', 'getDataByLanguage'];\n storeApi.forEach(function (fcName) {\n _this2[fcName] = function () {\n var _this2$store;\n\n return (_this2$store = _this2.store)[fcName].apply(_this2$store, arguments);\n };\n });\n var storeApiChained = ['addResource', 'addResources', 'addResourceBundle', 'removeResourceBundle'];\n storeApiChained.forEach(function (fcName) {\n _this2[fcName] = function () {\n var _this2$store2;\n\n (_this2$store2 = _this2.store)[fcName].apply(_this2$store2, arguments);\n\n return _this2;\n };\n });\n var deferred = defer();\n\n var load = function load() {\n var finish = function finish(err, t) {\n if (_this2.isInitialized && !_this2.initializedStoreOnce) _this2.logger.warn('init: i18next is already initialized. You should call init just once!');\n _this2.isInitialized = true;\n if (!_this2.options.isClone) _this2.logger.log('initialized', _this2.options);\n\n _this2.emit('initialized', _this2.options);\n\n deferred.resolve(t);\n callback(err, t);\n };\n\n if (_this2.languages && _this2.options.compatibilityAPI !== 'v1' && !_this2.isInitialized) return finish(null, _this2.t.bind(_this2));\n\n _this2.changeLanguage(_this2.options.lng, finish);\n };\n\n if (this.options.resources || !this.options.initImmediate) {\n load();\n } else {\n setTimeout(load, 0);\n }\n\n return deferred;\n }\n }, {\n key: \"loadResources\",\n value: function loadResources(language) {\n var _this3 = this;\n\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n var usedCallback = callback;\n var usedLng = typeof language === 'string' ? language : this.language;\n if (typeof language === 'function') usedCallback = language;\n\n if (!this.options.resources || this.options.partialBundledLanguages) {\n if (usedLng && usedLng.toLowerCase() === 'cimode') return usedCallback();\n var toLoad = [];\n\n var append = function append(lng) {\n if (!lng) return;\n\n var lngs = _this3.services.languageUtils.toResolveHierarchy(lng);\n\n lngs.forEach(function (l) {\n if (toLoad.indexOf(l) < 0) toLoad.push(l);\n });\n };\n\n if (!usedLng) {\n var fallbacks = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n fallbacks.forEach(function (l) {\n return append(l);\n });\n } else {\n append(usedLng);\n }\n\n if (this.options.preload) {\n this.options.preload.forEach(function (l) {\n return append(l);\n });\n }\n\n this.services.backendConnector.load(toLoad, this.options.ns, usedCallback);\n } else {\n usedCallback(null);\n }\n }\n }, {\n key: \"reloadResources\",\n value: function reloadResources(lngs, ns, callback) {\n var deferred = defer();\n if (!lngs) lngs = this.languages;\n if (!ns) ns = this.options.ns;\n if (!callback) callback = noop;\n this.services.backendConnector.reload(lngs, ns, function (err) {\n deferred.resolve();\n callback(err);\n });\n return deferred;\n }\n }, {\n key: \"use\",\n value: function use(module) {\n if (!module) throw new Error('You are passing an undefined module! Please check the object you are passing to i18next.use()');\n if (!module.type) throw new Error('You are passing a wrong module! Please check the object you are passing to i18next.use()');\n\n if (module.type === 'backend') {\n this.modules.backend = module;\n }\n\n if (module.type === 'logger' || module.log && module.warn && module.error) {\n this.modules.logger = module;\n }\n\n if (module.type === 'languageDetector') {\n this.modules.languageDetector = module;\n }\n\n if (module.type === 'i18nFormat') {\n this.modules.i18nFormat = module;\n }\n\n if (module.type === 'postProcessor') {\n postProcessor.addPostProcessor(module);\n }\n\n if (module.type === '3rdParty') {\n this.modules.external.push(module);\n }\n\n return this;\n }\n }, {\n key: \"changeLanguage\",\n value: function changeLanguage(lng, callback) {\n var _this4 = this;\n\n this.isLanguageChangingTo = lng;\n var deferred = defer();\n this.emit('languageChanging', lng);\n\n var done = function done(err, l) {\n if (l) {\n _this4.language = l;\n _this4.languages = _this4.services.languageUtils.toResolveHierarchy(l);\n\n _this4.translator.changeLanguage(l);\n\n _this4.isLanguageChangingTo = undefined;\n\n _this4.emit('languageChanged', l);\n\n _this4.logger.log('languageChanged', l);\n } else {\n _this4.isLanguageChangingTo = undefined;\n }\n\n deferred.resolve(function () {\n return _this4.t.apply(_this4, arguments);\n });\n if (callback) callback(err, function () {\n return _this4.t.apply(_this4, arguments);\n });\n };\n\n var setLng = function setLng(lngs) {\n if (!lng && !lngs && _this4.services.languageDetector) lngs = [];\n var l = typeof lngs === 'string' ? lngs : _this4.services.languageUtils.getBestMatchFromCodes(lngs);\n\n if (l) {\n if (!_this4.language) {\n _this4.language = l;\n _this4.languages = _this4.services.languageUtils.toResolveHierarchy(l);\n }\n\n if (!_this4.translator.language) _this4.translator.changeLanguage(l);\n if (_this4.services.languageDetector) _this4.services.languageDetector.cacheUserLanguage(l);\n }\n\n _this4.loadResources(l, function (err) {\n done(err, l);\n });\n };\n\n if (!lng && this.services.languageDetector && !this.services.languageDetector.async) {\n setLng(this.services.languageDetector.detect());\n } else if (!lng && this.services.languageDetector && this.services.languageDetector.async) {\n this.services.languageDetector.detect(setLng);\n } else {\n setLng(lng);\n }\n\n return deferred;\n }\n }, {\n key: \"getFixedT\",\n value: function getFixedT(lng, ns, keyPrefix) {\n var _this5 = this;\n\n var fixedT = function fixedT(key, opts) {\n var options;\n\n if (_typeof(opts) !== 'object') {\n for (var _len3 = arguments.length, rest = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n rest[_key3 - 2] = arguments[_key3];\n }\n\n options = _this5.options.overloadTranslationOptionHandler([key, opts].concat(rest));\n } else {\n options = _objectSpread({}, opts);\n }\n\n options.lng = options.lng || fixedT.lng;\n options.lngs = options.lngs || fixedT.lngs;\n options.ns = options.ns || fixedT.ns;\n var keySeparator = _this5.options.keySeparator || '.';\n var resultKey = keyPrefix ? \"\".concat(keyPrefix).concat(keySeparator).concat(key) : key;\n return _this5.t(resultKey, options);\n };\n\n if (typeof lng === 'string') {\n fixedT.lng = lng;\n } else {\n fixedT.lngs = lng;\n }\n\n fixedT.ns = ns;\n fixedT.keyPrefix = keyPrefix;\n return fixedT;\n }\n }, {\n key: \"t\",\n value: function t() {\n var _this$translator;\n\n return this.translator && (_this$translator = this.translator).translate.apply(_this$translator, arguments);\n }\n }, {\n key: \"exists\",\n value: function exists() {\n var _this$translator2;\n\n return this.translator && (_this$translator2 = this.translator).exists.apply(_this$translator2, arguments);\n }\n }, {\n key: \"setDefaultNamespace\",\n value: function setDefaultNamespace(ns) {\n this.options.defaultNS = ns;\n }\n }, {\n key: \"hasLoadedNamespace\",\n value: function hasLoadedNamespace(ns) {\n var _this6 = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (!this.isInitialized) {\n this.logger.warn('hasLoadedNamespace: i18next was not initialized', this.languages);\n return false;\n }\n\n if (!this.languages || !this.languages.length) {\n this.logger.warn('hasLoadedNamespace: i18n.languages were undefined or empty', this.languages);\n return false;\n }\n\n var lng = this.languages[0];\n var fallbackLng = this.options ? this.options.fallbackLng : false;\n var lastLng = this.languages[this.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n\n var loadNotPending = function loadNotPending(l, n) {\n var loadState = _this6.services.backendConnector.state[\"\".concat(l, \"|\").concat(n)];\n\n return loadState === -1 || loadState === 2;\n };\n\n if (options.precheck) {\n var preResult = options.precheck(this, loadNotPending);\n if (preResult !== undefined) return preResult;\n }\n\n if (this.hasResourceBundle(lng, ns)) return true;\n if (!this.services.backendConnector.backend) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n }\n }, {\n key: \"loadNamespaces\",\n value: function loadNamespaces(ns, callback) {\n var _this7 = this;\n\n var deferred = defer();\n\n if (!this.options.ns) {\n callback && callback();\n return Promise.resolve();\n }\n\n if (typeof ns === 'string') ns = [ns];\n ns.forEach(function (n) {\n if (_this7.options.ns.indexOf(n) < 0) _this7.options.ns.push(n);\n });\n this.loadResources(function (err) {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n }, {\n key: \"loadLanguages\",\n value: function loadLanguages(lngs, callback) {\n var deferred = defer();\n if (typeof lngs === 'string') lngs = [lngs];\n var preloaded = this.options.preload || [];\n var newLngs = lngs.filter(function (lng) {\n return preloaded.indexOf(lng) < 0;\n });\n\n if (!newLngs.length) {\n if (callback) callback();\n return Promise.resolve();\n }\n\n this.options.preload = preloaded.concat(newLngs);\n this.loadResources(function (err) {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n }, {\n key: \"dir\",\n value: function dir(lng) {\n if (!lng) lng = this.languages && this.languages.length > 0 ? this.languages[0] : this.language;\n if (!lng) return 'rtl';\n var rtlLngs = ['ar', 'shu', 'sqr', 'ssh', 'xaa', 'yhd', 'yud', 'aao', 'abh', 'abv', 'acm', 'acq', 'acw', 'acx', 'acy', 'adf', 'ads', 'aeb', 'aec', 'afb', 'ajp', 'apc', 'apd', 'arb', 'arq', 'ars', 'ary', 'arz', 'auz', 'avl', 'ayh', 'ayl', 'ayn', 'ayp', 'bbz', 'pga', 'he', 'iw', 'ps', 'pbt', 'pbu', 'pst', 'prp', 'prd', 'ug', 'ur', 'ydd', 'yds', 'yih', 'ji', 'yi', 'hbo', 'men', 'xmn', 'fa', 'jpr', 'peo', 'pes', 'prs', 'dv', 'sam'];\n return rtlLngs.indexOf(this.services.languageUtils.getLanguagePartFromCode(lng)) >= 0 ? 'rtl' : 'ltr';\n }\n }, {\n key: \"createInstance\",\n value: function createInstance() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n return new I18n(options, callback);\n }\n }, {\n key: \"cloneInstance\",\n value: function cloneInstance() {\n var _this8 = this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n\n var mergedOptions = _objectSpread({}, this.options, options, {\n isClone: true\n });\n\n var clone = new I18n(mergedOptions);\n var membersToCopy = ['store', 'services', 'language'];\n membersToCopy.forEach(function (m) {\n clone[m] = _this8[m];\n });\n clone.services = _objectSpread({}, this.services);\n clone.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n clone.translator = new Translator(clone.services, clone.options);\n clone.translator.on('*', function (event) {\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n\n clone.emit.apply(clone, [event].concat(args));\n });\n clone.init(mergedOptions, callback);\n clone.translator.options = clone.options;\n clone.translator.backendConnector.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n return clone;\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n return {\n options: this.options,\n store: this.store,\n language: this.language,\n languages: this.languages\n };\n }\n }]);\n\n return I18n;\n}(EventEmitter);\n\nvar i18next = new I18n();\nexport default i18next;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n/* eslint-disable flowtype/no-weak-types */\n\n\nimport nodejsCustomInspectSymbol from \"./nodejsCustomInspectSymbol.mjs\";\nvar MAX_ARRAY_LENGTH = 10;\nvar MAX_RECURSIVE_DEPTH = 2;\n/**\n * Used to print values in error messages.\n */\n\nexport default function inspect(value) {\n return formatValue(value, []);\n}\n\nfunction formatValue(value, seenValues) {\n switch (_typeof(value)) {\n case 'string':\n return JSON.stringify(value);\n\n case 'function':\n return value.name ? \"[function \".concat(value.name, \"]\") : '[function]';\n\n case 'object':\n if (value === null) {\n return 'null';\n }\n\n return formatObjectValue(value, seenValues);\n\n default:\n return String(value);\n }\n}\n\nfunction formatObjectValue(value, previouslySeenValues) {\n if (previouslySeenValues.indexOf(value) !== -1) {\n return '[Circular]';\n }\n\n var seenValues = [].concat(previouslySeenValues, [value]);\n var customInspectFn = getCustomFn(value);\n\n if (customInspectFn !== undefined) {\n var customValue = customInspectFn.call(value); // check for infinite recursion\n\n if (customValue !== value) {\n return typeof customValue === 'string' ? customValue : formatValue(customValue, seenValues);\n }\n } else if (Array.isArray(value)) {\n return formatArray(value, seenValues);\n }\n\n return formatObject(value, seenValues);\n}\n\nfunction formatObject(object, seenValues) {\n var keys = Object.keys(object);\n\n if (keys.length === 0) {\n return '{}';\n }\n\n if (seenValues.length > MAX_RECURSIVE_DEPTH) {\n return '[' + getObjectTag(object) + ']';\n }\n\n var properties = keys.map(function (key) {\n var value = formatValue(object[key], seenValues);\n return key + ': ' + value;\n });\n return '{ ' + properties.join(', ') + ' }';\n}\n\nfunction formatArray(array, seenValues) {\n if (array.length === 0) {\n return '[]';\n }\n\n if (seenValues.length > MAX_RECURSIVE_DEPTH) {\n return '[Array]';\n }\n\n var len = Math.min(MAX_ARRAY_LENGTH, array.length);\n var remaining = array.length - len;\n var items = [];\n\n for (var i = 0; i < len; ++i) {\n items.push(formatValue(array[i], seenValues));\n }\n\n if (remaining === 1) {\n items.push('... 1 more item');\n } else if (remaining > 1) {\n items.push(\"... \".concat(remaining, \" more items\"));\n }\n\n return '[' + items.join(', ') + ']';\n}\n\nfunction getCustomFn(object) {\n var customInspectFn = object[String(nodejsCustomInspectSymbol)];\n\n if (typeof customInspectFn === 'function') {\n return customInspectFn;\n }\n\n if (typeof object.inspect === 'function') {\n return object.inspect;\n }\n}\n\nfunction getObjectTag(object) {\n var tag = Object.prototype.toString.call(object).replace(/^\\[object /, '').replace(/]$/, '');\n\n if (tag === 'Object' && typeof object.constructor === 'function') {\n var name = object.constructor.name;\n\n if (typeof name === 'string' && name !== '') {\n return name;\n }\n }\n\n return tag;\n}","import { maybe } from \"./maybe.js\";\nexport default maybe(function () {\n return globalThis;\n}) || maybe(function () {\n return window;\n}) || maybe(function () {\n return self;\n}) || maybe(function () {\n return global;\n}) || maybe(function () {\n return maybe.constructor(\"return this\")();\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 * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\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 */\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}","// istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2317')\nvar nodejsCustomInspectSymbol = typeof Symbol === 'function' && typeof Symbol.for === 'function' ? Symbol.for('nodejs.util.inspect.custom') : undefined;\nexport default nodejsCustomInspectSymbol;","import { maybe } from \"../globals/index.js\";\nexport var canUseWeakMap = typeof WeakMap === 'function' && maybe(function () {\n return navigator.product;\n}) !== 'ReactNative';\nexport var canUseWeakSet = typeof WeakSet === 'function';\nexport var canUseSymbol = typeof Symbol === 'function' && typeof Symbol.for === 'function';\nexport var canUseAsyncIteratorSymbol = canUseSymbol && Symbol.asyncIterator;\nexport var canUseDOM = typeof maybe(function () {\n return window.document.createElement;\n}) === \"function\";\nvar usingJSDOM = maybe(function () {\n return navigator.userAgent.indexOf(\"jsdom\") >= 0;\n}) || false;\nexport var canUseLayoutEffect = canUseDOM && !usingJSDOM;","import { useCallback, useEffect, useState } from 'react'\n\ntype Props = {\n countdownDuration: number\n stopCountdown?: boolean\n}\n\ntype UserInactivity = {\n hasAbandoned: boolean\n resetCountDown: () => void\n}\n\nconst useUserInactivity = ({\n countdownDuration,\n stopCountdown\n}: Props): UserInactivity => {\n const [timeLeft, setTimeLeft] = useState(countdownDuration)\n const [paused, setPaused] = useState(false)\n\n const resetCountDown = useCallback(\n () => setTimeLeft(countdownDuration),\n [countdownDuration]\n )\n\n // Listen for when the user changes tab\n const handleTabChange = useCallback(() => {\n if (document.visibilityState !== 'visible') {\n setTimeLeft(0)\n }\n setPaused(true)\n }, [])\n\n useEffect(() => {\n if (paused || stopCountdown) return\n\n // When mouse movement is detected, reset the timer\n document.addEventListener('mousemove', resetCountDown)\n\n // When the active tab changes, set the timeLeft to 0\n document.addEventListener('visibilitychange', handleTabChange)\n\n // Clean up the event listeners\n return () => {\n document.removeEventListener('mousemove', resetCountDown)\n document.removeEventListener('visibilitychange', handleTabChange)\n }\n }, [handleTabChange, paused, resetCountDown, stopCountdown])\n\n // Countdown the timer from the passed in countdownDuration to 0\n useEffect(() => {\n if (paused || stopCountdown) return\n\n const countdown = setTimeout(() => setTimeLeft(timeLeft - 1), 1000)\n\n // Once the timer reaches 0, we can pause it so it\n // does not count down any further\n if (timeLeft < 1) setPaused(true)\n\n return () => {\n clearTimeout(countdown)\n }\n }, [timeLeft, paused, stopCountdown])\n\n return {\n hasAbandoned: timeLeft < 1,\n resetCountDown\n }\n}\n\nexport default useUserInactivity\n","// @noflow\n// Utils\nimport { addMinutes } from 'date-fns'\nimport Cookies from 'js-cookie'\nimport React, { ReactElement, useCallback, useEffect, useState } from 'react'\nimport { useTranslation } from 'react-i18next'\n\nimport BREAKPOINTS from '@/constants/Breakpoints'\n\nimport useUserInactivity from '@/hooks/useUserInactivity'\nimport useWindowSize from '@/hooks/useWindowSize'\n\nimport DiscountModalForm from './components/DiscountModalForm'\nimport segmentTrack from '@/components/analytics/Analytics'\nimport Image from '@/components/shared/elements/Image'\n\nimport TransitionalModal from '../../TransitionalModal'\n\ntype Props = {\n discountCode: string\n discountCopy: string\n discountPercentage: string\n funnelCompleted: boolean\n shouldSeeBlogDiscountModal: boolean\n}\n\nconst COUNTDOWN_DURATION_IN_SECONDS = 15\nconst namespace = 'shared'\nconst copyContext = 'blog_discount_modal'\n\nconst BlogExitDiscountModal = ({\n discountCode,\n discountCopy,\n discountPercentage,\n funnelCompleted,\n shouldSeeBlogDiscountModal\n}: Props): ReactElement | null => {\n const [discountModalIsMounted, setDiscountModalIsMounted] = useState(false)\n const [discountModalIsOpen, setDiscountModalIsOpen] = useState(false)\n\n const { windowWidth } = useWindowSize()\n const isMobile = windowWidth < BREAKPOINTS.md\n\n const showModal = !Cookies.get('has_closed_blog_discount_modal')\n\n const { t } = useTranslation(namespace)\n\n const { hasAbandoned, resetCountDown } = useUserInactivity({\n countdownDuration: COUNTDOWN_DURATION_IN_SECONDS,\n stopCountdown: !showModal\n })\n\n const closeDiscountModal = useCallback((): void => {\n setDiscountModalIsOpen(false)\n // Unlocks background body-scroll\n document.body.classList.remove('modal--open')\n\n const now = new Date()\n const expiration = addMinutes(now, 30)\n Cookies.set('has_closed_blog_discount_modal', 'true', {\n expires: expiration,\n path: '/'\n })\n\n setTimeout((): void => {\n setDiscountModalIsMounted(false)\n }, 300)\n }, [])\n\n useEffect(() => {\n resetCountDown()\n }, [resetCountDown])\n\n useEffect(() => {\n if (showModal && hasAbandoned) {\n setDiscountModalIsMounted(true)\n\n // Locks background body-scroll\n document.body.classList.add('modal--open')\n\n setTimeout((): void => {\n setDiscountModalIsOpen(true)\n\n const eventName = 'Blog Exit Discount Modal Displayed'\n const properties = {\n screen_identifier: 'Blog',\n component_identifier: 'Blog Exit Discount Modal'\n }\n segmentTrack(eventName, properties)\n }, 1000)\n }\n }, [hasAbandoned, showModal])\n\n if (!showModal || !hasAbandoned || !discountModalIsMounted) return null\n\n return (\n <TransitionalModal\n closeModal={closeDiscountModal}\n extraClasses=\"discount-modal__modal\"\n modalIsOpen={discountModalIsOpen}\n modalSize=\"medium\"\n showCloseButton\n transitionTypes={{ desktop: 'scale', mobile: 'scale' }}\n >\n <div className=\"discount-modal__container\">\n <div className=\"discount-modal__content\">\n <h3 className=\"display-16\">{t(`${copyContext}.before_you_go`)}</h3>\n <h2 className=\"display-28\">\n {t(`${copyContext}.discount`, { discountCopy })}\n </h2>\n <DiscountModalForm\n shouldShowLeadCaptureForm={\n shouldSeeBlogDiscountModal && !funnelCompleted\n }\n discountCode={discountCode}\n discountPercentage={discountPercentage}\n funnelCompleted={funnelCompleted}\n />\n </div>\n <Image\n slug=\"blog-discount-modal-hero-desktop\"\n alt={t(`${copyContext}.image_alt`)}\n image={{ height: isMobile ? 140 : 352, width: isMobile ? 343 : 300 }}\n className=\"discount-modal__image\"\n />\n </div>\n </TransitionalModal>\n )\n}\n\nexport default BlogExitDiscountModal\n","import 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 * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\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 */\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 * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - Now `isValid` doesn't throw an exception\n * if the first argument is not an instance of Date.\n * Instead, argument is converted beforehand using `toDate`.\n *\n * Examples:\n *\n * | `isValid` argument | Before v2.0.0 | v2.0.0 onward |\n * |---------------------------|---------------|---------------|\n * | `new Date()` | `true` | `true` |\n * | `new Date('2016-01-01')` | `true` | `true` |\n * | `new Date('')` | `false` | `false` |\n * | `new Date(1488370835081)` | `true` | `true` |\n * | `new Date(NaN)` | `false` | `false` |\n * | `'2016-01-01'` | `TypeError` | `false` |\n * | `''` | `TypeError` | `false` |\n * | `1488370835081` | `TypeError` | `true` |\n * | `NaN` | `TypeError` | `false` |\n *\n * We introduce this change to make *date-fns* consistent with ECMAScript behavior\n * that try to coerce arguments to the expected type\n * (which is also the case with other *date-fns* functions).\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 */\n\nexport default function isValid(dirtyDate) {\n requiredArgs(1, arguments);\n\n if (!isDate(dirtyDate) && typeof dirtyDate !== 'number') {\n return false;\n }\n\n var date = toDate(dirtyDate);\n return !isNaN(Number(date));\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_MINUTE = 60000;\n/**\n * @name addMinutes\n * @category Minute Helpers\n * @summary Add the specified number of minutes to the given date.\n *\n * @description\n * Add the specified number of minutes to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of minutes 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 minutes added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 30 minutes to 10 July 2014 12:00:00:\n * const result = addMinutes(new Date(2014, 6, 10, 12, 0), 30)\n * //=> Thu Jul 10 2014 12:30:00\n */\n\nexport default function addMinutes(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, amount * MILLISECONDS_IN_MINUTE);\n}","/*! countries-list v2.6.1 by Annexare | MIT */\n!function (n, a) {\n \"object\" == typeof exports && \"undefined\" != typeof module ? module.exports = a() : \"function\" == typeof define && define.amd ? define(\"Countries\", a) : (n = \"undefined\" != typeof globalThis ? globalThis : n || self).Countries = a();\n}(this, function () {\n \"use strict\";\n\n var n = {\n AF: \"Africa\",\n AN: \"Antarctica\",\n AS: \"Asia\",\n EU: \"Europe\",\n NA: \"North America\",\n OC: \"Oceania\",\n SA: \"South America\"\n },\n a = {\n AD: {\n name: \"Andorra\",\n native: \"Andorra\",\n phone: \"376\",\n continent: \"EU\",\n capital: \"Andorra la Vella\",\n currency: \"EUR\",\n languages: [\"ca\"],\n emoji: \"🇦🇩\",\n emojiU: \"U+1F1E6 U+1F1E9\"\n },\n AE: {\n name: \"United Arab Emirates\",\n native: \"دولة الإمارات العربية المتØدة\",\n phone: \"971\",\n continent: \"AS\",\n capital: \"Abu Dhabi\",\n currency: \"AED\",\n languages: [\"ar\"],\n emoji: \"🇦🇪\",\n emojiU: \"U+1F1E6 U+1F1EA\"\n },\n AF: {\n name: \"Afghanistan\",\n native: \"اÙغانستان\",\n phone: \"93\",\n continent: \"AS\",\n capital: \"Kabul\",\n currency: \"AFN\",\n languages: [\"ps\", \"uz\", \"tk\"],\n emoji: \"🇦🇫\",\n emojiU: \"U+1F1E6 U+1F1EB\"\n },\n AG: {\n name: \"Antigua and Barbuda\",\n native: \"Antigua and Barbuda\",\n phone: \"1268\",\n continent: \"NA\",\n capital: \"Saint John's\",\n currency: \"XCD\",\n languages: [\"en\"],\n emoji: \"🇦🇬\",\n emojiU: \"U+1F1E6 U+1F1EC\"\n },\n AI: {\n name: \"Anguilla\",\n native: \"Anguilla\",\n phone: \"1264\",\n continent: \"NA\",\n capital: \"The Valley\",\n currency: \"XCD\",\n languages: [\"en\"],\n emoji: \"🇦🇮\",\n emojiU: \"U+1F1E6 U+1F1EE\"\n },\n AL: {\n name: \"Albania\",\n native: \"Shqipëria\",\n phone: \"355\",\n continent: \"EU\",\n capital: \"Tirana\",\n currency: \"ALL\",\n languages: [\"sq\"],\n emoji: \"🇦🇱\",\n emojiU: \"U+1F1E6 U+1F1F1\"\n },\n AM: {\n name: \"Armenia\",\n native: \"Õ€Õ¡ÕµÕ¡Õ½Õ¿Õ¡Õ¶\",\n phone: \"374\",\n continent: \"AS\",\n capital: \"Yerevan\",\n currency: \"AMD\",\n languages: [\"hy\", \"ru\"],\n emoji: \"🇦🇲\",\n emojiU: \"U+1F1E6 U+1F1F2\"\n },\n AO: {\n name: \"Angola\",\n native: \"Angola\",\n phone: \"244\",\n continent: \"AF\",\n capital: \"Luanda\",\n currency: \"AOA\",\n languages: [\"pt\"],\n emoji: \"🇦🇴\",\n emojiU: \"U+1F1E6 U+1F1F4\"\n },\n AQ: {\n name: \"Antarctica\",\n native: \"Antarctica\",\n phone: \"672\",\n continent: \"AN\",\n capital: \"\",\n currency: \"\",\n languages: [],\n emoji: \"🇦🇶\",\n emojiU: \"U+1F1E6 U+1F1F6\"\n },\n AR: {\n name: \"Argentina\",\n native: \"Argentina\",\n phone: \"54\",\n continent: \"SA\",\n capital: \"Buenos Aires\",\n currency: \"ARS\",\n languages: [\"es\", \"gn\"],\n emoji: \"🇦🇷\",\n emojiU: \"U+1F1E6 U+1F1F7\"\n },\n AS: {\n name: \"American Samoa\",\n native: \"American Samoa\",\n phone: \"1684\",\n continent: \"OC\",\n capital: \"Pago Pago\",\n currency: \"USD\",\n languages: [\"en\", \"sm\"],\n emoji: \"🇦🇸\",\n emojiU: \"U+1F1E6 U+1F1F8\"\n },\n AT: {\n name: \"Austria\",\n native: \"Österreich\",\n phone: \"43\",\n continent: \"EU\",\n capital: \"Vienna\",\n currency: \"EUR\",\n languages: [\"de\"],\n emoji: \"🇦🇹\",\n emojiU: \"U+1F1E6 U+1F1F9\"\n },\n AU: {\n name: \"Australia\",\n native: \"Australia\",\n phone: \"61\",\n continent: \"OC\",\n capital: \"Canberra\",\n currency: \"AUD\",\n languages: [\"en\"],\n emoji: \"🇦🇺\",\n emojiU: \"U+1F1E6 U+1F1FA\"\n },\n AW: {\n name: \"Aruba\",\n native: \"Aruba\",\n phone: \"297\",\n continent: \"NA\",\n capital: \"Oranjestad\",\n currency: \"AWG\",\n languages: [\"nl\", \"pa\"],\n emoji: \"🇦🇼\",\n emojiU: \"U+1F1E6 U+1F1FC\"\n },\n AX: {\n name: \"Ã…land\",\n native: \"Ã…land\",\n phone: \"358\",\n continent: \"EU\",\n capital: \"Mariehamn\",\n currency: \"EUR\",\n languages: [\"sv\"],\n emoji: \"🇦🇽\",\n emojiU: \"U+1F1E6 U+1F1FD\"\n },\n AZ: {\n name: \"Azerbaijan\",\n native: \"AzÉ™rbaycan\",\n phone: \"994\",\n continent: \"AS\",\n capital: \"Baku\",\n currency: \"AZN\",\n languages: [\"az\"],\n emoji: \"🇦🇿\",\n emojiU: \"U+1F1E6 U+1F1FF\"\n },\n BA: {\n name: \"Bosnia and Herzegovina\",\n native: \"Bosna i Hercegovina\",\n phone: \"387\",\n continent: \"EU\",\n capital: \"Sarajevo\",\n currency: \"BAM\",\n languages: [\"bs\", \"hr\", \"sr\"],\n emoji: \"🇧🇦\",\n emojiU: \"U+1F1E7 U+1F1E6\"\n },\n BB: {\n name: \"Barbados\",\n native: \"Barbados\",\n phone: \"1246\",\n continent: \"NA\",\n capital: \"Bridgetown\",\n currency: \"BBD\",\n languages: [\"en\"],\n emoji: \"🇧🇧\",\n emojiU: \"U+1F1E7 U+1F1E7\"\n },\n BD: {\n name: \"Bangladesh\",\n native: \"Bangladesh\",\n phone: \"880\",\n continent: \"AS\",\n capital: \"Dhaka\",\n currency: \"BDT\",\n languages: [\"bn\"],\n emoji: \"🇧🇩\",\n emojiU: \"U+1F1E7 U+1F1E9\"\n },\n BE: {\n name: \"Belgium\",\n native: \"België\",\n phone: \"32\",\n continent: \"EU\",\n capital: \"Brussels\",\n currency: \"EUR\",\n languages: [\"nl\", \"fr\", \"de\"],\n emoji: \"🇧🇪\",\n emojiU: \"U+1F1E7 U+1F1EA\"\n },\n BF: {\n name: \"Burkina Faso\",\n native: \"Burkina Faso\",\n phone: \"226\",\n continent: \"AF\",\n capital: \"Ouagadougou\",\n currency: \"XOF\",\n languages: [\"fr\", \"ff\"],\n emoji: \"🇧🇫\",\n emojiU: \"U+1F1E7 U+1F1EB\"\n },\n BG: {\n name: \"Bulgaria\",\n native: \"БългариÑ\",\n phone: \"359\",\n continent: \"EU\",\n capital: \"Sofia\",\n currency: \"BGN\",\n languages: [\"bg\"],\n emoji: \"🇧🇬\",\n emojiU: \"U+1F1E7 U+1F1EC\"\n },\n BH: {\n name: \"Bahrain\",\n native: \"â€Ø§Ù„بØرين\",\n phone: \"973\",\n continent: \"AS\",\n capital: \"Manama\",\n currency: \"BHD\",\n languages: [\"ar\"],\n emoji: \"🇧ðŸ‡\",\n emojiU: \"U+1F1E7 U+1F1ED\"\n },\n BI: {\n name: \"Burundi\",\n native: \"Burundi\",\n phone: \"257\",\n continent: \"AF\",\n capital: \"Bujumbura\",\n currency: \"BIF\",\n languages: [\"fr\", \"rn\"],\n emoji: \"🇧🇮\",\n emojiU: \"U+1F1E7 U+1F1EE\"\n },\n BJ: {\n name: \"Benin\",\n native: \"Bénin\",\n phone: \"229\",\n continent: \"AF\",\n capital: \"Porto-Novo\",\n currency: \"XOF\",\n languages: [\"fr\"],\n emoji: \"🇧🇯\",\n emojiU: \"U+1F1E7 U+1F1EF\"\n },\n BL: {\n name: \"Saint Barthélemy\",\n native: \"Saint-Barthélemy\",\n phone: \"590\",\n continent: \"NA\",\n capital: \"Gustavia\",\n currency: \"EUR\",\n languages: [\"fr\"],\n emoji: \"🇧🇱\",\n emojiU: \"U+1F1E7 U+1F1F1\"\n },\n BM: {\n name: \"Bermuda\",\n native: \"Bermuda\",\n phone: \"1441\",\n continent: \"NA\",\n capital: \"Hamilton\",\n currency: \"BMD\",\n languages: [\"en\"],\n emoji: \"🇧🇲\",\n emojiU: \"U+1F1E7 U+1F1F2\"\n },\n BN: {\n name: \"Brunei\",\n native: \"Negara Brunei Darussalam\",\n phone: \"673\",\n continent: \"AS\",\n capital: \"Bandar Seri Begawan\",\n currency: \"BND\",\n languages: [\"ms\"],\n emoji: \"🇧🇳\",\n emojiU: \"U+1F1E7 U+1F1F3\"\n },\n BO: {\n name: \"Bolivia\",\n native: \"Bolivia\",\n phone: \"591\",\n continent: \"SA\",\n capital: \"Sucre\",\n currency: \"BOB,BOV\",\n languages: [\"es\", \"ay\", \"qu\"],\n emoji: \"🇧🇴\",\n emojiU: \"U+1F1E7 U+1F1F4\"\n },\n BQ: {\n name: \"Bonaire\",\n native: \"Bonaire\",\n phone: \"5997\",\n continent: \"NA\",\n capital: \"Kralendijk\",\n currency: \"USD\",\n languages: [\"nl\"],\n emoji: \"🇧🇶\",\n emojiU: \"U+1F1E7 U+1F1F6\"\n },\n BR: {\n name: \"Brazil\",\n native: \"Brasil\",\n phone: \"55\",\n continent: \"SA\",\n capital: \"BrasÃlia\",\n currency: \"BRL\",\n languages: [\"pt\"],\n emoji: \"🇧🇷\",\n emojiU: \"U+1F1E7 U+1F1F7\"\n },\n BS: {\n name: \"Bahamas\",\n native: \"Bahamas\",\n phone: \"1242\",\n continent: \"NA\",\n capital: \"Nassau\",\n currency: \"BSD\",\n languages: [\"en\"],\n emoji: \"🇧🇸\",\n emojiU: \"U+1F1E7 U+1F1F8\"\n },\n BT: {\n name: \"Bhutan\",\n native: \"ʼbrug-yul\",\n phone: \"975\",\n continent: \"AS\",\n capital: \"Thimphu\",\n currency: \"BTN,INR\",\n languages: [\"dz\"],\n emoji: \"🇧🇹\",\n emojiU: \"U+1F1E7 U+1F1F9\"\n },\n BV: {\n name: \"Bouvet Island\",\n native: \"Bouvetøya\",\n phone: \"47\",\n continent: \"AN\",\n capital: \"\",\n currency: \"NOK\",\n languages: [\"no\", \"nb\", \"nn\"],\n emoji: \"🇧🇻\",\n emojiU: \"U+1F1E7 U+1F1FB\"\n },\n BW: {\n name: \"Botswana\",\n native: \"Botswana\",\n phone: \"267\",\n continent: \"AF\",\n capital: \"Gaborone\",\n currency: \"BWP\",\n languages: [\"en\", \"tn\"],\n emoji: \"🇧🇼\",\n emojiU: \"U+1F1E7 U+1F1FC\"\n },\n BY: {\n name: \"Belarus\",\n native: \"БеларуÌÑÑŒ\",\n phone: \"375\",\n continent: \"EU\",\n capital: \"Minsk\",\n currency: \"BYN\",\n languages: [\"be\", \"ru\"],\n emoji: \"🇧🇾\",\n emojiU: \"U+1F1E7 U+1F1FE\"\n },\n BZ: {\n name: \"Belize\",\n native: \"Belize\",\n phone: \"501\",\n continent: \"NA\",\n capital: \"Belmopan\",\n currency: \"BZD\",\n languages: [\"en\", \"es\"],\n emoji: \"🇧🇿\",\n emojiU: \"U+1F1E7 U+1F1FF\"\n },\n CA: {\n name: \"Canada\",\n native: \"Canada\",\n phone: \"1\",\n continent: \"NA\",\n capital: \"Ottawa\",\n currency: \"CAD\",\n languages: [\"en\", \"fr\"],\n emoji: \"🇨🇦\",\n emojiU: \"U+1F1E8 U+1F1E6\"\n },\n CC: {\n name: \"Cocos [Keeling] Islands\",\n native: \"Cocos (Keeling) Islands\",\n phone: \"61\",\n continent: \"AS\",\n capital: \"West Island\",\n currency: \"AUD\",\n languages: [\"en\"],\n emoji: \"🇨🇨\",\n emojiU: \"U+1F1E8 U+1F1E8\"\n },\n CD: {\n name: \"Democratic Republic of the Congo\",\n native: \"République démocratique du Congo\",\n phone: \"243\",\n continent: \"AF\",\n capital: \"Kinshasa\",\n currency: \"CDF\",\n languages: [\"fr\", \"ln\", \"kg\", \"sw\", \"lu\"],\n emoji: \"🇨🇩\",\n emojiU: \"U+1F1E8 U+1F1E9\"\n },\n CF: {\n name: \"Central African Republic\",\n native: \"Ködörösêse tî Bêafrîka\",\n phone: \"236\",\n continent: \"AF\",\n capital: \"Bangui\",\n currency: \"XAF\",\n languages: [\"fr\", \"sg\"],\n emoji: \"🇨🇫\",\n emojiU: \"U+1F1E8 U+1F1EB\"\n },\n CG: {\n name: \"Republic of the Congo\",\n native: \"République du Congo\",\n phone: \"242\",\n continent: \"AF\",\n capital: \"Brazzaville\",\n currency: \"XAF\",\n languages: [\"fr\", \"ln\"],\n emoji: \"🇨🇬\",\n emojiU: \"U+1F1E8 U+1F1EC\"\n },\n CH: {\n name: \"Switzerland\",\n native: \"Schweiz\",\n phone: \"41\",\n continent: \"EU\",\n capital: \"Bern\",\n currency: \"CHE,CHF,CHW\",\n languages: [\"de\", \"fr\", \"it\"],\n emoji: \"🇨ðŸ‡\",\n emojiU: \"U+1F1E8 U+1F1ED\"\n },\n CI: {\n name: \"Ivory Coast\",\n native: \"Côte d'Ivoire\",\n phone: \"225\",\n continent: \"AF\",\n capital: \"Yamoussoukro\",\n currency: \"XOF\",\n languages: [\"fr\"],\n emoji: \"🇨🇮\",\n emojiU: \"U+1F1E8 U+1F1EE\"\n },\n CK: {\n name: \"Cook Islands\",\n native: \"Cook Islands\",\n phone: \"682\",\n continent: \"OC\",\n capital: \"Avarua\",\n currency: \"NZD\",\n languages: [\"en\"],\n emoji: \"🇨🇰\",\n emojiU: \"U+1F1E8 U+1F1F0\"\n },\n CL: {\n name: \"Chile\",\n native: \"Chile\",\n phone: \"56\",\n continent: \"SA\",\n capital: \"Santiago\",\n currency: \"CLF,CLP\",\n languages: [\"es\"],\n emoji: \"🇨🇱\",\n emojiU: \"U+1F1E8 U+1F1F1\"\n },\n CM: {\n name: \"Cameroon\",\n native: \"Cameroon\",\n phone: \"237\",\n continent: \"AF\",\n capital: \"Yaoundé\",\n currency: \"XAF\",\n languages: [\"en\", \"fr\"],\n emoji: \"🇨🇲\",\n emojiU: \"U+1F1E8 U+1F1F2\"\n },\n CN: {\n name: \"China\",\n native: \"ä¸å›½\",\n phone: \"86\",\n continent: \"AS\",\n capital: \"Beijing\",\n currency: \"CNY\",\n languages: [\"zh\"],\n emoji: \"🇨🇳\",\n emojiU: \"U+1F1E8 U+1F1F3\"\n },\n CO: {\n name: \"Colombia\",\n native: \"Colombia\",\n phone: \"57\",\n continent: \"SA\",\n capital: \"Bogotá\",\n currency: \"COP\",\n languages: [\"es\"],\n emoji: \"🇨🇴\",\n emojiU: \"U+1F1E8 U+1F1F4\"\n },\n CR: {\n name: \"Costa Rica\",\n native: \"Costa Rica\",\n phone: \"506\",\n continent: \"NA\",\n capital: \"San José\",\n currency: \"CRC\",\n languages: [\"es\"],\n emoji: \"🇨🇷\",\n emojiU: \"U+1F1E8 U+1F1F7\"\n },\n CU: {\n name: \"Cuba\",\n native: \"Cuba\",\n phone: \"53\",\n continent: \"NA\",\n capital: \"Havana\",\n currency: \"CUC,CUP\",\n languages: [\"es\"],\n emoji: \"🇨🇺\",\n emojiU: \"U+1F1E8 U+1F1FA\"\n },\n CV: {\n name: \"Cape Verde\",\n native: \"Cabo Verde\",\n phone: \"238\",\n continent: \"AF\",\n capital: \"Praia\",\n currency: \"CVE\",\n languages: [\"pt\"],\n emoji: \"🇨🇻\",\n emojiU: \"U+1F1E8 U+1F1FB\"\n },\n CW: {\n name: \"Curacao\",\n native: \"Curaçao\",\n phone: \"5999\",\n continent: \"NA\",\n capital: \"Willemstad\",\n currency: \"ANG\",\n languages: [\"nl\", \"pa\", \"en\"],\n emoji: \"🇨🇼\",\n emojiU: \"U+1F1E8 U+1F1FC\"\n },\n CX: {\n name: \"Christmas Island\",\n native: \"Christmas Island\",\n phone: \"61\",\n continent: \"AS\",\n capital: \"Flying Fish Cove\",\n currency: \"AUD\",\n languages: [\"en\"],\n emoji: \"🇨🇽\",\n emojiU: \"U+1F1E8 U+1F1FD\"\n },\n CY: {\n name: \"Cyprus\",\n native: \"ΚÏÏ€Ïος\",\n phone: \"357\",\n continent: \"EU\",\n capital: \"Nicosia\",\n currency: \"EUR\",\n languages: [\"el\", \"tr\", \"hy\"],\n emoji: \"🇨🇾\",\n emojiU: \"U+1F1E8 U+1F1FE\"\n },\n CZ: {\n name: \"Czech Republic\",\n native: \"ÄŒeská republika\",\n phone: \"420\",\n continent: \"EU\",\n capital: \"Prague\",\n currency: \"CZK\",\n languages: [\"cs\", \"sk\"],\n emoji: \"🇨🇿\",\n emojiU: \"U+1F1E8 U+1F1FF\"\n },\n DE: {\n name: \"Germany\",\n native: \"Deutschland\",\n phone: \"49\",\n continent: \"EU\",\n capital: \"Berlin\",\n currency: \"EUR\",\n languages: [\"de\"],\n emoji: \"🇩🇪\",\n emojiU: \"U+1F1E9 U+1F1EA\"\n },\n DJ: {\n name: \"Djibouti\",\n native: \"Djibouti\",\n phone: \"253\",\n continent: \"AF\",\n capital: \"Djibouti\",\n currency: \"DJF\",\n languages: [\"fr\", \"ar\"],\n emoji: \"🇩🇯\",\n emojiU: \"U+1F1E9 U+1F1EF\"\n },\n DK: {\n name: \"Denmark\",\n native: \"Danmark\",\n phone: \"45\",\n continent: \"EU\",\n capital: \"Copenhagen\",\n currency: \"DKK\",\n languages: [\"da\"],\n emoji: \"🇩🇰\",\n emojiU: \"U+1F1E9 U+1F1F0\"\n },\n DM: {\n name: \"Dominica\",\n native: \"Dominica\",\n phone: \"1767\",\n continent: \"NA\",\n capital: \"Roseau\",\n currency: \"XCD\",\n languages: [\"en\"],\n emoji: \"🇩🇲\",\n emojiU: \"U+1F1E9 U+1F1F2\"\n },\n DO: {\n name: \"Dominican Republic\",\n native: \"República Dominicana\",\n phone: \"1809,1829,1849\",\n continent: \"NA\",\n capital: \"Santo Domingo\",\n currency: \"DOP\",\n languages: [\"es\"],\n emoji: \"🇩🇴\",\n emojiU: \"U+1F1E9 U+1F1F4\"\n },\n DZ: {\n name: \"Algeria\",\n native: \"الجزائر\",\n phone: \"213\",\n continent: \"AF\",\n capital: \"Algiers\",\n currency: \"DZD\",\n languages: [\"ar\"],\n emoji: \"🇩🇿\",\n emojiU: \"U+1F1E9 U+1F1FF\"\n },\n EC: {\n name: \"Ecuador\",\n native: \"Ecuador\",\n phone: \"593\",\n continent: \"SA\",\n capital: \"Quito\",\n currency: \"USD\",\n languages: [\"es\"],\n emoji: \"🇪🇨\",\n emojiU: \"U+1F1EA U+1F1E8\"\n },\n EE: {\n name: \"Estonia\",\n native: \"Eesti\",\n phone: \"372\",\n continent: \"EU\",\n capital: \"Tallinn\",\n currency: \"EUR\",\n languages: [\"et\"],\n emoji: \"🇪🇪\",\n emojiU: \"U+1F1EA U+1F1EA\"\n },\n EG: {\n name: \"Egypt\",\n native: \"مصر‎\",\n phone: \"20\",\n continent: \"AF\",\n capital: \"Cairo\",\n currency: \"EGP\",\n languages: [\"ar\"],\n emoji: \"🇪🇬\",\n emojiU: \"U+1F1EA U+1F1EC\"\n },\n EH: {\n name: \"Western Sahara\",\n native: \"الصØراء الغربية\",\n phone: \"212\",\n continent: \"AF\",\n capital: \"El Aaiún\",\n currency: \"MAD,DZD,MRU\",\n languages: [\"es\"],\n emoji: \"🇪ðŸ‡\",\n emojiU: \"U+1F1EA U+1F1ED\"\n },\n ER: {\n name: \"Eritrea\",\n native: \"ኤáˆá‰µáˆ«\",\n phone: \"291\",\n continent: \"AF\",\n capital: \"Asmara\",\n currency: \"ERN\",\n languages: [\"ti\", \"ar\", \"en\"],\n emoji: \"🇪🇷\",\n emojiU: \"U+1F1EA U+1F1F7\"\n },\n ES: {\n name: \"Spain\",\n native: \"España\",\n phone: \"34\",\n continent: \"EU\",\n capital: \"Madrid\",\n currency: \"EUR\",\n languages: [\"es\", \"eu\", \"ca\", \"gl\", \"oc\"],\n emoji: \"🇪🇸\",\n emojiU: \"U+1F1EA U+1F1F8\"\n },\n ET: {\n name: \"Ethiopia\",\n native: \"ኢትዮጵያ\",\n phone: \"251\",\n continent: \"AF\",\n capital: \"Addis Ababa\",\n currency: \"ETB\",\n languages: [\"am\"],\n emoji: \"🇪🇹\",\n emojiU: \"U+1F1EA U+1F1F9\"\n },\n FI: {\n name: \"Finland\",\n native: \"Suomi\",\n phone: \"358\",\n continent: \"EU\",\n capital: \"Helsinki\",\n currency: \"EUR\",\n languages: [\"fi\", \"sv\"],\n emoji: \"🇫🇮\",\n emojiU: \"U+1F1EB U+1F1EE\"\n },\n FJ: {\n name: \"Fiji\",\n native: \"Fiji\",\n phone: \"679\",\n continent: \"OC\",\n capital: \"Suva\",\n currency: \"FJD\",\n languages: [\"en\", \"fj\", \"hi\", \"ur\"],\n emoji: \"🇫🇯\",\n emojiU: \"U+1F1EB U+1F1EF\"\n },\n FK: {\n name: \"Falkland Islands\",\n native: \"Falkland Islands\",\n phone: \"500\",\n continent: \"SA\",\n capital: \"Stanley\",\n currency: \"FKP\",\n languages: [\"en\"],\n emoji: \"🇫🇰\",\n emojiU: \"U+1F1EB U+1F1F0\"\n },\n FM: {\n name: \"Micronesia\",\n native: \"Micronesia\",\n phone: \"691\",\n continent: \"OC\",\n capital: \"Palikir\",\n currency: \"USD\",\n languages: [\"en\"],\n emoji: \"🇫🇲\",\n emojiU: \"U+1F1EB U+1F1F2\"\n },\n FO: {\n name: \"Faroe Islands\",\n native: \"Føroyar\",\n phone: \"298\",\n continent: \"EU\",\n capital: \"Tórshavn\",\n currency: \"DKK\",\n languages: [\"fo\"],\n emoji: \"🇫🇴\",\n emojiU: \"U+1F1EB U+1F1F4\"\n },\n FR: {\n name: \"France\",\n native: \"France\",\n phone: \"33\",\n continent: \"EU\",\n capital: \"Paris\",\n currency: \"EUR\",\n languages: [\"fr\"],\n emoji: \"🇫🇷\",\n emojiU: \"U+1F1EB U+1F1F7\"\n },\n GA: {\n name: \"Gabon\",\n native: \"Gabon\",\n phone: \"241\",\n continent: \"AF\",\n capital: \"Libreville\",\n currency: \"XAF\",\n languages: [\"fr\"],\n emoji: \"🇬🇦\",\n emojiU: \"U+1F1EC U+1F1E6\"\n },\n GB: {\n name: \"United Kingdom\",\n native: \"United Kingdom\",\n phone: \"44\",\n continent: \"EU\",\n capital: \"London\",\n currency: \"GBP\",\n languages: [\"en\"],\n emoji: \"🇬🇧\",\n emojiU: \"U+1F1EC U+1F1E7\"\n },\n GD: {\n name: \"Grenada\",\n native: \"Grenada\",\n phone: \"1473\",\n continent: \"NA\",\n capital: \"St. George's\",\n currency: \"XCD\",\n languages: [\"en\"],\n emoji: \"🇬🇩\",\n emojiU: \"U+1F1EC U+1F1E9\"\n },\n GE: {\n name: \"Georgia\",\n native: \"სáƒáƒ¥áƒáƒ თველáƒ\",\n phone: \"995\",\n continent: \"AS\",\n capital: \"Tbilisi\",\n currency: \"GEL\",\n languages: [\"ka\"],\n emoji: \"🇬🇪\",\n emojiU: \"U+1F1EC U+1F1EA\"\n },\n GF: {\n name: \"French Guiana\",\n native: \"Guyane française\",\n phone: \"594\",\n continent: \"SA\",\n capital: \"Cayenne\",\n currency: \"EUR\",\n languages: [\"fr\"],\n emoji: \"🇬🇫\",\n emojiU: \"U+1F1EC U+1F1EB\"\n },\n GG: {\n name: \"Guernsey\",\n native: \"Guernsey\",\n phone: \"44\",\n continent: \"EU\",\n capital: \"St. Peter Port\",\n currency: \"GBP\",\n languages: [\"en\", \"fr\"],\n emoji: \"🇬🇬\",\n emojiU: \"U+1F1EC U+1F1EC\"\n },\n GH: {\n name: \"Ghana\",\n native: \"Ghana\",\n phone: \"233\",\n continent: \"AF\",\n capital: \"Accra\",\n currency: \"GHS\",\n languages: [\"en\"],\n emoji: \"🇬ðŸ‡\",\n emojiU: \"U+1F1EC U+1F1ED\"\n },\n GI: {\n name: \"Gibraltar\",\n native: \"Gibraltar\",\n phone: \"350\",\n continent: \"EU\",\n capital: \"Gibraltar\",\n currency: \"GIP\",\n languages: [\"en\"],\n emoji: \"🇬🇮\",\n emojiU: \"U+1F1EC U+1F1EE\"\n },\n GL: {\n name: \"Greenland\",\n native: \"Kalaallit Nunaat\",\n phone: \"299\",\n continent: \"NA\",\n capital: \"Nuuk\",\n currency: \"DKK\",\n languages: [\"kl\"],\n emoji: \"🇬🇱\",\n emojiU: \"U+1F1EC U+1F1F1\"\n },\n GM: {\n name: \"Gambia\",\n native: \"Gambia\",\n phone: \"220\",\n continent: \"AF\",\n capital: \"Banjul\",\n currency: \"GMD\",\n languages: [\"en\"],\n emoji: \"🇬🇲\",\n emojiU: \"U+1F1EC U+1F1F2\"\n },\n GN: {\n name: \"Guinea\",\n native: \"Guinée\",\n phone: \"224\",\n continent: \"AF\",\n capital: \"Conakry\",\n currency: \"GNF\",\n languages: [\"fr\", \"ff\"],\n emoji: \"🇬🇳\",\n emojiU: \"U+1F1EC U+1F1F3\"\n },\n GP: {\n name: \"Guadeloupe\",\n native: \"Guadeloupe\",\n phone: \"590\",\n continent: \"NA\",\n capital: \"Basse-Terre\",\n currency: \"EUR\",\n languages: [\"fr\"],\n emoji: \"🇬🇵\",\n emojiU: \"U+1F1EC U+1F1F5\"\n },\n GQ: {\n name: \"Equatorial Guinea\",\n native: \"Guinea Ecuatorial\",\n phone: \"240\",\n continent: \"AF\",\n capital: \"Malabo\",\n currency: \"XAF\",\n languages: [\"es\", \"fr\"],\n emoji: \"🇬🇶\",\n emojiU: \"U+1F1EC U+1F1F6\"\n },\n GR: {\n name: \"Greece\",\n native: \"Ελλάδα\",\n phone: \"30\",\n continent: \"EU\",\n capital: \"Athens\",\n currency: \"EUR\",\n languages: [\"el\"],\n emoji: \"🇬🇷\",\n emojiU: \"U+1F1EC U+1F1F7\"\n },\n GS: {\n name: \"South Georgia and the South Sandwich Islands\",\n native: \"South Georgia\",\n phone: \"500\",\n continent: \"AN\",\n capital: \"King Edward Point\",\n currency: \"GBP\",\n languages: [\"en\"],\n emoji: \"🇬🇸\",\n emojiU: \"U+1F1EC U+1F1F8\"\n },\n GT: {\n name: \"Guatemala\",\n native: \"Guatemala\",\n phone: \"502\",\n continent: \"NA\",\n capital: \"Guatemala City\",\n currency: \"GTQ\",\n languages: [\"es\"],\n emoji: \"🇬🇹\",\n emojiU: \"U+1F1EC U+1F1F9\"\n },\n GU: {\n name: \"Guam\",\n native: \"Guam\",\n phone: \"1671\",\n continent: \"OC\",\n capital: \"HagÃ¥tña\",\n currency: \"USD\",\n languages: [\"en\", \"ch\", \"es\"],\n emoji: \"🇬🇺\",\n emojiU: \"U+1F1EC U+1F1FA\"\n },\n GW: {\n name: \"Guinea-Bissau\",\n native: \"Guiné-Bissau\",\n phone: \"245\",\n continent: \"AF\",\n capital: \"Bissau\",\n currency: \"XOF\",\n languages: [\"pt\"],\n emoji: \"🇬🇼\",\n emojiU: \"U+1F1EC U+1F1FC\"\n },\n GY: {\n name: \"Guyana\",\n native: \"Guyana\",\n phone: \"592\",\n continent: \"SA\",\n capital: \"Georgetown\",\n currency: \"GYD\",\n languages: [\"en\"],\n emoji: \"🇬🇾\",\n emojiU: \"U+1F1EC U+1F1FE\"\n },\n HK: {\n name: \"Hong Kong\",\n native: \"香港\",\n phone: \"852\",\n continent: \"AS\",\n capital: \"City of Victoria\",\n currency: \"HKD\",\n languages: [\"zh\", \"en\"],\n emoji: \"ðŸ‡ðŸ‡°\",\n emojiU: \"U+1F1ED U+1F1F0\"\n },\n HM: {\n name: \"Heard Island and McDonald Islands\",\n native: \"Heard Island and McDonald Islands\",\n phone: \"61\",\n continent: \"AN\",\n capital: \"\",\n currency: \"AUD\",\n languages: [\"en\"],\n emoji: \"ðŸ‡ðŸ‡²\",\n emojiU: \"U+1F1ED U+1F1F2\"\n },\n HN: {\n name: \"Honduras\",\n native: \"Honduras\",\n phone: \"504\",\n continent: \"NA\",\n capital: \"Tegucigalpa\",\n currency: \"HNL\",\n languages: [\"es\"],\n emoji: \"ðŸ‡ðŸ‡³\",\n emojiU: \"U+1F1ED U+1F1F3\"\n },\n HR: {\n name: \"Croatia\",\n native: \"Hrvatska\",\n phone: \"385\",\n continent: \"EU\",\n capital: \"Zagreb\",\n currency: \"HRK\",\n languages: [\"hr\"],\n emoji: \"ðŸ‡ðŸ‡·\",\n emojiU: \"U+1F1ED U+1F1F7\"\n },\n HT: {\n name: \"Haiti\",\n native: \"Haïti\",\n phone: \"509\",\n continent: \"NA\",\n capital: \"Port-au-Prince\",\n currency: \"HTG,USD\",\n languages: [\"fr\", \"ht\"],\n emoji: \"ðŸ‡ðŸ‡¹\",\n emojiU: \"U+1F1ED U+1F1F9\"\n },\n HU: {\n name: \"Hungary\",\n native: \"Magyarország\",\n phone: \"36\",\n continent: \"EU\",\n capital: \"Budapest\",\n currency: \"HUF\",\n languages: [\"hu\"],\n emoji: \"ðŸ‡ðŸ‡º\",\n emojiU: \"U+1F1ED U+1F1FA\"\n },\n ID: {\n name: \"Indonesia\",\n native: \"Indonesia\",\n phone: \"62\",\n continent: \"AS\",\n capital: \"Jakarta\",\n currency: \"IDR\",\n languages: [\"id\"],\n emoji: \"🇮🇩\",\n emojiU: \"U+1F1EE U+1F1E9\"\n },\n IE: {\n name: \"Ireland\",\n native: \"Éire\",\n phone: \"353\",\n continent: \"EU\",\n capital: \"Dublin\",\n currency: \"EUR\",\n languages: [\"ga\", \"en\"],\n emoji: \"🇮🇪\",\n emojiU: \"U+1F1EE U+1F1EA\"\n },\n IL: {\n name: \"Israel\",\n native: \"יִשְׂרָ×ֵל\",\n phone: \"972\",\n continent: \"AS\",\n capital: \"Jerusalem\",\n currency: \"ILS\",\n languages: [\"he\", \"ar\"],\n emoji: \"🇮🇱\",\n emojiU: \"U+1F1EE U+1F1F1\"\n },\n IM: {\n name: \"Isle of Man\",\n native: \"Isle of Man\",\n phone: \"44\",\n continent: \"EU\",\n capital: \"Douglas\",\n currency: \"GBP\",\n languages: [\"en\", \"gv\"],\n emoji: \"🇮🇲\",\n emojiU: \"U+1F1EE U+1F1F2\"\n },\n IN: {\n name: \"India\",\n native: \"à¤à¤¾à¤°à¤¤\",\n phone: \"91\",\n continent: \"AS\",\n capital: \"New Delhi\",\n currency: \"INR\",\n languages: [\"hi\", \"en\"],\n emoji: \"🇮🇳\",\n emojiU: \"U+1F1EE U+1F1F3\"\n },\n IO: {\n name: \"British Indian Ocean Territory\",\n native: \"British Indian Ocean Territory\",\n phone: \"246\",\n continent: \"AS\",\n capital: \"Diego Garcia\",\n currency: \"USD\",\n languages: [\"en\"],\n emoji: \"🇮🇴\",\n emojiU: \"U+1F1EE U+1F1F4\"\n },\n IQ: {\n name: \"Iraq\",\n native: \"العراق\",\n phone: \"964\",\n continent: \"AS\",\n capital: \"Baghdad\",\n currency: \"IQD\",\n languages: [\"ar\", \"ku\"],\n emoji: \"🇮🇶\",\n emojiU: \"U+1F1EE U+1F1F6\"\n },\n IR: {\n name: \"Iran\",\n native: \"ایران\",\n phone: \"98\",\n continent: \"AS\",\n capital: \"Tehran\",\n currency: \"IRR\",\n languages: [\"fa\"],\n emoji: \"🇮🇷\",\n emojiU: \"U+1F1EE U+1F1F7\"\n },\n IS: {\n name: \"Iceland\",\n native: \"Ãsland\",\n phone: \"354\",\n continent: \"EU\",\n capital: \"Reykjavik\",\n currency: \"ISK\",\n languages: [\"is\"],\n emoji: \"🇮🇸\",\n emojiU: \"U+1F1EE U+1F1F8\"\n },\n IT: {\n name: \"Italy\",\n native: \"Italia\",\n phone: \"39\",\n continent: \"EU\",\n capital: \"Rome\",\n currency: \"EUR\",\n languages: [\"it\"],\n emoji: \"🇮🇹\",\n emojiU: \"U+1F1EE U+1F1F9\"\n },\n JE: {\n name: \"Jersey\",\n native: \"Jersey\",\n phone: \"44\",\n continent: \"EU\",\n capital: \"Saint Helier\",\n currency: \"GBP\",\n languages: [\"en\", \"fr\"],\n emoji: \"🇯🇪\",\n emojiU: \"U+1F1EF U+1F1EA\"\n },\n JM: {\n name: \"Jamaica\",\n native: \"Jamaica\",\n phone: \"1876\",\n continent: \"NA\",\n capital: \"Kingston\",\n currency: \"JMD\",\n languages: [\"en\"],\n emoji: \"🇯🇲\",\n emojiU: \"U+1F1EF U+1F1F2\"\n },\n JO: {\n name: \"Jordan\",\n native: \"الأردن\",\n phone: \"962\",\n continent: \"AS\",\n capital: \"Amman\",\n currency: \"JOD\",\n languages: [\"ar\"],\n emoji: \"🇯🇴\",\n emojiU: \"U+1F1EF U+1F1F4\"\n },\n JP: {\n name: \"Japan\",\n native: \"日本\",\n phone: \"81\",\n continent: \"AS\",\n capital: \"Tokyo\",\n currency: \"JPY\",\n languages: [\"ja\"],\n emoji: \"🇯🇵\",\n emojiU: \"U+1F1EF U+1F1F5\"\n },\n KE: {\n name: \"Kenya\",\n native: \"Kenya\",\n phone: \"254\",\n continent: \"AF\",\n capital: \"Nairobi\",\n currency: \"KES\",\n languages: [\"en\", \"sw\"],\n emoji: \"🇰🇪\",\n emojiU: \"U+1F1F0 U+1F1EA\"\n },\n KG: {\n name: \"Kyrgyzstan\",\n native: \"КыргызÑтан\",\n phone: \"996\",\n continent: \"AS\",\n capital: \"Bishkek\",\n currency: \"KGS\",\n languages: [\"ky\", \"ru\"],\n emoji: \"🇰🇬\",\n emojiU: \"U+1F1F0 U+1F1EC\"\n },\n KH: {\n name: \"Cambodia\",\n native: \"KâmpÅchéa\",\n phone: \"855\",\n continent: \"AS\",\n capital: \"Phnom Penh\",\n currency: \"KHR\",\n languages: [\"km\"],\n emoji: \"🇰ðŸ‡\",\n emojiU: \"U+1F1F0 U+1F1ED\"\n },\n KI: {\n name: \"Kiribati\",\n native: \"Kiribati\",\n phone: \"686\",\n continent: \"OC\",\n capital: \"South Tarawa\",\n currency: \"AUD\",\n languages: [\"en\"],\n emoji: \"🇰🇮\",\n emojiU: \"U+1F1F0 U+1F1EE\"\n },\n KM: {\n name: \"Comoros\",\n native: \"Komori\",\n phone: \"269\",\n continent: \"AF\",\n capital: \"Moroni\",\n currency: \"KMF\",\n languages: [\"ar\", \"fr\"],\n emoji: \"🇰🇲\",\n emojiU: \"U+1F1F0 U+1F1F2\"\n },\n KN: {\n name: \"Saint Kitts and Nevis\",\n native: \"Saint Kitts and Nevis\",\n phone: \"1869\",\n continent: \"NA\",\n capital: \"Basseterre\",\n currency: \"XCD\",\n languages: [\"en\"],\n emoji: \"🇰🇳\",\n emojiU: \"U+1F1F0 U+1F1F3\"\n },\n KP: {\n name: \"North Korea\",\n native: \"ë¶í•œ\",\n phone: \"850\",\n continent: \"AS\",\n capital: \"Pyongyang\",\n currency: \"KPW\",\n languages: [\"ko\"],\n emoji: \"🇰🇵\",\n emojiU: \"U+1F1F0 U+1F1F5\"\n },\n KR: {\n name: \"South Korea\",\n native: \"대한민êµ\",\n phone: \"82\",\n continent: \"AS\",\n capital: \"Seoul\",\n currency: \"KRW\",\n languages: [\"ko\"],\n emoji: \"🇰🇷\",\n emojiU: \"U+1F1F0 U+1F1F7\"\n },\n KW: {\n name: \"Kuwait\",\n native: \"الكويت\",\n phone: \"965\",\n continent: \"AS\",\n capital: \"Kuwait City\",\n currency: \"KWD\",\n languages: [\"ar\"],\n emoji: \"🇰🇼\",\n emojiU: \"U+1F1F0 U+1F1FC\"\n },\n KY: {\n name: \"Cayman Islands\",\n native: \"Cayman Islands\",\n phone: \"1345\",\n continent: \"NA\",\n capital: \"George Town\",\n currency: \"KYD\",\n languages: [\"en\"],\n emoji: \"🇰🇾\",\n emojiU: \"U+1F1F0 U+1F1FE\"\n },\n KZ: {\n name: \"Kazakhstan\",\n native: \"ҚазақÑтан\",\n phone: \"76,77\",\n continent: \"AS\",\n capital: \"Astana\",\n currency: \"KZT\",\n languages: [\"kk\", \"ru\"],\n emoji: \"🇰🇿\",\n emojiU: \"U+1F1F0 U+1F1FF\"\n },\n LA: {\n name: \"Laos\",\n native: \"ສປປລາວ\",\n phone: \"856\",\n continent: \"AS\",\n capital: \"Vientiane\",\n currency: \"LAK\",\n languages: [\"lo\"],\n emoji: \"🇱🇦\",\n emojiU: \"U+1F1F1 U+1F1E6\"\n },\n LB: {\n name: \"Lebanon\",\n native: \"لبنان\",\n phone: \"961\",\n continent: \"AS\",\n capital: \"Beirut\",\n currency: \"LBP\",\n languages: [\"ar\", \"fr\"],\n emoji: \"🇱🇧\",\n emojiU: \"U+1F1F1 U+1F1E7\"\n },\n LC: {\n name: \"Saint Lucia\",\n native: \"Saint Lucia\",\n phone: \"1758\",\n continent: \"NA\",\n capital: \"Castries\",\n currency: \"XCD\",\n languages: [\"en\"],\n emoji: \"🇱🇨\",\n emojiU: \"U+1F1F1 U+1F1E8\"\n },\n LI: {\n name: \"Liechtenstein\",\n native: \"Liechtenstein\",\n phone: \"423\",\n continent: \"EU\",\n capital: \"Vaduz\",\n currency: \"CHF\",\n languages: [\"de\"],\n emoji: \"🇱🇮\",\n emojiU: \"U+1F1F1 U+1F1EE\"\n },\n LK: {\n name: \"Sri Lanka\",\n native: \"Å›rÄ« laṃkÄva\",\n phone: \"94\",\n continent: \"AS\",\n capital: \"Colombo\",\n currency: \"LKR\",\n languages: [\"si\", \"ta\"],\n emoji: \"🇱🇰\",\n emojiU: \"U+1F1F1 U+1F1F0\"\n },\n LR: {\n name: \"Liberia\",\n native: \"Liberia\",\n phone: \"231\",\n continent: \"AF\",\n capital: \"Monrovia\",\n currency: \"LRD\",\n languages: [\"en\"],\n emoji: \"🇱🇷\",\n emojiU: \"U+1F1F1 U+1F1F7\"\n },\n LS: {\n name: \"Lesotho\",\n native: \"Lesotho\",\n phone: \"266\",\n continent: \"AF\",\n capital: \"Maseru\",\n currency: \"LSL,ZAR\",\n languages: [\"en\", \"st\"],\n emoji: \"🇱🇸\",\n emojiU: \"U+1F1F1 U+1F1F8\"\n },\n LT: {\n name: \"Lithuania\",\n native: \"Lietuva\",\n phone: \"370\",\n continent: \"EU\",\n capital: \"Vilnius\",\n currency: \"EUR\",\n languages: [\"lt\"],\n emoji: \"🇱🇹\",\n emojiU: \"U+1F1F1 U+1F1F9\"\n },\n LU: {\n name: \"Luxembourg\",\n native: \"Luxembourg\",\n phone: \"352\",\n continent: \"EU\",\n capital: \"Luxembourg\",\n currency: \"EUR\",\n languages: [\"fr\", \"de\", \"lb\"],\n emoji: \"🇱🇺\",\n emojiU: \"U+1F1F1 U+1F1FA\"\n },\n LV: {\n name: \"Latvia\",\n native: \"Latvija\",\n phone: \"371\",\n continent: \"EU\",\n capital: \"Riga\",\n currency: \"EUR\",\n languages: [\"lv\"],\n emoji: \"🇱🇻\",\n emojiU: \"U+1F1F1 U+1F1FB\"\n },\n LY: {\n name: \"Libya\",\n native: \"â€Ù„يبيا\",\n phone: \"218\",\n continent: \"AF\",\n capital: \"Tripoli\",\n currency: \"LYD\",\n languages: [\"ar\"],\n emoji: \"🇱🇾\",\n emojiU: \"U+1F1F1 U+1F1FE\"\n },\n MA: {\n name: \"Morocco\",\n native: \"المغرب\",\n phone: \"212\",\n continent: \"AF\",\n capital: \"Rabat\",\n currency: \"MAD\",\n languages: [\"ar\"],\n emoji: \"🇲🇦\",\n emojiU: \"U+1F1F2 U+1F1E6\"\n },\n MC: {\n name: \"Monaco\",\n native: \"Monaco\",\n phone: \"377\",\n continent: \"EU\",\n capital: \"Monaco\",\n currency: \"EUR\",\n languages: [\"fr\"],\n emoji: \"🇲🇨\",\n emojiU: \"U+1F1F2 U+1F1E8\"\n },\n MD: {\n name: \"Moldova\",\n native: \"Moldova\",\n phone: \"373\",\n continent: \"EU\",\n capital: \"ChiÈ™inău\",\n currency: \"MDL\",\n languages: [\"ro\"],\n emoji: \"🇲🇩\",\n emojiU: \"U+1F1F2 U+1F1E9\"\n },\n ME: {\n name: \"Montenegro\",\n native: \"Црна Гора\",\n phone: \"382\",\n continent: \"EU\",\n capital: \"Podgorica\",\n currency: \"EUR\",\n languages: [\"sr\", \"bs\", \"sq\", \"hr\"],\n emoji: \"🇲🇪\",\n emojiU: \"U+1F1F2 U+1F1EA\"\n },\n MF: {\n name: \"Saint Martin\",\n native: \"Saint-Martin\",\n phone: \"590\",\n continent: \"NA\",\n capital: \"Marigot\",\n currency: \"EUR\",\n languages: [\"en\", \"fr\", \"nl\"],\n emoji: \"🇲🇫\",\n emojiU: \"U+1F1F2 U+1F1EB\"\n },\n MG: {\n name: \"Madagascar\",\n native: \"Madagasikara\",\n phone: \"261\",\n continent: \"AF\",\n capital: \"Antananarivo\",\n currency: \"MGA\",\n languages: [\"fr\", \"mg\"],\n emoji: \"🇲🇬\",\n emojiU: \"U+1F1F2 U+1F1EC\"\n },\n MH: {\n name: \"Marshall Islands\",\n native: \"M̧ajeļ\",\n phone: \"692\",\n continent: \"OC\",\n capital: \"Majuro\",\n currency: \"USD\",\n languages: [\"en\", \"mh\"],\n emoji: \"🇲ðŸ‡\",\n emojiU: \"U+1F1F2 U+1F1ED\"\n },\n MK: {\n name: \"North Macedonia\",\n native: \"Северна Македонија\",\n phone: \"389\",\n continent: \"EU\",\n capital: \"Skopje\",\n currency: \"MKD\",\n languages: [\"mk\"],\n emoji: \"🇲🇰\",\n emojiU: \"U+1F1F2 U+1F1F0\"\n },\n ML: {\n name: \"Mali\",\n native: \"Mali\",\n phone: \"223\",\n continent: \"AF\",\n capital: \"Bamako\",\n currency: \"XOF\",\n languages: [\"fr\"],\n emoji: \"🇲🇱\",\n emojiU: \"U+1F1F2 U+1F1F1\"\n },\n MM: {\n name: \"Myanmar [Burma]\",\n native: \"မြန်မာ\",\n phone: \"95\",\n continent: \"AS\",\n capital: \"Naypyidaw\",\n currency: \"MMK\",\n languages: [\"my\"],\n emoji: \"🇲🇲\",\n emojiU: \"U+1F1F2 U+1F1F2\"\n },\n MN: {\n name: \"Mongolia\",\n native: \"Монгол улÑ\",\n phone: \"976\",\n continent: \"AS\",\n capital: \"Ulan Bator\",\n currency: \"MNT\",\n languages: [\"mn\"],\n emoji: \"🇲🇳\",\n emojiU: \"U+1F1F2 U+1F1F3\"\n },\n MO: {\n name: \"Macao\",\n native: \"澳門\",\n phone: \"853\",\n continent: \"AS\",\n capital: \"\",\n currency: \"MOP\",\n languages: [\"zh\", \"pt\"],\n emoji: \"🇲🇴\",\n emojiU: \"U+1F1F2 U+1F1F4\"\n },\n MP: {\n name: \"Northern Mariana Islands\",\n native: \"Northern Mariana Islands\",\n phone: \"1670\",\n continent: \"OC\",\n capital: \"Saipan\",\n currency: \"USD\",\n languages: [\"en\", \"ch\"],\n emoji: \"🇲🇵\",\n emojiU: \"U+1F1F2 U+1F1F5\"\n },\n MQ: {\n name: \"Martinique\",\n native: \"Martinique\",\n phone: \"596\",\n continent: \"NA\",\n capital: \"Fort-de-France\",\n currency: \"EUR\",\n languages: [\"fr\"],\n emoji: \"🇲🇶\",\n emojiU: \"U+1F1F2 U+1F1F6\"\n },\n MR: {\n name: \"Mauritania\",\n native: \"موريتانيا\",\n phone: \"222\",\n continent: \"AF\",\n capital: \"Nouakchott\",\n currency: \"MRU\",\n languages: [\"ar\"],\n emoji: \"🇲🇷\",\n emojiU: \"U+1F1F2 U+1F1F7\"\n },\n MS: {\n name: \"Montserrat\",\n native: \"Montserrat\",\n phone: \"1664\",\n continent: \"NA\",\n capital: \"Plymouth\",\n currency: \"XCD\",\n languages: [\"en\"],\n emoji: \"🇲🇸\",\n emojiU: \"U+1F1F2 U+1F1F8\"\n },\n MT: {\n name: \"Malta\",\n native: \"Malta\",\n phone: \"356\",\n continent: \"EU\",\n capital: \"Valletta\",\n currency: \"EUR\",\n languages: [\"mt\", \"en\"],\n emoji: \"🇲🇹\",\n emojiU: \"U+1F1F2 U+1F1F9\"\n },\n MU: {\n name: \"Mauritius\",\n native: \"Maurice\",\n phone: \"230\",\n continent: \"AF\",\n capital: \"Port Louis\",\n currency: \"MUR\",\n languages: [\"en\"],\n emoji: \"🇲🇺\",\n emojiU: \"U+1F1F2 U+1F1FA\"\n },\n MV: {\n name: \"Maldives\",\n native: \"Maldives\",\n phone: \"960\",\n continent: \"AS\",\n capital: \"Malé\",\n currency: \"MVR\",\n languages: [\"dv\"],\n emoji: \"🇲🇻\",\n emojiU: \"U+1F1F2 U+1F1FB\"\n },\n MW: {\n name: \"Malawi\",\n native: \"Malawi\",\n phone: \"265\",\n continent: \"AF\",\n capital: \"Lilongwe\",\n currency: \"MWK\",\n languages: [\"en\", \"ny\"],\n emoji: \"🇲🇼\",\n emojiU: \"U+1F1F2 U+1F1FC\"\n },\n MX: {\n name: \"Mexico\",\n native: \"México\",\n phone: \"52\",\n continent: \"NA\",\n capital: \"Mexico City\",\n currency: \"MXN\",\n languages: [\"es\"],\n emoji: \"🇲🇽\",\n emojiU: \"U+1F1F2 U+1F1FD\"\n },\n MY: {\n name: \"Malaysia\",\n native: \"Malaysia\",\n phone: \"60\",\n continent: \"AS\",\n capital: \"Kuala Lumpur\",\n currency: \"MYR\",\n languages: [\"ms\"],\n emoji: \"🇲🇾\",\n emojiU: \"U+1F1F2 U+1F1FE\"\n },\n MZ: {\n name: \"Mozambique\",\n native: \"Moçambique\",\n phone: \"258\",\n continent: \"AF\",\n capital: \"Maputo\",\n currency: \"MZN\",\n languages: [\"pt\"],\n emoji: \"🇲🇿\",\n emojiU: \"U+1F1F2 U+1F1FF\"\n },\n NA: {\n name: \"Namibia\",\n native: \"Namibia\",\n phone: \"264\",\n continent: \"AF\",\n capital: \"Windhoek\",\n currency: \"NAD,ZAR\",\n languages: [\"en\", \"af\"],\n emoji: \"🇳🇦\",\n emojiU: \"U+1F1F3 U+1F1E6\"\n },\n NC: {\n name: \"New Caledonia\",\n native: \"Nouvelle-Calédonie\",\n phone: \"687\",\n continent: \"OC\",\n capital: \"Nouméa\",\n currency: \"XPF\",\n languages: [\"fr\"],\n emoji: \"🇳🇨\",\n emojiU: \"U+1F1F3 U+1F1E8\"\n },\n NE: {\n name: \"Niger\",\n native: \"Niger\",\n phone: \"227\",\n continent: \"AF\",\n capital: \"Niamey\",\n currency: \"XOF\",\n languages: [\"fr\"],\n emoji: \"🇳🇪\",\n emojiU: \"U+1F1F3 U+1F1EA\"\n },\n NF: {\n name: \"Norfolk Island\",\n native: \"Norfolk Island\",\n phone: \"672\",\n continent: \"OC\",\n capital: \"Kingston\",\n currency: \"AUD\",\n languages: [\"en\"],\n emoji: \"🇳🇫\",\n emojiU: \"U+1F1F3 U+1F1EB\"\n },\n NG: {\n name: \"Nigeria\",\n native: \"Nigeria\",\n phone: \"234\",\n continent: \"AF\",\n capital: \"Abuja\",\n currency: \"NGN\",\n languages: [\"en\"],\n emoji: \"🇳🇬\",\n emojiU: \"U+1F1F3 U+1F1EC\"\n },\n NI: {\n name: \"Nicaragua\",\n native: \"Nicaragua\",\n phone: \"505\",\n continent: \"NA\",\n capital: \"Managua\",\n currency: \"NIO\",\n languages: [\"es\"],\n emoji: \"🇳🇮\",\n emojiU: \"U+1F1F3 U+1F1EE\"\n },\n NL: {\n name: \"Netherlands\",\n native: \"Nederland\",\n phone: \"31\",\n continent: \"EU\",\n capital: \"Amsterdam\",\n currency: \"EUR\",\n languages: [\"nl\"],\n emoji: \"🇳🇱\",\n emojiU: \"U+1F1F3 U+1F1F1\"\n },\n NO: {\n name: \"Norway\",\n native: \"Norge\",\n phone: \"47\",\n continent: \"EU\",\n capital: \"Oslo\",\n currency: \"NOK\",\n languages: [\"no\", \"nb\", \"nn\"],\n emoji: \"🇳🇴\",\n emojiU: \"U+1F1F3 U+1F1F4\"\n },\n NP: {\n name: \"Nepal\",\n native: \"नपल\",\n phone: \"977\",\n continent: \"AS\",\n capital: \"Kathmandu\",\n currency: \"NPR\",\n languages: [\"ne\"],\n emoji: \"🇳🇵\",\n emojiU: \"U+1F1F3 U+1F1F5\"\n },\n NR: {\n name: \"Nauru\",\n native: \"Nauru\",\n phone: \"674\",\n continent: \"OC\",\n capital: \"Yaren\",\n currency: \"AUD\",\n languages: [\"en\", \"na\"],\n emoji: \"🇳🇷\",\n emojiU: \"U+1F1F3 U+1F1F7\"\n },\n NU: {\n name: \"Niue\",\n native: \"NiuÄ“\",\n phone: \"683\",\n continent: \"OC\",\n capital: \"Alofi\",\n currency: \"NZD\",\n languages: [\"en\"],\n emoji: \"🇳🇺\",\n emojiU: \"U+1F1F3 U+1F1FA\"\n },\n NZ: {\n name: \"New Zealand\",\n native: \"New Zealand\",\n phone: \"64\",\n continent: \"OC\",\n capital: \"Wellington\",\n currency: \"NZD\",\n languages: [\"en\", \"mi\"],\n emoji: \"🇳🇿\",\n emojiU: \"U+1F1F3 U+1F1FF\"\n },\n OM: {\n name: \"Oman\",\n native: \"عمان\",\n phone: \"968\",\n continent: \"AS\",\n capital: \"Muscat\",\n currency: \"OMR\",\n languages: [\"ar\"],\n emoji: \"🇴🇲\",\n emojiU: \"U+1F1F4 U+1F1F2\"\n },\n PA: {\n name: \"Panama\",\n native: \"Panamá\",\n phone: \"507\",\n continent: \"NA\",\n capital: \"Panama City\",\n currency: \"PAB,USD\",\n languages: [\"es\"],\n emoji: \"🇵🇦\",\n emojiU: \"U+1F1F5 U+1F1E6\"\n },\n PE: {\n name: \"Peru\",\n native: \"Perú\",\n phone: \"51\",\n continent: \"SA\",\n capital: \"Lima\",\n currency: \"PEN\",\n languages: [\"es\"],\n emoji: \"🇵🇪\",\n emojiU: \"U+1F1F5 U+1F1EA\"\n },\n PF: {\n name: \"French Polynesia\",\n native: \"Polynésie française\",\n phone: \"689\",\n continent: \"OC\",\n capital: \"PapeetÄ“\",\n currency: \"XPF\",\n languages: [\"fr\"],\n emoji: \"🇵🇫\",\n emojiU: \"U+1F1F5 U+1F1EB\"\n },\n PG: {\n name: \"Papua New Guinea\",\n native: \"Papua Niugini\",\n phone: \"675\",\n continent: \"OC\",\n capital: \"Port Moresby\",\n currency: \"PGK\",\n languages: [\"en\"],\n emoji: \"🇵🇬\",\n emojiU: \"U+1F1F5 U+1F1EC\"\n },\n PH: {\n name: \"Philippines\",\n native: \"Pilipinas\",\n phone: \"63\",\n continent: \"AS\",\n capital: \"Manila\",\n currency: \"PHP\",\n languages: [\"en\"],\n emoji: \"🇵ðŸ‡\",\n emojiU: \"U+1F1F5 U+1F1ED\"\n },\n PK: {\n name: \"Pakistan\",\n native: \"Pakistan\",\n phone: \"92\",\n continent: \"AS\",\n capital: \"Islamabad\",\n currency: \"PKR\",\n languages: [\"en\", \"ur\"],\n emoji: \"🇵🇰\",\n emojiU: \"U+1F1F5 U+1F1F0\"\n },\n PL: {\n name: \"Poland\",\n native: \"Polska\",\n phone: \"48\",\n continent: \"EU\",\n capital: \"Warsaw\",\n currency: \"PLN\",\n languages: [\"pl\"],\n emoji: \"🇵🇱\",\n emojiU: \"U+1F1F5 U+1F1F1\"\n },\n PM: {\n name: \"Saint Pierre and Miquelon\",\n native: \"Saint-Pierre-et-Miquelon\",\n phone: \"508\",\n continent: \"NA\",\n capital: \"Saint-Pierre\",\n currency: \"EUR\",\n languages: [\"fr\"],\n emoji: \"🇵🇲\",\n emojiU: \"U+1F1F5 U+1F1F2\"\n },\n PN: {\n name: \"Pitcairn Islands\",\n native: \"Pitcairn Islands\",\n phone: \"64\",\n continent: \"OC\",\n capital: \"Adamstown\",\n currency: \"NZD\",\n languages: [\"en\"],\n emoji: \"🇵🇳\",\n emojiU: \"U+1F1F5 U+1F1F3\"\n },\n PR: {\n name: \"Puerto Rico\",\n native: \"Puerto Rico\",\n phone: \"1787,1939\",\n continent: \"NA\",\n capital: \"San Juan\",\n currency: \"USD\",\n languages: [\"es\", \"en\"],\n emoji: \"🇵🇷\",\n emojiU: \"U+1F1F5 U+1F1F7\"\n },\n PS: {\n name: \"Palestine\",\n native: \"Ùلسطين\",\n phone: \"970\",\n continent: \"AS\",\n capital: \"Ramallah\",\n currency: \"ILS\",\n languages: [\"ar\"],\n emoji: \"🇵🇸\",\n emojiU: \"U+1F1F5 U+1F1F8\"\n },\n PT: {\n name: \"Portugal\",\n native: \"Portugal\",\n phone: \"351\",\n continent: \"EU\",\n capital: \"Lisbon\",\n currency: \"EUR\",\n languages: [\"pt\"],\n emoji: \"🇵🇹\",\n emojiU: \"U+1F1F5 U+1F1F9\"\n },\n PW: {\n name: \"Palau\",\n native: \"Palau\",\n phone: \"680\",\n continent: \"OC\",\n capital: \"Ngerulmud\",\n currency: \"USD\",\n languages: [\"en\"],\n emoji: \"🇵🇼\",\n emojiU: \"U+1F1F5 U+1F1FC\"\n },\n PY: {\n name: \"Paraguay\",\n native: \"Paraguay\",\n phone: \"595\",\n continent: \"SA\",\n capital: \"Asunción\",\n currency: \"PYG\",\n languages: [\"es\", \"gn\"],\n emoji: \"🇵🇾\",\n emojiU: \"U+1F1F5 U+1F1FE\"\n },\n QA: {\n name: \"Qatar\",\n native: \"قطر\",\n phone: \"974\",\n continent: \"AS\",\n capital: \"Doha\",\n currency: \"QAR\",\n languages: [\"ar\"],\n emoji: \"🇶🇦\",\n emojiU: \"U+1F1F6 U+1F1E6\"\n },\n RE: {\n name: \"Réunion\",\n native: \"La Réunion\",\n phone: \"262\",\n continent: \"AF\",\n capital: \"Saint-Denis\",\n currency: \"EUR\",\n languages: [\"fr\"],\n emoji: \"🇷🇪\",\n emojiU: \"U+1F1F7 U+1F1EA\"\n },\n RO: {\n name: \"Romania\",\n native: \"România\",\n phone: \"40\",\n continent: \"EU\",\n capital: \"Bucharest\",\n currency: \"RON\",\n languages: [\"ro\"],\n emoji: \"🇷🇴\",\n emojiU: \"U+1F1F7 U+1F1F4\"\n },\n RS: {\n name: \"Serbia\",\n native: \"Србија\",\n phone: \"381\",\n continent: \"EU\",\n capital: \"Belgrade\",\n currency: \"RSD\",\n languages: [\"sr\"],\n emoji: \"🇷🇸\",\n emojiU: \"U+1F1F7 U+1F1F8\"\n },\n RU: {\n name: \"Russia\",\n native: \"РоÑÑиÑ\",\n phone: \"7\",\n continent: \"EU\",\n capital: \"Moscow\",\n currency: \"RUB\",\n languages: [\"ru\"],\n emoji: \"🇷🇺\",\n emojiU: \"U+1F1F7 U+1F1FA\"\n },\n RW: {\n name: \"Rwanda\",\n native: \"Rwanda\",\n phone: \"250\",\n continent: \"AF\",\n capital: \"Kigali\",\n currency: \"RWF\",\n languages: [\"rw\", \"en\", \"fr\"],\n emoji: \"🇷🇼\",\n emojiU: \"U+1F1F7 U+1F1FC\"\n },\n SA: {\n name: \"Saudi Arabia\",\n native: \"العربية السعودية\",\n phone: \"966\",\n continent: \"AS\",\n capital: \"Riyadh\",\n currency: \"SAR\",\n languages: [\"ar\"],\n emoji: \"🇸🇦\",\n emojiU: \"U+1F1F8 U+1F1E6\"\n },\n SB: {\n name: \"Solomon Islands\",\n native: \"Solomon Islands\",\n phone: \"677\",\n continent: \"OC\",\n capital: \"Honiara\",\n currency: \"SBD\",\n languages: [\"en\"],\n emoji: \"🇸🇧\",\n emojiU: \"U+1F1F8 U+1F1E7\"\n },\n SC: {\n name: \"Seychelles\",\n native: \"Seychelles\",\n phone: \"248\",\n continent: \"AF\",\n capital: \"Victoria\",\n currency: \"SCR\",\n languages: [\"fr\", \"en\"],\n emoji: \"🇸🇨\",\n emojiU: \"U+1F1F8 U+1F1E8\"\n },\n SD: {\n name: \"Sudan\",\n native: \"السودان\",\n phone: \"249\",\n continent: \"AF\",\n capital: \"Khartoum\",\n currency: \"SDG\",\n languages: [\"ar\", \"en\"],\n emoji: \"🇸🇩\",\n emojiU: \"U+1F1F8 U+1F1E9\"\n },\n SE: {\n name: \"Sweden\",\n native: \"Sverige\",\n phone: \"46\",\n continent: \"EU\",\n capital: \"Stockholm\",\n currency: \"SEK\",\n languages: [\"sv\"],\n emoji: \"🇸🇪\",\n emojiU: \"U+1F1F8 U+1F1EA\"\n },\n SG: {\n name: \"Singapore\",\n native: \"Singapore\",\n phone: \"65\",\n continent: \"AS\",\n capital: \"Singapore\",\n currency: \"SGD\",\n languages: [\"en\", \"ms\", \"ta\", \"zh\"],\n emoji: \"🇸🇬\",\n emojiU: \"U+1F1F8 U+1F1EC\"\n },\n SH: {\n name: \"Saint Helena\",\n native: \"Saint Helena\",\n phone: \"290\",\n continent: \"AF\",\n capital: \"Jamestown\",\n currency: \"SHP\",\n languages: [\"en\"],\n emoji: \"🇸ðŸ‡\",\n emojiU: \"U+1F1F8 U+1F1ED\"\n },\n SI: {\n name: \"Slovenia\",\n native: \"Slovenija\",\n phone: \"386\",\n continent: \"EU\",\n capital: \"Ljubljana\",\n currency: \"EUR\",\n languages: [\"sl\"],\n emoji: \"🇸🇮\",\n emojiU: \"U+1F1F8 U+1F1EE\"\n },\n SJ: {\n name: \"Svalbard and Jan Mayen\",\n native: \"Svalbard og Jan Mayen\",\n phone: \"4779\",\n continent: \"EU\",\n capital: \"Longyearbyen\",\n currency: \"NOK\",\n languages: [\"no\"],\n emoji: \"🇸🇯\",\n emojiU: \"U+1F1F8 U+1F1EF\"\n },\n SK: {\n name: \"Slovakia\",\n native: \"Slovensko\",\n phone: \"421\",\n continent: \"EU\",\n capital: \"Bratislava\",\n currency: \"EUR\",\n languages: [\"sk\"],\n emoji: \"🇸🇰\",\n emojiU: \"U+1F1F8 U+1F1F0\"\n },\n SL: {\n name: \"Sierra Leone\",\n native: \"Sierra Leone\",\n phone: \"232\",\n continent: \"AF\",\n capital: \"Freetown\",\n currency: \"SLL\",\n languages: [\"en\"],\n emoji: \"🇸🇱\",\n emojiU: \"U+1F1F8 U+1F1F1\"\n },\n SM: {\n name: \"San Marino\",\n native: \"San Marino\",\n phone: \"378\",\n continent: \"EU\",\n capital: \"City of San Marino\",\n currency: \"EUR\",\n languages: [\"it\"],\n emoji: \"🇸🇲\",\n emojiU: \"U+1F1F8 U+1F1F2\"\n },\n SN: {\n name: \"Senegal\",\n native: \"Sénégal\",\n phone: \"221\",\n continent: \"AF\",\n capital: \"Dakar\",\n currency: \"XOF\",\n languages: [\"fr\"],\n emoji: \"🇸🇳\",\n emojiU: \"U+1F1F8 U+1F1F3\"\n },\n SO: {\n name: \"Somalia\",\n native: \"Soomaaliya\",\n phone: \"252\",\n continent: \"AF\",\n capital: \"Mogadishu\",\n currency: \"SOS\",\n languages: [\"so\", \"ar\"],\n emoji: \"🇸🇴\",\n emojiU: \"U+1F1F8 U+1F1F4\"\n },\n SR: {\n name: \"Suriname\",\n native: \"Suriname\",\n phone: \"597\",\n continent: \"SA\",\n capital: \"Paramaribo\",\n currency: \"SRD\",\n languages: [\"nl\"],\n emoji: \"🇸🇷\",\n emojiU: \"U+1F1F8 U+1F1F7\"\n },\n SS: {\n name: \"South Sudan\",\n native: \"South Sudan\",\n phone: \"211\",\n continent: \"AF\",\n capital: \"Juba\",\n currency: \"SSP\",\n languages: [\"en\"],\n emoji: \"🇸🇸\",\n emojiU: \"U+1F1F8 U+1F1F8\"\n },\n ST: {\n name: \"São Tomé and PrÃncipe\",\n native: \"São Tomé e PrÃncipe\",\n phone: \"239\",\n continent: \"AF\",\n capital: \"São Tomé\",\n currency: \"STN\",\n languages: [\"pt\"],\n emoji: \"🇸🇹\",\n emojiU: \"U+1F1F8 U+1F1F9\"\n },\n SV: {\n name: \"El Salvador\",\n native: \"El Salvador\",\n phone: \"503\",\n continent: \"NA\",\n capital: \"San Salvador\",\n currency: \"SVC,USD\",\n languages: [\"es\"],\n emoji: \"🇸🇻\",\n emojiU: \"U+1F1F8 U+1F1FB\"\n },\n SX: {\n name: \"Sint Maarten\",\n native: \"Sint Maarten\",\n phone: \"1721\",\n continent: \"NA\",\n capital: \"Philipsburg\",\n currency: \"ANG\",\n languages: [\"nl\", \"en\"],\n emoji: \"🇸🇽\",\n emojiU: \"U+1F1F8 U+1F1FD\"\n },\n SY: {\n name: \"Syria\",\n native: \"سوريا\",\n phone: \"963\",\n continent: \"AS\",\n capital: \"Damascus\",\n currency: \"SYP\",\n languages: [\"ar\"],\n emoji: \"🇸🇾\",\n emojiU: \"U+1F1F8 U+1F1FE\"\n },\n SZ: {\n name: \"Swaziland\",\n native: \"Swaziland\",\n phone: \"268\",\n continent: \"AF\",\n capital: \"Lobamba\",\n currency: \"SZL\",\n languages: [\"en\", \"ss\"],\n emoji: \"🇸🇿\",\n emojiU: \"U+1F1F8 U+1F1FF\"\n },\n TC: {\n name: \"Turks and Caicos Islands\",\n native: \"Turks and Caicos Islands\",\n phone: \"1649\",\n continent: \"NA\",\n capital: \"Cockburn Town\",\n currency: \"USD\",\n languages: [\"en\"],\n emoji: \"🇹🇨\",\n emojiU: \"U+1F1F9 U+1F1E8\"\n },\n TD: {\n name: \"Chad\",\n native: \"Tchad\",\n phone: \"235\",\n continent: \"AF\",\n capital: \"N'Djamena\",\n currency: \"XAF\",\n languages: [\"fr\", \"ar\"],\n emoji: \"🇹🇩\",\n emojiU: \"U+1F1F9 U+1F1E9\"\n },\n TF: {\n name: \"French Southern Territories\",\n native: \"Territoire des Terres australes et antarctiques fr\",\n phone: \"262\",\n continent: \"AN\",\n capital: \"Port-aux-Français\",\n currency: \"EUR\",\n languages: [\"fr\"],\n emoji: \"🇹🇫\",\n emojiU: \"U+1F1F9 U+1F1EB\"\n },\n TG: {\n name: \"Togo\",\n native: \"Togo\",\n phone: \"228\",\n continent: \"AF\",\n capital: \"Lomé\",\n currency: \"XOF\",\n languages: [\"fr\"],\n emoji: \"🇹🇬\",\n emojiU: \"U+1F1F9 U+1F1EC\"\n },\n TH: {\n name: \"Thailand\",\n native: \"ประเทศไทย\",\n phone: \"66\",\n continent: \"AS\",\n capital: \"Bangkok\",\n currency: \"THB\",\n languages: [\"th\"],\n emoji: \"🇹ðŸ‡\",\n emojiU: \"U+1F1F9 U+1F1ED\"\n },\n TJ: {\n name: \"Tajikistan\",\n native: \"ТоҷикиÑтон\",\n phone: \"992\",\n continent: \"AS\",\n capital: \"Dushanbe\",\n currency: \"TJS\",\n languages: [\"tg\", \"ru\"],\n emoji: \"🇹🇯\",\n emojiU: \"U+1F1F9 U+1F1EF\"\n },\n TK: {\n name: \"Tokelau\",\n native: \"Tokelau\",\n phone: \"690\",\n continent: \"OC\",\n capital: \"Fakaofo\",\n currency: \"NZD\",\n languages: [\"en\"],\n emoji: \"🇹🇰\",\n emojiU: \"U+1F1F9 U+1F1F0\"\n },\n TL: {\n name: \"East Timor\",\n native: \"Timor-Leste\",\n phone: \"670\",\n continent: \"OC\",\n capital: \"Dili\",\n currency: \"USD\",\n languages: [\"pt\"],\n emoji: \"🇹🇱\",\n emojiU: \"U+1F1F9 U+1F1F1\"\n },\n TM: {\n name: \"Turkmenistan\",\n native: \"Türkmenistan\",\n phone: \"993\",\n continent: \"AS\",\n capital: \"Ashgabat\",\n currency: \"TMT\",\n languages: [\"tk\", \"ru\"],\n emoji: \"🇹🇲\",\n emojiU: \"U+1F1F9 U+1F1F2\"\n },\n TN: {\n name: \"Tunisia\",\n native: \"تونس\",\n phone: \"216\",\n continent: \"AF\",\n capital: \"Tunis\",\n currency: \"TND\",\n languages: [\"ar\"],\n emoji: \"🇹🇳\",\n emojiU: \"U+1F1F9 U+1F1F3\"\n },\n TO: {\n name: \"Tonga\",\n native: \"Tonga\",\n phone: \"676\",\n continent: \"OC\",\n capital: \"Nuku'alofa\",\n currency: \"TOP\",\n languages: [\"en\", \"to\"],\n emoji: \"🇹🇴\",\n emojiU: \"U+1F1F9 U+1F1F4\"\n },\n TR: {\n name: \"Turkey\",\n native: \"Türkiye\",\n phone: \"90\",\n continent: \"AS\",\n capital: \"Ankara\",\n currency: \"TRY\",\n languages: [\"tr\"],\n emoji: \"🇹🇷\",\n emojiU: \"U+1F1F9 U+1F1F7\"\n },\n TT: {\n name: \"Trinidad and Tobago\",\n native: \"Trinidad and Tobago\",\n phone: \"1868\",\n continent: \"NA\",\n capital: \"Port of Spain\",\n currency: \"TTD\",\n languages: [\"en\"],\n emoji: \"🇹🇹\",\n emojiU: \"U+1F1F9 U+1F1F9\"\n },\n TV: {\n name: \"Tuvalu\",\n native: \"Tuvalu\",\n phone: \"688\",\n continent: \"OC\",\n capital: \"Funafuti\",\n currency: \"AUD\",\n languages: [\"en\"],\n emoji: \"🇹🇻\",\n emojiU: \"U+1F1F9 U+1F1FB\"\n },\n TW: {\n name: \"Taiwan\",\n native: \"臺ç£\",\n phone: \"886\",\n continent: \"AS\",\n capital: \"Taipei\",\n currency: \"TWD\",\n languages: [\"zh\"],\n emoji: \"🇹🇼\",\n emojiU: \"U+1F1F9 U+1F1FC\"\n },\n TZ: {\n name: \"Tanzania\",\n native: \"Tanzania\",\n phone: \"255\",\n continent: \"AF\",\n capital: \"Dodoma\",\n currency: \"TZS\",\n languages: [\"sw\", \"en\"],\n emoji: \"🇹🇿\",\n emojiU: \"U+1F1F9 U+1F1FF\"\n },\n UA: {\n name: \"Ukraine\",\n native: \"Україна\",\n phone: \"380\",\n continent: \"EU\",\n capital: \"Kyiv\",\n currency: \"UAH\",\n languages: [\"uk\"],\n emoji: \"🇺🇦\",\n emojiU: \"U+1F1FA U+1F1E6\"\n },\n UG: {\n name: \"Uganda\",\n native: \"Uganda\",\n phone: \"256\",\n continent: \"AF\",\n capital: \"Kampala\",\n currency: \"UGX\",\n languages: [\"en\", \"sw\"],\n emoji: \"🇺🇬\",\n emojiU: \"U+1F1FA U+1F1EC\"\n },\n UM: {\n name: \"U.S. Minor Outlying Islands\",\n native: \"United States Minor Outlying Islands\",\n phone: \"1\",\n continent: \"OC\",\n capital: \"\",\n currency: \"USD\",\n languages: [\"en\"],\n emoji: \"🇺🇲\",\n emojiU: \"U+1F1FA U+1F1F2\"\n },\n US: {\n name: \"United States\",\n native: \"United States\",\n phone: \"1\",\n continent: \"NA\",\n capital: \"Washington D.C.\",\n currency: \"USD,USN,USS\",\n languages: [\"en\"],\n emoji: \"🇺🇸\",\n emojiU: \"U+1F1FA U+1F1F8\"\n },\n UY: {\n name: \"Uruguay\",\n native: \"Uruguay\",\n phone: \"598\",\n continent: \"SA\",\n capital: \"Montevideo\",\n currency: \"UYI,UYU\",\n languages: [\"es\"],\n emoji: \"🇺🇾\",\n emojiU: \"U+1F1FA U+1F1FE\"\n },\n UZ: {\n name: \"Uzbekistan\",\n native: \"O‘zbekiston\",\n phone: \"998\",\n continent: \"AS\",\n capital: \"Tashkent\",\n currency: \"UZS\",\n languages: [\"uz\", \"ru\"],\n emoji: \"🇺🇿\",\n emojiU: \"U+1F1FA U+1F1FF\"\n },\n VA: {\n name: \"Vatican City\",\n native: \"Vaticano\",\n phone: \"379\",\n continent: \"EU\",\n capital: \"Vatican City\",\n currency: \"EUR\",\n languages: [\"it\", \"la\"],\n emoji: \"🇻🇦\",\n emojiU: \"U+1F1FB U+1F1E6\"\n },\n VC: {\n name: \"Saint Vincent and the Grenadines\",\n native: \"Saint Vincent and the Grenadines\",\n phone: \"1784\",\n continent: \"NA\",\n capital: \"Kingstown\",\n currency: \"XCD\",\n languages: [\"en\"],\n emoji: \"🇻🇨\",\n emojiU: \"U+1F1FB U+1F1E8\"\n },\n VE: {\n name: \"Venezuela\",\n native: \"Venezuela\",\n phone: \"58\",\n continent: \"SA\",\n capital: \"Caracas\",\n currency: \"VES\",\n languages: [\"es\"],\n emoji: \"🇻🇪\",\n emojiU: \"U+1F1FB U+1F1EA\"\n },\n VG: {\n name: \"British Virgin Islands\",\n native: \"British Virgin Islands\",\n phone: \"1284\",\n continent: \"NA\",\n capital: \"Road Town\",\n currency: \"USD\",\n languages: [\"en\"],\n emoji: \"🇻🇬\",\n emojiU: \"U+1F1FB U+1F1EC\"\n },\n VI: {\n name: \"U.S. Virgin Islands\",\n native: \"United States Virgin Islands\",\n phone: \"1340\",\n continent: \"NA\",\n capital: \"Charlotte Amalie\",\n currency: \"USD\",\n languages: [\"en\"],\n emoji: \"🇻🇮\",\n emojiU: \"U+1F1FB U+1F1EE\"\n },\n VN: {\n name: \"Vietnam\",\n native: \"Việt Nam\",\n phone: \"84\",\n continent: \"AS\",\n capital: \"Hanoi\",\n currency: \"VND\",\n languages: [\"vi\"],\n emoji: \"🇻🇳\",\n emojiU: \"U+1F1FB U+1F1F3\"\n },\n VU: {\n name: \"Vanuatu\",\n native: \"Vanuatu\",\n phone: \"678\",\n continent: \"OC\",\n capital: \"Port Vila\",\n currency: \"VUV\",\n languages: [\"bi\", \"en\", \"fr\"],\n emoji: \"🇻🇺\",\n emojiU: \"U+1F1FB U+1F1FA\"\n },\n WF: {\n name: \"Wallis and Futuna\",\n native: \"Wallis et Futuna\",\n phone: \"681\",\n continent: \"OC\",\n capital: \"Mata-Utu\",\n currency: \"XPF\",\n languages: [\"fr\"],\n emoji: \"🇼🇫\",\n emojiU: \"U+1F1FC U+1F1EB\"\n },\n WS: {\n name: \"Samoa\",\n native: \"Samoa\",\n phone: \"685\",\n continent: \"OC\",\n capital: \"Apia\",\n currency: \"WST\",\n languages: [\"sm\", \"en\"],\n emoji: \"🇼🇸\",\n emojiU: \"U+1F1FC U+1F1F8\"\n },\n XK: {\n name: \"Kosovo\",\n native: \"Republika e Kosovës\",\n phone: \"377,381,383,386\",\n continent: \"EU\",\n capital: \"Pristina\",\n currency: \"EUR\",\n languages: [\"sq\", \"sr\"],\n emoji: \"🇽🇰\",\n emojiU: \"U+1F1FD U+1F1F0\"\n },\n YE: {\n name: \"Yemen\",\n native: \"اليَمَن\",\n phone: \"967\",\n continent: \"AS\",\n capital: \"Sana'a\",\n currency: \"YER\",\n languages: [\"ar\"],\n emoji: \"🇾🇪\",\n emojiU: \"U+1F1FE U+1F1EA\"\n },\n YT: {\n name: \"Mayotte\",\n native: \"Mayotte\",\n phone: \"262\",\n continent: \"AF\",\n capital: \"Mamoudzou\",\n currency: \"EUR\",\n languages: [\"fr\"],\n emoji: \"🇾🇹\",\n emojiU: \"U+1F1FE U+1F1F9\"\n },\n ZA: {\n name: \"South Africa\",\n native: \"South Africa\",\n phone: \"27\",\n continent: \"AF\",\n capital: \"Pretoria\",\n currency: \"ZAR\",\n languages: [\"af\", \"en\", \"nr\", \"st\", \"ss\", \"tn\", \"ts\", \"ve\", \"xh\", \"zu\"],\n emoji: \"🇿🇦\",\n emojiU: \"U+1F1FF U+1F1E6\"\n },\n ZM: {\n name: \"Zambia\",\n native: \"Zambia\",\n phone: \"260\",\n continent: \"AF\",\n capital: \"Lusaka\",\n currency: \"ZMW\",\n languages: [\"en\"],\n emoji: \"🇿🇲\",\n emojiU: \"U+1F1FF U+1F1F2\"\n },\n ZW: {\n name: \"Zimbabwe\",\n native: \"Zimbabwe\",\n phone: \"263\",\n continent: \"AF\",\n capital: \"Harare\",\n currency: \"USD,ZAR,BWP,GBP,AUD,CNY,INR,JPY\",\n languages: [\"en\", \"sn\", \"nd\"],\n emoji: \"🇿🇼\",\n emojiU: \"U+1F1FF U+1F1FC\"\n }\n },\n e = {\n af: {\n name: \"Afrikaans\",\n native: \"Afrikaans\"\n },\n am: {\n name: \"Amharic\",\n native: \"አማáˆáŠ›\"\n },\n ar: {\n name: \"Arabic\",\n native: \"العربية\",\n rtl: 1\n },\n ay: {\n name: \"Aymara\",\n native: \"Aymar\"\n },\n az: {\n name: \"Azerbaijani\",\n native: \"AzÉ™rbaycanca / آذربايجان\"\n },\n be: {\n name: \"Belarusian\",\n native: \"БеларуÑкаÑ\"\n },\n bg: {\n name: \"Bulgarian\",\n native: \"БългарÑки\"\n },\n bi: {\n name: \"Bislama\",\n native: \"Bislama\"\n },\n bn: {\n name: \"Bengali\",\n native: \"বাংলা\"\n },\n bs: {\n name: \"Bosnian\",\n native: \"Bosanski\"\n },\n ca: {\n name: \"Catalan\",\n native: \"Català \"\n },\n ch: {\n name: \"Chamorro\",\n native: \"Chamoru\"\n },\n cs: {\n name: \"Czech\",\n native: \"ÄŒeÅ¡tina\"\n },\n da: {\n name: \"Danish\",\n native: \"Dansk\"\n },\n de: {\n name: \"German\",\n native: \"Deutsch\"\n },\n dv: {\n name: \"Divehi\",\n native: \"Þ‹Þ¨ÞˆÞ¬Þ€Þ¨Þ„Þ¦ÞÞ°\",\n rtl: 1\n },\n dz: {\n name: \"Dzongkha\",\n native: \"ཇོང་à½\"\n },\n el: {\n name: \"Greek\",\n native: \"Ελληνικά\"\n },\n en: {\n name: \"English\",\n native: \"English\"\n },\n es: {\n name: \"Spanish\",\n native: \"Español\"\n },\n et: {\n name: \"Estonian\",\n native: \"Eesti\"\n },\n eu: {\n name: \"Basque\",\n native: \"Euskara\"\n },\n fa: {\n name: \"Persian\",\n native: \"Ùارسی\",\n rtl: 1\n },\n ff: {\n name: \"Peul\",\n native: \"Fulfulde\"\n },\n fi: {\n name: \"Finnish\",\n native: \"Suomi\"\n },\n fj: {\n name: \"Fijian\",\n native: \"Na Vosa Vakaviti\"\n },\n fo: {\n name: \"Faroese\",\n native: \"Føroyskt\"\n },\n fr: {\n name: \"French\",\n native: \"Français\"\n },\n ga: {\n name: \"Irish\",\n native: \"Gaeilge\"\n },\n gl: {\n name: \"Galician\",\n native: \"Galego\"\n },\n gn: {\n name: \"Guarani\",\n native: \"Avañe'ẽ\"\n },\n gv: {\n name: \"Manx\",\n native: \"Gaelg\"\n },\n he: {\n name: \"Hebrew\",\n native: \"עברית\",\n rtl: 1\n },\n hi: {\n name: \"Hindi\",\n native: \"हिनà¥à¤¦à¥€\"\n },\n hr: {\n name: \"Croatian\",\n native: \"Hrvatski\"\n },\n ht: {\n name: \"Haitian\",\n native: \"Krèyol ayisyen\"\n },\n hu: {\n name: \"Hungarian\",\n native: \"Magyar\"\n },\n hy: {\n name: \"Armenian\",\n native: \"Õ€Õ¡ÕµÕ¥Ö€Õ¥Õ¶\"\n },\n id: {\n name: \"Indonesian\",\n native: \"Bahasa Indonesia\"\n },\n is: {\n name: \"Icelandic\",\n native: \"Ãslenska\"\n },\n it: {\n name: \"Italian\",\n native: \"Italiano\"\n },\n ja: {\n name: \"Japanese\",\n native: \"日本語\"\n },\n ka: {\n name: \"Georgian\",\n native: \"ქáƒáƒ თული\"\n },\n kg: {\n name: \"Kongo\",\n native: \"KiKongo\"\n },\n kk: {\n name: \"Kazakh\",\n native: \"Қазақша\"\n },\n kl: {\n name: \"Greenlandic\",\n native: \"Kalaallisut\"\n },\n km: {\n name: \"Cambodian\",\n native: \"ភាសាážáŸ’មែរ\"\n },\n ko: {\n name: \"Korean\",\n native: \"í•œêµì–´\"\n },\n ku: {\n name: \"Kurdish\",\n native: \"Kurdî / كوردی\",\n rtl: 1\n },\n ky: {\n name: \"Kyrgyz\",\n native: \"Кыргызча\"\n },\n la: {\n name: \"Latin\",\n native: \"Latina\"\n },\n lb: {\n name: \"Luxembourgish\",\n native: \"Lëtzebuergesch\"\n },\n ln: {\n name: \"Lingala\",\n native: \"Lingála\"\n },\n lo: {\n name: \"Laotian\",\n native: \"ລາວ / Pha xa lao\"\n },\n lt: {\n name: \"Lithuanian\",\n native: \"Lietuvių\"\n },\n lu: {\n name: \"Luba-Katanga\",\n native: \"Tshiluba\"\n },\n lv: {\n name: \"Latvian\",\n native: \"LatvieÅ¡u\"\n },\n mg: {\n name: \"Malagasy\",\n native: \"Malagasy\"\n },\n mh: {\n name: \"Marshallese\",\n native: \"Kajin Majel / Ebon\"\n },\n mi: {\n name: \"Maori\",\n native: \"MÄori\"\n },\n mk: {\n name: \"Macedonian\",\n native: \"МакедонÑки\"\n },\n mn: {\n name: \"Mongolian\",\n native: \"Монгол\"\n },\n ms: {\n name: \"Malay\",\n native: \"Bahasa Melayu\"\n },\n mt: {\n name: \"Maltese\",\n native: \"bil-Malti\"\n },\n my: {\n name: \"Burmese\",\n native: \"မြန်မာစာ\"\n },\n na: {\n name: \"Nauruan\",\n native: \"Dorerin Naoero\"\n },\n nb: {\n name: \"Norwegian BokmÃ¥l\",\n native: \"Norsk bokmÃ¥l\"\n },\n nd: {\n name: \"North Ndebele\",\n native: \"Sindebele\"\n },\n ne: {\n name: \"Nepali\",\n native: \"नेपाली\"\n },\n nl: {\n name: \"Dutch\",\n native: \"Nederlands\"\n },\n nn: {\n name: \"Norwegian Nynorsk\",\n native: \"Norsk nynorsk\"\n },\n no: {\n name: \"Norwegian\",\n native: \"Norsk\"\n },\n nr: {\n name: \"South Ndebele\",\n native: \"isiNdebele\"\n },\n ny: {\n name: \"Chichewa\",\n native: \"Chi-Chewa\"\n },\n oc: {\n name: \"Occitan\",\n native: \"Occitan\"\n },\n pa: {\n name: \"Panjabi / Punjabi\",\n native: \"ਪੰਜਾਬੀ / पंजाबी / پنجابي\"\n },\n pl: {\n name: \"Polish\",\n native: \"Polski\"\n },\n ps: {\n name: \"Pashto\",\n native: \"پښتو\",\n rtl: 1\n },\n pt: {\n name: \"Portuguese\",\n native: \"Português\"\n },\n qu: {\n name: \"Quechua\",\n native: \"Runa Simi\"\n },\n rn: {\n name: \"Kirundi\",\n native: \"Kirundi\"\n },\n ro: {\n name: \"Romanian\",\n native: \"Română\"\n },\n ru: {\n name: \"Russian\",\n native: \"РуÑÑкий\"\n },\n rw: {\n name: \"Rwandi\",\n native: \"Kinyarwandi\"\n },\n sg: {\n name: \"Sango\",\n native: \"Sängö\"\n },\n si: {\n name: \"Sinhalese\",\n native: \"සිංහල\"\n },\n sk: {\n name: \"Slovak\",\n native: \"SlovenÄina\"\n },\n sl: {\n name: \"Slovenian\",\n native: \"SlovenÅ¡Äina\"\n },\n sm: {\n name: \"Samoan\",\n native: \"Gagana Samoa\"\n },\n sn: {\n name: \"Shona\",\n native: \"chiShona\"\n },\n so: {\n name: \"Somalia\",\n native: \"Soomaaliga\"\n },\n sq: {\n name: \"Albanian\",\n native: \"Shqip\"\n },\n sr: {\n name: \"Serbian\",\n native: \"СрпÑки\"\n },\n ss: {\n name: \"Swati\",\n native: \"SiSwati\"\n },\n st: {\n name: \"Southern Sotho\",\n native: \"Sesotho\"\n },\n sv: {\n name: \"Swedish\",\n native: \"Svenska\"\n },\n sw: {\n name: \"Swahili\",\n native: \"Kiswahili\"\n },\n ta: {\n name: \"Tamil\",\n native: \"தமிழà¯\"\n },\n tg: {\n name: \"Tajik\",\n native: \"Тоҷикӣ\"\n },\n th: {\n name: \"Thai\",\n native: \"ไทย / Phasa Thai\"\n },\n ti: {\n name: \"Tigrinya\",\n native: \"ትáŒáˆáŠ›\"\n },\n tk: {\n name: \"Turkmen\",\n native: \"Туркмен / تركمن\"\n },\n tn: {\n name: \"Tswana\",\n native: \"Setswana\"\n },\n to: {\n name: \"Tonga\",\n native: \"Lea Faka-Tonga\"\n },\n tr: {\n name: \"Turkish\",\n native: \"Türkçe\"\n },\n ts: {\n name: \"Tsonga\",\n native: \"Xitsonga\"\n },\n uk: {\n name: \"Ukrainian\",\n native: \"УкраїнÑька\"\n },\n ur: {\n name: \"Urdu\",\n native: \"اردو\",\n rtl: 1\n },\n uz: {\n name: \"Uzbek\",\n native: \"Ўзбек\"\n },\n ve: {\n name: \"Venda\",\n native: \"Tshivenḓa\"\n },\n vi: {\n name: \"Vietnamese\",\n native: \"Tiếng Việt\"\n },\n xh: {\n name: \"Xhosa\",\n native: \"isiXhosa\"\n },\n zh: {\n name: \"Chinese\",\n native: \"ä¸æ–‡\"\n },\n zu: {\n name: \"Zulu\",\n native: \"isiZulu\"\n }\n },\n i = {\n aa: {\n name: \"Afar\",\n native: \"Afar\"\n },\n ab: {\n name: \"Abkhazian\",\n native: \"ÐÒ§Ñуа\"\n },\n af: {\n name: \"Afrikaans\",\n native: \"Afrikaans\"\n },\n ak: {\n name: \"Akan\",\n native: \"Akana\"\n },\n am: {\n name: \"Amharic\",\n native: \"አማáˆáŠ›\"\n },\n an: {\n name: \"Aragonese\",\n native: \"Aragonés\"\n },\n ar: {\n name: \"Arabic\",\n native: \"العربية\",\n rtl: 1\n },\n as: {\n name: \"Assamese\",\n native: \"অসমীয়া\"\n },\n av: {\n name: \"Avar\",\n native: \"Ðвар\"\n },\n ay: {\n name: \"Aymara\",\n native: \"Aymar\"\n },\n az: {\n name: \"Azerbaijani\",\n native: \"AzÉ™rbaycanca / آذربايجان\"\n },\n ba: {\n name: \"Bashkir\",\n native: \"Башҡорт\"\n },\n be: {\n name: \"Belarusian\",\n native: \"БеларуÑкаÑ\"\n },\n bg: {\n name: \"Bulgarian\",\n native: \"БългарÑки\"\n },\n bh: {\n name: \"Bihari\",\n native: \"à¤à¥‹à¤œà¤ªà¥à¤°à¥€\"\n },\n bi: {\n name: \"Bislama\",\n native: \"Bislama\"\n },\n bm: {\n name: \"Bambara\",\n native: \"Bamanankan\"\n },\n bn: {\n name: \"Bengali\",\n native: \"বাংলা\"\n },\n bo: {\n name: \"Tibetan\",\n native: \"བོད་ཡིག / Bod skad\"\n },\n br: {\n name: \"Breton\",\n native: \"Brezhoneg\"\n },\n bs: {\n name: \"Bosnian\",\n native: \"Bosanski\"\n },\n ca: {\n name: \"Catalan\",\n native: \"Català \"\n },\n ce: {\n name: \"Chechen\",\n native: \"Ðохчийн\"\n },\n ch: {\n name: \"Chamorro\",\n native: \"Chamoru\"\n },\n co: {\n name: \"Corsican\",\n native: \"Corsu\"\n },\n cr: {\n name: \"Cree\",\n native: \"Nehiyaw\"\n },\n cs: {\n name: \"Czech\",\n native: \"ÄŒeÅ¡tina\"\n },\n cu: {\n name: \"Old Church Slavonic / Old Bulgarian\",\n native: \"ÑловѣньÑкъ / slovÄ›nÄskÅ\"\n },\n cv: {\n name: \"Chuvash\",\n native: \"Чăваш\"\n },\n cy: {\n name: \"Welsh\",\n native: \"Cymraeg\"\n },\n da: {\n name: \"Danish\",\n native: \"Dansk\"\n },\n de: {\n name: \"German\",\n native: \"Deutsch\"\n },\n dv: {\n name: \"Divehi\",\n native: \"Þ‹Þ¨ÞˆÞ¬Þ€Þ¨Þ„Þ¦ÞÞ°\",\n rtl: 1\n },\n dz: {\n name: \"Dzongkha\",\n native: \"ཇོང་à½\"\n },\n ee: {\n name: \"Ewe\",\n native: \"ÆÊ‹É›\"\n },\n el: {\n name: \"Greek\",\n native: \"Ελληνικά\"\n },\n en: {\n name: \"English\",\n native: \"English\"\n },\n eo: {\n name: \"Esperanto\",\n native: \"Esperanto\"\n },\n es: {\n name: \"Spanish\",\n native: \"Español\"\n },\n et: {\n name: \"Estonian\",\n native: \"Eesti\"\n },\n eu: {\n name: \"Basque\",\n native: \"Euskara\"\n },\n fa: {\n name: \"Persian\",\n native: \"Ùارسی\",\n rtl: 1\n },\n ff: {\n name: \"Peul\",\n native: \"Fulfulde\"\n },\n fi: {\n name: \"Finnish\",\n native: \"Suomi\"\n },\n fj: {\n name: \"Fijian\",\n native: \"Na Vosa Vakaviti\"\n },\n fo: {\n name: \"Faroese\",\n native: \"Føroyskt\"\n },\n fr: {\n name: \"French\",\n native: \"Français\"\n },\n fy: {\n name: \"West Frisian\",\n native: \"Frysk\"\n },\n ga: {\n name: \"Irish\",\n native: \"Gaeilge\"\n },\n gd: {\n name: \"Scottish Gaelic\",\n native: \"Gà idhlig\"\n },\n gl: {\n name: \"Galician\",\n native: \"Galego\"\n },\n gn: {\n name: \"Guarani\",\n native: \"Avañe'ẽ\"\n },\n gu: {\n name: \"Gujarati\",\n native: \"ગà«àªœàª°àª¾àª¤à«€\"\n },\n gv: {\n name: \"Manx\",\n native: \"Gaelg\"\n },\n ha: {\n name: \"Hausa\",\n native: \"Ù‡ÙŽÙˆÙسَ\",\n rtl: 1\n },\n he: {\n name: \"Hebrew\",\n native: \"עברית\",\n rtl: 1\n },\n hi: {\n name: \"Hindi\",\n native: \"हिनà¥à¤¦à¥€\"\n },\n ho: {\n name: \"Hiri Motu\",\n native: \"Hiri Motu\"\n },\n hr: {\n name: \"Croatian\",\n native: \"Hrvatski\"\n },\n ht: {\n name: \"Haitian\",\n native: \"Krèyol ayisyen\"\n },\n hu: {\n name: \"Hungarian\",\n native: \"Magyar\"\n },\n hy: {\n name: \"Armenian\",\n native: \"Õ€Õ¡ÕµÕ¥Ö€Õ¥Õ¶\"\n },\n hz: {\n name: \"Herero\",\n native: \"Otsiherero\"\n },\n ia: {\n name: \"Interlingua\",\n native: \"Interlingua\"\n },\n id: {\n name: \"Indonesian\",\n native: \"Bahasa Indonesia\"\n },\n ie: {\n name: \"Interlingue\",\n native: \"Interlingue\"\n },\n ig: {\n name: \"Igbo\",\n native: \"Igbo\"\n },\n ii: {\n name: \"Sichuan Yi\",\n native: \"ꆇꉙ / å››å·å½è¯\"\n },\n ik: {\n name: \"Inupiak\",\n native: \"Iñupiak\"\n },\n io: {\n name: \"Ido\",\n native: \"Ido\"\n },\n is: {\n name: \"Icelandic\",\n native: \"Ãslenska\"\n },\n it: {\n name: \"Italian\",\n native: \"Italiano\"\n },\n iu: {\n name: \"Inuktitut\",\n native: \"áƒá“„ᒃᑎá‘ᑦ\"\n },\n ja: {\n name: \"Japanese\",\n native: \"日本語\"\n },\n jv: {\n name: \"Javanese\",\n native: \"Basa Jawa\"\n },\n ka: {\n name: \"Georgian\",\n native: \"ქáƒáƒ თული\"\n },\n kg: {\n name: \"Kongo\",\n native: \"KiKongo\"\n },\n ki: {\n name: \"Kikuyu\",\n native: \"GÄ©kÅ©yÅ©\"\n },\n kj: {\n name: \"Kuanyama\",\n native: \"Kuanyama\"\n },\n kk: {\n name: \"Kazakh\",\n native: \"Қазақша\"\n },\n kl: {\n name: \"Greenlandic\",\n native: \"Kalaallisut\"\n },\n km: {\n name: \"Cambodian\",\n native: \"ភាសាážáŸ’មែរ\"\n },\n kn: {\n name: \"Kannada\",\n native: \"ಕನà³à²¨à²¡\"\n },\n ko: {\n name: \"Korean\",\n native: \"í•œêµì–´\"\n },\n kr: {\n name: \"Kanuri\",\n native: \"Kanuri\"\n },\n ks: {\n name: \"Kashmiri\",\n native: \"कशà¥à¤®à¥€à¤°à¥€ / كشميري\",\n rtl: 1\n },\n ku: {\n name: \"Kurdish\",\n native: \"Kurdî / كوردی\",\n rtl: 1\n },\n kv: {\n name: \"Komi\",\n native: \"Коми\"\n },\n kw: {\n name: \"Cornish\",\n native: \"Kernewek\"\n },\n ky: {\n name: \"Kyrgyz\",\n native: \"Кыргызча\"\n },\n la: {\n name: \"Latin\",\n native: \"Latina\"\n },\n lb: {\n name: \"Luxembourgish\",\n native: \"Lëtzebuergesch\"\n },\n lg: {\n name: \"Ganda\",\n native: \"Luganda\"\n },\n li: {\n name: \"Limburgian\",\n native: \"Limburgs\"\n },\n ln: {\n name: \"Lingala\",\n native: \"Lingála\"\n },\n lo: {\n name: \"Laotian\",\n native: \"ລາວ / Pha xa lao\"\n },\n lt: {\n name: \"Lithuanian\",\n native: \"Lietuvių\"\n },\n lu: {\n name: \"Luba-Katanga\",\n native: \"Tshiluba\"\n },\n lv: {\n name: \"Latvian\",\n native: \"LatvieÅ¡u\"\n },\n mg: {\n name: \"Malagasy\",\n native: \"Malagasy\"\n },\n mh: {\n name: \"Marshallese\",\n native: \"Kajin Majel / Ebon\"\n },\n mi: {\n name: \"Maori\",\n native: \"MÄori\"\n },\n mk: {\n name: \"Macedonian\",\n native: \"МакедонÑки\"\n },\n ml: {\n name: \"Malayalam\",\n native: \"മലയാളം\"\n },\n mn: {\n name: \"Mongolian\",\n native: \"Монгол\"\n },\n mo: {\n name: \"Moldovan\",\n native: \"Moldovenească\"\n },\n mr: {\n name: \"Marathi\",\n native: \"मराठी\"\n },\n ms: {\n name: \"Malay\",\n native: \"Bahasa Melayu\"\n },\n mt: {\n name: \"Maltese\",\n native: \"bil-Malti\"\n },\n my: {\n name: \"Burmese\",\n native: \"မြန်မာစာ\"\n },\n na: {\n name: \"Nauruan\",\n native: \"Dorerin Naoero\"\n },\n nb: {\n name: \"Norwegian BokmÃ¥l\",\n native: \"Norsk bokmÃ¥l\"\n },\n nd: {\n name: \"North Ndebele\",\n native: \"Sindebele\"\n },\n ne: {\n name: \"Nepali\",\n native: \"नेपाली\"\n },\n ng: {\n name: \"Ndonga\",\n native: \"Oshiwambo\"\n },\n nl: {\n name: \"Dutch\",\n native: \"Nederlands\"\n },\n nn: {\n name: \"Norwegian Nynorsk\",\n native: \"Norsk nynorsk\"\n },\n no: {\n name: \"Norwegian\",\n native: \"Norsk\"\n },\n nr: {\n name: \"South Ndebele\",\n native: \"isiNdebele\"\n },\n nv: {\n name: \"Navajo\",\n native: \"Diné bizaad\"\n },\n ny: {\n name: \"Chichewa\",\n native: \"Chi-Chewa\"\n },\n oc: {\n name: \"Occitan\",\n native: \"Occitan\"\n },\n oj: {\n name: \"Ojibwa\",\n native: \"áŠá“‚ᔑᓈá¯á’§áŽá“ / Anishinaabemowin\"\n },\n om: {\n name: \"Oromo\",\n native: \"Oromoo\"\n },\n or: {\n name: \"Oriya\",\n native: \"ଓଡ଼ିଆ\"\n },\n os: {\n name: \"Ossetian / Ossetic\",\n native: \"Иронау\"\n },\n pa: {\n name: \"Panjabi / Punjabi\",\n native: \"ਪੰਜਾਬੀ / पंजाबी / پنجابي\"\n },\n pi: {\n name: \"Pali\",\n native: \"PÄli / पाऴि\"\n },\n pl: {\n name: \"Polish\",\n native: \"Polski\"\n },\n ps: {\n name: \"Pashto\",\n native: \"پښتو\",\n rtl: 1\n },\n pt: {\n name: \"Portuguese\",\n native: \"Português\"\n },\n qu: {\n name: \"Quechua\",\n native: \"Runa Simi\"\n },\n rm: {\n name: \"Raeto Romance\",\n native: \"Rumantsch\"\n },\n rn: {\n name: \"Kirundi\",\n native: \"Kirundi\"\n },\n ro: {\n name: \"Romanian\",\n native: \"Română\"\n },\n ru: {\n name: \"Russian\",\n native: \"РуÑÑкий\"\n },\n rw: {\n name: \"Rwandi\",\n native: \"Kinyarwandi\"\n },\n sa: {\n name: \"Sanskrit\",\n native: \"संसà¥à¤•à¥ƒà¤¤à¤®à¥\"\n },\n sc: {\n name: \"Sardinian\",\n native: \"Sardu\"\n },\n sd: {\n name: \"Sindhi\",\n native: \"सिनधि\"\n },\n se: {\n name: \"Northern Sami\",\n native: \"Sámegiella\"\n },\n sg: {\n name: \"Sango\",\n native: \"Sängö\"\n },\n sh: {\n name: \"Serbo-Croatian\",\n native: \"Srpskohrvatski / СрпÑкохрватÑки\"\n },\n si: {\n name: \"Sinhalese\",\n native: \"සිංහල\"\n },\n sk: {\n name: \"Slovak\",\n native: \"SlovenÄina\"\n },\n sl: {\n name: \"Slovenian\",\n native: \"SlovenÅ¡Äina\"\n },\n sm: {\n name: \"Samoan\",\n native: \"Gagana Samoa\"\n },\n sn: {\n name: \"Shona\",\n native: \"chiShona\"\n },\n so: {\n name: \"Somalia\",\n native: \"Soomaaliga\"\n },\n sq: {\n name: \"Albanian\",\n native: \"Shqip\"\n },\n sr: {\n name: \"Serbian\",\n native: \"СрпÑки\"\n },\n ss: {\n name: \"Swati\",\n native: \"SiSwati\"\n },\n st: {\n name: \"Southern Sotho\",\n native: \"Sesotho\"\n },\n su: {\n name: \"Sundanese\",\n native: \"Basa Sunda\"\n },\n sv: {\n name: \"Swedish\",\n native: \"Svenska\"\n },\n sw: {\n name: \"Swahili\",\n native: \"Kiswahili\"\n },\n ta: {\n name: \"Tamil\",\n native: \"தமிழà¯\"\n },\n te: {\n name: \"Telugu\",\n native: \"తెలà±à°—à±\"\n },\n tg: {\n name: \"Tajik\",\n native: \"Тоҷикӣ\"\n },\n th: {\n name: \"Thai\",\n native: \"ไทย / Phasa Thai\"\n },\n ti: {\n name: \"Tigrinya\",\n native: \"ትáŒáˆáŠ›\"\n },\n tk: {\n name: \"Turkmen\",\n native: \"Туркмен / تركمن\"\n },\n tl: {\n name: \"Tagalog / Filipino\",\n native: \"Tagalog\"\n },\n tn: {\n name: \"Tswana\",\n native: \"Setswana\"\n },\n to: {\n name: \"Tonga\",\n native: \"Lea Faka-Tonga\"\n },\n tr: {\n name: \"Turkish\",\n native: \"Türkçe\"\n },\n ts: {\n name: \"Tsonga\",\n native: \"Xitsonga\"\n },\n tt: {\n name: \"Tatar\",\n native: \"Tatarça\"\n },\n tw: {\n name: \"Twi\",\n native: \"Twi\"\n },\n ty: {\n name: \"Tahitian\",\n native: \"Reo MÄ`ohi\"\n },\n ug: {\n name: \"Uyghur\",\n native: \"UyÆ£urqÉ™ / ئۇيغۇرچە\"\n },\n uk: {\n name: \"Ukrainian\",\n native: \"УкраїнÑька\"\n },\n ur: {\n name: \"Urdu\",\n native: \"اردو\",\n rtl: 1\n },\n uz: {\n name: \"Uzbek\",\n native: \"Ўзбек\"\n },\n ve: {\n name: \"Venda\",\n native: \"Tshivenḓa\"\n },\n vi: {\n name: \"Vietnamese\",\n native: \"Tiếng Việt\"\n },\n vo: {\n name: \"Volapük\",\n native: \"Volapük\"\n },\n wa: {\n name: \"Walloon\",\n native: \"Walon\"\n },\n wo: {\n name: \"Wolof\",\n native: \"Wollof\"\n },\n xh: {\n name: \"Xhosa\",\n native: \"isiXhosa\"\n },\n yi: {\n name: \"Yiddish\",\n native: \"ייִדיש\",\n rtl: 1\n },\n yo: {\n name: \"Yoruba\",\n native: \"Yorùbá\"\n },\n za: {\n name: \"Zhuang\",\n native: \"Cuengh / Tôô / 壮è¯\"\n },\n zh: {\n name: \"Chinese\",\n native: \"ä¸æ–‡\"\n },\n zu: {\n name: \"Zulu\",\n native: \"isiZulu\"\n }\n };\n var t = 2147483647,\n o = 36,\n m = /^xn--/,\n r = /[^\\0-\\x7E]/,\n c = /[\\x2E\\u3002\\uFF0E\\uFF61]/g,\n l = {\n overflow: \"Overflow: input needs wider integers to process\",\n \"not-basic\": \"Illegal input >= 0x80 (not a basic code point)\",\n \"invalid-input\": \"Invalid input\"\n },\n u = Math.floor,\n F = String.fromCharCode;\n\n function U(n) {\n throw new RangeError(l[n]);\n }\n\n function s(n, a) {\n var e = n.split(\"@\");\n var i = \"\";\n e.length > 1 && (i = e[0] + \"@\", n = e[1]);\n\n var t = function (n, a) {\n var e = [];\n var i = n.length;\n\n for (; i--;) {\n e[i] = a(n[i]);\n }\n\n return e;\n }((n = n.replace(c, \".\")).split(\".\"), a).join(\".\");\n\n return i + t;\n }\n\n function g(n) {\n var a = [];\n var e = 0;\n var i = n.length;\n\n for (; e < i;) {\n var _t = n.charCodeAt(e++);\n\n if (_t >= 55296 && _t <= 56319 && e < i) {\n var _i = n.charCodeAt(e++);\n\n 56320 == (64512 & _i) ? a.push(((1023 & _t) << 10) + (1023 & _i) + 65536) : (a.push(_t), e--);\n } else a.push(_t);\n }\n\n return a;\n }\n\n var v = function v(n, a) {\n return n + 22 + 75 * (n < 26) - ((0 != a) << 5);\n },\n p = function p(n, a, e) {\n var i = 0;\n\n for (n = e ? u(n / 700) : n >> 1, n += u(n / a); n > 455; i += o) {\n n = u(n / 35);\n }\n\n return u(i + 36 * n / (n + 38));\n },\n h = function h(n) {\n var a = [],\n e = n.length;\n var i = 0,\n m = 128,\n r = 72,\n c = n.lastIndexOf(\"-\");\n c < 0 && (c = 0);\n\n for (var _e = 0; _e < c; ++_e) {\n n.charCodeAt(_e) >= 128 && U(\"not-basic\"), a.push(n.charCodeAt(_e));\n }\n\n for (var _F = c > 0 ? c + 1 : 0; _F < e;) {\n var _c = i;\n\n for (var _a = 1, _m = o;; _m += o) {\n _F >= e && U(\"invalid-input\");\n\n var _c2 = (l = n.charCodeAt(_F++)) - 48 < 10 ? l - 22 : l - 65 < 26 ? l - 65 : l - 97 < 26 ? l - 97 : o;\n\n (_c2 >= o || _c2 > u((t - i) / _a)) && U(\"overflow\"), i += _c2 * _a;\n\n var _s2 = _m <= r ? 1 : _m >= r + 26 ? 26 : _m - r;\n\n if (_c2 < _s2) break;\n\n var _g = o - _s2;\n\n _a > u(t / _g) && U(\"overflow\"), _a *= _g;\n }\n\n var _s = a.length + 1;\n\n r = p(i - _c, _s, 0 == _c), u(i / _s) > t - m && U(\"overflow\"), m += u(i / _s), i %= _s, a.splice(i++, 0, m);\n }\n\n var l;\n return String.fromCodePoint(...a);\n },\n j = function j(n) {\n var a = [];\n var e = (n = g(n)).length,\n i = 128,\n m = 0,\n r = 72;\n\n for (var _e2 of n) {\n _e2 < 128 && a.push(F(_e2));\n }\n\n var c = a.length,\n l = c;\n\n for (c && a.push(\"-\"); l < e;) {\n var _e3 = t;\n\n for (var _a2 of n) {\n _a2 >= i && _a2 < _e3 && (_e3 = _a2);\n }\n\n var _s3 = l + 1;\n\n _e3 - i > u((t - m) / _s3) && U(\"overflow\"), m += (_e3 - i) * _s3, i = _e3;\n\n for (var _e4 of n) {\n if (_e4 < i && ++m > t && U(\"overflow\"), _e4 == i) {\n var _n = m;\n\n for (var _e5 = o;; _e5 += o) {\n var _i2 = _e5 <= r ? 1 : _e5 >= r + 26 ? 26 : _e5 - r;\n\n if (_n < _i2) break;\n\n var _t2 = _n - _i2,\n _m2 = o - _i2;\n\n a.push(F(v(_i2 + _t2 % _m2, 0))), _n = u(_t2 / _m2);\n }\n\n a.push(F(v(_n, 0))), r = p(m, _s3, l == c), m = 0, ++l;\n }\n }\n\n ++m, ++i;\n }\n\n return a.join(\"\");\n };\n\n var E = {\n version: \"2.1.0\",\n ucs2: {\n decode: g,\n encode: n => String.fromCodePoint(...n)\n },\n decode: h,\n encode: j,\n toASCII: function toASCII(n) {\n return s(n, function (n) {\n return r.test(n) ? \"xn--\" + j(n) : n;\n });\n },\n toUnicode: function toUnicode(n) {\n return s(n, function (n) {\n return m.test(n) ? h(n.slice(4).toLowerCase()) : n;\n });\n }\n };\n var {\n ucs2: {\n decode: y,\n encode: A\n }\n } = E,\n S = 127462 - \"A\".charCodeAt(0),\n d = /^[A-Z]{2}$/;\n return {\n continents: n,\n countries: a,\n languages: e,\n languagesAll: i,\n getEmojiFlag: n => d.test(n) ? A(n.split(\"\").map(n => S + n.charCodeAt(0))) : \"\",\n getUnicode: n => y(n).map(n => \"U+\" + Number(n).toString(16).toUpperCase()).join(\" \")\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;","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 */\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\n /* Sunday */\n ,\n firstWeekContainsDate: 1\n }\n};\nexport default locale;","export default function buildFormatLongFn(args) {\n return function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; // TODO: Remove String()\n\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}","var arrayWithHoles = require(\"./arrayWithHoles.js\");\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit.js\");\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\nvar nonIterableRest = require(\"./nonIterableRest.js\");\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\nmodule.exports = _slicedToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it) return (it = it.call(o)).next.bind(it);\n\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\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++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n} // === Symbol Support ===\n\n\nvar hasSymbols = function hasSymbols() {\n return typeof Symbol === 'function';\n};\n\nvar hasSymbol = function hasSymbol(name) {\n return hasSymbols() && Boolean(Symbol[name]);\n};\n\nvar getSymbol = function getSymbol(name) {\n return hasSymbol(name) ? Symbol[name] : '@@' + name;\n};\n\nif (hasSymbols() && !hasSymbol('observable')) {\n Symbol.observable = Symbol('observable');\n}\n\nvar SymbolIterator = getSymbol('iterator');\nvar SymbolObservable = getSymbol('observable');\nvar SymbolSpecies = getSymbol('species'); // === Abstract Operations ===\n\nfunction getMethod(obj, key) {\n var value = obj[key];\n if (value == null) return undefined;\n if (typeof value !== 'function') throw new TypeError(value + ' is not a function');\n return value;\n}\n\nfunction getSpecies(obj) {\n var ctor = obj.constructor;\n\n if (ctor !== undefined) {\n ctor = ctor[SymbolSpecies];\n\n if (ctor === null) {\n ctor = undefined;\n }\n }\n\n return ctor !== undefined ? ctor : Observable;\n}\n\nfunction isObservable(x) {\n return x instanceof Observable; // SPEC: Brand check\n}\n\nfunction hostReportError(e) {\n if (hostReportError.log) {\n hostReportError.log(e);\n } else {\n setTimeout(function () {\n throw e;\n });\n }\n}\n\nfunction enqueue(fn) {\n Promise.resolve().then(function () {\n try {\n fn();\n } catch (e) {\n hostReportError(e);\n }\n });\n}\n\nfunction cleanupSubscription(subscription) {\n var cleanup = subscription._cleanup;\n if (cleanup === undefined) return;\n subscription._cleanup = undefined;\n\n if (!cleanup) {\n return;\n }\n\n try {\n if (typeof cleanup === 'function') {\n cleanup();\n } else {\n var unsubscribe = getMethod(cleanup, 'unsubscribe');\n\n if (unsubscribe) {\n unsubscribe.call(cleanup);\n }\n }\n } catch (e) {\n hostReportError(e);\n }\n}\n\nfunction closeSubscription(subscription) {\n subscription._observer = undefined;\n subscription._queue = undefined;\n subscription._state = 'closed';\n}\n\nfunction flushSubscription(subscription) {\n var queue = subscription._queue;\n\n if (!queue) {\n return;\n }\n\n subscription._queue = undefined;\n subscription._state = 'ready';\n\n for (var i = 0; i < queue.length; ++i) {\n notifySubscription(subscription, queue[i].type, queue[i].value);\n if (subscription._state === 'closed') break;\n }\n}\n\nfunction notifySubscription(subscription, type, value) {\n subscription._state = 'running';\n var observer = subscription._observer;\n\n try {\n var m = getMethod(observer, type);\n\n switch (type) {\n case 'next':\n if (m) m.call(observer, value);\n break;\n\n case 'error':\n closeSubscription(subscription);\n if (m) m.call(observer, value);else throw value;\n break;\n\n case 'complete':\n closeSubscription(subscription);\n if (m) m.call(observer);\n break;\n }\n } catch (e) {\n hostReportError(e);\n }\n\n if (subscription._state === 'closed') cleanupSubscription(subscription);else if (subscription._state === 'running') subscription._state = 'ready';\n}\n\nfunction onNotify(subscription, type, value) {\n if (subscription._state === 'closed') return;\n\n if (subscription._state === 'buffering') {\n subscription._queue.push({\n type: type,\n value: value\n });\n\n return;\n }\n\n if (subscription._state !== 'ready') {\n subscription._state = 'buffering';\n subscription._queue = [{\n type: type,\n value: value\n }];\n enqueue(function () {\n return flushSubscription(subscription);\n });\n return;\n }\n\n notifySubscription(subscription, type, value);\n}\n\nvar Subscription = /*#__PURE__*/function () {\n function Subscription(observer, subscriber) {\n // ASSERT: observer is an object\n // ASSERT: subscriber is callable\n this._cleanup = undefined;\n this._observer = observer;\n this._queue = undefined;\n this._state = 'initializing';\n var subscriptionObserver = new SubscriptionObserver(this);\n\n try {\n this._cleanup = subscriber.call(undefined, subscriptionObserver);\n } catch (e) {\n subscriptionObserver.error(e);\n }\n\n if (this._state === 'initializing') this._state = 'ready';\n }\n\n var _proto = Subscription.prototype;\n\n _proto.unsubscribe = function unsubscribe() {\n if (this._state !== 'closed') {\n closeSubscription(this);\n cleanupSubscription(this);\n }\n };\n\n _createClass(Subscription, [{\n key: \"closed\",\n get: function get() {\n return this._state === 'closed';\n }\n }]);\n\n return Subscription;\n}();\n\nvar SubscriptionObserver = /*#__PURE__*/function () {\n function SubscriptionObserver(subscription) {\n this._subscription = subscription;\n }\n\n var _proto2 = SubscriptionObserver.prototype;\n\n _proto2.next = function next(value) {\n onNotify(this._subscription, 'next', value);\n };\n\n _proto2.error = function error(value) {\n onNotify(this._subscription, 'error', value);\n };\n\n _proto2.complete = function complete() {\n onNotify(this._subscription, 'complete');\n };\n\n _createClass(SubscriptionObserver, [{\n key: \"closed\",\n get: function get() {\n return this._subscription._state === 'closed';\n }\n }]);\n\n return SubscriptionObserver;\n}();\n\nvar Observable = /*#__PURE__*/function () {\n function Observable(subscriber) {\n if (!(this instanceof Observable)) throw new TypeError('Observable cannot be called as a function');\n if (typeof subscriber !== 'function') throw new TypeError('Observable initializer must be a function');\n this._subscriber = subscriber;\n }\n\n var _proto3 = Observable.prototype;\n\n _proto3.subscribe = function subscribe(observer) {\n if (typeof observer !== 'object' || observer === null) {\n observer = {\n next: observer,\n error: arguments[1],\n complete: arguments[2]\n };\n }\n\n return new Subscription(observer, this._subscriber);\n };\n\n _proto3.forEach = function forEach(fn) {\n var _this = this;\n\n return new Promise(function (resolve, reject) {\n if (typeof fn !== 'function') {\n reject(new TypeError(fn + ' is not a function'));\n return;\n }\n\n function done() {\n subscription.unsubscribe();\n resolve();\n }\n\n var subscription = _this.subscribe({\n next: function next(value) {\n try {\n fn(value, done);\n } catch (e) {\n reject(e);\n subscription.unsubscribe();\n }\n },\n error: reject,\n complete: resolve\n });\n });\n };\n\n _proto3.map = function map(fn) {\n var _this2 = this;\n\n if (typeof fn !== 'function') throw new TypeError(fn + ' is not a function');\n var C = getSpecies(this);\n return new C(function (observer) {\n return _this2.subscribe({\n next: function next(value) {\n try {\n value = fn(value);\n } catch (e) {\n return observer.error(e);\n }\n\n observer.next(value);\n },\n error: function error(e) {\n observer.error(e);\n },\n complete: function complete() {\n observer.complete();\n }\n });\n });\n };\n\n _proto3.filter = function filter(fn) {\n var _this3 = this;\n\n if (typeof fn !== 'function') throw new TypeError(fn + ' is not a function');\n var C = getSpecies(this);\n return new C(function (observer) {\n return _this3.subscribe({\n next: function next(value) {\n try {\n if (!fn(value)) return;\n } catch (e) {\n return observer.error(e);\n }\n\n observer.next(value);\n },\n error: function error(e) {\n observer.error(e);\n },\n complete: function complete() {\n observer.complete();\n }\n });\n });\n };\n\n _proto3.reduce = function reduce(fn) {\n var _this4 = this;\n\n if (typeof fn !== 'function') throw new TypeError(fn + ' is not a function');\n var C = getSpecies(this);\n var hasSeed = arguments.length > 1;\n var hasValue = false;\n var seed = arguments[1];\n var acc = seed;\n return new C(function (observer) {\n return _this4.subscribe({\n next: function next(value) {\n var first = !hasValue;\n hasValue = true;\n\n if (!first || hasSeed) {\n try {\n acc = fn(acc, value);\n } catch (e) {\n return observer.error(e);\n }\n } else {\n acc = value;\n }\n },\n error: function error(e) {\n observer.error(e);\n },\n complete: function complete() {\n if (!hasValue && !hasSeed) return observer.error(new TypeError('Cannot reduce an empty sequence'));\n observer.next(acc);\n observer.complete();\n }\n });\n });\n };\n\n _proto3.concat = function concat() {\n var _this5 = this;\n\n for (var _len = arguments.length, sources = new Array(_len), _key = 0; _key < _len; _key++) {\n sources[_key] = arguments[_key];\n }\n\n var C = getSpecies(this);\n return new C(function (observer) {\n var subscription;\n var index = 0;\n\n function startNext(next) {\n subscription = next.subscribe({\n next: function next(v) {\n observer.next(v);\n },\n error: function error(e) {\n observer.error(e);\n },\n complete: function complete() {\n if (index === sources.length) {\n subscription = undefined;\n observer.complete();\n } else {\n startNext(C.from(sources[index++]));\n }\n }\n });\n }\n\n startNext(_this5);\n return function () {\n if (subscription) {\n subscription.unsubscribe();\n subscription = undefined;\n }\n };\n });\n };\n\n _proto3.flatMap = function flatMap(fn) {\n var _this6 = this;\n\n if (typeof fn !== 'function') throw new TypeError(fn + ' is not a function');\n var C = getSpecies(this);\n return new C(function (observer) {\n var subscriptions = [];\n\n var outer = _this6.subscribe({\n next: function next(value) {\n if (fn) {\n try {\n value = fn(value);\n } catch (e) {\n return observer.error(e);\n }\n }\n\n var inner = C.from(value).subscribe({\n next: function next(value) {\n observer.next(value);\n },\n error: function error(e) {\n observer.error(e);\n },\n complete: function complete() {\n var i = subscriptions.indexOf(inner);\n if (i >= 0) subscriptions.splice(i, 1);\n completeIfDone();\n }\n });\n subscriptions.push(inner);\n },\n error: function error(e) {\n observer.error(e);\n },\n complete: function complete() {\n completeIfDone();\n }\n });\n\n function completeIfDone() {\n if (outer.closed && subscriptions.length === 0) observer.complete();\n }\n\n return function () {\n subscriptions.forEach(function (s) {\n return s.unsubscribe();\n });\n outer.unsubscribe();\n };\n });\n };\n\n _proto3[SymbolObservable] = function () {\n return this;\n };\n\n Observable.from = function from(x) {\n var C = typeof this === 'function' ? this : Observable;\n if (x == null) throw new TypeError(x + ' is not an object');\n var method = getMethod(x, SymbolObservable);\n\n if (method) {\n var observable = method.call(x);\n if (Object(observable) !== observable) throw new TypeError(observable + ' is not an object');\n if (isObservable(observable) && observable.constructor === C) return observable;\n return new C(function (observer) {\n return observable.subscribe(observer);\n });\n }\n\n if (hasSymbol('iterator')) {\n method = getMethod(x, SymbolIterator);\n\n if (method) {\n return new C(function (observer) {\n enqueue(function () {\n if (observer.closed) return;\n\n for (var _iterator = _createForOfIteratorHelperLoose(method.call(x)), _step; !(_step = _iterator()).done;) {\n var item = _step.value;\n observer.next(item);\n if (observer.closed) return;\n }\n\n observer.complete();\n });\n });\n }\n }\n\n if (Array.isArray(x)) {\n return new C(function (observer) {\n enqueue(function () {\n if (observer.closed) return;\n\n for (var i = 0; i < x.length; ++i) {\n observer.next(x[i]);\n if (observer.closed) return;\n }\n\n observer.complete();\n });\n });\n }\n\n throw new TypeError(x + ' is not observable');\n };\n\n Observable.of = function of() {\n for (var _len2 = arguments.length, items = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n items[_key2] = arguments[_key2];\n }\n\n var C = typeof this === 'function' ? this : Observable;\n return new C(function (observer) {\n enqueue(function () {\n if (observer.closed) return;\n\n for (var i = 0; i < items.length; ++i) {\n observer.next(items[i]);\n if (observer.closed) return;\n }\n\n observer.complete();\n });\n });\n };\n\n _createClass(Observable, null, [{\n key: SymbolSpecies,\n get: function get() {\n return this;\n }\n }]);\n\n return Observable;\n}();\n\nif (hasSymbols()) {\n Object.defineProperty(Observable, Symbol('extensions'), {\n value: {\n symbol: SymbolObservable,\n hostReportError: hostReportError\n },\n configurable: true\n });\n}\n\nexport { Observable };","import { __assign, __spreadArray } from \"tslib\";\nimport { invariant, InvariantError } from \"../globals/index.js\";\nexport function getFragmentQueryDocument(document, fragmentName) {\n var actualFragmentName = fragmentName;\n var fragments = [];\n document.definitions.forEach(function (definition) {\n if (definition.kind === 'OperationDefinition') {\n throw __DEV__ ? new InvariantError(\"Found a \".concat(definition.operation, \" operation\").concat(definition.name ? \" named '\".concat(definition.name.value, \"'\") : '', \". \") + 'No operations are allowed when using a fragment as a query. Only fragments are allowed.') : new InvariantError(43);\n }\n\n if (definition.kind === 'FragmentDefinition') {\n fragments.push(definition);\n }\n });\n\n if (typeof actualFragmentName === 'undefined') {\n __DEV__ ? invariant(fragments.length === 1, \"Found \".concat(fragments.length, \" fragments. `fragmentName` must be provided when there is not exactly 1 fragment.\")) : invariant(fragments.length === 1, 44);\n actualFragmentName = fragments[0].name.value;\n }\n\n var query = __assign(__assign({}, document), {\n definitions: __spreadArray([{\n kind: 'OperationDefinition',\n operation: 'query',\n selectionSet: {\n kind: 'SelectionSet',\n selections: [{\n kind: 'FragmentSpread',\n name: {\n kind: 'Name',\n value: actualFragmentName\n }\n }]\n }\n }], document.definitions, true)\n });\n\n return query;\n}\nexport function createFragmentMap(fragments) {\n if (fragments === void 0) {\n fragments = [];\n }\n\n var symTable = {};\n fragments.forEach(function (fragment) {\n symTable[fragment.name.value] = fragment;\n });\n return symTable;\n}\nexport function getFragmentFromSelection(selection, fragmentMap) {\n switch (selection.kind) {\n case 'InlineFragment':\n return selection;\n\n case 'FragmentSpread':\n {\n var fragmentName = selection.name.value;\n\n if (typeof fragmentMap === \"function\") {\n return fragmentMap(fragmentName);\n }\n\n var fragment = fragmentMap && fragmentMap[fragmentName];\n __DEV__ ? invariant(fragment, \"No fragment named \".concat(fragmentName)) : invariant(fragment, 45);\n return fragment || null;\n }\n\n default:\n return null;\n }\n}","import { InvariantError } from \"../globals/index.js\";\nimport { isNonNullObject } from \"../common/objects.js\";\nimport { getFragmentFromSelection } from \"./fragments.js\";\nexport function makeReference(id) {\n return {\n __ref: String(id)\n };\n}\nexport function isReference(obj) {\n return Boolean(obj && typeof obj === 'object' && typeof obj.__ref === 'string');\n}\nexport function isDocumentNode(value) {\n return isNonNullObject(value) && value.kind === \"Document\" && Array.isArray(value.definitions);\n}\n\nfunction isStringValue(value) {\n return value.kind === 'StringValue';\n}\n\nfunction isBooleanValue(value) {\n return value.kind === 'BooleanValue';\n}\n\nfunction isIntValue(value) {\n return value.kind === 'IntValue';\n}\n\nfunction isFloatValue(value) {\n return value.kind === 'FloatValue';\n}\n\nfunction isVariable(value) {\n return value.kind === 'Variable';\n}\n\nfunction isObjectValue(value) {\n return value.kind === 'ObjectValue';\n}\n\nfunction isListValue(value) {\n return value.kind === 'ListValue';\n}\n\nfunction isEnumValue(value) {\n return value.kind === 'EnumValue';\n}\n\nfunction isNullValue(value) {\n return value.kind === 'NullValue';\n}\n\nexport function valueToObjectRepresentation(argObj, name, value, variables) {\n if (isIntValue(value) || isFloatValue(value)) {\n argObj[name.value] = Number(value.value);\n } else if (isBooleanValue(value) || isStringValue(value)) {\n argObj[name.value] = value.value;\n } else if (isObjectValue(value)) {\n var nestedArgObj_1 = {};\n value.fields.map(function (obj) {\n return valueToObjectRepresentation(nestedArgObj_1, obj.name, obj.value, variables);\n });\n argObj[name.value] = nestedArgObj_1;\n } else if (isVariable(value)) {\n var variableValue = (variables || {})[value.name.value];\n argObj[name.value] = variableValue;\n } else if (isListValue(value)) {\n argObj[name.value] = value.values.map(function (listValue) {\n var nestedArgArrayObj = {};\n valueToObjectRepresentation(nestedArgArrayObj, name, listValue, variables);\n return nestedArgArrayObj[name.value];\n });\n } else if (isEnumValue(value)) {\n argObj[name.value] = value.value;\n } else if (isNullValue(value)) {\n argObj[name.value] = null;\n } else {\n throw __DEV__ ? new InvariantError(\"The inline argument \\\"\".concat(name.value, \"\\\" of kind \\\"\").concat(value.kind, \"\\\"\") + 'is not supported. Use variables instead of inline arguments to ' + 'overcome this limitation.') : new InvariantError(54);\n }\n}\nexport function storeKeyNameFromField(field, variables) {\n var directivesObj = null;\n\n if (field.directives) {\n directivesObj = {};\n field.directives.forEach(function (directive) {\n directivesObj[directive.name.value] = {};\n\n if (directive.arguments) {\n directive.arguments.forEach(function (_a) {\n var name = _a.name,\n value = _a.value;\n return valueToObjectRepresentation(directivesObj[directive.name.value], name, value, variables);\n });\n }\n });\n }\n\n var argObj = null;\n\n if (field.arguments && field.arguments.length) {\n argObj = {};\n field.arguments.forEach(function (_a) {\n var name = _a.name,\n value = _a.value;\n return valueToObjectRepresentation(argObj, name, value, variables);\n });\n }\n\n return getStoreKeyName(field.name.value, argObj, directivesObj);\n}\nvar KNOWN_DIRECTIVES = ['connection', 'include', 'skip', 'client', 'rest', 'export'];\nexport var getStoreKeyName = Object.assign(function (fieldName, args, directives) {\n if (args && directives && directives['connection'] && directives['connection']['key']) {\n if (directives['connection']['filter'] && directives['connection']['filter'].length > 0) {\n var filterKeys = directives['connection']['filter'] ? directives['connection']['filter'] : [];\n filterKeys.sort();\n var filteredArgs_1 = {};\n filterKeys.forEach(function (key) {\n filteredArgs_1[key] = args[key];\n });\n return \"\".concat(directives['connection']['key'], \"(\").concat(stringify(filteredArgs_1), \")\");\n } else {\n return directives['connection']['key'];\n }\n }\n\n var completeFieldName = fieldName;\n\n if (args) {\n var stringifiedArgs = stringify(args);\n completeFieldName += \"(\".concat(stringifiedArgs, \")\");\n }\n\n if (directives) {\n Object.keys(directives).forEach(function (key) {\n if (KNOWN_DIRECTIVES.indexOf(key) !== -1) return;\n\n if (directives[key] && Object.keys(directives[key]).length) {\n completeFieldName += \"@\".concat(key, \"(\").concat(stringify(directives[key]), \")\");\n } else {\n completeFieldName += \"@\".concat(key);\n }\n });\n }\n\n return completeFieldName;\n}, {\n setStringify: function setStringify(s) {\n var previous = stringify;\n stringify = s;\n return previous;\n }\n});\n\nvar stringify = function defaultStringify(value) {\n return JSON.stringify(value, stringifyReplacer);\n};\n\nfunction stringifyReplacer(_key, value) {\n if (isNonNullObject(value) && !Array.isArray(value)) {\n value = Object.keys(value).sort().reduce(function (copy, key) {\n copy[key] = value[key];\n return copy;\n }, {});\n }\n\n return value;\n}\n\nexport function argumentsObjectFromField(field, variables) {\n if (field.arguments && field.arguments.length) {\n var argObj_1 = {};\n field.arguments.forEach(function (_a) {\n var name = _a.name,\n value = _a.value;\n return valueToObjectRepresentation(argObj_1, name, value, variables);\n });\n return argObj_1;\n }\n\n return null;\n}\nexport function resultKeyNameFromField(field) {\n return field.alias ? field.alias.value : field.name.value;\n}\nexport function getTypenameFromResult(result, selectionSet, fragmentMap) {\n if (typeof result.__typename === 'string') {\n return result.__typename;\n }\n\n for (var _i = 0, _a = selectionSet.selections; _i < _a.length; _i++) {\n var selection = _a[_i];\n\n if (isField(selection)) {\n if (selection.name.value === '__typename') {\n return result[resultKeyNameFromField(selection)];\n }\n } else {\n var typename = getTypenameFromResult(result, getFragmentFromSelection(selection, fragmentMap).selectionSet, fragmentMap);\n\n if (typeof typename === 'string') {\n return typename;\n }\n }\n }\n}\nexport function isField(selection) {\n return selection.kind === 'Field';\n}\nexport function isInlineFragment(selection) {\n return selection.kind === 'InlineFragment';\n}","import { invariant, InvariantError } from \"../globals/index.js\";\nimport { valueToObjectRepresentation } from \"./storeUtils.js\";\nexport function checkDocument(doc) {\n __DEV__ ? invariant(doc && doc.kind === 'Document', \"Expecting a parsed GraphQL document. Perhaps you need to wrap the query string in a \\\"gql\\\" tag? http://docs.apollostack.com/apollo-client/core.html#gql\") : invariant(doc && doc.kind === 'Document', 46);\n var operations = doc.definitions.filter(function (d) {\n return d.kind !== 'FragmentDefinition';\n }).map(function (definition) {\n if (definition.kind !== 'OperationDefinition') {\n throw __DEV__ ? new InvariantError(\"Schema type definitions not allowed in queries. Found: \\\"\".concat(definition.kind, \"\\\"\")) : new InvariantError(47);\n }\n\n return definition;\n });\n __DEV__ ? invariant(operations.length <= 1, \"Ambiguous GraphQL document: contains \".concat(operations.length, \" operations\")) : invariant(operations.length <= 1, 48);\n return doc;\n}\nexport function getOperationDefinition(doc) {\n checkDocument(doc);\n return doc.definitions.filter(function (definition) {\n return definition.kind === 'OperationDefinition';\n })[0];\n}\nexport function getOperationName(doc) {\n return doc.definitions.filter(function (definition) {\n return definition.kind === 'OperationDefinition' && definition.name;\n }).map(function (x) {\n return x.name.value;\n })[0] || null;\n}\nexport function getFragmentDefinitions(doc) {\n return doc.definitions.filter(function (definition) {\n return definition.kind === 'FragmentDefinition';\n });\n}\nexport function getQueryDefinition(doc) {\n var queryDef = getOperationDefinition(doc);\n __DEV__ ? invariant(queryDef && queryDef.operation === 'query', 'Must contain a query definition.') : invariant(queryDef && queryDef.operation === 'query', 49);\n return queryDef;\n}\nexport function getFragmentDefinition(doc) {\n __DEV__ ? invariant(doc.kind === 'Document', \"Expecting a parsed GraphQL document. Perhaps you need to wrap the query string in a \\\"gql\\\" tag? http://docs.apollostack.com/apollo-client/core.html#gql\") : invariant(doc.kind === 'Document', 50);\n __DEV__ ? invariant(doc.definitions.length <= 1, 'Fragment must have exactly one definition.') : invariant(doc.definitions.length <= 1, 51);\n var fragmentDef = doc.definitions[0];\n __DEV__ ? invariant(fragmentDef.kind === 'FragmentDefinition', 'Must be a fragment definition.') : invariant(fragmentDef.kind === 'FragmentDefinition', 52);\n return fragmentDef;\n}\nexport function getMainDefinition(queryDoc) {\n checkDocument(queryDoc);\n var fragmentDefinition;\n\n for (var _i = 0, _a = queryDoc.definitions; _i < _a.length; _i++) {\n var definition = _a[_i];\n\n if (definition.kind === 'OperationDefinition') {\n var operation = definition.operation;\n\n if (operation === 'query' || operation === 'mutation' || operation === 'subscription') {\n return definition;\n }\n }\n\n if (definition.kind === 'FragmentDefinition' && !fragmentDefinition) {\n fragmentDefinition = definition;\n }\n }\n\n if (fragmentDefinition) {\n return fragmentDefinition;\n }\n\n throw __DEV__ ? new InvariantError('Expected a parsed GraphQL query with a query, mutation, subscription, or a fragment.') : new InvariantError(53);\n}\nexport function getDefaultValues(definition) {\n var defaultValues = Object.create(null);\n var defs = definition && definition.variableDefinitions;\n\n if (defs && defs.length) {\n defs.forEach(function (def) {\n if (def.defaultValue) {\n valueToObjectRepresentation(defaultValues, def.variable.name, def.defaultValue);\n }\n });\n }\n\n return defaultValues;\n}","import { __extends } from \"tslib\";\nimport { InvariantError, invariant } from \"../../utilities/globals/index.js\";\nimport { Observable } from \"../../utilities/index.js\";\nimport { validateOperation, createOperation, transformOperation } from \"../utils/index.js\";\n\nfunction passthrough(op, forward) {\n return forward ? forward(op) : Observable.of();\n}\n\nfunction toLink(handler) {\n return typeof handler === 'function' ? new ApolloLink(handler) : handler;\n}\n\nfunction isTerminating(link) {\n return link.request.length <= 1;\n}\n\nvar LinkError = function (_super) {\n __extends(LinkError, _super);\n\n function LinkError(message, link) {\n var _this = _super.call(this, message) || this;\n\n _this.link = link;\n return _this;\n }\n\n return LinkError;\n}(Error);\n\nvar ApolloLink = function () {\n function ApolloLink(request) {\n if (request) this.request = request;\n }\n\n ApolloLink.empty = function () {\n return new ApolloLink(function () {\n return Observable.of();\n });\n };\n\n ApolloLink.from = function (links) {\n if (links.length === 0) return ApolloLink.empty();\n return links.map(toLink).reduce(function (x, y) {\n return x.concat(y);\n });\n };\n\n ApolloLink.split = function (test, left, right) {\n var leftLink = toLink(left);\n var rightLink = toLink(right || new ApolloLink(passthrough));\n\n if (isTerminating(leftLink) && isTerminating(rightLink)) {\n return new ApolloLink(function (operation) {\n return test(operation) ? leftLink.request(operation) || Observable.of() : rightLink.request(operation) || Observable.of();\n });\n } else {\n return new ApolloLink(function (operation, forward) {\n return test(operation) ? leftLink.request(operation, forward) || Observable.of() : rightLink.request(operation, forward) || Observable.of();\n });\n }\n };\n\n ApolloLink.execute = function (link, operation) {\n return link.request(createOperation(operation.context, transformOperation(validateOperation(operation)))) || Observable.of();\n };\n\n ApolloLink.concat = function (first, second) {\n var firstLink = toLink(first);\n\n if (isTerminating(firstLink)) {\n __DEV__ && invariant.warn(new LinkError(\"You are calling concat on a terminating link, which will have no effect\", firstLink));\n return firstLink;\n }\n\n var nextLink = toLink(second);\n\n if (isTerminating(nextLink)) {\n return new ApolloLink(function (operation) {\n return firstLink.request(operation, function (op) {\n return nextLink.request(op) || Observable.of();\n }) || Observable.of();\n });\n } else {\n return new ApolloLink(function (operation, forward) {\n return firstLink.request(operation, function (op) {\n return nextLink.request(op, forward) || Observable.of();\n }) || Observable.of();\n });\n }\n };\n\n ApolloLink.prototype.split = function (test, left, right) {\n return this.concat(ApolloLink.split(test, left, right || new ApolloLink(passthrough)));\n };\n\n ApolloLink.prototype.concat = function (next) {\n return ApolloLink.concat(this, next);\n };\n\n ApolloLink.prototype.request = function (operation, forward) {\n throw __DEV__ ? new InvariantError('request is not implemented') : new InvariantError(21);\n };\n\n ApolloLink.prototype.onError = function (error, observer) {\n if (observer && observer.error) {\n observer.error(error);\n return false;\n }\n\n throw error;\n };\n\n ApolloLink.prototype.setOnError = function (fn) {\n this.onError = fn;\n return this;\n };\n\n return ApolloLink;\n}();\n\nexport { ApolloLink };","import { __assign } from \"tslib\";\nexport function createOperation(starting, operation) {\n var context = __assign({}, starting);\n\n var setContext = function setContext(next) {\n if (typeof next === 'function') {\n context = __assign(__assign({}, context), next(context));\n } else {\n context = __assign(__assign({}, context), next);\n }\n };\n\n var getContext = function getContext() {\n return __assign({}, context);\n };\n\n Object.defineProperty(operation, 'setContext', {\n enumerable: false,\n value: setContext\n });\n Object.defineProperty(operation, 'getContext', {\n enumerable: false,\n value: getContext\n });\n return operation;\n}","import { getOperationName } from \"../../utilities/index.js\";\nexport function transformOperation(operation) {\n var transformedOperation = {\n variables: operation.variables || {},\n extensions: operation.extensions || {},\n operationName: operation.operationName,\n query: operation.query\n };\n\n if (!transformedOperation.operationName) {\n transformedOperation.operationName = typeof transformedOperation.query !== 'string' ? getOperationName(transformedOperation.query) || undefined : '';\n }\n\n return transformedOperation;\n}","import { InvariantError } from \"../../utilities/globals/index.js\";\nexport function validateOperation(operation) {\n var OPERATION_FIELDS = ['query', 'operationName', 'variables', 'extensions', 'context'];\n\n for (var _i = 0, _a = Object.keys(operation); _i < _a.length; _i++) {\n var key = _a[_i];\n\n if (OPERATION_FIELDS.indexOf(key) < 0) {\n throw __DEV__ ? new InvariantError(\"illegal argument: \".concat(key)) : new InvariantError(26);\n }\n }\n\n return operation;\n}","import { ApolloLink } from \"./ApolloLink.js\";\nexport var execute = ApolloLink.execute;","import inspect from \"../jsutils/inspect.mjs\";\nimport { isNode } from \"./ast.mjs\";\n/**\n * A visitor is provided to visit, it contains the collection of\n * relevant functions to be called during the visitor's traversal.\n */\n\nexport var QueryDocumentKeys = {\n Name: [],\n Document: ['definitions'],\n OperationDefinition: ['name', 'variableDefinitions', 'directives', 'selectionSet'],\n VariableDefinition: ['variable', 'type', 'defaultValue', 'directives'],\n Variable: ['name'],\n SelectionSet: ['selections'],\n Field: ['alias', 'name', 'arguments', 'directives', 'selectionSet'],\n Argument: ['name', 'value'],\n FragmentSpread: ['name', 'directives'],\n InlineFragment: ['typeCondition', 'directives', 'selectionSet'],\n FragmentDefinition: ['name', // Note: fragment variable definitions are experimental and may be changed\n // or removed in the future.\n 'variableDefinitions', 'typeCondition', 'directives', 'selectionSet'],\n IntValue: [],\n FloatValue: [],\n StringValue: [],\n BooleanValue: [],\n NullValue: [],\n EnumValue: [],\n ListValue: ['values'],\n ObjectValue: ['fields'],\n ObjectField: ['name', 'value'],\n Directive: ['name', 'arguments'],\n NamedType: ['name'],\n ListType: ['type'],\n NonNullType: ['type'],\n SchemaDefinition: ['description', 'directives', 'operationTypes'],\n OperationTypeDefinition: ['type'],\n ScalarTypeDefinition: ['description', 'name', 'directives'],\n ObjectTypeDefinition: ['description', 'name', 'interfaces', 'directives', 'fields'],\n FieldDefinition: ['description', 'name', 'arguments', 'type', 'directives'],\n InputValueDefinition: ['description', 'name', 'type', 'defaultValue', 'directives'],\n InterfaceTypeDefinition: ['description', 'name', 'interfaces', 'directives', 'fields'],\n UnionTypeDefinition: ['description', 'name', 'directives', 'types'],\n EnumTypeDefinition: ['description', 'name', 'directives', 'values'],\n EnumValueDefinition: ['description', 'name', 'directives'],\n InputObjectTypeDefinition: ['description', 'name', 'directives', 'fields'],\n DirectiveDefinition: ['description', 'name', 'arguments', 'locations'],\n SchemaExtension: ['directives', 'operationTypes'],\n ScalarTypeExtension: ['name', 'directives'],\n ObjectTypeExtension: ['name', 'interfaces', 'directives', 'fields'],\n InterfaceTypeExtension: ['name', 'interfaces', 'directives', 'fields'],\n UnionTypeExtension: ['name', 'directives', 'types'],\n EnumTypeExtension: ['name', 'directives', 'values'],\n InputObjectTypeExtension: ['name', 'directives', 'fields']\n};\nexport var BREAK = Object.freeze({});\n/**\n * visit() will walk through an AST using a depth-first traversal, calling\n * the visitor's enter function at each node in the traversal, and calling the\n * leave function after visiting that node and all of its child nodes.\n *\n * By returning different values from the enter and leave functions, the\n * behavior of the visitor can be altered, including skipping over a sub-tree of\n * the AST (by returning false), editing the AST by returning a value or null\n * to remove the value, or to stop the whole traversal by returning BREAK.\n *\n * When using visit() to edit an AST, the original AST will not be modified, and\n * a new version of the AST with the changes applied will be returned from the\n * visit function.\n *\n * const editedAST = visit(ast, {\n * enter(node, key, parent, path, ancestors) {\n * // @return\n * // undefined: no action\n * // false: skip visiting this node\n * // visitor.BREAK: stop visiting altogether\n * // null: delete this node\n * // any value: replace this node with the returned value\n * },\n * leave(node, key, parent, path, ancestors) {\n * // @return\n * // undefined: no action\n * // false: no action\n * // visitor.BREAK: stop visiting altogether\n * // null: delete this node\n * // any value: replace this node with the returned value\n * }\n * });\n *\n * Alternatively to providing enter() and leave() functions, a visitor can\n * instead provide functions named the same as the kinds of AST nodes, or\n * enter/leave visitors at a named key, leading to four permutations of the\n * visitor API:\n *\n * 1) Named visitors triggered when entering a node of a specific kind.\n *\n * visit(ast, {\n * Kind(node) {\n * // enter the \"Kind\" node\n * }\n * })\n *\n * 2) Named visitors that trigger upon entering and leaving a node of\n * a specific kind.\n *\n * visit(ast, {\n * Kind: {\n * enter(node) {\n * // enter the \"Kind\" node\n * }\n * leave(node) {\n * // leave the \"Kind\" node\n * }\n * }\n * })\n *\n * 3) Generic visitors that trigger upon entering and leaving any node.\n *\n * visit(ast, {\n * enter(node) {\n * // enter any node\n * },\n * leave(node) {\n * // leave any node\n * }\n * })\n *\n * 4) Parallel visitors for entering and leaving nodes of a specific kind.\n *\n * visit(ast, {\n * enter: {\n * Kind(node) {\n * // enter the \"Kind\" node\n * }\n * },\n * leave: {\n * Kind(node) {\n * // leave the \"Kind\" node\n * }\n * }\n * })\n */\n\nexport function visit(root, visitor) {\n var visitorKeys = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : QueryDocumentKeys;\n /* eslint-disable no-undef-init */\n\n var stack = undefined;\n var inArray = Array.isArray(root);\n var keys = [root];\n var index = -1;\n var edits = [];\n var node = undefined;\n var key = undefined;\n var parent = undefined;\n var path = [];\n var ancestors = [];\n var newRoot = root;\n /* eslint-enable no-undef-init */\n\n do {\n index++;\n var isLeaving = index === keys.length;\n var isEdited = isLeaving && edits.length !== 0;\n\n if (isLeaving) {\n key = ancestors.length === 0 ? undefined : path[path.length - 1];\n node = parent;\n parent = ancestors.pop();\n\n if (isEdited) {\n if (inArray) {\n node = node.slice();\n } else {\n var clone = {};\n\n for (var _i2 = 0, _Object$keys2 = Object.keys(node); _i2 < _Object$keys2.length; _i2++) {\n var k = _Object$keys2[_i2];\n clone[k] = node[k];\n }\n\n node = clone;\n }\n\n var editOffset = 0;\n\n for (var ii = 0; ii < edits.length; ii++) {\n var editKey = edits[ii][0];\n var editValue = edits[ii][1];\n\n if (inArray) {\n editKey -= editOffset;\n }\n\n if (inArray && editValue === null) {\n node.splice(editKey, 1);\n editOffset++;\n } else {\n node[editKey] = editValue;\n }\n }\n }\n\n index = stack.index;\n keys = stack.keys;\n edits = stack.edits;\n inArray = stack.inArray;\n stack = stack.prev;\n } else {\n key = parent ? inArray ? index : keys[index] : undefined;\n node = parent ? parent[key] : newRoot;\n\n if (node === null || node === undefined) {\n continue;\n }\n\n if (parent) {\n path.push(key);\n }\n }\n\n var result = void 0;\n\n if (!Array.isArray(node)) {\n if (!isNode(node)) {\n throw new Error(\"Invalid AST Node: \".concat(inspect(node), \".\"));\n }\n\n var visitFn = getVisitFn(visitor, node.kind, isLeaving);\n\n if (visitFn) {\n result = visitFn.call(visitor, node, key, parent, path, ancestors);\n\n if (result === BREAK) {\n break;\n }\n\n if (result === false) {\n if (!isLeaving) {\n path.pop();\n continue;\n }\n } else if (result !== undefined) {\n edits.push([key, result]);\n\n if (!isLeaving) {\n if (isNode(result)) {\n node = result;\n } else {\n path.pop();\n continue;\n }\n }\n }\n }\n }\n\n if (result === undefined && isEdited) {\n edits.push([key, node]);\n }\n\n if (isLeaving) {\n path.pop();\n } else {\n var _visitorKeys$node$kin;\n\n stack = {\n inArray: inArray,\n index: index,\n keys: keys,\n edits: edits,\n prev: stack\n };\n inArray = Array.isArray(node);\n keys = inArray ? node : (_visitorKeys$node$kin = visitorKeys[node.kind]) !== null && _visitorKeys$node$kin !== void 0 ? _visitorKeys$node$kin : [];\n index = -1;\n edits = [];\n\n if (parent) {\n ancestors.push(parent);\n }\n\n parent = node;\n }\n } while (stack !== undefined);\n\n if (edits.length !== 0) {\n newRoot = edits[edits.length - 1][1];\n }\n\n return newRoot;\n}\n/**\n * Creates a new visitor instance which delegates to many visitors to run in\n * parallel. Each visitor will be visited for each node before moving on.\n *\n * If a prior visitor edits a node, no following visitors will see that node.\n */\n\nexport function visitInParallel(visitors) {\n var skipping = new Array(visitors.length);\n return {\n enter: function enter(node) {\n for (var i = 0; i < visitors.length; i++) {\n if (skipping[i] == null) {\n var fn = getVisitFn(visitors[i], node.kind,\n /* isLeaving */\n false);\n\n if (fn) {\n var result = fn.apply(visitors[i], arguments);\n\n if (result === false) {\n skipping[i] = node;\n } else if (result === BREAK) {\n skipping[i] = BREAK;\n } else if (result !== undefined) {\n return result;\n }\n }\n }\n }\n },\n leave: function leave(node) {\n for (var i = 0; i < visitors.length; i++) {\n if (skipping[i] == null) {\n var fn = getVisitFn(visitors[i], node.kind,\n /* isLeaving */\n true);\n\n if (fn) {\n var result = fn.apply(visitors[i], arguments);\n\n if (result === BREAK) {\n skipping[i] = BREAK;\n } else if (result !== undefined && result !== false) {\n return result;\n }\n }\n } else if (skipping[i] === node) {\n skipping[i] = null;\n }\n }\n }\n };\n}\n/**\n * Given a visitor instance, if it is leaving or not, and a node kind, return\n * the function the visitor runtime should call.\n */\n\nexport function getVisitFn(visitor, kind, isLeaving) {\n var kindVisitor = visitor[kind];\n\n if (kindVisitor) {\n if (!isLeaving && typeof kindVisitor === 'function') {\n // { Kind() {} }\n return kindVisitor;\n }\n\n var kindSpecificVisitor = isLeaving ? kindVisitor.leave : kindVisitor.enter;\n\n if (typeof kindSpecificVisitor === 'function') {\n // { Kind: { enter() {}, leave() {} } }\n return kindSpecificVisitor;\n }\n } else {\n var specificVisitor = isLeaving ? visitor.leave : visitor.enter;\n\n if (specificVisitor) {\n if (typeof specificVisitor === 'function') {\n // { enter() {}, leave() {} }\n return specificVisitor;\n }\n\n var specificKindVisitor = specificVisitor[kind];\n\n if (typeof specificKindVisitor === 'function') {\n // { enter: { Kind() {} }, leave: { Kind() {} } }\n return specificKindVisitor;\n }\n }\n }\n}","import { invariant } from \"../globals/index.js\";\nimport { visit, BREAK } from 'graphql';\nexport function shouldInclude(_a, variables) {\n var directives = _a.directives;\n\n if (!directives || !directives.length) {\n return true;\n }\n\n return getInclusionDirectives(directives).every(function (_a) {\n var directive = _a.directive,\n ifArgument = _a.ifArgument;\n var evaledValue = false;\n\n if (ifArgument.value.kind === 'Variable') {\n evaledValue = variables && variables[ifArgument.value.name.value];\n __DEV__ ? invariant(evaledValue !== void 0, \"Invalid variable referenced in @\".concat(directive.name.value, \" directive.\")) : invariant(evaledValue !== void 0, 39);\n } else {\n evaledValue = ifArgument.value.value;\n }\n\n return directive.name.value === 'skip' ? !evaledValue : evaledValue;\n });\n}\nexport function getDirectiveNames(root) {\n var names = [];\n visit(root, {\n Directive: function Directive(node) {\n names.push(node.name.value);\n }\n });\n return names;\n}\nexport var hasAnyDirectives = function hasAnyDirectives(names, root) {\n return hasDirectives(names, root, false);\n};\nexport var hasAllDirectives = function hasAllDirectives(names, root) {\n return hasDirectives(names, root, true);\n};\nexport function hasDirectives(names, root, all) {\n var nameSet = new Set(names);\n var uniqueCount = nameSet.size;\n visit(root, {\n Directive: function Directive(node) {\n if (nameSet.delete(node.name.value) && (!all || !nameSet.size)) {\n return BREAK;\n }\n }\n });\n return all ? !nameSet.size : nameSet.size < uniqueCount;\n}\nexport function hasClientExports(document) {\n return document && hasDirectives(['client', 'export'], document, true);\n}\n\nfunction isInclusionDirective(_a) {\n var value = _a.name.value;\n return value === 'skip' || value === 'include';\n}\n\nexport function getInclusionDirectives(directives) {\n var result = [];\n\n if (directives && directives.length) {\n directives.forEach(function (directive) {\n if (!isInclusionDirective(directive)) return;\n var directiveArguments = directive.arguments;\n var directiveName = directive.name.value;\n __DEV__ ? invariant(directiveArguments && directiveArguments.length === 1, \"Incorrect number of arguments for the @\".concat(directiveName, \" directive.\")) : invariant(directiveArguments && directiveArguments.length === 1, 40);\n var ifArgument = directiveArguments[0];\n __DEV__ ? invariant(ifArgument.name && ifArgument.name.value === 'if', \"Invalid argument for the @\".concat(directiveName, \" directive.\")) : invariant(ifArgument.name && ifArgument.name.value === 'if', 41);\n var ifValue = ifArgument.value;\n __DEV__ ? invariant(ifValue && (ifValue.kind === 'Variable' || ifValue.kind === 'BooleanValue'), \"Argument for the @\".concat(directiveName, \" directive must be a variable or a boolean value.\")) : invariant(ifValue && (ifValue.kind === 'Variable' || ifValue.kind === 'BooleanValue'), 42);\n result.push({\n directive: directive,\n ifArgument: ifArgument\n });\n });\n }\n\n return result;\n}","import { InvariantError } from \"../../utilities/globals/index.js\";\nexport var serializeFetchParameter = function serializeFetchParameter(p, label) {\n var serialized;\n\n try {\n serialized = JSON.stringify(p);\n } catch (e) {\n var parseError = __DEV__ ? new InvariantError(\"Network request failed. \".concat(label, \" is not serializable: \").concat(e.message)) : new InvariantError(23);\n parseError.parseError = e;\n throw parseError;\n }\n\n return serialized;\n};","export var selectURI = function selectURI(operation, fallbackURI) {\n var context = operation.getContext();\n var contextURI = context.uri;\n\n if (contextURI) {\n return contextURI;\n } else if (typeof fallbackURI === 'function') {\n return fallbackURI(operation);\n } else {\n return fallbackURI || '/graphql';\n }\n};","import { canUseAsyncIteratorSymbol } from \"../../../utilities/index.js\";\nexport default function nodeStreamIterator(stream) {\n var _cleanup = null;\n var error = null;\n var done = false;\n var data = [];\n var waiting = [];\n\n function onData(chunk) {\n if (error) return;\n\n if (waiting.length) {\n var shiftedArr = waiting.shift();\n\n if (Array.isArray(shiftedArr) && shiftedArr[0]) {\n return shiftedArr[0]({\n value: chunk,\n done: false\n });\n }\n }\n\n data.push(chunk);\n }\n\n function onError(err) {\n error = err;\n var all = waiting.slice();\n all.forEach(function (pair) {\n pair[1](err);\n });\n !_cleanup || _cleanup();\n }\n\n function onEnd() {\n done = true;\n var all = waiting.slice();\n all.forEach(function (pair) {\n pair[0]({\n value: undefined,\n done: true\n });\n });\n !_cleanup || _cleanup();\n }\n\n _cleanup = function cleanup() {\n _cleanup = null;\n stream.removeListener(\"data\", onData);\n stream.removeListener(\"error\", onError);\n stream.removeListener(\"end\", onEnd);\n stream.removeListener(\"finish\", onEnd);\n stream.removeListener(\"close\", onEnd);\n };\n\n stream.on(\"data\", onData);\n stream.on(\"error\", onError);\n stream.on(\"end\", onEnd);\n stream.on(\"finish\", onEnd);\n stream.on(\"close\", onEnd);\n\n function getNext() {\n return new Promise(function (resolve, reject) {\n if (error) return reject(error);\n if (data.length) return resolve({\n value: data.shift(),\n done: false\n });\n if (done) return resolve({\n value: undefined,\n done: true\n });\n waiting.push([resolve, reject]);\n });\n }\n\n var iterator = {\n next: function next() {\n return getNext();\n }\n };\n\n if (canUseAsyncIteratorSymbol) {\n iterator[Symbol.asyncIterator] = function () {\n return this;\n };\n }\n\n return iterator;\n}","import { canUseAsyncIteratorSymbol } from \"../../../utilities/index.js\";\nexport default function readerIterator(reader) {\n var iterator = {\n next: function next() {\n return reader.read();\n }\n };\n\n if (canUseAsyncIteratorSymbol) {\n iterator[Symbol.asyncIterator] = function () {\n return this;\n };\n }\n\n return iterator;\n}","import { isAsyncIterableIterator, isBlob, isNodeResponse, isNodeReadableStream, isReadableStream, isStreamableBlob } from \"../../utilities/common/responseIterator.js\";\nimport asyncIterator from \"./iterators/async.js\";\nimport nodeStreamIterator from \"./iterators/nodeStream.js\";\nimport promiseIterator from \"./iterators/promise.js\";\nimport readerIterator from \"./iterators/reader.js\";\nexport function responseIterator(response) {\n var body = response;\n if (isNodeResponse(response)) body = response.body;\n if (isAsyncIterableIterator(body)) return asyncIterator(body);\n if (isReadableStream(body)) return readerIterator(body.getReader());\n\n if (isStreamableBlob(body)) {\n return readerIterator(body.stream().getReader());\n }\n\n if (isBlob(body)) return promiseIterator(body.arrayBuffer());\n if (isNodeReadableStream(body)) return nodeStreamIterator(body);\n throw new Error(\"Unknown body type for responseIterator. Please pass a streamable response.\");\n}","export default function asyncIterator(source) {\n var _a;\n\n var iterator = source[Symbol.asyncIterator]();\n return _a = {\n next: function next() {\n return iterator.next();\n }\n }, _a[Symbol.asyncIterator] = function () {\n return this;\n }, _a;\n}","import { canUseAsyncIteratorSymbol } from \"./canUse.js\";\nexport function isNodeResponse(value) {\n return !!value.body;\n}\nexport function isReadableStream(value) {\n return !!value.getReader;\n}\nexport function isAsyncIterableIterator(value) {\n return !!(canUseAsyncIteratorSymbol && value[Symbol.asyncIterator]);\n}\nexport function isStreamableBlob(value) {\n return !!value.stream;\n}\nexport function isBlob(value) {\n return !!value.arrayBuffer;\n}\nexport function isNodeReadableStream(value) {\n return !!value.pipe;\n}","import { canUseAsyncIteratorSymbol } from \"../../../utilities/index.js\";\nexport default function promiseIterator(promise) {\n var resolved = false;\n var iterator = {\n next: function next() {\n if (resolved) return Promise.resolve({\n value: undefined,\n done: true\n });\n resolved = true;\n return new Promise(function (resolve, reject) {\n promise.then(function (value) {\n resolve({\n value: value,\n done: false\n });\n }).catch(reject);\n });\n }\n };\n\n if (canUseAsyncIteratorSymbol) {\n iterator[Symbol.asyncIterator] = function () {\n return this;\n };\n }\n\n return iterator;\n}","export var throwServerError = function throwServerError(response, result, message) {\n var error = new Error(message);\n error.name = 'ServerError';\n error.response = response;\n error.statusCode = response.status;\n error.result = result;\n throw error;\n};","import { __awaiter, __generator } from \"tslib\";\nimport { responseIterator } from \"./responseIterator.js\";\nimport { throwServerError } from \"../utils/index.js\";\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nexport function readMultipartBody(response, observer) {\n var _a, _b, _c;\n\n return __awaiter(this, void 0, void 0, function () {\n var decoder, contentType, delimiter, boundaryVal, boundary, buffer, iterator, running, _d, value, done, chunk, bi, message, i, headers, contentType_1, body, result;\n\n var _e;\n\n return __generator(this, function (_f) {\n switch (_f.label) {\n case 0:\n if (TextDecoder === undefined) {\n throw new Error(\"TextDecoder must be defined in the environment: please import a polyfill.\");\n }\n\n decoder = new TextDecoder(\"utf-8\");\n contentType = (_a = response.headers) === null || _a === void 0 ? void 0 : _a.get('content-type');\n delimiter = \"boundary=\";\n boundaryVal = (contentType === null || contentType === void 0 ? void 0 : contentType.includes(delimiter)) ? contentType === null || contentType === void 0 ? void 0 : contentType.substring((contentType === null || contentType === void 0 ? void 0 : contentType.indexOf(delimiter)) + delimiter.length).replace(/['\"]/g, \"\").replace(/\\;(.*)/gm, \"\").trim() : \"-\";\n boundary = \"--\".concat(boundaryVal);\n buffer = \"\";\n iterator = responseIterator(response);\n running = true;\n _f.label = 1;\n\n case 1:\n if (!running) return [3, 3];\n return [4, iterator.next()];\n\n case 2:\n _d = _f.sent(), value = _d.value, done = _d.done;\n chunk = typeof value === \"string\" ? value : decoder.decode(value);\n running = !done;\n buffer += chunk;\n bi = buffer.indexOf(boundary);\n\n while (bi > -1) {\n message = void 0;\n _e = [buffer.slice(0, bi), buffer.slice(bi + boundary.length)], message = _e[0], buffer = _e[1];\n\n if (message.trim()) {\n i = message.indexOf(\"\\r\\n\\r\\n\");\n headers = parseHeaders(message.slice(0, i));\n contentType_1 = headers[\"content-type\"];\n\n if (contentType_1 && contentType_1.toLowerCase().indexOf(\"application/json\") === -1) {\n throw new Error(\"Unsupported patch content type: application/json is required.\");\n }\n\n body = message.slice(i);\n\n try {\n result = parseJsonBody(response, body.replace(\"\\r\\n\", \"\"));\n\n if (Object.keys(result).length > 1 || \"data\" in result || \"incremental\" in result || \"errors\" in result) {\n (_b = observer.next) === null || _b === void 0 ? void 0 : _b.call(observer, result);\n }\n } catch (err) {\n handleError(err, observer);\n }\n }\n\n bi = buffer.indexOf(boundary);\n }\n\n return [3, 1];\n\n case 3:\n (_c = observer.complete) === null || _c === void 0 ? void 0 : _c.call(observer);\n return [2];\n }\n });\n });\n}\nexport function parseHeaders(headerText) {\n var headersInit = {};\n headerText.split(\"\\n\").forEach(function (line) {\n var i = line.indexOf(\":\");\n\n if (i > -1) {\n var name_1 = line.slice(0, i).trim().toLowerCase();\n var value = line.slice(i + 1).trim();\n headersInit[name_1] = value;\n }\n });\n return headersInit;\n}\nexport function parseJsonBody(response, bodyText) {\n if (response.status >= 300) {\n var getResult = function getResult() {\n try {\n return JSON.parse(bodyText);\n } catch (err) {\n return bodyText;\n }\n };\n\n throwServerError(response, getResult(), \"Response not successful: Received status code \".concat(response.status));\n }\n\n try {\n return JSON.parse(bodyText);\n } catch (err) {\n var parseError = err;\n parseError.name = \"ServerParseError\";\n parseError.response = response;\n parseError.statusCode = response.status;\n parseError.bodyText = bodyText;\n throw parseError;\n }\n}\nexport function handleError(err, observer) {\n var _a, _b;\n\n if (err.name === \"AbortError\") return;\n\n if (err.result && err.result.errors && err.result.data) {\n (_a = observer.next) === null || _a === void 0 ? void 0 : _a.call(observer, err.result);\n }\n\n (_b = observer.error) === null || _b === void 0 ? void 0 : _b.call(observer, err);\n}\nexport function readJsonBody(response, operation, observer) {\n parseAndCheckHttpResponse(operation)(response).then(function (result) {\n var _a, _b;\n\n (_a = observer.next) === null || _a === void 0 ? void 0 : _a.call(observer, result);\n (_b = observer.complete) === null || _b === void 0 ? void 0 : _b.call(observer);\n }).catch(function (err) {\n return handleError(err, observer);\n });\n}\nexport function parseAndCheckHttpResponse(operations) {\n return function (response) {\n return response.text().then(function (bodyText) {\n return parseJsonBody(response, bodyText);\n }).then(function (result) {\n if (response.status >= 300) {\n throwServerError(response, result, \"Response not successful: Received status code \".concat(response.status));\n }\n\n if (!Array.isArray(result) && !hasOwnProperty.call(result, \"data\") && !hasOwnProperty.call(result, \"errors\")) {\n throwServerError(response, result, \"Server response was missing for query '\".concat(Array.isArray(operations) ? operations.map(function (op) {\n return op.operationName;\n }) : operations.operationName, \"'.\"));\n }\n\n return result;\n });\n };\n}","import { InvariantError } from \"../../utilities/globals/index.js\";\nexport var checkFetcher = function checkFetcher(fetcher) {\n if (!fetcher && typeof fetch === 'undefined') {\n throw __DEV__ ? new InvariantError(\"\\n\\\"fetch\\\" has not been found globally and no fetcher has been configured. To fix this, install a fetch package (like https://www.npmjs.com/package/cross-fetch), instantiate the fetcher, and pass it into your HttpLink constructor. For example:\\n\\nimport fetch from 'cross-fetch';\\nimport { ApolloClient, HttpLink } from '@apollo/client';\\nconst client = new ApolloClient({\\n link: new HttpLink({ uri: '/graphql', fetch })\\n});\\n \") : new InvariantError(22);\n }\n};","import { visit } from \"./visitor.mjs\";\nimport { printBlockString } from \"./blockString.mjs\";\n/**\n * Converts an AST into a string, using one set of reasonable\n * formatting rules.\n */\n\nexport function print(ast) {\n return visit(ast, {\n leave: printDocASTReducer\n });\n}\nvar MAX_LINE_LENGTH = 80; // TODO: provide better type coverage in future\n\nvar printDocASTReducer = {\n Name: function Name(node) {\n return node.value;\n },\n Variable: function Variable(node) {\n return '$' + node.name;\n },\n // Document\n Document: function Document(node) {\n return join(node.definitions, '\\n\\n') + '\\n';\n },\n OperationDefinition: function OperationDefinition(node) {\n var op = node.operation;\n var name = node.name;\n var varDefs = wrap('(', join(node.variableDefinitions, ', '), ')');\n var directives = join(node.directives, ' ');\n var selectionSet = node.selectionSet; // Anonymous queries with no directives or variable definitions can use\n // the query short form.\n\n return !name && !directives && !varDefs && op === 'query' ? selectionSet : join([op, join([name, varDefs]), directives, selectionSet], ' ');\n },\n VariableDefinition: function VariableDefinition(_ref) {\n var variable = _ref.variable,\n type = _ref.type,\n defaultValue = _ref.defaultValue,\n directives = _ref.directives;\n return variable + ': ' + type + wrap(' = ', defaultValue) + wrap(' ', join(directives, ' '));\n },\n SelectionSet: function SelectionSet(_ref2) {\n var selections = _ref2.selections;\n return block(selections);\n },\n Field: function Field(_ref3) {\n var alias = _ref3.alias,\n name = _ref3.name,\n args = _ref3.arguments,\n directives = _ref3.directives,\n selectionSet = _ref3.selectionSet;\n var prefix = wrap('', alias, ': ') + name;\n var argsLine = prefix + wrap('(', join(args, ', '), ')');\n\n if (argsLine.length > MAX_LINE_LENGTH) {\n argsLine = prefix + wrap('(\\n', indent(join(args, '\\n')), '\\n)');\n }\n\n return join([argsLine, join(directives, ' '), selectionSet], ' ');\n },\n Argument: function Argument(_ref4) {\n var name = _ref4.name,\n value = _ref4.value;\n return name + ': ' + value;\n },\n // Fragments\n FragmentSpread: function FragmentSpread(_ref5) {\n var name = _ref5.name,\n directives = _ref5.directives;\n return '...' + name + wrap(' ', join(directives, ' '));\n },\n InlineFragment: function InlineFragment(_ref6) {\n var typeCondition = _ref6.typeCondition,\n directives = _ref6.directives,\n selectionSet = _ref6.selectionSet;\n return join(['...', wrap('on ', typeCondition), join(directives, ' '), selectionSet], ' ');\n },\n FragmentDefinition: function FragmentDefinition(_ref7) {\n var name = _ref7.name,\n typeCondition = _ref7.typeCondition,\n variableDefinitions = _ref7.variableDefinitions,\n directives = _ref7.directives,\n selectionSet = _ref7.selectionSet;\n return (// Note: fragment variable definitions are experimental and may be changed\n // or removed in the future.\n \"fragment \".concat(name).concat(wrap('(', join(variableDefinitions, ', '), ')'), \" \") + \"on \".concat(typeCondition, \" \").concat(wrap('', join(directives, ' '), ' ')) + selectionSet\n );\n },\n // Value\n IntValue: function IntValue(_ref8) {\n var value = _ref8.value;\n return value;\n },\n FloatValue: function FloatValue(_ref9) {\n var value = _ref9.value;\n return value;\n },\n StringValue: function StringValue(_ref10, key) {\n var value = _ref10.value,\n isBlockString = _ref10.block;\n return isBlockString ? printBlockString(value, key === 'description' ? '' : ' ') : JSON.stringify(value);\n },\n BooleanValue: function BooleanValue(_ref11) {\n var value = _ref11.value;\n return value ? 'true' : 'false';\n },\n NullValue: function NullValue() {\n return 'null';\n },\n EnumValue: function EnumValue(_ref12) {\n var value = _ref12.value;\n return value;\n },\n ListValue: function ListValue(_ref13) {\n var values = _ref13.values;\n return '[' + join(values, ', ') + ']';\n },\n ObjectValue: function ObjectValue(_ref14) {\n var fields = _ref14.fields;\n return '{' + join(fields, ', ') + '}';\n },\n ObjectField: function ObjectField(_ref15) {\n var name = _ref15.name,\n value = _ref15.value;\n return name + ': ' + value;\n },\n // Directive\n Directive: function Directive(_ref16) {\n var name = _ref16.name,\n args = _ref16.arguments;\n return '@' + name + wrap('(', join(args, ', '), ')');\n },\n // Type\n NamedType: function NamedType(_ref17) {\n var name = _ref17.name;\n return name;\n },\n ListType: function ListType(_ref18) {\n var type = _ref18.type;\n return '[' + type + ']';\n },\n NonNullType: function NonNullType(_ref19) {\n var type = _ref19.type;\n return type + '!';\n },\n // Type System Definitions\n SchemaDefinition: addDescription(function (_ref20) {\n var directives = _ref20.directives,\n operationTypes = _ref20.operationTypes;\n return join(['schema', join(directives, ' '), block(operationTypes)], ' ');\n }),\n OperationTypeDefinition: function OperationTypeDefinition(_ref21) {\n var operation = _ref21.operation,\n type = _ref21.type;\n return operation + ': ' + type;\n },\n ScalarTypeDefinition: addDescription(function (_ref22) {\n var name = _ref22.name,\n directives = _ref22.directives;\n return join(['scalar', name, join(directives, ' ')], ' ');\n }),\n ObjectTypeDefinition: addDescription(function (_ref23) {\n var name = _ref23.name,\n interfaces = _ref23.interfaces,\n directives = _ref23.directives,\n fields = _ref23.fields;\n return join(['type', name, wrap('implements ', join(interfaces, ' & ')), join(directives, ' '), block(fields)], ' ');\n }),\n FieldDefinition: addDescription(function (_ref24) {\n var name = _ref24.name,\n args = _ref24.arguments,\n type = _ref24.type,\n directives = _ref24.directives;\n return name + (hasMultilineItems(args) ? wrap('(\\n', indent(join(args, '\\n')), '\\n)') : wrap('(', join(args, ', '), ')')) + ': ' + type + wrap(' ', join(directives, ' '));\n }),\n InputValueDefinition: addDescription(function (_ref25) {\n var name = _ref25.name,\n type = _ref25.type,\n defaultValue = _ref25.defaultValue,\n directives = _ref25.directives;\n return join([name + ': ' + type, wrap('= ', defaultValue), join(directives, ' ')], ' ');\n }),\n InterfaceTypeDefinition: addDescription(function (_ref26) {\n var name = _ref26.name,\n interfaces = _ref26.interfaces,\n directives = _ref26.directives,\n fields = _ref26.fields;\n return join(['interface', name, wrap('implements ', join(interfaces, ' & ')), join(directives, ' '), block(fields)], ' ');\n }),\n UnionTypeDefinition: addDescription(function (_ref27) {\n var name = _ref27.name,\n directives = _ref27.directives,\n types = _ref27.types;\n return join(['union', name, join(directives, ' '), types && types.length !== 0 ? '= ' + join(types, ' | ') : ''], ' ');\n }),\n EnumTypeDefinition: addDescription(function (_ref28) {\n var name = _ref28.name,\n directives = _ref28.directives,\n values = _ref28.values;\n return join(['enum', name, join(directives, ' '), block(values)], ' ');\n }),\n EnumValueDefinition: addDescription(function (_ref29) {\n var name = _ref29.name,\n directives = _ref29.directives;\n return join([name, join(directives, ' ')], ' ');\n }),\n InputObjectTypeDefinition: addDescription(function (_ref30) {\n var name = _ref30.name,\n directives = _ref30.directives,\n fields = _ref30.fields;\n return join(['input', name, join(directives, ' '), block(fields)], ' ');\n }),\n DirectiveDefinition: addDescription(function (_ref31) {\n var name = _ref31.name,\n args = _ref31.arguments,\n repeatable = _ref31.repeatable,\n locations = _ref31.locations;\n return 'directive @' + name + (hasMultilineItems(args) ? wrap('(\\n', indent(join(args, '\\n')), '\\n)') : wrap('(', join(args, ', '), ')')) + (repeatable ? ' repeatable' : '') + ' on ' + join(locations, ' | ');\n }),\n SchemaExtension: function SchemaExtension(_ref32) {\n var directives = _ref32.directives,\n operationTypes = _ref32.operationTypes;\n return join(['extend schema', join(directives, ' '), block(operationTypes)], ' ');\n },\n ScalarTypeExtension: function ScalarTypeExtension(_ref33) {\n var name = _ref33.name,\n directives = _ref33.directives;\n return join(['extend scalar', name, join(directives, ' ')], ' ');\n },\n ObjectTypeExtension: function ObjectTypeExtension(_ref34) {\n var name = _ref34.name,\n interfaces = _ref34.interfaces,\n directives = _ref34.directives,\n fields = _ref34.fields;\n return join(['extend type', name, wrap('implements ', join(interfaces, ' & ')), join(directives, ' '), block(fields)], ' ');\n },\n InterfaceTypeExtension: function InterfaceTypeExtension(_ref35) {\n var name = _ref35.name,\n interfaces = _ref35.interfaces,\n directives = _ref35.directives,\n fields = _ref35.fields;\n return join(['extend interface', name, wrap('implements ', join(interfaces, ' & ')), join(directives, ' '), block(fields)], ' ');\n },\n UnionTypeExtension: function UnionTypeExtension(_ref36) {\n var name = _ref36.name,\n directives = _ref36.directives,\n types = _ref36.types;\n return join(['extend union', name, join(directives, ' '), types && types.length !== 0 ? '= ' + join(types, ' | ') : ''], ' ');\n },\n EnumTypeExtension: function EnumTypeExtension(_ref37) {\n var name = _ref37.name,\n directives = _ref37.directives,\n values = _ref37.values;\n return join(['extend enum', name, join(directives, ' '), block(values)], ' ');\n },\n InputObjectTypeExtension: function InputObjectTypeExtension(_ref38) {\n var name = _ref38.name,\n directives = _ref38.directives,\n fields = _ref38.fields;\n return join(['extend input', name, join(directives, ' '), block(fields)], ' ');\n }\n};\n\nfunction addDescription(cb) {\n return function (node) {\n return join([node.description, cb(node)], '\\n');\n };\n}\n/**\n * Given maybeArray, print an empty string if it is null or empty, otherwise\n * print all items together separated by separator if provided\n */\n\n\nfunction join(maybeArray) {\n var _maybeArray$filter$jo;\n\n var separator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n return (_maybeArray$filter$jo = maybeArray === null || maybeArray === void 0 ? void 0 : maybeArray.filter(function (x) {\n return x;\n }).join(separator)) !== null && _maybeArray$filter$jo !== void 0 ? _maybeArray$filter$jo : '';\n}\n/**\n * Given array, print each item on its own line, wrapped in an\n * indented \"{ }\" block.\n */\n\n\nfunction block(array) {\n return wrap('{\\n', indent(join(array, '\\n')), '\\n}');\n}\n/**\n * If maybeString is not null or empty, then wrap with start and end, otherwise print an empty string.\n */\n\n\nfunction wrap(start, maybeString) {\n var end = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';\n return maybeString != null && maybeString !== '' ? start + maybeString + end : '';\n}\n\nfunction indent(str) {\n return wrap(' ', str.replace(/\\n/g, '\\n '));\n}\n\nfunction isMultiline(str) {\n return str.indexOf('\\n') !== -1;\n}\n\nfunction hasMultilineItems(maybeArray) {\n return maybeArray != null && maybeArray.some(isMultiline);\n}","import { __assign, __spreadArray } from \"tslib\";\nimport { print } from 'graphql';\n;\nvar defaultHttpOptions = {\n includeQuery: true,\n includeExtensions: false,\n preserveHeaderCase: false\n};\nvar defaultHeaders = {\n accept: '*/*',\n 'content-type': 'application/json'\n};\nvar defaultOptions = {\n method: 'POST'\n};\nexport var fallbackHttpConfig = {\n http: defaultHttpOptions,\n headers: defaultHeaders,\n options: defaultOptions\n};\nexport var defaultPrinter = function defaultPrinter(ast, printer) {\n return printer(ast);\n};\nexport function selectHttpOptionsAndBody(operation, fallbackConfig) {\n var configs = [];\n\n for (var _i = 2; _i < arguments.length; _i++) {\n configs[_i - 2] = arguments[_i];\n }\n\n configs.unshift(fallbackConfig);\n return selectHttpOptionsAndBodyInternal.apply(void 0, __spreadArray([operation, defaultPrinter], configs, false));\n}\nexport function selectHttpOptionsAndBodyInternal(operation, printer) {\n var configs = [];\n\n for (var _i = 2; _i < arguments.length; _i++) {\n configs[_i - 2] = arguments[_i];\n }\n\n var options = {};\n var http = {};\n configs.forEach(function (config) {\n options = __assign(__assign(__assign({}, options), config.options), {\n headers: __assign(__assign({}, options.headers), config.headers)\n });\n\n if (config.credentials) {\n options.credentials = config.credentials;\n }\n\n http = __assign(__assign({}, http), config.http);\n });\n options.headers = removeDuplicateHeaders(options.headers, http.preserveHeaderCase);\n var operationName = operation.operationName,\n extensions = operation.extensions,\n variables = operation.variables,\n query = operation.query;\n var body = {\n operationName: operationName,\n variables: variables\n };\n if (http.includeExtensions) body.extensions = extensions;\n if (http.includeQuery) body.query = printer(query, print);\n return {\n options: options,\n body: body\n };\n}\n;\n\nfunction removeDuplicateHeaders(headers, preserveHeaderCase) {\n if (!preserveHeaderCase) {\n var normalizedHeaders_1 = Object.create(null);\n Object.keys(Object(headers)).forEach(function (name) {\n normalizedHeaders_1[name.toLowerCase()] = headers[name];\n });\n return normalizedHeaders_1;\n }\n\n var headerData = Object.create(null);\n Object.keys(Object(headers)).forEach(function (name) {\n headerData[name.toLowerCase()] = {\n originalName: name,\n value: headers[name]\n };\n });\n var normalizedHeaders = Object.create(null);\n Object.keys(headerData).forEach(function (name) {\n normalizedHeaders[headerData[name].originalName] = headerData[name].value;\n });\n return normalizedHeaders;\n}","export var createSignalIfSupported = function createSignalIfSupported() {\n if (typeof AbortController === 'undefined') return {\n controller: false,\n signal: false\n };\n var controller = new AbortController();\n var signal = controller.signal;\n return {\n controller: controller,\n signal: signal\n };\n};","import { Observable } from \"../../utilities/index.js\";\nexport function fromError(errorValue) {\n return new Observable(function (observer) {\n observer.error(errorValue);\n });\n}","import { __assign, __rest } from \"tslib\";\nimport \"../../utilities/globals/index.js\";\nimport { visit } from 'graphql';\nimport { ApolloLink } from \"../core/index.js\";\nimport { Observable, hasDirectives } from \"../../utilities/index.js\";\nimport { serializeFetchParameter } from \"./serializeFetchParameter.js\";\nimport { selectURI } from \"./selectURI.js\";\nimport { handleError, readMultipartBody, readJsonBody } from \"./parseAndCheckHttpResponse.js\";\nimport { checkFetcher } from \"./checkFetcher.js\";\nimport { selectHttpOptionsAndBodyInternal, defaultPrinter, fallbackHttpConfig } from \"./selectHttpOptionsAndBody.js\";\nimport { createSignalIfSupported } from \"./createSignalIfSupported.js\";\nimport { rewriteURIForGET } from \"./rewriteURIForGET.js\";\nimport { fromError } from \"../utils/index.js\";\nimport { maybe } from \"../../utilities/index.js\";\nvar backupFetch = maybe(function () {\n return fetch;\n});\nexport var createHttpLink = function createHttpLink(linkOptions) {\n if (linkOptions === void 0) {\n linkOptions = {};\n }\n\n var _a = linkOptions.uri,\n uri = _a === void 0 ? '/graphql' : _a,\n preferredFetch = linkOptions.fetch,\n _b = linkOptions.print,\n print = _b === void 0 ? defaultPrinter : _b,\n includeExtensions = linkOptions.includeExtensions,\n preserveHeaderCase = linkOptions.preserveHeaderCase,\n useGETForQueries = linkOptions.useGETForQueries,\n _c = linkOptions.includeUnusedVariables,\n includeUnusedVariables = _c === void 0 ? false : _c,\n requestOptions = __rest(linkOptions, [\"uri\", \"fetch\", \"print\", \"includeExtensions\", \"preserveHeaderCase\", \"useGETForQueries\", \"includeUnusedVariables\"]);\n\n if (__DEV__) {\n checkFetcher(preferredFetch || backupFetch);\n }\n\n var linkConfig = {\n http: {\n includeExtensions: includeExtensions,\n preserveHeaderCase: preserveHeaderCase\n },\n options: requestOptions.fetchOptions,\n credentials: requestOptions.credentials,\n headers: requestOptions.headers\n };\n return new ApolloLink(function (operation) {\n var chosenURI = selectURI(operation, uri);\n var context = operation.getContext();\n var clientAwarenessHeaders = {};\n\n if (context.clientAwareness) {\n var _a = context.clientAwareness,\n name_1 = _a.name,\n version = _a.version;\n\n if (name_1) {\n clientAwarenessHeaders['apollographql-client-name'] = name_1;\n }\n\n if (version) {\n clientAwarenessHeaders['apollographql-client-version'] = version;\n }\n }\n\n var contextHeaders = __assign(__assign({}, clientAwarenessHeaders), context.headers);\n\n var contextConfig = {\n http: context.http,\n options: context.fetchOptions,\n credentials: context.credentials,\n headers: contextHeaders\n };\n\n var _b = selectHttpOptionsAndBodyInternal(operation, print, fallbackHttpConfig, linkConfig, contextConfig),\n options = _b.options,\n body = _b.body;\n\n if (body.variables && !includeUnusedVariables) {\n var unusedNames_1 = new Set(Object.keys(body.variables));\n visit(operation.query, {\n Variable: function Variable(node, _key, parent) {\n if (parent && parent.kind !== 'VariableDefinition') {\n unusedNames_1.delete(node.name.value);\n }\n }\n });\n\n if (unusedNames_1.size) {\n body.variables = __assign({}, body.variables);\n unusedNames_1.forEach(function (name) {\n delete body.variables[name];\n });\n }\n }\n\n var controller;\n\n if (!options.signal) {\n var _c = createSignalIfSupported(),\n _controller = _c.controller,\n signal = _c.signal;\n\n controller = _controller;\n if (controller) options.signal = signal;\n }\n\n var definitionIsMutation = function definitionIsMutation(d) {\n return d.kind === 'OperationDefinition' && d.operation === 'mutation';\n };\n\n if (useGETForQueries && !operation.query.definitions.some(definitionIsMutation)) {\n options.method = 'GET';\n }\n\n if (hasDirectives(['defer'], operation.query)) {\n options.headers.accept = \"multipart/mixed; deferSpec=20220824, application/json\";\n }\n\n if (options.method === 'GET') {\n var _d = rewriteURIForGET(chosenURI, body),\n newURI = _d.newURI,\n parseError = _d.parseError;\n\n if (parseError) {\n return fromError(parseError);\n }\n\n chosenURI = newURI;\n } else {\n try {\n options.body = serializeFetchParameter(body, 'Payload');\n } catch (parseError) {\n return fromError(parseError);\n }\n }\n\n return new Observable(function (observer) {\n var currentFetch = preferredFetch || maybe(function () {\n return fetch;\n }) || backupFetch;\n currentFetch(chosenURI, options).then(function (response) {\n var _a;\n\n operation.setContext({\n response: response\n });\n var ctype = (_a = response.headers) === null || _a === void 0 ? void 0 : _a.get('content-type');\n\n if (ctype !== null && /^multipart\\/mixed/i.test(ctype)) {\n return readMultipartBody(response, observer);\n } else {\n return readJsonBody(response, operation, observer);\n }\n }).catch(function (err) {\n return handleError(err, observer);\n });\n return function () {\n if (controller) controller.abort();\n };\n });\n });\n};","import { serializeFetchParameter } from \"./serializeFetchParameter.js\";\nexport function rewriteURIForGET(chosenURI, body) {\n var queryParams = [];\n\n var addQueryParam = function addQueryParam(key, value) {\n queryParams.push(\"\".concat(key, \"=\").concat(encodeURIComponent(value)));\n };\n\n if ('query' in body) {\n addQueryParam('query', body.query);\n }\n\n if (body.operationName) {\n addQueryParam('operationName', body.operationName);\n }\n\n if (body.variables) {\n var serializedVariables = void 0;\n\n try {\n serializedVariables = serializeFetchParameter(body.variables, 'Variables map');\n } catch (parseError) {\n return {\n parseError: parseError\n };\n }\n\n addQueryParam('variables', serializedVariables);\n }\n\n if (body.extensions) {\n var serializedExtensions = void 0;\n\n try {\n serializedExtensions = serializeFetchParameter(body.extensions, 'Extensions map');\n } catch (parseError) {\n return {\n parseError: parseError\n };\n }\n\n addQueryParam('extensions', serializedExtensions);\n }\n\n var fragment = '',\n preFragment = chosenURI;\n var fragmentStart = chosenURI.indexOf('#');\n\n if (fragmentStart !== -1) {\n fragment = chosenURI.substr(fragmentStart);\n preFragment = chosenURI.substr(0, fragmentStart);\n }\n\n var queryParamsPrefix = preFragment.indexOf('?') === -1 ? '?' : '&';\n var newURI = preFragment + queryParamsPrefix + queryParams.join('&') + fragment;\n return {\n newURI: newURI\n };\n}","import { __extends } from \"tslib\";\nimport { ApolloLink } from \"../core/index.js\";\nimport { createHttpLink } from \"./createHttpLink.js\";\n\nvar HttpLink = function (_super) {\n __extends(HttpLink, _super);\n\n function HttpLink(options) {\n if (options === void 0) {\n options = {};\n }\n\n var _this = _super.call(this, createHttpLink(options).request) || this;\n\n _this.options = options;\n return _this;\n }\n\n return HttpLink;\n}(ApolloLink);\n\nexport { HttpLink };","import { __assign, __spreadArray } from \"tslib\";\nimport { isNonNullObject } from \"./objects.js\";\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nexport function mergeDeep() {\n var sources = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n sources[_i] = arguments[_i];\n }\n\n return mergeDeepArray(sources);\n}\nexport function mergeDeepArray(sources) {\n var target = sources[0] || {};\n var count = sources.length;\n\n if (count > 1) {\n var merger = new DeepMerger();\n\n for (var i = 1; i < count; ++i) {\n target = merger.merge(target, sources[i]);\n }\n }\n\n return target;\n}\n\nvar defaultReconciler = function defaultReconciler(target, source, property) {\n return this.merge(target[property], source[property]);\n};\n\nvar DeepMerger = function () {\n function DeepMerger(reconciler) {\n if (reconciler === void 0) {\n reconciler = defaultReconciler;\n }\n\n this.reconciler = reconciler;\n this.isObject = isNonNullObject;\n this.pastCopies = new Set();\n }\n\n DeepMerger.prototype.merge = function (target, source) {\n var _this = this;\n\n var context = [];\n\n for (var _i = 2; _i < arguments.length; _i++) {\n context[_i - 2] = arguments[_i];\n }\n\n if (isNonNullObject(source) && isNonNullObject(target)) {\n Object.keys(source).forEach(function (sourceKey) {\n if (hasOwnProperty.call(target, sourceKey)) {\n var targetValue = target[sourceKey];\n\n if (source[sourceKey] !== targetValue) {\n var result = _this.reconciler.apply(_this, __spreadArray([target, source, sourceKey], context, false));\n\n if (result !== targetValue) {\n target = _this.shallowCopyForMerge(target);\n target[sourceKey] = result;\n }\n }\n } else {\n target = _this.shallowCopyForMerge(target);\n target[sourceKey] = source[sourceKey];\n }\n });\n return target;\n }\n\n return source;\n };\n\n DeepMerger.prototype.shallowCopyForMerge = function (value) {\n if (isNonNullObject(value)) {\n if (!this.pastCopies.has(value)) {\n if (Array.isArray(value)) {\n value = value.slice(0);\n } else {\n value = __assign({\n __proto__: Object.getPrototypeOf(value)\n }, value);\n }\n\n this.pastCopies.add(value);\n }\n }\n\n return value;\n };\n\n return DeepMerger;\n}();\n\nexport { DeepMerger };","import { isReference, isField, DeepMerger, resultKeyNameFromField, shouldInclude, isNonNullObject, compact, createFragmentMap, getFragmentDefinitions } from \"../../utilities/index.js\";\nexport var hasOwn = Object.prototype.hasOwnProperty;\nexport function isNullish(value) {\n return value === null || value === void 0;\n}\nexport var isArray = Array.isArray;\nexport function defaultDataIdFromObject(_a, context) {\n var __typename = _a.__typename,\n id = _a.id,\n _id = _a._id;\n\n if (typeof __typename === \"string\") {\n if (context) {\n context.keyObject = !isNullish(id) ? {\n id: id\n } : !isNullish(_id) ? {\n _id: _id\n } : void 0;\n }\n\n if (isNullish(id) && !isNullish(_id)) {\n id = _id;\n }\n\n if (!isNullish(id)) {\n return \"\".concat(__typename, \":\").concat(typeof id === \"number\" || typeof id === \"string\" ? id : JSON.stringify(id));\n }\n }\n}\nvar defaultConfig = {\n dataIdFromObject: defaultDataIdFromObject,\n addTypename: true,\n resultCaching: true,\n canonizeResults: false\n};\nexport function normalizeConfig(config) {\n return compact(defaultConfig, config);\n}\nexport function shouldCanonizeResults(config) {\n var value = config.canonizeResults;\n return value === void 0 ? defaultConfig.canonizeResults : value;\n}\nexport function getTypenameFromStoreObject(store, objectOrReference) {\n return isReference(objectOrReference) ? store.get(objectOrReference.__ref, \"__typename\") : objectOrReference && objectOrReference.__typename;\n}\nexport var TypeOrFieldNameRegExp = /^[_a-z][_0-9a-z]*/i;\nexport function fieldNameFromStoreName(storeFieldName) {\n var match = storeFieldName.match(TypeOrFieldNameRegExp);\n return match ? match[0] : storeFieldName;\n}\nexport function selectionSetMatchesResult(selectionSet, result, variables) {\n if (isNonNullObject(result)) {\n return isArray(result) ? result.every(function (item) {\n return selectionSetMatchesResult(selectionSet, item, variables);\n }) : selectionSet.selections.every(function (field) {\n if (isField(field) && shouldInclude(field, variables)) {\n var key = resultKeyNameFromField(field);\n return hasOwn.call(result, key) && (!field.selectionSet || selectionSetMatchesResult(field.selectionSet, result[key], variables));\n }\n\n return true;\n });\n }\n\n return false;\n}\nexport function storeValueIsStoreObject(value) {\n return isNonNullObject(value) && !isReference(value) && !isArray(value);\n}\nexport function makeProcessedFieldsMerger() {\n return new DeepMerger();\n}\nexport function extractFragmentContext(document, fragments) {\n var fragmentMap = createFragmentMap(getFragmentDefinitions(document));\n return {\n fragmentMap: fragmentMap,\n lookupFragment: function lookupFragment(name) {\n var def = fragmentMap[name];\n\n if (!def && fragments) {\n def = fragments.lookup(name);\n }\n\n return def || null;\n }\n };\n}","import { __assign } from \"tslib\";\nimport \"../../utilities/globals/index.js\";\nimport { Trie } from \"@wry/trie\";\nimport { canUseWeakMap, canUseWeakSet, isNonNullObject as isObjectOrArray } from \"../../utilities/index.js\";\nimport { isArray } from \"./helpers.js\";\n\nfunction shallowCopy(value) {\n if (isObjectOrArray(value)) {\n return isArray(value) ? value.slice(0) : __assign({\n __proto__: Object.getPrototypeOf(value)\n }, value);\n }\n\n return value;\n}\n\nvar ObjectCanon = function () {\n function ObjectCanon() {\n this.known = new (canUseWeakSet ? WeakSet : Set)();\n this.pool = new Trie(canUseWeakMap);\n this.passes = new WeakMap();\n this.keysByJSON = new Map();\n this.empty = this.admit({});\n }\n\n ObjectCanon.prototype.isKnown = function (value) {\n return isObjectOrArray(value) && this.known.has(value);\n };\n\n ObjectCanon.prototype.pass = function (value) {\n if (isObjectOrArray(value)) {\n var copy = shallowCopy(value);\n this.passes.set(copy, value);\n return copy;\n }\n\n return value;\n };\n\n ObjectCanon.prototype.admit = function (value) {\n var _this = this;\n\n if (isObjectOrArray(value)) {\n var original = this.passes.get(value);\n if (original) return original;\n var proto = Object.getPrototypeOf(value);\n\n switch (proto) {\n case Array.prototype:\n {\n if (this.known.has(value)) return value;\n var array = value.map(this.admit, this);\n var node = this.pool.lookupArray(array);\n\n if (!node.array) {\n this.known.add(node.array = array);\n\n if (__DEV__) {\n Object.freeze(array);\n }\n }\n\n return node.array;\n }\n\n case null:\n case Object.prototype:\n {\n if (this.known.has(value)) return value;\n var proto_1 = Object.getPrototypeOf(value);\n var array_1 = [proto_1];\n var keys = this.sortedKeys(value);\n array_1.push(keys.json);\n var firstValueIndex_1 = array_1.length;\n keys.sorted.forEach(function (key) {\n array_1.push(_this.admit(value[key]));\n });\n var node = this.pool.lookupArray(array_1);\n\n if (!node.object) {\n var obj_1 = node.object = Object.create(proto_1);\n this.known.add(obj_1);\n keys.sorted.forEach(function (key, i) {\n obj_1[key] = array_1[firstValueIndex_1 + i];\n });\n\n if (__DEV__) {\n Object.freeze(obj_1);\n }\n }\n\n return node.object;\n }\n }\n }\n\n return value;\n };\n\n ObjectCanon.prototype.sortedKeys = function (obj) {\n var keys = Object.keys(obj);\n var node = this.pool.lookupArray(keys);\n\n if (!node.keys) {\n keys.sort();\n var json = JSON.stringify(keys);\n\n if (!(node.keys = this.keysByJSON.get(json))) {\n this.keysByJSON.set(json, node.keys = {\n sorted: keys,\n json: json\n });\n }\n }\n\n return node.keys;\n };\n\n return ObjectCanon;\n}();\n\nexport { ObjectCanon };\nexport var canonicalStringify = Object.assign(function (value) {\n if (isObjectOrArray(value)) {\n if (stringifyCanon === void 0) {\n resetCanonicalStringify();\n }\n\n var canonical = stringifyCanon.admit(value);\n var json = stringifyCache.get(canonical);\n\n if (json === void 0) {\n stringifyCache.set(canonical, json = JSON.stringify(canonical));\n }\n\n return json;\n }\n\n return JSON.stringify(value);\n}, {\n reset: resetCanonicalStringify\n});\nvar stringifyCanon;\nvar stringifyCache;\n\nfunction resetCanonicalStringify() {\n stringifyCanon = new ObjectCanon();\n stringifyCache = new (canUseWeakMap ? WeakMap : Map)();\n}","import { Observable } from \"./Observable.js\";\nexport function asyncMap(observable, mapFn, catchFn) {\n return new Observable(function (observer) {\n var next = observer.next,\n error = observer.error,\n _complete = observer.complete;\n var activeCallbackCount = 0;\n var completed = false;\n var promiseQueue = {\n then: function then(callback) {\n return new Promise(function (resolve) {\n return resolve(callback());\n });\n }\n };\n\n function makeCallback(examiner, delegate) {\n if (examiner) {\n return function (arg) {\n ++activeCallbackCount;\n\n var both = function both() {\n return examiner(arg);\n };\n\n promiseQueue = promiseQueue.then(both, both).then(function (result) {\n --activeCallbackCount;\n next && next.call(observer, result);\n\n if (completed) {\n handler.complete();\n }\n }, function (error) {\n --activeCallbackCount;\n throw error;\n }).catch(function (caught) {\n error && error.call(observer, caught);\n });\n };\n } else {\n return function (arg) {\n return delegate && delegate.call(observer, arg);\n };\n }\n }\n\n var handler = {\n next: makeCallback(mapFn, next),\n error: makeCallback(catchFn, error),\n complete: function complete() {\n completed = true;\n\n if (!activeCallbackCount) {\n _complete && _complete.call(observer);\n }\n }\n };\n var sub = observable.subscribe(handler);\n return function () {\n return sub.unsubscribe();\n };\n });\n}","export function graphQLResultHasError(result) {\n return result.errors && result.errors.length > 0 || false;\n}","export function filterInPlace(array, test, context) {\n var target = 0;\n array.forEach(function (elem, i) {\n if (test.call(this, elem, i, array)) {\n array[target++] = elem;\n }\n }, context);\n array.length = target;\n return array;\n}","import { __assign, __spreadArray } from \"tslib\";\nimport { invariant } from \"../globals/index.js\";\nimport { visit } from 'graphql';\nimport { checkDocument, getOperationDefinition, getFragmentDefinition, getFragmentDefinitions, getMainDefinition } from \"./getFromAST.js\";\nimport { filterInPlace } from \"../common/filterInPlace.js\";\nimport { isField, isInlineFragment } from \"./storeUtils.js\";\nimport { createFragmentMap } from \"./fragments.js\";\nvar TYPENAME_FIELD = {\n kind: 'Field',\n name: {\n kind: 'Name',\n value: '__typename'\n }\n};\n\nfunction isEmpty(op, fragmentMap) {\n return !op || op.selectionSet.selections.every(function (selection) {\n return selection.kind === 'FragmentSpread' && isEmpty(fragmentMap[selection.name.value], fragmentMap);\n });\n}\n\nfunction nullIfDocIsEmpty(doc) {\n return isEmpty(getOperationDefinition(doc) || getFragmentDefinition(doc), createFragmentMap(getFragmentDefinitions(doc))) ? null : doc;\n}\n\nfunction getDirectiveMatcher(directives) {\n return function directiveMatcher(directive) {\n return directives.some(function (dir) {\n return dir.name && dir.name === directive.name.value || dir.test && dir.test(directive);\n });\n };\n}\n\nexport function removeDirectivesFromDocument(directives, doc) {\n var variablesInUse = Object.create(null);\n var variablesToRemove = [];\n var fragmentSpreadsInUse = Object.create(null);\n var fragmentSpreadsToRemove = [];\n var modifiedDoc = nullIfDocIsEmpty(visit(doc, {\n Variable: {\n enter: function enter(node, _key, parent) {\n if (parent.kind !== 'VariableDefinition') {\n variablesInUse[node.name.value] = true;\n }\n }\n },\n Field: {\n enter: function enter(node) {\n if (directives && node.directives) {\n var shouldRemoveField = directives.some(function (directive) {\n return directive.remove;\n });\n\n if (shouldRemoveField && node.directives && node.directives.some(getDirectiveMatcher(directives))) {\n if (node.arguments) {\n node.arguments.forEach(function (arg) {\n if (arg.value.kind === 'Variable') {\n variablesToRemove.push({\n name: arg.value.name.value\n });\n }\n });\n }\n\n if (node.selectionSet) {\n getAllFragmentSpreadsFromSelectionSet(node.selectionSet).forEach(function (frag) {\n fragmentSpreadsToRemove.push({\n name: frag.name.value\n });\n });\n }\n\n return null;\n }\n }\n }\n },\n FragmentSpread: {\n enter: function enter(node) {\n fragmentSpreadsInUse[node.name.value] = true;\n }\n },\n Directive: {\n enter: function enter(node) {\n if (getDirectiveMatcher(directives)(node)) {\n return null;\n }\n }\n }\n }));\n\n if (modifiedDoc && filterInPlace(variablesToRemove, function (v) {\n return !!v.name && !variablesInUse[v.name];\n }).length) {\n modifiedDoc = removeArgumentsFromDocument(variablesToRemove, modifiedDoc);\n }\n\n if (modifiedDoc && filterInPlace(fragmentSpreadsToRemove, function (fs) {\n return !!fs.name && !fragmentSpreadsInUse[fs.name];\n }).length) {\n modifiedDoc = removeFragmentSpreadFromDocument(fragmentSpreadsToRemove, modifiedDoc);\n }\n\n return modifiedDoc;\n}\nexport var addTypenameToDocument = Object.assign(function (doc) {\n return visit(doc, {\n SelectionSet: {\n enter: function enter(node, _key, parent) {\n if (parent && parent.kind === 'OperationDefinition') {\n return;\n }\n\n var selections = node.selections;\n\n if (!selections) {\n return;\n }\n\n var skip = selections.some(function (selection) {\n return isField(selection) && (selection.name.value === '__typename' || selection.name.value.lastIndexOf('__', 0) === 0);\n });\n\n if (skip) {\n return;\n }\n\n var field = parent;\n\n if (isField(field) && field.directives && field.directives.some(function (d) {\n return d.name.value === 'export';\n })) {\n return;\n }\n\n return __assign(__assign({}, node), {\n selections: __spreadArray(__spreadArray([], selections, true), [TYPENAME_FIELD], false)\n });\n }\n }\n });\n}, {\n added: function added(field) {\n return field === TYPENAME_FIELD;\n }\n});\nvar connectionRemoveConfig = {\n test: function test(directive) {\n var willRemove = directive.name.value === 'connection';\n\n if (willRemove) {\n if (!directive.arguments || !directive.arguments.some(function (arg) {\n return arg.name.value === 'key';\n })) {\n __DEV__ && invariant.warn('Removing an @connection directive even though it does not have a key. ' + 'You may want to use the key parameter to specify a store key.');\n }\n }\n\n return willRemove;\n }\n};\nexport function removeConnectionDirectiveFromDocument(doc) {\n return removeDirectivesFromDocument([connectionRemoveConfig], checkDocument(doc));\n}\n\nfunction hasDirectivesInSelectionSet(directives, selectionSet, nestedCheck) {\n if (nestedCheck === void 0) {\n nestedCheck = true;\n }\n\n return !!selectionSet && selectionSet.selections && selectionSet.selections.some(function (selection) {\n return hasDirectivesInSelection(directives, selection, nestedCheck);\n });\n}\n\nfunction hasDirectivesInSelection(directives, selection, nestedCheck) {\n if (nestedCheck === void 0) {\n nestedCheck = true;\n }\n\n if (!isField(selection)) {\n return true;\n }\n\n if (!selection.directives) {\n return false;\n }\n\n return selection.directives.some(getDirectiveMatcher(directives)) || nestedCheck && hasDirectivesInSelectionSet(directives, selection.selectionSet, nestedCheck);\n}\n\nfunction getArgumentMatcher(config) {\n return function argumentMatcher(argument) {\n return config.some(function (aConfig) {\n return argument.value && argument.value.kind === 'Variable' && argument.value.name && (aConfig.name === argument.value.name.value || aConfig.test && aConfig.test(argument));\n });\n };\n}\n\nexport function removeArgumentsFromDocument(config, doc) {\n var argMatcher = getArgumentMatcher(config);\n return nullIfDocIsEmpty(visit(doc, {\n OperationDefinition: {\n enter: function enter(node) {\n return __assign(__assign({}, node), {\n variableDefinitions: node.variableDefinitions ? node.variableDefinitions.filter(function (varDef) {\n return !config.some(function (arg) {\n return arg.name === varDef.variable.name.value;\n });\n }) : []\n });\n }\n },\n Field: {\n enter: function enter(node) {\n var shouldRemoveField = config.some(function (argConfig) {\n return argConfig.remove;\n });\n\n if (shouldRemoveField) {\n var argMatchCount_1 = 0;\n\n if (node.arguments) {\n node.arguments.forEach(function (arg) {\n if (argMatcher(arg)) {\n argMatchCount_1 += 1;\n }\n });\n }\n\n if (argMatchCount_1 === 1) {\n return null;\n }\n }\n }\n },\n Argument: {\n enter: function enter(node) {\n if (argMatcher(node)) {\n return null;\n }\n }\n }\n }));\n}\nexport function removeFragmentSpreadFromDocument(config, doc) {\n function enter(node) {\n if (config.some(function (def) {\n return def.name === node.name.value;\n })) {\n return null;\n }\n }\n\n return nullIfDocIsEmpty(visit(doc, {\n FragmentSpread: {\n enter: enter\n },\n FragmentDefinition: {\n enter: enter\n }\n }));\n}\n\nfunction getAllFragmentSpreadsFromSelectionSet(selectionSet) {\n var allFragments = [];\n selectionSet.selections.forEach(function (selection) {\n if ((isField(selection) || isInlineFragment(selection)) && selection.selectionSet) {\n getAllFragmentSpreadsFromSelectionSet(selection.selectionSet).forEach(function (frag) {\n return allFragments.push(frag);\n });\n } else if (selection.kind === 'FragmentSpread') {\n allFragments.push(selection);\n }\n });\n return allFragments;\n}\n\nexport function buildQueryFromSelectionSet(document) {\n var definition = getMainDefinition(document);\n var definitionOperation = definition.operation;\n\n if (definitionOperation === 'query') {\n return document;\n }\n\n var modifiedDoc = visit(document, {\n OperationDefinition: {\n enter: function enter(node) {\n return __assign(__assign({}, node), {\n operation: 'query'\n });\n }\n }\n });\n return modifiedDoc;\n}\nexport function removeClientSetsFromDocument(document) {\n checkDocument(document);\n var modifiedDoc = removeDirectivesFromDocument([{\n test: function test(directive) {\n return directive.name.value === 'client';\n },\n remove: true\n }], document);\n\n if (modifiedDoc) {\n modifiedDoc = visit(modifiedDoc, {\n FragmentDefinition: {\n enter: function enter(node) {\n if (node.selectionSet) {\n var isTypenameOnly = node.selectionSet.selections.every(function (selection) {\n return isField(selection) && selection.name.value === '__typename';\n });\n\n if (isTypenameOnly) {\n return null;\n }\n }\n }\n }\n });\n }\n\n return modifiedDoc;\n}","var prefixCounts = new Map();\nexport function makeUniqueId(prefix) {\n var count = prefixCounts.get(prefix) || 1;\n prefixCounts.set(prefix, count + 1);\n return \"\".concat(prefix, \":\").concat(count, \":\").concat(Math.random().toString(36).slice(2));\n}","export function iterateObserversSafely(observers, method, argument) {\n var observersWithMethod = [];\n observers.forEach(function (obs) {\n return obs[method] && observersWithMethod.push(obs);\n });\n observersWithMethod.forEach(function (obs) {\n return obs[method](argument);\n });\n}","import { Observable } from \"./Observable.js\";\nimport { canUseSymbol } from \"../common/canUse.js\";\nexport function fixObservableSubclass(subclass) {\n function set(key) {\n Object.defineProperty(subclass, key, {\n value: Observable\n });\n }\n\n if (canUseSymbol && Symbol.species) {\n set(Symbol.species);\n }\n\n set(\"@@species\");\n return subclass;\n}","import { __extends } from \"tslib\";\nimport { Observable } from \"./Observable.js\";\nimport { iterateObserversSafely } from \"./iteration.js\";\nimport { fixObservableSubclass } from \"./subclassing.js\";\n\nfunction isPromiseLike(value) {\n return value && typeof value.then === \"function\";\n}\n\nvar Concast = function (_super) {\n __extends(Concast, _super);\n\n function Concast(sources) {\n var _this = _super.call(this, function (observer) {\n _this.addObserver(observer);\n\n return function () {\n return _this.removeObserver(observer);\n };\n }) || this;\n\n _this.observers = new Set();\n _this.promise = new Promise(function (resolve, reject) {\n _this.resolve = resolve;\n _this.reject = reject;\n });\n _this.handlers = {\n next: function next(result) {\n if (_this.sub !== null) {\n _this.latest = [\"next\", result];\n\n _this.notify(\"next\", result);\n\n iterateObserversSafely(_this.observers, \"next\", result);\n }\n },\n error: function error(_error) {\n var sub = _this.sub;\n\n if (sub !== null) {\n if (sub) setTimeout(function () {\n return sub.unsubscribe();\n });\n _this.sub = null;\n _this.latest = [\"error\", _error];\n\n _this.reject(_error);\n\n _this.notify(\"error\", _error);\n\n iterateObserversSafely(_this.observers, \"error\", _error);\n }\n },\n complete: function complete() {\n var sub = _this.sub;\n\n if (sub !== null) {\n var value = _this.sources.shift();\n\n if (!value) {\n if (sub) setTimeout(function () {\n return sub.unsubscribe();\n });\n _this.sub = null;\n\n if (_this.latest && _this.latest[0] === \"next\") {\n _this.resolve(_this.latest[1]);\n } else {\n _this.resolve();\n }\n\n _this.notify(\"complete\");\n\n iterateObserversSafely(_this.observers, \"complete\");\n } else if (isPromiseLike(value)) {\n value.then(function (obs) {\n return _this.sub = obs.subscribe(_this.handlers);\n });\n } else {\n _this.sub = value.subscribe(_this.handlers);\n }\n }\n }\n };\n _this.nextResultListeners = new Set();\n\n _this.cancel = function (reason) {\n _this.reject(reason);\n\n _this.sources = [];\n\n _this.handlers.complete();\n };\n\n _this.promise.catch(function (_) {});\n\n if (typeof sources === \"function\") {\n sources = [new Observable(sources)];\n }\n\n if (isPromiseLike(sources)) {\n sources.then(function (iterable) {\n return _this.start(iterable);\n }, _this.handlers.error);\n } else {\n _this.start(sources);\n }\n\n return _this;\n }\n\n Concast.prototype.start = function (sources) {\n if (this.sub !== void 0) return;\n this.sources = Array.from(sources);\n this.handlers.complete();\n };\n\n Concast.prototype.deliverLastMessage = function (observer) {\n if (this.latest) {\n var nextOrError = this.latest[0];\n var method = observer[nextOrError];\n\n if (method) {\n method.call(observer, this.latest[1]);\n }\n\n if (this.sub === null && nextOrError === \"next\" && observer.complete) {\n observer.complete();\n }\n }\n };\n\n Concast.prototype.addObserver = function (observer) {\n if (!this.observers.has(observer)) {\n this.deliverLastMessage(observer);\n this.observers.add(observer);\n }\n };\n\n Concast.prototype.removeObserver = function (observer) {\n if (this.observers.delete(observer) && this.observers.size < 1) {\n this.handlers.complete();\n }\n };\n\n Concast.prototype.notify = function (method, arg) {\n var nextResultListeners = this.nextResultListeners;\n\n if (nextResultListeners.size) {\n this.nextResultListeners = new Set();\n nextResultListeners.forEach(function (listener) {\n return listener(method, arg);\n });\n }\n };\n\n Concast.prototype.beforeNext = function (callback) {\n var called = false;\n this.nextResultListeners.add(function (method, arg) {\n if (!called) {\n called = true;\n callback(method, arg);\n }\n });\n };\n\n return Concast;\n}(Observable);\n\nexport { Concast };\nfixObservableSubclass(Concast);","var toString = Object.prototype.toString;\nexport function cloneDeep(value) {\n return cloneDeepHelper(value);\n}\n\nfunction cloneDeepHelper(val, seen) {\n switch (toString.call(val)) {\n case \"[object Array]\":\n {\n seen = seen || new Map();\n if (seen.has(val)) return seen.get(val);\n var copy_1 = val.slice(0);\n seen.set(val, copy_1);\n copy_1.forEach(function (child, i) {\n copy_1[i] = cloneDeepHelper(child, seen);\n });\n return copy_1;\n }\n\n case \"[object Object]\":\n {\n seen = seen || new Map();\n if (seen.has(val)) return seen.get(val);\n var copy_2 = Object.create(Object.getPrototypeOf(val));\n seen.set(val, copy_2);\n Object.keys(val).forEach(function (key) {\n copy_2[key] = cloneDeepHelper(val[key], seen);\n });\n return copy_2;\n }\n\n default:\n return val;\n }\n}","import { __assign, __extends } from \"tslib\";\nimport { invariant } from \"../utilities/globals/index.js\";\nimport { equal } from '@wry/equality';\nimport { NetworkStatus, isNetworkRequestInFlight } from \"./networkStatus.js\";\nimport { cloneDeep, compact, getOperationDefinition, Observable, iterateObserversSafely, isNonEmptyArray, fixObservableSubclass, getQueryDefinition } from \"../utilities/index.js\";\nvar assign = Object.assign,\n hasOwnProperty = Object.hasOwnProperty;\n\nvar ObservableQuery = function (_super) {\n __extends(ObservableQuery, _super);\n\n function ObservableQuery(_a) {\n var queryManager = _a.queryManager,\n queryInfo = _a.queryInfo,\n options = _a.options;\n\n var _this = _super.call(this, function (observer) {\n try {\n var subObserver = observer._subscription._observer;\n\n if (subObserver && !subObserver.error) {\n subObserver.error = defaultSubscriptionObserverErrorCallback;\n }\n } catch (_a) {}\n\n var first = !_this.observers.size;\n\n _this.observers.add(observer);\n\n var last = _this.last;\n\n if (last && last.error) {\n observer.error && observer.error(last.error);\n } else if (last && last.result) {\n observer.next && observer.next(last.result);\n }\n\n if (first) {\n _this.reobserve().catch(function () {});\n }\n\n return function () {\n if (_this.observers.delete(observer) && !_this.observers.size) {\n _this.tearDownQuery();\n }\n };\n }) || this;\n\n _this.observers = new Set();\n _this.subscriptions = new Set();\n _this.queryInfo = queryInfo;\n _this.queryManager = queryManager;\n _this.isTornDown = false;\n\n var _b = queryManager.defaultOptions.watchQuery,\n _c = _b === void 0 ? {} : _b,\n _d = _c.fetchPolicy,\n defaultFetchPolicy = _d === void 0 ? \"cache-first\" : _d;\n\n var _e = options.fetchPolicy,\n fetchPolicy = _e === void 0 ? defaultFetchPolicy : _e,\n _f = options.initialFetchPolicy,\n initialFetchPolicy = _f === void 0 ? fetchPolicy === \"standby\" ? defaultFetchPolicy : fetchPolicy : _f;\n _this.options = __assign(__assign({}, options), {\n initialFetchPolicy: initialFetchPolicy,\n fetchPolicy: fetchPolicy\n });\n _this.queryId = queryInfo.queryId || queryManager.generateQueryId();\n var opDef = getOperationDefinition(_this.query);\n _this.queryName = opDef && opDef.name && opDef.name.value;\n return _this;\n }\n\n Object.defineProperty(ObservableQuery.prototype, \"query\", {\n get: function get() {\n return this.queryManager.transform(this.options.query).document;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ObservableQuery.prototype, \"variables\", {\n get: function get() {\n return this.options.variables;\n },\n enumerable: false,\n configurable: true\n });\n\n ObservableQuery.prototype.result = function () {\n var _this = this;\n\n return new Promise(function (resolve, reject) {\n var observer = {\n next: function next(result) {\n resolve(result);\n\n _this.observers.delete(observer);\n\n if (!_this.observers.size) {\n _this.queryManager.removeQuery(_this.queryId);\n }\n\n setTimeout(function () {\n subscription.unsubscribe();\n }, 0);\n },\n error: reject\n };\n\n var subscription = _this.subscribe(observer);\n });\n };\n\n ObservableQuery.prototype.getCurrentResult = function (saveAsLastResult) {\n if (saveAsLastResult === void 0) {\n saveAsLastResult = true;\n }\n\n var lastResult = this.getLastResult(true);\n var networkStatus = this.queryInfo.networkStatus || lastResult && lastResult.networkStatus || NetworkStatus.ready;\n\n var result = __assign(__assign({}, lastResult), {\n loading: isNetworkRequestInFlight(networkStatus),\n networkStatus: networkStatus\n });\n\n var _a = this.options.fetchPolicy,\n fetchPolicy = _a === void 0 ? \"cache-first\" : _a;\n\n if (fetchPolicy === 'network-only' || fetchPolicy === 'no-cache' || fetchPolicy === 'standby' || this.queryManager.transform(this.options.query).hasForcedResolvers) {} else {\n var diff = this.queryInfo.getDiff();\n\n if (diff.complete || this.options.returnPartialData) {\n result.data = diff.result;\n }\n\n if (equal(result.data, {})) {\n result.data = void 0;\n }\n\n if (diff.complete) {\n delete result.partial;\n\n if (diff.complete && result.networkStatus === NetworkStatus.loading && (fetchPolicy === 'cache-first' || fetchPolicy === 'cache-only')) {\n result.networkStatus = NetworkStatus.ready;\n result.loading = false;\n }\n } else {\n result.partial = true;\n }\n\n if (__DEV__ && !diff.complete && !this.options.partialRefetch && !result.loading && !result.data && !result.error) {\n logMissingFieldErrors(diff.missing);\n }\n }\n\n if (saveAsLastResult) {\n this.updateLastResult(result);\n }\n\n return result;\n };\n\n ObservableQuery.prototype.isDifferentFromLastResult = function (newResult, variables) {\n return !this.last || !equal(this.last.result, newResult) || variables && !equal(this.last.variables, variables);\n };\n\n ObservableQuery.prototype.getLast = function (key, variablesMustMatch) {\n var last = this.last;\n\n if (last && last[key] && (!variablesMustMatch || equal(last.variables, this.variables))) {\n return last[key];\n }\n };\n\n ObservableQuery.prototype.getLastResult = function (variablesMustMatch) {\n return this.getLast(\"result\", variablesMustMatch);\n };\n\n ObservableQuery.prototype.getLastError = function (variablesMustMatch) {\n return this.getLast(\"error\", variablesMustMatch);\n };\n\n ObservableQuery.prototype.resetLastResults = function () {\n delete this.last;\n this.isTornDown = false;\n };\n\n ObservableQuery.prototype.resetQueryStoreErrors = function () {\n this.queryManager.resetErrors(this.queryId);\n };\n\n ObservableQuery.prototype.refetch = function (variables) {\n var _a;\n\n var reobserveOptions = {\n pollInterval: 0\n };\n var fetchPolicy = this.options.fetchPolicy;\n\n if (fetchPolicy === 'cache-and-network') {\n reobserveOptions.fetchPolicy = fetchPolicy;\n } else if (fetchPolicy === 'no-cache') {\n reobserveOptions.fetchPolicy = 'no-cache';\n } else {\n reobserveOptions.fetchPolicy = 'network-only';\n }\n\n if (__DEV__ && variables && hasOwnProperty.call(variables, \"variables\")) {\n var queryDef = getQueryDefinition(this.query);\n var vars = queryDef.variableDefinitions;\n\n if (!vars || !vars.some(function (v) {\n return v.variable.name.value === \"variables\";\n })) {\n __DEV__ && invariant.warn(\"Called refetch(\".concat(JSON.stringify(variables), \") for query \").concat(((_a = queryDef.name) === null || _a === void 0 ? void 0 : _a.value) || JSON.stringify(queryDef), \", which does not declare a $variables variable.\\nDid you mean to call refetch(variables) instead of refetch({ variables })?\"));\n }\n }\n\n if (variables && !equal(this.options.variables, variables)) {\n reobserveOptions.variables = this.options.variables = __assign(__assign({}, this.options.variables), variables);\n }\n\n this.queryInfo.resetLastWrite();\n return this.reobserve(reobserveOptions, NetworkStatus.refetch);\n };\n\n ObservableQuery.prototype.fetchMore = function (fetchMoreOptions) {\n var _this = this;\n\n var combinedOptions = __assign(__assign({}, fetchMoreOptions.query ? fetchMoreOptions : __assign(__assign(__assign(__assign({}, this.options), {\n query: this.query\n }), fetchMoreOptions), {\n variables: __assign(__assign({}, this.options.variables), fetchMoreOptions.variables)\n })), {\n fetchPolicy: \"no-cache\"\n });\n\n var qid = this.queryManager.generateQueryId();\n var queryInfo = this.queryInfo;\n var originalNetworkStatus = queryInfo.networkStatus;\n queryInfo.networkStatus = NetworkStatus.fetchMore;\n\n if (combinedOptions.notifyOnNetworkStatusChange) {\n this.observe();\n }\n\n var updatedQuerySet = new Set();\n return this.queryManager.fetchQuery(qid, combinedOptions, NetworkStatus.fetchMore).then(function (fetchMoreResult) {\n _this.queryManager.removeQuery(qid);\n\n if (queryInfo.networkStatus === NetworkStatus.fetchMore) {\n queryInfo.networkStatus = originalNetworkStatus;\n }\n\n _this.queryManager.cache.batch({\n update: function update(cache) {\n var updateQuery = fetchMoreOptions.updateQuery;\n\n if (updateQuery) {\n cache.updateQuery({\n query: _this.query,\n variables: _this.variables,\n returnPartialData: true,\n optimistic: false\n }, function (previous) {\n return updateQuery(previous, {\n fetchMoreResult: fetchMoreResult.data,\n variables: combinedOptions.variables\n });\n });\n } else {\n cache.writeQuery({\n query: combinedOptions.query,\n variables: combinedOptions.variables,\n data: fetchMoreResult.data\n });\n }\n },\n onWatchUpdated: function onWatchUpdated(watch) {\n updatedQuerySet.add(watch.query);\n }\n });\n\n return fetchMoreResult;\n }).finally(function () {\n if (!updatedQuerySet.has(_this.query)) {\n reobserveCacheFirst(_this);\n }\n });\n };\n\n ObservableQuery.prototype.subscribeToMore = function (options) {\n var _this = this;\n\n var subscription = this.queryManager.startGraphQLSubscription({\n query: options.document,\n variables: options.variables,\n context: options.context\n }).subscribe({\n next: function next(subscriptionData) {\n var updateQuery = options.updateQuery;\n\n if (updateQuery) {\n _this.updateQuery(function (previous, _a) {\n var variables = _a.variables;\n return updateQuery(previous, {\n subscriptionData: subscriptionData,\n variables: variables\n });\n });\n }\n },\n error: function error(err) {\n if (options.onError) {\n options.onError(err);\n return;\n }\n\n __DEV__ && invariant.error('Unhandled GraphQL subscription error', err);\n }\n });\n this.subscriptions.add(subscription);\n return function () {\n if (_this.subscriptions.delete(subscription)) {\n subscription.unsubscribe();\n }\n };\n };\n\n ObservableQuery.prototype.setOptions = function (newOptions) {\n return this.reobserve(newOptions);\n };\n\n ObservableQuery.prototype.setVariables = function (variables) {\n if (equal(this.variables, variables)) {\n return this.observers.size ? this.result() : Promise.resolve();\n }\n\n this.options.variables = variables;\n\n if (!this.observers.size) {\n return Promise.resolve();\n }\n\n return this.reobserve({\n fetchPolicy: this.options.initialFetchPolicy,\n variables: variables\n }, NetworkStatus.setVariables);\n };\n\n ObservableQuery.prototype.updateQuery = function (mapFn) {\n var queryManager = this.queryManager;\n var result = queryManager.cache.diff({\n query: this.options.query,\n variables: this.variables,\n returnPartialData: true,\n optimistic: false\n }).result;\n var newResult = mapFn(result, {\n variables: this.variables\n });\n\n if (newResult) {\n queryManager.cache.writeQuery({\n query: this.options.query,\n data: newResult,\n variables: this.variables\n });\n queryManager.broadcastQueries();\n }\n };\n\n ObservableQuery.prototype.startPolling = function (pollInterval) {\n this.options.pollInterval = pollInterval;\n this.updatePolling();\n };\n\n ObservableQuery.prototype.stopPolling = function () {\n this.options.pollInterval = 0;\n this.updatePolling();\n };\n\n ObservableQuery.prototype.applyNextFetchPolicy = function (reason, options) {\n if (options.nextFetchPolicy) {\n var _a = options.fetchPolicy,\n fetchPolicy = _a === void 0 ? \"cache-first\" : _a,\n _b = options.initialFetchPolicy,\n initialFetchPolicy = _b === void 0 ? fetchPolicy : _b;\n\n if (fetchPolicy === \"standby\") {} else if (typeof options.nextFetchPolicy === \"function\") {\n options.fetchPolicy = options.nextFetchPolicy(fetchPolicy, {\n reason: reason,\n options: options,\n observable: this,\n initialFetchPolicy: initialFetchPolicy\n });\n } else if (reason === \"variables-changed\") {\n options.fetchPolicy = initialFetchPolicy;\n } else {\n options.fetchPolicy = options.nextFetchPolicy;\n }\n }\n\n return options.fetchPolicy;\n };\n\n ObservableQuery.prototype.fetch = function (options, newNetworkStatus) {\n this.queryManager.setObservableQuery(this);\n return this.queryManager.fetchQueryObservable(this.queryId, options, newNetworkStatus);\n };\n\n ObservableQuery.prototype.updatePolling = function () {\n var _this = this;\n\n if (this.queryManager.ssrMode) {\n return;\n }\n\n var _a = this,\n pollingInfo = _a.pollingInfo,\n pollInterval = _a.options.pollInterval;\n\n if (!pollInterval) {\n if (pollingInfo) {\n clearTimeout(pollingInfo.timeout);\n delete this.pollingInfo;\n }\n\n return;\n }\n\n if (pollingInfo && pollingInfo.interval === pollInterval) {\n return;\n }\n\n __DEV__ ? invariant(pollInterval, 'Attempted to start a polling query without a polling interval.') : invariant(pollInterval, 12);\n var info = pollingInfo || (this.pollingInfo = {});\n info.interval = pollInterval;\n\n var maybeFetch = function maybeFetch() {\n if (_this.pollingInfo) {\n if (!isNetworkRequestInFlight(_this.queryInfo.networkStatus)) {\n _this.reobserve({\n fetchPolicy: _this.options.initialFetchPolicy === 'no-cache' ? 'no-cache' : 'network-only'\n }, NetworkStatus.poll).then(poll, poll);\n } else {\n poll();\n }\n }\n\n ;\n };\n\n var poll = function poll() {\n var info = _this.pollingInfo;\n\n if (info) {\n clearTimeout(info.timeout);\n info.timeout = setTimeout(maybeFetch, info.interval);\n }\n };\n\n poll();\n };\n\n ObservableQuery.prototype.updateLastResult = function (newResult, variables) {\n if (variables === void 0) {\n variables = this.variables;\n }\n\n this.last = __assign(__assign({}, this.last), {\n result: this.queryManager.assumeImmutableResults ? newResult : cloneDeep(newResult),\n variables: variables\n });\n\n if (!isNonEmptyArray(newResult.errors)) {\n delete this.last.error;\n }\n\n return this.last;\n };\n\n ObservableQuery.prototype.reobserve = function (newOptions, newNetworkStatus) {\n var _this = this;\n\n this.isTornDown = false;\n var useDisposableConcast = newNetworkStatus === NetworkStatus.refetch || newNetworkStatus === NetworkStatus.fetchMore || newNetworkStatus === NetworkStatus.poll;\n var oldVariables = this.options.variables;\n var oldFetchPolicy = this.options.fetchPolicy;\n var mergedOptions = compact(this.options, newOptions || {});\n var options = useDisposableConcast ? mergedOptions : assign(this.options, mergedOptions);\n\n if (!useDisposableConcast) {\n this.updatePolling();\n\n if (newOptions && newOptions.variables && !equal(newOptions.variables, oldVariables) && options.fetchPolicy !== \"standby\" && options.fetchPolicy === oldFetchPolicy) {\n this.applyNextFetchPolicy(\"variables-changed\", options);\n\n if (newNetworkStatus === void 0) {\n newNetworkStatus = NetworkStatus.setVariables;\n }\n }\n }\n\n var variables = options.variables && __assign({}, options.variables);\n\n var concast = this.fetch(options, newNetworkStatus);\n var observer = {\n next: function next(result) {\n _this.reportResult(result, variables);\n },\n error: function error(_error) {\n _this.reportError(_error, variables);\n }\n };\n\n if (!useDisposableConcast) {\n if (this.concast && this.observer) {\n this.concast.removeObserver(this.observer);\n }\n\n this.concast = concast;\n this.observer = observer;\n }\n\n concast.addObserver(observer);\n return concast.promise;\n };\n\n ObservableQuery.prototype.observe = function () {\n this.reportResult(this.getCurrentResult(false), this.variables);\n };\n\n ObservableQuery.prototype.reportResult = function (result, variables) {\n var lastError = this.getLastError();\n\n if (lastError || this.isDifferentFromLastResult(result, variables)) {\n if (lastError || !result.partial || this.options.returnPartialData) {\n this.updateLastResult(result, variables);\n }\n\n iterateObserversSafely(this.observers, 'next', result);\n }\n };\n\n ObservableQuery.prototype.reportError = function (error, variables) {\n var errorResult = __assign(__assign({}, this.getLastResult()), {\n error: error,\n errors: error.graphQLErrors,\n networkStatus: NetworkStatus.error,\n loading: false\n });\n\n this.updateLastResult(errorResult, variables);\n iterateObserversSafely(this.observers, 'error', this.last.error = error);\n };\n\n ObservableQuery.prototype.hasObservers = function () {\n return this.observers.size > 0;\n };\n\n ObservableQuery.prototype.tearDownQuery = function () {\n if (this.isTornDown) return;\n\n if (this.concast && this.observer) {\n this.concast.removeObserver(this.observer);\n delete this.concast;\n delete this.observer;\n }\n\n this.stopPolling();\n this.subscriptions.forEach(function (sub) {\n return sub.unsubscribe();\n });\n this.subscriptions.clear();\n this.queryManager.stopQuery(this.queryId);\n this.observers.clear();\n this.isTornDown = true;\n };\n\n return ObservableQuery;\n}(Observable);\n\nexport { ObservableQuery };\nfixObservableSubclass(ObservableQuery);\nexport function reobserveCacheFirst(obsQuery) {\n var _a = obsQuery.options,\n fetchPolicy = _a.fetchPolicy,\n _nextFetchPolicy = _a.nextFetchPolicy;\n\n if (fetchPolicy === \"cache-and-network\" || fetchPolicy === \"network-only\") {\n return obsQuery.reobserve({\n fetchPolicy: \"cache-first\",\n nextFetchPolicy: function nextFetchPolicy() {\n this.nextFetchPolicy = _nextFetchPolicy;\n\n if (typeof _nextFetchPolicy === \"function\") {\n return _nextFetchPolicy.apply(this, arguments);\n }\n\n return fetchPolicy;\n }\n });\n }\n\n return obsQuery.reobserve();\n}\n\nfunction defaultSubscriptionObserverErrorCallback(error) {\n __DEV__ && invariant.error('Unhandled error', error.message, error.stack);\n}\n\nexport function logMissingFieldErrors(missing) {\n if (__DEV__ && missing) {\n __DEV__ && invariant.debug(\"Missing cache result fields: \".concat(JSON.stringify(missing)), missing);\n }\n}","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { invariant } from \"../utilities/globals/index.js\";\nimport { visit, BREAK } from 'graphql';\nimport { argumentsObjectFromField, buildQueryFromSelectionSet, createFragmentMap, getFragmentDefinitions, getMainDefinition, hasDirectives, isField, isInlineFragment, mergeDeep, mergeDeepArray, removeClientSetsFromDocument, resultKeyNameFromField, shouldInclude } from \"../utilities/index.js\";\nimport { cacheSlot } from \"../cache/index.js\";\n\nvar LocalState = function () {\n function LocalState(_a) {\n var cache = _a.cache,\n client = _a.client,\n resolvers = _a.resolvers,\n fragmentMatcher = _a.fragmentMatcher;\n this.cache = cache;\n\n if (client) {\n this.client = client;\n }\n\n if (resolvers) {\n this.addResolvers(resolvers);\n }\n\n if (fragmentMatcher) {\n this.setFragmentMatcher(fragmentMatcher);\n }\n }\n\n LocalState.prototype.addResolvers = function (resolvers) {\n var _this = this;\n\n this.resolvers = this.resolvers || {};\n\n if (Array.isArray(resolvers)) {\n resolvers.forEach(function (resolverGroup) {\n _this.resolvers = mergeDeep(_this.resolvers, resolverGroup);\n });\n } else {\n this.resolvers = mergeDeep(this.resolvers, resolvers);\n }\n };\n\n LocalState.prototype.setResolvers = function (resolvers) {\n this.resolvers = {};\n this.addResolvers(resolvers);\n };\n\n LocalState.prototype.getResolvers = function () {\n return this.resolvers || {};\n };\n\n LocalState.prototype.runResolvers = function (_a) {\n var document = _a.document,\n remoteResult = _a.remoteResult,\n context = _a.context,\n variables = _a.variables,\n _b = _a.onlyRunForcedResolvers,\n onlyRunForcedResolvers = _b === void 0 ? false : _b;\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_c) {\n if (document) {\n return [2, this.resolveDocument(document, remoteResult.data, context, variables, this.fragmentMatcher, onlyRunForcedResolvers).then(function (localResult) {\n return __assign(__assign({}, remoteResult), {\n data: localResult.result\n });\n })];\n }\n\n return [2, remoteResult];\n });\n });\n };\n\n LocalState.prototype.setFragmentMatcher = function (fragmentMatcher) {\n this.fragmentMatcher = fragmentMatcher;\n };\n\n LocalState.prototype.getFragmentMatcher = function () {\n return this.fragmentMatcher;\n };\n\n LocalState.prototype.clientQuery = function (document) {\n if (hasDirectives(['client'], document)) {\n if (this.resolvers) {\n return document;\n }\n }\n\n return null;\n };\n\n LocalState.prototype.serverQuery = function (document) {\n return removeClientSetsFromDocument(document);\n };\n\n LocalState.prototype.prepareContext = function (context) {\n var cache = this.cache;\n return __assign(__assign({}, context), {\n cache: cache,\n getCacheKey: function getCacheKey(obj) {\n return cache.identify(obj);\n }\n });\n };\n\n LocalState.prototype.addExportedVariables = function (document, variables, context) {\n if (variables === void 0) {\n variables = {};\n }\n\n if (context === void 0) {\n context = {};\n }\n\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (document) {\n return [2, this.resolveDocument(document, this.buildRootValueFromCache(document, variables) || {}, this.prepareContext(context), variables).then(function (data) {\n return __assign(__assign({}, variables), data.exportedVariables);\n })];\n }\n\n return [2, __assign({}, variables)];\n });\n });\n };\n\n LocalState.prototype.shouldForceResolvers = function (document) {\n var forceResolvers = false;\n visit(document, {\n Directive: {\n enter: function enter(node) {\n if (node.name.value === 'client' && node.arguments) {\n forceResolvers = node.arguments.some(function (arg) {\n return arg.name.value === 'always' && arg.value.kind === 'BooleanValue' && arg.value.value === true;\n });\n\n if (forceResolvers) {\n return BREAK;\n }\n }\n }\n }\n });\n return forceResolvers;\n };\n\n LocalState.prototype.buildRootValueFromCache = function (document, variables) {\n return this.cache.diff({\n query: buildQueryFromSelectionSet(document),\n variables: variables,\n returnPartialData: true,\n optimistic: false\n }).result;\n };\n\n LocalState.prototype.resolveDocument = function (document, rootValue, context, variables, fragmentMatcher, onlyRunForcedResolvers) {\n if (context === void 0) {\n context = {};\n }\n\n if (variables === void 0) {\n variables = {};\n }\n\n if (fragmentMatcher === void 0) {\n fragmentMatcher = function fragmentMatcher() {\n return true;\n };\n }\n\n if (onlyRunForcedResolvers === void 0) {\n onlyRunForcedResolvers = false;\n }\n\n return __awaiter(this, void 0, void 0, function () {\n var mainDefinition, fragments, fragmentMap, definitionOperation, defaultOperationType, _a, cache, client, execContext;\n\n return __generator(this, function (_b) {\n mainDefinition = getMainDefinition(document);\n fragments = getFragmentDefinitions(document);\n fragmentMap = createFragmentMap(fragments);\n definitionOperation = mainDefinition.operation;\n defaultOperationType = definitionOperation ? definitionOperation.charAt(0).toUpperCase() + definitionOperation.slice(1) : 'Query';\n _a = this, cache = _a.cache, client = _a.client;\n execContext = {\n fragmentMap: fragmentMap,\n context: __assign(__assign({}, context), {\n cache: cache,\n client: client\n }),\n variables: variables,\n fragmentMatcher: fragmentMatcher,\n defaultOperationType: defaultOperationType,\n exportedVariables: {},\n onlyRunForcedResolvers: onlyRunForcedResolvers\n };\n return [2, this.resolveSelectionSet(mainDefinition.selectionSet, rootValue, execContext).then(function (result) {\n return {\n result: result,\n exportedVariables: execContext.exportedVariables\n };\n })];\n });\n });\n };\n\n LocalState.prototype.resolveSelectionSet = function (selectionSet, rootValue, execContext) {\n return __awaiter(this, void 0, void 0, function () {\n var fragmentMap, context, variables, resultsToMerge, execute;\n\n var _this = this;\n\n return __generator(this, function (_a) {\n fragmentMap = execContext.fragmentMap, context = execContext.context, variables = execContext.variables;\n resultsToMerge = [rootValue];\n\n execute = function execute(selection) {\n return __awaiter(_this, void 0, void 0, function () {\n var fragment, typeCondition;\n return __generator(this, function (_a) {\n if (!shouldInclude(selection, variables)) {\n return [2];\n }\n\n if (isField(selection)) {\n return [2, this.resolveField(selection, rootValue, execContext).then(function (fieldResult) {\n var _a;\n\n if (typeof fieldResult !== 'undefined') {\n resultsToMerge.push((_a = {}, _a[resultKeyNameFromField(selection)] = fieldResult, _a));\n }\n })];\n }\n\n if (isInlineFragment(selection)) {\n fragment = selection;\n } else {\n fragment = fragmentMap[selection.name.value];\n __DEV__ ? invariant(fragment, \"No fragment named \".concat(selection.name.value)) : invariant(fragment, 11);\n }\n\n if (fragment && fragment.typeCondition) {\n typeCondition = fragment.typeCondition.name.value;\n\n if (execContext.fragmentMatcher(rootValue, typeCondition, context)) {\n return [2, this.resolveSelectionSet(fragment.selectionSet, rootValue, execContext).then(function (fragmentResult) {\n resultsToMerge.push(fragmentResult);\n })];\n }\n }\n\n return [2];\n });\n });\n };\n\n return [2, Promise.all(selectionSet.selections.map(execute)).then(function () {\n return mergeDeepArray(resultsToMerge);\n })];\n });\n });\n };\n\n LocalState.prototype.resolveField = function (field, rootValue, execContext) {\n return __awaiter(this, void 0, void 0, function () {\n var variables, fieldName, aliasedFieldName, aliasUsed, defaultResult, resultPromise, resolverType, resolverMap, resolve;\n\n var _this = this;\n\n return __generator(this, function (_a) {\n variables = execContext.variables;\n fieldName = field.name.value;\n aliasedFieldName = resultKeyNameFromField(field);\n aliasUsed = fieldName !== aliasedFieldName;\n defaultResult = rootValue[aliasedFieldName] || rootValue[fieldName];\n resultPromise = Promise.resolve(defaultResult);\n\n if (!execContext.onlyRunForcedResolvers || this.shouldForceResolvers(field)) {\n resolverType = rootValue.__typename || execContext.defaultOperationType;\n resolverMap = this.resolvers && this.resolvers[resolverType];\n\n if (resolverMap) {\n resolve = resolverMap[aliasUsed ? fieldName : aliasedFieldName];\n\n if (resolve) {\n resultPromise = Promise.resolve(cacheSlot.withValue(this.cache, resolve, [rootValue, argumentsObjectFromField(field, variables), execContext.context, {\n field: field,\n fragmentMap: execContext.fragmentMap\n }]));\n }\n }\n }\n\n return [2, resultPromise.then(function (result) {\n if (result === void 0) {\n result = defaultResult;\n }\n\n if (field.directives) {\n field.directives.forEach(function (directive) {\n if (directive.name.value === 'export' && directive.arguments) {\n directive.arguments.forEach(function (arg) {\n if (arg.name.value === 'as' && arg.value.kind === 'StringValue') {\n execContext.exportedVariables[arg.value.value] = result;\n }\n });\n }\n });\n }\n\n if (!field.selectionSet) {\n return result;\n }\n\n if (result == null) {\n return result;\n }\n\n if (Array.isArray(result)) {\n return _this.resolveSubSelectedArray(field, result, execContext);\n }\n\n if (field.selectionSet) {\n return _this.resolveSelectionSet(field.selectionSet, result, execContext);\n }\n })];\n });\n });\n };\n\n LocalState.prototype.resolveSubSelectedArray = function (field, result, execContext) {\n var _this = this;\n\n return Promise.all(result.map(function (item) {\n if (item === null) {\n return null;\n }\n\n if (Array.isArray(item)) {\n return _this.resolveSubSelectedArray(field, item, execContext);\n }\n\n if (field.selectionSet) {\n return _this.resolveSelectionSet(field.selectionSet, item, execContext);\n }\n }));\n };\n\n return LocalState;\n}();\n\nexport { LocalState };","import { __assign } from \"tslib\";\nimport { equal } from \"@wry/equality\";\nimport { DeepMerger } from \"../utilities/index.js\";\nimport { reobserveCacheFirst } from \"./ObservableQuery.js\";\nimport { isNonEmptyArray, graphQLResultHasError, canUseWeakMap } from \"../utilities/index.js\";\nimport { NetworkStatus, isNetworkRequestInFlight } from \"./networkStatus.js\";\n;\nvar destructiveMethodCounts = new (canUseWeakMap ? WeakMap : Map)();\n\nfunction wrapDestructiveCacheMethod(cache, methodName) {\n var original = cache[methodName];\n\n if (typeof original === \"function\") {\n cache[methodName] = function () {\n destructiveMethodCounts.set(cache, (destructiveMethodCounts.get(cache) + 1) % 1e15);\n return original.apply(this, arguments);\n };\n }\n}\n\nfunction cancelNotifyTimeout(info) {\n if (info[\"notifyTimeout\"]) {\n clearTimeout(info[\"notifyTimeout\"]);\n info[\"notifyTimeout\"] = void 0;\n }\n}\n\nvar QueryInfo = function () {\n function QueryInfo(queryManager, queryId) {\n if (queryId === void 0) {\n queryId = queryManager.generateQueryId();\n }\n\n this.queryId = queryId;\n this.listeners = new Set();\n this.document = null;\n this.lastRequestId = 1;\n this.subscriptions = new Set();\n this.stopped = false;\n this.dirty = false;\n this.observableQuery = null;\n var cache = this.cache = queryManager.cache;\n\n if (!destructiveMethodCounts.has(cache)) {\n destructiveMethodCounts.set(cache, 0);\n wrapDestructiveCacheMethod(cache, \"evict\");\n wrapDestructiveCacheMethod(cache, \"modify\");\n wrapDestructiveCacheMethod(cache, \"reset\");\n }\n }\n\n QueryInfo.prototype.init = function (query) {\n var networkStatus = query.networkStatus || NetworkStatus.loading;\n\n if (this.variables && this.networkStatus !== NetworkStatus.loading && !equal(this.variables, query.variables)) {\n networkStatus = NetworkStatus.setVariables;\n }\n\n if (!equal(query.variables, this.variables)) {\n this.lastDiff = void 0;\n }\n\n Object.assign(this, {\n document: query.document,\n variables: query.variables,\n networkError: null,\n graphQLErrors: this.graphQLErrors || [],\n networkStatus: networkStatus\n });\n\n if (query.observableQuery) {\n this.setObservableQuery(query.observableQuery);\n }\n\n if (query.lastRequestId) {\n this.lastRequestId = query.lastRequestId;\n }\n\n return this;\n };\n\n QueryInfo.prototype.reset = function () {\n cancelNotifyTimeout(this);\n this.dirty = false;\n };\n\n QueryInfo.prototype.getDiff = function (variables) {\n if (variables === void 0) {\n variables = this.variables;\n }\n\n var options = this.getDiffOptions(variables);\n\n if (this.lastDiff && equal(options, this.lastDiff.options)) {\n return this.lastDiff.diff;\n }\n\n this.updateWatch(this.variables = variables);\n var oq = this.observableQuery;\n\n if (oq && oq.options.fetchPolicy === \"no-cache\") {\n return {\n complete: false\n };\n }\n\n var diff = this.cache.diff(options);\n this.updateLastDiff(diff, options);\n return diff;\n };\n\n QueryInfo.prototype.updateLastDiff = function (diff, options) {\n this.lastDiff = diff ? {\n diff: diff,\n options: options || this.getDiffOptions()\n } : void 0;\n };\n\n QueryInfo.prototype.getDiffOptions = function (variables) {\n var _a;\n\n if (variables === void 0) {\n variables = this.variables;\n }\n\n return {\n query: this.document,\n variables: variables,\n returnPartialData: true,\n optimistic: true,\n canonizeResults: (_a = this.observableQuery) === null || _a === void 0 ? void 0 : _a.options.canonizeResults\n };\n };\n\n QueryInfo.prototype.setDiff = function (diff) {\n var _this = this;\n\n var oldDiff = this.lastDiff && this.lastDiff.diff;\n this.updateLastDiff(diff);\n\n if (!this.dirty && !equal(oldDiff && oldDiff.result, diff && diff.result)) {\n this.dirty = true;\n\n if (!this.notifyTimeout) {\n this.notifyTimeout = setTimeout(function () {\n return _this.notify();\n }, 0);\n }\n }\n };\n\n QueryInfo.prototype.setObservableQuery = function (oq) {\n var _this = this;\n\n if (oq === this.observableQuery) return;\n\n if (this.oqListener) {\n this.listeners.delete(this.oqListener);\n }\n\n this.observableQuery = oq;\n\n if (oq) {\n oq[\"queryInfo\"] = this;\n this.listeners.add(this.oqListener = function () {\n var diff = _this.getDiff();\n\n if (diff.fromOptimisticTransaction) {\n oq[\"observe\"]();\n } else {\n reobserveCacheFirst(oq);\n }\n });\n } else {\n delete this.oqListener;\n }\n };\n\n QueryInfo.prototype.notify = function () {\n var _this = this;\n\n cancelNotifyTimeout(this);\n\n if (this.shouldNotify()) {\n this.listeners.forEach(function (listener) {\n return listener(_this);\n });\n }\n\n this.dirty = false;\n };\n\n QueryInfo.prototype.shouldNotify = function () {\n if (!this.dirty || !this.listeners.size) {\n return false;\n }\n\n if (isNetworkRequestInFlight(this.networkStatus) && this.observableQuery) {\n var fetchPolicy = this.observableQuery.options.fetchPolicy;\n\n if (fetchPolicy !== \"cache-only\" && fetchPolicy !== \"cache-and-network\") {\n return false;\n }\n }\n\n return true;\n };\n\n QueryInfo.prototype.stop = function () {\n if (!this.stopped) {\n this.stopped = true;\n this.reset();\n this.cancel();\n this.cancel = QueryInfo.prototype.cancel;\n this.subscriptions.forEach(function (sub) {\n return sub.unsubscribe();\n });\n var oq = this.observableQuery;\n if (oq) oq.stopPolling();\n }\n };\n\n QueryInfo.prototype.cancel = function () {};\n\n QueryInfo.prototype.updateWatch = function (variables) {\n var _this = this;\n\n if (variables === void 0) {\n variables = this.variables;\n }\n\n var oq = this.observableQuery;\n\n if (oq && oq.options.fetchPolicy === \"no-cache\") {\n return;\n }\n\n var watchOptions = __assign(__assign({}, this.getDiffOptions(variables)), {\n watcher: this,\n callback: function callback(diff) {\n return _this.setDiff(diff);\n }\n });\n\n if (!this.lastWatch || !equal(watchOptions, this.lastWatch)) {\n this.cancel();\n this.cancel = this.cache.watch(this.lastWatch = watchOptions);\n }\n };\n\n QueryInfo.prototype.resetLastWrite = function () {\n this.lastWrite = void 0;\n };\n\n QueryInfo.prototype.shouldWrite = function (result, variables) {\n var lastWrite = this.lastWrite;\n return !(lastWrite && lastWrite.dmCount === destructiveMethodCounts.get(this.cache) && equal(variables, lastWrite.variables) && equal(result.data, lastWrite.result.data));\n };\n\n QueryInfo.prototype.markResult = function (result, document, options, cacheWriteBehavior) {\n var _this = this;\n\n var graphQLErrors = isNonEmptyArray(result.errors) ? result.errors.slice(0) : [];\n this.reset();\n\n if ('incremental' in result && isNonEmptyArray(result.incremental)) {\n var mergedData_1 = this.getDiff().result;\n var merger_1 = new DeepMerger();\n result.incremental.forEach(function (_a) {\n var data = _a.data,\n path = _a.path,\n errors = _a.errors;\n\n for (var i = path.length - 1; i >= 0; --i) {\n var key = path[i];\n var isNumericKey = !isNaN(+key);\n var parent_1 = isNumericKey ? [] : {};\n parent_1[key] = data;\n data = parent_1;\n }\n\n if (errors) {\n graphQLErrors.push.apply(graphQLErrors, errors);\n }\n\n mergedData_1 = merger_1.merge(mergedData_1, data);\n });\n result.data = mergedData_1;\n }\n\n this.graphQLErrors = graphQLErrors;\n\n if (options.fetchPolicy === 'no-cache') {\n this.updateLastDiff({\n result: result.data,\n complete: true\n }, this.getDiffOptions(options.variables));\n } else if (cacheWriteBehavior !== 0) {\n if (shouldWriteResult(result, options.errorPolicy)) {\n this.cache.performTransaction(function (cache) {\n if (_this.shouldWrite(result, options.variables)) {\n cache.writeQuery({\n query: document,\n data: result.data,\n variables: options.variables,\n overwrite: cacheWriteBehavior === 1\n });\n _this.lastWrite = {\n result: result,\n variables: options.variables,\n dmCount: destructiveMethodCounts.get(_this.cache)\n };\n } else {\n if (_this.lastDiff && _this.lastDiff.diff.complete) {\n result.data = _this.lastDiff.diff.result;\n return;\n }\n }\n\n var diffOptions = _this.getDiffOptions(options.variables);\n\n var diff = cache.diff(diffOptions);\n\n if (!_this.stopped) {\n _this.updateWatch(options.variables);\n }\n\n _this.updateLastDiff(diff, diffOptions);\n\n if (diff.complete) {\n result.data = diff.result;\n }\n });\n } else {\n this.lastWrite = void 0;\n }\n }\n };\n\n QueryInfo.prototype.markReady = function () {\n this.networkError = null;\n return this.networkStatus = NetworkStatus.ready;\n };\n\n QueryInfo.prototype.markError = function (error) {\n this.networkStatus = NetworkStatus.error;\n this.lastWrite = void 0;\n this.reset();\n\n if (error.graphQLErrors) {\n this.graphQLErrors = error.graphQLErrors;\n }\n\n if (error.networkError) {\n this.networkError = error.networkError;\n }\n\n return error;\n };\n\n return QueryInfo;\n}();\n\nexport { QueryInfo };\nexport function shouldWriteResult(result, errorPolicy) {\n if (errorPolicy === void 0) {\n errorPolicy = \"none\";\n }\n\n var ignoreErrors = errorPolicy === \"ignore\" || errorPolicy === \"all\";\n var writeWithErrors = !graphQLResultHasError(result);\n\n if (!writeWithErrors && ignoreErrors && result.data) {\n writeWithErrors = true;\n }\n\n return writeWithErrors;\n}","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { invariant, InvariantError } from \"../utilities/globals/index.js\";\nimport { equal } from '@wry/equality';\nimport { execute } from \"../link/core/index.js\";\nimport { isExecutionPatchIncrementalResult } from \"../utilities/common/incrementalResult.js\";\nimport { canonicalStringify } from \"../cache/index.js\";\nimport { getDefaultValues, getOperationDefinition, getOperationName, hasClientExports, graphQLResultHasError, removeConnectionDirectiveFromDocument, canUseWeakMap, Observable, asyncMap, isNonEmptyArray, Concast, makeUniqueId, isDocumentNode, isNonNullObject, cloneDeep } from \"../utilities/index.js\";\nimport { ApolloError, isApolloError } from \"../errors/index.js\";\nimport { ObservableQuery, logMissingFieldErrors } from \"./ObservableQuery.js\";\nimport { NetworkStatus, isNetworkRequestInFlight } from \"./networkStatus.js\";\nimport { LocalState } from \"./LocalState.js\";\nimport { QueryInfo, shouldWriteResult } from \"./QueryInfo.js\";\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar QueryManager = function () {\n function QueryManager(_a) {\n var cache = _a.cache,\n link = _a.link,\n defaultOptions = _a.defaultOptions,\n _b = _a.queryDeduplication,\n queryDeduplication = _b === void 0 ? false : _b,\n onBroadcast = _a.onBroadcast,\n _c = _a.ssrMode,\n ssrMode = _c === void 0 ? false : _c,\n _d = _a.clientAwareness,\n clientAwareness = _d === void 0 ? {} : _d,\n localState = _a.localState,\n assumeImmutableResults = _a.assumeImmutableResults;\n this.clientAwareness = {};\n this.queries = new Map();\n this.fetchCancelFns = new Map();\n this.transformCache = new (canUseWeakMap ? WeakMap : Map)();\n this.queryIdCounter = 1;\n this.requestIdCounter = 1;\n this.mutationIdCounter = 1;\n this.inFlightLinkObservables = new Map();\n this.cache = cache;\n this.link = link;\n this.defaultOptions = defaultOptions || Object.create(null);\n this.queryDeduplication = queryDeduplication;\n this.clientAwareness = clientAwareness;\n this.localState = localState || new LocalState({\n cache: cache\n });\n this.ssrMode = ssrMode;\n this.assumeImmutableResults = !!assumeImmutableResults;\n\n if (this.onBroadcast = onBroadcast) {\n this.mutationStore = Object.create(null);\n }\n }\n\n QueryManager.prototype.stop = function () {\n var _this = this;\n\n this.queries.forEach(function (_info, queryId) {\n _this.stopQueryNoBroadcast(queryId);\n });\n this.cancelPendingFetches(__DEV__ ? new InvariantError('QueryManager stopped while query was in flight') : new InvariantError(13));\n };\n\n QueryManager.prototype.cancelPendingFetches = function (error) {\n this.fetchCancelFns.forEach(function (cancel) {\n return cancel(error);\n });\n this.fetchCancelFns.clear();\n };\n\n QueryManager.prototype.mutate = function (_a) {\n var _b, _c;\n\n var mutation = _a.mutation,\n variables = _a.variables,\n optimisticResponse = _a.optimisticResponse,\n updateQueries = _a.updateQueries,\n _d = _a.refetchQueries,\n refetchQueries = _d === void 0 ? [] : _d,\n _e = _a.awaitRefetchQueries,\n awaitRefetchQueries = _e === void 0 ? false : _e,\n updateWithProxyFn = _a.update,\n onQueryUpdated = _a.onQueryUpdated,\n _f = _a.fetchPolicy,\n fetchPolicy = _f === void 0 ? ((_b = this.defaultOptions.mutate) === null || _b === void 0 ? void 0 : _b.fetchPolicy) || \"network-only\" : _f,\n _g = _a.errorPolicy,\n errorPolicy = _g === void 0 ? ((_c = this.defaultOptions.mutate) === null || _c === void 0 ? void 0 : _c.errorPolicy) || \"none\" : _g,\n keepRootFields = _a.keepRootFields,\n context = _a.context;\n return __awaiter(this, void 0, void 0, function () {\n var mutationId, _h, document, hasClientExports, mutationStoreValue, self;\n\n return __generator(this, function (_j) {\n switch (_j.label) {\n case 0:\n __DEV__ ? invariant(mutation, 'mutation option is required. You must specify your GraphQL document in the mutation option.') : invariant(mutation, 14);\n __DEV__ ? invariant(fetchPolicy === 'network-only' || fetchPolicy === 'no-cache', \"Mutations support only 'network-only' or 'no-cache' fetchPolicy strings. The default `network-only` behavior automatically writes mutation results to the cache. Passing `no-cache` skips the cache write.\") : invariant(fetchPolicy === 'network-only' || fetchPolicy === 'no-cache', 15);\n mutationId = this.generateMutationId();\n _h = this.transform(mutation), document = _h.document, hasClientExports = _h.hasClientExports;\n mutation = this.cache.transformForLink(document);\n variables = this.getVariables(mutation, variables);\n if (!hasClientExports) return [3, 2];\n return [4, this.localState.addExportedVariables(mutation, variables, context)];\n\n case 1:\n variables = _j.sent();\n _j.label = 2;\n\n case 2:\n mutationStoreValue = this.mutationStore && (this.mutationStore[mutationId] = {\n mutation: mutation,\n variables: variables,\n loading: true,\n error: null\n });\n\n if (optimisticResponse) {\n this.markMutationOptimistic(optimisticResponse, {\n mutationId: mutationId,\n document: mutation,\n variables: variables,\n fetchPolicy: fetchPolicy,\n errorPolicy: errorPolicy,\n context: context,\n updateQueries: updateQueries,\n update: updateWithProxyFn,\n keepRootFields: keepRootFields\n });\n }\n\n this.broadcastQueries();\n self = this;\n return [2, new Promise(function (resolve, reject) {\n return asyncMap(self.getObservableFromLink(mutation, __assign(__assign({}, context), {\n optimisticResponse: optimisticResponse\n }), variables, false), function (result) {\n if (graphQLResultHasError(result) && errorPolicy === 'none') {\n throw new ApolloError({\n graphQLErrors: result.errors\n });\n }\n\n if (mutationStoreValue) {\n mutationStoreValue.loading = false;\n mutationStoreValue.error = null;\n }\n\n var storeResult = __assign({}, result);\n\n if (typeof refetchQueries === \"function\") {\n refetchQueries = refetchQueries(storeResult);\n }\n\n if (errorPolicy === 'ignore' && graphQLResultHasError(storeResult)) {\n delete storeResult.errors;\n }\n\n return self.markMutationResult({\n mutationId: mutationId,\n result: storeResult,\n document: mutation,\n variables: variables,\n fetchPolicy: fetchPolicy,\n errorPolicy: errorPolicy,\n context: context,\n update: updateWithProxyFn,\n updateQueries: updateQueries,\n awaitRefetchQueries: awaitRefetchQueries,\n refetchQueries: refetchQueries,\n removeOptimistic: optimisticResponse ? mutationId : void 0,\n onQueryUpdated: onQueryUpdated,\n keepRootFields: keepRootFields\n });\n }).subscribe({\n next: function next(storeResult) {\n self.broadcastQueries();\n resolve(storeResult);\n },\n error: function error(err) {\n if (mutationStoreValue) {\n mutationStoreValue.loading = false;\n mutationStoreValue.error = err;\n }\n\n if (optimisticResponse) {\n self.cache.removeOptimistic(mutationId);\n }\n\n self.broadcastQueries();\n reject(err instanceof ApolloError ? err : new ApolloError({\n networkError: err\n }));\n }\n });\n })];\n }\n });\n });\n };\n\n QueryManager.prototype.markMutationResult = function (mutation, cache) {\n var _this = this;\n\n if (cache === void 0) {\n cache = this.cache;\n }\n\n var result = mutation.result;\n var cacheWrites = [];\n var skipCache = mutation.fetchPolicy === \"no-cache\";\n\n if (!skipCache && shouldWriteResult(result, mutation.errorPolicy)) {\n cacheWrites.push({\n result: result.data,\n dataId: 'ROOT_MUTATION',\n query: mutation.document,\n variables: mutation.variables\n });\n var updateQueries_1 = mutation.updateQueries;\n\n if (updateQueries_1) {\n this.queries.forEach(function (_a, queryId) {\n var observableQuery = _a.observableQuery;\n var queryName = observableQuery && observableQuery.queryName;\n\n if (!queryName || !hasOwnProperty.call(updateQueries_1, queryName)) {\n return;\n }\n\n var updater = updateQueries_1[queryName];\n\n var _b = _this.queries.get(queryId),\n document = _b.document,\n variables = _b.variables;\n\n var _c = cache.diff({\n query: document,\n variables: variables,\n returnPartialData: true,\n optimistic: false\n }),\n currentQueryResult = _c.result,\n complete = _c.complete;\n\n if (complete && currentQueryResult) {\n var nextQueryResult = updater(currentQueryResult, {\n mutationResult: result,\n queryName: document && getOperationName(document) || void 0,\n queryVariables: variables\n });\n\n if (nextQueryResult) {\n cacheWrites.push({\n result: nextQueryResult,\n dataId: 'ROOT_QUERY',\n query: document,\n variables: variables\n });\n }\n }\n });\n }\n }\n\n if (cacheWrites.length > 0 || mutation.refetchQueries || mutation.update || mutation.onQueryUpdated || mutation.removeOptimistic) {\n var results_1 = [];\n this.refetchQueries({\n updateCache: function updateCache(cache) {\n if (!skipCache) {\n cacheWrites.forEach(function (write) {\n return cache.write(write);\n });\n }\n\n var update = mutation.update;\n\n if (update) {\n if (!skipCache) {\n var diff = cache.diff({\n id: \"ROOT_MUTATION\",\n query: _this.transform(mutation.document).asQuery,\n variables: mutation.variables,\n optimistic: false,\n returnPartialData: true\n });\n\n if (diff.complete && !isExecutionPatchIncrementalResult(result)) {\n result = __assign(__assign({}, result), {\n data: diff.result\n });\n }\n }\n\n update(cache, result, {\n context: mutation.context,\n variables: mutation.variables\n });\n }\n\n if (!skipCache && !mutation.keepRootFields) {\n cache.modify({\n id: 'ROOT_MUTATION',\n fields: function fields(value, _a) {\n var fieldName = _a.fieldName,\n DELETE = _a.DELETE;\n return fieldName === \"__typename\" ? value : DELETE;\n }\n });\n }\n },\n include: mutation.refetchQueries,\n optimistic: false,\n removeOptimistic: mutation.removeOptimistic,\n onQueryUpdated: mutation.onQueryUpdated || null\n }).forEach(function (result) {\n return results_1.push(result);\n });\n\n if (mutation.awaitRefetchQueries || mutation.onQueryUpdated) {\n return Promise.all(results_1).then(function () {\n return result;\n });\n }\n }\n\n return Promise.resolve(result);\n };\n\n QueryManager.prototype.markMutationOptimistic = function (optimisticResponse, mutation) {\n var _this = this;\n\n var data = typeof optimisticResponse === \"function\" ? optimisticResponse(mutation.variables) : optimisticResponse;\n return this.cache.recordOptimisticTransaction(function (cache) {\n try {\n _this.markMutationResult(__assign(__assign({}, mutation), {\n result: {\n data: data\n }\n }), cache);\n } catch (error) {\n __DEV__ && invariant.error(error);\n }\n }, mutation.mutationId);\n };\n\n QueryManager.prototype.fetchQuery = function (queryId, options, networkStatus) {\n return this.fetchQueryObservable(queryId, options, networkStatus).promise;\n };\n\n QueryManager.prototype.getQueryStore = function () {\n var store = Object.create(null);\n this.queries.forEach(function (info, queryId) {\n store[queryId] = {\n variables: info.variables,\n networkStatus: info.networkStatus,\n networkError: info.networkError,\n graphQLErrors: info.graphQLErrors\n };\n });\n return store;\n };\n\n QueryManager.prototype.resetErrors = function (queryId) {\n var queryInfo = this.queries.get(queryId);\n\n if (queryInfo) {\n queryInfo.networkError = undefined;\n queryInfo.graphQLErrors = [];\n }\n };\n\n QueryManager.prototype.transform = function (document) {\n var transformCache = this.transformCache;\n\n if (!transformCache.has(document)) {\n var transformed = this.cache.transformDocument(document);\n var noConnection = removeConnectionDirectiveFromDocument(transformed);\n var clientQuery = this.localState.clientQuery(transformed);\n var serverQuery = noConnection && this.localState.serverQuery(noConnection);\n var cacheEntry_1 = {\n document: transformed,\n hasClientExports: hasClientExports(transformed),\n hasForcedResolvers: this.localState.shouldForceResolvers(transformed),\n clientQuery: clientQuery,\n serverQuery: serverQuery,\n defaultVars: getDefaultValues(getOperationDefinition(transformed)),\n asQuery: __assign(__assign({}, transformed), {\n definitions: transformed.definitions.map(function (def) {\n if (def.kind === \"OperationDefinition\" && def.operation !== \"query\") {\n return __assign(__assign({}, def), {\n operation: \"query\"\n });\n }\n\n return def;\n })\n })\n };\n\n var add = function add(doc) {\n if (doc && !transformCache.has(doc)) {\n transformCache.set(doc, cacheEntry_1);\n }\n };\n\n add(document);\n add(transformed);\n add(clientQuery);\n add(serverQuery);\n }\n\n return transformCache.get(document);\n };\n\n QueryManager.prototype.getVariables = function (document, variables) {\n return __assign(__assign({}, this.transform(document).defaultVars), variables);\n };\n\n QueryManager.prototype.watchQuery = function (options) {\n options = __assign(__assign({}, options), {\n variables: this.getVariables(options.query, options.variables)\n });\n\n if (typeof options.notifyOnNetworkStatusChange === 'undefined') {\n options.notifyOnNetworkStatusChange = false;\n }\n\n var queryInfo = new QueryInfo(this);\n var observable = new ObservableQuery({\n queryManager: this,\n queryInfo: queryInfo,\n options: options\n });\n this.queries.set(observable.queryId, queryInfo);\n queryInfo.init({\n document: observable.query,\n observableQuery: observable,\n variables: observable.variables\n });\n return observable;\n };\n\n QueryManager.prototype.query = function (options, queryId) {\n var _this = this;\n\n if (queryId === void 0) {\n queryId = this.generateQueryId();\n }\n\n __DEV__ ? invariant(options.query, 'query option is required. You must specify your GraphQL document ' + 'in the query option.') : invariant(options.query, 16);\n __DEV__ ? invariant(options.query.kind === 'Document', 'You must wrap the query string in a \"gql\" tag.') : invariant(options.query.kind === 'Document', 17);\n __DEV__ ? invariant(!options.returnPartialData, 'returnPartialData option only supported on watchQuery.') : invariant(!options.returnPartialData, 18);\n __DEV__ ? invariant(!options.pollInterval, 'pollInterval option only supported on watchQuery.') : invariant(!options.pollInterval, 19);\n return this.fetchQuery(queryId, options).finally(function () {\n return _this.stopQuery(queryId);\n });\n };\n\n QueryManager.prototype.generateQueryId = function () {\n return String(this.queryIdCounter++);\n };\n\n QueryManager.prototype.generateRequestId = function () {\n return this.requestIdCounter++;\n };\n\n QueryManager.prototype.generateMutationId = function () {\n return String(this.mutationIdCounter++);\n };\n\n QueryManager.prototype.stopQueryInStore = function (queryId) {\n this.stopQueryInStoreNoBroadcast(queryId);\n this.broadcastQueries();\n };\n\n QueryManager.prototype.stopQueryInStoreNoBroadcast = function (queryId) {\n var queryInfo = this.queries.get(queryId);\n if (queryInfo) queryInfo.stop();\n };\n\n QueryManager.prototype.clearStore = function (options) {\n if (options === void 0) {\n options = {\n discardWatches: true\n };\n }\n\n this.cancelPendingFetches(__DEV__ ? new InvariantError('Store reset while query was in flight (not completed in link chain)') : new InvariantError(20));\n this.queries.forEach(function (queryInfo) {\n if (queryInfo.observableQuery) {\n queryInfo.networkStatus = NetworkStatus.loading;\n } else {\n queryInfo.stop();\n }\n });\n\n if (this.mutationStore) {\n this.mutationStore = Object.create(null);\n }\n\n return this.cache.reset(options);\n };\n\n QueryManager.prototype.getObservableQueries = function (include) {\n var _this = this;\n\n if (include === void 0) {\n include = \"active\";\n }\n\n var queries = new Map();\n var queryNamesAndDocs = new Map();\n var legacyQueryOptions = new Set();\n\n if (Array.isArray(include)) {\n include.forEach(function (desc) {\n if (typeof desc === \"string\") {\n queryNamesAndDocs.set(desc, false);\n } else if (isDocumentNode(desc)) {\n queryNamesAndDocs.set(_this.transform(desc).document, false);\n } else if (isNonNullObject(desc) && desc.query) {\n legacyQueryOptions.add(desc);\n }\n });\n }\n\n this.queries.forEach(function (_a, queryId) {\n var oq = _a.observableQuery,\n document = _a.document;\n\n if (oq) {\n if (include === \"all\") {\n queries.set(queryId, oq);\n return;\n }\n\n var queryName = oq.queryName,\n fetchPolicy = oq.options.fetchPolicy;\n\n if (fetchPolicy === \"standby\" || include === \"active\" && !oq.hasObservers()) {\n return;\n }\n\n if (include === \"active\" || queryName && queryNamesAndDocs.has(queryName) || document && queryNamesAndDocs.has(document)) {\n queries.set(queryId, oq);\n if (queryName) queryNamesAndDocs.set(queryName, true);\n if (document) queryNamesAndDocs.set(document, true);\n }\n }\n });\n\n if (legacyQueryOptions.size) {\n legacyQueryOptions.forEach(function (options) {\n var queryId = makeUniqueId(\"legacyOneTimeQuery\");\n\n var queryInfo = _this.getQuery(queryId).init({\n document: options.query,\n variables: options.variables\n });\n\n var oq = new ObservableQuery({\n queryManager: _this,\n queryInfo: queryInfo,\n options: __assign(__assign({}, options), {\n fetchPolicy: \"network-only\"\n })\n });\n invariant(oq.queryId === queryId);\n queryInfo.setObservableQuery(oq);\n queries.set(queryId, oq);\n });\n }\n\n if (__DEV__ && queryNamesAndDocs.size) {\n queryNamesAndDocs.forEach(function (included, nameOrDoc) {\n if (!included) {\n __DEV__ && invariant.warn(\"Unknown query \".concat(typeof nameOrDoc === \"string\" ? \"named \" : \"\").concat(JSON.stringify(nameOrDoc, null, 2), \" requested in refetchQueries options.include array\"));\n }\n });\n }\n\n return queries;\n };\n\n QueryManager.prototype.reFetchObservableQueries = function (includeStandby) {\n var _this = this;\n\n if (includeStandby === void 0) {\n includeStandby = false;\n }\n\n var observableQueryPromises = [];\n this.getObservableQueries(includeStandby ? \"all\" : \"active\").forEach(function (observableQuery, queryId) {\n var fetchPolicy = observableQuery.options.fetchPolicy;\n observableQuery.resetLastResults();\n\n if (includeStandby || fetchPolicy !== \"standby\" && fetchPolicy !== \"cache-only\") {\n observableQueryPromises.push(observableQuery.refetch());\n }\n\n _this.getQuery(queryId).setDiff(null);\n });\n this.broadcastQueries();\n return Promise.all(observableQueryPromises);\n };\n\n QueryManager.prototype.setObservableQuery = function (observableQuery) {\n this.getQuery(observableQuery.queryId).setObservableQuery(observableQuery);\n };\n\n QueryManager.prototype.startGraphQLSubscription = function (_a) {\n var _this = this;\n\n var query = _a.query,\n fetchPolicy = _a.fetchPolicy,\n errorPolicy = _a.errorPolicy,\n variables = _a.variables,\n _b = _a.context,\n context = _b === void 0 ? {} : _b;\n query = this.transform(query).document;\n variables = this.getVariables(query, variables);\n\n var makeObservable = function makeObservable(variables) {\n return _this.getObservableFromLink(query, context, variables).map(function (result) {\n if (fetchPolicy !== 'no-cache') {\n if (shouldWriteResult(result, errorPolicy)) {\n _this.cache.write({\n query: query,\n result: result.data,\n dataId: 'ROOT_SUBSCRIPTION',\n variables: variables\n });\n }\n\n _this.broadcastQueries();\n }\n\n if (graphQLResultHasError(result)) {\n throw new ApolloError({\n graphQLErrors: result.errors\n });\n }\n\n return result;\n });\n };\n\n if (this.transform(query).hasClientExports) {\n var observablePromise_1 = this.localState.addExportedVariables(query, variables, context).then(makeObservable);\n return new Observable(function (observer) {\n var sub = null;\n observablePromise_1.then(function (observable) {\n return sub = observable.subscribe(observer);\n }, observer.error);\n return function () {\n return sub && sub.unsubscribe();\n };\n });\n }\n\n return makeObservable(variables);\n };\n\n QueryManager.prototype.stopQuery = function (queryId) {\n this.stopQueryNoBroadcast(queryId);\n this.broadcastQueries();\n };\n\n QueryManager.prototype.stopQueryNoBroadcast = function (queryId) {\n this.stopQueryInStoreNoBroadcast(queryId);\n this.removeQuery(queryId);\n };\n\n QueryManager.prototype.removeQuery = function (queryId) {\n this.fetchCancelFns.delete(queryId);\n\n if (this.queries.has(queryId)) {\n this.getQuery(queryId).stop();\n this.queries.delete(queryId);\n }\n };\n\n QueryManager.prototype.broadcastQueries = function () {\n if (this.onBroadcast) this.onBroadcast();\n this.queries.forEach(function (info) {\n return info.notify();\n });\n };\n\n QueryManager.prototype.getLocalState = function () {\n return this.localState;\n };\n\n QueryManager.prototype.getObservableFromLink = function (query, context, variables, deduplication) {\n var _this = this;\n\n var _a;\n\n if (deduplication === void 0) {\n deduplication = (_a = context === null || context === void 0 ? void 0 : context.queryDeduplication) !== null && _a !== void 0 ? _a : this.queryDeduplication;\n }\n\n var observable;\n var serverQuery = this.transform(query).serverQuery;\n\n if (serverQuery) {\n var _b = this,\n inFlightLinkObservables_1 = _b.inFlightLinkObservables,\n link = _b.link;\n\n var operation = {\n query: serverQuery,\n variables: variables,\n operationName: getOperationName(serverQuery) || void 0,\n context: this.prepareContext(__assign(__assign({}, context), {\n forceFetch: !deduplication\n }))\n };\n context = operation.context;\n\n if (deduplication) {\n var byVariables_1 = inFlightLinkObservables_1.get(serverQuery) || new Map();\n inFlightLinkObservables_1.set(serverQuery, byVariables_1);\n var varJson_1 = canonicalStringify(variables);\n observable = byVariables_1.get(varJson_1);\n\n if (!observable) {\n var concast = new Concast([execute(link, operation)]);\n byVariables_1.set(varJson_1, observable = concast);\n concast.beforeNext(function () {\n if (byVariables_1.delete(varJson_1) && byVariables_1.size < 1) {\n inFlightLinkObservables_1.delete(serverQuery);\n }\n });\n }\n } else {\n observable = new Concast([execute(link, operation)]);\n }\n } else {\n observable = new Concast([Observable.of({\n data: {}\n })]);\n context = this.prepareContext(context);\n }\n\n var clientQuery = this.transform(query).clientQuery;\n\n if (clientQuery) {\n observable = asyncMap(observable, function (result) {\n return _this.localState.runResolvers({\n document: clientQuery,\n remoteResult: result,\n context: context,\n variables: variables\n });\n });\n }\n\n return observable;\n };\n\n QueryManager.prototype.getResultsFromLink = function (queryInfo, cacheWriteBehavior, options) {\n var requestId = queryInfo.lastRequestId = this.generateRequestId();\n options = cloneDeep(options);\n var linkDocument = this.cache.transformForLink(this.transform(queryInfo.document).document);\n return asyncMap(this.getObservableFromLink(linkDocument, options.context, options.variables), function (result) {\n var graphQLErrors = isNonEmptyArray(result.errors) ? result.errors.slice(0) : [];\n\n if ('incremental' in result && isNonEmptyArray(result.incremental)) {\n result.incremental.forEach(function (incrementalResult) {\n if (incrementalResult.errors) {\n graphQLErrors.push.apply(graphQLErrors, incrementalResult.errors);\n }\n });\n }\n\n var hasErrors = isNonEmptyArray(graphQLErrors);\n\n if (requestId >= queryInfo.lastRequestId) {\n if (hasErrors && options.errorPolicy === \"none\") {\n throw queryInfo.markError(new ApolloError({\n graphQLErrors: graphQLErrors\n }));\n }\n\n queryInfo.markResult(result, linkDocument, options, cacheWriteBehavior);\n queryInfo.markReady();\n }\n\n var aqr = {\n data: result.data,\n loading: false,\n networkStatus: NetworkStatus.ready\n };\n\n if (hasErrors && options.errorPolicy !== \"ignore\") {\n aqr.errors = graphQLErrors;\n aqr.networkStatus = NetworkStatus.error;\n }\n\n return aqr;\n }, function (networkError) {\n var error = isApolloError(networkError) ? networkError : new ApolloError({\n networkError: networkError\n });\n\n if (requestId >= queryInfo.lastRequestId) {\n queryInfo.markError(error);\n }\n\n throw error;\n });\n };\n\n QueryManager.prototype.fetchQueryObservable = function (queryId, options, networkStatus) {\n var _this = this;\n\n if (networkStatus === void 0) {\n networkStatus = NetworkStatus.loading;\n }\n\n var query = this.transform(options.query).document;\n var variables = this.getVariables(query, options.variables);\n var queryInfo = this.getQuery(queryId);\n var defaults = this.defaultOptions.watchQuery;\n var _a = options.fetchPolicy,\n fetchPolicy = _a === void 0 ? defaults && defaults.fetchPolicy || \"cache-first\" : _a,\n _b = options.errorPolicy,\n errorPolicy = _b === void 0 ? defaults && defaults.errorPolicy || \"none\" : _b,\n _c = options.returnPartialData,\n returnPartialData = _c === void 0 ? false : _c,\n _d = options.notifyOnNetworkStatusChange,\n notifyOnNetworkStatusChange = _d === void 0 ? false : _d,\n _e = options.context,\n context = _e === void 0 ? {} : _e;\n var normalized = Object.assign({}, options, {\n query: query,\n variables: variables,\n fetchPolicy: fetchPolicy,\n errorPolicy: errorPolicy,\n returnPartialData: returnPartialData,\n notifyOnNetworkStatusChange: notifyOnNetworkStatusChange,\n context: context\n });\n\n var fromVariables = function fromVariables(variables) {\n normalized.variables = variables;\n\n var concastSources = _this.fetchQueryByPolicy(queryInfo, normalized, networkStatus);\n\n if (normalized.fetchPolicy !== \"standby\" && concastSources.length > 0 && queryInfo.observableQuery) {\n queryInfo.observableQuery[\"applyNextFetchPolicy\"](\"after-fetch\", options);\n }\n\n return concastSources;\n };\n\n var cleanupCancelFn = function cleanupCancelFn() {\n return _this.fetchCancelFns.delete(queryId);\n };\n\n this.fetchCancelFns.set(queryId, function (reason) {\n cleanupCancelFn();\n setTimeout(function () {\n return concast.cancel(reason);\n });\n });\n var concast = new Concast(this.transform(normalized.query).hasClientExports ? this.localState.addExportedVariables(normalized.query, normalized.variables, normalized.context).then(fromVariables) : fromVariables(normalized.variables));\n concast.promise.then(cleanupCancelFn, cleanupCancelFn);\n return concast;\n };\n\n QueryManager.prototype.refetchQueries = function (_a) {\n var _this = this;\n\n var updateCache = _a.updateCache,\n include = _a.include,\n _b = _a.optimistic,\n optimistic = _b === void 0 ? false : _b,\n _c = _a.removeOptimistic,\n removeOptimistic = _c === void 0 ? optimistic ? makeUniqueId(\"refetchQueries\") : void 0 : _c,\n onQueryUpdated = _a.onQueryUpdated;\n var includedQueriesById = new Map();\n\n if (include) {\n this.getObservableQueries(include).forEach(function (oq, queryId) {\n includedQueriesById.set(queryId, {\n oq: oq,\n lastDiff: _this.getQuery(queryId).getDiff()\n });\n });\n }\n\n var results = new Map();\n\n if (updateCache) {\n this.cache.batch({\n update: updateCache,\n optimistic: optimistic && removeOptimistic || false,\n removeOptimistic: removeOptimistic,\n onWatchUpdated: function onWatchUpdated(watch, diff, lastDiff) {\n var oq = watch.watcher instanceof QueryInfo && watch.watcher.observableQuery;\n\n if (oq) {\n if (onQueryUpdated) {\n includedQueriesById.delete(oq.queryId);\n var result = onQueryUpdated(oq, diff, lastDiff);\n\n if (result === true) {\n result = oq.refetch();\n }\n\n if (result !== false) {\n results.set(oq, result);\n }\n\n return result;\n }\n\n if (onQueryUpdated !== null) {\n includedQueriesById.set(oq.queryId, {\n oq: oq,\n lastDiff: lastDiff,\n diff: diff\n });\n }\n }\n }\n });\n }\n\n if (includedQueriesById.size) {\n includedQueriesById.forEach(function (_a, queryId) {\n var oq = _a.oq,\n lastDiff = _a.lastDiff,\n diff = _a.diff;\n var result;\n\n if (onQueryUpdated) {\n if (!diff) {\n var info = oq[\"queryInfo\"];\n info.reset();\n diff = info.getDiff();\n }\n\n result = onQueryUpdated(oq, diff, lastDiff);\n }\n\n if (!onQueryUpdated || result === true) {\n result = oq.refetch();\n }\n\n if (result !== false) {\n results.set(oq, result);\n }\n\n if (queryId.indexOf(\"legacyOneTimeQuery\") >= 0) {\n _this.stopQueryNoBroadcast(queryId);\n }\n });\n }\n\n if (removeOptimistic) {\n this.cache.removeOptimistic(removeOptimistic);\n }\n\n return results;\n };\n\n QueryManager.prototype.fetchQueryByPolicy = function (queryInfo, _a, networkStatus) {\n var _this = this;\n\n var query = _a.query,\n variables = _a.variables,\n fetchPolicy = _a.fetchPolicy,\n refetchWritePolicy = _a.refetchWritePolicy,\n errorPolicy = _a.errorPolicy,\n returnPartialData = _a.returnPartialData,\n context = _a.context,\n notifyOnNetworkStatusChange = _a.notifyOnNetworkStatusChange;\n var oldNetworkStatus = queryInfo.networkStatus;\n queryInfo.init({\n document: this.transform(query).document,\n variables: variables,\n networkStatus: networkStatus\n });\n\n var readCache = function readCache() {\n return queryInfo.getDiff(variables);\n };\n\n var resultsFromCache = function resultsFromCache(diff, networkStatus) {\n if (networkStatus === void 0) {\n networkStatus = queryInfo.networkStatus || NetworkStatus.loading;\n }\n\n var data = diff.result;\n\n if (__DEV__ && !returnPartialData && !equal(data, {})) {\n logMissingFieldErrors(diff.missing);\n }\n\n var fromData = function fromData(data) {\n return Observable.of(__assign({\n data: data,\n loading: isNetworkRequestInFlight(networkStatus),\n networkStatus: networkStatus\n }, diff.complete ? null : {\n partial: true\n }));\n };\n\n if (data && _this.transform(query).hasForcedResolvers) {\n return _this.localState.runResolvers({\n document: query,\n remoteResult: {\n data: data\n },\n context: context,\n variables: variables,\n onlyRunForcedResolvers: true\n }).then(function (resolved) {\n return fromData(resolved.data || void 0);\n });\n }\n\n return fromData(data);\n };\n\n var cacheWriteBehavior = fetchPolicy === \"no-cache\" ? 0 : networkStatus === NetworkStatus.refetch && refetchWritePolicy !== \"merge\" ? 1 : 2;\n\n var resultsFromLink = function resultsFromLink() {\n return _this.getResultsFromLink(queryInfo, cacheWriteBehavior, {\n variables: variables,\n context: context,\n fetchPolicy: fetchPolicy,\n errorPolicy: errorPolicy\n });\n };\n\n var shouldNotify = notifyOnNetworkStatusChange && typeof oldNetworkStatus === \"number\" && oldNetworkStatus !== networkStatus && isNetworkRequestInFlight(networkStatus);\n\n switch (fetchPolicy) {\n default:\n case \"cache-first\":\n {\n var diff = readCache();\n\n if (diff.complete) {\n return [resultsFromCache(diff, queryInfo.markReady())];\n }\n\n if (returnPartialData || shouldNotify) {\n return [resultsFromCache(diff), resultsFromLink()];\n }\n\n return [resultsFromLink()];\n }\n\n case \"cache-and-network\":\n {\n var diff = readCache();\n\n if (diff.complete || returnPartialData || shouldNotify) {\n return [resultsFromCache(diff), resultsFromLink()];\n }\n\n return [resultsFromLink()];\n }\n\n case \"cache-only\":\n return [resultsFromCache(readCache(), queryInfo.markReady())];\n\n case \"network-only\":\n if (shouldNotify) {\n return [resultsFromCache(readCache()), resultsFromLink()];\n }\n\n return [resultsFromLink()];\n\n case \"no-cache\":\n if (shouldNotify) {\n return [resultsFromCache(queryInfo.getDiff()), resultsFromLink()];\n }\n\n return [resultsFromLink()];\n\n case \"standby\":\n return [];\n }\n };\n\n QueryManager.prototype.getQuery = function (queryId) {\n if (queryId && !this.queries.has(queryId)) {\n this.queries.set(queryId, new QueryInfo(this, queryId));\n }\n\n return this.queries.get(queryId);\n };\n\n QueryManager.prototype.prepareContext = function (context) {\n if (context === void 0) {\n context = {};\n }\n\n var newContext = this.localState.prepareContext(context);\n return __assign(__assign({}, newContext), {\n clientAwareness: this.clientAwareness\n });\n };\n\n return QueryManager;\n}();\n\nexport { QueryManager };","import { __assign, __extends, __rest } from \"tslib\";\nimport { invariant } from \"../../utilities/globals/index.js\";\nimport { dep } from 'optimism';\nimport { equal } from '@wry/equality';\nimport { Trie } from '@wry/trie';\nimport { isReference, makeReference, DeepMerger, maybeDeepFreeze, canUseWeakMap, isNonNullObject } from \"../../utilities/index.js\";\nimport { hasOwn, fieldNameFromStoreName } from \"./helpers.js\";\nvar DELETE = Object.create(null);\n\nvar delModifier = function delModifier() {\n return DELETE;\n};\n\nvar INVALIDATE = Object.create(null);\n\nvar EntityStore = function () {\n function EntityStore(policies, group) {\n var _this = this;\n\n this.policies = policies;\n this.group = group;\n this.data = Object.create(null);\n this.rootIds = Object.create(null);\n this.refs = Object.create(null);\n\n this.getFieldValue = function (objectOrReference, storeFieldName) {\n return maybeDeepFreeze(isReference(objectOrReference) ? _this.get(objectOrReference.__ref, storeFieldName) : objectOrReference && objectOrReference[storeFieldName]);\n };\n\n this.canRead = function (objOrRef) {\n return isReference(objOrRef) ? _this.has(objOrRef.__ref) : typeof objOrRef === \"object\";\n };\n\n this.toReference = function (objOrIdOrRef, mergeIntoStore) {\n if (typeof objOrIdOrRef === \"string\") {\n return makeReference(objOrIdOrRef);\n }\n\n if (isReference(objOrIdOrRef)) {\n return objOrIdOrRef;\n }\n\n var id = _this.policies.identify(objOrIdOrRef)[0];\n\n if (id) {\n var ref = makeReference(id);\n\n if (mergeIntoStore) {\n _this.merge(id, objOrIdOrRef);\n }\n\n return ref;\n }\n };\n }\n\n EntityStore.prototype.toObject = function () {\n return __assign({}, this.data);\n };\n\n EntityStore.prototype.has = function (dataId) {\n return this.lookup(dataId, true) !== void 0;\n };\n\n EntityStore.prototype.get = function (dataId, fieldName) {\n this.group.depend(dataId, fieldName);\n\n if (hasOwn.call(this.data, dataId)) {\n var storeObject = this.data[dataId];\n\n if (storeObject && hasOwn.call(storeObject, fieldName)) {\n return storeObject[fieldName];\n }\n }\n\n if (fieldName === \"__typename\" && hasOwn.call(this.policies.rootTypenamesById, dataId)) {\n return this.policies.rootTypenamesById[dataId];\n }\n\n if (this instanceof Layer) {\n return this.parent.get(dataId, fieldName);\n }\n };\n\n EntityStore.prototype.lookup = function (dataId, dependOnExistence) {\n if (dependOnExistence) this.group.depend(dataId, \"__exists\");\n\n if (hasOwn.call(this.data, dataId)) {\n return this.data[dataId];\n }\n\n if (this instanceof Layer) {\n return this.parent.lookup(dataId, dependOnExistence);\n }\n\n if (this.policies.rootTypenamesById[dataId]) {\n return Object.create(null);\n }\n };\n\n EntityStore.prototype.merge = function (older, newer) {\n var _this = this;\n\n var dataId;\n if (isReference(older)) older = older.__ref;\n if (isReference(newer)) newer = newer.__ref;\n var existing = typeof older === \"string\" ? this.lookup(dataId = older) : older;\n var incoming = typeof newer === \"string\" ? this.lookup(dataId = newer) : newer;\n if (!incoming) return;\n __DEV__ ? invariant(typeof dataId === \"string\", \"store.merge expects a string ID\") : invariant(typeof dataId === \"string\", 1);\n var merged = new DeepMerger(storeObjectReconciler).merge(existing, incoming);\n this.data[dataId] = merged;\n\n if (merged !== existing) {\n delete this.refs[dataId];\n\n if (this.group.caching) {\n var fieldsToDirty_1 = Object.create(null);\n if (!existing) fieldsToDirty_1.__exists = 1;\n Object.keys(incoming).forEach(function (storeFieldName) {\n if (!existing || existing[storeFieldName] !== merged[storeFieldName]) {\n fieldsToDirty_1[storeFieldName] = 1;\n var fieldName = fieldNameFromStoreName(storeFieldName);\n\n if (fieldName !== storeFieldName && !_this.policies.hasKeyArgs(merged.__typename, fieldName)) {\n fieldsToDirty_1[fieldName] = 1;\n }\n\n if (merged[storeFieldName] === void 0 && !(_this instanceof Layer)) {\n delete merged[storeFieldName];\n }\n }\n });\n\n if (fieldsToDirty_1.__typename && !(existing && existing.__typename) && this.policies.rootTypenamesById[dataId] === merged.__typename) {\n delete fieldsToDirty_1.__typename;\n }\n\n Object.keys(fieldsToDirty_1).forEach(function (fieldName) {\n return _this.group.dirty(dataId, fieldName);\n });\n }\n }\n };\n\n EntityStore.prototype.modify = function (dataId, fields) {\n var _this = this;\n\n var storeObject = this.lookup(dataId);\n\n if (storeObject) {\n var changedFields_1 = Object.create(null);\n var needToMerge_1 = false;\n var allDeleted_1 = true;\n var sharedDetails_1 = {\n DELETE: DELETE,\n INVALIDATE: INVALIDATE,\n isReference: isReference,\n toReference: this.toReference,\n canRead: this.canRead,\n readField: function readField(fieldNameOrOptions, from) {\n return _this.policies.readField(typeof fieldNameOrOptions === \"string\" ? {\n fieldName: fieldNameOrOptions,\n from: from || makeReference(dataId)\n } : fieldNameOrOptions, {\n store: _this\n });\n }\n };\n Object.keys(storeObject).forEach(function (storeFieldName) {\n var fieldName = fieldNameFromStoreName(storeFieldName);\n var fieldValue = storeObject[storeFieldName];\n if (fieldValue === void 0) return;\n var modify = typeof fields === \"function\" ? fields : fields[storeFieldName] || fields[fieldName];\n\n if (modify) {\n var newValue = modify === delModifier ? DELETE : modify(maybeDeepFreeze(fieldValue), __assign(__assign({}, sharedDetails_1), {\n fieldName: fieldName,\n storeFieldName: storeFieldName,\n storage: _this.getStorage(dataId, storeFieldName)\n }));\n\n if (newValue === INVALIDATE) {\n _this.group.dirty(dataId, storeFieldName);\n } else {\n if (newValue === DELETE) newValue = void 0;\n\n if (newValue !== fieldValue) {\n changedFields_1[storeFieldName] = newValue;\n needToMerge_1 = true;\n fieldValue = newValue;\n }\n }\n }\n\n if (fieldValue !== void 0) {\n allDeleted_1 = false;\n }\n });\n\n if (needToMerge_1) {\n this.merge(dataId, changedFields_1);\n\n if (allDeleted_1) {\n if (this instanceof Layer) {\n this.data[dataId] = void 0;\n } else {\n delete this.data[dataId];\n }\n\n this.group.dirty(dataId, \"__exists\");\n }\n\n return true;\n }\n }\n\n return false;\n };\n\n EntityStore.prototype.delete = function (dataId, fieldName, args) {\n var _a;\n\n var storeObject = this.lookup(dataId);\n\n if (storeObject) {\n var typename = this.getFieldValue(storeObject, \"__typename\");\n var storeFieldName = fieldName && args ? this.policies.getStoreFieldName({\n typename: typename,\n fieldName: fieldName,\n args: args\n }) : fieldName;\n return this.modify(dataId, storeFieldName ? (_a = {}, _a[storeFieldName] = delModifier, _a) : delModifier);\n }\n\n return false;\n };\n\n EntityStore.prototype.evict = function (options, limit) {\n var evicted = false;\n\n if (options.id) {\n if (hasOwn.call(this.data, options.id)) {\n evicted = this.delete(options.id, options.fieldName, options.args);\n }\n\n if (this instanceof Layer && this !== limit) {\n evicted = this.parent.evict(options, limit) || evicted;\n }\n\n if (options.fieldName || evicted) {\n this.group.dirty(options.id, options.fieldName || \"__exists\");\n }\n }\n\n return evicted;\n };\n\n EntityStore.prototype.clear = function () {\n this.replace(null);\n };\n\n EntityStore.prototype.extract = function () {\n var _this = this;\n\n var obj = this.toObject();\n var extraRootIds = [];\n this.getRootIdSet().forEach(function (id) {\n if (!hasOwn.call(_this.policies.rootTypenamesById, id)) {\n extraRootIds.push(id);\n }\n });\n\n if (extraRootIds.length) {\n obj.__META = {\n extraRootIds: extraRootIds.sort()\n };\n }\n\n return obj;\n };\n\n EntityStore.prototype.replace = function (newData) {\n var _this = this;\n\n Object.keys(this.data).forEach(function (dataId) {\n if (!(newData && hasOwn.call(newData, dataId))) {\n _this.delete(dataId);\n }\n });\n\n if (newData) {\n var __META = newData.__META,\n rest_1 = __rest(newData, [\"__META\"]);\n\n Object.keys(rest_1).forEach(function (dataId) {\n _this.merge(dataId, rest_1[dataId]);\n });\n\n if (__META) {\n __META.extraRootIds.forEach(this.retain, this);\n }\n }\n };\n\n EntityStore.prototype.retain = function (rootId) {\n return this.rootIds[rootId] = (this.rootIds[rootId] || 0) + 1;\n };\n\n EntityStore.prototype.release = function (rootId) {\n if (this.rootIds[rootId] > 0) {\n var count = --this.rootIds[rootId];\n if (!count) delete this.rootIds[rootId];\n return count;\n }\n\n return 0;\n };\n\n EntityStore.prototype.getRootIdSet = function (ids) {\n if (ids === void 0) {\n ids = new Set();\n }\n\n Object.keys(this.rootIds).forEach(ids.add, ids);\n\n if (this instanceof Layer) {\n this.parent.getRootIdSet(ids);\n } else {\n Object.keys(this.policies.rootTypenamesById).forEach(ids.add, ids);\n }\n\n return ids;\n };\n\n EntityStore.prototype.gc = function () {\n var _this = this;\n\n var ids = this.getRootIdSet();\n var snapshot = this.toObject();\n ids.forEach(function (id) {\n if (hasOwn.call(snapshot, id)) {\n Object.keys(_this.findChildRefIds(id)).forEach(ids.add, ids);\n delete snapshot[id];\n }\n });\n var idsToRemove = Object.keys(snapshot);\n\n if (idsToRemove.length) {\n var root_1 = this;\n\n while (root_1 instanceof Layer) {\n root_1 = root_1.parent;\n }\n\n idsToRemove.forEach(function (id) {\n return root_1.delete(id);\n });\n }\n\n return idsToRemove;\n };\n\n EntityStore.prototype.findChildRefIds = function (dataId) {\n if (!hasOwn.call(this.refs, dataId)) {\n var found_1 = this.refs[dataId] = Object.create(null);\n var root = this.data[dataId];\n if (!root) return found_1;\n var workSet_1 = new Set([root]);\n workSet_1.forEach(function (obj) {\n if (isReference(obj)) {\n found_1[obj.__ref] = true;\n }\n\n if (isNonNullObject(obj)) {\n Object.keys(obj).forEach(function (key) {\n var child = obj[key];\n\n if (isNonNullObject(child)) {\n workSet_1.add(child);\n }\n });\n }\n });\n }\n\n return this.refs[dataId];\n };\n\n EntityStore.prototype.makeCacheKey = function () {\n return this.group.keyMaker.lookupArray(arguments);\n };\n\n return EntityStore;\n}();\n\nexport { EntityStore };\n\nvar CacheGroup = function () {\n function CacheGroup(caching, parent) {\n if (parent === void 0) {\n parent = null;\n }\n\n this.caching = caching;\n this.parent = parent;\n this.d = null;\n this.resetCaching();\n }\n\n CacheGroup.prototype.resetCaching = function () {\n this.d = this.caching ? dep() : null;\n this.keyMaker = new Trie(canUseWeakMap);\n };\n\n CacheGroup.prototype.depend = function (dataId, storeFieldName) {\n if (this.d) {\n this.d(makeDepKey(dataId, storeFieldName));\n var fieldName = fieldNameFromStoreName(storeFieldName);\n\n if (fieldName !== storeFieldName) {\n this.d(makeDepKey(dataId, fieldName));\n }\n\n if (this.parent) {\n this.parent.depend(dataId, storeFieldName);\n }\n }\n };\n\n CacheGroup.prototype.dirty = function (dataId, storeFieldName) {\n if (this.d) {\n this.d.dirty(makeDepKey(dataId, storeFieldName), storeFieldName === \"__exists\" ? \"forget\" : \"setDirty\");\n }\n };\n\n return CacheGroup;\n}();\n\nfunction makeDepKey(dataId, storeFieldName) {\n return storeFieldName + '#' + dataId;\n}\n\nexport function maybeDependOnExistenceOfEntity(store, entityId) {\n if (supportsResultCaching(store)) {\n store.group.depend(entityId, \"__exists\");\n }\n}\n\n(function (EntityStore) {\n var Root = function (_super) {\n __extends(Root, _super);\n\n function Root(_a) {\n var policies = _a.policies,\n _b = _a.resultCaching,\n resultCaching = _b === void 0 ? true : _b,\n seed = _a.seed;\n\n var _this = _super.call(this, policies, new CacheGroup(resultCaching)) || this;\n\n _this.stump = new Stump(_this);\n _this.storageTrie = new Trie(canUseWeakMap);\n if (seed) _this.replace(seed);\n return _this;\n }\n\n Root.prototype.addLayer = function (layerId, replay) {\n return this.stump.addLayer(layerId, replay);\n };\n\n Root.prototype.removeLayer = function () {\n return this;\n };\n\n Root.prototype.getStorage = function () {\n return this.storageTrie.lookupArray(arguments);\n };\n\n return Root;\n }(EntityStore);\n\n EntityStore.Root = Root;\n})(EntityStore || (EntityStore = {}));\n\nvar Layer = function (_super) {\n __extends(Layer, _super);\n\n function Layer(id, parent, replay, group) {\n var _this = _super.call(this, parent.policies, group) || this;\n\n _this.id = id;\n _this.parent = parent;\n _this.replay = replay;\n _this.group = group;\n replay(_this);\n return _this;\n }\n\n Layer.prototype.addLayer = function (layerId, replay) {\n return new Layer(layerId, this, replay, this.group);\n };\n\n Layer.prototype.removeLayer = function (layerId) {\n var _this = this;\n\n var parent = this.parent.removeLayer(layerId);\n\n if (layerId === this.id) {\n if (this.group.caching) {\n Object.keys(this.data).forEach(function (dataId) {\n var ownStoreObject = _this.data[dataId];\n var parentStoreObject = parent[\"lookup\"](dataId);\n\n if (!parentStoreObject) {\n _this.delete(dataId);\n } else if (!ownStoreObject) {\n _this.group.dirty(dataId, \"__exists\");\n\n Object.keys(parentStoreObject).forEach(function (storeFieldName) {\n _this.group.dirty(dataId, storeFieldName);\n });\n } else if (ownStoreObject !== parentStoreObject) {\n Object.keys(ownStoreObject).forEach(function (storeFieldName) {\n if (!equal(ownStoreObject[storeFieldName], parentStoreObject[storeFieldName])) {\n _this.group.dirty(dataId, storeFieldName);\n }\n });\n }\n });\n }\n\n return parent;\n }\n\n if (parent === this.parent) return this;\n return parent.addLayer(this.id, this.replay);\n };\n\n Layer.prototype.toObject = function () {\n return __assign(__assign({}, this.parent.toObject()), this.data);\n };\n\n Layer.prototype.findChildRefIds = function (dataId) {\n var fromParent = this.parent.findChildRefIds(dataId);\n return hasOwn.call(this.data, dataId) ? __assign(__assign({}, fromParent), _super.prototype.findChildRefIds.call(this, dataId)) : fromParent;\n };\n\n Layer.prototype.getStorage = function () {\n var p = this.parent;\n\n while (p.parent) {\n p = p.parent;\n }\n\n return p.getStorage.apply(p, arguments);\n };\n\n return Layer;\n}(EntityStore);\n\nvar Stump = function (_super) {\n __extends(Stump, _super);\n\n function Stump(root) {\n return _super.call(this, \"EntityStore.Stump\", root, function () {}, new CacheGroup(root.group.caching, root.group)) || this;\n }\n\n Stump.prototype.removeLayer = function () {\n return this;\n };\n\n Stump.prototype.merge = function () {\n return this.parent.merge.apply(this.parent, arguments);\n };\n\n return Stump;\n}(Layer);\n\nfunction storeObjectReconciler(existingObject, incomingObject, property) {\n var existingValue = existingObject[property];\n var incomingValue = incomingObject[property];\n return equal(existingValue, incomingValue) ? existingValue : incomingValue;\n}\n\nexport function supportsResultCaching(store) {\n return !!(store instanceof EntityStore && store.group.caching);\n}","export function isExecutionPatchIncrementalResult(value) {\n return !!value.incremental;\n}","import { __assign } from \"tslib\";\nimport { invariant, InvariantError } from \"../utilities/globals/index.js\";\nimport { ApolloLink, execute } from \"../link/core/index.js\";\nimport { version } from \"../version.js\";\nimport { HttpLink } from \"../link/http/index.js\";\nimport { QueryManager } from \"./QueryManager.js\";\nimport { LocalState } from \"./LocalState.js\";\nvar hasSuggestedDevtools = false;\nimport { mergeOptions } from \"../utilities/index.js\";\nexport { mergeOptions };\n\nvar ApolloClient = function () {\n function ApolloClient(options) {\n var _this = this;\n\n this.resetStoreCallbacks = [];\n this.clearStoreCallbacks = [];\n var uri = options.uri,\n credentials = options.credentials,\n headers = options.headers,\n cache = options.cache,\n _a = options.ssrMode,\n ssrMode = _a === void 0 ? false : _a,\n _b = options.ssrForceFetchDelay,\n ssrForceFetchDelay = _b === void 0 ? 0 : _b,\n _c = options.connectToDevTools,\n connectToDevTools = _c === void 0 ? typeof window === 'object' && !window.__APOLLO_CLIENT__ && __DEV__ : _c,\n _d = options.queryDeduplication,\n queryDeduplication = _d === void 0 ? true : _d,\n defaultOptions = options.defaultOptions,\n _e = options.assumeImmutableResults,\n assumeImmutableResults = _e === void 0 ? false : _e,\n resolvers = options.resolvers,\n typeDefs = options.typeDefs,\n fragmentMatcher = options.fragmentMatcher,\n clientAwarenessName = options.name,\n clientAwarenessVersion = options.version;\n var link = options.link;\n\n if (!link) {\n link = uri ? new HttpLink({\n uri: uri,\n credentials: credentials,\n headers: headers\n }) : ApolloLink.empty();\n }\n\n if (!cache) {\n throw __DEV__ ? new InvariantError(\"To initialize Apollo Client, you must specify a 'cache' property \" + \"in the options object. \\n\" + \"For more information, please visit: https://go.apollo.dev/c/docs\") : new InvariantError(9);\n }\n\n this.link = link;\n this.cache = cache;\n this.disableNetworkFetches = ssrMode || ssrForceFetchDelay > 0;\n this.queryDeduplication = queryDeduplication;\n this.defaultOptions = defaultOptions || Object.create(null);\n this.typeDefs = typeDefs;\n\n if (ssrForceFetchDelay) {\n setTimeout(function () {\n return _this.disableNetworkFetches = false;\n }, ssrForceFetchDelay);\n }\n\n this.watchQuery = this.watchQuery.bind(this);\n this.query = this.query.bind(this);\n this.mutate = this.mutate.bind(this);\n this.resetStore = this.resetStore.bind(this);\n this.reFetchObservableQueries = this.reFetchObservableQueries.bind(this);\n\n if (connectToDevTools && typeof window === 'object') {\n window.__APOLLO_CLIENT__ = this;\n }\n\n if (!hasSuggestedDevtools && __DEV__) {\n hasSuggestedDevtools = true;\n\n if (typeof window !== 'undefined' && window.document && window.top === window.self && !window.__APOLLO_DEVTOOLS_GLOBAL_HOOK__) {\n var nav = window.navigator;\n var ua = nav && nav.userAgent;\n var url = void 0;\n\n if (typeof ua === \"string\") {\n if (ua.indexOf(\"Chrome/\") > -1) {\n url = \"https://chrome.google.com/webstore/detail/\" + \"apollo-client-developer-t/jdkknkkbebbapilgoeccciglkfbmbnfm\";\n } else if (ua.indexOf(\"Firefox/\") > -1) {\n url = \"https://addons.mozilla.org/en-US/firefox/addon/apollo-developer-tools/\";\n }\n }\n\n if (url) {\n __DEV__ && invariant.log(\"Download the Apollo DevTools for a better development \" + \"experience: \" + url);\n }\n }\n }\n\n this.version = version;\n this.localState = new LocalState({\n cache: cache,\n client: this,\n resolvers: resolvers,\n fragmentMatcher: fragmentMatcher\n });\n this.queryManager = new QueryManager({\n cache: this.cache,\n link: this.link,\n defaultOptions: this.defaultOptions,\n queryDeduplication: queryDeduplication,\n ssrMode: ssrMode,\n clientAwareness: {\n name: clientAwarenessName,\n version: clientAwarenessVersion\n },\n localState: this.localState,\n assumeImmutableResults: assumeImmutableResults,\n onBroadcast: connectToDevTools ? function () {\n if (_this.devToolsHookCb) {\n _this.devToolsHookCb({\n action: {},\n state: {\n queries: _this.queryManager.getQueryStore(),\n mutations: _this.queryManager.mutationStore || {}\n },\n dataWithOptimisticResults: _this.cache.extract(true)\n });\n }\n } : void 0\n });\n }\n\n ApolloClient.prototype.stop = function () {\n this.queryManager.stop();\n };\n\n ApolloClient.prototype.watchQuery = function (options) {\n if (this.defaultOptions.watchQuery) {\n options = mergeOptions(this.defaultOptions.watchQuery, options);\n }\n\n if (this.disableNetworkFetches && (options.fetchPolicy === 'network-only' || options.fetchPolicy === 'cache-and-network')) {\n options = __assign(__assign({}, options), {\n fetchPolicy: 'cache-first'\n });\n }\n\n return this.queryManager.watchQuery(options);\n };\n\n ApolloClient.prototype.query = function (options) {\n if (this.defaultOptions.query) {\n options = mergeOptions(this.defaultOptions.query, options);\n }\n\n __DEV__ ? invariant(options.fetchPolicy !== 'cache-and-network', 'The cache-and-network fetchPolicy does not work with client.query, because ' + 'client.query can only return a single result. Please use client.watchQuery ' + 'to receive multiple results from the cache and the network, or consider ' + 'using a different fetchPolicy, such as cache-first or network-only.') : invariant(options.fetchPolicy !== 'cache-and-network', 10);\n\n if (this.disableNetworkFetches && options.fetchPolicy === 'network-only') {\n options = __assign(__assign({}, options), {\n fetchPolicy: 'cache-first'\n });\n }\n\n return this.queryManager.query(options);\n };\n\n ApolloClient.prototype.mutate = function (options) {\n if (this.defaultOptions.mutate) {\n options = mergeOptions(this.defaultOptions.mutate, options);\n }\n\n return this.queryManager.mutate(options);\n };\n\n ApolloClient.prototype.subscribe = function (options) {\n return this.queryManager.startGraphQLSubscription(options);\n };\n\n ApolloClient.prototype.readQuery = function (options, optimistic) {\n if (optimistic === void 0) {\n optimistic = false;\n }\n\n return this.cache.readQuery(options, optimistic);\n };\n\n ApolloClient.prototype.readFragment = function (options, optimistic) {\n if (optimistic === void 0) {\n optimistic = false;\n }\n\n return this.cache.readFragment(options, optimistic);\n };\n\n ApolloClient.prototype.writeQuery = function (options) {\n this.cache.writeQuery(options);\n this.queryManager.broadcastQueries();\n };\n\n ApolloClient.prototype.writeFragment = function (options) {\n this.cache.writeFragment(options);\n this.queryManager.broadcastQueries();\n };\n\n ApolloClient.prototype.__actionHookForDevTools = function (cb) {\n this.devToolsHookCb = cb;\n };\n\n ApolloClient.prototype.__requestRaw = function (payload) {\n return execute(this.link, payload);\n };\n\n ApolloClient.prototype.resetStore = function () {\n var _this = this;\n\n return Promise.resolve().then(function () {\n return _this.queryManager.clearStore({\n discardWatches: false\n });\n }).then(function () {\n return Promise.all(_this.resetStoreCallbacks.map(function (fn) {\n return fn();\n }));\n }).then(function () {\n return _this.reFetchObservableQueries();\n });\n };\n\n ApolloClient.prototype.clearStore = function () {\n var _this = this;\n\n return Promise.resolve().then(function () {\n return _this.queryManager.clearStore({\n discardWatches: true\n });\n }).then(function () {\n return Promise.all(_this.clearStoreCallbacks.map(function (fn) {\n return fn();\n }));\n });\n };\n\n ApolloClient.prototype.onResetStore = function (cb) {\n var _this = this;\n\n this.resetStoreCallbacks.push(cb);\n return function () {\n _this.resetStoreCallbacks = _this.resetStoreCallbacks.filter(function (c) {\n return c !== cb;\n });\n };\n };\n\n ApolloClient.prototype.onClearStore = function (cb) {\n var _this = this;\n\n this.clearStoreCallbacks.push(cb);\n return function () {\n _this.clearStoreCallbacks = _this.clearStoreCallbacks.filter(function (c) {\n return c !== cb;\n });\n };\n };\n\n ApolloClient.prototype.reFetchObservableQueries = function (includeStandby) {\n return this.queryManager.reFetchObservableQueries(includeStandby);\n };\n\n ApolloClient.prototype.refetchQueries = function (options) {\n var map = this.queryManager.refetchQueries(options);\n var queries = [];\n var results = [];\n map.forEach(function (result, obsQuery) {\n queries.push(obsQuery);\n results.push(result);\n });\n var result = Promise.all(results);\n result.queries = queries;\n result.results = results;\n result.catch(function (error) {\n __DEV__ && invariant.debug(\"In client.refetchQueries, Promise.all promise rejected with error \".concat(error));\n });\n return result;\n };\n\n ApolloClient.prototype.getObservableQueries = function (include) {\n if (include === void 0) {\n include = \"active\";\n }\n\n return this.queryManager.getObservableQueries(include);\n };\n\n ApolloClient.prototype.extract = function (optimistic) {\n return this.cache.extract(optimistic);\n };\n\n ApolloClient.prototype.restore = function (serializedState) {\n return this.cache.restore(serializedState);\n };\n\n ApolloClient.prototype.addResolvers = function (resolvers) {\n this.localState.addResolvers(resolvers);\n };\n\n ApolloClient.prototype.setResolvers = function (resolvers) {\n this.localState.setResolvers(resolvers);\n };\n\n ApolloClient.prototype.getResolvers = function () {\n return this.localState.getResolvers();\n };\n\n ApolloClient.prototype.setLocalStateFragmentMatcher = function (fragmentMatcher) {\n this.localState.setFragmentMatcher(fragmentMatcher);\n };\n\n ApolloClient.prototype.setLink = function (newLink) {\n this.link = this.queryManager.link = newLink;\n };\n\n return ApolloClient;\n}();\n\nexport { ApolloClient };","export var version = '3.7.1';","import { __assign, __rest } from \"tslib\";\nimport { wrap } from 'optimism';\nimport { getFragmentQueryDocument } from \"../../utilities/index.js\";\n\nvar ApolloCache = function () {\n function ApolloCache() {\n this.getFragmentDoc = wrap(getFragmentQueryDocument);\n }\n\n ApolloCache.prototype.batch = function (options) {\n var _this = this;\n\n var optimisticId = typeof options.optimistic === \"string\" ? options.optimistic : options.optimistic === false ? null : void 0;\n var updateResult;\n this.performTransaction(function () {\n return updateResult = options.update(_this);\n }, optimisticId);\n return updateResult;\n };\n\n ApolloCache.prototype.recordOptimisticTransaction = function (transaction, optimisticId) {\n this.performTransaction(transaction, optimisticId);\n };\n\n ApolloCache.prototype.transformDocument = function (document) {\n return document;\n };\n\n ApolloCache.prototype.transformForLink = function (document) {\n return document;\n };\n\n ApolloCache.prototype.identify = function (object) {\n return;\n };\n\n ApolloCache.prototype.gc = function () {\n return [];\n };\n\n ApolloCache.prototype.modify = function (options) {\n return false;\n };\n\n ApolloCache.prototype.readQuery = function (options, optimistic) {\n if (optimistic === void 0) {\n optimistic = !!options.optimistic;\n }\n\n return this.read(__assign(__assign({}, options), {\n rootId: options.id || 'ROOT_QUERY',\n optimistic: optimistic\n }));\n };\n\n ApolloCache.prototype.readFragment = function (options, optimistic) {\n if (optimistic === void 0) {\n optimistic = !!options.optimistic;\n }\n\n return this.read(__assign(__assign({}, options), {\n query: this.getFragmentDoc(options.fragment, options.fragmentName),\n rootId: options.id,\n optimistic: optimistic\n }));\n };\n\n ApolloCache.prototype.writeQuery = function (_a) {\n var id = _a.id,\n data = _a.data,\n options = __rest(_a, [\"id\", \"data\"]);\n\n return this.write(Object.assign(options, {\n dataId: id || 'ROOT_QUERY',\n result: data\n }));\n };\n\n ApolloCache.prototype.writeFragment = function (_a) {\n var id = _a.id,\n data = _a.data,\n fragment = _a.fragment,\n fragmentName = _a.fragmentName,\n options = __rest(_a, [\"id\", \"data\", \"fragment\", \"fragmentName\"]);\n\n return this.write(Object.assign(options, {\n query: this.getFragmentDoc(fragment, fragmentName),\n dataId: id,\n result: data\n }));\n };\n\n ApolloCache.prototype.updateQuery = function (options, _update) {\n return this.batch({\n update: function update(cache) {\n var value = cache.readQuery(options);\n\n var data = _update(value);\n\n if (data === void 0 || data === null) return value;\n cache.writeQuery(__assign(__assign({}, options), {\n data: data\n }));\n return data;\n }\n });\n };\n\n ApolloCache.prototype.updateFragment = function (options, _update2) {\n return this.batch({\n update: function update(cache) {\n var value = cache.readFragment(options);\n\n var data = _update2(value);\n\n if (data === void 0 || data === null) return value;\n cache.writeFragment(__assign(__assign({}, options), {\n data: data\n }));\n return data;\n }\n });\n };\n\n return ApolloCache;\n}();\n\nexport { ApolloCache };","import { __extends } from \"tslib\";\n\nvar MissingFieldError = function (_super) {\n __extends(MissingFieldError, _super);\n\n function MissingFieldError(message, path, query, variables) {\n var _a;\n\n var _this = _super.call(this, message) || this;\n\n _this.message = message;\n _this.path = path;\n _this.query = query;\n _this.variables = variables;\n\n if (Array.isArray(_this.path)) {\n _this.missing = _this.message;\n\n for (var i = _this.path.length - 1; i >= 0; --i) {\n _this.missing = (_a = {}, _a[_this.path[i]] = _this.missing, _a);\n }\n } else {\n _this.missing = _this.path;\n }\n\n _this.__proto__ = MissingFieldError.prototype;\n return _this;\n }\n\n return MissingFieldError;\n}(Error);\n\nexport { MissingFieldError };","import { __assign } from \"tslib\";\nimport { invariant, InvariantError } from \"../../utilities/globals/index.js\";\nimport { Kind } from 'graphql';\nimport { wrap } from 'optimism';\nimport { isField, resultKeyNameFromField, isReference, makeReference, shouldInclude, addTypenameToDocument, getDefaultValues, getMainDefinition, getQueryDefinition, getFragmentFromSelection, maybeDeepFreeze, mergeDeepArray, DeepMerger, isNonNullObject, canUseWeakMap, compact } from \"../../utilities/index.js\";\nimport { maybeDependOnExistenceOfEntity, supportsResultCaching } from \"./entityStore.js\";\nimport { isArray, extractFragmentContext, getTypenameFromStoreObject, shouldCanonizeResults } from \"./helpers.js\";\nimport { MissingFieldError } from \"../core/types/common.js\";\nimport { canonicalStringify, ObjectCanon } from \"./object-canon.js\";\n;\n\nfunction execSelectionSetKeyArgs(options) {\n return [options.selectionSet, options.objectOrReference, options.context, options.context.canonizeResults];\n}\n\nvar StoreReader = function () {\n function StoreReader(config) {\n var _this = this;\n\n this.knownResults = new (canUseWeakMap ? WeakMap : Map)();\n this.config = compact(config, {\n addTypename: config.addTypename !== false,\n canonizeResults: shouldCanonizeResults(config)\n });\n this.canon = config.canon || new ObjectCanon();\n this.executeSelectionSet = wrap(function (options) {\n var _a;\n\n var canonizeResults = options.context.canonizeResults;\n var peekArgs = execSelectionSetKeyArgs(options);\n peekArgs[3] = !canonizeResults;\n\n var other = (_a = _this.executeSelectionSet).peek.apply(_a, peekArgs);\n\n if (other) {\n if (canonizeResults) {\n return __assign(__assign({}, other), {\n result: _this.canon.admit(other.result)\n });\n }\n\n return other;\n }\n\n maybeDependOnExistenceOfEntity(options.context.store, options.enclosingRef.__ref);\n return _this.execSelectionSetImpl(options);\n }, {\n max: this.config.resultCacheMaxSize,\n keyArgs: execSelectionSetKeyArgs,\n makeCacheKey: function makeCacheKey(selectionSet, parent, context, canonizeResults) {\n if (supportsResultCaching(context.store)) {\n return context.store.makeCacheKey(selectionSet, isReference(parent) ? parent.__ref : parent, context.varString, canonizeResults);\n }\n }\n });\n this.executeSubSelectedArray = wrap(function (options) {\n maybeDependOnExistenceOfEntity(options.context.store, options.enclosingRef.__ref);\n return _this.execSubSelectedArrayImpl(options);\n }, {\n max: this.config.resultCacheMaxSize,\n makeCacheKey: function makeCacheKey(_a) {\n var field = _a.field,\n array = _a.array,\n context = _a.context;\n\n if (supportsResultCaching(context.store)) {\n return context.store.makeCacheKey(field, array, context.varString);\n }\n }\n });\n }\n\n StoreReader.prototype.resetCanon = function () {\n this.canon = new ObjectCanon();\n };\n\n StoreReader.prototype.diffQueryAgainstStore = function (_a) {\n var store = _a.store,\n query = _a.query,\n _b = _a.rootId,\n rootId = _b === void 0 ? 'ROOT_QUERY' : _b,\n variables = _a.variables,\n _c = _a.returnPartialData,\n returnPartialData = _c === void 0 ? true : _c,\n _d = _a.canonizeResults,\n canonizeResults = _d === void 0 ? this.config.canonizeResults : _d;\n var policies = this.config.cache.policies;\n variables = __assign(__assign({}, getDefaultValues(getQueryDefinition(query))), variables);\n var rootRef = makeReference(rootId);\n var execResult = this.executeSelectionSet({\n selectionSet: getMainDefinition(query).selectionSet,\n objectOrReference: rootRef,\n enclosingRef: rootRef,\n context: __assign({\n store: store,\n query: query,\n policies: policies,\n variables: variables,\n varString: canonicalStringify(variables),\n canonizeResults: canonizeResults\n }, extractFragmentContext(query, this.config.fragments))\n });\n var missing;\n\n if (execResult.missing) {\n missing = [new MissingFieldError(firstMissing(execResult.missing), execResult.missing, query, variables)];\n\n if (!returnPartialData) {\n throw missing[0];\n }\n }\n\n return {\n result: execResult.result,\n complete: !missing,\n missing: missing\n };\n };\n\n StoreReader.prototype.isFresh = function (result, parent, selectionSet, context) {\n if (supportsResultCaching(context.store) && this.knownResults.get(result) === selectionSet) {\n var latest = this.executeSelectionSet.peek(selectionSet, parent, context, this.canon.isKnown(result));\n\n if (latest && result === latest.result) {\n return true;\n }\n }\n\n return false;\n };\n\n StoreReader.prototype.execSelectionSetImpl = function (_a) {\n var _this = this;\n\n var selectionSet = _a.selectionSet,\n objectOrReference = _a.objectOrReference,\n enclosingRef = _a.enclosingRef,\n context = _a.context;\n\n if (isReference(objectOrReference) && !context.policies.rootTypenamesById[objectOrReference.__ref] && !context.store.has(objectOrReference.__ref)) {\n return {\n result: this.canon.empty,\n missing: \"Dangling reference to missing \".concat(objectOrReference.__ref, \" object\")\n };\n }\n\n var variables = context.variables,\n policies = context.policies,\n store = context.store;\n var typename = store.getFieldValue(objectOrReference, \"__typename\");\n var objectsToMerge = [];\n var missing;\n var missingMerger = new DeepMerger();\n\n if (this.config.addTypename && typeof typename === \"string\" && !policies.rootIdsByTypename[typename]) {\n objectsToMerge.push({\n __typename: typename\n });\n }\n\n function handleMissing(result, resultName) {\n var _a;\n\n if (result.missing) {\n missing = missingMerger.merge(missing, (_a = {}, _a[resultName] = result.missing, _a));\n }\n\n return result.result;\n }\n\n var workSet = new Set(selectionSet.selections);\n workSet.forEach(function (selection) {\n var _a, _b;\n\n if (!shouldInclude(selection, variables)) return;\n\n if (isField(selection)) {\n var fieldValue = policies.readField({\n fieldName: selection.name.value,\n field: selection,\n variables: context.variables,\n from: objectOrReference\n }, context);\n var resultName = resultKeyNameFromField(selection);\n\n if (fieldValue === void 0) {\n if (!addTypenameToDocument.added(selection)) {\n missing = missingMerger.merge(missing, (_a = {}, _a[resultName] = \"Can't find field '\".concat(selection.name.value, \"' on \").concat(isReference(objectOrReference) ? objectOrReference.__ref + \" object\" : \"object \" + JSON.stringify(objectOrReference, null, 2)), _a));\n }\n } else if (isArray(fieldValue)) {\n fieldValue = handleMissing(_this.executeSubSelectedArray({\n field: selection,\n array: fieldValue,\n enclosingRef: enclosingRef,\n context: context\n }), resultName);\n } else if (!selection.selectionSet) {\n if (context.canonizeResults) {\n fieldValue = _this.canon.pass(fieldValue);\n }\n } else if (fieldValue != null) {\n fieldValue = handleMissing(_this.executeSelectionSet({\n selectionSet: selection.selectionSet,\n objectOrReference: fieldValue,\n enclosingRef: isReference(fieldValue) ? fieldValue : enclosingRef,\n context: context\n }), resultName);\n }\n\n if (fieldValue !== void 0) {\n objectsToMerge.push((_b = {}, _b[resultName] = fieldValue, _b));\n }\n } else {\n var fragment = getFragmentFromSelection(selection, context.lookupFragment);\n\n if (!fragment && selection.kind === Kind.FRAGMENT_SPREAD) {\n throw __DEV__ ? new InvariantError(\"No fragment named \".concat(selection.name.value)) : new InvariantError(5);\n }\n\n if (fragment && policies.fragmentMatches(fragment, typename)) {\n fragment.selectionSet.selections.forEach(workSet.add, workSet);\n }\n }\n });\n var result = mergeDeepArray(objectsToMerge);\n var finalResult = {\n result: result,\n missing: missing\n };\n var frozen = context.canonizeResults ? this.canon.admit(finalResult) : maybeDeepFreeze(finalResult);\n\n if (frozen.result) {\n this.knownResults.set(frozen.result, selectionSet);\n }\n\n return frozen;\n };\n\n StoreReader.prototype.execSubSelectedArrayImpl = function (_a) {\n var _this = this;\n\n var field = _a.field,\n array = _a.array,\n enclosingRef = _a.enclosingRef,\n context = _a.context;\n var missing;\n var missingMerger = new DeepMerger();\n\n function handleMissing(childResult, i) {\n var _a;\n\n if (childResult.missing) {\n missing = missingMerger.merge(missing, (_a = {}, _a[i] = childResult.missing, _a));\n }\n\n return childResult.result;\n }\n\n if (field.selectionSet) {\n array = array.filter(context.store.canRead);\n }\n\n array = array.map(function (item, i) {\n if (item === null) {\n return null;\n }\n\n if (isArray(item)) {\n return handleMissing(_this.executeSubSelectedArray({\n field: field,\n array: item,\n enclosingRef: enclosingRef,\n context: context\n }), i);\n }\n\n if (field.selectionSet) {\n return handleMissing(_this.executeSelectionSet({\n selectionSet: field.selectionSet,\n objectOrReference: item,\n enclosingRef: isReference(item) ? item : enclosingRef,\n context: context\n }), i);\n }\n\n if (__DEV__) {\n assertSelectionSetForIdValue(context.store, field, item);\n }\n\n return item;\n });\n return {\n result: context.canonizeResults ? this.canon.admit(array) : array,\n missing: missing\n };\n };\n\n return StoreReader;\n}();\n\nexport { StoreReader };\n\nfunction firstMissing(tree) {\n try {\n JSON.stringify(tree, function (_, value) {\n if (typeof value === \"string\") throw value;\n return value;\n });\n } catch (result) {\n return result;\n }\n}\n\nfunction assertSelectionSetForIdValue(store, field, fieldValue) {\n if (!field.selectionSet) {\n var workSet_1 = new Set([fieldValue]);\n workSet_1.forEach(function (value) {\n if (isNonNullObject(value)) {\n __DEV__ ? invariant(!isReference(value), \"Missing selection set for object of type \".concat(getTypenameFromStoreObject(store, value), \" returned for query field \").concat(field.name.value)) : invariant(!isReference(value), 6);\n Object.values(value).forEach(workSet_1.add, workSet_1);\n }\n });\n }\n}","import { invariant } from \"../../utilities/globals/index.js\";\nimport { argumentsObjectFromField, DeepMerger, isNonEmptyArray, isNonNullObject } from \"../../utilities/index.js\";\nimport { hasOwn, isArray } from \"./helpers.js\";\nvar specifierInfoCache = Object.create(null);\n\nfunction lookupSpecifierInfo(spec) {\n var cacheKey = JSON.stringify(spec);\n return specifierInfoCache[cacheKey] || (specifierInfoCache[cacheKey] = Object.create(null));\n}\n\nexport function keyFieldsFnFromSpecifier(specifier) {\n var info = lookupSpecifierInfo(specifier);\n return info.keyFieldsFn || (info.keyFieldsFn = function (object, context) {\n var extract = function extract(from, key) {\n return context.readField(key, from);\n };\n\n var keyObject = context.keyObject = collectSpecifierPaths(specifier, function (schemaKeyPath) {\n var extracted = extractKeyPath(context.storeObject, schemaKeyPath, extract);\n\n if (extracted === void 0 && object !== context.storeObject && hasOwn.call(object, schemaKeyPath[0])) {\n extracted = extractKeyPath(object, schemaKeyPath, extractKey);\n }\n\n __DEV__ ? invariant(extracted !== void 0, \"Missing field '\".concat(schemaKeyPath.join('.'), \"' while extracting keyFields from \").concat(JSON.stringify(object))) : invariant(extracted !== void 0, 2);\n return extracted;\n });\n return \"\".concat(context.typename, \":\").concat(JSON.stringify(keyObject));\n });\n}\nexport function keyArgsFnFromSpecifier(specifier) {\n var info = lookupSpecifierInfo(specifier);\n return info.keyArgsFn || (info.keyArgsFn = function (args, _a) {\n var field = _a.field,\n variables = _a.variables,\n fieldName = _a.fieldName;\n var collected = collectSpecifierPaths(specifier, function (keyPath) {\n var firstKey = keyPath[0];\n var firstChar = firstKey.charAt(0);\n\n if (firstChar === \"@\") {\n if (field && isNonEmptyArray(field.directives)) {\n var directiveName_1 = firstKey.slice(1);\n var d = field.directives.find(function (d) {\n return d.name.value === directiveName_1;\n });\n var directiveArgs = d && argumentsObjectFromField(d, variables);\n return directiveArgs && extractKeyPath(directiveArgs, keyPath.slice(1));\n }\n\n return;\n }\n\n if (firstChar === \"$\") {\n var variableName = firstKey.slice(1);\n\n if (variables && hasOwn.call(variables, variableName)) {\n var varKeyPath = keyPath.slice(0);\n varKeyPath[0] = variableName;\n return extractKeyPath(variables, varKeyPath);\n }\n\n return;\n }\n\n if (args) {\n return extractKeyPath(args, keyPath);\n }\n });\n var suffix = JSON.stringify(collected);\n\n if (args || suffix !== \"{}\") {\n fieldName += \":\" + suffix;\n }\n\n return fieldName;\n });\n}\nexport function collectSpecifierPaths(specifier, extractor) {\n var merger = new DeepMerger();\n return getSpecifierPaths(specifier).reduce(function (collected, path) {\n var _a;\n\n var toMerge = extractor(path);\n\n if (toMerge !== void 0) {\n for (var i = path.length - 1; i >= 0; --i) {\n toMerge = (_a = {}, _a[path[i]] = toMerge, _a);\n }\n\n collected = merger.merge(collected, toMerge);\n }\n\n return collected;\n }, Object.create(null));\n}\nexport function getSpecifierPaths(spec) {\n var info = lookupSpecifierInfo(spec);\n\n if (!info.paths) {\n var paths_1 = info.paths = [];\n var currentPath_1 = [];\n spec.forEach(function (s, i) {\n if (isArray(s)) {\n getSpecifierPaths(s).forEach(function (p) {\n return paths_1.push(currentPath_1.concat(p));\n });\n currentPath_1.length = 0;\n } else {\n currentPath_1.push(s);\n\n if (!isArray(spec[i + 1])) {\n paths_1.push(currentPath_1.slice(0));\n currentPath_1.length = 0;\n }\n }\n });\n }\n\n return info.paths;\n}\n\nfunction extractKey(object, key) {\n return object[key];\n}\n\nexport function extractKeyPath(object, path, extract) {\n extract = extract || extractKey;\n return normalize(path.reduce(function reducer(obj, key) {\n return isArray(obj) ? obj.map(function (child) {\n return reducer(child, key);\n }) : obj && extract(obj, key);\n }, object));\n}\n\nfunction normalize(value) {\n if (isNonNullObject(value)) {\n if (isArray(value)) {\n return value.map(normalize);\n }\n\n return collectSpecifierPaths(Object.keys(value).sort(), function (path) {\n return extractKeyPath(value, path);\n });\n }\n\n return value;\n}","import { __assign, __rest } from \"tslib\";\nimport { invariant, InvariantError } from \"../../utilities/globals/index.js\";\nimport { storeKeyNameFromField, argumentsObjectFromField, isReference, getStoreKeyName, isNonNullObject, stringifyForDisplay } from \"../../utilities/index.js\";\nimport { hasOwn, fieldNameFromStoreName, storeValueIsStoreObject, selectionSetMatchesResult, TypeOrFieldNameRegExp, defaultDataIdFromObject, isArray } from \"./helpers.js\";\nimport { cacheSlot } from \"./reactiveVars.js\";\nimport { canonicalStringify } from \"./object-canon.js\";\nimport { keyArgsFnFromSpecifier, keyFieldsFnFromSpecifier } from \"./key-extractor.js\";\ngetStoreKeyName.setStringify(canonicalStringify);\n\nfunction argsFromFieldSpecifier(spec) {\n return spec.args !== void 0 ? spec.args : spec.field ? argumentsObjectFromField(spec.field, spec.variables) : null;\n}\n\nvar nullKeyFieldsFn = function nullKeyFieldsFn() {\n return void 0;\n};\n\nvar simpleKeyArgsFn = function simpleKeyArgsFn(_args, context) {\n return context.fieldName;\n};\n\nvar mergeTrueFn = function mergeTrueFn(existing, incoming, _a) {\n var mergeObjects = _a.mergeObjects;\n return mergeObjects(existing, incoming);\n};\n\nvar mergeFalseFn = function mergeFalseFn(_, incoming) {\n return incoming;\n};\n\nvar Policies = function () {\n function Policies(config) {\n this.config = config;\n this.typePolicies = Object.create(null);\n this.toBeAdded = Object.create(null);\n this.supertypeMap = new Map();\n this.fuzzySubtypes = new Map();\n this.rootIdsByTypename = Object.create(null);\n this.rootTypenamesById = Object.create(null);\n this.usingPossibleTypes = false;\n this.config = __assign({\n dataIdFromObject: defaultDataIdFromObject\n }, config);\n this.cache = this.config.cache;\n this.setRootTypename(\"Query\");\n this.setRootTypename(\"Mutation\");\n this.setRootTypename(\"Subscription\");\n\n if (config.possibleTypes) {\n this.addPossibleTypes(config.possibleTypes);\n }\n\n if (config.typePolicies) {\n this.addTypePolicies(config.typePolicies);\n }\n }\n\n Policies.prototype.identify = function (object, partialContext) {\n var _a;\n\n var policies = this;\n var typename = partialContext && (partialContext.typename || ((_a = partialContext.storeObject) === null || _a === void 0 ? void 0 : _a.__typename)) || object.__typename;\n\n if (typename === this.rootTypenamesById.ROOT_QUERY) {\n return [\"ROOT_QUERY\"];\n }\n\n var storeObject = partialContext && partialContext.storeObject || object;\n\n var context = __assign(__assign({}, partialContext), {\n typename: typename,\n storeObject: storeObject,\n readField: partialContext && partialContext.readField || function () {\n var options = normalizeReadFieldOptions(arguments, storeObject);\n return policies.readField(options, {\n store: policies.cache[\"data\"],\n variables: options.variables\n });\n }\n });\n\n var id;\n var policy = typename && this.getTypePolicy(typename);\n var keyFn = policy && policy.keyFn || this.config.dataIdFromObject;\n\n while (keyFn) {\n var specifierOrId = keyFn(object, context);\n\n if (isArray(specifierOrId)) {\n keyFn = keyFieldsFnFromSpecifier(specifierOrId);\n } else {\n id = specifierOrId;\n break;\n }\n }\n\n id = id ? String(id) : void 0;\n return context.keyObject ? [id, context.keyObject] : [id];\n };\n\n Policies.prototype.addTypePolicies = function (typePolicies) {\n var _this = this;\n\n Object.keys(typePolicies).forEach(function (typename) {\n var _a = typePolicies[typename],\n queryType = _a.queryType,\n mutationType = _a.mutationType,\n subscriptionType = _a.subscriptionType,\n incoming = __rest(_a, [\"queryType\", \"mutationType\", \"subscriptionType\"]);\n\n if (queryType) _this.setRootTypename(\"Query\", typename);\n if (mutationType) _this.setRootTypename(\"Mutation\", typename);\n if (subscriptionType) _this.setRootTypename(\"Subscription\", typename);\n\n if (hasOwn.call(_this.toBeAdded, typename)) {\n _this.toBeAdded[typename].push(incoming);\n } else {\n _this.toBeAdded[typename] = [incoming];\n }\n });\n };\n\n Policies.prototype.updateTypePolicy = function (typename, incoming) {\n var _this = this;\n\n var existing = this.getTypePolicy(typename);\n var keyFields = incoming.keyFields,\n fields = incoming.fields;\n\n function setMerge(existing, merge) {\n existing.merge = typeof merge === \"function\" ? merge : merge === true ? mergeTrueFn : merge === false ? mergeFalseFn : existing.merge;\n }\n\n setMerge(existing, incoming.merge);\n existing.keyFn = keyFields === false ? nullKeyFieldsFn : isArray(keyFields) ? keyFieldsFnFromSpecifier(keyFields) : typeof keyFields === \"function\" ? keyFields : existing.keyFn;\n\n if (fields) {\n Object.keys(fields).forEach(function (fieldName) {\n var existing = _this.getFieldPolicy(typename, fieldName, true);\n\n var incoming = fields[fieldName];\n\n if (typeof incoming === \"function\") {\n existing.read = incoming;\n } else {\n var keyArgs = incoming.keyArgs,\n read = incoming.read,\n merge = incoming.merge;\n existing.keyFn = keyArgs === false ? simpleKeyArgsFn : isArray(keyArgs) ? keyArgsFnFromSpecifier(keyArgs) : typeof keyArgs === \"function\" ? keyArgs : existing.keyFn;\n\n if (typeof read === \"function\") {\n existing.read = read;\n }\n\n setMerge(existing, merge);\n }\n\n if (existing.read && existing.merge) {\n existing.keyFn = existing.keyFn || simpleKeyArgsFn;\n }\n });\n }\n };\n\n Policies.prototype.setRootTypename = function (which, typename) {\n if (typename === void 0) {\n typename = which;\n }\n\n var rootId = \"ROOT_\" + which.toUpperCase();\n var old = this.rootTypenamesById[rootId];\n\n if (typename !== old) {\n __DEV__ ? invariant(!old || old === which, \"Cannot change root \".concat(which, \" __typename more than once\")) : invariant(!old || old === which, 3);\n if (old) delete this.rootIdsByTypename[old];\n this.rootIdsByTypename[typename] = rootId;\n this.rootTypenamesById[rootId] = typename;\n }\n };\n\n Policies.prototype.addPossibleTypes = function (possibleTypes) {\n var _this = this;\n\n this.usingPossibleTypes = true;\n Object.keys(possibleTypes).forEach(function (supertype) {\n _this.getSupertypeSet(supertype, true);\n\n possibleTypes[supertype].forEach(function (subtype) {\n _this.getSupertypeSet(subtype, true).add(supertype);\n\n var match = subtype.match(TypeOrFieldNameRegExp);\n\n if (!match || match[0] !== subtype) {\n _this.fuzzySubtypes.set(subtype, new RegExp(subtype));\n }\n });\n });\n };\n\n Policies.prototype.getTypePolicy = function (typename) {\n var _this = this;\n\n if (!hasOwn.call(this.typePolicies, typename)) {\n var policy_1 = this.typePolicies[typename] = Object.create(null);\n policy_1.fields = Object.create(null);\n var supertypes = this.supertypeMap.get(typename);\n\n if (supertypes && supertypes.size) {\n supertypes.forEach(function (supertype) {\n var _a = _this.getTypePolicy(supertype),\n fields = _a.fields,\n rest = __rest(_a, [\"fields\"]);\n\n Object.assign(policy_1, rest);\n Object.assign(policy_1.fields, fields);\n });\n }\n }\n\n var inbox = this.toBeAdded[typename];\n\n if (inbox && inbox.length) {\n inbox.splice(0).forEach(function (policy) {\n _this.updateTypePolicy(typename, policy);\n });\n }\n\n return this.typePolicies[typename];\n };\n\n Policies.prototype.getFieldPolicy = function (typename, fieldName, createIfMissing) {\n if (typename) {\n var fieldPolicies = this.getTypePolicy(typename).fields;\n return fieldPolicies[fieldName] || createIfMissing && (fieldPolicies[fieldName] = Object.create(null));\n }\n };\n\n Policies.prototype.getSupertypeSet = function (subtype, createIfMissing) {\n var supertypeSet = this.supertypeMap.get(subtype);\n\n if (!supertypeSet && createIfMissing) {\n this.supertypeMap.set(subtype, supertypeSet = new Set());\n }\n\n return supertypeSet;\n };\n\n Policies.prototype.fragmentMatches = function (fragment, typename, result, variables) {\n var _this = this;\n\n if (!fragment.typeCondition) return true;\n if (!typename) return false;\n var supertype = fragment.typeCondition.name.value;\n if (typename === supertype) return true;\n\n if (this.usingPossibleTypes && this.supertypeMap.has(supertype)) {\n var typenameSupertypeSet = this.getSupertypeSet(typename, true);\n var workQueue_1 = [typenameSupertypeSet];\n\n var maybeEnqueue_1 = function maybeEnqueue_1(subtype) {\n var supertypeSet = _this.getSupertypeSet(subtype, false);\n\n if (supertypeSet && supertypeSet.size && workQueue_1.indexOf(supertypeSet) < 0) {\n workQueue_1.push(supertypeSet);\n }\n };\n\n var needToCheckFuzzySubtypes = !!(result && this.fuzzySubtypes.size);\n var checkingFuzzySubtypes = false;\n\n for (var i = 0; i < workQueue_1.length; ++i) {\n var supertypeSet = workQueue_1[i];\n\n if (supertypeSet.has(supertype)) {\n if (!typenameSupertypeSet.has(supertype)) {\n if (checkingFuzzySubtypes) {\n __DEV__ && invariant.warn(\"Inferring subtype \".concat(typename, \" of supertype \").concat(supertype));\n }\n\n typenameSupertypeSet.add(supertype);\n }\n\n return true;\n }\n\n supertypeSet.forEach(maybeEnqueue_1);\n\n if (needToCheckFuzzySubtypes && i === workQueue_1.length - 1 && selectionSetMatchesResult(fragment.selectionSet, result, variables)) {\n needToCheckFuzzySubtypes = false;\n checkingFuzzySubtypes = true;\n this.fuzzySubtypes.forEach(function (regExp, fuzzyString) {\n var match = typename.match(regExp);\n\n if (match && match[0] === typename) {\n maybeEnqueue_1(fuzzyString);\n }\n });\n }\n }\n }\n\n return false;\n };\n\n Policies.prototype.hasKeyArgs = function (typename, fieldName) {\n var policy = this.getFieldPolicy(typename, fieldName, false);\n return !!(policy && policy.keyFn);\n };\n\n Policies.prototype.getStoreFieldName = function (fieldSpec) {\n var typename = fieldSpec.typename,\n fieldName = fieldSpec.fieldName;\n var policy = this.getFieldPolicy(typename, fieldName, false);\n var storeFieldName;\n var keyFn = policy && policy.keyFn;\n\n if (keyFn && typename) {\n var context = {\n typename: typename,\n fieldName: fieldName,\n field: fieldSpec.field || null,\n variables: fieldSpec.variables\n };\n var args = argsFromFieldSpecifier(fieldSpec);\n\n while (keyFn) {\n var specifierOrString = keyFn(args, context);\n\n if (isArray(specifierOrString)) {\n keyFn = keyArgsFnFromSpecifier(specifierOrString);\n } else {\n storeFieldName = specifierOrString || fieldName;\n break;\n }\n }\n }\n\n if (storeFieldName === void 0) {\n storeFieldName = fieldSpec.field ? storeKeyNameFromField(fieldSpec.field, fieldSpec.variables) : getStoreKeyName(fieldName, argsFromFieldSpecifier(fieldSpec));\n }\n\n if (storeFieldName === false) {\n return fieldName;\n }\n\n return fieldName === fieldNameFromStoreName(storeFieldName) ? storeFieldName : fieldName + \":\" + storeFieldName;\n };\n\n Policies.prototype.readField = function (options, context) {\n var objectOrReference = options.from;\n if (!objectOrReference) return;\n var nameOrField = options.field || options.fieldName;\n if (!nameOrField) return;\n\n if (options.typename === void 0) {\n var typename = context.store.getFieldValue(objectOrReference, \"__typename\");\n if (typename) options.typename = typename;\n }\n\n var storeFieldName = this.getStoreFieldName(options);\n var fieldName = fieldNameFromStoreName(storeFieldName);\n var existing = context.store.getFieldValue(objectOrReference, storeFieldName);\n var policy = this.getFieldPolicy(options.typename, fieldName, false);\n var read = policy && policy.read;\n\n if (read) {\n var readOptions = makeFieldFunctionOptions(this, objectOrReference, options, context, context.store.getStorage(isReference(objectOrReference) ? objectOrReference.__ref : objectOrReference, storeFieldName));\n return cacheSlot.withValue(this.cache, read, [existing, readOptions]);\n }\n\n return existing;\n };\n\n Policies.prototype.getReadFunction = function (typename, fieldName) {\n var policy = this.getFieldPolicy(typename, fieldName, false);\n return policy && policy.read;\n };\n\n Policies.prototype.getMergeFunction = function (parentTypename, fieldName, childTypename) {\n var policy = this.getFieldPolicy(parentTypename, fieldName, false);\n var merge = policy && policy.merge;\n\n if (!merge && childTypename) {\n policy = this.getTypePolicy(childTypename);\n merge = policy && policy.merge;\n }\n\n return merge;\n };\n\n Policies.prototype.runMergeFunction = function (existing, incoming, _a, context, storage) {\n var field = _a.field,\n typename = _a.typename,\n merge = _a.merge;\n\n if (merge === mergeTrueFn) {\n return makeMergeObjectsFunction(context.store)(existing, incoming);\n }\n\n if (merge === mergeFalseFn) {\n return incoming;\n }\n\n if (context.overwrite) {\n existing = void 0;\n }\n\n return merge(existing, incoming, makeFieldFunctionOptions(this, void 0, {\n typename: typename,\n fieldName: field.name.value,\n field: field,\n variables: context.variables\n }, context, storage || Object.create(null)));\n };\n\n return Policies;\n}();\n\nexport { Policies };\n\nfunction makeFieldFunctionOptions(policies, objectOrReference, fieldSpec, context, storage) {\n var storeFieldName = policies.getStoreFieldName(fieldSpec);\n var fieldName = fieldNameFromStoreName(storeFieldName);\n var variables = fieldSpec.variables || context.variables;\n var _a = context.store,\n toReference = _a.toReference,\n canRead = _a.canRead;\n return {\n args: argsFromFieldSpecifier(fieldSpec),\n field: fieldSpec.field || null,\n fieldName: fieldName,\n storeFieldName: storeFieldName,\n variables: variables,\n isReference: isReference,\n toReference: toReference,\n storage: storage,\n cache: policies.cache,\n canRead: canRead,\n readField: function readField() {\n return policies.readField(normalizeReadFieldOptions(arguments, objectOrReference, variables), context);\n },\n mergeObjects: makeMergeObjectsFunction(context.store)\n };\n}\n\nexport function normalizeReadFieldOptions(readFieldArgs, objectOrReference, variables) {\n var fieldNameOrOptions = readFieldArgs[0],\n from = readFieldArgs[1],\n argc = readFieldArgs.length;\n var options;\n\n if (typeof fieldNameOrOptions === \"string\") {\n options = {\n fieldName: fieldNameOrOptions,\n from: argc > 1 ? from : objectOrReference\n };\n } else {\n options = __assign({}, fieldNameOrOptions);\n\n if (!hasOwn.call(options, \"from\")) {\n options.from = objectOrReference;\n }\n }\n\n if (__DEV__ && options.from === void 0) {\n __DEV__ && invariant.warn(\"Undefined 'from' passed to readField with arguments \".concat(stringifyForDisplay(Array.from(readFieldArgs))));\n }\n\n if (void 0 === options.variables) {\n options.variables = variables;\n }\n\n return options;\n}\n\nfunction makeMergeObjectsFunction(store) {\n return function mergeObjects(existing, incoming) {\n if (isArray(existing) || isArray(incoming)) {\n throw __DEV__ ? new InvariantError(\"Cannot automatically merge arrays\") : new InvariantError(4);\n }\n\n if (isNonNullObject(existing) && isNonNullObject(incoming)) {\n var eType = store.getFieldValue(existing, \"__typename\");\n var iType = store.getFieldValue(incoming, \"__typename\");\n var typesDiffer = eType && iType && eType !== iType;\n\n if (typesDiffer) {\n return incoming;\n }\n\n if (isReference(existing) && storeValueIsStoreObject(incoming)) {\n store.merge(existing.__ref, incoming);\n return existing;\n }\n\n if (storeValueIsStoreObject(existing) && isReference(incoming)) {\n store.merge(existing, incoming.__ref);\n return incoming;\n }\n\n if (storeValueIsStoreObject(existing) && storeValueIsStoreObject(incoming)) {\n return __assign(__assign({}, existing), incoming);\n }\n }\n\n return incoming;\n };\n}","import { makeUniqueId } from \"./makeUniqueId.js\";\nexport function stringifyForDisplay(value) {\n var undefId = makeUniqueId(\"stringifyForDisplay\");\n return JSON.stringify(value, function (key, value) {\n return value === void 0 ? undefId : value;\n }).split(JSON.stringify(undefId)).join(\"<undefined>\");\n}","import { __assign } from \"tslib\";\nimport { invariant, InvariantError } from \"../../utilities/globals/index.js\";\nimport { equal } from '@wry/equality';\nimport { Trie } from '@wry/trie';\nimport { Kind } from 'graphql';\nimport { getFragmentFromSelection, getDefaultValues, getOperationDefinition, getTypenameFromResult, makeReference, isField, resultKeyNameFromField, isReference, shouldInclude, cloneDeep, addTypenameToDocument, isNonEmptyArray, argumentsObjectFromField } from \"../../utilities/index.js\";\nimport { isArray, makeProcessedFieldsMerger, fieldNameFromStoreName, storeValueIsStoreObject, extractFragmentContext } from \"./helpers.js\";\nimport { canonicalStringify } from \"./object-canon.js\";\nimport { normalizeReadFieldOptions } from \"./policies.js\";\n;\n\nfunction getContextFlavor(context, clientOnly, deferred) {\n var key = \"\".concat(clientOnly).concat(deferred);\n var flavored = context.flavors.get(key);\n\n if (!flavored) {\n context.flavors.set(key, flavored = context.clientOnly === clientOnly && context.deferred === deferred ? context : __assign(__assign({}, context), {\n clientOnly: clientOnly,\n deferred: deferred\n }));\n }\n\n return flavored;\n}\n\nvar StoreWriter = function () {\n function StoreWriter(cache, reader, fragments) {\n this.cache = cache;\n this.reader = reader;\n this.fragments = fragments;\n }\n\n StoreWriter.prototype.writeToStore = function (store, _a) {\n var _this = this;\n\n var query = _a.query,\n result = _a.result,\n dataId = _a.dataId,\n variables = _a.variables,\n overwrite = _a.overwrite;\n var operationDefinition = getOperationDefinition(query);\n var merger = makeProcessedFieldsMerger();\n variables = __assign(__assign({}, getDefaultValues(operationDefinition)), variables);\n\n var context = __assign(__assign({\n store: store,\n written: Object.create(null),\n merge: function merge(existing, incoming) {\n return merger.merge(existing, incoming);\n },\n variables: variables,\n varString: canonicalStringify(variables)\n }, extractFragmentContext(query, this.fragments)), {\n overwrite: !!overwrite,\n incomingById: new Map(),\n clientOnly: false,\n deferred: false,\n flavors: new Map()\n });\n\n var ref = this.processSelectionSet({\n result: result || Object.create(null),\n dataId: dataId,\n selectionSet: operationDefinition.selectionSet,\n mergeTree: {\n map: new Map()\n },\n context: context\n });\n\n if (!isReference(ref)) {\n throw __DEV__ ? new InvariantError(\"Could not identify object \".concat(JSON.stringify(result))) : new InvariantError(7);\n }\n\n context.incomingById.forEach(function (_a, dataId) {\n var storeObject = _a.storeObject,\n mergeTree = _a.mergeTree,\n fieldNodeSet = _a.fieldNodeSet;\n var entityRef = makeReference(dataId);\n\n if (mergeTree && mergeTree.map.size) {\n var applied = _this.applyMerges(mergeTree, entityRef, storeObject, context);\n\n if (isReference(applied)) {\n return;\n }\n\n storeObject = applied;\n }\n\n if (__DEV__ && !context.overwrite) {\n var fieldsWithSelectionSets_1 = Object.create(null);\n fieldNodeSet.forEach(function (field) {\n if (field.selectionSet) {\n fieldsWithSelectionSets_1[field.name.value] = true;\n }\n });\n\n var hasSelectionSet_1 = function hasSelectionSet_1(storeFieldName) {\n return fieldsWithSelectionSets_1[fieldNameFromStoreName(storeFieldName)] === true;\n };\n\n var hasMergeFunction_1 = function hasMergeFunction_1(storeFieldName) {\n var childTree = mergeTree && mergeTree.map.get(storeFieldName);\n return Boolean(childTree && childTree.info && childTree.info.merge);\n };\n\n Object.keys(storeObject).forEach(function (storeFieldName) {\n if (hasSelectionSet_1(storeFieldName) && !hasMergeFunction_1(storeFieldName)) {\n warnAboutDataLoss(entityRef, storeObject, storeFieldName, context.store);\n }\n });\n }\n\n store.merge(dataId, storeObject);\n });\n store.retain(ref.__ref);\n return ref;\n };\n\n StoreWriter.prototype.processSelectionSet = function (_a) {\n var _this = this;\n\n var dataId = _a.dataId,\n result = _a.result,\n selectionSet = _a.selectionSet,\n context = _a.context,\n mergeTree = _a.mergeTree;\n var policies = this.cache.policies;\n var incoming = Object.create(null);\n var typename = dataId && policies.rootTypenamesById[dataId] || getTypenameFromResult(result, selectionSet, context.fragmentMap) || dataId && context.store.get(dataId, \"__typename\");\n\n if (\"string\" === typeof typename) {\n incoming.__typename = typename;\n }\n\n var readField = function readField() {\n var options = normalizeReadFieldOptions(arguments, incoming, context.variables);\n\n if (isReference(options.from)) {\n var info = context.incomingById.get(options.from.__ref);\n\n if (info) {\n var result_1 = policies.readField(__assign(__assign({}, options), {\n from: info.storeObject\n }), context);\n\n if (result_1 !== void 0) {\n return result_1;\n }\n }\n }\n\n return policies.readField(options, context);\n };\n\n var fieldNodeSet = new Set();\n this.flattenFields(selectionSet, result, context, typename).forEach(function (context, field) {\n var _a;\n\n var resultFieldKey = resultKeyNameFromField(field);\n var value = result[resultFieldKey];\n fieldNodeSet.add(field);\n\n if (value !== void 0) {\n var storeFieldName = policies.getStoreFieldName({\n typename: typename,\n fieldName: field.name.value,\n field: field,\n variables: context.variables\n });\n var childTree = getChildMergeTree(mergeTree, storeFieldName);\n\n var incomingValue = _this.processFieldValue(value, field, field.selectionSet ? getContextFlavor(context, false, false) : context, childTree);\n\n var childTypename = void 0;\n\n if (field.selectionSet && (isReference(incomingValue) || storeValueIsStoreObject(incomingValue))) {\n childTypename = readField(\"__typename\", incomingValue);\n }\n\n var merge = policies.getMergeFunction(typename, field.name.value, childTypename);\n\n if (merge) {\n childTree.info = {\n field: field,\n typename: typename,\n merge: merge\n };\n } else {\n maybeRecycleChildMergeTree(mergeTree, storeFieldName);\n }\n\n incoming = context.merge(incoming, (_a = {}, _a[storeFieldName] = incomingValue, _a));\n } else if (__DEV__ && !context.clientOnly && !context.deferred && !addTypenameToDocument.added(field) && !policies.getReadFunction(typename, field.name.value)) {\n __DEV__ && invariant.error(\"Missing field '\".concat(resultKeyNameFromField(field), \"' while writing result \").concat(JSON.stringify(result, null, 2)).substring(0, 1000));\n }\n });\n\n try {\n var _b = policies.identify(result, {\n typename: typename,\n selectionSet: selectionSet,\n fragmentMap: context.fragmentMap,\n storeObject: incoming,\n readField: readField\n }),\n id = _b[0],\n keyObject = _b[1];\n\n dataId = dataId || id;\n\n if (keyObject) {\n incoming = context.merge(incoming, keyObject);\n }\n } catch (e) {\n if (!dataId) throw e;\n }\n\n if (\"string\" === typeof dataId) {\n var dataRef = makeReference(dataId);\n var sets = context.written[dataId] || (context.written[dataId] = []);\n if (sets.indexOf(selectionSet) >= 0) return dataRef;\n sets.push(selectionSet);\n\n if (this.reader && this.reader.isFresh(result, dataRef, selectionSet, context)) {\n return dataRef;\n }\n\n var previous_1 = context.incomingById.get(dataId);\n\n if (previous_1) {\n previous_1.storeObject = context.merge(previous_1.storeObject, incoming);\n previous_1.mergeTree = mergeMergeTrees(previous_1.mergeTree, mergeTree);\n fieldNodeSet.forEach(function (field) {\n return previous_1.fieldNodeSet.add(field);\n });\n } else {\n context.incomingById.set(dataId, {\n storeObject: incoming,\n mergeTree: mergeTreeIsEmpty(mergeTree) ? void 0 : mergeTree,\n fieldNodeSet: fieldNodeSet\n });\n }\n\n return dataRef;\n }\n\n return incoming;\n };\n\n StoreWriter.prototype.processFieldValue = function (value, field, context, mergeTree) {\n var _this = this;\n\n if (!field.selectionSet || value === null) {\n return __DEV__ ? cloneDeep(value) : value;\n }\n\n if (isArray(value)) {\n return value.map(function (item, i) {\n var value = _this.processFieldValue(item, field, context, getChildMergeTree(mergeTree, i));\n\n maybeRecycleChildMergeTree(mergeTree, i);\n return value;\n });\n }\n\n return this.processSelectionSet({\n result: value,\n selectionSet: field.selectionSet,\n context: context,\n mergeTree: mergeTree\n });\n };\n\n StoreWriter.prototype.flattenFields = function (selectionSet, result, context, typename) {\n if (typename === void 0) {\n typename = getTypenameFromResult(result, selectionSet, context.fragmentMap);\n }\n\n var fieldMap = new Map();\n var policies = this.cache.policies;\n var limitingTrie = new Trie(false);\n\n (function flatten(selectionSet, inheritedContext) {\n var visitedNode = limitingTrie.lookup(selectionSet, inheritedContext.clientOnly, inheritedContext.deferred);\n if (visitedNode.visited) return;\n visitedNode.visited = true;\n selectionSet.selections.forEach(function (selection) {\n if (!shouldInclude(selection, context.variables)) return;\n var clientOnly = inheritedContext.clientOnly,\n deferred = inheritedContext.deferred;\n\n if (!(clientOnly && deferred) && isNonEmptyArray(selection.directives)) {\n selection.directives.forEach(function (dir) {\n var name = dir.name.value;\n if (name === \"client\") clientOnly = true;\n\n if (name === \"defer\") {\n var args = argumentsObjectFromField(dir, context.variables);\n\n if (!args || args.if !== false) {\n deferred = true;\n }\n }\n });\n }\n\n if (isField(selection)) {\n var existing = fieldMap.get(selection);\n\n if (existing) {\n clientOnly = clientOnly && existing.clientOnly;\n deferred = deferred && existing.deferred;\n }\n\n fieldMap.set(selection, getContextFlavor(context, clientOnly, deferred));\n } else {\n var fragment = getFragmentFromSelection(selection, context.lookupFragment);\n\n if (!fragment && selection.kind === Kind.FRAGMENT_SPREAD) {\n throw __DEV__ ? new InvariantError(\"No fragment named \".concat(selection.name.value)) : new InvariantError(8);\n }\n\n if (fragment && policies.fragmentMatches(fragment, typename, result, context.variables)) {\n flatten(fragment.selectionSet, getContextFlavor(context, clientOnly, deferred));\n }\n }\n });\n })(selectionSet, context);\n\n return fieldMap;\n };\n\n StoreWriter.prototype.applyMerges = function (mergeTree, existing, incoming, context, getStorageArgs) {\n var _a;\n\n var _this = this;\n\n if (mergeTree.map.size && !isReference(incoming)) {\n var e_1 = !isArray(incoming) && (isReference(existing) || storeValueIsStoreObject(existing)) ? existing : void 0;\n var i_1 = incoming;\n\n if (e_1 && !getStorageArgs) {\n getStorageArgs = [isReference(e_1) ? e_1.__ref : e_1];\n }\n\n var changedFields_1;\n\n var getValue_1 = function getValue_1(from, name) {\n return isArray(from) ? typeof name === \"number\" ? from[name] : void 0 : context.store.getFieldValue(from, String(name));\n };\n\n mergeTree.map.forEach(function (childTree, storeFieldName) {\n var eVal = getValue_1(e_1, storeFieldName);\n var iVal = getValue_1(i_1, storeFieldName);\n if (void 0 === iVal) return;\n\n if (getStorageArgs) {\n getStorageArgs.push(storeFieldName);\n }\n\n var aVal = _this.applyMerges(childTree, eVal, iVal, context, getStorageArgs);\n\n if (aVal !== iVal) {\n changedFields_1 = changedFields_1 || new Map();\n changedFields_1.set(storeFieldName, aVal);\n }\n\n if (getStorageArgs) {\n invariant(getStorageArgs.pop() === storeFieldName);\n }\n });\n\n if (changedFields_1) {\n incoming = isArray(i_1) ? i_1.slice(0) : __assign({}, i_1);\n changedFields_1.forEach(function (value, name) {\n incoming[name] = value;\n });\n }\n }\n\n if (mergeTree.info) {\n return this.cache.policies.runMergeFunction(existing, incoming, mergeTree.info, context, getStorageArgs && (_a = context.store).getStorage.apply(_a, getStorageArgs));\n }\n\n return incoming;\n };\n\n return StoreWriter;\n}();\n\nexport { StoreWriter };\nvar emptyMergeTreePool = [];\n\nfunction getChildMergeTree(_a, name) {\n var map = _a.map;\n\n if (!map.has(name)) {\n map.set(name, emptyMergeTreePool.pop() || {\n map: new Map()\n });\n }\n\n return map.get(name);\n}\n\nfunction mergeMergeTrees(left, right) {\n if (left === right || !right || mergeTreeIsEmpty(right)) return left;\n if (!left || mergeTreeIsEmpty(left)) return right;\n var info = left.info && right.info ? __assign(__assign({}, left.info), right.info) : left.info || right.info;\n var needToMergeMaps = left.map.size && right.map.size;\n var map = needToMergeMaps ? new Map() : left.map.size ? left.map : right.map;\n var merged = {\n info: info,\n map: map\n };\n\n if (needToMergeMaps) {\n var remainingRightKeys_1 = new Set(right.map.keys());\n left.map.forEach(function (leftTree, key) {\n merged.map.set(key, mergeMergeTrees(leftTree, right.map.get(key)));\n remainingRightKeys_1.delete(key);\n });\n remainingRightKeys_1.forEach(function (key) {\n merged.map.set(key, mergeMergeTrees(right.map.get(key), left.map.get(key)));\n });\n }\n\n return merged;\n}\n\nfunction mergeTreeIsEmpty(tree) {\n return !tree || !(tree.info || tree.map.size);\n}\n\nfunction maybeRecycleChildMergeTree(_a, name) {\n var map = _a.map;\n var childTree = map.get(name);\n\n if (childTree && mergeTreeIsEmpty(childTree)) {\n emptyMergeTreePool.push(childTree);\n map.delete(name);\n }\n}\n\nvar warnings = new Set();\n\nfunction warnAboutDataLoss(existingRef, incomingObj, storeFieldName, store) {\n var getChild = function getChild(objOrRef) {\n var child = store.getFieldValue(objOrRef, storeFieldName);\n return typeof child === \"object\" && child;\n };\n\n var existing = getChild(existingRef);\n if (!existing) return;\n var incoming = getChild(incomingObj);\n if (!incoming) return;\n if (isReference(existing)) return;\n if (equal(existing, incoming)) return;\n\n if (Object.keys(existing).every(function (key) {\n return store.getFieldValue(incoming, key) !== void 0;\n })) {\n return;\n }\n\n var parentType = store.getFieldValue(existingRef, \"__typename\") || store.getFieldValue(incomingObj, \"__typename\");\n var fieldName = fieldNameFromStoreName(storeFieldName);\n var typeDotName = \"\".concat(parentType, \".\").concat(fieldName);\n if (warnings.has(typeDotName)) return;\n warnings.add(typeDotName);\n var childTypenames = [];\n\n if (!isArray(existing) && !isArray(incoming)) {\n [existing, incoming].forEach(function (child) {\n var typename = store.getFieldValue(child, \"__typename\");\n\n if (typeof typename === \"string\" && !childTypenames.includes(typename)) {\n childTypenames.push(typename);\n }\n });\n }\n\n __DEV__ && invariant.warn(\"Cache data may be lost when replacing the \".concat(fieldName, \" field of a \").concat(parentType, \" object.\\n\\nTo address this problem (which is not a bug in Apollo Client), \").concat(childTypenames.length ? \"either ensure all objects of type \" + childTypenames.join(\" and \") + \" have an ID or a custom merge function, or \" : \"\", \"define a custom merge function for the \").concat(typeDotName, \" field, so InMemoryCache can safely merge these objects:\\n\\n existing: \").concat(JSON.stringify(existing).slice(0, 1000), \"\\n incoming: \").concat(JSON.stringify(incoming).slice(0, 1000), \"\\n\\nFor more information about these options, please refer to the documentation:\\n\\n * Ensuring entity objects have IDs: https://go.apollo.dev/c/generating-unique-identifiers\\n * Defining custom merge functions: https://go.apollo.dev/c/merging-non-normalized-objects\\n\"));\n}","import { __assign, __extends } from \"tslib\";\nimport { invariant } from \"../../utilities/globals/index.js\";\nimport \"./fixPolyfills.js\";\nimport { wrap } from 'optimism';\nimport { equal } from '@wry/equality';\nimport { ApolloCache } from \"../core/cache.js\";\nimport { MissingFieldError } from \"../core/types/common.js\";\nimport { addTypenameToDocument, isReference } from \"../../utilities/index.js\";\nimport { StoreReader } from \"./readFromStore.js\";\nimport { StoreWriter } from \"./writeToStore.js\";\nimport { EntityStore, supportsResultCaching } from \"./entityStore.js\";\nimport { makeVar, forgetCache, recallCache } from \"./reactiveVars.js\";\nimport { Policies } from \"./policies.js\";\nimport { hasOwn, normalizeConfig, shouldCanonizeResults } from \"./helpers.js\";\nimport { canonicalStringify } from \"./object-canon.js\";\n\nvar InMemoryCache = function (_super) {\n __extends(InMemoryCache, _super);\n\n function InMemoryCache(config) {\n if (config === void 0) {\n config = {};\n }\n\n var _this = _super.call(this) || this;\n\n _this.watches = new Set();\n _this.typenameDocumentCache = new Map();\n _this.makeVar = makeVar;\n _this.txCount = 0;\n _this.config = normalizeConfig(config);\n _this.addTypename = !!_this.config.addTypename;\n _this.policies = new Policies({\n cache: _this,\n dataIdFromObject: _this.config.dataIdFromObject,\n possibleTypes: _this.config.possibleTypes,\n typePolicies: _this.config.typePolicies\n });\n\n _this.init();\n\n return _this;\n }\n\n InMemoryCache.prototype.init = function () {\n var rootStore = this.data = new EntityStore.Root({\n policies: this.policies,\n resultCaching: this.config.resultCaching\n });\n this.optimisticData = rootStore.stump;\n this.resetResultCache();\n };\n\n InMemoryCache.prototype.resetResultCache = function (resetResultIdentities) {\n var _this = this;\n\n var previousReader = this.storeReader;\n var fragments = this.config.fragments;\n this.storeWriter = new StoreWriter(this, this.storeReader = new StoreReader({\n cache: this,\n addTypename: this.addTypename,\n resultCacheMaxSize: this.config.resultCacheMaxSize,\n canonizeResults: shouldCanonizeResults(this.config),\n canon: resetResultIdentities ? void 0 : previousReader && previousReader.canon,\n fragments: fragments\n }), fragments);\n this.maybeBroadcastWatch = wrap(function (c, options) {\n return _this.broadcastWatch(c, options);\n }, {\n max: this.config.resultCacheMaxSize,\n makeCacheKey: function makeCacheKey(c) {\n var store = c.optimistic ? _this.optimisticData : _this.data;\n\n if (supportsResultCaching(store)) {\n var optimistic = c.optimistic,\n id = c.id,\n variables = c.variables;\n return store.makeCacheKey(c.query, c.callback, canonicalStringify({\n optimistic: optimistic,\n id: id,\n variables: variables\n }));\n }\n }\n });\n new Set([this.data.group, this.optimisticData.group]).forEach(function (group) {\n return group.resetCaching();\n });\n };\n\n InMemoryCache.prototype.restore = function (data) {\n this.init();\n if (data) this.data.replace(data);\n return this;\n };\n\n InMemoryCache.prototype.extract = function (optimistic) {\n if (optimistic === void 0) {\n optimistic = false;\n }\n\n return (optimistic ? this.optimisticData : this.data).extract();\n };\n\n InMemoryCache.prototype.read = function (options) {\n var _a = options.returnPartialData,\n returnPartialData = _a === void 0 ? false : _a;\n\n try {\n return this.storeReader.diffQueryAgainstStore(__assign(__assign({}, options), {\n store: options.optimistic ? this.optimisticData : this.data,\n config: this.config,\n returnPartialData: returnPartialData\n })).result || null;\n } catch (e) {\n if (e instanceof MissingFieldError) {\n return null;\n }\n\n throw e;\n }\n };\n\n InMemoryCache.prototype.write = function (options) {\n try {\n ++this.txCount;\n return this.storeWriter.writeToStore(this.data, options);\n } finally {\n if (! --this.txCount && options.broadcast !== false) {\n this.broadcastWatches();\n }\n }\n };\n\n InMemoryCache.prototype.modify = function (options) {\n if (hasOwn.call(options, \"id\") && !options.id) {\n return false;\n }\n\n var store = options.optimistic ? this.optimisticData : this.data;\n\n try {\n ++this.txCount;\n return store.modify(options.id || \"ROOT_QUERY\", options.fields);\n } finally {\n if (! --this.txCount && options.broadcast !== false) {\n this.broadcastWatches();\n }\n }\n };\n\n InMemoryCache.prototype.diff = function (options) {\n return this.storeReader.diffQueryAgainstStore(__assign(__assign({}, options), {\n store: options.optimistic ? this.optimisticData : this.data,\n rootId: options.id || \"ROOT_QUERY\",\n config: this.config\n }));\n };\n\n InMemoryCache.prototype.watch = function (watch) {\n var _this = this;\n\n if (!this.watches.size) {\n recallCache(this);\n }\n\n this.watches.add(watch);\n\n if (watch.immediate) {\n this.maybeBroadcastWatch(watch);\n }\n\n return function () {\n if (_this.watches.delete(watch) && !_this.watches.size) {\n forgetCache(_this);\n }\n\n _this.maybeBroadcastWatch.forget(watch);\n };\n };\n\n InMemoryCache.prototype.gc = function (options) {\n canonicalStringify.reset();\n var ids = this.optimisticData.gc();\n\n if (options && !this.txCount) {\n if (options.resetResultCache) {\n this.resetResultCache(options.resetResultIdentities);\n } else if (options.resetResultIdentities) {\n this.storeReader.resetCanon();\n }\n }\n\n return ids;\n };\n\n InMemoryCache.prototype.retain = function (rootId, optimistic) {\n return (optimistic ? this.optimisticData : this.data).retain(rootId);\n };\n\n InMemoryCache.prototype.release = function (rootId, optimistic) {\n return (optimistic ? this.optimisticData : this.data).release(rootId);\n };\n\n InMemoryCache.prototype.identify = function (object) {\n if (isReference(object)) return object.__ref;\n\n try {\n return this.policies.identify(object)[0];\n } catch (e) {\n __DEV__ && invariant.warn(e);\n }\n };\n\n InMemoryCache.prototype.evict = function (options) {\n if (!options.id) {\n if (hasOwn.call(options, \"id\")) {\n return false;\n }\n\n options = __assign(__assign({}, options), {\n id: \"ROOT_QUERY\"\n });\n }\n\n try {\n ++this.txCount;\n return this.optimisticData.evict(options, this.data);\n } finally {\n if (! --this.txCount && options.broadcast !== false) {\n this.broadcastWatches();\n }\n }\n };\n\n InMemoryCache.prototype.reset = function (options) {\n var _this = this;\n\n this.init();\n canonicalStringify.reset();\n\n if (options && options.discardWatches) {\n this.watches.forEach(function (watch) {\n return _this.maybeBroadcastWatch.forget(watch);\n });\n this.watches.clear();\n forgetCache(this);\n } else {\n this.broadcastWatches();\n }\n\n return Promise.resolve();\n };\n\n InMemoryCache.prototype.removeOptimistic = function (idToRemove) {\n var newOptimisticData = this.optimisticData.removeLayer(idToRemove);\n\n if (newOptimisticData !== this.optimisticData) {\n this.optimisticData = newOptimisticData;\n this.broadcastWatches();\n }\n };\n\n InMemoryCache.prototype.batch = function (options) {\n var _this = this;\n\n var update = options.update,\n _a = options.optimistic,\n optimistic = _a === void 0 ? true : _a,\n removeOptimistic = options.removeOptimistic,\n _onWatchUpdated = options.onWatchUpdated;\n var updateResult;\n\n var perform = function perform(layer) {\n var _a = _this,\n data = _a.data,\n optimisticData = _a.optimisticData;\n ++_this.txCount;\n\n if (layer) {\n _this.data = _this.optimisticData = layer;\n }\n\n try {\n return updateResult = update(_this);\n } finally {\n --_this.txCount;\n _this.data = data;\n _this.optimisticData = optimisticData;\n }\n };\n\n var alreadyDirty = new Set();\n\n if (_onWatchUpdated && !this.txCount) {\n this.broadcastWatches(__assign(__assign({}, options), {\n onWatchUpdated: function onWatchUpdated(watch) {\n alreadyDirty.add(watch);\n return false;\n }\n }));\n }\n\n if (typeof optimistic === 'string') {\n this.optimisticData = this.optimisticData.addLayer(optimistic, perform);\n } else if (optimistic === false) {\n perform(this.data);\n } else {\n perform();\n }\n\n if (typeof removeOptimistic === \"string\") {\n this.optimisticData = this.optimisticData.removeLayer(removeOptimistic);\n }\n\n if (_onWatchUpdated && alreadyDirty.size) {\n this.broadcastWatches(__assign(__assign({}, options), {\n onWatchUpdated: function onWatchUpdated(watch, diff) {\n var result = _onWatchUpdated.call(this, watch, diff);\n\n if (result !== false) {\n alreadyDirty.delete(watch);\n }\n\n return result;\n }\n }));\n\n if (alreadyDirty.size) {\n alreadyDirty.forEach(function (watch) {\n return _this.maybeBroadcastWatch.dirty(watch);\n });\n }\n } else {\n this.broadcastWatches(options);\n }\n\n return updateResult;\n };\n\n InMemoryCache.prototype.performTransaction = function (update, optimisticId) {\n return this.batch({\n update: update,\n optimistic: optimisticId || optimisticId !== null\n });\n };\n\n InMemoryCache.prototype.transformDocument = function (document) {\n if (this.addTypename) {\n var result = this.typenameDocumentCache.get(document);\n\n if (!result) {\n result = addTypenameToDocument(document);\n this.typenameDocumentCache.set(document, result);\n this.typenameDocumentCache.set(result, result);\n }\n\n return result;\n }\n\n return document;\n };\n\n InMemoryCache.prototype.transformForLink = function (document) {\n var fragments = this.config.fragments;\n return fragments ? fragments.transform(document) : document;\n };\n\n InMemoryCache.prototype.broadcastWatches = function (options) {\n var _this = this;\n\n if (!this.txCount) {\n this.watches.forEach(function (c) {\n return _this.maybeBroadcastWatch(c, options);\n });\n }\n };\n\n InMemoryCache.prototype.broadcastWatch = function (c, options) {\n var lastDiff = c.lastDiff;\n var diff = this.diff(c);\n\n if (options) {\n if (c.optimistic && typeof options.optimistic === \"string\") {\n diff.fromOptimisticTransaction = true;\n }\n\n if (options.onWatchUpdated && options.onWatchUpdated.call(this, c, diff, lastDiff) === false) {\n return;\n }\n }\n\n if (!lastDiff || !equal(lastDiff.result, diff.result)) {\n c.callback(c.lastDiff = diff, lastDiff);\n }\n };\n\n return InMemoryCache;\n}(ApolloCache);\n\nexport { InMemoryCache };","import { __assign } from \"tslib\";\nimport { Observable } from \"../../utilities/index.js\";\n\nvar OperationBatcher = function () {\n function OperationBatcher(_a) {\n var batchDebounce = _a.batchDebounce,\n batchInterval = _a.batchInterval,\n batchMax = _a.batchMax,\n batchHandler = _a.batchHandler,\n batchKey = _a.batchKey;\n this.batchesByKey = new Map();\n this.batchDebounce = batchDebounce;\n this.batchInterval = batchInterval;\n this.batchMax = batchMax || 0;\n this.batchHandler = batchHandler;\n\n this.batchKey = batchKey || function () {\n return '';\n };\n }\n\n OperationBatcher.prototype.enqueueRequest = function (request) {\n var _this = this;\n\n var requestCopy = __assign(__assign({}, request), {\n next: [],\n error: [],\n complete: [],\n subscribers: new Set()\n });\n\n var key = this.batchKey(request.operation);\n\n if (!requestCopy.observable) {\n requestCopy.observable = new Observable(function (observer) {\n var batch = _this.batchesByKey.get(key);\n\n if (!batch) _this.batchesByKey.set(key, batch = new Set());\n var isFirstEnqueuedRequest = batch.size === 0;\n var isFirstSubscriber = requestCopy.subscribers.size === 0;\n requestCopy.subscribers.add(observer);\n\n if (isFirstSubscriber) {\n batch.add(requestCopy);\n }\n\n if (observer.next) {\n requestCopy.next.push(observer.next.bind(observer));\n }\n\n if (observer.error) {\n requestCopy.error.push(observer.error.bind(observer));\n }\n\n if (observer.complete) {\n requestCopy.complete.push(observer.complete.bind(observer));\n }\n\n if (isFirstEnqueuedRequest || _this.batchDebounce) {\n _this.scheduleQueueConsumption(key);\n }\n\n if (batch.size === _this.batchMax) {\n _this.consumeQueue(key);\n }\n\n return function () {\n var _a;\n\n if (requestCopy.subscribers.delete(observer) && requestCopy.subscribers.size < 1) {\n if (batch.delete(requestCopy) && batch.size < 1) {\n _this.consumeQueue(key);\n\n (_a = batch.subscription) === null || _a === void 0 ? void 0 : _a.unsubscribe();\n }\n }\n };\n });\n }\n\n return requestCopy.observable;\n };\n\n OperationBatcher.prototype.consumeQueue = function (key) {\n if (key === void 0) {\n key = '';\n }\n\n var batch = this.batchesByKey.get(key);\n this.batchesByKey.delete(key);\n\n if (!batch || !batch.size) {\n return;\n }\n\n var operations = [];\n var forwards = [];\n var observables = [];\n var nexts = [];\n var errors = [];\n var completes = [];\n batch.forEach(function (request) {\n operations.push(request.operation);\n forwards.push(request.forward);\n observables.push(request.observable);\n nexts.push(request.next);\n errors.push(request.error);\n completes.push(request.complete);\n });\n var batchedObservable = this.batchHandler(operations, forwards) || Observable.of();\n\n var onError = function onError(error) {\n errors.forEach(function (rejecters) {\n if (rejecters) {\n rejecters.forEach(function (e) {\n return e(error);\n });\n }\n });\n };\n\n batch.subscription = batchedObservable.subscribe({\n next: function next(results) {\n if (!Array.isArray(results)) {\n results = [results];\n }\n\n if (nexts.length !== results.length) {\n var error = new Error(\"server returned results with length \".concat(results.length, \", expected length of \").concat(nexts.length));\n error.result = results;\n return onError(error);\n }\n\n results.forEach(function (result, index) {\n if (nexts[index]) {\n nexts[index].forEach(function (next) {\n return next(result);\n });\n }\n });\n },\n error: onError,\n complete: function complete() {\n completes.forEach(function (complete) {\n if (complete) {\n complete.forEach(function (c) {\n return c();\n });\n }\n });\n }\n });\n return observables;\n };\n\n OperationBatcher.prototype.scheduleQueueConsumption = function (key) {\n var _this = this;\n\n clearTimeout(this.scheduledBatchTimer);\n this.scheduledBatchTimer = setTimeout(function () {\n _this.consumeQueue(key);\n }, this.batchInterval);\n };\n\n return OperationBatcher;\n}();\n\nexport { OperationBatcher };","import { __extends } from \"tslib\";\nimport { ApolloLink } from \"../core/index.js\";\nimport { OperationBatcher } from \"./batching.js\";\nexport { OperationBatcher } from \"./batching.js\";\n\nvar BatchLink = function (_super) {\n __extends(BatchLink, _super);\n\n function BatchLink(fetchParams) {\n var _this = _super.call(this) || this;\n\n var _a = fetchParams || {},\n batchDebounce = _a.batchDebounce,\n _b = _a.batchInterval,\n batchInterval = _b === void 0 ? 10 : _b,\n _c = _a.batchMax,\n batchMax = _c === void 0 ? 0 : _c,\n _d = _a.batchHandler,\n batchHandler = _d === void 0 ? function () {\n return null;\n } : _d,\n _e = _a.batchKey,\n batchKey = _e === void 0 ? function () {\n return '';\n } : _e;\n\n _this.batcher = new OperationBatcher({\n batchDebounce: batchDebounce,\n batchInterval: batchInterval,\n batchMax: batchMax,\n batchHandler: batchHandler,\n batchKey: batchKey\n });\n\n if (fetchParams.batchHandler.length <= 1) {\n _this.request = function (operation) {\n return _this.batcher.enqueueRequest({\n operation: operation\n });\n };\n }\n\n return _this;\n }\n\n BatchLink.prototype.request = function (operation, forward) {\n return this.batcher.enqueueRequest({\n operation: operation,\n forward: forward\n });\n };\n\n return BatchLink;\n}(ApolloLink);\n\nexport { BatchLink };","import { __assign, __extends, __rest } from \"tslib\";\nimport { ApolloLink } from \"../core/index.js\";\nimport { Observable } from \"../../utilities/index.js\";\nimport { fromError } from \"../utils/index.js\";\nimport { serializeFetchParameter, selectURI, parseAndCheckHttpResponse, checkFetcher, selectHttpOptionsAndBodyInternal, defaultPrinter, fallbackHttpConfig, createSignalIfSupported } from \"../http/index.js\";\nimport { BatchLink } from \"../batch/index.js\";\n\nvar BatchHttpLink = function (_super) {\n __extends(BatchHttpLink, _super);\n\n function BatchHttpLink(fetchParams) {\n var _this = _super.call(this) || this;\n\n var _a = fetchParams || {},\n _b = _a.uri,\n uri = _b === void 0 ? '/graphql' : _b,\n fetcher = _a.fetch,\n _c = _a.print,\n print = _c === void 0 ? defaultPrinter : _c,\n includeExtensions = _a.includeExtensions,\n preserveHeaderCase = _a.preserveHeaderCase,\n batchInterval = _a.batchInterval,\n batchDebounce = _a.batchDebounce,\n batchMax = _a.batchMax,\n batchKey = _a.batchKey,\n requestOptions = __rest(_a, [\"uri\", \"fetch\", \"print\", \"includeExtensions\", \"preserveHeaderCase\", \"batchInterval\", \"batchDebounce\", \"batchMax\", \"batchKey\"]);\n\n checkFetcher(fetcher);\n\n if (!fetcher) {\n fetcher = fetch;\n }\n\n var linkConfig = {\n http: {\n includeExtensions: includeExtensions,\n preserveHeaderCase: preserveHeaderCase\n },\n options: requestOptions.fetchOptions,\n credentials: requestOptions.credentials,\n headers: requestOptions.headers\n };\n _this.batchDebounce = batchDebounce;\n _this.batchInterval = batchInterval || 10;\n _this.batchMax = batchMax || 10;\n\n var batchHandler = function batchHandler(operations) {\n var chosenURI = selectURI(operations[0], uri);\n var context = operations[0].getContext();\n var clientAwarenessHeaders = {};\n\n if (context.clientAwareness) {\n var _a = context.clientAwareness,\n name_1 = _a.name,\n version = _a.version;\n\n if (name_1) {\n clientAwarenessHeaders['apollographql-client-name'] = name_1;\n }\n\n if (version) {\n clientAwarenessHeaders['apollographql-client-version'] = version;\n }\n }\n\n var contextConfig = {\n http: context.http,\n options: context.fetchOptions,\n credentials: context.credentials,\n headers: __assign(__assign({}, clientAwarenessHeaders), context.headers)\n };\n var optsAndBody = operations.map(function (operation) {\n return selectHttpOptionsAndBodyInternal(operation, print, fallbackHttpConfig, linkConfig, contextConfig);\n });\n var loadedBody = optsAndBody.map(function (_a) {\n var body = _a.body;\n return body;\n });\n var options = optsAndBody[0].options;\n\n if (options.method === 'GET') {\n return fromError(new Error('apollo-link-batch-http does not support GET requests'));\n }\n\n try {\n options.body = serializeFetchParameter(loadedBody, 'Payload');\n } catch (parseError) {\n return fromError(parseError);\n }\n\n var controller;\n\n if (!options.signal) {\n var _b = createSignalIfSupported(),\n _controller = _b.controller,\n signal = _b.signal;\n\n controller = _controller;\n if (controller) options.signal = signal;\n }\n\n return new Observable(function (observer) {\n fetcher(chosenURI, options).then(function (response) {\n operations.forEach(function (operation) {\n return operation.setContext({\n response: response\n });\n });\n return response;\n }).then(parseAndCheckHttpResponse(operations)).then(function (result) {\n observer.next(result);\n observer.complete();\n return result;\n }).catch(function (err) {\n if (err.name === 'AbortError') return;\n\n if (err.result && err.result.errors && err.result.data) {\n observer.next(err.result);\n }\n\n observer.error(err);\n });\n return function () {\n if (controller) controller.abort();\n };\n });\n };\n\n batchKey = batchKey || function (operation) {\n var context = operation.getContext();\n var contextConfig = {\n http: context.http,\n options: context.fetchOptions,\n credentials: context.credentials,\n headers: context.headers\n };\n return selectURI(operation, uri) + JSON.stringify(contextConfig);\n };\n\n _this.batcher = new BatchLink({\n batchDebounce: _this.batchDebounce,\n batchInterval: _this.batchInterval,\n batchMax: _this.batchMax,\n batchKey: batchKey,\n batchHandler: batchHandler\n });\n return _this;\n }\n\n BatchHttpLink.prototype.request = function (operation) {\n return this.batcher.request(operation);\n };\n\n return BatchHttpLink;\n}(ApolloLink);\n\nexport { BatchHttpLink };","import { __extends } from \"tslib\";\nimport { Observable } from \"../../utilities/index.js\";\nimport { ApolloLink } from \"../core/index.js\";\nexport function onError(errorHandler) {\n return new ApolloLink(function (operation, forward) {\n return new Observable(function (observer) {\n var sub;\n var retriedSub;\n var retriedResult;\n\n try {\n sub = forward(operation).subscribe({\n next: function next(result) {\n if (result.errors) {\n retriedResult = errorHandler({\n graphQLErrors: result.errors,\n response: result,\n operation: operation,\n forward: forward\n });\n\n if (retriedResult) {\n retriedSub = retriedResult.subscribe({\n next: observer.next.bind(observer),\n error: observer.error.bind(observer),\n complete: observer.complete.bind(observer)\n });\n return;\n }\n }\n\n observer.next(result);\n },\n error: function error(networkError) {\n retriedResult = errorHandler({\n operation: operation,\n networkError: networkError,\n graphQLErrors: networkError && networkError.result && networkError.result.errors,\n forward: forward\n });\n\n if (retriedResult) {\n retriedSub = retriedResult.subscribe({\n next: observer.next.bind(observer),\n error: observer.error.bind(observer),\n complete: observer.complete.bind(observer)\n });\n return;\n }\n\n observer.error(networkError);\n },\n complete: function complete() {\n if (!retriedResult) {\n observer.complete.bind(observer)();\n }\n }\n });\n } catch (e) {\n errorHandler({\n networkError: e,\n operation: operation,\n forward: forward\n });\n observer.error(e);\n }\n\n return function () {\n if (sub) sub.unsubscribe();\n if (retriedSub) sub.unsubscribe();\n };\n });\n });\n}\n\nvar ErrorLink = function (_super) {\n __extends(ErrorLink, _super);\n\n function ErrorLink(errorHandler) {\n var _this = _super.call(this) || this;\n\n _this.link = onError(errorHandler);\n return _this;\n }\n\n ErrorLink.prototype.request = function (operation, forward) {\n return this.link.request(operation, forward);\n };\n\n return ErrorLink;\n}(ApolloLink);\n\nexport { ErrorLink };","import { __awaiter, __extends, __generator } from \"tslib\";\nimport { ApolloLink } from \"../core/index.js\";\nimport { Observable } from \"../../utilities/index.js\";\nimport { buildDelayFunction } from \"./delayFunction.js\";\nimport { buildRetryFunction } from \"./retryFunction.js\";\n\nvar RetryableOperation = function () {\n function RetryableOperation(operation, nextLink, delayFor, retryIf) {\n var _this = this;\n\n this.operation = operation;\n this.nextLink = nextLink;\n this.delayFor = delayFor;\n this.retryIf = retryIf;\n this.retryCount = 0;\n this.values = [];\n this.complete = false;\n this.canceled = false;\n this.observers = [];\n this.currentSubscription = null;\n\n this.onNext = function (value) {\n _this.values.push(value);\n\n for (var _i = 0, _a = _this.observers; _i < _a.length; _i++) {\n var observer = _a[_i];\n if (!observer) continue;\n observer.next(value);\n }\n };\n\n this.onComplete = function () {\n _this.complete = true;\n\n for (var _i = 0, _a = _this.observers; _i < _a.length; _i++) {\n var observer = _a[_i];\n if (!observer) continue;\n observer.complete();\n }\n };\n\n this.onError = function (error) {\n return __awaiter(_this, void 0, void 0, function () {\n var shouldRetry, _i, _a, observer;\n\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n this.retryCount += 1;\n return [4, this.retryIf(this.retryCount, this.operation, error)];\n\n case 1:\n shouldRetry = _b.sent();\n\n if (shouldRetry) {\n this.scheduleRetry(this.delayFor(this.retryCount, this.operation, error));\n return [2];\n }\n\n this.error = error;\n\n for (_i = 0, _a = this.observers; _i < _a.length; _i++) {\n observer = _a[_i];\n if (!observer) continue;\n observer.error(error);\n }\n\n return [2];\n }\n });\n });\n };\n }\n\n RetryableOperation.prototype.subscribe = function (observer) {\n if (this.canceled) {\n throw new Error(\"Subscribing to a retryable link that was canceled is not supported\");\n }\n\n this.observers.push(observer);\n\n for (var _i = 0, _a = this.values; _i < _a.length; _i++) {\n var value = _a[_i];\n observer.next(value);\n }\n\n if (this.complete) {\n observer.complete();\n } else if (this.error) {\n observer.error(this.error);\n }\n };\n\n RetryableOperation.prototype.unsubscribe = function (observer) {\n var index = this.observers.indexOf(observer);\n\n if (index < 0) {\n throw new Error(\"RetryLink BUG! Attempting to unsubscribe unknown observer!\");\n }\n\n this.observers[index] = null;\n\n if (this.observers.every(function (o) {\n return o === null;\n })) {\n this.cancel();\n }\n };\n\n RetryableOperation.prototype.start = function () {\n if (this.currentSubscription) return;\n this.try();\n };\n\n RetryableOperation.prototype.cancel = function () {\n if (this.currentSubscription) {\n this.currentSubscription.unsubscribe();\n }\n\n clearTimeout(this.timerId);\n this.timerId = undefined;\n this.currentSubscription = null;\n this.canceled = true;\n };\n\n RetryableOperation.prototype.try = function () {\n this.currentSubscription = this.nextLink(this.operation).subscribe({\n next: this.onNext,\n error: this.onError,\n complete: this.onComplete\n });\n };\n\n RetryableOperation.prototype.scheduleRetry = function (delay) {\n var _this = this;\n\n if (this.timerId) {\n throw new Error(\"RetryLink BUG! Encountered overlapping retries\");\n }\n\n this.timerId = setTimeout(function () {\n _this.timerId = undefined;\n\n _this.try();\n }, delay);\n };\n\n return RetryableOperation;\n}();\n\nvar RetryLink = function (_super) {\n __extends(RetryLink, _super);\n\n function RetryLink(options) {\n var _this = _super.call(this) || this;\n\n var _a = options || {},\n attempts = _a.attempts,\n delay = _a.delay;\n\n _this.delayFor = typeof delay === 'function' ? delay : buildDelayFunction(delay);\n _this.retryIf = typeof attempts === 'function' ? attempts : buildRetryFunction(attempts);\n return _this;\n }\n\n RetryLink.prototype.request = function (operation, nextLink) {\n var retryable = new RetryableOperation(operation, nextLink, this.delayFor, this.retryIf);\n retryable.start();\n return new Observable(function (observer) {\n retryable.subscribe(observer);\n return function () {\n retryable.unsubscribe(observer);\n };\n });\n };\n\n return RetryLink;\n}(ApolloLink);\n\nexport { RetryLink };","export function buildDelayFunction(delayOptions) {\n var _a = delayOptions || {},\n _b = _a.initial,\n initial = _b === void 0 ? 300 : _b,\n _c = _a.jitter,\n jitter = _c === void 0 ? true : _c,\n _d = _a.max,\n max = _d === void 0 ? Infinity : _d;\n\n var baseDelay = jitter ? initial : initial / 2;\n return function delayFunction(count) {\n var delay = Math.min(max, baseDelay * Math.pow(2, count));\n\n if (jitter) {\n delay = Math.random() * delay;\n }\n\n return delay;\n };\n}","export function buildRetryFunction(retryOptions) {\n var _a = retryOptions || {},\n retryIf = _a.retryIf,\n _b = _a.max,\n max = _b === void 0 ? 5 : _b;\n\n return function retryFunction(count, operation, error) {\n if (count >= max) return false;\n return retryIf ? retryIf(error, operation) : !!error;\n };\n}","import { __assign, __rest as __rest_1, __spreadArray } from \"tslib\";\nimport { __rest } from \"tslib\";\nimport { mergeDeep } from \"../common/mergeDeep.js\";\nexport function concatPagination(keyArgs) {\n if (keyArgs === void 0) {\n keyArgs = false;\n }\n\n return {\n keyArgs: keyArgs,\n merge: function merge(existing, incoming) {\n return existing ? __spreadArray(__spreadArray([], existing, true), incoming, true) : incoming;\n }\n };\n}\nexport function offsetLimitPagination(keyArgs) {\n if (keyArgs === void 0) {\n keyArgs = false;\n }\n\n return {\n keyArgs: keyArgs,\n merge: function merge(existing, incoming, _a) {\n var args = _a.args;\n var merged = existing ? existing.slice(0) : [];\n\n if (incoming) {\n if (args) {\n var _b = args.offset,\n offset = _b === void 0 ? 0 : _b;\n\n for (var i = 0; i < incoming.length; ++i) {\n merged[offset + i] = incoming[i];\n }\n } else {\n merged.push.apply(merged, incoming);\n }\n }\n\n return merged;\n }\n };\n}\nexport function relayStylePagination(keyArgs) {\n if (keyArgs === void 0) {\n keyArgs = false;\n }\n\n return {\n keyArgs: keyArgs,\n read: function read(existing, _a) {\n var canRead = _a.canRead,\n readField = _a.readField;\n if (!existing) return existing;\n var edges = [];\n var firstEdgeCursor = \"\";\n var lastEdgeCursor = \"\";\n existing.edges.forEach(function (edge) {\n if (canRead(readField(\"node\", edge))) {\n edges.push(edge);\n\n if (edge.cursor) {\n firstEdgeCursor = firstEdgeCursor || edge.cursor || \"\";\n lastEdgeCursor = edge.cursor || lastEdgeCursor;\n }\n }\n });\n\n var _b = existing.pageInfo || {},\n startCursor = _b.startCursor,\n endCursor = _b.endCursor;\n\n return __assign(__assign({}, getExtras(existing)), {\n edges: edges,\n pageInfo: __assign(__assign({}, existing.pageInfo), {\n startCursor: startCursor || firstEdgeCursor,\n endCursor: endCursor || lastEdgeCursor\n })\n });\n },\n merge: function merge(existing, incoming, _a) {\n var args = _a.args,\n isReference = _a.isReference,\n readField = _a.readField;\n\n if (!existing) {\n existing = makeEmptyData();\n }\n\n if (!incoming) {\n return existing;\n }\n\n var incomingEdges = incoming.edges ? incoming.edges.map(function (edge) {\n if (isReference(edge = __assign({}, edge))) {\n edge.cursor = readField(\"cursor\", edge);\n }\n\n return edge;\n }) : [];\n\n if (incoming.pageInfo) {\n var pageInfo_1 = incoming.pageInfo;\n var startCursor = pageInfo_1.startCursor,\n endCursor = pageInfo_1.endCursor;\n var firstEdge = incomingEdges[0];\n var lastEdge = incomingEdges[incomingEdges.length - 1];\n\n if (firstEdge && startCursor) {\n firstEdge.cursor = startCursor;\n }\n\n if (lastEdge && endCursor) {\n lastEdge.cursor = endCursor;\n }\n\n var firstCursor = firstEdge && firstEdge.cursor;\n\n if (firstCursor && !startCursor) {\n incoming = mergeDeep(incoming, {\n pageInfo: {\n startCursor: firstCursor\n }\n });\n }\n\n var lastCursor = lastEdge && lastEdge.cursor;\n\n if (lastCursor && !endCursor) {\n incoming = mergeDeep(incoming, {\n pageInfo: {\n endCursor: lastCursor\n }\n });\n }\n }\n\n var prefix = existing.edges;\n var suffix = [];\n\n if (args && args.after) {\n var index = prefix.findIndex(function (edge) {\n return edge.cursor === args.after;\n });\n\n if (index >= 0) {\n prefix = prefix.slice(0, index + 1);\n }\n } else if (args && args.before) {\n var index = prefix.findIndex(function (edge) {\n return edge.cursor === args.before;\n });\n suffix = index < 0 ? prefix : prefix.slice(index);\n prefix = [];\n } else if (incoming.edges) {\n prefix = [];\n }\n\n var edges = __spreadArray(__spreadArray(__spreadArray([], prefix, true), incomingEdges, true), suffix, true);\n\n var pageInfo = __assign(__assign({}, incoming.pageInfo), existing.pageInfo);\n\n if (incoming.pageInfo) {\n var _b = incoming.pageInfo,\n hasPreviousPage = _b.hasPreviousPage,\n hasNextPage = _b.hasNextPage,\n startCursor = _b.startCursor,\n endCursor = _b.endCursor,\n extras = __rest_1(_b, [\"hasPreviousPage\", \"hasNextPage\", \"startCursor\", \"endCursor\"]);\n\n Object.assign(pageInfo, extras);\n\n if (!prefix.length) {\n if (void 0 !== hasPreviousPage) pageInfo.hasPreviousPage = hasPreviousPage;\n if (void 0 !== startCursor) pageInfo.startCursor = startCursor;\n }\n\n if (!suffix.length) {\n if (void 0 !== hasNextPage) pageInfo.hasNextPage = hasNextPage;\n if (void 0 !== endCursor) pageInfo.endCursor = endCursor;\n }\n }\n\n return __assign(__assign(__assign({}, getExtras(existing)), getExtras(incoming)), {\n edges: edges,\n pageInfo: pageInfo\n });\n }\n };\n}\n\nvar getExtras = function getExtras(obj) {\n return __rest(obj, notExtras);\n};\n\nvar notExtras = [\"edges\", \"pageInfo\"];\n\nfunction makeEmptyData() {\n return {\n edges: [],\n pageInfo: {\n hasPreviousPage: false,\n hasNextPage: true,\n startCursor: \"\",\n endCursor: \"\"\n }\n };\n}","import {\n ApolloClient,\n ApolloLink,\n InMemoryCache,\n defaultDataIdFromObject\n} from '@apollo/client'\nimport { BatchHttpLink } from '@apollo/client/link/batch-http'\nimport { onError } from '@apollo/client/link/error'\nimport { RetryLink } from '@apollo/client/link/retry'\nimport { offsetLimitPagination } from '@apollo/client/utilities'\n\nimport { typesWithId } from './types-with-ids'\n\nconst csrfMeta = document.querySelector('meta[name=csrf-token]')\nconst csrfToken = csrfMeta?.getAttribute('content')\n\nconst batchLink = new BatchHttpLink({\n batchMax: 10,\n batchInterval: 20, // Wait no more than 20ms after first batched operation\n credentials: 'same-origin',\n headers: {\n 'X-CSRF-Token': csrfToken\n }\n})\n\nconst retryLink = new RetryLink({\n delay: {\n initial: 100,\n max: 200,\n jitter: false\n },\n attempts: {\n max: 2,\n retryIf: (error) => !!error\n }\n})\n\n/**\n * Throw GraphQL errors so they are easier to detect (in development only)\n */\nconst errorLink = onError(({ graphQLErrors, networkError }) => {\n if (graphQLErrors)\n graphQLErrors.forEach(({ message, locations, path }) => {\n console.error(\n // eslint-disable-next-line i18next/no-literal-string\n `[GraphQL error]: Message: ${message}, Location: ${JSON.stringify(\n locations\n )}, Path: ${JSON.stringify(path)}`\n )\n })\n // eslint-disable-next-line i18next/no-literal-string\n if (networkError) console.error(`[Network error]: ${networkError}`)\n})\n\nlet apolloLinks: ApolloLink[] = [retryLink, batchLink]\n\nif (process.env.NODE_ENV === 'development') {\n apolloLinks = [errorLink].concat(apolloLinks)\n}\n\nconst client = new ApolloClient({\n uri: '/graphql',\n cache: new InMemoryCache({\n dataIdFromObject: (object, context) => {\n if (\n process.env.NODE_ENV === 'development' &&\n object.__typename &&\n !object.id &&\n typesWithId.includes(object.__typename)\n ) {\n console.warn(\n '%cMissing ID for %s',\n 'font-size: 2rem; background-color: red; padding: 8px; color: white',\n object.__typename,\n object\n )\n }\n return defaultDataIdFromObject(object, context)\n },\n typePolicies: {\n User: {\n fields: {\n ordersByDate: offsetLimitPagination(['to', 'order']),\n orders: {\n ...offsetLimitPagination(),\n merge(existing = [], incoming, { args }) {\n // Check if the operation has both offset and limit\n if (args?.offset !== undefined && args?.limit !== undefined) {\n // If offset is negative, add to the beginning\n if (args.offset < 0) {\n return [...incoming, ...existing]\n }\n // If offset is positive, add to the end\n return [...existing, ...incoming]\n }\n\n // For regular queries, just use the server response\n return incoming\n }\n }\n }\n },\n Meal: {\n // Disable normalization for `Meal` type by not defining a unique identifier\n // for these entities. This will prevent Apollo Client from storing them\n // separately in the global cache.\n keyFields: false\n }\n }\n }),\n link: ApolloLink.from(apolloLinks)\n})\n\nexport default client\n","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/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 * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\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 */\n\nexport default function subMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, -amount);\n}","function dateLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'P':\n return formatLong.date({\n width: 'short'\n });\n\n case 'PP':\n return formatLong.date({\n width: 'medium'\n });\n\n case 'PPP':\n return formatLong.date({\n width: 'long'\n });\n\n case 'PPPP':\n default:\n return formatLong.date({\n width: 'full'\n });\n }\n}\n\nfunction timeLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'p':\n return formatLong.time({\n width: 'short'\n });\n\n case 'pp':\n return formatLong.time({\n width: 'medium'\n });\n\n case 'ppp':\n return formatLong.time({\n width: 'long'\n });\n\n case 'pppp':\n default:\n return formatLong.time({\n width: 'full'\n });\n }\n}\n\nfunction dateTimeLongFormatter(pattern, formatLong) {\n var matchResult = pattern.match(/(P+)(p+)?/);\n var datePattern = matchResult[1];\n var timePattern = matchResult[2];\n\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n\n var dateTimeFormat;\n\n switch (datePattern) {\n case 'P':\n dateTimeFormat = formatLong.dateTime({\n width: 'short'\n });\n break;\n\n case 'PP':\n dateTimeFormat = formatLong.dateTime({\n width: 'medium'\n });\n break;\n\n case 'PPP':\n dateTimeFormat = formatLong.dateTime({\n width: 'long'\n });\n break;\n\n case 'PPPP':\n default:\n dateTimeFormat = formatLong.dateTime({\n width: 'full'\n });\n break;\n }\n\n return dateTimeFormat.replace('{{date}}', dateLongFormatter(datePattern, formatLong)).replace('{{time}}', timeLongFormatter(timePattern, formatLong));\n}\n\nvar longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter\n};\nexport default longFormatters;","import toInteger from \"../toInteger/index.js\";\nimport getUTCWeekYear from \"../getUTCWeekYear/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCWeekYear(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeFirstWeekContainsDate = locale && locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate);\n var year = getUTCWeekYear(dirtyDate, dirtyOptions);\n var firstWeek = new Date(0);\n firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCWeek(firstWeek, dirtyOptions);\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; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\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(); // 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\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import getUTCISOWeekYear from \"../getUTCISOWeekYear/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\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; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCISOWeek(date).getTime() - startOfUTCISOWeekYear(date).getTime(); // 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\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"xs\":\"375px\",\"sm\":\"600px\",\"md\":\"834px\",\"lg\":\"1280px\",\"xl\":\"1280px\",\"button\":\"Button-module__button___V0dtK\",\"secondary\":\"Button-module__secondary___3MJsS\",\"disabled\":\"Button-module__disabled___242rf\",\"primary\":\"Button-module__primary___2ZKhJ\",\"ghost\":\"Button-module__ghost___LJgLM\",\"facebook\":\"Button-module__facebook___1YMKT\",\"whatsApp\":\"Button-module__whatsApp___2AMai\",\"linkWhiteBG\":\"Button-module__linkWhiteBG___1kZTN\",\"ghostWhiteText\":\"Button-module__ghostWhiteText___2E-cO\",\"link\":\"Button-module__link___3loNB\",\"slim\":\"Button-module__slim___2k0dW\",\"regular\":\"Button-module__regular___mK5hu\",\"large\":\"Button-module__large___2JiWF\",\"fullWidth\":\"Button-module__fullWidth___3ukyT\",\"smallPadding\":\"Button-module__smallPadding___lcgMb\",\"iconLeft\":\"Button-module__iconLeft___16jDz\",\"iconRight\":\"Button-module__iconRight___gugVm\",\"iconOnly\":\"Button-module__iconOnly___3eCfP\",\"buttonText\":\"Button-module__buttonText___1EdZ1\",\"always\":\"Button-module__always___1LdPL\",\"mobileOnly\":\"Button-module__mobileOnly___10kkx\",\"desktopOnly\":\"Button-module__desktopOnly___2wZOp\"};","export default function addLeadingZeros(number, targetLength) {\n var sign = number < 0 ? '-' : '';\n var output = Math.abs(number).toString();\n\n while (output.length < targetLength) {\n output = '0' + output;\n }\n\n return sign + output;\n}","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","export var uglifiedAlphabet = {\n a: 'α',\n b: 'ḅ',\n c: 'ͼ',\n d: 'á¸',\n e: 'ḛ',\n f: 'Ï',\n g: 'ḡ',\n h: 'ḥ',\n i: 'á¸',\n j: 'ĵ',\n k: 'ḳ',\n l: 'ḽ',\n m: 'ṃ',\n n: 'ṇ',\n o: 'ṓ',\n p: 'á¹—',\n q: 'Ê ',\n r: 'á¹›',\n s: 'ṡ',\n t: 'Å£',\n u: 'á¹µ',\n v: 'á¹½',\n w: 'áº',\n x: 'ẋ',\n y: 'áº',\n z: 'ẓ',\n A: 'À',\n B: 'β',\n C: 'Ḉ',\n D: 'Ḍ',\n E: 'Ḛ',\n F: 'Ḟ',\n G: 'Ḡ',\n H: 'Ḥ',\n I: 'Ḭ',\n J: 'Ä´',\n K: 'Ḱ',\n L: 'Ḻ',\n M: 'á¹€',\n N: 'Ṅ',\n O: 'Ṏ',\n P: 'á¹”',\n Q: 'Ǫ',\n R: 'Ṛ',\n S: 'á¹¢',\n T: 'Ṫ',\n U: 'á¹²',\n V: 'á¹¾',\n W: 'Å´',\n X: 'Ẋ',\n Y: 'Ŷ',\n Z: 'Å»'\n};\nexport var vowels = ['a', 'e', 'i', 'o', 'u', 'y', 'A', 'E', 'I', 'O', 'U', 'Y'];\nexport var stringWrapper = function stringWrapper(_ref) {\n var shouldWrap = _ref.shouldWrap,\n string = _ref.string;\n return shouldWrap ? '[' + string + ']' : string;\n};","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nimport { uglifiedAlphabet, vowels, stringWrapper } from './utils';\n\nvar Pseudo = function () {\n function Pseudo() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$languageToPseudo = _ref.languageToPseudo,\n languageToPseudo = _ref$languageToPseudo === undefined ? 'en' : _ref$languageToPseudo,\n _ref$letterMultiplier = _ref.letterMultiplier,\n letterMultiplier = _ref$letterMultiplier === undefined ? 2 : _ref$letterMultiplier,\n _ref$repeatedLetters = _ref.repeatedLetters,\n repeatedLetters = _ref$repeatedLetters === undefined ? vowels : _ref$repeatedLetters,\n _ref$uglifedLetterObj = _ref.uglifedLetterObject,\n uglifedLetterObject = _ref$uglifedLetterObj === undefined ? uglifiedAlphabet : _ref$uglifedLetterObj,\n _ref$wrapped = _ref.wrapped,\n wrapped = _ref$wrapped === undefined ? false : _ref$wrapped,\n _ref$enabled = _ref.enabled,\n enabled = _ref$enabled === undefined ? true : _ref$enabled;\n\n _classCallCheck(this, Pseudo);\n\n this.name = 'pseudo';\n this.type = 'postProcessor';\n this.options = {\n languageToPseudo: languageToPseudo,\n letterMultiplier: letterMultiplier,\n wrapped: wrapped,\n repeatedLetters: repeatedLetters,\n letters: uglifedLetterObject,\n enabled: enabled\n };\n }\n\n Pseudo.prototype.configurePseudo = function configurePseudo(options) {\n this.options = _extends({}, this.options, options);\n };\n\n Pseudo.prototype.process = function process(value, key, options, translator) {\n var _this = this;\n\n if (translator.language && this.options.languageToPseudo !== translator.language || !this.options.enabled) {\n return value;\n }\n\n var bracketCount = 0;\n var processedValue = value.split('').map(function (letter) {\n if (letter === '}') {\n bracketCount = 0;\n return letter;\n }\n\n if (letter === '{') {\n bracketCount++;\n return letter;\n }\n\n if (bracketCount === 2) return letter;\n return _this.options.repeatedLetters.indexOf(letter) !== -1 ? _this.options.letters[letter].repeat(_this.options.letterMultiplier) : _this.options.letters[letter] || letter;\n }).join('');\n return stringWrapper({\n shouldWrap: this.options.wrapped,\n string: processedValue\n });\n };\n\n return Pseudo;\n}();\n\nexport { Pseudo as default };","import { invariant } from \"../../utilities/globals/index.js\";\nimport { useContext } from 'react';\nimport { getApolloContext } from \"../context/index.js\";\nexport function useApolloClient(override) {\n var context = useContext(getApolloContext());\n var client = override || context.client;\n __DEV__ ? invariant(!!client, 'Could not find \"client\" in the context or passed in as an option. ' + 'Wrap the root component in an <ApolloProvider>, or pass an ApolloClient ' + 'instance in via options.') : invariant(!!client, 31);\n return client;\n}","import 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 */\n\nexport default function toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument); // Clone the date\n\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://git.io/fjule\"); // eslint-disable-next-line no-console\n\n console.warn(new Error().stack);\n }\n\n return new Date(NaN);\n }\n}","/* tslint:disable */\n/* eslint-disable */\n// @generated\n// This file was automatically generated and should not be edited.\n\n//==============================================================\n// START Enums and Input Objects\n//==============================================================\n\nexport enum Account {\n free = \"free\",\n paid = \"paid\",\n trial = \"trial\",\n}\n\nexport enum Activity {\n cuddling = \"cuddling\",\n doing_tricks = \"doing_tricks\",\n making_friends = \"making_friends\",\n walking = \"walking\",\n}\n\nexport enum Affiliate {\n ambassador = \"ambassador\",\n influencer = \"influencer\",\n not_affiliate = \"not_affiliate\",\n}\n\nexport enum AgeClassificationByUserWhenCreated {\n classified_as_adult_by_user_when_created = \"classified_as_adult_by_user_when_created\",\n classified_as_puppy_by_user_when_created = \"classified_as_puppy_by_user_when_created\",\n classified_as_senior_by_user_when_created = \"classified_as_senior_by_user_when_created\",\n unclassified_when_created = \"unclassified_when_created\",\n}\n\nexport enum ApplicableDiscountPartDiscount {\n every_nth_box = \"every_nth_box\",\n n_boxes = \"n_boxes\",\n nth_box = \"nth_box\",\n rollover = \"rollover\",\n single_use = \"single_use\",\n}\n\nexport enum ApplicableDiscountPartDiscountBasis {\n percentage = \"percentage\",\n total = \"total\",\n}\n\nexport enum ArchivedType {\n all = \"all\",\n archived = \"archived\",\n non_archived = \"non_archived\",\n}\n\nexport enum AuthenticationStrategy {\n admin = \"admin\",\n token = \"token\",\n user = \"user\",\n}\n\nexport enum AvailablePlansScopeType {\n all = \"all\",\n duration = \"duration\",\n pricing_cohort = \"pricing_cohort\",\n}\n\nexport enum BodyShape {\n chubby = \"chubby\",\n just_right = \"just_right\",\n skinny = \"skinny\",\n}\n\nexport enum BoxKind {\n all_bb = \"all_bb\",\n mix_bb = \"mix_bb\",\n}\n\nexport enum Code {\n BE = \"BE\",\n CZ = \"CZ\",\n DE = \"DE\",\n GB = \"GB\",\n IE = \"IE\",\n NI = \"NI\",\n NL = \"NL\",\n PL = \"PL\",\n}\n\nexport enum Currency {\n CZK = \"CZK\",\n EUR = \"EUR\",\n GBP = \"GBP\",\n PLN = \"PLN\",\n}\n\nexport enum CurrentFood {\n dry_food = \"dry_food\",\n home_food = \"home_food\",\n raw_food = \"raw_food\",\n wet_food = \"wet_food\",\n}\n\nexport enum CustomerIssueEntryFieldData {\n association = \"association\",\n boolean = \"boolean\",\n integer = \"integer\",\n multifield = \"multifield\",\n string = \"string\",\n}\n\nexport enum CustomerIssueEntryFieldSelectionFormat {\n multiple = \"multiple\",\n not_applicable = \"not_applicable\",\n single = \"single\",\n}\n\nexport enum CustomerIssueEntryFieldTypesAssociationAssociationType {\n Product = \"Product\",\n}\n\nexport enum CustomerIssueEntryFieldTypesAssociationDisplayType {\n dropdown = \"dropdown\",\n multiselect = \"multiselect\",\n}\n\nexport enum CustomerIssueEntryFieldTypesBooleanDisplayType {\n confirmation_box = \"confirmation_box\",\n}\n\nexport enum CustomerIssueEntryFieldTypesIntegerDisplayType {\n dropdown = \"dropdown\",\n numerical_input = \"numerical_input\",\n stepper = \"stepper\",\n}\n\nexport enum CustomerIssueEntryFieldTypesMultifieldDisplayType {\n damaged_product = \"damaged_product\",\n grouped_list = \"grouped_list\",\n multi_product_count = \"multi_product_count\",\n product_count = \"product_count\",\n unsatisfactory_items = \"unsatisfactory_items\",\n}\n\nexport enum CustomerIssueEntryFieldTypesStringDisplayType {\n checkbox = \"checkbox\",\n dropdown = \"dropdown\",\n freetext = \"freetext\",\n}\n\nexport enum CustomerIssueManagementInputFieldAssociationAssociationType {\n Product = \"Product\",\n}\n\nexport enum CustomerIssueManagementInputFieldAssociationDisplayType {\n dropdown = \"dropdown\",\n multiselect = \"multiselect\",\n}\n\nexport enum CustomerIssueManagementInputFieldBooleanDisplayType {\n confirmation_box = \"confirmation_box\",\n}\n\nexport enum CustomerIssueManagementInputFieldDataType {\n association = \"association\",\n boolean = \"boolean\",\n integer = \"integer\",\n multifield = \"multifield\",\n string = \"string\",\n}\n\nexport enum CustomerIssueManagementInputFieldIntegerDisplayType {\n dropdown = \"dropdown\",\n numerical_input = \"numerical_input\",\n stepper = \"stepper\",\n}\n\nexport enum CustomerIssueManagementInputFieldMultifieldDisplayType {\n damaged_product = \"damaged_product\",\n grouped_list = \"grouped_list\",\n multi_product_count = \"multi_product_count\",\n product_count = \"product_count\",\n unsatisfactory_items = \"unsatisfactory_items\",\n}\n\nexport enum CustomerIssueManagementInputFieldSelectionFormat {\n multiple = \"multiple\",\n not_applicable = \"not_applicable\",\n single = \"single\",\n}\n\nexport enum CustomerIssueManagementInputFieldStringDisplayType {\n checkbox = \"checkbox\",\n dropdown = \"dropdown\",\n freetext = \"freetext\",\n}\n\nexport enum CustomerIssueManagementReportable {\n Box = \"Box\",\n NonCore_Order = \"NonCore_Order\",\n}\n\nexport enum CustomerIssueManagementReporterable {\n AdminUser = \"AdminUser\",\n User = \"User\",\n}\n\nexport enum CustomerIssueManagementResolutionResolutionType {\n apply_discount = \"apply_discount\",\n help_centre_article = \"help_centre_article\",\n replace_box = \"replace_box\",\n track_order = \"track_order\",\n}\n\nexport enum CustomerIssueResolutionDetailsTypeField {\n apply_discount = \"apply_discount\",\n order_tracking_number = \"order_tracking_number\",\n replace_box = \"replace_box\",\n replacement_box_details = \"replacement_box_details\",\n track_order = \"track_order\",\n}\n\nexport enum CustomerIssueResolutionKey {\n apply_discount = \"apply_discount\",\n replace_box = \"replace_box\",\n replacement_box = \"replacement_box\",\n track_order = \"track_order\",\n}\n\nexport enum CustomerIssueResolutionResolution {\n invariable = \"invariable\",\n variable = \"variable\",\n}\n\nexport enum Descriptor {\n future = \"future\",\n next = \"next\",\n past = \"past\",\n}\n\nexport enum DiscountCodePartDiscount {\n every_nth_box = \"every_nth_box\",\n n_boxes = \"n_boxes\",\n nth_box = \"nth_box\",\n single_use = \"single_use\",\n}\n\nexport enum DiscountCodePartDiscountBasis {\n percentage = \"percentage\",\n total = \"total\",\n}\n\nexport enum Eater {\n eats_anything = \"eats_anything\",\n fussy_eater = \"fussy_eater\",\n good_eater = \"good_eater\",\n picky_eater = \"picky_eater\",\n}\n\nexport enum Exercise {\n hyper = \"hyper\",\n low = \"low\",\n normal = \"normal\",\n}\n\nexport enum FavouriteGame {\n ball_chaser = \"ball_chaser\",\n just_hanging_out = \"just_hanging_out\",\n stick_fetcher = \"stick_fetcher\",\n toy_squeaker = \"toy_squeaker\",\n tug_of_war_master = \"tug_of_war_master\",\n unknown_favourite_game = \"unknown_favourite_game\",\n}\n\nexport enum FeedingGuidelinesUsed {\n adult_only_feeding_guidelines = \"adult_only_feeding_guidelines\",\n combined_feeding_guidelines = \"combined_feeding_guidelines\",\n legacy_feeding_guidelines = \"legacy_feeding_guidelines\",\n october2020_feeding_guidelines = \"october2020_feeding_guidelines\",\n snack_feeding_guidelines = \"snack_feeding_guidelines\",\n}\n\nexport enum Food {\n dry_food = \"dry_food\",\n home_food = \"home_food\",\n raw_food = \"raw_food\",\n wet_food = \"wet_food\",\n}\n\nexport enum FooterColumn {\n column_1 = \"column_1\",\n column_2 = \"column_2\",\n column_3 = \"column_3\",\n social_icons = \"social_icons\",\n sub_footer = \"sub_footer\",\n}\n\nexport enum Frequency {\n one_off = \"one_off\",\n recurring = \"recurring\",\n}\n\nexport enum Gender {\n female = \"female\",\n male = \"male\",\n}\n\nexport enum Group {\n admin = \"admin\",\n default = \"default\",\n deprecated = \"deprecated\",\n more_food = \"more_food\",\n pouch_portioning = \"pouch_portioning\",\n}\n\nexport enum InputPaymentMethod {\n billing_agreement = \"billing_agreement\",\n credit_card = \"credit_card\",\n direct_debit = \"direct_debit\",\n merchant_initiated_payment = \"merchant_initiated_payment\",\n sepa_direct_debit = \"sepa_direct_debit\",\n}\n\nexport enum IntentType {\n payment_intent = \"payment_intent\",\n setup_intent = \"setup_intent\",\n}\n\nexport enum InvoiceStatus {\n disputed = \"disputed\",\n forgiven = \"forgiven\",\n free = \"free\",\n paid = \"paid\",\n processing = \"processing\",\n unpaid = \"unpaid\",\n}\n\nexport enum Key {\n affenpinscher = \"affenpinscher\",\n affenpoo_affenpinscher_poodle_mix = \"affenpoo_affenpinscher_poodle_mix\",\n afghan_hound = \"afghan_hound\",\n aidi = \"aidi\",\n airedale_terrier = \"airedale_terrier\",\n airedoodle_airedale_terrier_poodle_mix = \"airedoodle_airedale_terrier_poodle_mix\",\n akbash = \"akbash\",\n akita = \"akita\",\n alano_espanol = \"alano_espanol\",\n alapaha_blue_blood_bulldog = \"alapaha_blue_blood_bulldog\",\n alaskan_klee_kai = \"alaskan_klee_kai\",\n alaskan_malamute = \"alaskan_malamute\",\n alaskan_malamute_x_dutch_herder = \"alaskan_malamute_x_dutch_herder\",\n alaskan_malamute_x_northern_innuit = \"alaskan_malamute_x_northern_innuit\",\n american_akita = \"american_akita\",\n american_bulldog = \"american_bulldog\",\n american_bully = \"american_bully\",\n american_cocker_spaniel = \"american_cocker_spaniel\",\n american_cockerpoo = \"american_cockerpoo\",\n american_english_coonhound = \"american_english_coonhound\",\n american_eskimo_dog = \"american_eskimo_dog\",\n american_foxhound = \"american_foxhound\",\n american_hairless_terrier = \"american_hairless_terrier\",\n american_mastiff = \"american_mastiff\",\n american_pit_bull_terrier = \"american_pit_bull_terrier\",\n american_shepherd = \"american_shepherd\",\n american_staffordshire_terrier = \"american_staffordshire_terrier\",\n american_staghound = \"american_staghound\",\n american_water_spaniel = \"american_water_spaniel\",\n american_white_shepherd = \"american_white_shepherd\",\n american_xl_bully = \"american_xl_bully\",\n anatolian_karabash = \"anatolian_karabash\",\n anatolian_shepherd_dog = \"anatolian_shepherd_dog\",\n andalusian_podenco = \"andalusian_podenco\",\n appenzeller_sennenhund = \"appenzeller_sennenhund\",\n argentine_dogo = \"argentine_dogo\",\n ariege_pointer = \"ariege_pointer\",\n ariegeois = \"ariegeois\",\n aussiedoodle_australian_shepherd_poodle_mix = \"aussiedoodle_australian_shepherd_poodle_mix\",\n australian_bulldog = \"australian_bulldog\",\n australian_cattle_dog = \"australian_cattle_dog\",\n australian_kelpie = \"australian_kelpie\",\n australian_labradoodle = \"australian_labradoodle\",\n australian_shepherd = \"australian_shepherd\",\n australian_silky_terrier = \"australian_silky_terrier\",\n australian_stumpy_tail_cattle_dog = \"australian_stumpy_tail_cattle_dog\",\n australian_terrier = \"australian_terrier\",\n austrian_black_and_tan_hound = \"austrian_black_and_tan_hound\",\n austrian_pinscher = \"austrian_pinscher\",\n azawakh = \"azawakh\",\n barbet = \"barbet\",\n basenji = \"basenji\",\n bashar = \"bashar\",\n basset_bleu_de_gascogne = \"basset_bleu_de_gascogne\",\n basset_fauve_de_bretagne = \"basset_fauve_de_bretagne\",\n basset_hound = \"basset_hound\",\n bassetoodle_basset_hound_poodle_mix = \"bassetoodle_basset_hound_poodle_mix\",\n bassugg = \"bassugg\",\n bavarian_mountain_hound = \"bavarian_mountain_hound\",\n beagle = \"beagle\",\n beagle_harrier = \"beagle_harrier\",\n beaglier = \"beaglier\",\n bearded_collie = \"bearded_collie\",\n beardiecockerpoo_bearded_collie_cockerpoo_mix = \"beardiecockerpoo_bearded_collie_cockerpoo_mix\",\n beauceron = \"beauceron\",\n bedlington_terrier = \"bedlington_terrier\",\n belgian_malinois = \"belgian_malinois\",\n belgian_sheepdog = \"belgian_sheepdog\",\n belgian_shepherd_dog = \"belgian_shepherd_dog\",\n belgian_shepherd_laekenois = \"belgian_shepherd_laekenois\",\n belgian_shepherd_malinois = \"belgian_shepherd_malinois\",\n belgian_shepherd_tervuren = \"belgian_shepherd_tervuren\",\n belgian_tervuren = \"belgian_tervuren\",\n bergamasco = \"bergamasco\",\n berger_picard = \"berger_picard\",\n bernedoodle_bernese_mountain_dog_poodle_mix = \"bernedoodle_bernese_mountain_dog_poodle_mix\",\n bernese_mountain_dog = \"bernese_mountain_dog\",\n bichon_frise = \"bichon_frise\",\n bichpoo_bichon_frise_poodle_mix = \"bichpoo_bichon_frise_poodle_mix\",\n biewer_terrier = \"biewer_terrier\",\n black_and_tan_coonhound = \"black_and_tan_coonhound\",\n black_norwegian_elkhound = \"black_norwegian_elkhound\",\n black_russian_terrier = \"black_russian_terrier\",\n blackmouth_cur = \"blackmouth_cur\",\n bloodhound = \"bloodhound\",\n blue_lacy = \"blue_lacy\",\n blue_merle_collie = \"blue_merle_collie\",\n blue_picardy_spaniel = \"blue_picardy_spaniel\",\n bluetick_coonhound = \"bluetick_coonhound\",\n bocker_beagle_cocker_spaniel_mix = \"bocker_beagle_cocker_spaniel_mix\",\n boerboel = \"boerboel\",\n bohemian_shepherd = \"bohemian_shepherd\",\n bolognese = \"bolognese\",\n bolonka = \"bolonka\",\n bolonoodle_bolognese_poodle_mix = \"bolonoodle_bolognese_poodle_mix\",\n boomer = \"boomer\",\n borador = \"borador\",\n border_collie = \"border_collie\",\n border_terrier = \"border_terrier\",\n bordernese_bernese_mountain_dog_x_border_collie = \"bordernese_bernese_mountain_dog_x_border_collie\",\n bordoodle_border_collie_poodle_mix = \"bordoodle_border_collie_poodle_mix\",\n borzoi = \"borzoi\",\n bossipoo_boston_terrier_poodle_mix = \"bossipoo_boston_terrier_poodle_mix\",\n boston_terrier = \"boston_terrier\",\n bouvier_de_ardennes = \"bouvier_de_ardennes\",\n bouvier_des_flandres = \"bouvier_des_flandres\",\n boxador = \"boxador\",\n boxer = \"boxer\",\n boxerdoodle_boxer_poodle_mix = \"boxerdoodle_boxer_poodle_mix\",\n boykin_spaniel = \"boykin_spaniel\",\n bracco_italiano = \"bracco_italiano\",\n braque_dauvergne = \"braque_dauvergne\",\n braque_du_bourbonnais = \"braque_du_bourbonnais\",\n brazilian_terrier = \"brazilian_terrier\",\n briard = \"briard\",\n briquet_griffon_vendeen = \"briquet_griffon_vendeen\",\n brittany = \"brittany\",\n broodle_griffon_brussels_griffon_poodle = \"broodle_griffon_brussels_griffon_poodle\",\n brussels_griffon = \"brussels_griffon\",\n bukovina_sheepdog = \"bukovina_sheepdog\",\n bulgarian_shepherd_dog = \"bulgarian_shepherd_dog\",\n bull_greyhound = \"bull_greyhound\",\n bull_terrier = \"bull_terrier\",\n bulldog = \"bulldog\",\n bullmastiff = \"bullmastiff\",\n bullpei = \"bullpei\",\n cadoodle_collie_x_poodle_mix = \"cadoodle_collie_x_poodle_mix\",\n cairn_terrier = \"cairn_terrier\",\n cairnoodle_cairn_terrier_poodle_mix = \"cairnoodle_cairn_terrier_poodle_mix\",\n canaan_dog = \"canaan_dog\",\n canadian_eskimo_dog = \"canadian_eskimo_dog\",\n cane_corso = \"cane_corso\",\n cao_da_serra_de_aires = \"cao_da_serra_de_aires\",\n caravan_hound = \"caravan_hound\",\n cardigan_welsh_corgi = \"cardigan_welsh_corgi\",\n carolina_dog = \"carolina_dog\",\n carpathian_sheepdog = \"carpathian_sheepdog\",\n catahoula_bulldog = \"catahoula_bulldog\",\n catahoula_cur = \"catahoula_cur\",\n catahoula_leopard_dog = \"catahoula_leopard_dog\",\n catalan_sheepdog = \"catalan_sheepdog\",\n caucasian_ovtcharka = \"caucasian_ovtcharka\",\n cavachon = \"cavachon\",\n cavalier_king_charles_spaniel = \"cavalier_king_charles_spaniel\",\n cavapoo_cavalier_king_charles_spaniel_poodle_mix = \"cavapoo_cavalier_king_charles_spaniel_poodle_mix\",\n cavapoochon_cavalier_king_charles_bichon_frise_poodle_mix = \"cavapoochon_cavalier_king_charles_bichon_frise_poodle_mix\",\n central_asian_shepherd_dog = \"central_asian_shepherd_dog\",\n cesky_fousek = \"cesky_fousek\",\n cesky_terrier = \"cesky_terrier\",\n chart_polski = \"chart_polski\",\n cheagle = \"cheagle\",\n chesapeake_bay_retriever = \"chesapeake_bay_retriever\",\n chihuahua = \"chihuahua\",\n chinese_crested = \"chinese_crested\",\n chinese_crestepoo_chinese_crested_poodle_mix = \"chinese_crestepoo_chinese_crested_poodle_mix\",\n chinese_sharpei = \"chinese_sharpei\",\n chinook = \"chinook\",\n chipoo_chihuahua_poodle_mix = \"chipoo_chihuahua_poodle_mix\",\n chishi = \"chishi\",\n chiweenie = \"chiweenie\",\n chorkie = \"chorkie\",\n chow_chow = \"chow_chow\",\n chug_chihuahua_pug_mix = \"chug_chihuahua_pug_mix\",\n cirneco_dell_etna = \"cirneco_dell_etna\",\n clumber_spaniel = \"clumber_spaniel\",\n clumberdoodle = \"clumberdoodle\",\n cockador = \"cockador\",\n cockapoo_cocker_spaniel_poodle_mix = \"cockapoo_cocker_spaniel_poodle_mix\",\n cocker_spaniel = \"cocker_spaniel\",\n cockerchon_cocker_bichon_frise_cross = \"cockerchon_cocker_bichon_frise_cross\",\n cockerpei_cocker_spaniel_sharpei_mix = \"cockerpei_cocker_spaniel_sharpei_mix\",\n collie = \"collie\",\n collie_x_retriever = \"collie_x_retriever\",\n corgipoo_corgi_poodle_mix = \"corgipoo_corgi_poodle_mix\",\n coton_de_tulear = \"coton_de_tulear\",\n croatian_sheepdog = \"croatian_sheepdog\",\n crossbreed = \"crossbreed\",\n curlycoated_retriever = \"curlycoated_retriever\",\n czechoslovakian_shepherd = \"czechoslovakian_shepherd\",\n czechoslovakian_wolfdog = \"czechoslovakian_wolfdog\",\n dachshund = \"dachshund\",\n daisy_dog_bichon_poodle_shih_tzu_mix = \"daisy_dog_bichon_poodle_shih_tzu_mix\",\n dalmadoodle_dalmatian_poodle_mix = \"dalmadoodle_dalmatian_poodle_mix\",\n dalmatian = \"dalmatian\",\n dandie_dinmont_terrier = \"dandie_dinmont_terrier\",\n danishswedish_farmdog = \"danishswedish_farmdog\",\n deerhound = \"deerhound\",\n deutsche_bracke = \"deutsche_bracke\",\n doberman_pinscher = \"doberman_pinscher\",\n dobermann = \"dobermann\",\n dogue_de_bordeaux = \"dogue_de_bordeaux\",\n doodleman_pinscher_doberman_standard_poodle_mix = \"doodleman_pinscher_doberman_standard_poodle_mix\",\n double_doodle_goldendoodle_labradoodle_mix = \"double_doodle_goldendoodle_labradoodle_mix\",\n doxiepoo_dachshund_poodle_mix = \"doxiepoo_dachshund_poodle_mix\",\n drentse_patrijshond = \"drentse_patrijshond\",\n drever = \"drever\",\n dunker = \"dunker\",\n dutch_shepherd = \"dutch_shepherd\",\n dutch_smoushond = \"dutch_smoushond\",\n east_siberian_laika = \"east_siberian_laika\",\n easteuropean_shepherd = \"easteuropean_shepherd\",\n english_boodle_english_bulldog_poodle_mix = \"english_boodle_english_bulldog_poodle_mix\",\n english_bully_english_bull_terrier_staffordshire_bull_terrier = \"english_bully_english_bull_terrier_staffordshire_bull_terrier\",\n english_cocker_spaniel = \"english_cocker_spaniel\",\n english_coonhound = \"english_coonhound\",\n english_foxhound = \"english_foxhound\",\n english_mastiff = \"english_mastiff\",\n english_pointer = \"english_pointer\",\n english_setter = \"english_setter\",\n english_shepherd = \"english_shepherd\",\n english_springer_spaniel = \"english_springer_spaniel\",\n english_toy_spaniel = \"english_toy_spaniel\",\n english_toy_terrier = \"english_toy_terrier\",\n entlebucher_mountain_dog = \"entlebucher_mountain_dog\",\n eskapoo_american_eskimo_dog_poodle_mix = \"eskapoo_american_eskimo_dog_poodle_mix\",\n eskimo_dog = \"eskimo_dog\",\n estrela_mountain_dog = \"estrela_mountain_dog\",\n eurasier = \"eurasier\",\n field_spaniel = \"field_spaniel\",\n fila_brasileiro = \"fila_brasileiro\",\n finnish_hound = \"finnish_hound\",\n finnish_lapphund = \"finnish_lapphund\",\n finnish_spitz = \"finnish_spitz\",\n flandoodle_bouvier_des_flandres_poodle_mix = \"flandoodle_bouvier_des_flandres_poodle_mix\",\n flatcoated_retriever = \"flatcoated_retriever\",\n foodle_poodle_toy_fox_terrier_mix = \"foodle_poodle_toy_fox_terrier_mix\",\n fox_terrier_toy = \"fox_terrier_toy\",\n foxhoodle_fox_hound_poodle_mix = \"foxhoodle_fox_hound_poodle_mix\",\n francais_blanc_et_noir = \"francais_blanc_et_noir\",\n french_brittany = \"french_brittany\",\n french_bulldog = \"french_bulldog\",\n french_spaniel = \"french_spaniel\",\n frug = \"frug\",\n gerberian_shepsky_german_shepherd_x_siberian_husky = \"gerberian_shepsky_german_shepherd_x_siberian_husky\",\n german_longhaired_pointer = \"german_longhaired_pointer\",\n german_pinscher = \"german_pinscher\",\n german_shepherd = \"german_shepherd\",\n german_shepherd_dog = \"german_shepherd_dog\",\n german_sheprador = \"german_sheprador\",\n german_short_haired_pointer = \"german_short_haired_pointer\",\n german_shorthaired_pointer = \"german_shorthaired_pointer\",\n german_spitz = \"german_spitz\",\n german_wirehaired_pointer = \"german_wirehaired_pointer\",\n giant_schnauzer = \"giant_schnauzer\",\n giant_schnoodle_giant_schnauzer_standard_poodle_mix = \"giant_schnoodle_giant_schnauzer_standard_poodle_mix\",\n glen_of_imaal_terrier = \"glen_of_imaal_terrier\",\n goldador = \"goldador\",\n golden_retriever = \"golden_retriever\",\n golden_retriever_x_newfoundland = \"golden_retriever_x_newfoundland\",\n goldendoodle_golden_retriever_poodle_mix = \"goldendoodle_golden_retriever_poodle_mix\",\n gordon_setter = \"gordon_setter\",\n grand_basset_griffon_vendeen = \"grand_basset_griffon_vendeen\",\n grand_bleu_de_gascogne = \"grand_bleu_de_gascogne\",\n great_dane = \"great_dane\",\n great_danoodle_great_dane_poodle_mix = \"great_danoodle_great_dane_poodle_mix\",\n great_pyrenees = \"great_pyrenees\",\n great_swiss_mountain_dog = \"great_swiss_mountain_dog\",\n greater_swiss_mountain_dog = \"greater_swiss_mountain_dog\",\n greek_harehound = \"greek_harehound\",\n greenland_dog = \"greenland_dog\",\n greyhound = \"greyhound\",\n greyhound_x_saluki = \"greyhound_x_saluki\",\n griffon_bleu_du_gascogne = \"griffon_bleu_du_gascogne\",\n griffon_bruxellois = \"griffon_bruxellois\",\n griffon_nivernais = \"griffon_nivernais\",\n groenendael = \"groenendael\",\n hamiltonstovare = \"hamiltonstovare\",\n harrier = \"harrier\",\n havanese = \"havanese\",\n hokkaido = \"hokkaido\",\n hovawart = \"hovawart\",\n hungarian_vizsla = \"hungarian_vizsla\",\n hush_basset_cocker_spaniel_x_basset_hound = \"hush_basset_cocker_spaniel_x_basset_hound\",\n husky_x_samoyed = \"husky_x_samoyed\",\n huskyhungarian_vizsla = \"huskyhungarian_vizsla\",\n ibizan_hound = \"ibizan_hound\",\n icelandic_sheepdog = \"icelandic_sheepdog\",\n imperial_shih_tzu = \"imperial_shih_tzu\",\n irish_doodle_irish_setter_poodle_mix = \"irish_doodle_irish_setter_poodle_mix\",\n irish_red_and_white_setter = \"irish_red_and_white_setter\",\n irish_setter = \"irish_setter\",\n irish_terrier = \"irish_terrier\",\n irish_troodle_irish_terrier_poodle_mix = \"irish_troodle_irish_terrier_poodle_mix\",\n irish_water_spaniel = \"irish_water_spaniel\",\n irish_wolfhound = \"irish_wolfhound\",\n italian_greyhound = \"italian_greyhound\",\n italian_spinone = \"italian_spinone\",\n jack_highland_terrier = \"jack_highland_terrier\",\n jack_russell_terrier = \"jack_russell_terrier\",\n jackabee = \"jackabee\",\n jackapoo_jack_russell_terrier_poodle_mix = \"jackapoo_jack_russell_terrier_poodle_mix\",\n jackawawa = \"jackawawa\",\n jackchi = \"jackchi\",\n jagdterrier = \"jagdterrier\",\n jamthund_swedish_elkhound = \"jamthund_swedish_elkhound\",\n japanese_akita = \"japanese_akita\",\n japanese_chin = \"japanese_chin\",\n japanese_shiba_inu = \"japanese_shiba_inu\",\n japanese_spitz = \"japanese_spitz\",\n japanese_terrier = \"japanese_terrier\",\n jorkie_yorkshire_terrier_jack_russell_mix = \"jorkie_yorkshire_terrier_jack_russell_mix\",\n jug = \"jug\",\n karelian_bear_dog = \"karelian_bear_dog\",\n keeshond = \"keeshond\",\n kerry_blue_terrier = \"kerry_blue_terrier\",\n king_charles_spaniel = \"king_charles_spaniel\",\n kishu = \"kishu\",\n kokoni = \"kokoni\",\n komondor = \"komondor\",\n kooikerhondje = \"kooikerhondje\",\n korean_jindo = \"korean_jindo\",\n korthals_griffon = \"korthals_griffon\",\n kromfohrlander = \"kromfohrlander\",\n kuvasz = \"kuvasz\",\n kyileo = \"kyileo\",\n labradoodle_labrador_retriever_poodle_mix = \"labradoodle_labrador_retriever_poodle_mix\",\n labrador_retriever = \"labrador_retriever\",\n labrador_x_spaniel_mix = \"labrador_x_spaniel_mix\",\n labrador_x_vizsla_mix = \"labrador_x_vizsla_mix\",\n lacasapoo_cockapoo_x_lhasa_apso_mix = \"lacasapoo_cockapoo_x_lhasa_apso_mix\",\n lagotto_romagnolo = \"lagotto_romagnolo\",\n lakeland_terrier = \"lakeland_terrier\",\n lakeland_trailhound = \"lakeland_trailhound\",\n lancashire_heeler = \"lancashire_heeler\",\n landseer = \"landseer\",\n lapponian_herder = \"lapponian_herder\",\n large_munsterlander = \"large_munsterlander\",\n leonberger = \"leonberger\",\n lhasa_apso = \"lhasa_apso\",\n lhasa_apso_x_shih_tzu = \"lhasa_apso_x_shih_tzu\",\n lhasapoo_lhasa_apso_poodle_mix = \"lhasapoo_lhasa_apso_poodle_mix\",\n lhatese_malteselhasa_apso = \"lhatese_malteselhasa_apso\",\n lowchen = \"lowchen\",\n lurcher = \"lurcher\",\n lurcher_x_spaniel = \"lurcher_x_spaniel\",\n malshi = \"malshi\",\n maltese = \"maltese\",\n maltichon = \"maltichon\",\n maltipoo_maltese_poodle_mix = \"maltipoo_maltese_poodle_mix\",\n manchester_terrier = \"manchester_terrier\",\n maremma_sheepdog = \"maremma_sheepdog\",\n mastador = \"mastador\",\n mastidoodle_mastiff_poodle_mix = \"mastidoodle_mastiff_poodle_mix\",\n mastiff = \"mastiff\",\n mcnab = \"mcnab\",\n miki = \"miki\",\n mini_american_shepherd = \"mini_american_shepherd\",\n miniature_aussiedoodle_miniature_australian_shepherd_miniature_poodle_mix = \"miniature_aussiedoodle_miniature_australian_shepherd_miniature_poodle_mix\",\n miniature_bull_terrier = \"miniature_bull_terrier\",\n miniature_dachshund = \"miniature_dachshund\",\n miniature_goldendoodle_golden_retriever_toy_or_miniature_poodle_mix = \"miniature_goldendoodle_golden_retriever_toy_or_miniature_poodle_mix\",\n miniature_jack_russel_terrier = \"miniature_jack_russel_terrier\",\n miniature_labradoodle_labrador_retriever_toy_or_miniature_poodle_mix = \"miniature_labradoodle_labrador_retriever_toy_or_miniature_poodle_mix\",\n miniature_pinscher = \"miniature_pinscher\",\n miniature_poodle = \"miniature_poodle\",\n miniature_schnauzer = \"miniature_schnauzer\",\n miniature_yorkshire_terrier = \"miniature_yorkshire_terrier\",\n mongrel = \"mongrel\",\n morkie = \"morkie\",\n mudi = \"mudi\",\n neapolitan_mastiff = \"neapolitan_mastiff\",\n new_guinea_singing_dog = \"new_guinea_singing_dog\",\n new_zealand_huntaway = \"new_zealand_huntaway\",\n new_zealand_huntaway_cross = \"new_zealand_huntaway_cross\",\n newfoundland = \"newfoundland\",\n newfypoo_newfoundland_poodle_mix = \"newfypoo_newfoundland_poodle_mix\",\n norfolk_terrier = \"norfolk_terrier\",\n norrbottenspets = \"norrbottenspets\",\n northern_inuit = \"northern_inuit\",\n norwegian_buhund = \"norwegian_buhund\",\n norwegian_elkhound = \"norwegian_elkhound\",\n norwegian_lundehund = \"norwegian_lundehund\",\n norwich_terrier = \"norwich_terrier\",\n nova_scotia_duck_tolling_retriever = \"nova_scotia_duck_tolling_retriever\",\n old_english_sheepdog = \"old_english_sheepdog\",\n olde_english_bulldogge = \"olde_english_bulldogge\",\n olde_tyme_bulldog = \"olde_tyme_bulldog\",\n other = \"other\",\n otterhound = \"otterhound\",\n pakistani_mastiff = \"pakistani_mastiff\",\n paperanian_papillonpomeranian_mix = \"paperanian_papillonpomeranian_mix\",\n papillion = \"papillion\",\n papillon = \"papillon\",\n papipoo_papillon_poodle_mix = \"papipoo_papillon_poodle_mix\",\n parson_jack_russell_terrier = \"parson_jack_russell_terrier\",\n parson_russell_terrier = \"parson_russell_terrier\",\n patterdale_terrier = \"patterdale_terrier\",\n pekepoo_pekingese_poodle_mix = \"pekepoo_pekingese_poodle_mix\",\n pekingese = \"pekingese\",\n pembroke_welsh_corgi = \"pembroke_welsh_corgi\",\n perro_de_presa_canario = \"perro_de_presa_canario\",\n perro_de_presa_mallorquin = \"perro_de_presa_mallorquin\",\n peruvian_inca_orchid = \"peruvian_inca_orchid\",\n petit_basset_griffon_vendeen = \"petit_basset_griffon_vendeen\",\n petite_goldendoodle_golden_retriever_cocker_spaniel_poodle_mix = \"petite_goldendoodle_golden_retriever_cocker_spaniel_poodle_mix\",\n petite_labradoodle_labrador_retriever_cocker_spaniel_poodle_mix = \"petite_labradoodle_labrador_retriever_cocker_spaniel_poodle_mix\",\n pharaoh_hound = \"pharaoh_hound\",\n picardy_spaniel = \"picardy_spaniel\",\n pinnypoo_miniature_pinscher_poodle_mix = \"pinnypoo_miniature_pinscher_poodle_mix\",\n plott = \"plott\",\n plott_hound = \"plott_hound\",\n plummer_terrier = \"plummer_terrier\",\n podenco_canario = \"podenco_canario\",\n podenco_maneto = \"podenco_maneto\",\n pointer = \"pointer\",\n polish_hunting_dog = \"polish_hunting_dog\",\n polish_lowland_sheepdog = \"polish_lowland_sheepdog\",\n polish_tatra_sheepdog = \"polish_tatra_sheepdog\",\n pomapoo_pomeranian_poodle_mix = \"pomapoo_pomeranian_poodle_mix\",\n pomchi = \"pomchi\",\n pomeranian = \"pomeranian\",\n pomsky = \"pomsky\",\n pontaudemer_spaniel = \"pontaudemer_spaniel\",\n poochin_japanese_chin_poodle_mix = \"poochin_japanese_chin_poodle_mix\",\n poodle = \"poodle\",\n poogle_beagle_poodle_mix = \"poogle_beagle_poodle_mix\",\n poolky_poodle_silky_terrier_mix = \"poolky_poodle_silky_terrier_mix\",\n pooshi_poodle_shiba_inu_mix = \"pooshi_poodle_shiba_inu_mix\",\n pooshih = \"pooshih\",\n pootalian_italian_greyhound_poodle_mix = \"pootalian_italian_greyhound_poodle_mix\",\n pooton_coton_de_tulear_poodle_mix = \"pooton_coton_de_tulear_poodle_mix\",\n poovanese_havanese_poodle_mix = \"poovanese_havanese_poodle_mix\",\n porkie = \"porkie\",\n portuguese_podengo = \"portuguese_podengo\",\n portuguese_podengo_pequeno = \"portuguese_podengo_pequeno\",\n portuguese_pointer = \"portuguese_pointer\",\n portuguese_water_dog = \"portuguese_water_dog\",\n posavac_hound = \"posavac_hound\",\n prazsky_krysarik = \"prazsky_krysarik\",\n pudelpointer = \"pudelpointer\",\n pug = \"pug\",\n pug_x_staffordshire_bull_terrier = \"pug_x_staffordshire_bull_terrier\",\n pugalier = \"pugalier\",\n pugapoo_pug_poodle_mix = \"pugapoo_pug_poodle_mix\",\n puggle = \"puggle\",\n puggle_pug_beagle_mix = \"puggle_pug_beagle_mix\",\n pugzu = \"pugzu\",\n puli = \"puli\",\n pumi = \"pumi\",\n pyredoodle_great_pyrenees_poodle_mix = \"pyredoodle_great_pyrenees_poodle_mix\",\n pyrenean_mastiff = \"pyrenean_mastiff\",\n pyrenean_mountain_dog = \"pyrenean_mountain_dog\",\n pyrenean_shepherd = \"pyrenean_shepherd\",\n rafeiro_do_alentejo = \"rafeiro_do_alentejo\",\n rajapalyam = \"rajapalyam\",\n rat_terrier = \"rat_terrier\",\n ratonero_bodeguero_andaluz = \"ratonero_bodeguero_andaluz\",\n rattle_american_rat_terrier_poodle_mix = \"rattle_american_rat_terrier_poodle_mix\",\n redbone_coonhound = \"redbone_coonhound\",\n rhodesian_ridgeback = \"rhodesian_ridgeback\",\n romanian_mioritic_shepherd_dog = \"romanian_mioritic_shepherd_dog\",\n rottle_rottweiler_standard_poodle_mix = \"rottle_rottweiler_standard_poodle_mix\",\n rottweiler = \"rottweiler\",\n rottweiler_x_american_akita = \"rottweiler_x_american_akita\",\n rottweiler_x_mastiff = \"rottweiler_x_mastiff\",\n rough_collie = \"rough_collie\",\n russell_terrier = \"russell_terrier\",\n russian_spaniel = \"russian_spaniel\",\n russian_toy = \"russian_toy\",\n saarloos_wolfdog = \"saarloos_wolfdog\",\n saint_berdoodle_saint_bernard_poodle_mix = \"saint_berdoodle_saint_bernard_poodle_mix\",\n saint_bernard = \"saint_bernard\",\n saluki = \"saluki\",\n samoyed = \"samoyed\",\n sapsali = \"sapsali\",\n sarplaninac = \"sarplaninac\",\n schapendoes = \"schapendoes\",\n schipperke = \"schipperke\",\n schipperpoo_poodle_schipperke_mix = \"schipperpoo_poodle_schipperke_mix\",\n schnauzer = \"schnauzer\",\n schnoodle = \"schnoodle\",\n schnoodle_schnauzer_poodle_mix = \"schnoodle_schnauzer_poodle_mix\",\n scoodle_scottish_terrier_poodle_mix = \"scoodle_scottish_terrier_poodle_mix\",\n scottish_deerhound = \"scottish_deerhound\",\n scottish_terrier = \"scottish_terrier\",\n sealyham_terrier = \"sealyham_terrier\",\n segugio_italiano = \"segugio_italiano\",\n seppala_siberian_sleddog = \"seppala_siberian_sleddog\",\n serbian_defence_dog = \"serbian_defence_dog\",\n serbian_hound = \"serbian_hound\",\n shar_pei = \"shar_pei\",\n sharpoo_sharpei_poodle_mix = \"sharpoo_sharpei_poodle_mix\",\n sheepadoodle_old_english_sheepdog_standard_poodle_mix = \"sheepadoodle_old_english_sheepdog_standard_poodle_mix\",\n sheltidoodle_sheltie_poodle_mix = \"sheltidoodle_sheltie_poodle_mix\",\n shepadoodle_german_shepherd_standard_poodle_mix = \"shepadoodle_german_shepherd_standard_poodle_mix\",\n shepweiler_rottweiler_germand_shepherd_mix = \"shepweiler_rottweiler_germand_shepherd_mix\",\n shetland_sheepdog = \"shetland_sheepdog\",\n shiba_inu = \"shiba_inu\",\n shichon = \"shichon\",\n shih_tzu = \"shih_tzu\",\n shih_tzupugchihuahua = \"shih_tzupugchihuahua\",\n shih_tzy_poodle = \"shih_tzy_poodle\",\n shihpoo = \"shihpoo\",\n shihpoo_shih_tzu_poodle_mix = \"shihpoo_shih_tzu_poodle_mix\",\n shihpoo_standard = \"shihpoo_standard\",\n shikoku = \"shikoku\",\n shiloh_shepherd_dog = \"shiloh_shepherd_dog\",\n shorkie = \"shorkie\",\n siberian_husky = \"siberian_husky\",\n siberian_husky_x_norwegian_elkhound = \"siberian_husky_x_norwegian_elkhound\",\n siberpoo_siberian_husky_poodle_mix = \"siberpoo_siberian_husky_poodle_mix\",\n silken_windhound = \"silken_windhound\",\n silky_terrier = \"silky_terrier\",\n skye_terrier = \"skye_terrier\",\n skypoo_poodle_skye_terrier_mix = \"skypoo_poodle_skye_terrier_mix\",\n sloughi = \"sloughi\",\n slovakian_rough_haired_pointer = \"slovakian_rough_haired_pointer\",\n smaland_hound = \"smaland_hound\",\n small_munsterlander = \"small_munsterlander\",\n smooth_fox_terrier = \"smooth_fox_terrier\",\n smooth_haired_chihuahua = \"smooth_haired_chihuahua\",\n soft_coated_wheaten_terrier = \"soft_coated_wheaten_terrier\",\n soft_coated_wheaton_terrier = \"soft_coated_wheaton_terrier\",\n south_russian_ovcharka = \"south_russian_ovcharka\",\n spanish_galgo = \"spanish_galgo\",\n spanish_mastiff = \"spanish_mastiff\",\n spanish_podenco = \"spanish_podenco\",\n spanish_water_dog = \"spanish_water_dog\",\n spinone_italiano = \"spinone_italiano\",\n sporting_lucas_terrier = \"sporting_lucas_terrier\",\n spreagle = \"spreagle\",\n springador = \"springador\",\n springbatt = \"springbatt\",\n springerdoodle_english_springer_spaniel_poodle_mix = \"springerdoodle_english_springer_spaniel_poodle_mix\",\n sprocker = \"sprocker\",\n sprollie_springer_spaniel_x_border_collie = \"sprollie_springer_spaniel_x_border_collie\",\n sprusky_siberian_husky_x_springer_spaniel = \"sprusky_siberian_husky_x_springer_spaniel\",\n st_bernard = \"st_bernard\",\n stabijhoun = \"stabijhoun\",\n staffador = \"staffador\",\n staffordshire_bull_terrier = \"staffordshire_bull_terrier\",\n staffsky = \"staffsky\",\n staffy_x_french_bulldogamerican_bully = \"staffy_x_french_bulldogamerican_bully\",\n standard_poodle = \"standard_poodle\",\n standard_schnauzer = \"standard_schnauzer\",\n standard_schnoodle_poodle_standard_schnauzer_mix = \"standard_schnoodle_poodle_standard_schnauzer_mix\",\n sussex_spaniel = \"sussex_spaniel\",\n swedish_lapphund = \"swedish_lapphund\",\n swedish_valhund = \"swedish_valhund\",\n swedish_vallhund = \"swedish_vallhund\",\n swiss_shepherd = \"swiss_shepherd\",\n tamaskan = \"tamaskan\",\n terripoo_australian_terrier_poodle_mix = \"terripoo_australian_terrier_poodle_mix\",\n thai_bangkaew = \"thai_bangkaew\",\n thai_ridgeback = \"thai_ridgeback\",\n tibetan_mastiff = \"tibetan_mastiff\",\n tibetan_spaniel = \"tibetan_spaniel\",\n tibetan_terrier = \"tibetan_terrier\",\n tornjak = \"tornjak\",\n tosa_inu = \"tosa_inu\",\n toy_fox_terrier = \"toy_fox_terrier\",\n toy_poodle = \"toy_poodle\",\n transylvanian_hound = \"transylvanian_hound\",\n treeing_walker_coonhound = \"treeing_walker_coonhound\",\n ttoodle_poodle_tibetan_terrier_mix = \"ttoodle_poodle_tibetan_terrier_mix\",\n turkish_kangal_dog = \"turkish_kangal_dog\",\n turkish_kangol = \"turkish_kangol\",\n utonagan = \"utonagan\",\n valley_bulldog = \"valley_bulldog\",\n victorian_bulldog = \"victorian_bulldog\",\n vizsla = \"vizsla\",\n volpino_italiano = \"volpino_italiano\",\n weechon_westie_bischon_frise_mix = \"weechon_westie_bischon_frise_mix\",\n weimaraner = \"weimaraner\",\n weimardoodle_weimaraner_poodle_mix = \"weimardoodle_weimaraner_poodle_mix\",\n welsh_corgi = \"welsh_corgi\",\n welsh_sheepdog = \"welsh_sheepdog\",\n welsh_springer_spaniel = \"welsh_springer_spaniel\",\n welsh_terrier = \"welsh_terrier\",\n west_highland_schnauzer = \"west_highland_schnauzer\",\n west_highland_white_terrier = \"west_highland_white_terrier\",\n west_siberian_laika = \"west_siberian_laika\",\n westie_x_bedlington_terrier = \"westie_x_bedlington_terrier\",\n westiepoo_westie_poodle_mix = \"westiepoo_westie_poodle_mix\",\n wetterhoun = \"wetterhoun\",\n whippet = \"whippet\",\n whippet_x_italian_bloodhound = \"whippet_x_italian_bloodhound\",\n whippet_x_poodle = \"whippet_x_poodle\",\n white_swiss_shepherd_dog = \"white_swiss_shepherd_dog\",\n whoodle_soft_coated_wheaton_terrier_poodle_mix = \"whoodle_soft_coated_wheaton_terrier_poodle_mix\",\n wire_fox_terrier = \"wire_fox_terrier\",\n wire_haired_dachshund = \"wire_haired_dachshund\",\n wirehaired_hungarian_vizsla = \"wirehaired_hungarian_vizsla\",\n wirehaired_pointing_griffon = \"wirehaired_pointing_griffon\",\n wirepoo_wirehaired_fox_terrier_x_poodle_mix = \"wirepoo_wirehaired_fox_terrier_x_poodle_mix\",\n woodle_welsh_terrier_poodle_mix = \"woodle_welsh_terrier_poodle_mix\",\n working_cocker_spaniel = \"working_cocker_spaniel\",\n xoloitzcuintli = \"xoloitzcuintli\",\n yoranian = \"yoranian\",\n yorkipoo_yorkie_poodle_mix = \"yorkipoo_yorkie_poodle_mix\",\n yorkshire_terrier = \"yorkshire_terrier\",\n zuchon = \"zuchon\",\n}\n\nexport enum Language {\n cs_CZ = \"cs_CZ\",\n de_DE = \"de_DE\",\n en = \"en\",\n fr = \"fr\",\n nl = \"nl\",\n nl_BE = \"nl_BE\",\n pl = \"pl\",\n pl_PL = \"pl_PL\",\n}\n\nexport enum MarketingPreferences {\n deals_only = \"deals_only\",\n full_consent = \"full_consent\",\n no_consent = \"no_consent\",\n}\n\nexport enum MutationMessage {\n no_phone_error = \"no_phone_error\",\n}\n\nexport enum NonCoreInvoiceStatus {\n failed = \"failed\",\n forgiven = \"forgiven\",\n free = \"free\",\n paid = \"paid\",\n pending = \"pending\",\n unpaid = \"unpaid\",\n}\n\nexport enum NonPaymentReason {\n admin_gift = \"admin_gift\",\n churn_treatment = \"churn_treatment\",\n free_sample = \"free_sample\",\n raf_campaign_gift = \"raf_campaign_gift\",\n shopify_purchase = \"shopify_purchase\",\n surprise_gift = \"surprise_gift\",\n}\n\nexport enum Payment {\n billing_agreement = \"billing_agreement\",\n credit_card = \"credit_card\",\n direct_debit = \"direct_debit\",\n merchant_initiated_payment = \"merchant_initiated_payment\",\n sepa_direct_debit = \"sepa_direct_debit\",\n}\n\nexport enum PaymentMethodType {\n billing_agreement = \"billing_agreement\",\n credit_card = \"credit_card\",\n direct_debit = \"direct_debit\",\n merchant_initiated_payment = \"merchant_initiated_payment\",\n sepa_direct_debit = \"sepa_direct_debit\",\n}\n\nexport enum PaymentMethodable {\n BillingAgreement = \"BillingAgreement\",\n CreditCard = \"CreditCard\",\n DirectDebit = \"DirectDebit\",\n MerchantInitiatedPayment = \"MerchantInitiatedPayment\",\n SepaDirectDebit = \"SepaDirectDebit\",\n}\n\nexport enum PaymentResourceType {\n charge = \"charge\",\n payment_intent = \"payment_intent\",\n}\n\nexport enum Provider {\n gocardless = \"gocardless\",\n paypal = \"paypal\",\n revolut = \"revolut\",\n stripe = \"stripe\",\n}\n\nexport enum RecipeSurchargeCalculation {\n per_pouch = \"per_pouch\",\n per_serving = \"per_serving\",\n}\n\nexport enum Serving {\n half_pouch = \"half_pouch\",\n single_serve = \"single_serve\",\n standard_serving = \"standard_serving\",\n}\n\nexport enum SnackingHabit {\n eats_lots_of_snacks = \"eats_lots_of_snacks\",\n eats_no_snacks = \"eats_no_snacks\",\n eats_some_snacks = \"eats_some_snacks\",\n unknown_snacking_habits = \"unknown_snacking_habits\",\n}\n\nexport enum Status {\n allocated = \"allocated\",\n attempted_delivery = \"attempted_delivery\",\n cancelled = \"cancelled\",\n delivered = \"delivered\",\n exception = \"exception\",\n in = \"in\",\n manifested = \"manifested\",\n out = \"out\",\n printed = \"printed\",\n unallocated = \"unallocated\",\n unknown = \"unknown\",\n}\n\nexport enum SubscriptionStatus {\n active = \"active\",\n paused = \"paused\",\n suspended = \"suspended\",\n}\n\nexport enum Trait {\n clever_clogs = \"clever_clogs\",\n goofball = \"goofball\",\n shy = \"shy\",\n sweet = \"sweet\",\n}\n\nexport enum TypeOfPlan {\n all = \"all\",\n half = \"half\",\n most = \"most\",\n some = \"some\",\n}\n\nexport enum UnavailableObjectReason {\n coming_soon = \"coming_soon\",\n out_of_stock_hidden = \"out_of_stock_hidden\",\n out_of_stock_shown = \"out_of_stock_shown\",\n}\n\nexport enum VariantDelivery {\n on_demand = \"on_demand\",\n one_off = \"one_off\",\n recurring = \"recurring\",\n}\n\nexport interface ActivitiesInput {\n dogId: string;\n activities: Activity[];\n}\n\nexport interface AddressInput {\n postcode: string;\n addressLineOne: string;\n recipientName: string;\n addressLineTwo?: string | null;\n city: string;\n shippingCountryId?: number | null;\n deliveryNotes?: string | null;\n}\n\nexport interface AnswerInput {\n questionId: number;\n optionId: number;\n value: number;\n}\n\nexport interface AvatarInput {\n dogId: string;\n avatar: any;\n}\n\nexport interface CustomerIssueManagementInputInput {\n fieldId: string;\n booleanValue?: boolean | null;\n integerValue?: number | null;\n stringValue?: string | null;\n associationValue?: string | null;\n inputs?: CustomerIssueManagementInputInput[] | null;\n}\n\nexport interface CustomerIssueManagementResolutionOfferingAcceptanceDetailsInput {\n id: string;\n replaceBox?: CustomerIssueManagementResolutionOfferingAcceptanceDetailsReplaceBoxInput | null;\n}\n\nexport interface CustomerIssueManagementResolutionOfferingAcceptanceDetailsReplaceBoxInput {\n deliveryDate: any;\n deliveryAddress: AddressInput;\n}\n\nexport interface CustomerIssueManagementResolutionOfferingRejectionDetailsInput {\n id: string;\n}\n\nexport interface CustomerIssueReportEntryInputInput {\n fieldId: string;\n booleanValue?: boolean | null;\n integerValue?: number | null;\n stringValue?: string | null;\n associationValue?: string | null;\n entryFieldInputs?: CustomerIssueReportEntryInputInput[] | null;\n}\n\nexport interface CustomerIssueResolutionAcceptanceReplacementBoxDetailsInput {\n deliveryDate: any;\n deliveryAddress: AddressInput;\n}\n\nexport interface DogInput {\n name: string;\n breedId: string;\n gender: Gender;\n exercise: Exercise;\n dateOfBirth?: any | null;\n ageInMonthsWhenLastUpdated: number;\n weightInGrams: number;\n bodyShape: BodyShape;\n neutered: boolean;\n ageClassificationByUserWhenCreated: AgeClassificationByUserWhenCreated;\n feedingGuidelinesUsed: FeedingGuidelinesUsed;\n eaterType?: Eater | null;\n currentFood?: CurrentFood | null;\n snackingHabits: SnackingHabit;\n foodCategoryIds: string[];\n allergenIds?: string[] | null;\n healthIssueIds?: string[] | null;\n archiveReasonIds?: string[] | null;\n}\n\nexport interface DogUpdateInput {\n id: string;\n exercise?: Exercise | null;\n weightInGrams?: number | null;\n bodyShape?: BodyShape | null;\n neutered?: boolean | null;\n gender?: Gender | null;\n name?: string | null;\n snackingHabits?: SnackingHabit | null;\n eaterType?: Eater | null;\n breedKey?: Key | null;\n healthIssueIds?: string[] | null;\n allergenIds?: string[] | null;\n ageInMonthsWhenLastUpdated?: number | null;\n}\n\nexport interface FavouriteGameInput {\n dogId: string;\n favouriteGame: FavouriteGame;\n}\n\nexport interface MealInput {\n beef?: number | null;\n chicken?: number | null;\n turkey?: number | null;\n lamb?: number | null;\n whiteFish?: number | null;\n pork?: number | null;\n duckAndChicken?: number | null;\n venisonWithDuck?: number | null;\n game?: number | null;\n veggie?: number | null;\n plant?: number | null;\n salmon?: number | null;\n chickenGrain?: number | null;\n porkGrain?: number | null;\n plBeef?: number | null;\n plChicken?: number | null;\n plLamb?: number | null;\n plTurkey?: number | null;\n plSalmon?: number | null;\n plPork?: number | null;\n plDuckAndChicken?: number | null;\n plGame?: number | null;\n mlBeef?: number | null;\n mlChicken?: number | null;\n mlDuckAndChicken?: number | null;\n mlLamb?: number | null;\n mlPork?: number | null;\n mlSalmon?: number | null;\n}\n\nexport interface PaymentMethodInput {\n paymentMethodId: string;\n active: boolean;\n paymentMethodType: InputPaymentMethod;\n paymentProvider: Provider;\n}\n\nexport interface PendingSubscriptionInput {\n flavourIds?: string[] | null;\n planId: string;\n productVariantIds?: string[] | null;\n mealSelectionType?: string | null;\n}\n\nexport interface ProductInput {\n productId?: string | null;\n quantity?: number | null;\n productVariantId?: string | null;\n}\n\nexport interface ProductVariantInput {\n productVariantId: string;\n quantity: number;\n deliveryType: VariantDelivery;\n}\n\nexport interface SignupInfluencerInput {\n firstName: string;\n lastName: string;\n email: string;\n password: string;\n phone: string;\n dogs: string[];\n token: string;\n}\n\nexport interface SubscriptionDataInput {\n planId: string;\n targetFirstDeliveryDate: any;\n paymentMethodId?: string | null;\n paymentMethodIdentifierType: string;\n paymentProvider: Provider;\n paymentMethodType: Payment;\n mealBreakdown: MealInput;\n additionalProductIds?: string[] | null;\n gaClientId?: string | null;\n deliveryCadence: string;\n user: UserSubscriptionDataInput;\n}\n\nexport interface SubscriptionInput {\n planId: string;\n targetFirstDeliveryDate: any;\n stripeToken?: string | null;\n paymentMethodId?: string | null;\n paymentProvider: Provider;\n paymentMethodType: PaymentMethodable;\n mealBreakdown: MealInput;\n paymentIntentId?: string | null;\n productVariantInputs?: ProductVariantInput[] | null;\n}\n\nexport interface TraitsInput {\n dogId: string;\n traits: Trait[];\n}\n\nexport interface UserDetailsInput {\n email?: string | null;\n password?: string | null;\n phone?: string | null;\n firstName?: string | null;\n lastName?: string | null;\n}\n\nexport interface UserSubscriptionDataInput {\n shouldSupportSca: boolean;\n email?: string | null;\n firstName: string;\n lastName: string;\n password?: string | null;\n passwordConfirmation?: string | null;\n phone?: string | null;\n addressAttributes: AddressInput;\n}\n\n//==============================================================\n// END Enums and Input Objects\n//==============================================================\n","/**\n * Produces the value of a block string from its parsed raw value, similar to\n * CoffeeScript's block string, Python's docstring trim or Ruby's strip_heredoc.\n *\n * This implements the GraphQL spec's BlockStringValue() static algorithm.\n *\n * @internal\n */\nexport function dedentBlockStringValue(rawString) {\n // Expand a block string's raw value into independent lines.\n var lines = rawString.split(/\\r\\n|[\\n\\r]/g); // Remove common indentation from all lines but first.\n\n var commonIndent = getBlockStringIndentation(rawString);\n\n if (commonIndent !== 0) {\n for (var i = 1; i < lines.length; i++) {\n lines[i] = lines[i].slice(commonIndent);\n }\n } // Remove leading and trailing blank lines.\n\n\n var startLine = 0;\n\n while (startLine < lines.length && isBlank(lines[startLine])) {\n ++startLine;\n }\n\n var endLine = lines.length;\n\n while (endLine > startLine && isBlank(lines[endLine - 1])) {\n --endLine;\n } // Return a string of the lines joined with U+000A.\n\n\n return lines.slice(startLine, endLine).join('\\n');\n}\n\nfunction isBlank(str) {\n for (var i = 0; i < str.length; ++i) {\n if (str[i] !== ' ' && str[i] !== '\\t') {\n return false;\n }\n }\n\n return true;\n}\n/**\n * @internal\n */\n\n\nexport function getBlockStringIndentation(value) {\n var _commonIndent;\n\n var isFirstLine = true;\n var isEmptyLine = true;\n var indent = 0;\n var commonIndent = null;\n\n for (var i = 0; i < value.length; ++i) {\n switch (value.charCodeAt(i)) {\n case 13:\n // \\r\n if (value.charCodeAt(i + 1) === 10) {\n ++i; // skip \\r\\n as one symbol\n }\n\n // falls through\n\n case 10:\n // \\n\n isFirstLine = false;\n isEmptyLine = true;\n indent = 0;\n break;\n\n case 9: // \\t\n\n case 32:\n // <space>\n ++indent;\n break;\n\n default:\n if (isEmptyLine && !isFirstLine && (commonIndent === null || indent < commonIndent)) {\n commonIndent = indent;\n }\n\n isEmptyLine = false;\n }\n }\n\n return (_commonIndent = commonIndent) !== null && _commonIndent !== void 0 ? _commonIndent : 0;\n}\n/**\n * Print a block string in the indented block form by adding a leading and\n * trailing blank line. However, if a block string starts with whitespace and is\n * a single-line, adding a leading blank line would strip that whitespace.\n *\n * @internal\n */\n\nexport function printBlockString(value) {\n var indentation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var preferMultipleLines = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var isSingleLine = value.indexOf('\\n') === -1;\n var hasLeadingSpace = value[0] === ' ' || value[0] === '\\t';\n var hasTrailingQuote = value[value.length - 1] === '\"';\n var hasTrailingSlash = value[value.length - 1] === '\\\\';\n var printAsMultipleLines = !isSingleLine || hasTrailingQuote || hasTrailingSlash || preferMultipleLines;\n var result = ''; // Format a multi-line block quote to account for leading space.\n\n if (printAsMultipleLines && !(isSingleLine && hasLeadingSpace)) {\n result += '\\n' + indentation;\n }\n\n result += indentation ? value.replace(/\\n/g, '\\n' + indentation) : value;\n\n if (printAsMultipleLines) {\n result += '\\n';\n }\n\n return '\"\"\"' + result.replace(/\"\"\"/g, '\\\\\"\"\"') + '\"\"\"';\n}","// In ES2015 (or a polyfilled) environment, this will be Symbol.iterator\n// istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2317')\nexport var SYMBOL_ITERATOR = typeof Symbol === 'function' && Symbol.iterator != null ? Symbol.iterator : '@@iterator'; // In ES2017 (or a polyfilled) environment, this will be Symbol.asyncIterator\n// istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2317')\n\nexport var SYMBOL_ASYNC_ITERATOR = typeof Symbol === 'function' && Symbol.asyncIterator != null ? Symbol.asyncIterator : '@@asyncIterator'; // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2317')\n\nexport var SYMBOL_TO_STRING_TAG = typeof Symbol === 'function' && Symbol.toStringTag != null ? Symbol.toStringTag : '@@toStringTag';","/**\r\n * Checks whether the entire input sequence can be matched\r\n * against the regular expression.\r\n * @return {boolean}\r\n */\nexport default function matchesEntirely(text, regular_expression) {\n // If assigning the `''` default value is moved to the arguments above,\n // code coverage would decrease for some weird reason.\n text = text || '';\n return new RegExp('^(?:' + regular_expression + ')$').test(text);\n}","import { __extends } from \"tslib\";\nvar genericMessage = \"Invariant Violation\";\nvar _a = Object.setPrototypeOf,\n setPrototypeOf = _a === void 0 ? function (obj, proto) {\n obj.__proto__ = proto;\n return obj;\n} : _a;\n\nvar InvariantError =\n/** @class */\nfunction (_super) {\n __extends(InvariantError, _super);\n\n function InvariantError(message) {\n if (message === void 0) {\n message = genericMessage;\n }\n\n var _this = _super.call(this, typeof message === \"number\" ? genericMessage + \": \" + message + \" (see https://github.com/apollographql/invariant-packages)\" : message) || this;\n\n _this.framesToPop = 1;\n _this.name = genericMessage;\n setPrototypeOf(_this, InvariantError.prototype);\n return _this;\n }\n\n return InvariantError;\n}(Error);\n\nexport { InvariantError };\nexport function invariant(condition, message) {\n if (!condition) {\n throw new InvariantError(message);\n }\n}\nvar verbosityLevels = [\"debug\", \"log\", \"warn\", \"error\", \"silent\"];\nvar verbosityLevel = verbosityLevels.indexOf(\"log\");\n\nfunction wrapConsoleMethod(name) {\n return function () {\n if (verbosityLevels.indexOf(name) >= verbosityLevel) {\n // Default to console.log if this host environment happens not to provide\n // all the console.* methods we need.\n var method = console[name] || console.log;\n return method.apply(console, arguments);\n }\n };\n}\n\n(function (invariant) {\n invariant.debug = wrapConsoleMethod(\"debug\");\n invariant.log = wrapConsoleMethod(\"log\");\n invariant.warn = wrapConsoleMethod(\"warn\");\n invariant.error = wrapConsoleMethod(\"error\");\n})(invariant || (invariant = {}));\n\nexport function setVerbosity(level) {\n var old = verbosityLevels[verbosityLevel];\n verbosityLevel = Math.max(0, verbosityLevels.indexOf(level));\n return old;\n}\nexport default invariant;","import global from \"./global.js\";\nimport { maybe } from \"./maybe.js\";\nvar __ = \"__\";\nvar GLOBAL_KEY = [__, __].join(\"DEV\");\n\nfunction getDEV() {\n try {\n return Boolean(__DEV__);\n } catch (_a) {\n Object.defineProperty(global, GLOBAL_KEY, {\n value: maybe(function () {\n return process.env.NODE_ENV;\n }) !== \"production\",\n enumerable: false,\n configurable: true,\n writable: true\n });\n return global[GLOBAL_KEY];\n }\n}\n\nexport default getDEV();","import { remove } from \"ts-invariant/process/index.js\";\nimport { Source } from 'graphql';\nexport function removeTemporaryGlobals() {\n return typeof Source === \"function\" ? remove() : remove();\n}","import { invariant, InvariantError } from \"ts-invariant\";\nimport DEV from \"./DEV.js\";\nexport { DEV };\nexport function checkDEV() {\n __DEV__ ? invariant(\"boolean\" === typeof DEV, DEV) : invariant(\"boolean\" === typeof DEV, 38);\n}\nimport { removeTemporaryGlobals } from \"./fix-graphql.js\";\nremoveTemporaryGlobals();\nexport { maybe } from \"./maybe.js\";\nexport { default as global } from \"./global.js\";\nexport { invariant, InvariantError };\ncheckDEV();","'use strict';\n\nexports.__esModule = true; // istanbul ignore next\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n 'default': obj\n };\n}\n\nvar _handlebarsRuntime = require('./handlebars.runtime');\n\nvar _handlebarsRuntime2 = _interopRequireDefault(_handlebarsRuntime); // Compiler imports\n\n\nvar _handlebarsCompilerAst = require('./handlebars/compiler/ast');\n\nvar _handlebarsCompilerAst2 = _interopRequireDefault(_handlebarsCompilerAst);\n\nvar _handlebarsCompilerBase = require('./handlebars/compiler/base');\n\nvar _handlebarsCompilerCompiler = require('./handlebars/compiler/compiler');\n\nvar _handlebarsCompilerJavascriptCompiler = require('./handlebars/compiler/javascript-compiler');\n\nvar _handlebarsCompilerJavascriptCompiler2 = _interopRequireDefault(_handlebarsCompilerJavascriptCompiler);\n\nvar _handlebarsCompilerVisitor = require('./handlebars/compiler/visitor');\n\nvar _handlebarsCompilerVisitor2 = _interopRequireDefault(_handlebarsCompilerVisitor);\n\nvar _handlebarsNoConflict = require('./handlebars/no-conflict');\n\nvar _handlebarsNoConflict2 = _interopRequireDefault(_handlebarsNoConflict);\n\nvar _create = _handlebarsRuntime2['default'].create;\n\nfunction create() {\n var hb = _create();\n\n hb.compile = function (input, options) {\n return _handlebarsCompilerCompiler.compile(input, options, hb);\n };\n\n hb.precompile = function (input, options) {\n return _handlebarsCompilerCompiler.precompile(input, options, hb);\n };\n\n hb.AST = _handlebarsCompilerAst2['default'];\n hb.Compiler = _handlebarsCompilerCompiler.Compiler;\n hb.JavaScriptCompiler = _handlebarsCompilerJavascriptCompiler2['default'];\n hb.Parser = _handlebarsCompilerBase.parser;\n hb.parse = _handlebarsCompilerBase.parse;\n hb.parseWithoutProcessing = _handlebarsCompilerBase.parseWithoutProcessing;\n return hb;\n}\n\nvar inst = create();\ninst.create = create;\n\n_handlebarsNoConflict2['default'](inst);\n\ninst.Visitor = _handlebarsCompilerVisitor2['default'];\ninst['default'] = inst;\nexports['default'] = inst;\nmodule.exports = exports['default'];","// @noflow\nimport { useCallback, useState } from 'react'\n\ntype UseBoolean = {\n value: boolean\n setValue: (value: boolean) => void\n toggle: () => void\n setTrue: () => void\n setFalse: () => void\n}\n\nconst useBoolean = (initial: boolean): UseBoolean => {\n const [value, setValue] = useState<boolean>(initial)\n\n const toggle = useCallback((): void => {\n setValue((val: boolean): boolean => !val)\n }, [])\n\n const setTrue = useCallback((): void => {\n setValue(true)\n }, [])\n\n const setFalse = useCallback((): void => {\n setValue(false)\n }, [])\n\n return {\n value,\n setValue,\n toggle,\n setTrue,\n setFalse\n }\n}\n\nexport type { UseBoolean }\n\nexport default useBoolean\n","// shim for using process in browser\nvar process = module.exports = {}; // cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\n\nfunction defaultClearTimeout() {\n throw new Error('clearTimeout has not been defined');\n}\n\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n})();\n\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n } // if setTimeout wasn't available but was latter defined\n\n\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n}\n\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n } // if clearTimeout wasn't available but was latter defined\n\n\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n}\n\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n\n draining = false;\n\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n var len = queue.length;\n\n while (len) {\n currentQueue = queue;\n queue = [];\n\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n\n queueIndex = -1;\n len = queue.length;\n }\n\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n\n queue.push(new Item(fun, args));\n\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n}; // v8 likes predictible objects\n\n\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\n\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\n\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\n\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) {\n return [];\n};\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () {\n return '/';\n};\n\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\n\nprocess.umask = function () {\n return 0;\n};","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nmodule.exports = _toPrimitive, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\n * The set of allowed kind values for AST nodes.\n */\nexport var Kind = Object.freeze({\n // Name\n NAME: 'Name',\n // Document\n DOCUMENT: 'Document',\n OPERATION_DEFINITION: 'OperationDefinition',\n VARIABLE_DEFINITION: 'VariableDefinition',\n SELECTION_SET: 'SelectionSet',\n FIELD: 'Field',\n ARGUMENT: 'Argument',\n // Fragments\n FRAGMENT_SPREAD: 'FragmentSpread',\n INLINE_FRAGMENT: 'InlineFragment',\n FRAGMENT_DEFINITION: 'FragmentDefinition',\n // Values\n VARIABLE: 'Variable',\n INT: 'IntValue',\n FLOAT: 'FloatValue',\n STRING: 'StringValue',\n BOOLEAN: 'BooleanValue',\n NULL: 'NullValue',\n ENUM: 'EnumValue',\n LIST: 'ListValue',\n OBJECT: 'ObjectValue',\n OBJECT_FIELD: 'ObjectField',\n // Directives\n DIRECTIVE: 'Directive',\n // Types\n NAMED_TYPE: 'NamedType',\n LIST_TYPE: 'ListType',\n NON_NULL_TYPE: 'NonNullType',\n // Type System Definitions\n SCHEMA_DEFINITION: 'SchemaDefinition',\n OPERATION_TYPE_DEFINITION: 'OperationTypeDefinition',\n // Type Definitions\n SCALAR_TYPE_DEFINITION: 'ScalarTypeDefinition',\n OBJECT_TYPE_DEFINITION: 'ObjectTypeDefinition',\n FIELD_DEFINITION: 'FieldDefinition',\n INPUT_VALUE_DEFINITION: 'InputValueDefinition',\n INTERFACE_TYPE_DEFINITION: 'InterfaceTypeDefinition',\n UNION_TYPE_DEFINITION: 'UnionTypeDefinition',\n ENUM_TYPE_DEFINITION: 'EnumTypeDefinition',\n ENUM_VALUE_DEFINITION: 'EnumValueDefinition',\n INPUT_OBJECT_TYPE_DEFINITION: 'InputObjectTypeDefinition',\n // Directive Definitions\n DIRECTIVE_DEFINITION: 'DirectiveDefinition',\n // Type System Extensions\n SCHEMA_EXTENSION: 'SchemaExtension',\n // Type Extensions\n SCALAR_TYPE_EXTENSION: 'ScalarTypeExtension',\n OBJECT_TYPE_EXTENSION: 'ObjectTypeExtension',\n INTERFACE_TYPE_EXTENSION: 'InterfaceTypeExtension',\n UNION_TYPE_EXTENSION: 'UnionTypeExtension',\n ENUM_TYPE_EXTENSION: 'EnumTypeExtension',\n INPUT_OBJECT_TYPE_EXTENSION: 'InputObjectTypeExtension'\n});\n/**\n * The enum type representing the possible kind values of AST nodes.\n */","// turn {x: {val: 1, stiffness: 1, damping: 2}, y: 2} generated by\n// `{x: spring(1, {stiffness: 1, damping: 2}), y: 2}` into {x: 1, y: 2}\n'use strict';\n\nexports.__esModule = true;\nexports['default'] = stripStyle;\n\nfunction stripStyle(style) {\n var ret = {};\n\n for (var key in style) {\n if (!Object.prototype.hasOwnProperty.call(style, key)) {\n continue;\n }\n\n ret[key] = typeof style[key] === 'number' ? style[key] : style[key].val;\n }\n\n return ret;\n}\n\nmodule.exports = exports['default'];","// This currentContext variable will only be used if the makeSlotClass\n// function is called, which happens only if this is the first copy of the\n// @wry/context package to be imported.\nvar currentContext = null; // This unique internal object is used to denote the absence of a value\n// for a given Slot, and is never exposed to outside code.\n\nvar MISSING_VALUE = {};\nvar idCounter = 1; // Although we can't do anything about the cost of duplicated code from\n// accidentally bundling multiple copies of the @wry/context package, we can\n// avoid creating the Slot class more than once using makeSlotClass.\n\nvar makeSlotClass = function makeSlotClass() {\n return (\n /** @class */\n function () {\n function Slot() {\n // If you have a Slot object, you can find out its slot.id, but you cannot\n // guess the slot.id of a Slot you don't have access to, thanks to the\n // randomized suffix.\n this.id = [\"slot\", idCounter++, Date.now(), Math.random().toString(36).slice(2)].join(\":\");\n }\n\n Slot.prototype.hasValue = function () {\n for (var context_1 = currentContext; context_1; context_1 = context_1.parent) {\n // We use the Slot object iself as a key to its value, which means the\n // value cannot be obtained without a reference to the Slot object.\n if (this.id in context_1.slots) {\n var value = context_1.slots[this.id];\n if (value === MISSING_VALUE) break;\n\n if (context_1 !== currentContext) {\n // Cache the value in currentContext.slots so the next lookup will\n // be faster. This caching is safe because the tree of contexts and\n // the values of the slots are logically immutable.\n currentContext.slots[this.id] = value;\n }\n\n return true;\n }\n }\n\n if (currentContext) {\n // If a value was not found for this Slot, it's never going to be found\n // no matter how many times we look it up, so we might as well cache\n // the absence of the value, too.\n currentContext.slots[this.id] = MISSING_VALUE;\n }\n\n return false;\n };\n\n Slot.prototype.getValue = function () {\n if (this.hasValue()) {\n return currentContext.slots[this.id];\n }\n };\n\n Slot.prototype.withValue = function (value, callback, // Given the prevalence of arrow functions, specifying arguments is likely\n // to be much more common than specifying `this`, hence this ordering:\n args, thisArg) {\n var _a;\n\n var slots = (_a = {\n __proto__: null\n }, _a[this.id] = value, _a);\n var parent = currentContext;\n currentContext = {\n parent: parent,\n slots: slots\n };\n\n try {\n // Function.prototype.apply allows the arguments array argument to be\n // omitted or undefined, so args! is fine here.\n return callback.apply(thisArg, args);\n } finally {\n currentContext = parent;\n }\n }; // Capture the current context and wrap a callback function so that it\n // reestablishes the captured context when called.\n\n\n Slot.bind = function (callback) {\n var context = currentContext;\n return function () {\n var saved = currentContext;\n\n try {\n currentContext = context;\n return callback.apply(this, arguments);\n } finally {\n currentContext = saved;\n }\n };\n }; // Immediately run a callback function without any captured context.\n\n\n Slot.noContext = function (callback, // Given the prevalence of arrow functions, specifying arguments is likely\n // to be much more common than specifying `this`, hence this ordering:\n args, thisArg) {\n if (currentContext) {\n var saved = currentContext;\n\n try {\n currentContext = null; // Function.prototype.apply allows the arguments array argument to be\n // omitted or undefined, so args! is fine here.\n\n return callback.apply(thisArg, args);\n } finally {\n currentContext = saved;\n }\n } else {\n return callback.apply(thisArg, args);\n }\n };\n\n return Slot;\n }()\n );\n};\n\nfunction maybe(fn) {\n try {\n return fn();\n } catch (ignored) {}\n} // We store a single global implementation of the Slot class as a permanent\n// non-enumerable property of the globalThis object. This obfuscation does\n// nothing to prevent access to the Slot class, but at least it ensures the\n// implementation (i.e. currentContext) cannot be tampered with, and all copies\n// of the @wry/context package (hopefully just one) will share the same Slot\n// implementation. Since the first copy of the @wry/context package to be\n// imported wins, this technique imposes a steep cost for any future breaking\n// changes to the Slot class.\n\n\nvar globalKey = \"@wry/context:Slot\";\nvar host = // Prefer globalThis when available.\n// https://github.com/benjamn/wryware/issues/347\nmaybe(function () {\n return globalThis;\n}) || // Fall back to global, which works in Node.js and may be converted by some\n// bundlers to the appropriate identifier (window, self, ...) depending on the\n// bundling target. https://github.com/endojs/endo/issues/576#issuecomment-1178515224\nmaybe(function () {\n return global;\n}) || // Otherwise, use a dummy host that's local to this module. We used to fall\n// back to using the Array constructor as a namespace, but that was flagged in\n// https://github.com/benjamn/wryware/issues/347, and can be avoided.\nObject.create(null); // Whichever globalHost we're using, make TypeScript happy about the additional\n// globalKey property.\n\nvar globalHost = host;\n\nvar Slot = globalHost[globalKey] || // Earlier versions of this package stored the globalKey property on the Array\n// constructor, so we check there as well, to prevent Slot class duplication.\nArray[globalKey] || function (Slot) {\n try {\n Object.defineProperty(globalHost, globalKey, {\n value: Slot,\n enumerable: false,\n writable: false,\n // When it was possible for globalHost to be the Array constructor (a\n // legacy Slot dedup strategy), it was important for the property to be\n // configurable:true so it could be deleted. That does not seem to be as\n // important when globalHost is the global object, but I don't want to\n // cause similar problems again, and configurable:true seems safest.\n // https://github.com/endojs/endo/issues/576#issuecomment-1178274008\n configurable: true\n });\n } finally {\n return Slot;\n }\n}(makeSlotClass());\n\nvar bind = Slot.bind,\n noContext = Slot.noContext;\n\nfunction setTimeoutWithContext(callback, delay) {\n return setTimeout(bind(callback), delay);\n} // Turn any generator function into an async function (using yield instead\n// of await), with context automatically preserved across yields.\n\n\nfunction asyncFromGen(genFn) {\n return function () {\n var gen = genFn.apply(this, arguments);\n var boundNext = bind(gen.next);\n var boundThrow = bind(gen.throw);\n return new Promise(function (resolve, reject) {\n function invoke(method, argument) {\n try {\n var result = method.call(gen, argument);\n } catch (error) {\n return reject(error);\n }\n\n var next = result.done ? resolve : invokeNext;\n\n if (isPromiseLike(result.value)) {\n result.value.then(next, result.done ? reject : invokeThrow);\n } else {\n next(result.value);\n }\n }\n\n var invokeNext = function invokeNext(value) {\n return invoke(boundNext, value);\n };\n\n var invokeThrow = function invokeThrow(error) {\n return invoke(boundThrow, error);\n };\n\n invokeNext();\n });\n };\n}\n\nfunction isPromiseLike(value) {\n return value && typeof value.then === \"function\";\n} // If you use the fibers npm package to implement coroutines in Node.js,\n// you should call this function at least once to ensure context management\n// remains coherent across any yields.\n\n\nvar wrappedFibers = [];\n\nfunction wrapYieldingFiberMethods(Fiber) {\n // There can be only one implementation of Fiber per process, so this array\n // should never grow longer than one element.\n if (wrappedFibers.indexOf(Fiber) < 0) {\n var wrap = function wrap(obj, method) {\n var fn = obj[method];\n\n obj[method] = function () {\n return noContext(fn, arguments, this);\n };\n }; // These methods can yield, according to\n // https://github.com/laverdet/node-fibers/blob/ddebed9b8ae3883e57f822e2108e6943e5c8d2a8/fibers.js#L97-L100\n\n\n wrap(Fiber, \"yield\");\n wrap(Fiber.prototype, \"run\");\n wrap(Fiber.prototype, \"throwInto\");\n wrappedFibers.push(Fiber);\n }\n\n return Fiber;\n}\n\nexport { Slot, asyncFromGen, bind, noContext, setTimeoutWithContext as setTimeout, wrapYieldingFiberMethods };","var parser = null;\n\nvar getParser = function getParser() {\n if (parser === null) {\n parser = new window.DOMParser();\n }\n\n return parser;\n};\n\nvar wrapMarkup = function wrapMarkup(markup) {\n return \"<!DOCTYPE html>\\n<html><body>\".concat(markup, \"</body></html>\");\n};\n\nvar parseDom = function parseDom(markup) {\n return getParser().parseFromString(wrapMarkup(markup), 'text/html').querySelector('body').childNodes;\n};\n\nexport default parseDom;","// Convert a string from kebab-case to camelCase\nvar camelCase = function camelCase(string) {\n return string.replace(/\\-(\\w|$)/g, function (m, p1) {\n return p1.toUpperCase();\n });\n};\n\nvar convertPropertyName = function convertPropertyName(prop) {\n prop = prop.toLowerCase(); // Always return 'float' as 'cssFloat'\n\n if (prop === 'float') {\n return 'cssFloat';\n } // Skip CSS variables\n\n\n if (prop.startsWith('--')) {\n return prop;\n } // Handle `-ms-` prefix to camelCase as msPropertyName, not MsPropertyName\n\n\n if (prop.startsWith('-ms-')) {\n prop = prop.substr(1);\n }\n\n return camelCase(prop);\n};\n\nvar splitDeclarations = function splitDeclarations(cssText) {\n var declarations = [];\n var capturing;\n var i = cssText.length;\n var last = i; // Split into declarations by semi-colon (outside quotes or parentheses)\n\n while (i-- > -1) {\n // Capture unescaped quotes\n if ((cssText[i] === '\"' || cssText[i] === \"'\") && cssText[i - 1] !== '\\\\') {\n if (!capturing) {\n capturing = cssText[i];\n } else if (cssText[i] === capturing) {\n capturing = false;\n }\n } // Start capturing parentheses\n\n\n if (!capturing && cssText[i] === ')') {\n capturing = cssText[i];\n } // Stop capturing parentheses\n\n\n if (cssText[i] === '(' && capturing === ')') {\n capturing = false;\n } // Split at semi-colon\n\n\n if (i < 0 || !capturing && cssText[i] === ';') {\n declarations.unshift(cssText.slice(i + 1, last));\n last = i;\n }\n }\n\n return declarations;\n};\n\nvar splitDeclaration = function splitDeclaration(declaration) {\n var i = declaration.indexOf(':');\n return [declaration.substr(0, i).trim(), declaration.substr(i + 1).trim()];\n};\n\nvar cssToStyle = function cssToStyle(cssText) {\n return splitDeclarations(cssText).map(splitDeclaration).filter(function (_ref) {\n var name = _ref[0],\n value = _ref[1];\n return name && value;\n }).reduce(function (styles, _ref2) {\n var name = _ref2[0],\n value = _ref2[1];\n styles[convertPropertyName(name)] = value;\n return styles;\n }, {});\n};\n\nexport default cssToStyle;","import parseDom from 'dom-parse';\nimport PropTypes from 'prop-types';\nimport * as React from 'react';\nimport getDisplayName from 'react-display-name';\nimport cssToStyle from 'css-to-style';\nimport invariant from 'tiny-invariant'; // See https://dom.spec.whatwg.org/#dom-node-nodetype\n\nvar ELEMENT_NODE = 1;\nvar TEXT_NODE = 3; // Mapping of standard attribute names to prop names.\n// Based off https://github.com/facebook/react/blob/feb134c30d20ef332771d71d8d1cb66d34311637/packages/react-dom/src/shared/possibleStandardNames.js\n\nvar standardProps = new Map([// HTML\n['accept-charset', 'acceptCharset'], ['accesskey', 'accessKey'], ['allowfullscreen', 'allowFullScreen'], ['autocapitalize', 'autoCapitalize'], ['autocomplete', 'autoComplete'], ['autocorrect', 'autoCorrect'], ['autofocus', 'autoFocus'], ['autoplay', 'autoPlay'], ['autosave', 'autoSave'], ['cellpadding', 'cellPadding'], ['cellspacing', 'cellSpacing'], ['charset', 'charSet'], ['class', 'className'], ['classid', 'classID'], ['classname', 'className'], ['colspan', 'colSpan'], ['contenteditable', 'contentEditable'], ['contextmenu', 'contextMenu'], ['controlslist', 'controlsList'], ['crossorigin', 'crossOrigin'], ['datetime', 'dateTime'], ['disablepictureinpicture', 'disablePictureInPicture'], ['disableremoteplayback', 'disableRemotePlayback'], ['enctype', 'encType'], ['enterkeyhint', 'enterKeyHint'], ['for', 'htmlFor'], ['formmethod', 'formMethod'], ['formaction', 'formAction'], ['formenctype', 'formEncType'], ['formnovalidate', 'formNoValidate'], ['formtarget', 'formTarget'], ['frameborder', 'frameBorder'], ['hreflang', 'hrefLang'], ['htmlfor', 'htmlFor'], ['http-equiv', 'httpEquiv'], ['inputmode', 'inputMode'], ['itemid', 'itemID'], ['itemprop', 'itemProp'], ['itemref', 'itemRef'], ['itemscope', 'itemScope'], ['itemtype', 'itemType'], ['keyparams', 'keyParams'], ['keytype', 'keyType'], ['marginwidth', 'marginWidth'], ['marginheight', 'marginHeight'], ['maxlength', 'maxLength'], ['mediagroup', 'mediaGroup'], ['minlength', 'minLength'], ['nomodule', 'noModule'], ['novalidate', 'noValidate'], ['playsinline', 'playsInline'], ['radiogroup', 'radioGroup'], ['readonly', 'readOnly'], ['referrerpolicy', 'referrerPolicy'], ['rowspan', 'rowSpan'], ['spellcheck', 'spellCheck'], ['srcdoc', 'srcDoc'], ['srclang', 'srcLang'], ['srcset', 'srcSet'], ['tabindex', 'tabIndex'], ['usemap', 'useMap'], // SVG\n['accent-height', 'accentHeight'], ['alignment-baseline', 'alignmentBaseline'], ['allowreorder', 'allowReorder'], ['arabic-form', 'arabicForm'], ['attributename', 'attributeName'], ['attributetype', 'attributeType'], ['autoreverse', 'autoReverse'], ['basefrequency', 'baseFrequency'], ['baseline-shift', 'baselineShift'], ['baseprofile', 'baseProfile'], ['calcmode', 'calcMode'], ['cap-height', 'capHeight'], ['clip-path', 'clipPath'], ['clippathunits', 'clipPathUnits'], ['clip-rule', 'clipRule'], ['color-interpolation', 'colorInterpolation'], ['color-interpolation-filters', 'colorInterpolationFilters'], ['color-profile', 'colorProfile'], ['color-rendering', 'colorRendering'], ['contentscripttype', 'contentScriptType'], ['contentstyletype', 'contentStyleType'], ['diffuseconstant', 'diffuseConstant'], ['dominantbaseline', 'dominantBaseline'], ['dominant-baseline', 'dominantBaseline'], ['edgemode', 'edgeMode'], ['enable-background', 'enableBackground'], ['externalresourcesrequired', 'externalResourcesRequired'], ['fill-opacity', 'fillOpacity'], ['fill-rule', 'fillRule'], ['filterres', 'filterRes'], ['filterunits', 'filterUnits'], ['flood-opacity', 'floodOpacity'], ['flood-color', 'floodColor'], ['fontfamily', 'fontFamily'], ['font-family', 'fontFamily'], ['font-size', 'fontSize'], ['font-size-adjust', 'fontSizeAdjust'], ['font-stretch', 'fontStretch'], ['font-style', 'fontStyle'], ['font-variant', 'fontVariant'], ['font-weight', 'fontWeight'], ['glyph-name', 'glyphName'], ['glyph-orientation-horizontal', 'glyphOrientationHorizontal'], ['glyph-orientation-vertical', 'glyphOrientationVertical'], ['glyphref', 'glyphRef'], ['gradienttransform', 'gradientTransform'], ['gradientunits', 'gradientUnits'], ['horiz-adv-x', 'horizAdvX'], ['horiz-origin-x', 'horizOriginX'], ['image-rendering', 'imageRendering'], ['kernelmatrix', 'kernelMatrix'], ['kernelunitlength', 'kernelUnitLength'], ['keypoints', 'keyPoints'], ['keysplines', 'keySplines'], ['keytimes', 'keyTimes'], ['lengthadjust', 'lengthAdjust'], ['letter-spacing', 'letterSpacing'], ['lighting-color', 'lightingColor'], ['limitingconeangle', 'limitingConeAngle'], ['marker-end', 'markerEnd'], ['markerheight', 'markerHeight'], ['marker-mid', 'markerMid'], ['marker-start', 'markerStart'], ['markerunits', 'markerUnits'], ['markerwidth', 'markerWidth'], ['maskcontentunits', 'maskContentUnits'], ['maskunits', 'maskUnits'], ['numoctaves', 'numOctaves'], ['overline-position', 'overlinePosition'], ['overline-thickness', 'overlineThickness'], ['paintorder', 'paintOrder'], ['paint-order', 'paintOrder'], ['panose-1', 'panose1'], ['pathlength', 'pathLength'], ['patterncontentunits', 'patternContentUnits'], ['patterntransform', 'patternTransform'], ['patternunits', 'patternUnits'], ['pointerevents', 'pointerEvents'], ['pointer-events', 'pointerEvents'], ['pointsatx', 'pointsAtX'], ['pointsaty', 'pointsAtY'], ['pointsatz', 'pointsAtZ'], ['preservealpha', 'preserveAlpha'], ['preserveaspectratio', 'preserveAspectRatio'], ['primitiveunits', 'primitiveUnits'], ['refx', 'refX'], ['refy', 'refY'], ['rendering-intent', 'renderingIntent'], ['repeatcount', 'repeatCount'], ['repeatdur', 'repeatDur'], ['requiredextensions', 'requiredExtensions'], ['requiredfeatures', 'requiredFeatures'], ['shape-rendering', 'shapeRendering'], ['specularconstant', 'specularConstant'], ['specularexponent', 'specularExponent'], ['spreadmethod', 'spreadMethod'], ['startoffset', 'startOffset'], ['stddeviation', 'stdDeviation'], ['stitchtiles', 'stitchTiles'], ['stop-color', 'stopColor'], ['stop-opacity', 'stopOpacity'], ['strikethrough-position', 'strikethroughPosition'], ['strikethrough-thickness', 'strikethroughThickness'], ['stroke-dasharray', 'strokeDasharray'], ['stroke-dashoffset', 'strokeDashoffset'], ['stroke-linecap', 'strokeLinecap'], ['stroke-linejoin', 'strokeLinejoin'], ['stroke-miterlimit', 'strokeMiterlimit'], ['stroke-width', 'strokeWidth'], ['stroke-opacity', 'strokeOpacity'], ['surfacescale', 'surfaceScale'], ['systemlanguage', 'systemLanguage'], ['tablevalues', 'tableValues'], ['targetx', 'targetX'], ['targety', 'targetY'], ['text-anchor', 'textAnchor'], ['text-decoration', 'textDecoration'], ['textlength', 'textLength'], ['text-rendering', 'textRendering'], ['underline-position', 'underlinePosition'], ['underline-thickness', 'underlineThickness'], ['unicode-bidi', 'unicodeBidi'], ['unicode-range', 'unicodeRange'], ['units-per-em', 'unitsPerEm'], ['v-alphabetic', 'vAlphabetic'], ['vector-effect', 'vectorEffect'], ['vert-adv-y', 'vertAdvY'], ['vert-origin-x', 'vertOriginX'], ['vert-origin-y', 'vertOriginY'], ['v-hanging', 'vHanging'], ['v-ideographic', 'vIdeographic'], ['viewbox', 'viewBox'], ['viewtarget', 'viewTarget'], ['v-mathematical', 'vMathematical'], ['word-spacing', 'wordSpacing'], ['writing-mode', 'writingMode'], ['xchannelselector', 'xChannelSelector'], ['x-height', 'xHeight'], ['xlink:actuate', 'xlinkActuate'], ['xlink:arcrole', 'xlinkArcrole'], ['xlink:href', 'xlinkHref'], ['xlink:role', 'xlinkRole'], ['xlink:show', 'xlinkShow'], ['xlink:title', 'xlinkTitle'], ['xlink:type', 'xlinkType'], ['xml:base', 'xmlBase'], ['xml:lang', 'xmlLang'], ['xml:space', 'xmlSpace'], ['xmlns:xlink', 'xmlnsXlink'], ['ychannelselector', 'yChannelSelector'], ['zoomandpan', 'zoomAndPan']]);\nvar reactProps = new Set(['children', 'dangerouslySetInnerHTML', 'key', 'ref', 'defaultValue', 'defaultChecked', 'innerHTML', 'suppressContentEditableWarning', 'suppressHydrationWarning', // deprecated\n'valueLink']);\n\nvar attrsToProps = function attrsToProps(attrs) {\n var props = {};\n\n for (var i = 0; i < attrs.length; i++) {\n var _standardProps$get;\n\n var _attrs$i = attrs[i],\n name = _attrs$i.name,\n value = _attrs$i.value; // Disallow event attributes and react props.\n\n if (name.startsWith('on') || reactProps.has(name)) {\n continue;\n } // Don't modify aria-* or data-* attributes.\n\n\n if (name.startsWith('aria-') || name.startsWith('data-')) {\n props[name] = value;\n continue;\n } // Handle style attribute.\n\n\n if (name === 'style') {\n props[name] = cssToStyle(value);\n continue;\n }\n\n props[(_standardProps$get = standardProps.get(name)) != null ? _standardProps$get : name] = value === '' ? true : value;\n }\n\n return props;\n}; // HTML elements are always in the canonical upper-case form,\n// i.e. <h1> will have a tagName of \"H1\"\n\n\nvar isHTMLTagName = /^[A-Z]/;\n\nvar nodeNameToType = function nodeNameToType(nodeName) {\n return isHTMLTagName.test(nodeName) ? nodeName.toLowerCase() : nodeName;\n};\n\nvar nodesToElements = function nodesToElements(nodeList, options) {\n var tree = [];\n\n for (var i = 0; i < nodeList.length; i++) {\n var node = nodeList[i]; // Only render element nodes and text nodes.\n\n if (node.nodeType === ELEMENT_NODE) {\n var type = nodeNameToType(node.nodeName);\n\n if ( // Never render <script> elements.\n type === 'script' || // Handle allowed option to only render elements that are allowed.\n options.allowed && (typeof options.allowed === 'function' ? !options.allowed(node) : !options.allowed.includes(type))) {\n continue;\n } // Handle replace option.\n\n\n if (options.replace) {\n var replacement = typeof options.replace === 'function' ? options.replace(node) : Object.prototype.hasOwnProperty.call(options.replace, type) ? options.replace[type] : undefined; // Don't render element if replacement is null.\n\n if (replacement === null) {\n continue;\n } // Replace element replacement—if not undefined.\n\n\n if (replacement !== undefined) {\n type = replacement;\n }\n }\n\n var props = attrsToProps(node.attributes);\n props.key = getDisplayName(type) + \"-\" + i;\n var children = nodesToElements(node.childNodes, options);\n tree.push(React.isValidElement(type) ? React.cloneElement(type, props, children) : React.createElement(type, props, children));\n } else if (node.nodeType === TEXT_NODE) {\n // Handle trim option to remove whitespace text nodes.\n if (!options.trim || node.textContent.trim() !== '') {\n tree.push(node.textContent);\n }\n }\n }\n\n return tree.length > 0 ? tree : null;\n};\n\nvar Markup = React.memo(function Markup(_ref) {\n var _ref$allowed = _ref.allowed,\n allowed = _ref$allowed === void 0 ? null : _ref$allowed,\n _ref$markup = _ref.markup,\n markup = _ref$markup === void 0 ? null : _ref$markup,\n _ref$replace = _ref.replace,\n replace = _ref$replace === void 0 ? null : _ref$replace,\n _ref$trim = _ref.trim,\n trim = _ref$trim === void 0 ? null : _ref$trim;\n return markup ? nodesToElements(parseDom(markup), {\n allowed: allowed,\n replace: replace,\n trim: trim\n }) : null;\n});\nMarkup.propTypes\n/* remove-proptypes */\n= process.env.NODE_ENV !== \"production\" ? {\n allowed: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string), PropTypes.func]),\n markup: PropTypes.string,\n replace: PropTypes.oneOfType([PropTypes.func, PropTypes.objectOf(PropTypes.elementType)]),\n trim: PropTypes.bool\n} : {};\n\nvar renderMarkup = function renderMarkup(markup, options) {\n !(markup == null || typeof markup === 'string') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Expected `markup` to be a string') : invariant(false) : void 0;\n !(options == null || typeof options === 'object') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Expected `options` to be an object') : invariant(false) : void 0;\n !(options == null || options.allowed == null || Array.isArray(options.allowed) || typeof options.allowed === 'function') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Expected `options.allowed` to be an array or function') : invariant(false) : void 0;\n !(options == null || options.replace == null || typeof options.replace === 'function' || typeof options.replace === 'object') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Expected `options.replace` to be a function or object') : invariant(false) : void 0;\n !(options == null || options.trim == null || typeof options.trim === 'boolean') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Expected `options.trim` to be a boolean') : invariant(false) : void 0;\n return markup ? nodesToElements(parseDom(markup), options != null ? options : {}) : null;\n};\n\nexport { Markup, renderMarkup };","module.exports = __webpack_public_path__ + \"media/checkmarks/grey-checkmark-a1b1df36.svg\";","// @flow\n\nimport * as React from 'react'\nimport { Motion, spring } from 'react-motion'\nimport CloseButton from 'assets/images/icons/crosses/close.svg'\n// eslint-disable-next-line flowtype/no-flow-fix-me-comments\n// $FlowFixMe\nimport BREAKPOINTS from '@/constants/Breakpoints'\n\ntype Transition = 'left' | 'bottom' | 'scale' | 'right' | 'bottom-with-image'\n\ntype Props = {|\n modalIsOpen: boolean,\n showCloseButton: boolean,\n useCustomCloseButton?: boolean,\n customCloseButtonContent?: React.Node,\n onClose?: () => void,\n modalSize: 'small' | 'medium' | 'large',\n transitionTypes: {|desktop: Transition, mobile: Transition|},\n extraClasses: string,\n closeModal: (string) => void,\n children?: React.Node,\n withBackdrop?: boolean\n|}\n\ntype MotionStyle = {|\n ...MotionStyle,\n 'backdropOpacity'?: Array<number> | number,\n 'opacity'?: Array<number> | number,\n 'scale'?: Array<number> | number,\n 'y'?: Array<number> | number,\n 'x'?: Array<number> | number\n|}\n\ntype interpolatedStyles = {|\n 'defaultStyle': MotionStyle,\n 'style': MotionStyle\n|}\n\ntype State = {|\n className: string\n|}\n\n// eslint-disable-next-line react/require-optimization\nexport default class TransitionalModal extends React.Component<Props, State> {\n // eslint-disable-next-line react/sort-comp\n static onResizeModals = ['raf-modal']\n constructor (props: Props): void {\n super(props)\n this.state = {\n className: this.renderClassNames(),\n }\n this.checkWindowResize()\n }\n\n componentDidMount = (): void => {\n const { withBackdrop } = this.props\n if (document.body && withBackdrop !== false) document.body.classList.add('open-modal')\n if ('ontouchstart' in window) {\n document.addEventListener('touchstart', this.closeModalListener, false)\n } else {\n document.addEventListener('click', this.closeModalListener, false)\n }\n }\n\n checkWindowResize = (): void => {\n const { extraClasses } = this.props\n if (TransitionalModal.onResizeModals.includes(extraClasses)) {\n window.onresize = (): void => {\n this.setState({ className: this.renderClassNames() })\n }\n }\n }\n\n // eslint-disable-next-line react/no-arrow-function-lifecycle\n componentWillUnmount = (): void => {\n const { onClose } = this.props\n if (onClose) onClose()\n\n document.removeEventListener('click', this.closeModalListener, false)\n document.removeEventListener('touchstart', this.closeModalListener, false)\n if (document.body) document.body.classList.remove('open-modal')\n window.onresize = (): void => {} // stop listening to window resize\n }\n\n checkTransitionType = (): Transition => {\n const { transitionTypes } = this.props\n // $FlowFixMe\n const width = document.documentElement.clientWidth || document.body.clientWidth\n if (width > BREAKPOINTS.sm) return transitionTypes.desktop\n return transitionTypes.mobile\n }\n\n closeModalListener = (e: Event): void => {\n const { modalIsOpen, withBackdrop, extraClasses, closeModal } = this.props\n const { target } = e\n if (!(target instanceof window.HTMLElement)) return\n if (target.classList.contains('modal-container__backdrop') && modalIsOpen && withBackdrop !== false) {\n closeModal(extraClasses)\n }\n }\n\n modalClose = (): void => {\n const { extraClasses, closeModal } = this.props\n closeModal(extraClasses)\n }\n\n renderCloseButton = (): React.Node => {\n const { showCloseButton, useCustomCloseButton, customCloseButtonContent } = this.props\n if (!showCloseButton) {\n return null\n }\n if (useCustomCloseButton) {\n return (\n <button\n type='button'\n className='modal-container__modal__close-btn'\n onClick={this.modalClose}\n >\n { customCloseButtonContent }\n </button>\n )\n }\n return (\n <button\n type='button'\n className='modal-container__modal__close-btn'\n onClick={this.modalClose}\n >\n <img\n src={CloseButton}\n alt='A closing X icon.'\n />\n </button>\n )\n }\n\n getTransitionType = (): MotionStyle => {\n switch (this.checkTransitionType()) {\n case 'left':\n return { x: [-120, 0], y: [0, 0], scale: [1, 1], opacity: [0.8, 1], backdropOpacity: [0, 1] }\n case 'right':\n return { x: [100, 0], y: [0, 0], scale: [1, 1], opacity: [0.8, 1], backdropOpacity: [0, 1] }\n case 'bottom':\n return { x: [0, 0], y: [100, 0], scale: [1, 1], opacity: [0.8, 1], backdropOpacity: [0, 1] }\n case 'bottom-with-image':\n return { x: [0, 0], y: [130, 0], scale: [1, 1], opacity: [0.8, 1], backdropOpacity: [0, 1] }\n case 'scale':\n return { x: [-50, -50], y: [50, 50], scale: [0.5, 1], opacity: [0, 1], backdropOpacity: [0, 1] }\n default:\n return { x: [0, 0], y: [100, 0], scale: [1, 1], opacity: [0.8, 1], backdropOpacity: [0, 1] }\n }\n }\n\n interpolateStyles = (modalState: boolean): interpolatedStyles => {\n const transition = this.getTransitionType()\n let config = { stiffness: 250, damping: 25 }\n if (transition === 'left' || transition === 'right') {\n config = { stiffness: 200, damping: 30 }\n }\n\n // $FlowFixMe\n const styles = Object.keys(transition)\n const defaultStyle = {}\n const interpolated = {}\n const formatted = styles.map((item: string, index: number): Array<MotionStyle> => {\n // $FlowFixMe\n defaultStyle[`${item}`] = transition[`${item}`][0]\n // $FlowFixMe\n interpolated[`${item}`] = spring(modalState ? transition[`${item}`][1] : transition[`${item}`][0], config)\n return [defaultStyle, interpolated]\n })\n return {\n defaultStyle: formatted[styles.length - 1][0],\n style: formatted[styles.length - 1][1]\n }\n }\n\n renderClassNames = (): string => {\n const { modalSize, extraClasses } = this.props\n let modalClasses = 'modal-container__modal white-background__medium modal-container__modal'\n if (modalSize) modalClasses += `--${modalSize}`\n if (extraClasses) modalClasses += ` ${extraClasses}`\n if (this.checkTransitionType()) modalClasses += ` modal-container__modal--${this.checkTransitionType()}`\n return modalClasses\n }\n\n render (): React.Node {\n const { modalIsOpen, withBackdrop, children } = this.props\n const { className } = this.state\n const defaultStyle = this.interpolateStyles(modalIsOpen).defaultStyle\n const style = this.interpolateStyles(modalIsOpen).style\n return (\n <Motion\n defaultStyle={defaultStyle}\n style={style}\n >\n { (style: MotionStyle): React.Node => (\n <div className='modal-container'>\n {\n withBackdrop !== false &&\n <div\n className='modal-container__backdrop'\n style={{ opacity: style.backdropOpacity }}\n />\n }\n <div\n style={{\n transform: `translate3d(${Number(style.x).toString()}%, ${Number(style.y).toString()}%, 0) scale(${Number(style.scale).toString()})`,\n opacity: style.opacity\n }}\n className={className}\n >\n { this.renderCloseButton() }\n { children }\n </div>\n </div>\n ) }\n </Motion>\n )\n }\n}\n","export default function toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n\n var number = Number(dirtyNumber);\n\n if (isNaN(number)) {\n return number;\n }\n\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}","function maybe(thunk) {\n try {\n return thunk();\n } catch (_) {}\n}\n\nvar safeGlobal = maybe(function () {\n return globalThis;\n}) || maybe(function () {\n return window;\n}) || maybe(function () {\n return self;\n}) || maybe(function () {\n return global;\n}) || // We don't expect the Function constructor ever to be invoked at runtime, as\n// long as at least one of globalThis, window, self, or global is defined, so\n// we are under no obligation to make it easy for static analysis tools to\n// detect syntactic usage of the Function constructor. If you think you can\n// improve your static analysis to detect this obfuscation, think again. This\n// is an arms race you cannot win, at least not in JavaScript.\nmaybe(function () {\n return maybe.constructor(\"return this\")();\n});\nvar needToRemove = false;\nexport function install() {\n if (safeGlobal && !maybe(function () {\n return process.env.NODE_ENV;\n }) && !maybe(function () {\n return process;\n })) {\n Object.defineProperty(safeGlobal, \"process\", {\n value: {\n env: {\n // This default needs to be \"production\" instead of \"development\", to\n // avoid the problem https://github.com/graphql/graphql-js/pull/2894\n // will eventually solve, once merged and released.\n NODE_ENV: \"production\"\n }\n },\n // Let anyone else change global.process as they see fit, but hide it from\n // Object.keys(global) enumeration.\n configurable: true,\n enumerable: false,\n writable: true\n });\n needToRemove = true;\n }\n} // Call install() at least once, when this module is imported.\n\ninstall();\nexport function remove() {\n if (needToRemove) {\n delete safeGlobal.process;\n needToRemove = false;\n }\n}","import * as React from 'react';\nimport { canUseSymbol } from \"../../utilities/index.js\";\nvar contextKey = canUseSymbol ? Symbol.for('__APOLLO_CONTEXT__') : '__APOLLO_CONTEXT__';\nexport function getApolloContext() {\n var context = React.createContext[contextKey];\n\n if (!context) {\n Object.defineProperty(React.createContext, contextKey, {\n value: context = React.createContext({}),\n enumerable: false,\n writable: false,\n configurable: true\n });\n context.displayName = 'ApolloContext';\n }\n\n return context;\n}\nexport { getApolloContext as resetApolloContext };","export default function devAssert(condition, message) {\n var booleanCondition = Boolean(condition); // istanbul ignore else (See transformation done in './resources/inlineInvariant.js')\n\n if (!booleanCondition) {\n throw new Error(message);\n }\n}","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nimport inspect from \"./inspect.mjs\";\n/**\n * A replacement for instanceof which includes an error warning when multi-realm\n * constructors are detected.\n */\n// See: https://expressjs.com/en/advanced/best-practice-performance.html#set-node_env-to-production\n// See: https://webpack.js.org/guides/production/\n\nexport default process.env.NODE_ENV === 'production' ? // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2317')\n// eslint-disable-next-line no-shadow\nfunction instanceOf(value, constructor) {\n return value instanceof constructor;\n} : // eslint-disable-next-line no-shadow\nfunction instanceOf(value, constructor) {\n if (value instanceof constructor) {\n return true;\n }\n\n if (_typeof(value) === 'object' && value !== null) {\n var _value$constructor;\n\n var className = constructor.prototype[Symbol.toStringTag];\n var valueClassName = // We still need to support constructor's name to detect conflicts with older versions of this library.\n Symbol.toStringTag in value ? value[Symbol.toStringTag] : (_value$constructor = value.constructor) === null || _value$constructor === void 0 ? void 0 : _value$constructor.name;\n\n if (className === valueClassName) {\n var stringifiedValue = inspect(value);\n throw new Error(\"Cannot use \".concat(className, \" \\\"\").concat(stringifiedValue, \"\\\" from another module or realm.\\n\\nEnsure that there is only one instance of \\\"graphql\\\" in the node_modules\\ndirectory. If different versions of \\\"graphql\\\" are the dependencies of other\\nrelied on modules, use \\\"resolutions\\\" to ensure only one version is installed.\\n\\nhttps://yarnpkg.com/en/docs/selective-version-resolutions\\n\\nDuplicate \\\"graphql\\\" modules cannot be used at the same time since different\\nversions may have different capabilities and behavior. The data from one\\nversion used in the function from another could produce confusing and\\nspurious results.\"));\n }\n }\n\n return false;\n};","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nimport { SYMBOL_TO_STRING_TAG } from \"../polyfills/symbols.mjs\";\nimport inspect from \"../jsutils/inspect.mjs\";\nimport devAssert from \"../jsutils/devAssert.mjs\";\nimport instanceOf from \"../jsutils/instanceOf.mjs\";\n/**\n * A representation of source input to GraphQL. The `name` and `locationOffset` parameters are\n * optional, but they are useful for clients who store GraphQL documents in source files.\n * For example, if the GraphQL input starts at line 40 in a file named `Foo.graphql`, it might\n * be useful for `name` to be `\"Foo.graphql\"` and location to be `{ line: 40, column: 1 }`.\n * The `line` and `column` properties in `locationOffset` are 1-indexed.\n */\n\nexport var Source = /*#__PURE__*/function () {\n function Source(body) {\n var name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'GraphQL request';\n var locationOffset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n line: 1,\n column: 1\n };\n typeof body === 'string' || devAssert(0, \"Body must be a string. Received: \".concat(inspect(body), \".\"));\n this.body = body;\n this.name = name;\n this.locationOffset = locationOffset;\n this.locationOffset.line > 0 || devAssert(0, 'line in locationOffset is 1-indexed and must be positive.');\n this.locationOffset.column > 0 || devAssert(0, 'column in locationOffset is 1-indexed and must be positive.');\n } // $FlowFixMe[unsupported-syntax] Flow doesn't support computed properties yet\n\n\n _createClass(Source, [{\n key: SYMBOL_TO_STRING_TAG,\n get: function get() {\n return 'Source';\n }\n }]);\n\n return Source;\n}();\n/**\n * Test if the given value is a Source object.\n *\n * @internal\n */\n// eslint-disable-next-line no-redeclare\n\nexport function isSource(source) {\n return instanceOf(source, Source);\n}","// @noflow\nimport { countries } from 'countries-list'\nimport i18next from 'i18next'\nimport {\n AsYouType,\n isValidPhoneNumber,\n parsePhoneNumber\n} from 'libphonenumber-js/mobile'\n\nimport * as Sentry from '@/utils/sentry'\nimport Validator from '@/utils/validator'\n\nimport {\n maximumLength,\n oneLowercaseLetter,\n oneSpecialCharacterOrNumber,\n oneUpperCaseLetter\n} from '../components/InputField/PasswordInputField'\n\nimport type { Code as CountryCode } from '@/shared_types/rails_models/shipping_countries'\nimport { Code } from '@/types'\n\nimport type { FormSectionKey } from '../types'\n\n// TODO: Placeholder for now\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype AppState = any\n\ntype InputInteractionState =\n | 'InteractingInteracted'\n | 'InteractingNotInteracted'\n | 'NotInteractingInteracted'\n | 'NotInteractingNotInteracted'\n\ntype InputWithString = {\n errorMessage: string | null\n inputInteractionState: InputInteractionState\n value: string\n}\n\ntype InputType = 'text' | 'email' | 'password' | 'tel'\n\ntype Autocomplete =\n | 'name'\n | 'email'\n | 'new-password'\n | 'tel'\n | 'postal-code'\n | 'address-line1'\n | 'address-line2'\n | 'address-level2'\n\ntype ValidationIndicator = 'none' | 'error' | 'checkmark'\n\ntype ModalName = 'delivery-date-modal' | 'order-summary-modal'\n\ntype FullName = {\n firstName: string\n lastName: string\n}\n\ntype Translate = (arg0: string) => string\n\nconst mobileNumberRequiredRegions: Array<CountryCode> = [\n 'IE',\n 'NL',\n 'BE',\n 'PL',\n 'DE',\n 'CZ'\n]\n\n/*\n Formats certains inputs:\n - phone numbers ignore anything that's not a digit or a space\n (or a + at the beginning for country calling codes) and separate the digits\n with spaces: +44 xxxx xxxxxx or xxxxx xxxxxx.\n - postcodes ignore invalid characters and limit to 8 characters.\n*/\nconst removeExtraWhiteSpace = (value: string): string => {\n return value.replace(/(^\\s*)|(\\s*$)/gi, '').replace(/[ ]{2,}/gi, ' ')\n}\n\nconst formatNameInput = (fullName: string): FullName => {\n // replace leading, trailing, and double white space\n const formattedName = removeExtraWhiteSpace(fullName)\n const firstSpace = formattedName.indexOf(' ')\n const firstName = formattedName.substr(0, firstSpace)\n const lastName = formattedName.substr(firstSpace + 1)\n\n return {\n firstName,\n lastName\n }\n}\n\nconst format = (\n value: string,\n fieldName: FormSectionKey,\n shippingCountryCode?: CountryCode\n): string => {\n switch (fieldName) {\n case 'mobileNumber': {\n return new AsYouType(shippingCountryCode).input(value)\n }\n case 'postcode': {\n return value.replace(/[^a-zA-Z0-9 ]/g, '').slice(0, 8)\n }\n default: {\n return value\n }\n }\n}\n\nconst interactingState = (\n currentInteractionState: InputInteractionState\n): InputInteractionState => {\n if (\n currentInteractionState === 'NotInteractingInteracted' ||\n currentInteractionState === 'InteractingInteracted'\n ) {\n return 'InteractingInteracted'\n } else {\n return 'InteractingNotInteracted'\n }\n}\n\nconst addressLineLimit = (shippingCountryCode: CountryCode): number | null => {\n switch (shippingCountryCode) {\n case Code.DE: {\n return 35\n }\n case Code.BE:\n case Code.NL: {\n return 95\n }\n default: {\n return null\n }\n }\n}\n\nconst supportedCountryNumbers = Object.entries(countries)\n .filter(([key, { continent }]) => continent === 'EU' || key === 'US')\n .map(([key]) => key)\n\nconst validate = (\n value: string,\n fieldName: FormSectionKey,\n shippingCountryCode?: CountryCode,\n deliveryNotesLimit?: number\n): string | null => {\n const copy_context = 'checkout:errors'\n\n switch (fieldName) {\n case 'name': {\n // The bellow regex allows for accented characters such as the ones found in PL or GE names,\n // Comma, dash and space, excluding special characters\n const nameRegex =\n /^[A-Za-z0-9À-ÖØ-Ãà -öø-ÿĄ-ŹŻąćęłńóśżźÄ-ÖÜä-öüÿ,'-]+(?:\\s+[A-Za-z0-9À-ÖØ-Ãà -öø-ÿĄ-ŹŻąćęłńóśżźÄ-ÖÜä-öüÿ,'-]+)+\\s*$/\n\n if (!nameRegex.test(value)) {\n return i18next.t(`${copy_context}.name`)\n }\n return null\n }\n case 'email': {\n if (Validator.isValidEmail(value)) {\n return null\n }\n return i18next.t(`${copy_context}.email`)\n }\n case 'password':\n case 'visible-password': {\n if (!oneUpperCaseLetter.test(value)) {\n return i18next.t(`${copy_context}.password.one_uppercase_letter`)\n }\n if (!oneLowercaseLetter.test(value)) {\n return i18next.t(`${copy_context}.password.one_lowercase_letter`)\n }\n if (!maximumLength.test(value)) {\n return i18next.t(`${copy_context}.password.minimum_length`)\n }\n if (!oneSpecialCharacterOrNumber.test(value)) {\n return i18next.t(\n `${copy_context}.password.one_special_character_or_number`\n )\n }\n return null\n }\n case 'addressLine1': {\n const limitationValue =\n (shippingCountryCode && addressLineLimit(shippingCountryCode)) ?? 0\n\n if (\n value.length <= 0 ||\n (limitationValue !== 0 && value.length > limitationValue)\n ) {\n return i18next.t(`${copy_context}.address_line_1`)\n }\n\n if (Validator.isPOBoxAddress(value)) {\n return i18next.t(`${copy_context}.address_is_po_box`)\n }\n\n return null\n }\n case 'addressLine2': {\n if (Validator.isPOBoxAddress(value)) {\n return i18next.t(`${copy_context}.address_is_po_box`)\n }\n\n return null\n }\n case 'city': {\n if (value.length > 0) {\n return null\n }\n return i18next.t(`${copy_context}.address_city`)\n }\n case 'searchTerm': {\n if (Validator.isBlank(value)) {\n return i18next.t(`${copy_context}.address_invalid`)\n }\n return null\n }\n case 'postcode': {\n // This field has custom validation in the PostcodeInputField component\n return null\n }\n case 'deliveryNotes': {\n if (deliveryNotesLimit && value.length > deliveryNotesLimit) {\n return i18next.t(`${copy_context}.delivery_notes`, {\n deliveryNotesLimit\n })\n }\n return null\n }\n case 'mobileNumber': {\n if (!value) {\n const shouldProvideMobileNumber = mobileNumberRequiredRegions.some(\n (code) => code === shippingCountryCode\n )\n if (shouldProvideMobileNumber) {\n return i18next.t(`${copy_context}.mobile`)\n } else return null\n }\n\n const trimmedNumber = value.trim()\n const sanitisedShippingCountryCode =\n shippingCountryCode === 'NI' ? 'GB' : shippingCountryCode\n\n // We check first that the number is a valid complete mobile number, because parsePhoneNumber\n // requires a complete phone number otherwise it'll error on attempting to parse\n const isValidMobileNumber = isValidPhoneNumber(\n trimmedNumber,\n sanitisedShippingCountryCode\n )\n if (isValidMobileNumber) {\n // We have a defined list of allowed European + US phone numbers which we want to check against\n const parsedNumberCountryCode = parsePhoneNumber(\n trimmedNumber,\n sanitisedShippingCountryCode\n ).country\n\n if (!parsedNumberCountryCode) return null\n\n const isSupportedCountryNumber = supportedCountryNumbers.includes(\n parsedNumberCountryCode\n )\n\n if (isSupportedCountryNumber) {\n return null\n } else {\n return i18next.t(`${copy_context}.mobile`)\n }\n } else {\n return i18next.t(`${copy_context}.mobile`)\n }\n }\n default: {\n Sentry.captureException(`validate not implemented for fieldName`, {\n extra: {\n fieldName\n },\n tags: {\n product: Sentry.Product.Checkout\n }\n })\n return null\n }\n }\n}\n\nconst validationIndicator = (\n inputField: InputWithString\n): ValidationIndicator => {\n if (inputField.errorMessage === null) {\n if (inputField.inputInteractionState === 'NotInteractingNotInteracted') {\n return 'none'\n }\n return 'checkmark'\n }\n switch (inputField.inputInteractionState) {\n case 'InteractingNotInteracted': {\n return 'none'\n }\n case 'NotInteractingNotInteracted': {\n return 'none'\n }\n case 'InteractingInteracted': {\n return 'error'\n }\n case 'NotInteractingInteracted': {\n return 'error'\n }\n }\n}\n\nconst isRequired = (\n fieldName: FormSectionKey,\n shippingCountryCode?: CountryCode\n): boolean => {\n switch (fieldName) {\n case 'searchTerm': {\n return false\n }\n case 'mobileNumber': {\n const shouldProvideMobileNumber = mobileNumberRequiredRegions.some(\n (code) => code === shippingCountryCode\n )\n if (shouldProvideMobileNumber) {\n return true\n } else return false\n }\n case 'addressLine2': {\n return false\n }\n default: {\n return true\n }\n }\n}\n\nconst mapFieldNameToType = (fieldName: FormSectionKey): InputType => {\n switch (fieldName) {\n case 'email': {\n return 'email'\n }\n case 'password': {\n return 'password'\n }\n case 'mobileNumber': {\n return 'tel'\n }\n default: {\n return 'text'\n }\n }\n}\n\nconst mapFieldNameToPlaceholder = (\n t: Translate,\n fieldName: FormSectionKey,\n shippingCountryCode?: CountryCode\n): string => {\n const copy_context = 'input_placeholders'\n const isIreland = shippingCountryCode === 'IE'\n switch (fieldName) {\n case 'name': {\n return t(`${copy_context}.name`)\n }\n case 'email': {\n return t(`${copy_context}.email`)\n }\n case 'password': {\n return t(`${copy_context}.password`)\n }\n case 'visible-password': {\n return t(`${copy_context}.visible_password`)\n }\n case 'mobileNumber': {\n return t(`${copy_context}.mobile_number`)\n }\n case 'searchTerm': {\n return isIreland\n ? t(`${copy_context}.search_term_ie`)\n : t(`${copy_context}.search_term`)\n }\n case 'addressLine1': {\n return t(`${copy_context}.address_line1`)\n }\n case 'addressLine2': {\n return t(`${copy_context}.address_line2`)\n }\n case 'city': {\n return t(`${copy_context}.city`)\n }\n case 'postcode': {\n return t(`${copy_context}.postcode`)\n }\n case 'eircode': {\n return t(`${copy_context}.eircode`)\n }\n default: {\n Sentry.captureException(`Cannot mapFieldNameToPlaceholder to fieldName`, {\n extra: {\n fieldName\n },\n tags: {\n product: Sentry.Product.Checkout\n }\n })\n return ''\n }\n }\n}\n\nconst mapFieldNameToAutocomplete = (\n fieldName: FormSectionKey\n): Autocomplete | undefined => {\n switch (fieldName) {\n case 'name': {\n return 'name'\n }\n case 'email': {\n return 'email'\n }\n case 'password': {\n return 'new-password'\n }\n case 'visible-password': {\n return 'new-password'\n }\n case 'mobileNumber': {\n return 'tel'\n }\n case 'searchTerm': {\n return undefined\n }\n case 'addressLine1': {\n return 'address-line1'\n }\n case 'addressLine2': {\n return 'address-line2'\n }\n case 'city': {\n return 'address-level2'\n }\n case 'postcode': {\n return 'postal-code'\n }\n }\n}\n\nconst fieldsWithErrors = (\n state: AppState\n): Array<FormSectionKey | 'payment-details'> => {\n const fieldNames: Array<FormSectionKey | 'payment-details'> = []\n if (validationIndicator(state.accountSectionReducer.form.name) === 'error') {\n fieldNames.push('name')\n }\n if (validationIndicator(state.accountSectionReducer.form.email) === 'error') {\n fieldNames.push('email')\n }\n if (\n validationIndicator(state.accountSectionReducer.form.password) === 'error'\n ) {\n fieldNames.push('password')\n }\n if (\n validationIndicator(state.deliveryDateSectionReducer.form.mobileNumber) ===\n 'error'\n ) {\n fieldNames.push('mobileNumber')\n }\n if (\n validationIndicator(state.deliveryAddressSectionReducer.form.searchTerm) ===\n 'error'\n ) {\n fieldNames.push('searchTerm')\n }\n if (\n validationIndicator(\n state.deliveryAddressSectionReducer.form.addressLine1\n ) === 'error'\n ) {\n fieldNames.push('addressLine1')\n }\n if (\n validationIndicator(\n state.deliveryAddressSectionReducer.form.addressLine2\n ) === 'error'\n ) {\n fieldNames.push('addressLine2')\n }\n if (\n validationIndicator(state.deliveryAddressSectionReducer.form.city) ===\n 'error'\n ) {\n fieldNames.push('city')\n }\n if (\n validationIndicator(state.deliveryAddressSectionReducer.form.postcode) ===\n 'error'\n ) {\n fieldNames.push('postcode')\n }\n if (state.paymentSectionReducer.form.card.errorMessage !== null) {\n fieldNames.push('payment-details')\n }\n return fieldNames\n}\n\nexport {\n mapFieldNameToType,\n mapFieldNameToAutocomplete,\n mapFieldNameToPlaceholder,\n fieldsWithErrors,\n isRequired,\n format,\n validate,\n validationIndicator,\n interactingState,\n removeExtraWhiteSpace,\n formatNameInput,\n addressLineLimit\n}\n\nexport type { ModalName }\n","// @noflow\nimport classnames from 'classnames'\nimport Handlebars from 'handlebars'\nimport { TOptions } from 'i18next'\nimport React from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { Markup } from 'react-render-markup'\n\nimport STYLES from './Text.module.sass'\n\ntype AllowedElements =\n | 'p'\n | 'h1'\n | 'h2'\n | 'h3'\n | 'h4'\n | 'h5'\n | 'h6'\n | 'span'\n | 'div'\n | 'li'\n\n// Note: Display variants should only be 'brandBlue500' OR 'brandWhite'\ntype AllowedColours =\n | 'brandBlue100'\n | 'brandBlue200'\n | 'brandBlue300'\n | 'brandBlue400'\n | 'brandBlue500'\n | 'brandBlue600'\n | 'brandRed300'\n | 'brandRed400'\n | 'brandRed500'\n | 'brandRed600'\n | 'brandYellow100'\n | 'brandYellow300'\n | 'brandYellow600'\n | 'brandYellow700'\n | 'brandPink200'\n | 'brandPink400'\n | 'brandPink500'\n | 'brandWhite'\n | 'supportGreen300'\n | 'supportGreen400'\n | 'supportGreen500'\n | 'supportOrange300'\n | 'supportOrange400'\n | 'supportOrange500'\n | 'dangerRed300'\n | 'dangerRed500'\n | 'supportRed300'\n | 'supportRed500'\n | 'supportBlue300'\n | 'supportBlue500'\n | 'grey400'\n | 'grey600'\n | 'grey900'\n | 'shadowBlack'\n | 'cardboardBrown'\n\ntype AllowedAlignment = 'left' | 'right' | 'center'\n\ntype Props = {\n variant?: keyof typeof STYLES\n margin?: boolean\n element?: AllowedElements\n namespace?: string\n text: string | Array<string>\n translate?: boolean\n bold?: boolean\n variables?: TOptions\n colour?: AllowedColours\n align?: AllowedAlignment\n shouldScale?: boolean\n wonky?: boolean\n underline?: boolean\n hideOverflow?: boolean\n uppercase?: boolean\n strikeThrough?: boolean\n tight?: boolean\n dataTestId?: string\n}\n\ntype InjectedTextProps = {\n children: Array<string>\n type: keyof typeof STYLES\n}\n\nconst allowedHtmlElement = ['strong', 'em', 'b', 'a', 'br', 'span', 'accent'] // strips all other elements\n\n// This allows us to add specific styling to certain word(s) in a string by\n// wrapping custom <accent> wrappers around them and declaring the style 'type'\n// with a class within the Text component stylesheet. See Storybook for examples\n// under 'With Underline'\nconst AccentText = ({ children, type }: InjectedTextProps) => {\n return <span className={STYLES[type]}>{children[0]}</span>\n}\n\nconst replace = {\n accent: AccentText\n}\n\nconst Text = ({\n variant = 'textRegular16',\n element = 'p',\n namespace = '',\n margin = true,\n text,\n translate = true,\n bold = false,\n variables = {},\n colour = 'brandBlue500',\n align,\n shouldScale = true,\n wonky = false,\n underline = false,\n hideOverflow = false,\n uppercase = false,\n strikeThrough = false,\n tight = false,\n dataTestId\n}: Props): JSX.Element => {\n const { t } = useTranslation(namespace)\n const Element = element as keyof JSX.IntrinsicElements\n const translatedText = translate\n ? t(text, variables)\n : Handlebars.compile(text)(variables)\n\n const applyRotation = (text: string) => {\n return text\n .split('')\n .map((char, index) => {\n const rotateAngle = index % 2 === 0 ? '-5' : '5'\n const minWidth = char === ' ' ? 'min-width: 4px' : ''\n\n return `<span style=\"transform: rotate(${rotateAngle}deg); display: inline-flex; ${minWidth}\">${char}</span>`\n })\n .join('')\n }\n\n const textToDisplay = wonky ? applyRotation(translatedText) : translatedText\n\n const className = classnames(STYLES.wrapper, {\n [STYLES[variant]]: variant,\n [STYLES.nomargin]: !margin,\n [STYLES.bold]: bold,\n [STYLES.underline]: underline,\n [STYLES[colour]]: colour,\n [STYLES[`${align}Align` as keyof typeof STYLES]]: align,\n [STYLES.scale]: shouldScale,\n [STYLES.hideOverflow]: hideOverflow,\n [STYLES.uppercase]: uppercase,\n [STYLES.strikeThrough]: strikeThrough,\n [STYLES.tight]: tight\n })\n\n return (\n <Element data-testid={dataTestId} className={className}>\n <Markup\n allowed={allowedHtmlElement}\n markup={textToDisplay}\n replace={replace}\n />\n </Element>\n )\n}\n\nexport { Props, AllowedColours, AllowedAlignment }\nexport default Text\n","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\nmodule.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArrayLimit(arr, i) {\n var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (null != _i) {\n var _s,\n _e,\n _x,\n _r,\n _arr = [],\n _n = !0,\n _d = !1;\n try {\n if (_x = (_i = _i.call(arr)).next, 0 === i) {\n if (Object(_i) !== _i) return;\n _n = !1;\n } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);\n } catch (err) {\n _d = !0, _e = err;\n } finally {\n try {\n if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return;\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n}\nmodule.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\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}\nmodule.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}\nmodule.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _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}\nmodule.exports = _nonIterableRest, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/*!\n * JavaScript Cookie v2.2.1\n * https://github.com/js-cookie/js-cookie\n *\n * Copyright 2006, 2015 Klaus Hartl & Fagner Brack\n * Released under the MIT license\n */\n;\n\n(function (factory) {\n var registeredInModuleLoader;\n\n if (typeof define === 'function' && define.amd) {\n define(factory);\n registeredInModuleLoader = true;\n }\n\n if (typeof exports === 'object') {\n module.exports = factory();\n registeredInModuleLoader = true;\n }\n\n if (!registeredInModuleLoader) {\n var OldCookies = window.Cookies;\n var api = window.Cookies = factory();\n\n api.noConflict = function () {\n window.Cookies = OldCookies;\n return api;\n };\n }\n})(function () {\n function extend() {\n var i = 0;\n var result = {};\n\n for (; i < arguments.length; i++) {\n var attributes = arguments[i];\n\n for (var key in attributes) {\n result[key] = attributes[key];\n }\n }\n\n return result;\n }\n\n function decode(s) {\n return s.replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent);\n }\n\n function init(converter) {\n function api() {}\n\n function set(key, value, attributes) {\n if (typeof document === 'undefined') {\n return;\n }\n\n attributes = extend({\n path: '/'\n }, api.defaults, attributes);\n\n if (typeof attributes.expires === 'number') {\n attributes.expires = new Date(new Date() * 1 + attributes.expires * 864e+5);\n } // We're using \"expires\" because \"max-age\" is not supported by IE\n\n\n attributes.expires = attributes.expires ? attributes.expires.toUTCString() : '';\n\n try {\n var result = JSON.stringify(value);\n\n if (/^[\\{\\[]/.test(result)) {\n value = result;\n }\n } catch (e) {}\n\n value = converter.write ? converter.write(value, key) : encodeURIComponent(String(value)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);\n key = encodeURIComponent(String(key)).replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent).replace(/[\\(\\)]/g, escape);\n var stringifiedAttributes = '';\n\n for (var attributeName in attributes) {\n if (!attributes[attributeName]) {\n continue;\n }\n\n stringifiedAttributes += '; ' + attributeName;\n\n if (attributes[attributeName] === true) {\n continue;\n } // Considers RFC 6265 section 5.2:\n // ...\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n // Consume the characters of the unparsed-attributes up to,\n // not including, the first %x3B (\";\") character.\n // ...\n\n\n stringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n }\n\n return document.cookie = key + '=' + value + stringifiedAttributes;\n }\n\n function get(key, json) {\n if (typeof document === 'undefined') {\n return;\n }\n\n var jar = {}; // To prevent the for loop in the first place assign an empty array\n // in case there are no cookies at all.\n\n var cookies = document.cookie ? document.cookie.split('; ') : [];\n var i = 0;\n\n for (; i < cookies.length; i++) {\n var parts = cookies[i].split('=');\n var cookie = parts.slice(1).join('=');\n\n if (!json && cookie.charAt(0) === '\"') {\n cookie = cookie.slice(1, -1);\n }\n\n try {\n var name = decode(parts[0]);\n cookie = (converter.read || converter)(cookie, name) || decode(cookie);\n\n if (json) {\n try {\n cookie = JSON.parse(cookie);\n } catch (e) {}\n }\n\n jar[name] = cookie;\n\n if (key === name) {\n break;\n }\n } catch (e) {}\n }\n\n return key ? jar[key] : jar;\n }\n\n api.set = set;\n\n api.get = function (key) {\n return get(key, false\n /* read as raw */\n );\n };\n\n api.getJSON = function (key) {\n return get(key, true\n /* read as json */\n );\n };\n\n api.remove = function (key, attributes) {\n set(key, '', extend(attributes, {\n expires: -1\n }));\n };\n\n api.defaults = {};\n api.withConverter = init;\n return api;\n }\n\n return init(function () {});\n});","// @noflow\nimport { makeVar, useReactiveVar } from '@apollo/client'\nimport React, { useEffect } from 'react'\n\nimport AgeSelect from './AgeSelect'\nimport BreedSelect from './BreedSelect'\nimport WeightSelect from './WeightSelect'\n\ntype Props = {\n breedSelectRef?: React.RefObject<HTMLDivElement>\n onBreedFocusCallback?: () => void\n fullWidth?: boolean\n}\n\ntype DogDetails = {\n age: number\n weight: string | number\n interactedWithAge: boolean\n}\n\n// Retrieve any saved dog details from localStorage if user has interacted before\nconst roughCostCalculatorLocalStorage = localStorage.getItem(\n 'rough_cost_calculator'\n)\n\nconst initialState = {\n age: 2,\n weight: 'medium_2',\n interactedWithAge: false\n}\n\nconst parsedState = roughCostCalculatorLocalStorage\n ? JSON.parse(roughCostCalculatorLocalStorage)\n : initialState\n\nconst dogDetailsState = makeVar<DogDetails>(parsedState)\n\nconst baseClass = 'rough-cost-calculator__cost-calculator'\n\nconst DogDetailsForm = ({\n breedSelectRef,\n onBreedFocusCallback,\n fullWidth = false\n}: Props): JSX.Element => {\n const dogDetails = useReactiveVar(dogDetailsState)\n\n useEffect(() => {\n localStorage.setItem('rough_cost_calculator', JSON.stringify(dogDetails))\n }, [dogDetails])\n\n return (\n <>\n <BreedSelect\n breedSelectRef={breedSelectRef}\n onFocusCallback={onBreedFocusCallback}\n />\n {fullWidth ? (\n <>\n <div className={`${baseClass}__dropdown-row`}>\n <AgeSelect />\n </div>\n <div className={`${baseClass}__dropdown-row`}>\n <WeightSelect />\n </div>\n </>\n ) : (\n <div className={`${baseClass}__dropdown-row`}>\n <AgeSelect />\n <WeightSelect />\n </div>\n )}\n </>\n )\n}\nexport default DogDetailsForm\n\nexport { dogDetailsState }\n","// @noflow\nimport { EmailValidator } from 'commons-validator-js'\nimport { isValidPhoneNumber as isValidNumber } from 'libphonenumber-js/mobile'\n\nimport type { Code as CountryCode } from '@/shared_types/rails_models/shipping_countries'\n\nimport formatter from './formatter'\n\nconst GBRegex =\n /^([A-PR-UWYZ]([0-9]{1,2}|([A-HK-Y][0-9]|[A-HK-Y][0-9]([0-9]|[ABEHMNPRV-Y]))|[0-9][A-HJKS-UW])\\s?[0-9][ABD-HJLNP-UW-Z]{2}|(GIR 0AA)|(SAN TA1)|(BFPO (C\\/O )?[0-9]{1,4})|((ASCN|BBND|[BFS]IQQ|PCRN|STHL|TDCU|TKCA) 1ZZ))$$/\nconst GBUndeliverableRegex =\n /^(BT\\d{1,2}|JE\\d{1,2}|ZE\\d{1,2}|EI\\d{1,2}|GY[1-9]|GY10|HS[1-9]|KW1[5-7]|PA4[2-9]|PA34|PA6[0-9]|PA7[0-8]|PA80|TR2[1-5])\\s*([a-zA-Z0-9]{3})$/\n\nconst NIRegex = /^BT[0-9]{1,2}[\\s]*([\\d][A-Za-z]{2})$/\n\nconst IERegex = /(?:^[AC-FHKNPRTV-Y][0-9]{2}|D6W)[ -]?[0-9AC-FHKNPRTV-Y]{4}$/\n\nconst NLRegex = /^[1-9][0-9]{3} ?(?!sa|sd|ss)[A-Za-z]{2}$/\n\nconst BRUSSELS = '10[02-9]0|108[1-3]|11[2-9]0|12[0-1]0'\nconst VLAAMS_BRABANT_1000 =\n '150[0-2]|154[017]|15[67]0|160[0-2]|16[2-4]0|165[0-4]|167[0134]|170[0-3]|173[01]|174[0-25]|175[05]|176[01]|17[79]0|178[05]|18[0248]0|18[36][01]|185[0-3]|19[157]0|193[023]|198[0-2]'\nconst VLAAMS_BRABANT_3000 =\n '300[01]|301[028]|30[2489]0|305[0-4]|306[0-1]|307[018]|311[018]|312[08]|31[345]0|319[01]|32[017][0-2]|322[01]|329[034]|33[05-7]0|332[01]|338[014]|339[01]|340[014]|3440|345[04]|346[0,1]|347[0-3]'\nconst ANTWERPEN =\n '20[02-7]0|2018|21[014-8]0|22[0569]0|222[0-3]|22[37][05]|224[023]|228[08]|23[013-79]0|232[01-38]|238[0127]|24[04-8]0|24[39][01]|25[025-9]0|253[01]|254[07]|26[013-6]0|262[07]|28[2357-9]0|28[06][01]|281[12]|284[05]|29[0-9]0'\nconst LIMBURG =\n '35[235679]0|350[01]|351[0-2]|354[05]|358[0-3]|36[0457-9]0|36[23][01]|366[058]|37[07]0|3717|372[0-4]|373[02]|374[026]|379[0-38]|380[036]|383[0-2]|38[457]0|389[01]|39[0-35689]0|394[015]|397[01]'\nconst WEST_VLAANDEREN =\n '80[02]0|8200|821[01]|830[01]|83[148]0|837[07]|84[05-9]0|842[01]|843[0-4]|85[013][01]|85[246]0|855[0-4]|857[023]|858[0-37]|86[0-35-8]0|864[07]|869[01]|87[0-46-8]0|875[05]|879[0-3]|88[0-46-9]0|885[01]|890[02468]|89[2348]0|895[0-46-8]|897[028]'\nconst OOST_VLAANDEREN =\n '90[06-9]0|90[3-5][0-2]|91[02-79]0|911[12]|(918|925)[05]|92[02-46-9]0|930[08]|93[124]0|940[0-46]|9420|(945|952|983|988|992|997)[01]|947[023]|950[06]|(993|955|957|999)[012]|96[029]0|963[06]|966[017]|(968|996)[018]|97[059]0|977[012]|98[0-24-79]0|99[0145]0|998[0-28]'\nconst WALLONIA =\n '1035|(130|146|41[478]|47[013679]|48[26]|508|510|56[25]|60[06]|611|621|644|694|704|71[489]|730|795)[01]|(133|40[34]|41[02]|443|467|48[05]|503|603|614|67[89]|697|701|732|752|781|791)[0-2]|(405|416|463|618|681|695|706|764|79[47])[0-3]|(46[58]|500|53[56]|55[0246]|604|622|646|667|703|733|76[28]|778|780)[0-4]|104[3457]|13[12][05]|134[0-28]|13[56][07]|13[789]0|140[0-24]|1410|142[018]|14[39][05]|14[48]0|145[07]|147[0-46]|40[02]0|41[39]0|421[0789]|425[02347]|426[013]|428[07]|4300|4317|(434|738)[027]|435[017]|436[07]|44[02678]0|445[0-38]|45[02469]0|45[357][07]|460[012678]|46[19]0|462[0134]|472[018]|4750|478[02-4]|483[0147]|484[015]|487[07]|48[89]0|49[0125679]0|498[037]|502[0124]|50[67]0|51[4579]0|53[0148]0|533[02346]|537[02467]|553[07]|555[05]|557[0-6]|55[89]0|56[03678]0|564[0146]|60[12]0|61[25]0|62[0458]0|623[08]|6470|6500|6511|653[0-46]|654[023]|656[07]|659[0-46]|66[04]0|663[07]|6642|666[0-36]|668[016-8]|669[028]|670[046]|6717|672[0134]|67[35]0|674[01237]|676[01279]|68[04679]0|682[0134]|683[0-468]|685[0-36]|688[07]|69[06]0|692[012479]|698[023467]|699[07]|70[057-9]0|702[0124]|71[0-2,67]0|713[013467]|73[4579]0|750[0-46]|753[0-468]|754[0238]|760[0-48]|761[018]|77[0356]0|771[12]|774[023]|782[23]|78[35789]0|786[0-46]|790[01346]'\n\nconst BERegex = new RegExp(\n `^(${BRUSSELS}|${VLAAMS_BRABANT_1000}|${VLAAMS_BRABANT_3000}|${ANTWERPEN}|${LIMBURG}|${WEST_VLAANDEREN}|${OOST_VLAANDEREN}|${WALLONIA})$`\n)\n\nconst PLRegex = /^\\d{2}-\\d{3}$/\n\nconst DERegex = /^\\d{5}$/\n\nexport default class Validator {\n static isValidPhoneNumber(phoneNumber: string): boolean {\n const supportedPhoneNumberRegions: Array<CountryCode> = [\n 'GB',\n 'IE',\n 'NL',\n 'BE',\n 'PL',\n 'DE',\n 'CZ'\n ]\n\n if (phoneNumber) {\n const trimmedNumber = phoneNumber.trim()\n const validPhoneNumber = supportedPhoneNumberRegions.some(\n (code: CountryCode): boolean => isValidNumber(trimmedNumber, code)\n )\n if (validPhoneNumber) {\n return true\n }\n return false\n }\n return false\n }\n\n static isValidEmail(email: string): boolean {\n if (email) {\n const validator = new EmailValidator()\n return validator.isValid(email)\n }\n return false\n }\n\n static isValidName(name: string): boolean {\n if (name) {\n if (name.match(/\\w+ \\w+/)) {\n return true\n } else {\n return false\n }\n }\n return false\n }\n\n static isValidPostcode(postcode: string): boolean {\n if (postcode) {\n const formattedPostcode = formatter\n .removeWhiteSpace(postcode)\n .toUpperCase()\n\n if (\n formattedPostcode.match(GBRegex) ||\n formattedPostcode.match(NIRegex) ||\n formattedPostcode.match(IERegex) ||\n formattedPostcode.match(NLRegex) ||\n formattedPostcode.match(BERegex) ||\n formattedPostcode.match(PLRegex) ||\n formattedPostcode.match(DERegex)\n ) {\n return true\n } else {\n return false\n }\n }\n return false\n }\n\n static isValidPostcodeForShippingCountry(\n postcode: string,\n shippingCountryCode: CountryCode\n ): boolean {\n if (postcode) {\n const formattedPostcode = formatter\n .removeWhiteSpace(postcode)\n .toUpperCase()\n\n if (\n (shippingCountryCode === 'GB' && formattedPostcode.match(GBRegex)) ||\n (shippingCountryCode === 'NI' && formattedPostcode.match(NIRegex)) ||\n (shippingCountryCode === 'IE' && formattedPostcode.match(IERegex)) ||\n (shippingCountryCode === 'NL' && formattedPostcode.match(NLRegex)) ||\n (shippingCountryCode === 'BE' && formattedPostcode.match(BERegex)) ||\n (shippingCountryCode === 'PL' && formattedPostcode.match(PLRegex)) ||\n (shippingCountryCode === 'DE' && formattedPostcode.match(DERegex))\n ) {\n return true\n } else {\n return false\n }\n }\n return false\n }\n\n static isBlank(text: string): boolean {\n return !/\\.*[a-zA-z0-9]+.*/.test(text)\n }\n\n static isNotBlank(text: string): boolean {\n return /\\.*[a-zA-z0-9]+.*/.test(text)\n }\n\n /**\n * Two day Postcode Validation\n * ===========================\n *\n * Note, UK Postcodes are formed from two parts:\n * 1. Outward Code (We call these prefixes below)\n * 2. Inward Code (Inward codes are always 3 characters long)\n\n * For example, for the the postcode W2 4BA:\n * 1. The outward code is W2\n * 2. The inward code is 4BA\n\n * When comparing PH15 2AA and PH1 5DQ, which both start with P15 (A two day\n * delivery postcode), we need to ensure that the inward code is 3 characters\n * long after taking away the PH15 outward code to ensure it is actually in the\n * PH15 postcode area, rather than being in the PH1 area with 5 as the first\n * character of the inward code. As a result below, we ensure that there is\n * 3 characters after the outward code when checking if a postcode is in a two\n * day delivery area.\n */\n\n static isUndeliverablePostcode(\n postcode: string,\n shippingCountryCode: CountryCode\n ): boolean {\n if (postcode && shippingCountryCode === 'GB') {\n const formattedPostcode = formatter\n .removeWhiteSpace(postcode)\n .toUpperCase()\n return !!formattedPostcode.match(GBUndeliverableRegex)\n }\n return false\n }\n\n static isTwoDayDeliveryPostcode(postcode: string): boolean {\n if (postcode) {\n const formattedPostcode = formatter\n .removeWhiteSpace(postcode)\n .toUpperCase()\n\n const twoDayPostcodePrefix = this.twoDayPostcodePrefixes().some(\n (prefix: string): boolean => {\n return formattedPostcode.startsWith(prefix)\n }\n )\n\n const twoDayPostcodeOutwardCode = this.twoDayPostcodeOutwardCodes().some(\n (prefix: string): boolean => {\n return (\n formattedPostcode.startsWith(prefix) &&\n formattedPostcode.length - prefix.length === 3\n )\n }\n )\n\n return twoDayPostcodePrefix || twoDayPostcodeOutwardCode\n }\n return false\n }\n\n static twoDayPostcodePrefixes(): Array<string> {\n return ['IM', 'IV']\n }\n\n static twoDayPostcodeOutwardCodes(): Array<string> {\n return [\n 'AB30',\n 'AB31',\n 'AB33',\n 'AB34',\n 'AB35',\n 'AB36',\n 'AB37',\n 'AB38',\n 'AB41',\n 'AB42',\n 'AB43',\n 'AB44',\n 'AB45',\n 'AB51',\n 'AB52',\n 'AB53',\n 'AB54',\n 'AB55',\n 'AB56',\n 'FK18',\n 'FK19',\n 'FK20',\n 'FK21',\n 'KA27',\n 'KA28',\n 'KW1',\n 'KW2',\n 'KW3',\n 'KW4',\n 'KW5',\n 'KW6',\n 'KW7',\n 'KW8',\n 'KW9',\n 'KW10',\n 'KW11',\n 'KW12',\n 'KW13',\n 'KW14',\n 'PA20',\n 'PA21',\n 'PA22',\n 'PA23',\n 'PA24',\n 'PA25',\n 'PA26',\n 'PA27',\n 'PA28',\n 'PA29',\n 'PA30',\n 'PA31',\n 'PA32',\n 'PA33',\n 'PA35',\n 'PA36',\n 'PA37',\n 'PA38',\n 'PA41',\n 'PH15',\n 'PH16',\n 'PH17',\n 'PH18',\n 'PH19',\n 'PH20',\n 'PH21',\n 'PH22',\n 'PH23',\n 'PH24',\n 'PH25',\n 'PH26',\n 'PH27',\n 'PH28',\n 'PH29',\n 'PH30',\n 'PH31',\n 'PH32',\n 'PH33',\n 'PH34',\n 'PH35',\n 'PH36',\n 'PH37',\n 'PH38',\n 'PH39',\n 'PH40',\n 'PH41',\n 'PH42',\n 'PH43',\n 'PH44',\n 'PH49',\n 'PH50',\n 'PO30',\n 'PO31',\n 'PO32',\n 'PO33',\n 'PO34',\n 'PO35',\n 'PO36',\n 'PO37',\n 'PO38',\n 'PO39',\n 'PO40',\n 'PO41'\n ]\n }\n\n static isPOBoxAddress(address: string): boolean {\n const formattedAddress = address.toUpperCase()\n\n if (address) {\n const matchingWords = [\n 'POSTBUS',\n 'PO BOX',\n 'P.O. BOX',\n 'B.P.',\n 'POSTFACH'\n ]\n\n return matchingWords.some((words) => formattedAddress.includes(words))\n }\n\n return false\n }\n}\n","'use strict';\n\nexports.__esModule = true;\nexports.HandlebarsEnvironment = HandlebarsEnvironment; // istanbul ignore next\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n 'default': obj\n };\n}\n\nvar _utils = require('./utils');\n\nvar _exception = require('./exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nvar _helpers = require('./helpers');\n\nvar _decorators = require('./decorators');\n\nvar _logger = require('./logger');\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _internalProtoAccess = require('./internal/proto-access');\n\nvar VERSION = '4.7.7';\nexports.VERSION = VERSION;\nvar COMPILER_REVISION = 8;\nexports.COMPILER_REVISION = COMPILER_REVISION;\nvar LAST_COMPATIBLE_COMPILER_REVISION = 7;\nexports.LAST_COMPATIBLE_COMPILER_REVISION = LAST_COMPATIBLE_COMPILER_REVISION;\nvar REVISION_CHANGES = {\n 1: '<= 1.0.rc.2',\n // 1.0.rc.2 is actually rev2 but doesn't report it\n 2: '== 1.0.0-rc.3',\n 3: '== 1.0.0-rc.4',\n 4: '== 1.x.x',\n 5: '== 2.0.0-alpha.x',\n 6: '>= 2.0.0-beta.1',\n 7: '>= 4.0.0 <4.3.0',\n 8: '>= 4.3.0'\n};\nexports.REVISION_CHANGES = REVISION_CHANGES;\nvar objectType = '[object Object]';\n\nfunction HandlebarsEnvironment(helpers, partials, decorators) {\n this.helpers = helpers || {};\n this.partials = partials || {};\n this.decorators = decorators || {};\n\n _helpers.registerDefaultHelpers(this);\n\n _decorators.registerDefaultDecorators(this);\n}\n\nHandlebarsEnvironment.prototype = {\n constructor: HandlebarsEnvironment,\n logger: _logger2['default'],\n log: _logger2['default'].log,\n registerHelper: function registerHelper(name, fn) {\n if (_utils.toString.call(name) === objectType) {\n if (fn) {\n throw new _exception2['default']('Arg not supported with multiple helpers');\n }\n\n _utils.extend(this.helpers, name);\n } else {\n this.helpers[name] = fn;\n }\n },\n unregisterHelper: function unregisterHelper(name) {\n delete this.helpers[name];\n },\n registerPartial: function registerPartial(name, partial) {\n if (_utils.toString.call(name) === objectType) {\n _utils.extend(this.partials, name);\n } else {\n if (typeof partial === 'undefined') {\n throw new _exception2['default']('Attempting to register a partial called \"' + name + '\" as undefined');\n }\n\n this.partials[name] = partial;\n }\n },\n unregisterPartial: function unregisterPartial(name) {\n delete this.partials[name];\n },\n registerDecorator: function registerDecorator(name, fn) {\n if (_utils.toString.call(name) === objectType) {\n if (fn) {\n throw new _exception2['default']('Arg not supported with multiple decorators');\n }\n\n _utils.extend(this.decorators, name);\n } else {\n this.decorators[name] = fn;\n }\n },\n unregisterDecorator: function unregisterDecorator(name) {\n delete this.decorators[name];\n },\n\n /**\n * Reset the memory of illegal property accesses that have already been logged.\n * @deprecated should only be used in handlebars test-cases\n */\n resetLoggedPropertyAccesses: function resetLoggedPropertyAccesses() {\n _internalProtoAccess.resetLoggedProperties();\n }\n};\nvar log = _logger2['default'].log;\nexports.log = log;\nexports.createFrame = _utils.createFrame;\nexports.logger = _logger2['default'];","// @noflow\nimport { differenceInSeconds } from 'date-fns'\nimport * as Cookies from 'js-cookie'\nimport React from 'react'\nimport ReactDOM from 'react-dom'\n\nimport isEqual from '@/utils/isEqual'\n\nimport CookieConsent, {\n cookieConsentBannerState,\n cookieConsentModalState\n} from '@/components/shared/CookieConsent/CookieConsent'\nimport { Variant } from '@/components/shared/CookieConsent/Modals/CookieConsentModal'\nimport {\n Component,\n Context,\n trackCookiePreferences\n} from '@/components/shared/CookieConsent/helpers'\n\nimport { Code as CountryCode } from '@/types'\n\nimport * as scroll from './scroll'\n\nenum ConsentModeValue {\n granted = 'granted',\n denied = 'denied'\n}\n\ntype CookiePreferences = {\n marketing: boolean\n analytics: boolean\n}\n\ntype BannerShown = {\n state: 'banner-shown'\n}\n\ntype Accepted = {\n state: 'accepted'\n preferences: CookiePreferences\n}\n\ntype CookieConsent = null | BannerShown | Accepted\n\ntype ConsentMode = {\n functionality_storage: ConsentModeValue\n security_storage: ConsentModeValue\n ad_storage: ConsentModeValue\n analytics_storage: ConsentModeValue\n personalization_storage: ConsentModeValue\n ad_user_data: ConsentModeValue\n ad_personalization: ConsentModeValue\n}\n\ndeclare global {\n interface Window {\n initSentry: () => void\n initSegment: (preferences: CookiePreferences) => void\n initFBPixel: () => void\n gtag: (consent: string, action: string, consentMode: ConsentMode) => void\n dataLayer: Record<string, unknown>[]\n initCookieConsent: () => void\n triggerCookieConsentModal: () => void\n }\n}\n\nconst thirdPartyCookies = {\n analyticsOnly: [\n '_ga',\n '_gid',\n '_hjid',\n '_hjIncludedInSample',\n /^amplitude_id_[0-9a-f]+$/,\n /amplitude_idundefined*/,\n 'ga_client_id'\n ],\n marketingOnly: [\n '_fbp',\n '_gat',\n '_twitter_hash',\n '_uetsid',\n 'fr',\n 'MUID',\n 'MUIDB',\n 'personalization_id'\n ],\n both: ['ajs_anonymous_id', 'ajs_group_id', 'ajs_user_id']\n}\n\nconst thirdPartyLocalStorageItems = {\n analyticsOnly: [\n '_hjid',\n /^amplitude_unsent_[0-9a-f]+$/,\n 'amplitude_unsent_identity',\n /^amplitude_unsent_identity_[0-9a-f]+$/\n ],\n marketingOnly: ['_uetsid', '_uetsid_exp', 'taboola global:user-id'],\n both: [\n 'ajs_anonymous_id',\n 'ajs_group_id',\n 'ajs_group_properties',\n 'ajs_user_id',\n 'ajs_user_traits',\n 'debug'\n ]\n}\n\nconst deleteCookies = (pattern: RegExp | string): void => {\n if (typeof pattern === 'string') {\n Cookies.remove(pattern)\n } else {\n Object.keys(Cookies.get())\n .filter((name: string): boolean => pattern.test(name))\n .forEach((name: string): void => {\n Cookies.remove(name)\n Cookies.remove(name, { path: '/', domain: window.location.host })\n Cookies.remove(name, { path: '/', domain: `.${window.location.host}` })\n })\n }\n}\n\nconst deleteLocalStorageItems = (pattern: RegExp | string): void => {\n if (typeof pattern === 'string') {\n window.localStorage.removeItem(pattern)\n } else {\n Object.keys(window.localStorage)\n .filter((name: string): boolean => pattern.test(name))\n .forEach((name: string): void => window.localStorage.removeItem(name))\n }\n}\n\nconst initMarketingCookies = () => {\n if (window.initFBPixel) {\n window.initFBPixel()\n }\n}\n\nconst removeMarketingCookies = () => {\n thirdPartyCookies.marketingOnly.forEach(deleteCookies)\n thirdPartyLocalStorageItems.marketingOnly.forEach(deleteLocalStorageItems)\n}\n\nconst initAnalyticsCookies = ({ analytics, marketing }: CookiePreferences) => {\n if (window.initSentry) {\n window.initSentry()\n }\n\n if (window.initSegment) {\n window.initSegment({ analytics, marketing })\n }\n}\n\nconst removeAnalyticsCookies = () => {\n thirdPartyCookies.analyticsOnly.forEach(deleteCookies)\n thirdPartyLocalStorageItems.analyticsOnly.forEach(deleteLocalStorageItems)\n}\n\nconst removeBothCookies = () => {\n thirdPartyCookies.both.forEach(deleteCookies)\n thirdPartyLocalStorageItems.both.forEach(deleteLocalStorageItems)\n}\n\nconst updateConsentMode = ({ analytics, marketing }: CookiePreferences) => {\n const consentMode = {\n functionality_storage: analytics\n ? ConsentModeValue.granted\n : ConsentModeValue.denied,\n security_storage: analytics\n ? ConsentModeValue.granted\n : ConsentModeValue.denied,\n ad_storage: marketing ? ConsentModeValue.granted : ConsentModeValue.denied,\n analytics_storage: analytics\n ? ConsentModeValue.granted\n : ConsentModeValue.denied,\n personalization_storage: marketing\n ? ConsentModeValue.granted\n : ConsentModeValue.denied,\n ad_user_data: marketing\n ? ConsentModeValue.granted\n : ConsentModeValue.denied,\n ad_personalization: marketing\n ? ConsentModeValue.granted\n : ConsentModeValue.denied\n }\n\n window.gtag('consent', 'update', consentMode)\n localStorage.setItem('consentMode', JSON.stringify(consentMode))\n // This event is sent so that GTM can trigger tags after a user has consented\n // It is set on a delay such that we make sure consent is properly set in GTM\n setTimeout((): void => {\n window.dataLayer.push({ event: 'consentUpdated' })\n }, 100)\n}\n\nconst cookieConsentBannerElement = document.getElementById('cookies-banner')\n\nconst cookieConsentLocalStorageItem = () =>\n window.localStorage.getItem('cookieConsent')\n\nconst initCookieConsent = (): void => {\n if (!cookieConsentBannerElement) return\n\n const shippingCountryCode = Cookies.get('user_country_code')\n\n const variant =\n shippingCountryCode === CountryCode.DE ? Variant.Strict : Variant.Default\n\n const cookieConsentLocalStorateItem = cookieConsentLocalStorageItem()\n const consent: CookieConsent | null = cookieConsentLocalStorateItem\n ? JSON.parse(cookieConsentLocalStorateItem)\n : null\n\n const consentAccepted = consent?.state === 'accepted'\n\n if (!consent) {\n window.localStorage.setItem(\n 'cookieConsent',\n JSON.stringify({\n state: 'banner-shown'\n })\n )\n }\n\n const applyPreferences = (preferences: CookiePreferences): void => {\n const previousConsentLocalStorageItem = cookieConsentLocalStorageItem()\n const previousConsent: CookieConsent | null =\n previousConsentLocalStorageItem\n ? JSON.parse(previousConsentLocalStorageItem)\n : null\n\n if (!preferences.analytics && !preferences.marketing) {\n window.analytics = {\n /* eslint-disable @typescript-eslint/no-empty-function */\n track: (): void => {},\n identify: (): void => {},\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n ready: (): void => {},\n page: (): void => {}\n /* eslint-enable @typescript-eslint/no-empty-function */\n }\n removeBothCookies()\n }\n\n // If you haven't already got a previous level of consent - set one according\n // to your preferences\n if (!previousConsent || previousConsent.state === 'banner-shown') {\n // If a new user scrolls past the threshold, Accepted preferences are automatically applied.\n // This guard prevents the preferences from being applied twice if they interact with the\n // banner and the previousConsent object in localStorage hasn't been set yet.\n if (window.localStorage.getItem('consentMode') != null) return\n\n return (\n initAnalyticsCookies(preferences),\n initMarketingCookies(),\n updateConsentMode(preferences)\n )\n }\n\n // If you do have a previous level of consent set in localStorage\n if (previousConsent) {\n // If your analytics preferences have changed from negative to positive\n if (!previousConsent.preferences.analytics && preferences.analytics) {\n initAnalyticsCookies(preferences)\n } else if (\n // If your analytics preferences have changed from positive to negative\n previousConsent.preferences.analytics &&\n !preferences.analytics\n ) {\n removeAnalyticsCookies()\n }\n\n // If your marketing preferences have changed from negative to positive\n if (!previousConsent.preferences.marketing && preferences.marketing) {\n initMarketingCookies()\n } else if (\n // If your marketing preferences have changed from positive to negative\n previousConsent.preferences.marketing &&\n !preferences.marketing\n ) {\n removeMarketingCookies()\n }\n\n // If your previous preferences are different from your current preferences\n if (!isEqual(previousConsent.preferences, preferences)) {\n updateConsentMode(preferences)\n }\n }\n }\n\n if (Variant.Default && !consent) {\n const startTime = new Date()\n scroll.checkPixelIntersection((): void => {\n const endTime = new Date()\n if (differenceInSeconds(endTime, startTime) < 5) {\n trackCookiePreferences({\n preferences: { marketing: true, analytics: true },\n variant,\n component: Component.Null,\n context: Context.Scrolled\n })\n }\n applyPreferences({ marketing: true, analytics: true })\n })\n }\n\n ReactDOM.render(\n // eslint-disable-next-line react/jsx-no-bind\n <CookieConsent variant={variant} applyPreferences={applyPreferences} />,\n cookieConsentBannerElement\n )\n\n if (!consentAccepted) {\n switch (variant) {\n case Variant.Strict:\n cookieConsentModalState({ visible: true })\n break\n default:\n cookieConsentBannerState({ visible: true })\n }\n }\n}\n\nconst triggerCookieConsentModal = (): void => {\n cookieConsentModalState({ visible: true })\n}\n\nwindow.initCookieConsent = initCookieConsent\nwindow.triggerCookieConsentModal = triggerCookieConsentModal\n\nexport { initCookieConsent, triggerCookieConsentModal }\n\nexport type { CookieConsent, CookiePreferences, Accepted }\n","// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\nconst isEqual = (value: any, other: any): boolean => {\n if (value === other) {\n return true\n }\n\n if (\n value == null ||\n other == null ||\n typeof value !== 'object' ||\n typeof other !== 'object'\n ) {\n return false\n }\n\n const keysA = Object.keys(value)\n const keysB = Object.keys(other)\n\n if (keysA.length !== keysB.length) {\n return false\n }\n\n for (const key of keysA) {\n if (!keysB.includes(key) || !isEqual(value[key], other[key])) {\n return false\n }\n }\n\n return true\n}\n\nexport default isEqual\n","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name differenceInMilliseconds\n * @category Millisecond Helpers\n * @summary Get the number of milliseconds between the given dates.\n *\n * @description\n * Get the number of milliseconds between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of milliseconds\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many milliseconds are between\n * // 2 July 2014 12:30:20.600 and 2 July 2014 12:30:21.700?\n * const result = differenceInMilliseconds(\n * new Date(2014, 6, 2, 12, 30, 21, 700),\n * new Date(2014, 6, 2, 12, 30, 20, 600)\n * )\n * //=> 1100\n */\n\nexport default function differenceInMilliseconds(dateLeft, dateRight) {\n requiredArgs(2, arguments);\n return toDate(dateLeft).getTime() - toDate(dateRight).getTime();\n}","var roundingMap = {\n ceil: Math.ceil,\n round: Math.round,\n floor: Math.floor,\n trunc: function trunc(value) {\n return value < 0 ? Math.ceil(value) : Math.floor(value);\n } // Math.trunc is not supported by IE\n\n};\nvar defaultRoundingMethod = 'trunc';\nexport function getRoundingMethod(method) {\n return method ? roundingMap[method] : roundingMap[defaultRoundingMethod];\n}","function declensionGroup(scheme, count) {\n if (count === 1) {\n return scheme.one;\n }\n\n var rem100 = count % 100; // ends with 11-20\n\n if (rem100 <= 20 && rem100 > 10) {\n return scheme.other;\n }\n\n var rem10 = rem100 % 10; // ends with 2, 3, 4\n\n if (rem10 >= 2 && rem10 <= 4) {\n return scheme.twoFour;\n }\n\n return scheme.other;\n}\n\nfunction declension(scheme, count, time) {\n time = time || 'regular';\n var group = declensionGroup(scheme, count);\n var finalText = group[time] || group;\n return finalText.replace('{{count}}', count);\n}\n\nvar formatDistanceLocale = {\n lessThanXSeconds: {\n one: {\n regular: 'mniej niż sekunda',\n past: 'mniej niż sekundÄ™',\n future: 'mniej niż sekundÄ™'\n },\n twoFour: 'mniej niż {{count}} sekundy',\n other: 'mniej niż {{count}} sekund'\n },\n xSeconds: {\n one: {\n regular: 'sekunda',\n past: 'sekundÄ™',\n future: 'sekundÄ™'\n },\n twoFour: '{{count}} sekundy',\n other: '{{count}} sekund'\n },\n halfAMinute: {\n one: 'pół minuty',\n twoFour: 'pół minuty',\n other: 'pół minuty'\n },\n lessThanXMinutes: {\n one: {\n regular: 'mniej niż minuta',\n past: 'mniej niż minutÄ™',\n future: 'mniej niż minutÄ™'\n },\n twoFour: 'mniej niż {{count}} minuty',\n other: 'mniej niż {{count}} minut'\n },\n xMinutes: {\n one: {\n regular: 'minuta',\n past: 'minutÄ™',\n future: 'minutÄ™'\n },\n twoFour: '{{count}} minuty',\n other: '{{count}} minut'\n },\n aboutXHours: {\n one: {\n regular: 'okoÅ‚o godziny',\n past: 'okoÅ‚o godziny',\n future: 'okoÅ‚o godzinÄ™'\n },\n twoFour: 'okoÅ‚o {{count}} godziny',\n other: 'okoÅ‚o {{count}} godzin'\n },\n xHours: {\n one: {\n regular: 'godzina',\n past: 'godzinÄ™',\n future: 'godzinÄ™'\n },\n twoFour: '{{count}} godziny',\n other: '{{count}} godzin'\n },\n xDays: {\n one: {\n regular: 'dzieÅ„',\n past: 'dzieÅ„',\n future: '1 dzieÅ„'\n },\n twoFour: '{{count}} dni',\n other: '{{count}} dni'\n },\n aboutXWeeks: {\n one: 'okoÅ‚o tygodnia',\n twoFour: 'okoÅ‚o {{count}} tygodni',\n other: 'okoÅ‚o {{count}} tygodni'\n },\n xWeeks: {\n one: 'tydzieÅ„',\n twoFour: '{{count}} tygodnie',\n other: '{{count}} tygodni'\n },\n aboutXMonths: {\n one: 'okoÅ‚o miesiÄ…c',\n twoFour: 'okoÅ‚o {{count}} miesiÄ…ce',\n other: 'okoÅ‚o {{count}} miesiÄ™cy'\n },\n xMonths: {\n one: 'miesiÄ…c',\n twoFour: '{{count}} miesiÄ…ce',\n other: '{{count}} miesiÄ™cy'\n },\n aboutXYears: {\n one: 'okoÅ‚o rok',\n twoFour: 'okoÅ‚o {{count}} lata',\n other: 'okoÅ‚o {{count}} lat'\n },\n xYears: {\n one: 'rok',\n twoFour: '{{count}} lata',\n other: '{{count}} lat'\n },\n overXYears: {\n one: 'ponad rok',\n twoFour: 'ponad {{count}} lata',\n other: 'ponad {{count}} lat'\n },\n almostXYears: {\n one: 'prawie rok',\n twoFour: 'prawie {{count}} lata',\n other: 'prawie {{count}} lat'\n }\n};\nexport default function formatDistance(token, count, options) {\n options = options || {};\n var scheme = formatDistanceLocale[token];\n\n if (!options.addSuffix) {\n return declension(scheme, count);\n }\n\n if (options.comparison > 0) {\n return 'za ' + declension(scheme, count, 'future');\n } else {\n return declension(scheme, count, 'past') + ' temu';\n }\n}","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE, do MMMM y',\n long: 'do MMMM y',\n medium: 'do MMM y',\n short: 'dd.MM.y'\n};\nvar timeFormats = {\n full: 'HH:mm:ss zzzz',\n long: 'HH:mm:ss z',\n medium: 'HH:mm:ss',\n short: 'HH:mm'\n};\nvar dateTimeFormats = {\n full: '{{date}} {{time}}',\n long: '{{date}} {{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;","import isSameUTCWeek from \"../../../../_lib/isSameUTCWeek/index.js\";\nvar adjectivesLastWeek = {\n masculine: 'ostatni',\n feminine: 'ostatnia'\n};\nvar adjectivesThisWeek = {\n masculine: 'ten',\n feminine: 'ta'\n};\nvar adjectivesNextWeek = {\n masculine: 'nastÄ™pny',\n feminine: 'nastÄ™pna'\n};\nvar dayGrammaticalGender = {\n 0: 'feminine',\n 1: 'masculine',\n 2: 'masculine',\n 3: 'feminine',\n 4: 'masculine',\n 5: 'masculine',\n 6: 'feminine'\n};\n\nfunction getAdjectives(token, date, baseDate, options) {\n if (isSameUTCWeek(date, baseDate, options)) {\n return adjectivesThisWeek;\n } else if (token === 'lastWeek') {\n return adjectivesLastWeek;\n } else if (token === 'nextWeek') {\n return adjectivesNextWeek;\n } else {\n throw new Error(\"Cannot determine adjectives for token \".concat(token));\n }\n}\n\nfunction getAdjective(token, date, baseDate, options) {\n var day = date.getUTCDay();\n var adjectives = getAdjectives(token, date, baseDate, options);\n var grammaticalGender = dayGrammaticalGender[day];\n return adjectives[grammaticalGender];\n}\n\nfunction dayAndTimeWithAdjective(token, date, baseDate, options) {\n var adjective = getAdjective(token, date, baseDate, options);\n return \"'\".concat(adjective, \"' eeee 'o' p\");\n}\n\nvar formatRelativeLocale = {\n lastWeek: dayAndTimeWithAdjective,\n yesterday: \"'wczoraj o' p\",\n today: \"'dzisiaj o' p\",\n tomorrow: \"'jutro o' p\",\n nextWeek: dayAndTimeWithAdjective,\n other: 'P'\n};\nexport default function formatRelative(token, date, baseDate, options) {\n var format = formatRelativeLocale[token];\n\n if (typeof format === 'function') {\n return format(token, date, baseDate, options);\n }\n\n return format;\n}","import startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function isSameUTCWeek(dirtyDateLeft, dirtyDateRight, options) {\n requiredArgs(2, arguments);\n var dateLeftStartOfWeek = startOfUTCWeek(dirtyDateLeft, options);\n var dateRightStartOfWeek = startOfUTCWeek(dirtyDateRight, options);\n return dateLeftStartOfWeek.getTime() === dateRightStartOfWeek.getTime();\n}","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\n\nfunction ordinalNumber(dirtyNumber) {\n var number = Number(dirtyNumber);\n return String(number);\n}\n\nvar eraValues = {\n narrow: ['p.n.e.', 'n.e.'],\n abbreviated: ['p.n.e.', 'n.e.'],\n wide: ['przed naszÄ… erÄ…', 'naszej ery']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['I kw.', 'II kw.', 'III kw.', 'IV kw.'],\n wide: ['I kwartaÅ‚', 'II kwartaÅ‚', 'III kwartaÅ‚', 'IV kwartaÅ‚']\n};\nvar monthValues = {\n narrow: ['S', 'L', 'M', 'K', 'M', 'C', 'L', 'S', 'W', 'P', 'L', 'G'],\n abbreviated: ['sty', 'lut', 'mar', 'kwi', 'maj', 'cze', 'lip', 'sie', 'wrz', 'paź', 'lis', 'gru'],\n wide: ['styczeÅ„', 'luty', 'marzec', 'kwiecieÅ„', 'maj', 'czerwiec', 'lipiec', 'sierpieÅ„', 'wrzesieÅ„', 'październik', 'listopad', 'grudzieÅ„']\n};\nvar monthFormattingValues = {\n narrow: ['s', 'l', 'm', 'k', 'm', 'c', 'l', 's', 'w', 'p', 'l', 'g'],\n abbreviated: ['sty', 'lut', 'mar', 'kwi', 'maj', 'cze', 'lip', 'sie', 'wrz', 'paź', 'lis', 'gru'],\n wide: ['stycznia', 'lutego', 'marca', 'kwietnia', 'maja', 'czerwca', 'lipca', 'sierpnia', 'wrzeÅ›nia', 'października', 'listopada', 'grudnia']\n};\nvar dayValues = {\n narrow: ['N', 'P', 'W', 'Åš', 'C', 'P', 'S'],\n short: ['nie', 'pon', 'wto', 'Å›ro', 'czw', 'piÄ…', 'sob'],\n abbreviated: ['niedz.', 'pon.', 'wt.', 'Å›r.', 'czw.', 'pt.', 'sob.'],\n wide: ['niedziela', 'poniedziaÅ‚ek', 'wtorek', 'Å›roda', 'czwartek', 'piÄ…tek', 'sobota']\n};\nvar dayFormattingValues = {\n narrow: ['n', 'p', 'w', 'Å›', 'c', 'p', 's'],\n short: ['nie', 'pon', 'wto', 'Å›ro', 'czw', 'piÄ…', 'sob'],\n abbreviated: ['niedz.', 'pon.', 'wt.', 'Å›r.', 'czw.', 'pt.', 'sob.'],\n wide: ['niedziela', 'poniedziaÅ‚ek', 'wtorek', 'Å›roda', 'czwartek', 'piÄ…tek', 'sobota']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'półn.',\n noon: 'poÅ‚',\n morning: 'rano',\n afternoon: 'popoÅ‚.',\n evening: 'wiecz.',\n night: 'noc'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'północ',\n noon: 'poÅ‚udnie',\n morning: 'rano',\n afternoon: 'popoÅ‚udnie',\n evening: 'wieczór',\n night: 'noc'\n },\n wide: {\n am: 'AM',\n pm: 'PM',\n midnight: 'północ',\n noon: 'poÅ‚udnie',\n morning: 'rano',\n afternoon: 'popoÅ‚udnie',\n evening: 'wieczór',\n night: 'noc'\n }\n};\nvar dayPeriodFormattingValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'o półn.',\n noon: 'w poÅ‚.',\n morning: 'rano',\n afternoon: 'po poÅ‚.',\n evening: 'wiecz.',\n night: 'w nocy'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'o północy',\n noon: 'w poÅ‚udnie',\n morning: 'rano',\n afternoon: 'po poÅ‚udniu',\n evening: 'wieczorem',\n night: 'w nocy'\n },\n wide: {\n am: 'AM',\n pm: 'PM',\n midnight: 'o północy',\n noon: 'w poÅ‚udnie',\n morning: 'rano',\n afternoon: 'po poÅ‚udniu',\n evening: 'wieczorem',\n night: 'w nocy'\n }\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 Number(quarter) - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide',\n formattingValues: monthFormattingValues,\n defaultFormattingWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide',\n formattingValues: dayFormattingValues,\n defaultFormattingWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: dayPeriodFormattingValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","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 Polish locale.\n * @language Polish\n * @iso-639-2 pol\n * @author Mateusz Derks [@ertrzyiks]{@link https://github.com/ertrzyiks}\n * @author Just RAG [@justrag]{@link https://github.com/justrag}\n * @author Mikolaj Grzyb [@mikolajgrzyb]{@link https://github.com/mikolajgrzyb}\n * @author Mateusz Tokarski [@mutisz]{@link https://github.com/mutisz}\n */\n\nvar locale = {\n code: 'pl',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 4\n }\n};\nexport default locale;","import buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nimport buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(p\\.?\\s*n\\.?\\s*e\\.?\\s*|n\\.?\\s*e\\.?\\s*)/i,\n abbreviated: /^(p\\.?\\s*n\\.?\\s*e\\.?\\s*|n\\.?\\s*e\\.?\\s*)/i,\n wide: /^(przed\\s*nasz(Ä…|a)\\s*er(Ä…|a)|naszej\\s*ery)/i\n};\nvar parseEraPatterns = {\n any: [/^p/i, /^n/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^(I|II|III|IV)\\s*kw\\.?/i,\n wide: /^(I|II|III|IV)\\s*kwarta(Å‚|l)/i\n};\nvar parseQuarterPatterns = {\n narrow: [/1/i, /2/i, /3/i, /4/i],\n any: [/^I kw/i, /^II kw/i, /^III kw/i, /^IV kw/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[slmkcwpg]/i,\n abbreviated: /^(sty|lut|mar|kwi|maj|cze|lip|sie|wrz|pa(ź|z)|lis|gru)/i,\n wide: /^(stycznia|stycze(Å„|n)|lutego|luty|marca|marzec|kwietnia|kwiecie(Å„|n)|maja|maj|czerwca|czerwiec|lipca|lipiec|sierpnia|sierpie(Å„|n)|wrze(Å›|s)nia|wrzesie(Å„|n)|pa(ź|z)dziernika|pa(ź|z)dziernik|listopada|listopad|grudnia|grudzie(Å„|n))/i\n};\nvar parseMonthPatterns = {\n narrow: [/^s/i, /^l/i, /^m/i, /^k/i, /^m/i, /^c/i, /^l/i, /^s/i, /^w/i, /^p/i, /^l/i, /^g/i],\n any: [/^st/i, /^lu/i, /^mar/i, /^k/i, /^maj/i, /^c/i, /^lip/i, /^si/i, /^w/i, /^p/i, /^lis/i, /^g/i]\n};\nvar matchDayPatterns = {\n narrow: /^[npwÅ›cs]/i,\n short: /^(nie|pon|wto|(Å›|s)ro|czw|pi(Ä…|a)|sob)/i,\n abbreviated: /^(niedz|pon|wt|(Å›|s)r|czw|pt|sob)\\.?/i,\n wide: /^(niedziela|poniedzia(Å‚|l)ek|wtorek|(Å›|s)roda|czwartek|pi(Ä…|a)tek|sobota)/i\n};\nvar parseDayPatterns = {\n narrow: [/^n/i, /^p/i, /^w/i, /^Å›/i, /^c/i, /^p/i, /^s/i],\n abbreviated: [/^n/i, /^po/i, /^w/i, /^(Å›|s)r/i, /^c/i, /^pt/i, /^so/i],\n any: [/^n/i, /^po/i, /^w/i, /^(Å›|s)r/i, /^c/i, /^pi/i, /^so/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(^a$|^p$|pó(Å‚|l)n\\.?|o\\s*pó(Å‚|l)n\\.?|po(Å‚|l)\\.?|w\\s*po(Å‚|l)\\.?|po\\s*po(Å‚|l)\\.?|rano|wiecz\\.?|noc|w\\s*nocy)/i,\n any: /^(am|pm|pó(Å‚|l)noc|o\\s*pó(Å‚|l)nocy|po(Å‚|l)udnie|w\\s*po(Å‚|l)udnie|popo(Å‚|l)udnie|po\\s*po(Å‚|l)udniu|rano|wieczór|wieczorem|noc|w\\s*nocy)/i\n};\nvar parseDayPeriodPatterns = {\n narrow: {\n am: /^a$/i,\n pm: /^p$/i,\n midnight: /pó(Å‚|l)n/i,\n noon: /po(Å‚|l)/i,\n morning: /rano/i,\n afternoon: /po\\s*po(Å‚|l)/i,\n evening: /wiecz/i,\n night: /noc/i\n },\n any: {\n am: /^am/i,\n pm: /^pm/i,\n midnight: /pó(Å‚|l)n/i,\n noon: /po(Å‚|l)/i,\n morning: /rano/i,\n afternoon: /po\\s*po(Å‚|l)/i,\n evening: /wiecz/i,\n night: /noc/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;","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'minder dan een seconde',\n other: 'minder dan {{count}} seconden'\n },\n xSeconds: {\n one: '1 seconde',\n other: '{{count}} seconden'\n },\n halfAMinute: 'een halve minuut',\n lessThanXMinutes: {\n one: 'minder dan een minuut',\n other: 'minder dan {{count}} minuten'\n },\n xMinutes: {\n one: 'een minuut',\n other: '{{count}} minuten'\n },\n aboutXHours: {\n one: 'ongeveer 1 uur',\n other: 'ongeveer {{count}} uur'\n },\n xHours: {\n one: '1 uur',\n other: '{{count}} uur'\n },\n xDays: {\n one: '1 dag',\n other: '{{count}} dagen'\n },\n aboutXWeeks: {\n one: 'ongeveer 1 week',\n other: 'ongeveer {{count}} weken'\n },\n xWeeks: {\n one: '1 week',\n other: '{{count}} weken'\n },\n aboutXMonths: {\n one: 'ongeveer 1 maand',\n other: 'ongeveer {{count}} maanden'\n },\n xMonths: {\n one: '1 maand',\n other: '{{count}} maanden'\n },\n aboutXYears: {\n one: 'ongeveer 1 jaar',\n other: 'ongeveer {{count}} jaar'\n },\n xYears: {\n one: '1 jaar',\n other: '{{count}} jaar'\n },\n overXYears: {\n one: 'meer dan 1 jaar',\n other: 'meer dan {{count}} jaar'\n },\n almostXYears: {\n one: 'bijna 1 jaar',\n other: 'bijna {{count}} jaar'\n }\n};\nexport default function formatDistance(token, count, options) {\n options = options || {};\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n result = formatDistanceLocale[token].one;\n } else {\n result = formatDistanceLocale[token].other.replace('{{count}}', count);\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'over ' + result;\n } else {\n return result + ' geleden';\n }\n }\n\n return result;\n}","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE d MMMM y',\n long: 'd MMMM y',\n medium: 'd MMM y',\n short: 'dd-MM-y'\n};\nvar timeFormats = {\n full: 'HH:mm:ss zzzz',\n long: 'HH:mm:ss z',\n medium: 'HH:mm:ss',\n short: 'HH:mm'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'om' {{time}}\",\n long: \"{{date}} 'om' {{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: \"'afgelopen' eeee 'om' p\",\n yesterday: \"'gisteren om' p\",\n today: \"'vandaag om' p\",\n tomorrow: \"'morgen om' p\",\n nextWeek: \"eeee 'om' p\",\n other: 'P'\n};\nexport default function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n}","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['v.C.', 'n.C.'],\n abbreviated: ['v.Chr.', 'n.Chr.'],\n wide: ['voor Christus', 'na Christus']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['K1', 'K2', 'K3', 'K4'],\n wide: ['1e kwartaal', '2e kwartaal', '3e kwartaal', '4e kwartaal']\n};\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['jan.', 'feb.', 'mrt.', 'apr.', 'mei', 'jun.', 'jul.', 'aug.', 'sep.', 'okt.', 'nov.', 'dec.'],\n wide: ['januari', 'februari', 'maart', 'april', 'mei', 'juni', 'juli', 'augustus', 'september', 'oktober', 'november', 'december']\n};\nvar dayValues = {\n narrow: ['Z', 'M', 'D', 'W', 'D', 'V', 'Z'],\n short: ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'],\n abbreviated: ['zon', 'maa', 'din', 'woe', 'don', 'vri', 'zat'],\n wide: ['zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'AM',\n pm: 'PM',\n midnight: 'middernacht',\n noon: 'het middaguur',\n morning: \"'s ochtends\",\n afternoon: \"'s middags\",\n evening: \"'s avonds\",\n night: \"'s nachts\"\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'middernacht',\n noon: 'het middaguur',\n morning: \"'s ochtends\",\n afternoon: \"'s middags\",\n evening: \"'s avonds\",\n night: \"'s nachts\"\n },\n wide: {\n am: 'AM',\n pm: 'PM',\n midnight: 'middernacht',\n noon: 'het middaguur',\n morning: \"'s ochtends\",\n afternoon: \"'s middags\",\n evening: \"'s avonds\",\n night: \"'s nachts\"\n }\n};\n\nfunction ordinalNumber(dirtyNumber) {\n var number = Number(dirtyNumber);\n return number + 'e';\n}\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 Number(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 })\n};\nexport default localize;","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 Dutch locale.\n * @language Dutch\n * @iso-639-2 nld\n * @author Jorik Tangelder [@jtangelder]{@link https://github.com/jtangelder}\n * @author Ruben Stolk [@rubenstolk]{@link https://github.com/rubenstolk}\n * @author Lode Vanhove [@bitcrumb]{@link https://github.com/bitcrumb}\n * @author Edo Rivai [@edorivai]{@link https://github.com/edorivai}\n * @author Niels Keurentjes [@curry684]{@link https://github.com/curry684}\n * @author Stefan Vermaas [@stefanvermaas]{@link https://github.com/stefanvermaas}\n */\n\nvar locale = {\n code: 'nl',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 4\n }\n};\nexport default locale;","import buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nimport buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)e?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^([vn]\\.? ?C\\.?)/,\n abbreviated: /^([vn]\\. ?Chr\\.?)/,\n wide: /^((voor|na) Christus)/\n};\nvar parseEraPatterns = {\n any: [/^v/, /^n/]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^K[1234]/i,\n wide: /^[1234]e kwartaal/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.|mrt.|apr.|mei|jun.|jul.|aug.|sep.|okt.|nov.|dec.)/i,\n wide: /^(januari|februari|maart|april|mei|juni|juli|augustus|september|oktober|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: [/^jan/i, /^feb/i, /^m(r|a)/i, /^apr/i, /^mei/i, /^jun/i, /^jul/i, /^aug/i, /^sep/i, /^okt/i, /^nov/i, /^dec/i]\n};\nvar matchDayPatterns = {\n narrow: /^[zmdwv]/i,\n short: /^(zo|ma|di|wo|do|vr|za)/i,\n abbreviated: /^(zon|maa|din|woe|don|vri|zat)/i,\n wide: /^(zondag|maandag|dinsdag|woensdag|donderdag|vrijdag|zaterdag)/i\n};\nvar parseDayPatterns = {\n narrow: [/^z/i, /^m/i, /^d/i, /^w/i, /^d/i, /^v/i, /^z/i],\n any: [/^zo/i, /^ma/i, /^di/i, /^wo/i, /^do/i, /^vr/i, /^za/i]\n};\nvar matchDayPeriodPatterns = {\n any: /^(am|pm|middernacht|het middaguur|'s (ochtends|middags|avonds|nachts))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^am/i,\n pm: /^pm/i,\n midnight: /^middernacht/i,\n noon: /^het middaguur/i,\n morning: /ochtend/i,\n afternoon: /middag/i,\n evening: /avond/i,\n night: /nacht/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;","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'minder dan een seconde',\n other: 'minder dan {{count}} seconden'\n },\n xSeconds: {\n one: '1 seconde',\n other: '{{count}} seconden'\n },\n halfAMinute: 'een halve minuut',\n lessThanXMinutes: {\n one: 'minder dan een minuut',\n other: 'minder dan {{count}} minuten'\n },\n xMinutes: {\n one: 'een minuut',\n other: '{{count}} minuten'\n },\n aboutXHours: {\n one: 'ongeveer 1 uur',\n other: 'ongeveer {{count}} uur'\n },\n xHours: {\n one: '1 uur',\n other: '{{count}} uur'\n },\n xDays: {\n one: '1 dag',\n other: '{{count}} dagen'\n },\n aboutXWeeks: {\n one: 'ongeveer 1 week',\n other: 'ongeveer {{count}} weken'\n },\n xWeeks: {\n one: '1 week',\n other: '{{count}} weken'\n },\n aboutXMonths: {\n one: 'ongeveer 1 maand',\n other: 'ongeveer {{count}} maanden'\n },\n xMonths: {\n one: '1 maand',\n other: '{{count}} maanden'\n },\n aboutXYears: {\n one: 'ongeveer 1 jaar',\n other: 'ongeveer {{count}} jaar'\n },\n xYears: {\n one: '1 jaar',\n other: '{{count}} jaar'\n },\n overXYears: {\n one: 'meer dan 1 jaar',\n other: 'meer dan {{count}} jaar'\n },\n almostXYears: {\n one: 'bijna 1 jaar',\n other: 'bijna {{count}} jaar'\n }\n};\nexport default function formatDistance(token, count, options) {\n options = options || {};\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n result = formatDistanceLocale[token].one;\n } else {\n result = formatDistanceLocale[token].other.replace('{{count}}', count);\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'over ' + result;\n } else {\n return result + ' geleden';\n }\n }\n\n return result;\n}","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE d MMMM y',\n long: 'd MMMM y',\n medium: 'd MMM y',\n short: 'dd.MM.y'\n};\nvar timeFormats = {\n full: 'HH:mm:ss zzzz',\n long: 'HH:mm:ss z',\n medium: 'HH:mm:ss',\n short: 'HH:mm'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'om' {{time}}\",\n long: \"{{date}} 'om' {{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: \"'vorige' eeee 'om' p\",\n yesterday: \"'gisteren om' p\",\n today: \"'vandaag om' p\",\n tomorrow: \"'morgen om' p\",\n nextWeek: \"eeee 'om' p\",\n other: 'P'\n};\nexport default function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n}","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['v.C.', 'n.C.'],\n abbreviated: ['v.Chr.', 'n.Chr.'],\n wide: ['voor Christus', 'na Christus']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['K1', 'K2', 'K3', 'K4'],\n wide: ['1e kwartaal', '2e kwartaal', '3e kwartaal', '4e kwartaal']\n};\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['jan.', 'feb.', 'mrt.', 'apr.', 'mei', 'jun.', 'jul.', 'aug.', 'sep.', 'okt.', 'nov.', 'dec.'],\n wide: ['januari', 'februari', 'maart', 'april', 'mei', 'juni', 'juli', 'augustus', 'september', 'oktober', 'november', 'december']\n};\nvar dayValues = {\n narrow: ['Z', 'M', 'D', 'W', 'D', 'V', 'Z'],\n short: ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'],\n abbreviated: ['zon', 'maa', 'din', 'woe', 'don', 'vri', 'zat'],\n wide: ['zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'AM',\n pm: 'PM',\n midnight: 'middernacht',\n noon: 'het middag',\n morning: \"'s ochtends\",\n afternoon: \"'s namiddags\",\n evening: \"'s avonds\",\n night: \"'s nachts\"\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'middernacht',\n noon: 'het middag',\n morning: \"'s ochtends\",\n afternoon: \"'s namiddags\",\n evening: \"'s avonds\",\n night: \"'s nachts\"\n },\n wide: {\n am: 'AM',\n pm: 'PM',\n midnight: 'middernacht',\n noon: 'het middag',\n morning: \"'s ochtends\",\n afternoon: \"'s namiddags\",\n evening: \"'s avonds\",\n night: \"'s nachts\"\n }\n};\n\nfunction ordinalNumber(dirtyNumber) {\n var number = Number(dirtyNumber);\n return number + 'e';\n}\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 Number(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 })\n};\nexport default localize;","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 Dutch locale.\n * @language Dutch\n * @iso-639-2 nld\n * @author Jorik Tangelder [@jtangelder]{@link https://github.com/jtangelder}\n * @author Ruben Stolk [@rubenstolk]{@link https://github.com/rubenstolk}\n * @author Lode Vanhove [@bitcrumb]{@link https://github.com/bitcrumb}\n * @author Alex Hoeing [@dcbn]{@link https://github.com/dcbn}\n */\n\nvar locale = {\n code: 'nl-BE',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 4\n }\n};\nexport default locale;","import buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nimport buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)e?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^([vn]\\.? ?C\\.?)/,\n abbreviated: /^([vn]\\. ?Chr\\.?)/,\n wide: /^((voor|na) Christus)/\n};\nvar parseEraPatterns = {\n any: [/^v/, /^n/]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^K[1234]/i,\n wide: /^[1234]e kwartaal/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.|mrt.|apr.|mei|jun.|jul.|aug.|sep.|okt.|nov.|dec.)/i,\n wide: /^(januari|februari|maart|april|mei|juni|juli|augustus|september|oktober|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: [/^jan/i, /^feb/i, /^m(r|a)/i, /^apr/i, /^mei/i, /^jun/i, /^jul/i, /^aug/i, /^sep/i, /^okt/i, /^nov/i, /^dec/i]\n};\nvar matchDayPatterns = {\n narrow: /^[zmdwv]/i,\n short: /^(zo|ma|di|wo|do|vr|za)/i,\n abbreviated: /^(zon|maa|din|woe|don|vri|zat)/i,\n wide: /^(zondag|maandag|dinsdag|woensdag|donderdag|vrijdag|zaterdag)/i\n};\nvar parseDayPatterns = {\n narrow: [/^z/i, /^m/i, /^d/i, /^w/i, /^d/i, /^v/i, /^z/i],\n any: [/^zo/i, /^ma/i, /^di/i, /^wo/i, /^do/i, /^vr/i, /^za/i]\n};\nvar matchDayPeriodPatterns = {\n any: /^(am|pm|middernacht|het middaguur|'s (ochtends|middags|avonds|nachts))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^am/i,\n pm: /^pm/i,\n midnight: /^middernacht/i,\n noon: /^het middaguur/i,\n morning: /ochtend/i,\n afternoon: /middag/i,\n evening: /avond/i,\n night: /nacht/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;","var formatDistanceLocale = {\n lessThanXSeconds: {\n standalone: {\n one: 'weniger als 1 Sekunde',\n other: 'weniger als {{count}} Sekunden'\n },\n withPreposition: {\n one: 'weniger als 1 Sekunde',\n other: 'weniger als {{count}} Sekunden'\n }\n },\n xSeconds: {\n standalone: {\n one: '1 Sekunde',\n other: '{{count}} Sekunden'\n },\n withPreposition: {\n one: '1 Sekunde',\n other: '{{count}} Sekunden'\n }\n },\n halfAMinute: {\n standalone: 'halbe Minute',\n withPreposition: 'halben Minute'\n },\n lessThanXMinutes: {\n standalone: {\n one: 'weniger als 1 Minute',\n other: 'weniger als {{count}} Minuten'\n },\n withPreposition: {\n one: 'weniger als 1 Minute',\n other: 'weniger als {{count}} Minuten'\n }\n },\n xMinutes: {\n standalone: {\n one: '1 Minute',\n other: '{{count}} Minuten'\n },\n withPreposition: {\n one: '1 Minute',\n other: '{{count}} Minuten'\n }\n },\n aboutXHours: {\n standalone: {\n one: 'etwa 1 Stunde',\n other: 'etwa {{count}} Stunden'\n },\n withPreposition: {\n one: 'etwa 1 Stunde',\n other: 'etwa {{count}} Stunden'\n }\n },\n xHours: {\n standalone: {\n one: '1 Stunde',\n other: '{{count}} Stunden'\n },\n withPreposition: {\n one: '1 Stunde',\n other: '{{count}} Stunden'\n }\n },\n xDays: {\n standalone: {\n one: '1 Tag',\n other: '{{count}} Tage'\n },\n withPreposition: {\n one: '1 Tag',\n other: '{{count}} Tagen'\n }\n },\n aboutXWeeks: {\n standalone: {\n one: 'etwa 1 Woche',\n other: 'etwa {{count}} Wochen'\n },\n withPreposition: {\n one: 'etwa 1 Woche',\n other: 'etwa {{count}} Wochen'\n }\n },\n xWeeks: {\n standalone: {\n one: '1 Woche',\n other: '{{count}} Wochen'\n },\n withPreposition: {\n one: '1 Woche',\n other: '{{count}} Wochen'\n }\n },\n aboutXMonths: {\n standalone: {\n one: 'etwa 1 Monat',\n other: 'etwa {{count}} Monate'\n },\n withPreposition: {\n one: 'etwa 1 Monat',\n other: 'etwa {{count}} Monaten'\n }\n },\n xMonths: {\n standalone: {\n one: '1 Monat',\n other: '{{count}} Monate'\n },\n withPreposition: {\n one: '1 Monat',\n other: '{{count}} Monaten'\n }\n },\n aboutXYears: {\n standalone: {\n one: 'etwa 1 Jahr',\n other: 'etwa {{count}} Jahre'\n },\n withPreposition: {\n one: 'etwa 1 Jahr',\n other: 'etwa {{count}} Jahren'\n }\n },\n xYears: {\n standalone: {\n one: '1 Jahr',\n other: '{{count}} Jahre'\n },\n withPreposition: {\n one: '1 Jahr',\n other: '{{count}} Jahren'\n }\n },\n overXYears: {\n standalone: {\n one: 'mehr als 1 Jahr',\n other: 'mehr als {{count}} Jahre'\n },\n withPreposition: {\n one: 'mehr als 1 Jahr',\n other: 'mehr als {{count}} Jahren'\n }\n },\n almostXYears: {\n standalone: {\n one: 'fast 1 Jahr',\n other: 'fast {{count}} Jahre'\n },\n withPreposition: {\n one: 'fast 1 Jahr',\n other: 'fast {{count}} Jahren'\n }\n }\n};\n\nvar formatDistance = function formatDistance(token, count, options) {\n var result;\n var tokenValue = options !== null && options !== void 0 && options.addSuffix ? formatDistanceLocale[token].withPreposition : formatDistanceLocale[token].standalone;\n\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}}', String(count));\n }\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 'vor ' + result;\n }\n }\n\n return result;\n};\n\nexport default formatDistance;","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\"; // DIN 5008: https://de.wikipedia.org/wiki/Datumsformat#DIN_5008\n\nvar dateFormats = {\n full: 'EEEE, do MMMM y',\n // Montag, 7. Januar 2018\n long: 'do MMMM y',\n // 7. Januar 2018\n medium: 'do MMM y',\n // 7. Jan. 2018\n short: 'dd.MM.y' // 07.01.2018\n\n};\nvar timeFormats = {\n full: 'HH:mm:ss zzzz',\n long: 'HH:mm:ss z',\n medium: 'HH:mm:ss',\n short: 'HH:mm'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'um' {{time}}\",\n long: \"{{date}} 'um' {{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: \"'letzten' eeee 'um' p\",\n yesterday: \"'gestern um' p\",\n today: \"'heute um' p\",\n tomorrow: \"'morgen um' p\",\n nextWeek: \"eeee 'um' p\",\n other: 'P'\n};\n\nvar formatRelative = function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n};\n\nexport default formatRelative;","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['v.Chr.', 'n.Chr.'],\n abbreviated: ['v.Chr.', 'n.Chr.'],\n wide: ['vor Christus', 'nach Christus']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1. Quartal', '2. Quartal', '3. Quartal', '4. Quartal']\n}; // Note: in German, 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.\n\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mär', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'],\n wide: ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember']\n}; // https://st.unicode.org/cldr-apps/v#/de/Gregorian/\n\nvar formattingMonthValues = {\n narrow: monthValues.narrow,\n abbreviated: ['Jan.', 'Feb.', 'März', 'Apr.', 'Mai', 'Juni', 'Juli', 'Aug.', 'Sep.', 'Okt.', 'Nov.', 'Dez.'],\n wide: monthValues.wide\n};\nvar dayValues = {\n narrow: ['S', 'M', 'D', 'M', 'D', 'F', 'S'],\n short: ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'],\n abbreviated: ['So.', 'Mo.', 'Di.', 'Mi.', 'Do.', 'Fr.', 'Sa.'],\n wide: ['Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag']\n}; // https://www.unicode.org/cldr/charts/32/summary/de.html#1881\n\nvar dayPeriodValues = {\n narrow: {\n am: 'vm.',\n pm: 'nm.',\n midnight: 'Mitternacht',\n noon: 'Mittag',\n morning: 'Morgen',\n afternoon: 'Nachm.',\n evening: 'Abend',\n night: 'Nacht'\n },\n abbreviated: {\n am: 'vorm.',\n pm: 'nachm.',\n midnight: 'Mitternacht',\n noon: 'Mittag',\n morning: 'Morgen',\n afternoon: 'Nachmittag',\n evening: 'Abend',\n night: 'Nacht'\n },\n wide: {\n am: 'vormittags',\n pm: 'nachmittags',\n midnight: 'Mitternacht',\n noon: 'Mittag',\n morning: 'Morgen',\n afternoon: 'Nachmittag',\n evening: 'Abend',\n night: 'Nacht'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'vm.',\n pm: 'nm.',\n midnight: 'Mitternacht',\n noon: 'Mittag',\n morning: 'morgens',\n afternoon: 'nachm.',\n evening: 'abends',\n night: 'nachts'\n },\n abbreviated: {\n am: 'vorm.',\n pm: 'nachm.',\n midnight: 'Mitternacht',\n noon: 'Mittag',\n morning: 'morgens',\n afternoon: 'nachmittags',\n evening: 'abends',\n night: 'nachts'\n },\n wide: {\n am: 'vormittags',\n pm: 'nachmittags',\n midnight: 'Mitternacht',\n noon: 'Mittag',\n morning: 'morgens',\n afternoon: 'nachmittags',\n evening: 'abends',\n night: 'nachts'\n }\n};\n\nvar ordinalNumber = function ordinalNumber(dirtyNumber) {\n var number = Number(dirtyNumber);\n return number + '.';\n};\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 formattingValues: formattingMonthValues,\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;","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 German locale.\n * @language German\n * @iso-639-2 deu\n * @author Thomas Eilmsteiner [@DeMuu]{@link https://github.com/DeMuu}\n * @author Asia [@asia-t]{@link https://github.com/asia-t}\n * @author Van Vuong Ngo [@vanvuongngo]{@link https://github.com/vanvuongngo}\n * @author RomanErnst [@pex]{@link https://github.com/pex}\n * @author Philipp Keck [@Philipp91]{@link https://github.com/Philipp91}\n */\n\nvar locale = {\n code: 'de',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 4\n }\n};\nexport default locale;","import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(\\.)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(v\\.? ?Chr\\.?|n\\.? ?Chr\\.?)/i,\n abbreviated: /^(v\\.? ?Chr\\.?|n\\.? ?Chr\\.?)/i,\n wide: /^(vor Christus|vor unserer Zeitrechnung|nach Christus|unserer Zeitrechnung)/i\n};\nvar parseEraPatterns = {\n any: [/^v/i, /^n/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](\\.)? Quartal/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(j[aä]n|feb|mär[z]?|apr|mai|jun[i]?|jul[i]?|aug|sep|okt|nov|dez)\\.?/i,\n wide: /^(januar|februar|märz|april|mai|juni|juli|august|september|oktober|november|dezember)/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: [/^j[aä]/i, /^f/i, /^mär/i, /^ap/i, /^mai/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smdmf]/i,\n short: /^(so|mo|di|mi|do|fr|sa)/i,\n abbreviated: /^(son?|mon?|die?|mit?|don?|fre?|sam?)\\.?/i,\n wide: /^(sonntag|montag|dienstag|mittwoch|donnerstag|freitag|samstag)/i\n};\nvar parseDayPatterns = {\n any: [/^so/i, /^mo/i, /^di/i, /^mi/i, /^do/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(vm\\.?|nm\\.?|Mitternacht|Mittag|morgens|nachm\\.?|abends|nachts)/i,\n abbreviated: /^(vorm\\.?|nachm\\.?|Mitternacht|Mittag|morgens|nachm\\.?|abends|nachts)/i,\n wide: /^(vormittags|nachmittags|Mitternacht|Mittag|morgens|nachmittags|abends|nachts)/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^v/i,\n pm: /^n/i,\n midnight: /^Mitte/i,\n noon: /^Mitta/i,\n morning: /morgens/i,\n afternoon: /nachmittags/i,\n // will never be matched. Afternoon is matched by `pm`\n evening: /abends/i,\n night: /nachts/i // will never be matched. Night is matched by `pm`\n\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function valueCallback(value) {\n return parseInt(value);\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: 'wide',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","export function warn() {\n if (console && console.warn) {\n var _console;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (typeof args[0] === 'string') args[0] = \"react-i18next:: \".concat(args[0]);\n\n (_console = console).warn.apply(_console, args);\n }\n}\nvar alreadyWarned = {};\nexport function warnOnce() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n if (typeof args[0] === 'string' && alreadyWarned[args[0]]) return;\n if (typeof args[0] === 'string') alreadyWarned[args[0]] = new Date();\n warn.apply(void 0, args);\n}\nexport function loadNamespaces(i18n, ns, cb) {\n i18n.loadNamespaces(ns, function () {\n if (i18n.isInitialized) {\n cb();\n } else {\n var initialized = function initialized() {\n setTimeout(function () {\n i18n.off('initialized', initialized);\n }, 0);\n cb();\n };\n\n i18n.on('initialized', initialized);\n }\n });\n}\n\nfunction oldI18nextHasLoadedNamespace(ns, i18n) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var lng = i18n.languages[0];\n var fallbackLng = i18n.options ? i18n.options.fallbackLng : false;\n var lastLng = i18n.languages[i18n.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n\n var loadNotPending = function loadNotPending(l, n) {\n var loadState = i18n.services.backendConnector.state[\"\".concat(l, \"|\").concat(n)];\n return loadState === -1 || loadState === 2;\n };\n\n if (options.bindI18n && options.bindI18n.indexOf('languageChanging') > -1 && i18n.services.backendConnector.backend && i18n.isLanguageChangingTo && !loadNotPending(i18n.isLanguageChangingTo, ns)) return false;\n if (i18n.hasResourceBundle(lng, ns)) return true;\n if (!i18n.services.backendConnector.backend || i18n.options.resources && !i18n.options.partialBundledLanguages) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n}\n\nexport function hasLoadedNamespace(ns, i18n) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n if (!i18n.languages || !i18n.languages.length) {\n warnOnce('i18n.languages were undefined or empty', i18n.languages);\n return true;\n }\n\n var isNewerI18next = i18n.options.ignoreJSONStructure !== undefined;\n\n if (!isNewerI18next) {\n return oldI18nextHasLoadedNamespace(ns, i18n, options);\n }\n\n return i18n.hasLoadedNamespace(ns, {\n precheck: function precheck(i18nInstance, loadNotPending) {\n if (options.bindI18n && options.bindI18n.indexOf('languageChanging') > -1 && i18nInstance.services.backendConnector.backend && i18nInstance.isLanguageChangingTo && !loadNotPending(i18nInstance.isLanguageChangingTo, ns)) return false;\n }\n });\n}\nexport function getDisplayName(Component) {\n return Component.displayName || Component.name || (typeof Component === 'string' && Component.length > 0 ? Component : 'Unknown');\n}","import _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nimport { useState, useEffect, useContext, useRef } from 'react';\nimport { getI18n, getDefaults, ReportNamespaces, I18nContext } from './context';\nimport { warnOnce, loadNamespaces, hasLoadedNamespace } from './utils';\n\nvar usePrevious = function usePrevious(value, ignore) {\n var ref = useRef();\n useEffect(function () {\n ref.current = ignore ? ref.current : value;\n }, [value, ignore]);\n return ref.current;\n};\n\nexport function useTranslation(ns) {\n var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var i18nFromProps = props.i18n;\n\n var _ref = useContext(I18nContext) || {},\n i18nFromContext = _ref.i18n,\n defaultNSFromContext = _ref.defaultNS;\n\n var i18n = i18nFromProps || i18nFromContext || getI18n();\n if (i18n && !i18n.reportNamespaces) i18n.reportNamespaces = new ReportNamespaces();\n\n if (!i18n) {\n warnOnce('You will need to pass in an i18next instance by using initReactI18next');\n\n var notReadyT = function notReadyT(k) {\n return Array.isArray(k) ? k[k.length - 1] : k;\n };\n\n var retNotReady = [notReadyT, {}, false];\n retNotReady.t = notReadyT;\n retNotReady.i18n = {};\n retNotReady.ready = false;\n return retNotReady;\n }\n\n if (i18n.options.react && i18n.options.react.wait !== undefined) warnOnce('It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.');\n\n var i18nOptions = _objectSpread(_objectSpread(_objectSpread({}, getDefaults()), i18n.options.react), props);\n\n var useSuspense = i18nOptions.useSuspense,\n keyPrefix = i18nOptions.keyPrefix;\n var namespaces = ns || defaultNSFromContext || i18n.options && i18n.options.defaultNS;\n namespaces = typeof namespaces === 'string' ? [namespaces] : namespaces || ['translation'];\n if (i18n.reportNamespaces.addUsedNamespaces) i18n.reportNamespaces.addUsedNamespaces(namespaces);\n var ready = (i18n.isInitialized || i18n.initializedStoreOnce) && namespaces.every(function (n) {\n return hasLoadedNamespace(n, i18n, i18nOptions);\n });\n\n function getT() {\n return i18n.getFixedT(null, i18nOptions.nsMode === 'fallback' ? namespaces : namespaces[0], keyPrefix);\n }\n\n var _useState = useState(getT),\n _useState2 = _slicedToArray(_useState, 2),\n t = _useState2[0],\n setT = _useState2[1];\n\n var joinedNS = namespaces.join();\n var previousJoinedNS = usePrevious(joinedNS);\n var isMounted = useRef(true);\n useEffect(function () {\n var bindI18n = i18nOptions.bindI18n,\n bindI18nStore = i18nOptions.bindI18nStore;\n isMounted.current = true;\n\n if (!ready && !useSuspense) {\n loadNamespaces(i18n, namespaces, function () {\n if (isMounted.current) setT(getT);\n });\n }\n\n if (ready && previousJoinedNS && previousJoinedNS !== joinedNS && isMounted.current) {\n setT(getT);\n }\n\n function boundReset() {\n if (isMounted.current) setT(getT);\n }\n\n if (bindI18n && i18n) i18n.on(bindI18n, boundReset);\n if (bindI18nStore && i18n) i18n.store.on(bindI18nStore, boundReset);\n return function () {\n isMounted.current = false;\n if (bindI18n && i18n) bindI18n.split(' ').forEach(function (e) {\n return i18n.off(e, boundReset);\n });\n if (bindI18nStore && i18n) bindI18nStore.split(' ').forEach(function (e) {\n return i18n.store.off(e, boundReset);\n });\n };\n }, [i18n, joinedNS]);\n var isInitial = useRef(true);\n useEffect(function () {\n if (isMounted.current && !isInitial.current) {\n setT(getT);\n }\n\n isInitial.current = false;\n }, [i18n, keyPrefix]);\n var ret = [t, i18n, ready];\n ret.t = t;\n ret.i18n = i18n;\n ret.ready = ready;\n if (ready) return ret;\n if (!ready && !useSuspense) return ret;\n throw new Promise(function (resolve) {\n loadNamespaces(i18n, namespaces, function () {\n resolve();\n });\n });\n}","// currently used to initiate the velocity style object to 0\n'use strict';\n\nexports.__esModule = true;\nexports['default'] = mapToZero;\n\nfunction mapToZero(obj) {\n var ret = {};\n\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n ret[key] = 0;\n }\n }\n\n return ret;\n}\n\nmodule.exports = exports['default'];","// stepper is used a lot. Saves allocation to return the same array wrapper.\n// This is fine and danger-free against mutations because the callsite\n// immediately destructures it and gets the numbers inside without passing the\n\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = stepper;\nvar reusedTuple = [0, 0];\n\nfunction stepper(secondPerFrame, x, v, destX, k, b, precision) {\n // Spring stiffness, in kg / s^2\n // for animations, destX is really spring length (spring at rest). initial\n // position is considered as the stretched/compressed position of a spring\n var Fspring = -k * (x - destX); // Damping, in kg / s\n\n var Fdamper = -b * v; // usually we put mass here, but for animation purposes, specifying mass is a\n // bit redundant. you could simply adjust k and b accordingly\n // let a = (Fspring + Fdamper) / mass;\n\n var a = Fspring + Fdamper;\n var newV = v + a * secondPerFrame;\n var newX = x + newV * secondPerFrame;\n\n if (Math.abs(newV) < precision && Math.abs(newX - destX) < precision) {\n reusedTuple[0] = destX;\n reusedTuple[1] = 0;\n return reusedTuple;\n }\n\n reusedTuple[0] = newX;\n reusedTuple[1] = newV;\n return reusedTuple;\n}\n\nmodule.exports = exports[\"default\"]; // array reference around.","// Generated by CoffeeScript 1.7.1\n(function () {\n var getNanoSeconds, hrtime, loadTime;\n\n if (typeof performance !== \"undefined\" && performance !== null && performance.now) {\n module.exports = function () {\n return performance.now();\n };\n } else if (typeof process !== \"undefined\" && process !== null && process.hrtime) {\n module.exports = function () {\n return (getNanoSeconds() - loadTime) / 1e6;\n };\n\n hrtime = process.hrtime;\n\n getNanoSeconds = function getNanoSeconds() {\n var hr;\n hr = hrtime();\n return hr[0] * 1e9 + hr[1];\n };\n\n loadTime = getNanoSeconds();\n } else if (Date.now) {\n module.exports = function () {\n return Date.now() - loadTime;\n };\n\n loadTime = Date.now();\n } else {\n module.exports = function () {\n return new Date().getTime() - loadTime;\n };\n\n loadTime = new Date().getTime();\n }\n}).call(this);","var now = require('performance-now'),\n root = typeof window === 'undefined' ? global : window,\n vendors = ['moz', 'webkit'],\n suffix = 'AnimationFrame',\n raf = root['request' + suffix],\n caf = root['cancel' + suffix] || root['cancelRequest' + suffix];\n\nfor (var i = 0; !raf && i < vendors.length; i++) {\n raf = root[vendors[i] + 'Request' + suffix];\n caf = root[vendors[i] + 'Cancel' + suffix] || root[vendors[i] + 'CancelRequest' + suffix];\n} // Some versions of FF have rAF but not cAF\n\n\nif (!raf || !caf) {\n var last = 0,\n id = 0,\n queue = [],\n frameDuration = 1000 / 60;\n\n raf = function raf(callback) {\n if (queue.length === 0) {\n var _now = now(),\n next = Math.max(0, frameDuration - (_now - last));\n\n last = next + _now;\n setTimeout(function () {\n var cp = queue.slice(0); // Clear queue here to prevent\n // callbacks from appending listeners\n // to the current frame's queue\n\n queue.length = 0;\n\n for (var i = 0; i < cp.length; i++) {\n if (!cp[i].cancelled) {\n try {\n cp[i].callback(last);\n } catch (e) {\n setTimeout(function () {\n throw e;\n }, 0);\n }\n }\n }\n }, Math.round(next));\n }\n\n queue.push({\n handle: ++id,\n callback: callback,\n cancelled: false\n });\n return id;\n };\n\n caf = function caf(handle) {\n for (var i = 0; i < queue.length; i++) {\n if (queue[i].handle === handle) {\n queue[i].cancelled = true;\n }\n }\n };\n}\n\nmodule.exports = function (fn) {\n // Wrap in a new function to prevent\n // `cancel` potentially being assigned\n // to the native rAF function\n return raf.call(root, fn);\n};\n\nmodule.exports.cancel = function () {\n caf.apply(root, arguments);\n};\n\nmodule.exports.polyfill = function (object) {\n if (!object) {\n object = root;\n }\n\n object.requestAnimationFrame = raf;\n object.cancelAnimationFrame = caf;\n};","// usage assumption: currentStyle values have already been rendered but it says\n// nothing of whether currentStyle is stale (see unreadPropStyle)\n'use strict';\n\nexports.__esModule = true;\nexports['default'] = shouldStopAnimation;\n\nfunction shouldStopAnimation(currentStyle, style, currentVelocity) {\n for (var key in style) {\n if (!Object.prototype.hasOwnProperty.call(style, key)) {\n continue;\n }\n\n if (currentVelocity[key] !== 0) {\n return false;\n }\n\n var styleValue = typeof style[key] === 'number' ? style[key] : style[key].val; // stepper will have already taken care of rounding precision errors, so\n // won't have such thing as 0.9999 !=== 1\n\n if (currentStyle[key] !== styleValue) {\n return false;\n }\n }\n\n return true;\n}\n\nmodule.exports = exports['default'];","// extracted by mini-css-extract-plugin\nmodule.exports = {\"xs\":\"375px\",\"sm\":\"600px\",\"md\":\"834px\",\"lg\":\"1280px\",\"xl\":\"1280px\"};","import { withMetadata } from '../metadata';\nimport { parsePhoneNumberWithError as _parsePhoneNumberWithError } from '../../core/index';\nexport function parsePhoneNumberWithError() {\n return withMetadata(_parsePhoneNumberWithError, arguments);\n}","// @noflow\nimport { useReactiveVar } from '@apollo/client'\nimport React, { useCallback, useEffect, useState } from 'react'\nimport { useTranslation } from 'react-i18next'\n\nimport CloseIcon from 'assets/images/icons/crosses/close-icon--white.svg'\n\nimport type { CookiePreferences } from '@/components/cookie_consent/index'\nimport { Variant } from '@/components/shared/CookieConsent/Modals/CookieConsentModal'\nimport {\n Component,\n Context,\n actionToCookieConsent,\n manageCookiesClicked,\n trackCookiePreferences\n} from '@/components/shared/CookieConsent/helpers'\nimport { Action } from '@/components/shared/CookieConsent/types'\n\nimport {\n cookieConsentBannerState,\n cookieConsentModalState\n} from './CookieConsent'\n\ntype Props = {\n variant: Variant\n applyPreferences: (preferences: CookiePreferences) => void\n}\n\nconst CookieConsentBanner = ({\n variant,\n applyPreferences\n}: Props): JSX.Element => {\n const { t } = useTranslation('shared')\n const copyContext = 'cookie_consent.banner'\n const cookieConsentBanner = useReactiveVar(cookieConsentBannerState)\n\n const [isBannerVisible, setIsBannerVisible] = useState(\n cookieConsentBanner.visible\n )\n\n const closeBanner = useCallback(() => {\n setIsBannerVisible(false)\n\n setTimeout(() => {\n cookieConsentBannerState({ visible: false })\n }, 300)\n }, [])\n\n const handleOnClose = useCallback(() => {\n actionToCookieConsent({ action: Action.Accepted, applyPreferences })\n\n trackCookiePreferences({\n preferences: { marketing: true, analytics: true },\n variant,\n component: Component.Banner,\n context: Context.Close\n })\n\n closeBanner()\n }, [applyPreferences, closeBanner, variant])\n\n const handleOnManageClick = useCallback(() => {\n cookieConsentModalState({ visible: true })\n actionToCookieConsent({ action: Action.None })\n manageCookiesClicked()\n }, [])\n\n const handleOnAcceptClick = useCallback(() => {\n actionToCookieConsent({ action: Action.Accepted, applyPreferences })\n\n trackCookiePreferences({\n preferences: { marketing: true, analytics: true },\n variant,\n component: Component.Banner,\n context: Context.GotIt\n })\n\n closeBanner()\n }, [applyPreferences, closeBanner, variant])\n\n // Ensure the banner local state is kept up to date as other side effects\n // are called changing the value of cookieConsentBanner.visible\n useEffect(\n () => setIsBannerVisible(cookieConsentBanner.visible),\n [cookieConsentBanner.visible]\n )\n\n return (\n <div>\n <div\n className={`cookie-banner ${isBannerVisible ? 'transition-in' : ''}`}\n >\n <button\n className=\"cookie-banner__close\"\n type=\"button\"\n onClick={handleOnClose}\n >\n <img src={CloseIcon} alt={t(`${copyContext}.close_btn_alt`)} />\n </button>\n <h2 className=\"cookie-banner__title\">{t(`${copyContext}.title`)}</h2>\n <div className=\"cookie-banner__content\">\n <p>{t(`${copyContext}.description`)}</p>\n <div className=\"cookie-banner__buttons\">\n <button\n className=\"cookie-banner__buttons__manage-button\"\n type=\"button\"\n onClick={handleOnManageClick}\n >\n {t(`${copyContext}.manage_btn`)}\n </button>\n <button\n id=\"cookie-banner-accept-button\"\n data-testid=\"cookie-accept-button\"\n className=\"btn secondary cookie-banner__buttons__accept-button\"\n type=\"button\"\n onClick={handleOnAcceptClick}\n >\n {t(`${copyContext}.accept_btn`)}\n </button>\n </div>\n </div>\n </div>\n </div>\n )\n}\n\nexport default CookieConsentBanner\n","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\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\nvar AsYouTypeState = /*#__PURE__*/function () {\n function AsYouTypeState(_ref) {\n var _this = this;\n\n var onCountryChange = _ref.onCountryChange,\n onCallingCodeChange = _ref.onCallingCodeChange;\n\n _classCallCheck(this, AsYouTypeState);\n\n _defineProperty(this, \"update\", function (properties) {\n for (var _i = 0, _Object$keys = Object.keys(properties); _i < _Object$keys.length; _i++) {\n var key = _Object$keys[_i];\n _this[key] = properties[key];\n }\n });\n\n this.onCountryChange = onCountryChange;\n this.onCallingCodeChange = onCallingCodeChange;\n }\n\n _createClass(AsYouTypeState, [{\n key: \"reset\",\n value: function reset(defaultCountry, defaultCallingCode) {\n this.international = false;\n this.IDDPrefix = undefined;\n this.missingPlus = undefined;\n this.callingCode = undefined;\n this.digits = '';\n this.resetNationalSignificantNumber();\n this.initCountryAndCallingCode(defaultCountry, defaultCallingCode);\n }\n }, {\n key: \"resetNationalSignificantNumber\",\n value: function resetNationalSignificantNumber() {\n this.nationalSignificantNumber = this.getNationalDigits();\n this.nationalSignificantNumberMatchesInput = true;\n this.nationalPrefix = undefined;\n this.carrierCode = undefined;\n this.complexPrefixBeforeNationalSignificantNumber = undefined;\n }\n }, {\n key: \"initCountryAndCallingCode\",\n value: function initCountryAndCallingCode(country, callingCode) {\n this.setCountry(country);\n this.setCallingCode(callingCode);\n }\n }, {\n key: \"setCountry\",\n value: function setCountry(country) {\n this.country = country;\n this.onCountryChange(country);\n }\n }, {\n key: \"setCallingCode\",\n value: function setCallingCode(callingCode) {\n this.callingCode = callingCode;\n return this.onCallingCodeChange(this.country, callingCode);\n }\n }, {\n key: \"startInternationalNumber\",\n value: function startInternationalNumber() {\n // Prepend the `+` to parsed input.\n this.international = true; // If a default country was set then reset it\n // because an explicitly international phone\n // number is being entered.\n\n this.initCountryAndCallingCode();\n }\n }, {\n key: \"appendDigits\",\n value: function appendDigits(nextDigits) {\n this.digits += nextDigits;\n }\n }, {\n key: \"appendNationalSignificantNumberDigits\",\n value: function appendNationalSignificantNumberDigits(nextDigits) {\n this.nationalSignificantNumber += nextDigits;\n }\n /**\r\n * Returns the part of `this.digits` that corresponds to the national number.\r\n * Basically, all digits that have been input by the user, except for the\r\n * international prefix and the country calling code part\r\n * (if the number is an international one).\r\n * @return {string}\r\n */\n\n }, {\n key: \"getNationalDigits\",\n value: function getNationalDigits() {\n if (this.international) {\n return this.digits.slice((this.IDDPrefix ? this.IDDPrefix.length : 0) + (this.callingCode ? this.callingCode.length : 0));\n }\n\n return this.digits;\n }\n }, {\n key: \"getDigitsWithoutInternationalPrefix\",\n value: function getDigitsWithoutInternationalPrefix() {\n if (this.international) {\n if (this.IDDPrefix) {\n return this.digits.slice(this.IDDPrefix.length);\n }\n }\n\n return this.digits;\n }\n }]);\n\n return AsYouTypeState;\n}();\n\nexport { AsYouTypeState as default };","// Should be the same as `DIGIT_PLACEHOLDER` in `libphonenumber-metadata-generator`.\nexport var DIGIT_PLACEHOLDER = 'x'; // '\\u2008' (punctuation space)\n\nvar DIGIT_PLACEHOLDER_MATCHER = new RegExp(DIGIT_PLACEHOLDER); // Counts all occurences of a symbol in a string.\n// Unicode-unsafe (because using `.split()`).\n\nexport function countOccurences(symbol, string) {\n var count = 0; // Using `.split('')` to iterate through a string here\n // to avoid requiring `Symbol.iterator` polyfill.\n // `.split('')` is generally not safe for Unicode,\n // but in this particular case for counting brackets it is safe.\n // for (const character of string)\n\n for (var _iterator = string.split(''), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {\n var _ref;\n\n if (_isArray) {\n if (_i >= _iterator.length) break;\n _ref = _iterator[_i++];\n } else {\n _i = _iterator.next();\n if (_i.done) break;\n _ref = _i.value;\n }\n\n var character = _ref;\n\n if (character === symbol) {\n count++;\n }\n }\n\n return count;\n} // Repeats a string (or a symbol) N times.\n// http://stackoverflow.com/questions/202605/repeat-string-javascript\n\nexport function repeat(string, times) {\n if (times < 1) {\n return '';\n }\n\n var result = '';\n\n while (times > 1) {\n if (times & 1) {\n result += string;\n }\n\n times >>= 1;\n string += string;\n }\n\n return result + string;\n}\nexport function cutAndStripNonPairedParens(string, cutBeforeIndex) {\n if (string[cutBeforeIndex] === ')') {\n cutBeforeIndex++;\n }\n\n return stripNonPairedParens(string.slice(0, cutBeforeIndex));\n}\nexport function closeNonPairedParens(template, cut_before) {\n var retained_template = template.slice(0, cut_before);\n var opening_braces = countOccurences('(', retained_template);\n var closing_braces = countOccurences(')', retained_template);\n var dangling_braces = opening_braces - closing_braces;\n\n while (dangling_braces > 0 && cut_before < template.length) {\n if (template[cut_before] === ')') {\n dangling_braces--;\n }\n\n cut_before++;\n }\n\n return template.slice(0, cut_before);\n}\nexport function stripNonPairedParens(string) {\n var dangling_braces = [];\n var i = 0;\n\n while (i < string.length) {\n if (string[i] === '(') {\n dangling_braces.push(i);\n } else if (string[i] === ')') {\n dangling_braces.pop();\n }\n\n i++;\n }\n\n var start = 0;\n var cleared_string = '';\n dangling_braces.push(string.length);\n\n for (var _i2 = 0, _dangling_braces = dangling_braces; _i2 < _dangling_braces.length; _i2++) {\n var index = _dangling_braces[_i2];\n cleared_string += string.slice(start, index);\n start = index + 1;\n }\n\n return cleared_string;\n}\nexport function populateTemplateWithDigits(template, position, digits) {\n // Using `.split('')` to iterate through a string here\n // to avoid requiring `Symbol.iterator` polyfill.\n // `.split('')` is generally not safe for Unicode,\n // but in this particular case for `digits` it is safe.\n // for (const digit of digits)\n for (var _iterator2 = digits.split(''), _isArray2 = Array.isArray(_iterator2), _i3 = 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator]();;) {\n var _ref2;\n\n if (_isArray2) {\n if (_i3 >= _iterator2.length) break;\n _ref2 = _iterator2[_i3++];\n } else {\n _i3 = _iterator2.next();\n if (_i3.done) break;\n _ref2 = _i3.value;\n }\n\n var digit = _ref2; // If there is room for more digits in current `template`,\n // then set the next digit in the `template`,\n // and return the formatted digits so far.\n // If more digits are entered than the current format could handle.\n\n if (template.slice(position + 1).search(DIGIT_PLACEHOLDER_MATCHER) < 0) {\n return;\n }\n\n position = template.search(DIGIT_PLACEHOLDER_MATCHER);\n template = template.replace(DIGIT_PLACEHOLDER_MATCHER, digit);\n }\n\n return [template, position];\n}","import checkNumberLength from './helpers/checkNumberLength';\nimport parseDigits from './helpers/parseDigits';\nimport formatNationalNumberUsingFormat from './helpers/formatNationalNumberUsingFormat';\nexport default function formatCompleteNumber(state, format, _ref) {\n var metadata = _ref.metadata,\n shouldTryNationalPrefixFormattingRule = _ref.shouldTryNationalPrefixFormattingRule,\n getSeparatorAfterNationalPrefix = _ref.getSeparatorAfterNationalPrefix;\n var matcher = new RegExp(\"^(?:\".concat(format.pattern(), \")$\"));\n\n if (matcher.test(state.nationalSignificantNumber)) {\n return formatNationalNumberWithAndWithoutNationalPrefixFormattingRule(state, format, {\n metadata: metadata,\n shouldTryNationalPrefixFormattingRule: shouldTryNationalPrefixFormattingRule,\n getSeparatorAfterNationalPrefix: getSeparatorAfterNationalPrefix\n });\n }\n}\nexport function canFormatCompleteNumber(nationalSignificantNumber, metadata) {\n return checkNumberLength(nationalSignificantNumber, metadata) === 'IS_POSSIBLE';\n}\n\nfunction formatNationalNumberWithAndWithoutNationalPrefixFormattingRule(state, format, _ref2) {\n var metadata = _ref2.metadata,\n shouldTryNationalPrefixFormattingRule = _ref2.shouldTryNationalPrefixFormattingRule,\n getSeparatorAfterNationalPrefix = _ref2.getSeparatorAfterNationalPrefix; // `format` has already been checked for `nationalPrefix` requirement.\n\n var nationalSignificantNumber = state.nationalSignificantNumber,\n international = state.international,\n nationalPrefix = state.nationalPrefix,\n carrierCode = state.carrierCode; // Format the number with using `national_prefix_formatting_rule`.\n // If the resulting formatted number is a valid formatted number, then return it.\n //\n // Google's AsYouType formatter is different in a way that it doesn't try\n // to format using the \"national prefix formatting rule\", and instead it\n // simply prepends a national prefix followed by a \" \" character.\n // This code does that too, but as a fallback.\n // The reason is that \"national prefix formatting rule\" may use parentheses,\n // which wouldn't be included has it used the simpler Google's way.\n //\n\n if (shouldTryNationalPrefixFormattingRule(format)) {\n var formattedNumber = formatNationalNumber(state, format, {\n useNationalPrefixFormattingRule: true,\n getSeparatorAfterNationalPrefix: getSeparatorAfterNationalPrefix,\n metadata: metadata\n });\n\n if (formattedNumber) {\n return formattedNumber;\n }\n } // Format the number without using `national_prefix_formatting_rule`.\n\n\n return formatNationalNumber(state, format, {\n useNationalPrefixFormattingRule: false,\n getSeparatorAfterNationalPrefix: getSeparatorAfterNationalPrefix,\n metadata: metadata\n });\n}\n\nfunction formatNationalNumber(state, format, _ref3) {\n var metadata = _ref3.metadata,\n useNationalPrefixFormattingRule = _ref3.useNationalPrefixFormattingRule,\n getSeparatorAfterNationalPrefix = _ref3.getSeparatorAfterNationalPrefix;\n var formattedNationalNumber = formatNationalNumberUsingFormat(state.nationalSignificantNumber, format, {\n carrierCode: state.carrierCode,\n useInternationalFormat: state.international,\n withNationalPrefix: useNationalPrefixFormattingRule,\n metadata: metadata\n });\n\n if (!useNationalPrefixFormattingRule) {\n if (state.nationalPrefix) {\n // If a national prefix was extracted, then just prepend it,\n // followed by a \" \" character.\n formattedNationalNumber = state.nationalPrefix + getSeparatorAfterNationalPrefix(format) + formattedNationalNumber;\n } else if (state.complexPrefixBeforeNationalSignificantNumber) {\n formattedNationalNumber = state.complexPrefixBeforeNationalSignificantNumber + ' ' + formattedNationalNumber;\n }\n }\n\n if (isValidFormattedNationalNumber(formattedNationalNumber, state)) {\n return formattedNationalNumber;\n }\n} // Check that the formatted phone number contains exactly\n// the same digits that have been input by the user.\n// For example, when \"0111523456789\" is input for `AR` country,\n// the extracted `this.nationalSignificantNumber` is \"91123456789\",\n// which means that the national part of `this.digits` isn't simply equal to\n// `this.nationalPrefix` + `this.nationalSignificantNumber`.\n//\n// Also, a `format` can add extra digits to the `this.nationalSignificantNumber`\n// being formatted via `metadata[country].national_prefix_transform_rule`.\n// For example, for `VI` country, it prepends `340` to the national number,\n// and if this check hasn't been implemented, then there would be a bug\n// when `340` \"area coude\" is \"duplicated\" during input for `VI` country:\n// https://github.com/catamphetamine/libphonenumber-js/issues/318\n//\n// So, all these \"gotchas\" are filtered out.\n//\n// In the original Google's code, the comments say:\n// \"Check that we didn't remove nor add any extra digits when we matched\n// this formatting pattern. This usually happens after we entered the last\n// digit during AYTF. Eg: In case of MX, we swallow mobile token (1) when\n// formatted but AYTF should retain all the number entered and not change\n// in order to match a format (of same leading digits and length) display\n// in that way.\"\n// \"If it's the same (i.e entered number and format is same), then it's\n// safe to return this in formatted number as nothing is lost / added.\"\n// Otherwise, don't use this format.\n// https://github.com/google/libphonenumber/commit/3e7c1f04f5e7200f87fb131e6f85c6e99d60f510#diff-9149457fa9f5d608a11bb975c6ef4bc5\n// https://github.com/google/libphonenumber/commit/3ac88c7106e7dcb553bcc794b15f19185928a1c6#diff-2dcb77e833422ee304da348b905cde0b\n//\n\n\nfunction isValidFormattedNationalNumber(formattedNationalNumber, state) {\n return parseDigits(formattedNationalNumber) === state.getNationalDigits();\n}","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\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\nimport { DIGIT_PLACEHOLDER, countOccurences, repeat, cutAndStripNonPairedParens, closeNonPairedParens, stripNonPairedParens, populateTemplateWithDigits } from './AsYouTypeFormatter.util';\nimport formatCompleteNumber, { canFormatCompleteNumber } from './AsYouTypeFormatter.complete';\nimport parseDigits from './helpers/parseDigits';\nexport { DIGIT_PLACEHOLDER } from './AsYouTypeFormatter.util';\nimport { FIRST_GROUP_PATTERN } from './helpers/formatNationalNumberUsingFormat';\nimport { VALID_PUNCTUATION } from './constants';\nimport applyInternationalSeparatorStyle from './helpers/applyInternationalSeparatorStyle'; // Used in phone number format template creation.\n// Could be any digit, I guess.\n\nvar DUMMY_DIGIT = '9'; // I don't know why is it exactly `15`\n\nvar LONGEST_NATIONAL_PHONE_NUMBER_LENGTH = 15; // Create a phone number consisting only of the digit 9 that matches the\n// `number_pattern` by applying the pattern to the \"longest phone number\" string.\n\nvar LONGEST_DUMMY_PHONE_NUMBER = repeat(DUMMY_DIGIT, LONGEST_NATIONAL_PHONE_NUMBER_LENGTH); // A set of characters that, if found in a national prefix formatting rules, are an indicator to\n// us that we should separate the national prefix from the number when formatting.\n\nvar NATIONAL_PREFIX_SEPARATORS_PATTERN = /[- ]/; // Deprecated: Google has removed some formatting pattern related code from their repo.\n// https://github.com/googlei18n/libphonenumber/commit/a395b4fef3caf57c4bc5f082e1152a4d2bd0ba4c\n// \"We no longer have numbers in formatting matching patterns, only \\d.\"\n// Because this library supports generating custom metadata\n// some users may still be using old metadata so the relevant\n// code seems to stay until some next major version update.\n\nvar SUPPORT_LEGACY_FORMATTING_PATTERNS = true; // A pattern that is used to match character classes in regular expressions.\n// An example of a character class is \"[1-4]\".\n\nvar CREATE_CHARACTER_CLASS_PATTERN = SUPPORT_LEGACY_FORMATTING_PATTERNS && function () {\n return /\\[([^\\[\\]])*\\]/g;\n}; // Any digit in a regular expression that actually denotes a digit. For\n// example, in the regular expression \"80[0-2]\\d{6,10}\", the first 2 digits\n// (8 and 0) are standalone digits, but the rest are not.\n// Two look-aheads are needed because the number following \\\\d could be a\n// two-digit number, since the phone number can be as long as 15 digits.\n\n\nvar CREATE_STANDALONE_DIGIT_PATTERN = SUPPORT_LEGACY_FORMATTING_PATTERNS && function () {\n return /\\d(?=[^,}][^,}])/g;\n}; // A regular expression that is used to determine if a `format` is\n// suitable to be used in the \"as you type formatter\".\n// A `format` is suitable when the resulting formatted number has\n// the same digits as the user has entered.\n//\n// In the simplest case, that would mean that the format\n// doesn't add any additional digits when formatting a number.\n// Google says that it also shouldn't add \"star\" (`*`) characters,\n// like it does in some Israeli formats.\n// Such basic format would only contain \"valid punctuation\"\n// and \"captured group\" identifiers ($1, $2, etc).\n//\n// An example of a format that adds additional digits:\n//\n// Country: `AR` (Argentina).\n// Format:\n// {\n// \"pattern\": \"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\n// \"leading_digits_patterns\": [\"91\"],\n// \"national_prefix_formatting_rule\": \"0$1\",\n// \"format\": \"$2 15-$3-$4\",\n// \"international_format\": \"$1 $2 $3-$4\"\n// }\n//\n// In the format above, the `format` adds `15` to the digits when formatting a number.\n// A sidenote: this format actually is suitable because `national_prefix_for_parsing`\n// has previously removed `15` from a national number, so re-adding `15` in `format`\n// doesn't actually result in any extra digits added to user's input.\n// But verifying that would be a complex procedure, so the code chooses a simpler path:\n// it simply filters out all `format`s that contain anything but \"captured group\" ids.\n//\n// This regular expression is called `ELIGIBLE_FORMAT_PATTERN` in Google's\n// `libphonenumber` code.\n//\n\n\nvar NON_ALTERING_FORMAT_REG_EXP = new RegExp('^' + '[' + VALID_PUNCTUATION + ']*' + '(\\\\$\\\\d[' + VALID_PUNCTUATION + ']*)+' + '$'); // This is the minimum length of the leading digits of a phone number\n// to guarantee the first \"leading digits pattern\" for a phone number format\n// to be preemptive.\n\nvar MIN_LEADING_DIGITS_LENGTH = 3;\n\nvar AsYouTypeFormatter = /*#__PURE__*/function () {\n function AsYouTypeFormatter(_ref) {\n var _this = this;\n\n var state = _ref.state,\n metadata = _ref.metadata;\n\n _classCallCheck(this, AsYouTypeFormatter);\n\n _defineProperty(this, \"getSeparatorAfterNationalPrefix\", function (format) {\n // `US` metadata doesn't have a `national_prefix_formatting_rule`,\n // so the `if` condition below doesn't apply to `US`,\n // but in reality there shoudl be a separator\n // between a national prefix and a national (significant) number.\n // So `US` national prefix separator is a \"special\" \"hardcoded\" case.\n if (_this.isNANP) {\n return ' ';\n } // If a `format` has a `national_prefix_formatting_rule`\n // and that rule has a separator after a national prefix,\n // then it means that there should be a separator\n // between a national prefix and a national (significant) number.\n\n\n if (format && format.nationalPrefixFormattingRule() && NATIONAL_PREFIX_SEPARATORS_PATTERN.test(format.nationalPrefixFormattingRule())) {\n return ' ';\n } // At this point, there seems to be no clear evidence that\n // there should be a separator between a national prefix\n // and a national (significant) number. So don't insert one.\n\n\n return '';\n });\n\n _defineProperty(this, \"shouldTryNationalPrefixFormattingRule\", function (format, _ref2) {\n var international = _ref2.international,\n nationalPrefix = _ref2.nationalPrefix;\n\n if (format.nationalPrefixFormattingRule()) {\n // In some countries, `national_prefix_formatting_rule` is `($1)`,\n // so it applies even if the user hasn't input a national prefix.\n // `format.usesNationalPrefix()` detects such cases.\n var usesNationalPrefix = format.usesNationalPrefix();\n\n if (usesNationalPrefix && nationalPrefix || !usesNationalPrefix && !international) {\n return true;\n }\n }\n });\n\n this.metadata = metadata;\n this.resetFormat();\n }\n\n _createClass(AsYouTypeFormatter, [{\n key: \"resetFormat\",\n value: function resetFormat() {\n this.chosenFormat = undefined;\n this.template = undefined;\n this.nationalNumberTemplate = undefined;\n this.populatedNationalNumberTemplate = undefined;\n this.populatedNationalNumberTemplatePosition = -1;\n }\n }, {\n key: \"reset\",\n value: function reset(numberingPlan, state) {\n this.resetFormat();\n\n if (numberingPlan) {\n this.isNANP = numberingPlan.callingCode() === '1';\n this.matchingFormats = numberingPlan.formats();\n\n if (state.nationalSignificantNumber) {\n this.narrowDownMatchingFormats(state);\n }\n } else {\n this.isNANP = undefined;\n this.matchingFormats = [];\n }\n }\n }, {\n key: \"format\",\n value: function format(nextDigits, state) {\n var _this2 = this; // See if the phone number digits can be formatted as a complete phone number.\n // If not, use the results from `formatNationalNumberWithNextDigits()`,\n // which formats based on the chosen formatting pattern.\n //\n // Attempting to format complete phone number first is how it's done\n // in Google's `libphonenumber`, so this library just follows it.\n // Google's `libphonenumber` code doesn't explain in detail why does it\n // attempt to format digits as a complete phone number\n // instead of just going with a previoulsy (or newly) chosen `format`:\n //\n // \"Checks to see if there is an exact pattern match for these digits.\n // If so, we should use this instead of any other formatting template\n // whose leadingDigitsPattern also matches the input.\"\n //\n\n\n if (canFormatCompleteNumber(state.nationalSignificantNumber, this.metadata)) {\n for (var _iterator = this.matchingFormats, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {\n var _ref3;\n\n if (_isArray) {\n if (_i >= _iterator.length) break;\n _ref3 = _iterator[_i++];\n } else {\n _i = _iterator.next();\n if (_i.done) break;\n _ref3 = _i.value;\n }\n\n var format = _ref3;\n var formattedCompleteNumber = formatCompleteNumber(state, format, {\n metadata: this.metadata,\n shouldTryNationalPrefixFormattingRule: function shouldTryNationalPrefixFormattingRule(format) {\n return _this2.shouldTryNationalPrefixFormattingRule(format, {\n international: state.international,\n nationalPrefix: state.nationalPrefix\n });\n },\n getSeparatorAfterNationalPrefix: this.getSeparatorAfterNationalPrefix\n });\n\n if (formattedCompleteNumber) {\n this.resetFormat();\n this.chosenFormat = format;\n this.setNationalNumberTemplate(formattedCompleteNumber.replace(/\\d/g, DIGIT_PLACEHOLDER), state);\n this.populatedNationalNumberTemplate = formattedCompleteNumber; // With a new formatting template, the matched position\n // using the old template needs to be reset.\n\n this.populatedNationalNumberTemplatePosition = this.template.lastIndexOf(DIGIT_PLACEHOLDER);\n return formattedCompleteNumber;\n }\n }\n } // Format the digits as a partial (incomplete) phone number\n // using the previously chosen formatting pattern (or a newly chosen one).\n\n\n return this.formatNationalNumberWithNextDigits(nextDigits, state);\n } // Formats the next phone number digits.\n\n }, {\n key: \"formatNationalNumberWithNextDigits\",\n value: function formatNationalNumberWithNextDigits(nextDigits, state) {\n var previouslyChosenFormat = this.chosenFormat; // Choose a format from the list of matching ones.\n\n var newlyChosenFormat = this.chooseFormat(state);\n\n if (newlyChosenFormat) {\n if (newlyChosenFormat === previouslyChosenFormat) {\n // If it can format the next (current) digits\n // using the previously chosen phone number format\n // then return the updated formatted number.\n return this.formatNextNationalNumberDigits(nextDigits);\n } else {\n // If a more appropriate phone number format\n // has been chosen for these \"leading digits\",\n // then re-format the national phone number part\n // using the newly selected format.\n return this.formatNextNationalNumberDigits(state.getNationalDigits());\n }\n }\n }\n }, {\n key: \"narrowDownMatchingFormats\",\n value: function narrowDownMatchingFormats(_ref4) {\n var _this3 = this;\n\n var nationalSignificantNumber = _ref4.nationalSignificantNumber,\n nationalPrefix = _ref4.nationalPrefix,\n international = _ref4.international;\n var leadingDigits = nationalSignificantNumber; // \"leading digits\" pattern list starts with a\n // \"leading digits\" pattern fitting a maximum of 3 leading digits.\n // So, after a user inputs 3 digits of a national (significant) phone number\n // this national (significant) number can already be formatted.\n // The next \"leading digits\" pattern is for 4 leading digits max,\n // and the \"leading digits\" pattern after it is for 5 leading digits max, etc.\n // This implementation is different from Google's\n // in that it searches for a fitting format\n // even if the user has entered less than\n // `MIN_LEADING_DIGITS_LENGTH` digits of a national number.\n // Because some leading digit patterns already match for a single first digit.\n\n var leadingDigitsPatternIndex = leadingDigits.length - MIN_LEADING_DIGITS_LENGTH;\n\n if (leadingDigitsPatternIndex < 0) {\n leadingDigitsPatternIndex = 0;\n }\n\n this.matchingFormats = this.matchingFormats.filter(function (format) {\n return _this3.formatSuits(format, international, nationalPrefix) && _this3.formatMatches(format, leadingDigits, leadingDigitsPatternIndex);\n }); // If there was a phone number format chosen\n // and it no longer holds given the new leading digits then reset it.\n // The test for this `if` condition is marked as:\n // \"Reset a chosen format when it no longer holds given the new leading digits\".\n // To construct a valid test case for this one can find a country\n // in `PhoneNumberMetadata.xml` yielding one format for 3 `<leadingDigits>`\n // and yielding another format for 4 `<leadingDigits>` (Australia in this case).\n\n if (this.chosenFormat && this.matchingFormats.indexOf(this.chosenFormat) === -1) {\n this.resetFormat();\n }\n }\n }, {\n key: \"formatSuits\",\n value: function formatSuits(format, international, nationalPrefix) {\n // When a prefix before a national (significant) number is\n // simply a national prefix, then it's parsed as `this.nationalPrefix`.\n // In more complex cases, a prefix before national (significant) number\n // could include a national prefix as well as some \"capturing groups\",\n // and in that case there's no info whether a national prefix has been parsed.\n // If national prefix is not used when formatting a phone number\n // using this format, but a national prefix has been entered by the user,\n // and was extracted, then discard such phone number format.\n // In Google's \"AsYouType\" formatter code, the equivalent would be this part:\n // https://github.com/google/libphonenumber/blob/0a45cfd96e71cad8edb0e162a70fcc8bd9728933/java/libphonenumber/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java#L175-L184\n if (nationalPrefix && !format.usesNationalPrefix() && // !format.domesticCarrierCodeFormattingRule() &&\n !format.nationalPrefixIsOptionalWhenFormattingInNationalFormat()) {\n return false;\n } // If national prefix is mandatory for this phone number format\n // and there're no guarantees that a national prefix is present in user input\n // then discard this phone number format as not suitable.\n // In Google's \"AsYouType\" formatter code, the equivalent would be this part:\n // https://github.com/google/libphonenumber/blob/0a45cfd96e71cad8edb0e162a70fcc8bd9728933/java/libphonenumber/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java#L185-L193\n\n\n if (!international && !nationalPrefix && format.nationalPrefixIsMandatoryWhenFormattingInNationalFormat()) {\n return false;\n }\n\n return true;\n }\n }, {\n key: \"formatMatches\",\n value: function formatMatches(format, leadingDigits, leadingDigitsPatternIndex) {\n var leadingDigitsPatternsCount = format.leadingDigitsPatterns().length; // If this format is not restricted to a certain\n // leading digits pattern then it fits.\n\n if (leadingDigitsPatternsCount === 0) {\n return true;\n } // Start excluding any non-matching formats only when the\n // national number entered so far is at least 3 digits long,\n // otherwise format matching would give false negatives.\n // For example, when the digits entered so far are `2`\n // and the leading digits pattern is `21` –\n // it's quite obvious in this case that the format could be the one\n // but due to the absence of further digits it would give false negative.\n\n\n if (leadingDigits.length < MIN_LEADING_DIGITS_LENGTH) {\n return true;\n } // If at least `MIN_LEADING_DIGITS_LENGTH` digits of a national number are available\n // then format matching starts narrowing down the list of possible formats\n // (only previously matched formats are considered for next digits).\n\n\n leadingDigitsPatternIndex = Math.min(leadingDigitsPatternIndex, leadingDigitsPatternsCount - 1);\n var leadingDigitsPattern = format.leadingDigitsPatterns()[leadingDigitsPatternIndex]; // Brackets are required for `^` to be applied to\n // all or-ed (`|`) parts, not just the first one.\n\n return new RegExp(\"^(\".concat(leadingDigitsPattern, \")\")).test(leadingDigits);\n }\n }, {\n key: \"getFormatFormat\",\n value: function getFormatFormat(format, international) {\n return international ? format.internationalFormat() : format.format();\n }\n }, {\n key: \"chooseFormat\",\n value: function chooseFormat(state) {\n var _this4 = this;\n\n var _loop2 = function _loop2() {\n if (_isArray2) {\n if (_i2 >= _iterator2.length) return \"break\";\n _ref5 = _iterator2[_i2++];\n } else {\n _i2 = _iterator2.next();\n if (_i2.done) return \"break\";\n _ref5 = _i2.value;\n }\n\n var format = _ref5; // If this format is currently being used\n // and is still suitable, then stick to it.\n\n if (_this4.chosenFormat === format) {\n return \"break\";\n } // Sometimes, a formatting rule inserts additional digits in a phone number,\n // and \"as you type\" formatter can't do that: it should only use the digits\n // that the user has input.\n //\n // For example, in Argentina, there's a format for mobile phone numbers:\n //\n // {\n // \"pattern\": \"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\n // \"leading_digits_patterns\": [\"91\"],\n // \"national_prefix_formatting_rule\": \"0$1\",\n // \"format\": \"$2 15-$3-$4\",\n // \"international_format\": \"$1 $2 $3-$4\"\n // }\n //\n // In that format, `international_format` is used instead of `format`\n // because `format` inserts `15` in the formatted number,\n // and `AsYouType` formatter should only use the digits\n // the user has actually input, without adding any extra digits.\n // In this case, it wouldn't make a difference, because the `15`\n // is first stripped when applying `national_prefix_for_parsing`\n // and then re-added when using `format`, so in reality it doesn't\n // add any new digits to the number, but to detect that, the code\n // would have to be more complex: it would have to try formatting\n // the digits using the format and then see if any digits have\n // actually been added or removed, and then, every time a new digit\n // is input, it should re-check whether the chosen format doesn't\n // alter the digits.\n //\n // Google's code doesn't go that far, and so does this library:\n // it simply requires that a `format` doesn't add any additonal\n // digits to user's input.\n //\n // Also, people in general should move from inputting phone numbers\n // in national format (possibly with national prefixes)\n // and use international phone number format instead:\n // it's a logical thing in the modern age of mobile phones,\n // globalization and the internet.\n //\n\n /* istanbul ignore if */\n\n\n if (!NON_ALTERING_FORMAT_REG_EXP.test(_this4.getFormatFormat(format, state.international))) {\n return \"continue\";\n }\n\n if (!_this4.createTemplateForFormat(format, state)) {\n // Remove the format if it can't generate a template.\n _this4.matchingFormats = _this4.matchingFormats.filter(function (_) {\n return _ !== format;\n });\n return \"continue\";\n }\n\n _this4.chosenFormat = format;\n return \"break\";\n }; // When there are multiple available formats, the formatter uses the first\n // format where a formatting template could be created.\n\n\n _loop: for (var _iterator2 = this.matchingFormats.slice(), _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator]();;) {\n var _ref5;\n\n var _ret = _loop2();\n\n switch (_ret) {\n case \"break\":\n break _loop;\n\n case \"continue\":\n continue;\n }\n }\n\n if (!this.chosenFormat) {\n // No format matches the national (significant) phone number.\n this.resetFormat();\n }\n\n return this.chosenFormat;\n }\n }, {\n key: \"createTemplateForFormat\",\n value: function createTemplateForFormat(format, state) {\n // The formatter doesn't format numbers when numberPattern contains '|', e.g.\n // (20|3)\\d{4}. In those cases we quickly return.\n // (Though there's no such format in current metadata)\n\n /* istanbul ignore if */\n if (SUPPORT_LEGACY_FORMATTING_PATTERNS && format.pattern().indexOf('|') >= 0) {\n return;\n } // Get formatting template for this phone number format\n\n\n var template = this.getTemplateForFormat(format, state); // If the national number entered is too long\n // for any phone number format, then abort.\n\n if (template) {\n this.setNationalNumberTemplate(template, state);\n return true;\n }\n }\n }, {\n key: \"getInternationalPrefixBeforeCountryCallingCode\",\n value: function getInternationalPrefixBeforeCountryCallingCode(_ref6, options) {\n var IDDPrefix = _ref6.IDDPrefix,\n missingPlus = _ref6.missingPlus;\n\n if (IDDPrefix) {\n return options && options.spacing === false ? IDDPrefix : IDDPrefix + ' ';\n }\n\n if (missingPlus) {\n return '';\n }\n\n return '+';\n }\n }, {\n key: \"getTemplate\",\n value: function getTemplate(state) {\n if (!this.template) {\n return;\n } // `this.template` holds the template for a \"complete\" phone number.\n // The currently entered phone number is most likely not \"complete\",\n // so trim all non-populated digits.\n\n\n var index = -1;\n var i = 0;\n var internationalPrefix = state.international ? this.getInternationalPrefixBeforeCountryCallingCode(state, {\n spacing: false\n }) : '';\n\n while (i < internationalPrefix.length + state.getDigitsWithoutInternationalPrefix().length) {\n index = this.template.indexOf(DIGIT_PLACEHOLDER, index + 1);\n i++;\n }\n\n return cutAndStripNonPairedParens(this.template, index + 1);\n }\n }, {\n key: \"setNationalNumberTemplate\",\n value: function setNationalNumberTemplate(template, state) {\n this.nationalNumberTemplate = template;\n this.populatedNationalNumberTemplate = template; // With a new formatting template, the matched position\n // using the old template needs to be reset.\n\n this.populatedNationalNumberTemplatePosition = -1; // For convenience, the public `.template` property\n // contains the whole international number\n // if the phone number being input is international:\n // 'x' for the '+' sign, 'x'es for the country phone code,\n // a spacebar and then the template for the formatted national number.\n\n if (state.international) {\n this.template = this.getInternationalPrefixBeforeCountryCallingCode(state).replace(/[\\d\\+]/g, DIGIT_PLACEHOLDER) + repeat(DIGIT_PLACEHOLDER, state.callingCode.length) + ' ' + template;\n } else {\n this.template = template;\n }\n }\n /**\r\n * Generates formatting template for a national phone number,\r\n * optionally containing a national prefix, for a format.\r\n * @param {Format} format\r\n * @param {string} nationalPrefix\r\n * @return {string}\r\n */\n\n }, {\n key: \"getTemplateForFormat\",\n value: function getTemplateForFormat(format, _ref7) {\n var nationalSignificantNumber = _ref7.nationalSignificantNumber,\n international = _ref7.international,\n nationalPrefix = _ref7.nationalPrefix,\n complexPrefixBeforeNationalSignificantNumber = _ref7.complexPrefixBeforeNationalSignificantNumber;\n var pattern = format.pattern();\n /* istanbul ignore else */\n\n if (SUPPORT_LEGACY_FORMATTING_PATTERNS) {\n pattern = pattern // Replace anything in the form of [..] with \\d\n .replace(CREATE_CHARACTER_CLASS_PATTERN(), '\\\\d') // Replace any standalone digit (not the one in `{}`) with \\d\n .replace(CREATE_STANDALONE_DIGIT_PATTERN(), '\\\\d');\n } // Generate a dummy national number (consisting of `9`s)\n // that fits this format's `pattern`.\n //\n // This match will always succeed,\n // because the \"longest dummy phone number\"\n // has enough length to accomodate any possible\n // national phone number format pattern.\n //\n\n\n var digits = LONGEST_DUMMY_PHONE_NUMBER.match(pattern)[0]; // If the national number entered is too long\n // for any phone number format, then abort.\n\n if (nationalSignificantNumber.length > digits.length) {\n return;\n } // Get a formatting template which can be used to efficiently format\n // a partial number where digits are added one by one.\n // Below `strictPattern` is used for the\n // regular expression (with `^` and `$`).\n // This wasn't originally in Google's `libphonenumber`\n // and I guess they don't really need it\n // because they're not using \"templates\" to format phone numbers\n // but I added `strictPattern` after encountering\n // South Korean phone number formatting bug.\n //\n // Non-strict regular expression bug demonstration:\n //\n // this.nationalSignificantNumber : `111111111` (9 digits)\n //\n // pattern : (\\d{2})(\\d{3,4})(\\d{4})\n // format : `$1 $2 $3`\n // digits : `9999999999` (10 digits)\n //\n // '9999999999'.replace(new RegExp(/(\\d{2})(\\d{3,4})(\\d{4})/g), '$1 $2 $3') = \"99 9999 9999\"\n //\n // template : xx xxxx xxxx\n //\n // But the correct template in this case is `xx xxx xxxx`.\n // The template was generated incorrectly because of the\n // `{3,4}` variability in the `pattern`.\n //\n // The fix is, if `this.nationalSignificantNumber` has already sufficient length\n // to satisfy the `pattern` completely then `this.nationalSignificantNumber`\n // is used instead of `digits`.\n\n\n var strictPattern = new RegExp('^' + pattern + '$');\n var nationalNumberDummyDigits = nationalSignificantNumber.replace(/\\d/g, DUMMY_DIGIT); // If `this.nationalSignificantNumber` has already sufficient length\n // to satisfy the `pattern` completely then use it\n // instead of `digits`.\n\n if (strictPattern.test(nationalNumberDummyDigits)) {\n digits = nationalNumberDummyDigits;\n }\n\n var numberFormat = this.getFormatFormat(format, international);\n var nationalPrefixIncludedInTemplate; // If a user did input a national prefix (and that's guaranteed),\n // and if a `format` does have a national prefix formatting rule,\n // then see if that national prefix formatting rule\n // prepends exactly the same national prefix the user has input.\n // If that's the case, then use the `format` with the national prefix formatting rule.\n // Otherwise, use the `format` without the national prefix formatting rule,\n // and prepend a national prefix manually to it.\n\n if (this.shouldTryNationalPrefixFormattingRule(format, {\n international: international,\n nationalPrefix: nationalPrefix\n })) {\n var numberFormatWithNationalPrefix = numberFormat.replace(FIRST_GROUP_PATTERN, format.nationalPrefixFormattingRule()); // If `national_prefix_formatting_rule` of a `format` simply prepends\n // national prefix at the start of a national (significant) number,\n // then such formatting can be used with `AsYouType` formatter.\n // There seems to be no `else` case: everywhere in metadata,\n // national prefix formatting rule is national prefix + $1,\n // or `($1)`, in which case such format isn't even considered\n // when the user has input a national prefix.\n\n /* istanbul ignore else */\n\n if (parseDigits(format.nationalPrefixFormattingRule()) === (nationalPrefix || '') + parseDigits('$1')) {\n numberFormat = numberFormatWithNationalPrefix;\n nationalPrefixIncludedInTemplate = true; // Replace all digits of the national prefix in the formatting template\n // with `DIGIT_PLACEHOLDER`s.\n\n if (nationalPrefix) {\n var i = nationalPrefix.length;\n\n while (i > 0) {\n numberFormat = numberFormat.replace(/\\d/, DIGIT_PLACEHOLDER);\n i--;\n }\n }\n }\n } // Generate formatting template for this phone number format.\n\n\n var template = digits // Format the dummy phone number according to the format.\n .replace(new RegExp(pattern), numberFormat) // Replace each dummy digit with a DIGIT_PLACEHOLDER.\n .replace(new RegExp(DUMMY_DIGIT, 'g'), DIGIT_PLACEHOLDER); // If a prefix of a national (significant) number is not as simple\n // as just a basic national prefix, then just prepend such prefix\n // before the national (significant) number, optionally spacing\n // the two with a whitespace.\n\n if (!nationalPrefixIncludedInTemplate) {\n if (complexPrefixBeforeNationalSignificantNumber) {\n // Prepend the prefix to the template manually.\n template = repeat(DIGIT_PLACEHOLDER, complexPrefixBeforeNationalSignificantNumber.length) + ' ' + template;\n } else if (nationalPrefix) {\n // Prepend national prefix to the template manually.\n template = repeat(DIGIT_PLACEHOLDER, nationalPrefix.length) + this.getSeparatorAfterNationalPrefix(format) + template;\n }\n }\n\n if (international) {\n template = applyInternationalSeparatorStyle(template);\n }\n\n return template;\n }\n }, {\n key: \"formatNextNationalNumberDigits\",\n value: function formatNextNationalNumberDigits(digits) {\n var result = populateTemplateWithDigits(this.populatedNationalNumberTemplate, this.populatedNationalNumberTemplatePosition, digits);\n\n if (!result) {\n // Reset the format.\n this.resetFormat();\n return;\n }\n\n this.populatedNationalNumberTemplate = result[0];\n this.populatedNationalNumberTemplatePosition = result[1]; // Return the formatted phone number so far.\n\n return cutAndStripNonPairedParens(this.populatedNationalNumberTemplate, this.populatedNationalNumberTemplatePosition + 1); // The old way which was good for `input-format` but is not so good\n // for `react-phone-number-input`'s default input (`InputBasic`).\n // return closeNonPairedParens(this.populatedNationalNumberTemplate, this.populatedNationalNumberTemplatePosition + 1)\n // \t.replace(new RegExp(DIGIT_PLACEHOLDER, 'g'), ' ')\n }\n }]);\n\n return AsYouTypeFormatter;\n}();\n\nexport { AsYouTypeFormatter as default };","function _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n\nfunction _iterableToArrayLimit(arr, i) {\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 _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nimport _extractCountryCallingCode from './helpers/extractCountryCallingCode';\nimport extractCountryCallingCodeFromInternationalNumberWithoutPlusSign from './helpers/extractCountryCallingCodeFromInternationalNumberWithoutPlusSign';\nimport extractNationalNumberFromPossiblyIncompleteNumber from './helpers/extractNationalNumberFromPossiblyIncompleteNumber';\nimport stripIddPrefix from './helpers/stripIddPrefix';\nimport parseDigits from './helpers/parseDigits';\nimport { VALID_DIGITS, VALID_PUNCTUATION, PLUS_CHARS } from './constants';\nvar VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART = '[' + VALID_PUNCTUATION + VALID_DIGITS + ']+';\nvar VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART_PATTERN = new RegExp('^' + VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART + '$', 'i');\nvar VALID_FORMATTED_PHONE_NUMBER_PART = '(?:' + '[' + PLUS_CHARS + ']' + '[' + VALID_PUNCTUATION + VALID_DIGITS + ']*' + '|' + '[' + VALID_PUNCTUATION + VALID_DIGITS + ']+' + ')';\nvar AFTER_PHONE_NUMBER_DIGITS_END_PATTERN = new RegExp('[^' + VALID_PUNCTUATION + VALID_DIGITS + ']+' + '.*' + '$'); // Tests whether `national_prefix_for_parsing` could match\n// different national prefixes.\n// Matches anything that's not a digit or a square bracket.\n\nvar COMPLEX_NATIONAL_PREFIX = /[^\\d\\[\\]]/;\n\nvar AsYouTypeParser = /*#__PURE__*/function () {\n function AsYouTypeParser(_ref) {\n var defaultCountry = _ref.defaultCountry,\n defaultCallingCode = _ref.defaultCallingCode,\n metadata = _ref.metadata,\n onNationalSignificantNumberChange = _ref.onNationalSignificantNumberChange;\n\n _classCallCheck(this, AsYouTypeParser);\n\n this.defaultCountry = defaultCountry;\n this.defaultCallingCode = defaultCallingCode;\n this.metadata = metadata;\n this.onNationalSignificantNumberChange = onNationalSignificantNumberChange;\n }\n\n _createClass(AsYouTypeParser, [{\n key: \"input\",\n value: function input(text, state) {\n var _extractFormattedDigi = extractFormattedDigitsAndPlus(text),\n _extractFormattedDigi2 = _slicedToArray(_extractFormattedDigi, 2),\n formattedDigits = _extractFormattedDigi2[0],\n hasPlus = _extractFormattedDigi2[1];\n\n var digits = parseDigits(formattedDigits); // Checks for a special case: just a leading `+` has been entered.\n\n var justLeadingPlus;\n\n if (hasPlus) {\n if (!state.digits) {\n state.startInternationalNumber();\n\n if (!digits) {\n justLeadingPlus = true;\n }\n }\n }\n\n if (digits) {\n this.inputDigits(digits, state);\n }\n\n return {\n digits: digits,\n justLeadingPlus: justLeadingPlus\n };\n }\n /**\r\n * Inputs \"next\" phone number digits.\r\n * @param {string} digits\r\n * @return {string} [formattedNumber] Formatted national phone number (if it can be formatted at this stage). Returning `undefined` means \"don't format the national phone number at this stage\".\r\n */\n\n }, {\n key: \"inputDigits\",\n value: function inputDigits(nextDigits, state) {\n var digits = state.digits;\n var hasReceivedThreeLeadingDigits = digits.length < 3 && digits.length + nextDigits.length >= 3; // Append phone number digits.\n\n state.appendDigits(nextDigits); // Attempt to extract IDD prefix:\n // Some users input their phone number in international format,\n // but in an \"out-of-country\" dialing format instead of using the leading `+`.\n // https://github.com/catamphetamine/libphonenumber-js/issues/185\n // Detect such numbers as soon as there're at least 3 digits.\n // Google's library attempts to extract IDD prefix at 3 digits,\n // so this library just copies that behavior.\n // I guess that's because the most commot IDD prefixes are\n // `00` (Europe) and `011` (US).\n // There exist really long IDD prefixes too:\n // for example, in Australia the default IDD prefix is `0011`,\n // and it could even be as long as `14880011`.\n // An IDD prefix is extracted here, and then every time when\n // there's a new digit and the number couldn't be formatted.\n\n if (hasReceivedThreeLeadingDigits) {\n this.extractIddPrefix(state);\n }\n\n if (this.isWaitingForCountryCallingCode(state)) {\n if (!this.extractCountryCallingCode(state)) {\n return;\n }\n } else {\n state.appendNationalSignificantNumberDigits(nextDigits);\n } // If a phone number is being input in international format,\n // then it's not valid for it to have a national prefix.\n // Still, some people incorrectly input such numbers with a national prefix.\n // In such cases, only attempt to strip a national prefix if the number becomes too long.\n // (but that is done later, not here)\n\n\n if (!state.international) {\n if (!this.hasExtractedNationalSignificantNumber) {\n this.extractNationalSignificantNumber(state.getNationalDigits(), state.update);\n }\n }\n }\n }, {\n key: \"isWaitingForCountryCallingCode\",\n value: function isWaitingForCountryCallingCode(_ref2) {\n var international = _ref2.international,\n callingCode = _ref2.callingCode;\n return international && !callingCode;\n } // Extracts a country calling code from a number\n // being entered in internatonal format.\n\n }, {\n key: \"extractCountryCallingCode\",\n value: function extractCountryCallingCode(state) {\n var _extractCountryCallin = _extractCountryCallingCode('+' + state.getDigitsWithoutInternationalPrefix(), this.defaultCountry, this.defaultCallingCode, this.metadata.metadata),\n countryCallingCode = _extractCountryCallin.countryCallingCode,\n number = _extractCountryCallin.number;\n\n if (countryCallingCode) {\n state.setCallingCode(countryCallingCode);\n state.update({\n nationalSignificantNumber: number\n });\n return true;\n }\n }\n }, {\n key: \"reset\",\n value: function reset(numberingPlan) {\n if (numberingPlan) {\n this.hasSelectedNumberingPlan = true;\n\n var nationalPrefixForParsing = numberingPlan._nationalPrefixForParsing();\n\n this.couldPossiblyExtractAnotherNationalSignificantNumber = nationalPrefixForParsing && COMPLEX_NATIONAL_PREFIX.test(nationalPrefixForParsing);\n } else {\n this.hasSelectedNumberingPlan = undefined;\n this.couldPossiblyExtractAnotherNationalSignificantNumber = undefined;\n }\n }\n /**\r\n * Extracts a national (significant) number from user input.\r\n * Google's library is different in that it only applies `national_prefix_for_parsing`\r\n * and doesn't apply `national_prefix_transform_rule` after that.\r\n * https://github.com/google/libphonenumber/blob/a3d70b0487875475e6ad659af404943211d26456/java/libphonenumber/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java#L539\r\n * @return {boolean} [extracted]\r\n */\n\n }, {\n key: \"extractNationalSignificantNumber\",\n value: function extractNationalSignificantNumber(nationalDigits, setState) {\n if (!this.hasSelectedNumberingPlan) {\n return;\n }\n\n var _extractNationalNumbe = extractNationalNumberFromPossiblyIncompleteNumber(nationalDigits, this.metadata),\n nationalPrefix = _extractNationalNumbe.nationalPrefix,\n nationalNumber = _extractNationalNumbe.nationalNumber,\n carrierCode = _extractNationalNumbe.carrierCode;\n\n if (nationalNumber === nationalDigits) {\n return;\n }\n\n this.onExtractedNationalNumber(nationalPrefix, carrierCode, nationalNumber, nationalDigits, setState);\n return true;\n }\n /**\r\n * In Google's code this function is called \"attempt to extract longer NDD\".\r\n * \"Some national prefixes are a substring of others\", they say.\r\n * @return {boolean} [result] — Returns `true` if extracting a national prefix produced different results from what they were.\r\n */\n\n }, {\n key: \"extractAnotherNationalSignificantNumber\",\n value: function extractAnotherNationalSignificantNumber(nationalDigits, prevNationalSignificantNumber, setState) {\n if (!this.hasExtractedNationalSignificantNumber) {\n return this.extractNationalSignificantNumber(nationalDigits, setState);\n }\n\n if (!this.couldPossiblyExtractAnotherNationalSignificantNumber) {\n return;\n }\n\n var _extractNationalNumbe2 = extractNationalNumberFromPossiblyIncompleteNumber(nationalDigits, this.metadata),\n nationalPrefix = _extractNationalNumbe2.nationalPrefix,\n nationalNumber = _extractNationalNumbe2.nationalNumber,\n carrierCode = _extractNationalNumbe2.carrierCode; // If a national prefix has been extracted previously,\n // then it's always extracted as additional digits are added.\n // That's assuming `extractNationalNumberFromPossiblyIncompleteNumber()`\n // doesn't do anything different from what it currently does.\n // So, just in case, here's this check, though it doesn't occur.\n\n /* istanbul ignore if */\n\n\n if (nationalNumber === prevNationalSignificantNumber) {\n return;\n }\n\n this.onExtractedNationalNumber(nationalPrefix, carrierCode, nationalNumber, nationalDigits, setState);\n return true;\n }\n }, {\n key: \"onExtractedNationalNumber\",\n value: function onExtractedNationalNumber(nationalPrefix, carrierCode, nationalSignificantNumber, nationalDigits, setState) {\n var complexPrefixBeforeNationalSignificantNumber;\n var nationalSignificantNumberMatchesInput; // This check also works with empty `this.nationalSignificantNumber`.\n\n var nationalSignificantNumberIndex = nationalDigits.lastIndexOf(nationalSignificantNumber); // If the extracted national (significant) number is the\n // last substring of the `digits`, then it means that it hasn't been altered:\n // no digits have been removed from the national (significant) number\n // while applying `national_prefix_transform_rule`.\n // https://gitlab.com/catamphetamine/libphonenumber-js/-/blob/master/METADATA.md#national_prefix_for_parsing--national_prefix_transform_rule\n\n if (nationalSignificantNumberIndex >= 0 && nationalSignificantNumberIndex === nationalDigits.length - nationalSignificantNumber.length) {\n nationalSignificantNumberMatchesInput = true; // If a prefix of a national (significant) number is not as simple\n // as just a basic national prefix, then such prefix is stored in\n // `this.complexPrefixBeforeNationalSignificantNumber` property and will be\n // prepended \"as is\" to the national (significant) number to produce\n // a formatted result.\n\n var prefixBeforeNationalNumber = nationalDigits.slice(0, nationalSignificantNumberIndex); // `prefixBeforeNationalNumber` is always non-empty,\n // because `onExtractedNationalNumber()` isn't called\n // when a national (significant) number hasn't been actually \"extracted\":\n // when a national (significant) number is equal to the national part of `digits`,\n // then `onExtractedNationalNumber()` doesn't get called.\n\n if (prefixBeforeNationalNumber !== nationalPrefix) {\n complexPrefixBeforeNationalSignificantNumber = prefixBeforeNationalNumber;\n }\n }\n\n setState({\n nationalPrefix: nationalPrefix,\n carrierCode: carrierCode,\n nationalSignificantNumber: nationalSignificantNumber,\n nationalSignificantNumberMatchesInput: nationalSignificantNumberMatchesInput,\n complexPrefixBeforeNationalSignificantNumber: complexPrefixBeforeNationalSignificantNumber\n }); // `onExtractedNationalNumber()` is only called when\n // the national (significant) number actually did change.\n\n this.hasExtractedNationalSignificantNumber = true;\n this.onNationalSignificantNumberChange();\n }\n }, {\n key: \"reExtractNationalSignificantNumber\",\n value: function reExtractNationalSignificantNumber(state) {\n // Attempt to extract a national prefix.\n //\n // Some people incorrectly input national prefix\n // in an international phone number.\n // For example, some people write British phone numbers as `+44(0)...`.\n //\n // Also, in some rare cases, it is valid for a national prefix\n // to be a part of an international phone number.\n // For example, mobile phone numbers in Mexico are supposed to be\n // dialled internationally using a `1` national prefix,\n // so the national prefix will be part of an international number.\n //\n // Quote from:\n // https://www.mexperience.com/dialing-cell-phones-in-mexico/\n //\n // \"Dialing a Mexican cell phone from abroad\n // When you are calling a cell phone number in Mexico from outside Mexico,\n // it’s necessary to dial an additional “1†after Mexico’s country code\n // (which is “52â€) and before the area code.\n // You also ignore the 045, and simply dial the area code and the\n // cell phone’s number.\n //\n // If you don’t add the “1â€, you’ll receive a recorded announcement\n // asking you to redial using it.\n //\n // For example, if you are calling from the USA to a cell phone\n // in Mexico City, you would dial +52 – 1 – 55 – 1234 5678.\n // (Note that this is different to calling a land line in Mexico City\n // from abroad, where the number dialed would be +52 – 55 – 1234 5678)\".\n //\n // Google's demo output:\n // https://libphonenumber.appspot.com/phonenumberparser?number=%2b5215512345678&country=MX\n //\n if (this.extractAnotherNationalSignificantNumber(state.getNationalDigits(), state.nationalSignificantNumber, state.update)) {\n return true;\n } // If no format matches the phone number, then it could be\n // \"a really long IDD\" (quote from a comment in Google's library).\n // An IDD prefix is first extracted when the user has entered at least 3 digits,\n // and then here — every time when there's a new digit and the number\n // couldn't be formatted.\n // For example, in Australia the default IDD prefix is `0011`,\n // and it could even be as long as `14880011`.\n //\n // Could also check `!hasReceivedThreeLeadingDigits` here\n // to filter out the case when this check duplicates the one\n // already performed when there're 3 leading digits,\n // but it's not a big deal, and in most cases there\n // will be a suitable `format` when there're 3 leading digits.\n //\n\n\n if (this.extractIddPrefix(state)) {\n this.extractCallingCodeAndNationalSignificantNumber(state);\n return true;\n } // Google's AsYouType formatter supports sort of an \"autocorrection\" feature\n // when it \"autocorrects\" numbers that have been input for a country\n // with that country's calling code.\n // Such \"autocorrection\" feature looks weird, but different people have been requesting it:\n // https://github.com/catamphetamine/libphonenumber-js/issues/376\n // https://github.com/catamphetamine/libphonenumber-js/issues/375\n // https://github.com/catamphetamine/libphonenumber-js/issues/316\n\n\n if (this.fixMissingPlus(state)) {\n this.extractCallingCodeAndNationalSignificantNumber(state);\n return true;\n }\n }\n }, {\n key: \"extractIddPrefix\",\n value: function extractIddPrefix(state) {\n // An IDD prefix can't be present in a number written with a `+`.\n // Also, don't re-extract an IDD prefix if has already been extracted.\n var international = state.international,\n IDDPrefix = state.IDDPrefix,\n digits = state.digits,\n nationalSignificantNumber = state.nationalSignificantNumber;\n\n if (international || IDDPrefix) {\n return;\n } // Some users input their phone number in \"out-of-country\"\n // dialing format instead of using the leading `+`.\n // https://github.com/catamphetamine/libphonenumber-js/issues/185\n // Detect such numbers.\n\n\n var numberWithoutIDD = stripIddPrefix(digits, this.defaultCountry, this.defaultCallingCode, this.metadata.metadata);\n\n if (numberWithoutIDD !== undefined && numberWithoutIDD !== digits) {\n // If an IDD prefix was stripped then convert the IDD-prefixed number\n // to international number for subsequent parsing.\n state.update({\n IDDPrefix: digits.slice(0, digits.length - numberWithoutIDD.length)\n });\n this.startInternationalNumber(state);\n return true;\n }\n }\n }, {\n key: \"fixMissingPlus\",\n value: function fixMissingPlus(state) {\n if (!state.international) {\n var _extractCountryCallin2 = extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(state.digits, this.defaultCountry, this.defaultCallingCode, this.metadata.metadata),\n newCallingCode = _extractCountryCallin2.countryCallingCode,\n number = _extractCountryCallin2.number;\n\n if (newCallingCode) {\n state.update({\n missingPlus: true\n });\n this.startInternationalNumber(state);\n return true;\n }\n }\n }\n }, {\n key: \"startInternationalNumber\",\n value: function startInternationalNumber(state) {\n state.startInternationalNumber(); // If a national (significant) number has been extracted before, reset it.\n\n if (state.nationalSignificantNumber) {\n state.resetNationalSignificantNumber();\n this.onNationalSignificantNumberChange();\n this.hasExtractedNationalSignificantNumber = undefined;\n }\n }\n }, {\n key: \"extractCallingCodeAndNationalSignificantNumber\",\n value: function extractCallingCodeAndNationalSignificantNumber(state) {\n if (this.extractCountryCallingCode(state)) {\n // `this.extractCallingCode()` is currently called when the number\n // couldn't be formatted during the standard procedure.\n // Normally, the national prefix would be re-extracted\n // for an international number if such number couldn't be formatted,\n // but since it's already not able to be formatted,\n // there won't be yet another retry, so also extract national prefix here.\n this.extractNationalSignificantNumber(state.getNationalDigits(), state.update);\n }\n }\n }]);\n\n return AsYouTypeParser;\n}();\n/**\r\n * Extracts formatted phone number from text (if there's any).\r\n * @param {string} text\r\n * @return {string} [formattedPhoneNumber]\r\n */\n\n\nexport { AsYouTypeParser as default };\n\nfunction extractFormattedPhoneNumber(text) {\n // Attempt to extract a possible number from the string passed in.\n var startsAt = text.search(VALID_FORMATTED_PHONE_NUMBER_PART);\n\n if (startsAt < 0) {\n return;\n } // Trim everything to the left of the phone number.\n\n\n text = text.slice(startsAt); // Trim the `+`.\n\n var hasPlus;\n\n if (text[0] === '+') {\n hasPlus = true;\n text = text.slice('+'.length);\n } // Trim everything to the right of the phone number.\n\n\n text = text.replace(AFTER_PHONE_NUMBER_DIGITS_END_PATTERN, ''); // Re-add the previously trimmed `+`.\n\n if (hasPlus) {\n text = '+' + text;\n }\n\n return text;\n}\n/**\r\n * Extracts formatted phone number digits (and a `+`) from text (if there're any).\r\n * @param {string} text\r\n * @return {any[]}\r\n */\n\n\nfunction _extractFormattedDigitsAndPlus(text) {\n // Extract a formatted phone number part from text.\n var extractedNumber = extractFormattedPhoneNumber(text) || ''; // Trim a `+`.\n\n if (extractedNumber[0] === '+') {\n return [extractedNumber.slice('+'.length), true];\n }\n\n return [extractedNumber];\n}\n/**\r\n * Extracts formatted phone number digits (and a `+`) from text (if there're any).\r\n * @param {string} text\r\n * @return {any[]}\r\n */\n\n\nexport function extractFormattedDigitsAndPlus(text) {\n var _extractFormattedDigi3 = _extractFormattedDigitsAndPlus(text),\n _extractFormattedDigi4 = _slicedToArray(_extractFormattedDigi3, 2),\n formattedDigits = _extractFormattedDigi4[0],\n hasPlus = _extractFormattedDigi4[1]; // If the extracted phone number part\n // can possibly be a part of some valid phone number\n // then parse phone number characters from a formatted phone number.\n\n\n if (!VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART_PATTERN.test(formattedDigits)) {\n formattedDigits = '';\n }\n\n return [formattedDigits, hasPlus];\n}","function _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n\nfunction _iterableToArrayLimit(arr, i) {\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 _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nimport Metadata from './metadata';\nimport PhoneNumber from './PhoneNumber';\nimport AsYouTypeState from './AsYouTypeState';\nimport AsYouTypeFormatter, { DIGIT_PLACEHOLDER } from './AsYouTypeFormatter';\nimport AsYouTypeParser, { extractFormattedDigitsAndPlus } from './AsYouTypeParser';\nimport getCountryByCallingCode from './helpers/getCountryByCallingCode';\nvar USE_NON_GEOGRAPHIC_COUNTRY_CODE = false;\n\nvar AsYouType = /*#__PURE__*/function () {\n /**\r\n * @param {(string|object)?} [optionsOrDefaultCountry] - The default country used for parsing non-international phone numbers. Can also be an `options` object.\r\n * @param {Object} metadata\r\n */\n function AsYouType(optionsOrDefaultCountry, metadata) {\n _classCallCheck(this, AsYouType);\n\n this.metadata = new Metadata(metadata);\n\n var _this$getCountryAndCa = this.getCountryAndCallingCode(optionsOrDefaultCountry),\n _this$getCountryAndCa2 = _slicedToArray(_this$getCountryAndCa, 2),\n defaultCountry = _this$getCountryAndCa2[0],\n defaultCallingCode = _this$getCountryAndCa2[1];\n\n this.defaultCountry = defaultCountry;\n this.defaultCallingCode = defaultCallingCode;\n this.reset();\n }\n\n _createClass(AsYouType, [{\n key: \"getCountryAndCallingCode\",\n value: function getCountryAndCallingCode(optionsOrDefaultCountry) {\n // Set `defaultCountry` and `defaultCallingCode` options.\n var defaultCountry;\n var defaultCallingCode; // Turns out `null` also has type \"object\". Weird.\n\n if (optionsOrDefaultCountry) {\n if (_typeof(optionsOrDefaultCountry) === 'object') {\n defaultCountry = optionsOrDefaultCountry.defaultCountry;\n defaultCallingCode = optionsOrDefaultCountry.defaultCallingCode;\n } else {\n defaultCountry = optionsOrDefaultCountry;\n }\n }\n\n if (defaultCountry && !this.metadata.hasCountry(defaultCountry)) {\n defaultCountry = undefined;\n }\n\n if (defaultCallingCode) {\n /* istanbul ignore if */\n if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n if (this.metadata.isNonGeographicCallingCode(defaultCallingCode)) {\n defaultCountry = '001';\n }\n }\n }\n\n return [defaultCountry, defaultCallingCode];\n }\n /**\r\n * Inputs \"next\" phone number characters.\r\n * @param {string} text\r\n * @return {string} Formatted phone number characters that have been input so far.\r\n */\n\n }, {\n key: \"input\",\n value: function input(text) {\n var _this$parser$input = this.parser.input(text, this.state),\n digits = _this$parser$input.digits,\n justLeadingPlus = _this$parser$input.justLeadingPlus;\n\n if (justLeadingPlus) {\n this.formattedOutput = '+';\n } else if (digits) {\n this.determineTheCountryIfNeeded(); // Match the available formats by the currently available leading digits.\n\n if (this.state.nationalSignificantNumber) {\n this.formatter.narrowDownMatchingFormats(this.state);\n }\n\n var formattedNationalNumber;\n\n if (this.metadata.hasSelectedNumberingPlan()) {\n formattedNationalNumber = this.formatter.format(digits, this.state);\n }\n\n if (formattedNationalNumber === undefined) {\n // See if another national (significant) number could be re-extracted.\n if (this.parser.reExtractNationalSignificantNumber(this.state)) {\n this.determineTheCountryIfNeeded(); // If it could, then re-try formatting the new national (significant) number.\n\n var nationalDigits = this.state.getNationalDigits();\n\n if (nationalDigits) {\n formattedNationalNumber = this.formatter.format(nationalDigits, this.state);\n }\n }\n }\n\n this.formattedOutput = formattedNationalNumber ? this.getFullNumber(formattedNationalNumber) : this.getNonFormattedNumber();\n }\n\n return this.formattedOutput;\n }\n }, {\n key: \"reset\",\n value: function reset() {\n var _this = this;\n\n this.state = new AsYouTypeState({\n onCountryChange: function onCountryChange(country) {\n // Before version `1.6.0`, the official `AsYouType` formatter API\n // included the `.country` property of an `AsYouType` instance.\n // Since that property (along with the others) have been moved to\n // `this.state`, `this.country` property is emulated for compatibility\n // with the old versions.\n _this.country = country;\n },\n onCallingCodeChange: function onCallingCodeChange(country, callingCode) {\n _this.metadata.selectNumberingPlan(country, callingCode);\n\n _this.formatter.reset(_this.metadata.numberingPlan, _this.state);\n\n _this.parser.reset(_this.metadata.numberingPlan);\n }\n });\n this.formatter = new AsYouTypeFormatter({\n state: this.state,\n metadata: this.metadata\n });\n this.parser = new AsYouTypeParser({\n defaultCountry: this.defaultCountry,\n defaultCallingCode: this.defaultCallingCode,\n metadata: this.metadata,\n state: this.state,\n onNationalSignificantNumberChange: function onNationalSignificantNumberChange() {\n _this.determineTheCountryIfNeeded();\n\n _this.formatter.reset(_this.metadata.numberingPlan, _this.state);\n }\n });\n this.state.reset(this.defaultCountry, this.defaultCallingCode);\n this.formattedOutput = '';\n return this;\n }\n /**\r\n * Returns `true` if the phone number is being input in international format.\r\n * In other words, returns `true` if and only if the parsed phone number starts with a `\"+\"`.\r\n * @return {boolean}\r\n */\n\n }, {\n key: \"isInternational\",\n value: function isInternational() {\n return this.state.international;\n }\n /**\r\n * Returns the \"country calling code\" part of the phone number.\r\n * Returns `undefined` if the number is not being input in international format.\r\n * Returns \"country calling code\" for \"non-geographic\" phone numbering plans too.\r\n * @return {string} [callingCode]\r\n */\n\n }, {\n key: \"getCallingCode\",\n value: function getCallingCode() {\n return this.state.callingCode;\n } // A legacy alias.\n\n }, {\n key: \"getCountryCallingCode\",\n value: function getCountryCallingCode() {\n return this.getCallingCode();\n }\n /**\r\n * Returns a two-letter country code of the phone number.\r\n * Returns `undefined` for \"non-geographic\" phone numbering plans.\r\n * Returns `undefined` if no phone number has been input yet.\r\n * @return {string} [country]\r\n */\n\n }, {\n key: \"getCountry\",\n value: function getCountry() {\n var _this$state = this.state,\n digits = _this$state.digits,\n country = _this$state.country; // If no digits have been input yet,\n // then `this.country` is the `defaultCountry`.\n // Won't return the `defaultCountry` in such case.\n\n if (!digits) {\n return;\n }\n\n var countryCode = country;\n /* istanbul ignore if */\n\n if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n // `AsYouType.getCountry()` returns `undefined`\n // for \"non-geographic\" phone numbering plans.\n if (countryCode === '001') {\n countryCode = undefined;\n }\n }\n\n return countryCode;\n }\n }, {\n key: \"determineTheCountryIfNeeded\",\n value: function determineTheCountryIfNeeded() {\n // Suppose a user enters a phone number in international format,\n // and there're several countries corresponding to that country calling code,\n // and a country has been derived from the number, and then\n // a user enters one more digit and the number is no longer\n // valid for the derived country, so the country should be re-derived\n // on every new digit in those cases.\n //\n // If the phone number is being input in national format,\n // then it could be a case when `defaultCountry` wasn't specified\n // when creating `AsYouType` instance, and just `defaultCallingCode` was specified,\n // and that \"calling code\" could correspond to a \"non-geographic entity\",\n // or there could be several countries corresponding to that country calling code.\n // In those cases, `this.country` is `undefined` and should be derived\n // from the number. Again, if country calling code is ambiguous, then\n // `this.country` should be re-derived with each new digit.\n //\n if (!this.state.country || this.isCountryCallingCodeAmbiguous()) {\n this.determineTheCountry();\n }\n } // Prepends `+CountryCode ` in case of an international phone number\n\n }, {\n key: \"getFullNumber\",\n value: function getFullNumber(formattedNationalNumber) {\n var _this2 = this;\n\n if (this.isInternational()) {\n var prefix = function prefix(text) {\n return _this2.formatter.getInternationalPrefixBeforeCountryCallingCode(_this2.state, {\n spacing: text ? true : false\n }) + text;\n };\n\n var callingCode = this.state.callingCode;\n\n if (!callingCode) {\n return prefix(\"\".concat(this.state.getDigitsWithoutInternationalPrefix()));\n }\n\n if (!formattedNationalNumber) {\n return prefix(callingCode);\n }\n\n return prefix(\"\".concat(callingCode, \" \").concat(formattedNationalNumber));\n }\n\n return formattedNationalNumber;\n }\n }, {\n key: \"getNonFormattedNationalNumberWithPrefix\",\n value: function getNonFormattedNationalNumberWithPrefix() {\n var _this$state2 = this.state,\n nationalSignificantNumber = _this$state2.nationalSignificantNumber,\n complexPrefixBeforeNationalSignificantNumber = _this$state2.complexPrefixBeforeNationalSignificantNumber,\n nationalPrefix = _this$state2.nationalPrefix;\n var number = nationalSignificantNumber;\n var prefix = complexPrefixBeforeNationalSignificantNumber || nationalPrefix;\n\n if (prefix) {\n number = prefix + number;\n }\n\n return number;\n }\n }, {\n key: \"getNonFormattedNumber\",\n value: function getNonFormattedNumber() {\n var nationalSignificantNumberMatchesInput = this.state.nationalSignificantNumberMatchesInput;\n return this.getFullNumber(nationalSignificantNumberMatchesInput ? this.getNonFormattedNationalNumberWithPrefix() : this.state.getNationalDigits());\n }\n }, {\n key: \"getNonFormattedTemplate\",\n value: function getNonFormattedTemplate() {\n var number = this.getNonFormattedNumber();\n\n if (number) {\n return number.replace(/[\\+\\d]/g, DIGIT_PLACEHOLDER);\n }\n }\n }, {\n key: \"isCountryCallingCodeAmbiguous\",\n value: function isCountryCallingCodeAmbiguous() {\n var callingCode = this.state.callingCode;\n var countryCodes = this.metadata.getCountryCodesForCallingCode(callingCode);\n return countryCodes && countryCodes.length > 1;\n } // Determines the country of the phone number\n // entered so far based on the country phone code\n // and the national phone number.\n\n }, {\n key: \"determineTheCountry\",\n value: function determineTheCountry() {\n this.state.setCountry(getCountryByCallingCode(this.isInternational() ? this.state.callingCode : this.defaultCallingCode, this.state.nationalSignificantNumber, this.metadata));\n }\n /**\r\n * Returns an instance of `PhoneNumber` class.\r\n * Will return `undefined` if no national (significant) number\r\n * digits have been entered so far, or if no `defaultCountry` has been\r\n * set and the user enters a phone number not in international format.\r\n */\n\n }, {\n key: \"getNumber\",\n value: function getNumber() {\n var _this$state3 = this.state,\n nationalSignificantNumber = _this$state3.nationalSignificantNumber,\n carrierCode = _this$state3.carrierCode;\n\n if (this.isInternational()) {\n if (!this.state.callingCode) {\n return;\n }\n } else {\n if (!this.state.country && !this.defaultCallingCode) {\n return;\n }\n }\n\n if (!nationalSignificantNumber) {\n return;\n }\n\n var countryCode = this.getCountry();\n var callingCode = this.getCountryCallingCode() || this.defaultCallingCode;\n var phoneNumber = new PhoneNumber(countryCode || callingCode, nationalSignificantNumber, this.metadata.metadata);\n\n if (carrierCode) {\n phoneNumber.carrierCode = carrierCode;\n } // Phone number extensions are not supported by \"As You Type\" formatter.\n\n\n return phoneNumber;\n }\n /**\r\n * Returns `true` if the phone number is \"possible\".\r\n * Is just a shortcut for `PhoneNumber.isPossible()`.\r\n * @return {boolean}\r\n */\n\n }, {\n key: \"isPossible\",\n value: function isPossible() {\n var phoneNumber = this.getNumber();\n\n if (!phoneNumber) {\n return false;\n }\n\n return phoneNumber.isPossible();\n }\n /**\r\n * Returns `true` if the phone number is \"valid\".\r\n * Is just a shortcut for `PhoneNumber.isValid()`.\r\n * @return {boolean}\r\n */\n\n }, {\n key: \"isValid\",\n value: function isValid() {\n var phoneNumber = this.getNumber();\n\n if (!phoneNumber) {\n return false;\n }\n\n return phoneNumber.isValid();\n }\n /**\r\n * @deprecated\r\n * This method is used in `react-phone-number-input/source/input-control.js`\r\n * in versions before `3.0.16`.\r\n */\n\n }, {\n key: \"getNationalNumber\",\n value: function getNationalNumber() {\n return this.state.nationalSignificantNumber;\n }\n /**\r\n * Returns the phone number characters entered by the user.\r\n * @return {string}\r\n */\n\n }, {\n key: \"getChars\",\n value: function getChars() {\n return (this.state.international ? '+' : '') + this.state.digits;\n }\n /**\r\n * Returns the template for the formatted phone number.\r\n * @return {string}\r\n */\n\n }, {\n key: \"getTemplate\",\n value: function getTemplate() {\n return this.formatter.getTemplate(this.state) || this.getNonFormattedTemplate() || '';\n }\n }]);\n\n return AsYouType;\n}();\n\nexport { AsYouType as default };","import metadata from '../metadata';\nimport { AsYouType as _AsYouType } from '../../core/index';\nexport function AsYouType(country) {\n return _AsYouType.call(this, country, metadata);\n}\nAsYouType.prototype = Object.create(_AsYouType.prototype, {});\nAsYouType.prototype.constructor = AsYouType;","// @noflow\nimport React, { ChangeEvent, useCallback, useEffect, useState } from 'react'\nimport { useTranslation } from 'react-i18next'\n\nimport { countryCodeToPrivacyUrl } from '@/utils/countryCodeHelper'\nimport * as Sentry from '@/utils/sentry'\n\nimport type { CookieConsent } from '@/components/cookie_consent'\nimport type { CookiePreferences } from '@/components/cookie_consent/index'\nimport {\n BaseModalProps,\n Variant\n} from '@/components/shared/CookieConsent/Modals/CookieConsentModal'\nimport {\n Component,\n Context,\n actionToCookieConsent,\n trackCookiePreferences\n} from '@/components/shared/CookieConsent/helpers'\nimport { Action } from '@/components/shared/CookieConsent/types'\n\nimport { ensureNever } from '@/typescript/utils'\n\nimport { cookieConsentBannerState } from '../CookieConsent'\n\ntype ManageProps = {\n variant: Variant\n applyPreferences: (preferences: CookiePreferences) => void\n closeBanner: (arg0: boolean) => void\n}\n\ntype ManageModalProps = BaseModalProps & {\n variant: Variant\n}\n\ntype CookieTypeKey =\n | 'required_cookies'\n | 'functional_cookies'\n | 'marketing_cookies'\n\ninterface CookieCheckboxEvent extends HTMLInputElement {\n name: CookieTypeKey\n}\n\nconst copyContext = 'cookie_consent'\n\nconst ManageModal = ({\n variant,\n shippingCountryCode,\n applyPreferences,\n setShowStrictModal,\n handleModalClose\n}: ManageModalProps): JSX.Element => {\n const { t } = useTranslation('shared')\n\n const [functionalCookies, setFunctionalCookies] = useState(false)\n const [marketingCookies, setMarketingCookies] = useState(false)\n\n const cookieType: Array<{ key: CookieTypeKey; value: boolean }> = [\n // Users are not permitted to opt out of Required Cookies so this value will\n // always be true\n { key: 'required_cookies', value: true },\n { key: 'functional_cookies', value: functionalCookies },\n { key: 'marketing_cookies', value: marketingCookies }\n ]\n\n // These are part of Required Cookies, so are always allowed by default\n const defaultAllowedFunctionalities = [\n 'save_progress',\n 'remember_dog',\n 'store_login'\n ]\n\n // Ticks all checkboxes, therefore allowing all cookies\n const handleOnAcceptAll = useCallback(() => {\n setFunctionalCookies(true)\n setMarketingCookies(true)\n actionToCookieConsent({ action: Action.Accepted, applyPreferences })\n\n trackCookiePreferences({\n preferences: { marketing: true, analytics: true },\n variant,\n component: Component.Modal,\n context: Context.AcceptAll\n })\n\n handleModalClose()\n cookieConsentBannerState({ visible: false })\n }, [applyPreferences, handleModalClose, variant])\n\n const updateLocalStateFromLocalStorage = useCallback(() => {\n const cookieConsent = localStorage.getItem('cookieConsent')\n const cookieConsentJson: CookieConsent = cookieConsent\n ? JSON.parse(cookieConsent)\n : {}\n\n if (!cookieConsentJson || cookieConsentJson.state === 'banner-shown') {\n setFunctionalCookies(false)\n setMarketingCookies(false)\n\n return\n }\n\n cookieConsentJson.preferences.analytics\n ? setFunctionalCookies(true)\n : setFunctionalCookies(false)\n\n cookieConsentJson.preferences.marketing\n ? setMarketingCookies(true)\n : setMarketingCookies(false)\n }, [])\n\n const handleOnChange = useCallback(\n (e: ChangeEvent<CookieCheckboxEvent>) => {\n switch (e.target.name) {\n case 'functional_cookies':\n setFunctionalCookies(!functionalCookies)\n break\n case 'marketing_cookies':\n setMarketingCookies(!marketingCookies)\n break\n case 'required_cookies':\n Sentry.captureException(`Unknown paymentMethodIdentifierType`)\n break\n default:\n ensureNever(e.target.name)\n }\n },\n [functionalCookies, marketingCookies]\n )\n\n const handleOnCancel = useCallback(() => {\n // Resets the local component state back to its\n // initial values\n updateLocalStateFromLocalStorage()\n\n if (variant === Variant.Strict) {\n // Switch to the Strict Modal\n setShowStrictModal(true)\n } else {\n handleModalClose()\n }\n }, [\n handleModalClose,\n setShowStrictModal,\n updateLocalStateFromLocalStorage,\n variant\n ])\n\n const handleOnSave = useCallback(() => {\n actionToCookieConsent({\n action: Action.Saved,\n preferences: {\n marketing: marketingCookies,\n analytics: functionalCookies\n },\n applyPreferences\n })\n\n trackCookiePreferences({\n preferences: {\n marketing: marketingCookies,\n analytics: functionalCookies\n },\n variant,\n component: Component.Modal,\n context: Context.SaveChanges\n })\n\n handleModalClose()\n cookieConsentBannerState({ visible: false })\n }, [\n marketingCookies,\n functionalCookies,\n applyPreferences,\n variant,\n handleModalClose\n ])\n\n useEffect(() => {\n updateLocalStateFromLocalStorage()\n }, [updateLocalStateFromLocalStorage])\n\n return (\n <>\n <div className=\"cookie-modal__info\">\n <h2>{t(`${copyContext}.modal.title`)}</h2>\n <p\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{\n __html: t(`${copyContext}.modal.subtitle`, {\n privacyUrl: countryCodeToPrivacyUrl(shippingCountryCode)\n })\n }}\n />\n </div>\n <div className=\"cookie-modal__control\">\n <div className=\"cookie-modal__control__toggles\">\n {cookieType.map(({ key, value }) => {\n return (\n <label\n className={`cookie-modal__control__toggles__toggle selected ${\n key === 'required_cookies' ? 'required' : ''\n } ${key !== 'required_cookies' && value ? 'active' : ''}`}\n key={key}\n >\n <input\n type=\"checkbox\"\n onChange={handleOnChange}\n checked={value}\n name={key}\n />\n <div>\n <h3>{t(`${copyContext}.modal.${key}.heading`)}</h3>\n <p>{t(`${copyContext}.modal.${key}.description`)}</p>\n </div>\n </label>\n )\n })}\n </div>\n <div className=\"cookie-modal__control__functionality\">\n <div>\n <h3>{t(`${copyContext}.modal.functionality.heading.allowed`)}</h3>\n <ul>\n {defaultAllowedFunctionalities.map((allowedFunctionality) => {\n return (\n <li key={allowedFunctionality}>\n {t(\n `${copyContext}.modal.functionality.${allowedFunctionality}`\n )}\n </li>\n )\n })}\n {functionalCookies && (\n <li>\n {t(`${copyContext}.modal.functionality.site_consistency`)}\n </li>\n )}\n {marketingCookies && (\n <li>{t(`${copyContext}.modal.functionality.serve_ads`)}</li>\n )}\n </ul>\n </div>\n {(!functionalCookies || !marketingCookies) && (\n <div>\n <h3>\n {t(`${copyContext}.modal.functionality.heading.not_allowed`)}\n </h3>\n <ul>\n {!functionalCookies && (\n <li>\n {t(`${copyContext}.modal.functionality.site_consistency`)}\n </li>\n )}\n {!marketingCookies && (\n <li>{t(`${copyContext}.modal.functionality.serve_ads`)}</li>\n )}\n </ul>\n </div>\n )}\n </div>\n </div>\n <div className=\"btn-group\">\n <button\n className=\"btn secondary\"\n type=\"button\"\n onClick={handleOnCancel}\n >\n {t(`${copyContext}.modal.cancel_btn`)}\n </button>\n <button className=\"btn secondary\" type=\"button\" onClick={handleOnSave}>\n {t(`${copyContext}.modal.save_btn`)}\n </button>\n <button\n className=\"btn primary\"\n type=\"button\"\n onClick={handleOnAcceptAll}\n >\n {t(`${copyContext}.modal.accept_btn`)}\n </button>\n </div>\n </>\n )\n}\n\nexport default ManageModal\nexport { ManageProps }\n","// @noflow\nimport segmentTrack from '@/components/analytics/Analytics'\nimport type { CookiePreferences } from '@/components/cookie_consent/index'\nimport { Variant } from '@/components/shared/CookieConsent/Modals/CookieConsentModal'\nimport { Action } from '@/components/shared/CookieConsent/types'\nimport type { LocalStorageCookieConsent } from '@/components/shared/CookieConsent/types'\n\nconst cookieConsentLocalStorageKey = 'cookieConsent'\n\nenum Context {\n Close = 'Close',\n GotIt = 'Got It',\n AcceptAll = 'Accept All',\n SaveChanges = 'Save Changes',\n Scrolled = 'Scrolled'\n}\n\nenum Component {\n Banner = 'Banner',\n Modal = 'Modal',\n Null = 'Null'\n}\n\ntype Props = LocalStorageCookieConsent & {\n applyPreferences?: (preferences: CookiePreferences) => void\n}\n\ntype CookieAnalyticsProps = {\n preferences: CookiePreferences\n variant: Variant\n component: Component\n context: Context\n}\n\nconst actionToCookieConsent = ({\n action,\n preferences,\n applyPreferences\n}: Props): void => {\n switch (action) {\n case Action.Accepted: {\n if (applyPreferences) {\n applyPreferences({ marketing: true, analytics: true })\n }\n\n localStorage.setItem(\n cookieConsentLocalStorageKey,\n JSON.stringify({\n state: 'accepted',\n preferences: { marketing: true, analytics: true }\n })\n )\n\n break\n }\n case Action.None: {\n localStorage.setItem(cookieConsentLocalStorageKey, 'null')\n break\n }\n case Action.Cancelled: {\n break\n }\n case Action.Saved: {\n if (applyPreferences && preferences) {\n applyPreferences(preferences)\n }\n localStorage.setItem(\n cookieConsentLocalStorageKey,\n JSON.stringify({\n state: 'accepted',\n preferences\n })\n )\n break\n }\n case Action.Deny: {\n if (applyPreferences) {\n applyPreferences({ marketing: false, analytics: false })\n }\n localStorage.setItem(\n cookieConsentLocalStorageKey,\n JSON.stringify({\n state: 'accepted',\n preferences: { marketing: false, analytics: false }\n })\n )\n }\n }\n}\n\nconst trackCookiePreferences = ({\n preferences,\n variant,\n component,\n context\n}: CookieAnalyticsProps): void => {\n segmentTrack('Cookie Preferences Saved', {\n preferences,\n variant,\n component,\n context\n })\n}\n\nconst manageCookiesClicked = (): void => {\n segmentTrack('Manage Cookies Clicked')\n}\n\nexport {\n actionToCookieConsent,\n trackCookiePreferences,\n manageCookiesClicked,\n Context,\n Component\n}\n","// @noflow\nimport React, { useCallback } from 'react'\nimport { useTranslation } from 'react-i18next'\n\nimport { countryCodeToPrivacyUrl } from '@/utils/countryCodeHelper'\n\nimport type { CookiePreferences } from '@/components/cookie_consent/index'\nimport {\n BaseModalProps,\n Variant\n} from '@/components/shared/CookieConsent/Modals/CookieConsentModal'\nimport {\n Component,\n Context,\n actionToCookieConsent,\n manageCookiesClicked,\n trackCookiePreferences\n} from '@/components/shared/CookieConsent/helpers'\nimport { Action } from '@/components/shared/CookieConsent/types'\n\ntype StrictProps = {\n variant: Variant\n applyPreferences: (preferences: CookiePreferences) => void\n closeBanner?: never\n}\n\ntype StrictModalProps = BaseModalProps\n\nconst copyContext = 'cookie_consent'\n\nconst StrictModal = ({\n variant,\n shippingCountryCode,\n applyPreferences,\n setShowStrictModal,\n handleModalClose\n}: StrictModalProps): JSX.Element => {\n const { t } = useTranslation('shared')\n\n const handleOnDeny = useCallback(() => {\n actionToCookieConsent({ action: Action.Deny, applyPreferences })\n\n manageCookiesClicked()\n\n handleModalClose()\n }, [applyPreferences, handleModalClose])\n\n // Switches to the Manage Modal\n const handleOnManage = useCallback(() => {\n setShowStrictModal(false)\n manageCookiesClicked()\n }, [setShowStrictModal])\n\n const handleOnAcceptAll = useCallback(() => {\n actionToCookieConsent({ action: Action.Accepted, applyPreferences })\n\n trackCookiePreferences({\n preferences: { marketing: true, analytics: true },\n variant,\n component: Component.Modal,\n context: Context.AcceptAll\n })\n\n handleModalClose()\n }, [applyPreferences, handleModalClose, variant])\n\n return (\n <>\n <div className=\"cookie-modal__info\">\n <h2>{t(`${copyContext}.banner.title`)}</h2>\n <p\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{\n __html: t(`${copyContext}.banner.description_strict`, {\n privacyUrl: countryCodeToPrivacyUrl(shippingCountryCode)\n })\n }}\n />\n </div>\n <div className=\"btn-group\">\n <button\n className=\"btn secondary\"\n type=\"button\"\n onClick={handleOnManage}\n >\n {t(`${copyContext}.banner.manage_btn`)}\n </button>\n <button className=\"btn secondary\" type=\"button\" onClick={handleOnDeny}>\n {t(`${copyContext}.banner.deny_btn`)}\n </button>\n <button\n id=\"cookie-banner-accept-button\"\n data-testid=\"cookie-accept-strict-button\"\n className=\"btn primary\"\n type=\"button\"\n onClick={handleOnAcceptAll}\n >\n {t(`${copyContext}.modal.accept_btn`)}\n </button>\n </div>\n </>\n )\n}\n\nexport default StrictModal\n\nexport { StrictProps }\n","// @noflow\nimport 'intersection-observer'\n\nimport * as Sentry from '@/utils/sentry'\n\nconst { IntersectionObserver } = global\n\nconst dropIntersectionPixel = (): HTMLElement | undefined => {\n const pixel = document.createElement('div')\n pixel.setAttribute('id', 'cookie-intersection-pixel')\n pixel.style.position = 'absolute'\n pixel.style.marginTop = '2000px'\n pixel.style.top = '0'\n if (!document.body) {\n Sentry.captureException('Document body not found for dropIntersectionPixel')\n return\n }\n document.body.appendChild(pixel)\n return pixel\n}\n\nconst checkPixelIntersection = (callback: () => void): void => {\n const pixel = dropIntersectionPixel()\n const observer = new IntersectionObserver(\n (\n entries: Array<IntersectionObserverEntry>,\n observer: IntersectionObserver\n ): void => {\n entries.forEach(function (entry: IntersectionObserverEntry): void {\n if (entry.isIntersecting) {\n callback()\n observer.disconnect()\n }\n })\n }\n )\n if (pixel) {\n observer.observe(pixel)\n }\n}\n\nexport { checkPixelIntersection }\n","'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequire(obj) {\n return obj && obj.__esModule ? obj['default'] : obj;\n}\n\nvar _Motion = require('./Motion');\n\nexports.Motion = _interopRequire(_Motion);\n\nvar _StaggeredMotion = require('./StaggeredMotion');\n\nexports.StaggeredMotion = _interopRequire(_StaggeredMotion);\n\nvar _TransitionMotion = require('./TransitionMotion');\n\nexports.TransitionMotion = _interopRequire(_TransitionMotion);\n\nvar _spring = require('./spring');\n\nexports.spring = _interopRequire(_spring);\n\nvar _presets = require('./presets');\n\nexports.presets = _interopRequire(_presets);\n\nvar _stripStyle = require('./stripStyle');\n\nexports.stripStyle = _interopRequire(_stripStyle); // deprecated, dummy warning function\n\nvar _reorderKeys = require('./reorderKeys');\n\nexports.reorderKeys = _interopRequire(_reorderKeys);","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (e.includes(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","var t = t => \"object\" == typeof t && null != t && 1 === t.nodeType,\n e = (t, e) => (!e || \"hidden\" !== t) && \"visible\" !== t && \"clip\" !== t,\n n = (t, n) => {\n if (t.clientHeight < t.scrollHeight || t.clientWidth < t.scrollWidth) {\n var _o = getComputedStyle(t, null);\n\n return e(_o.overflowY, n) || e(_o.overflowX, n) || (t => {\n var e = (t => {\n if (!t.ownerDocument || !t.ownerDocument.defaultView) return null;\n\n try {\n return t.ownerDocument.defaultView.frameElement;\n } catch (t) {\n return null;\n }\n })(t);\n\n return !!e && (e.clientHeight < t.scrollHeight || e.clientWidth < t.scrollWidth);\n })(t);\n }\n\n return !1;\n},\n o = (t, e, n, o, l, r, i, s) => r < t && i > e || r > t && i < e ? 0 : r <= t && s <= n || i >= e && s >= n ? r - t - o : i > e && s < n || r < t && s > n ? i - e + l : 0,\n l = t => {\n var e = t.parentElement;\n return null == e ? t.getRootNode().host || null : e;\n},\n r = (e, r) => {\n var i, s, d, h;\n if (\"undefined\" == typeof document) return [];\n var {\n scrollMode: c,\n block: f,\n inline: u,\n boundary: a,\n skipOverflowHiddenElements: g\n } = r,\n p = \"function\" == typeof a ? a : t => t !== a;\n if (!t(e)) throw new TypeError(\"Invalid target\");\n var m = document.scrollingElement || document.documentElement,\n w = [];\n var W = e;\n\n for (; t(W) && p(W);) {\n if (W = l(W), W === m) {\n w.push(W);\n break;\n }\n\n null != W && W === document.body && n(W) && !n(document.documentElement) || null != W && n(W, g) && w.push(W);\n }\n\n var b = null != (s = null == (i = window.visualViewport) ? void 0 : i.width) ? s : innerWidth,\n H = null != (h = null == (d = window.visualViewport) ? void 0 : d.height) ? h : innerHeight,\n {\n scrollX: y,\n scrollY: M\n } = window,\n {\n height: v,\n width: E,\n top: x,\n right: C,\n bottom: I,\n left: R\n } = e.getBoundingClientRect(),\n {\n top: T,\n right: B,\n bottom: F,\n left: V\n } = (t => {\n var e = window.getComputedStyle(t);\n return {\n top: parseFloat(e.scrollMarginTop) || 0,\n right: parseFloat(e.scrollMarginRight) || 0,\n bottom: parseFloat(e.scrollMarginBottom) || 0,\n left: parseFloat(e.scrollMarginLeft) || 0\n };\n })(e);\n\n var k = \"start\" === f || \"nearest\" === f ? x - T : \"end\" === f ? I + F : x + v / 2 - T + F,\n D = \"center\" === u ? R + E / 2 - V + B : \"end\" === u ? C + B : R - V;\n var L = [];\n\n for (var _t = 0; _t < w.length; _t++) {\n var _e = w[_t],\n {\n height: _n,\n width: _l,\n top: _r,\n right: _i,\n bottom: _s,\n left: _d\n } = _e.getBoundingClientRect();\n\n if (\"if-needed\" === c && x >= 0 && R >= 0 && I <= H && C <= b && x >= _r && I <= _s && R >= _d && C <= _i) return L;\n\n var _h = getComputedStyle(_e),\n _a = parseInt(_h.borderLeftWidth, 10),\n _g = parseInt(_h.borderTopWidth, 10),\n _p = parseInt(_h.borderRightWidth, 10),\n _W = parseInt(_h.borderBottomWidth, 10);\n\n var _T = 0,\n _B = 0;\n\n var _F = \"offsetWidth\" in _e ? _e.offsetWidth - _e.clientWidth - _a - _p : 0,\n _V = \"offsetHeight\" in _e ? _e.offsetHeight - _e.clientHeight - _g - _W : 0,\n S = \"offsetWidth\" in _e ? 0 === _e.offsetWidth ? 0 : _l / _e.offsetWidth : 0,\n X = \"offsetHeight\" in _e ? 0 === _e.offsetHeight ? 0 : _n / _e.offsetHeight : 0;\n\n if (m === _e) _T = \"start\" === f ? k : \"end\" === f ? k - H : \"nearest\" === f ? o(M, M + H, H, _g, _W, M + k, M + k + v, v) : k - H / 2, _B = \"start\" === u ? D : \"center\" === u ? D - b / 2 : \"end\" === u ? D - b : o(y, y + b, b, _a, _p, y + D, y + D + E, E), _T = Math.max(0, _T + M), _B = Math.max(0, _B + y);else {\n _T = \"start\" === f ? k - _r - _g : \"end\" === f ? k - _s + _W + _V : \"nearest\" === f ? o(_r, _s, _n, _g, _W + _V, k, k + v, v) : k - (_r + _n / 2) + _V / 2, _B = \"start\" === u ? D - _d - _a : \"center\" === u ? D - (_d + _l / 2) + _F / 2 : \"end\" === u ? D - _i + _p + _F : o(_d, _i, _l, _a, _p + _F, D, D + E, E);\n var {\n scrollLeft: _t2,\n scrollTop: _h2\n } = _e;\n _T = 0 === X ? 0 : Math.max(0, Math.min(_h2 + _T / X, _e.scrollHeight - _n / X + _V)), _B = 0 === S ? 0 : Math.max(0, Math.min(_t2 + _B / S, _e.scrollWidth - _l / S + _F)), k += _h2 - _T, D += _t2 - _B;\n }\n L.push({\n el: _e,\n top: _T,\n left: _B\n });\n }\n\n return L;\n};\n\nexport { r as compute };","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\nvar _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nvar _assign = function __assign() {\n _assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return _assign.apply(this, arguments);\n};\n\nexport { _assign as __assign };\nexport function __rest(s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length,\n r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,\n d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) {\n if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n }\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\nexport function __param(paramIndex, decorator) {\n return function (target, key) {\n decorator(target, key, paramIndex);\n };\n}\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) {\n if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\");\n return f;\n }\n\n var kind = contextIn.kind,\n key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n\n var _,\n done = false;\n\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n\n for (var p in contextIn) {\n context[p] = p === \"access\" ? {} : contextIn[p];\n }\n\n for (var p in contextIn.access) {\n context.access[p] = contextIn.access[p];\n }\n\n context.addInitializer = function (f) {\n if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\");\n extraInitializers.push(accept(f || null));\n };\n\n var result = (0, decorators[i])(kind === \"accessor\" ? {\n get: descriptor.get,\n set: descriptor.set\n } : descriptor[key], context);\n\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n } else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);else descriptor[key] = _;\n }\n }\n\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n}\n;\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n\n return useValue ? value : void 0;\n}\n;\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n}\n;\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", {\n configurable: true,\n value: prefix ? \"\".concat(prefix, \" \", name) : name\n });\n}\n;\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\nexport function __generator(thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (g && (g = 0, op[0] && (_ = 0)), _) {\n try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n}\nexport var __createBinding = Object.create ? function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = {\n enumerable: true,\n get: function get() {\n return m[k];\n }\n };\n }\n\n Object.defineProperty(o, k2, desc);\n} : function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n};\nexport function __exportStar(m, o) {\n for (var p in m) {\n if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n }\n}\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator,\n m = s && o[s],\n i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function next() {\n if (o && i >= o.length) o = void 0;\n return {\n value: o && o[i++],\n done: !o\n };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n}\n/** @deprecated */\n\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }\n\n return ar;\n}\n/** @deprecated */\n\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) {\n r[k] = a[j];\n }\n }\n\n return r;\n}\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []),\n i,\n q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () {\n return this;\n }, i;\n\n function awaitReturn(f) {\n return function (v) {\n return Promise.resolve(v).then(f, reject);\n };\n }\n\n function verb(n, f) {\n if (g[n]) {\n i[n] = function (v) {\n return new Promise(function (a, b) {\n q.push([n, v, a, b]) > 1 || resume(n, v);\n });\n };\n\n if (f) i[n] = f(i[n]);\n }\n }\n\n function resume(n, v) {\n try {\n step(g[n](v));\n } catch (e) {\n settle(q[0][3], e);\n }\n }\n\n function step(r) {\n r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);\n }\n\n function fulfill(value) {\n resume(\"next\", value);\n }\n\n function reject(value) {\n resume(\"throw\", value);\n }\n\n function settle(f, v) {\n if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);\n }\n}\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) {\n throw e;\n }), verb(\"return\"), i[Symbol.iterator] = function () {\n return this;\n }, i;\n\n function verb(n, f) {\n i[n] = o[n] ? function (v) {\n return (p = !p) ? {\n value: __await(o[n](v)),\n done: false\n } : f ? f(v) : v;\n } : f;\n }\n}\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator],\n i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i);\n\n function verb(n) {\n i[n] = o[n] && function (v) {\n return new Promise(function (resolve, reject) {\n v = o[n](v), settle(resolve, reject, v.done, v.value);\n });\n };\n }\n\n function settle(resolve, reject, d, v) {\n Promise.resolve(v).then(function (v) {\n resolve({\n value: v,\n done: d\n });\n }, reject);\n }\n}\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) {\n Object.defineProperty(cooked, \"raw\", {\n value: raw\n });\n } else {\n cooked.raw = raw;\n }\n\n return cooked;\n}\n;\n\nvar __setModuleDefault = Object.create ? function (o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function (o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) {\n if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n }\n\n __setModuleDefault(result, mod);\n\n return result;\n}\nexport function __importDefault(mod) {\n return mod && mod.__esModule ? mod : {\n default: mod\n };\n}\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value), value;\n}\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || typeof receiver !== \"object\" && typeof receiver !== \"function\") throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function dispose() {\n try {\n inner.call(this);\n } catch (e) {\n return Promise.reject(e);\n }\n };\n env.stack.push({\n value: value,\n dispose: dispose,\n async: async\n });\n } else if (async) {\n env.stack.push({\n async: true\n });\n }\n\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n\n var r,\n s = 0;\n\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function (e) {\n fail(e);\n return next();\n });\n } else s |= 1;\n } catch (e) {\n fail(e);\n }\n }\n\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n\n return next();\n}\nexport default {\n __extends: __extends,\n __assign: _assign,\n __rest: __rest,\n __decorate: __decorate,\n __param: __param,\n __metadata: __metadata,\n __awaiter: __awaiter,\n __generator: __generator,\n __createBinding: __createBinding,\n __exportStar: __exportStar,\n __values: __values,\n __read: __read,\n __spread: __spread,\n __spreadArrays: __spreadArrays,\n __spreadArray: __spreadArray,\n __await: __await,\n __asyncGenerator: __asyncGenerator,\n __asyncDelegator: __asyncDelegator,\n __asyncValues: __asyncValues,\n __makeTemplateObject: __makeTemplateObject,\n __importStar: __importStar,\n __importDefault: __importDefault,\n __classPrivateFieldGet: __classPrivateFieldGet,\n __classPrivateFieldSet: __classPrivateFieldSet,\n __classPrivateFieldIn: __classPrivateFieldIn,\n __addDisposableResource: __addDisposableResource,\n __disposeResources: __disposeResources\n};","import _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport PropTypes from 'prop-types';\nimport React, { cloneElement, Component, useRef, useEffect, useLayoutEffect, useCallback, useReducer, useMemo } from 'react';\nimport { isForwardRef } from 'react-is';\nimport { compute } from 'compute-scroll-into-view';\nimport { __assign } from 'tslib';\nvar idCounter = 0;\n/**\n * Accepts a parameter and returns it if it's a function\n * or a noop function if it's not. This allows us to\n * accept a callback, but not worry about it if it's not\n * passed.\n * @param {Function} cb the callback\n * @return {Function} a function\n */\n\nfunction cbToCb(cb) {\n return typeof cb === 'function' ? cb : noop;\n}\n\nfunction noop() {}\n/**\n * Scroll node into view if necessary\n * @param {HTMLElement} node the element that should scroll into view\n * @param {HTMLElement} menuNode the menu element of the component\n */\n\n\nfunction scrollIntoView(node, menuNode) {\n if (!node) {\n return;\n }\n\n var actions = compute(node, {\n boundary: menuNode,\n block: 'nearest',\n scrollMode: 'if-needed'\n });\n actions.forEach(function (_ref) {\n var el = _ref.el,\n top = _ref.top,\n left = _ref.left;\n el.scrollTop = top;\n el.scrollLeft = left;\n });\n}\n/**\n * @param {HTMLElement} parent the parent node\n * @param {HTMLElement} child the child node\n * @param {Window} environment The window context where downshift renders.\n * @return {Boolean} whether the parent is the child or the child is in the parent\n */\n\n\nfunction isOrContainsNode(parent, child, environment) {\n var result = parent === child || child instanceof environment.Node && parent.contains && parent.contains(child);\n return result;\n}\n/**\n * Simple debounce implementation. Will call the given\n * function once after the time given has passed since\n * it was last called.\n * @param {Function} fn the function to call after the time\n * @param {Number} time the time to wait\n * @return {Function} the debounced function\n */\n\n\nfunction debounce(fn, time) {\n var timeoutId;\n\n function cancel() {\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n }\n\n function wrapper() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n cancel();\n timeoutId = setTimeout(function () {\n timeoutId = null;\n fn.apply(void 0, args);\n }, time);\n }\n\n wrapper.cancel = cancel;\n return wrapper;\n}\n/**\n * This is intended to be used to compose event handlers.\n * They are executed in order until one of them sets\n * `event.preventDownshiftDefault = true`.\n * @param {...Function} fns the event handler functions\n * @return {Function} the event handler to add to an element\n */\n\n\nfunction callAllEventHandlers() {\n for (var _len2 = arguments.length, fns = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n fns[_key2] = arguments[_key2];\n }\n\n return function (event) {\n for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n args[_key3 - 1] = arguments[_key3];\n }\n\n return fns.some(function (fn) {\n if (fn) {\n fn.apply(void 0, [event].concat(args));\n }\n\n return event.preventDownshiftDefault || event.hasOwnProperty('nativeEvent') && event.nativeEvent.preventDownshiftDefault;\n });\n };\n}\n\nfunction handleRefs() {\n for (var _len4 = arguments.length, refs = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n refs[_key4] = arguments[_key4];\n }\n\n return function (node) {\n refs.forEach(function (ref) {\n if (typeof ref === 'function') {\n ref(node);\n } else if (ref) {\n ref.current = node;\n }\n });\n };\n}\n/**\n * This generates a unique ID for an instance of Downshift\n * @return {String} the unique ID\n */\n\n\nfunction generateId() {\n return String(idCounter++);\n}\n/**\n * Resets idCounter to 0. Used for SSR.\n */\n\n\nfunction resetIdCounter() {\n // istanbul ignore next\n if ('useId' in React) {\n console.warn(\"It is not necessary to call resetIdCounter when using React 18+\");\n return;\n }\n\n idCounter = 0;\n}\n/**\n * Default implementation for status message. Only added when menu is open.\n * Will specify if there are results in the list, and if so, how many,\n * and what keys are relevant.\n *\n * @param {Object} param the downshift state and other relevant properties\n * @return {String} the a11y status message\n */\n\n\nfunction getA11yStatusMessage(_ref2) {\n var isOpen = _ref2.isOpen,\n resultCount = _ref2.resultCount,\n previousResultCount = _ref2.previousResultCount;\n\n if (!isOpen) {\n return '';\n }\n\n if (!resultCount) {\n return 'No results are available.';\n }\n\n if (resultCount !== previousResultCount) {\n return resultCount + \" result\" + (resultCount === 1 ? ' is' : 's are') + \" available, use up and down arrow keys to navigate. Press Enter key to select.\";\n }\n\n return '';\n}\n/**\n * Takes an argument and if it's an array, returns the first item in the array\n * otherwise returns the argument\n * @param {*} arg the maybe-array\n * @param {*} defaultValue the value if arg is falsey not defined\n * @return {*} the arg or it's first item\n */\n\n\nfunction unwrapArray(arg, defaultValue) {\n arg = Array.isArray(arg) ?\n /* istanbul ignore next (preact) */\n arg[0] : arg;\n\n if (!arg && defaultValue) {\n return defaultValue;\n } else {\n return arg;\n }\n}\n/**\n * @param {Object} element (P)react element\n * @return {Boolean} whether it's a DOM element\n */\n\n\nfunction isDOMElement(element) {\n // then we assume this is react\n return typeof element.type === 'string';\n}\n/**\n * @param {Object} element (P)react element\n * @return {Object} the props\n */\n\n\nfunction getElementProps(element) {\n return element.props;\n}\n/**\n * Throws a helpful error message for required properties. Useful\n * to be used as a default in destructuring or object params.\n * @param {String} fnName the function name\n * @param {String} propName the prop name\n */\n\n\nfunction requiredProp(fnName, propName) {\n // eslint-disable-next-line no-console\n console.error(\"The property \\\"\" + propName + \"\\\" is required in \\\"\" + fnName + \"\\\"\");\n}\n\nvar stateKeys = ['highlightedIndex', 'inputValue', 'isOpen', 'selectedItem', 'type'];\n/**\n * @param {Object} state the state object\n * @return {Object} state that is relevant to downshift\n */\n\nfunction pickState(state) {\n if (state === void 0) {\n state = {};\n }\n\n var result = {};\n stateKeys.forEach(function (k) {\n if (state.hasOwnProperty(k)) {\n result[k] = state[k];\n }\n });\n return result;\n}\n/**\n * This will perform a shallow merge of the given state object\n * with the state coming from props\n * (for the controlled component scenario)\n * This is used in state updater functions so they're referencing\n * the right state regardless of where it comes from.\n *\n * @param {Object} state The state of the component/hook.\n * @param {Object} props The props that may contain controlled values.\n * @returns {Object} The merged controlled state.\n */\n\n\nfunction getState(state, props) {\n if (!state || !props) {\n return state;\n }\n\n return Object.keys(state).reduce(function (prevState, key) {\n prevState[key] = isControlledProp(props, key) ? props[key] : state[key];\n return prevState;\n }, {});\n}\n/**\n * This determines whether a prop is a \"controlled prop\" meaning it is\n * state which is controlled by the outside of this component rather\n * than within this component.\n *\n * @param {Object} props The props that may contain controlled values.\n * @param {String} key the key to check\n * @return {Boolean} whether it is a controlled controlled prop\n */\n\n\nfunction isControlledProp(props, key) {\n return props[key] !== undefined;\n}\n/**\n * Normalizes the 'key' property of a KeyboardEvent in IE/Edge\n * @param {Object} event a keyboardEvent object\n * @return {String} keyboard key\n */\n\n\nfunction normalizeArrowKey(event) {\n var key = event.key,\n keyCode = event.keyCode;\n /* istanbul ignore next (ie) */\n\n if (keyCode >= 37 && keyCode <= 40 && key.indexOf('Arrow') !== 0) {\n return \"Arrow\" + key;\n }\n\n return key;\n}\n/**\n * Simple check if the value passed is object literal\n * @param {*} obj any things\n * @return {Boolean} whether it's object literal\n */\n\n\nfunction isPlainObject(obj) {\n return Object.prototype.toString.call(obj) === '[object Object]';\n}\n/**\n * Returns the next non-disabled highlightedIndex value.\n *\n * @param {number} start The current highlightedIndex.\n * @param {number} offset The offset from the current highlightedIndex to start searching.\n * @param {unknown[]} items The items array.\n * @param {(item: unknown, index: number) => boolean} isItemDisabled Function that tells if an item is disabled or not.\n * @param {boolean?} circular If the search reaches the end, if it can search again starting from the other end.\n * @returns {number} The next highlightedIndex.\n */\n\n\nfunction getHighlightedIndex(start, offset, items, isItemDisabled, circular) {\n if (circular === void 0) {\n circular = false;\n }\n\n var count = items.length;\n\n if (count === 0) {\n return -1;\n }\n\n var itemsLastIndex = count - 1;\n\n if (typeof start !== 'number' || start < 0 || start > itemsLastIndex) {\n start = offset > 0 ? -1 : itemsLastIndex + 1;\n }\n\n var current = start + offset;\n\n if (current < 0) {\n current = circular ? itemsLastIndex : 0;\n } else if (current > itemsLastIndex) {\n current = circular ? 0 : itemsLastIndex;\n }\n\n var highlightedIndex = getNonDisabledIndex(current, offset < 0, items, isItemDisabled, circular);\n\n if (highlightedIndex === -1) {\n return start >= count ? -1 : start;\n }\n\n return highlightedIndex;\n}\n/**\n * Returns the next non-disabled highlightedIndex value.\n *\n * @param {number} start The current highlightedIndex.\n * @param {boolean} backwards If true, it will search backwards from the start.\n * @param {unknown[]} items The items array.\n * @param {(item: unknown, index: number) => boolean} isItemDisabled Function that tells if an item is disabled or not.\n * @param {boolean} circular If the search reaches the end, if it can search again starting from the other end.\n * @returns {number} The next non-disabled index.\n */\n\n\nfunction getNonDisabledIndex(start, backwards, items, isItemDisabled, circular) {\n if (circular === void 0) {\n circular = false;\n }\n\n var count = items.length;\n\n if (backwards) {\n for (var index = start; index >= 0; index--) {\n if (!isItemDisabled(items[index], index)) {\n return index;\n }\n }\n } else {\n for (var _index = start; _index < count; _index++) {\n if (!isItemDisabled(items[_index], _index)) {\n return _index;\n }\n }\n }\n\n if (circular) {\n return getNonDisabledIndex(backwards ? count - 1 : 0, backwards, items, isItemDisabled);\n }\n\n return -1;\n}\n/**\n * Checks if event target is within the downshift elements.\n *\n * @param {EventTarget} target Target to check.\n * @param {HTMLElement[]} downshiftElements The elements that form downshift (list, toggle button etc).\n * @param {Window} environment The window context where downshift renders.\n * @param {boolean} checkActiveElement Whether to also check activeElement.\n *\n * @returns {boolean} Whether or not the target is within downshift elements.\n */\n\n\nfunction targetWithinDownshift(target, downshiftElements, environment, checkActiveElement) {\n if (checkActiveElement === void 0) {\n checkActiveElement = true;\n }\n\n return environment && downshiftElements.some(function (contextNode) {\n return contextNode && (isOrContainsNode(contextNode, target, environment) || checkActiveElement && isOrContainsNode(contextNode, environment.document.activeElement, environment));\n });\n} // eslint-disable-next-line import/no-mutable-exports\n\n\nvar validateControlledUnchanged = noop;\n/* istanbul ignore next */\n\nif (process.env.NODE_ENV !== 'production') {\n validateControlledUnchanged = function validateControlledUnchanged(state, prevProps, nextProps) {\n var warningDescription = \"This prop should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled Downshift element for the lifetime of the component. More info: https://github.com/downshift-js/downshift#control-props\";\n Object.keys(state).forEach(function (propKey) {\n if (prevProps[propKey] !== undefined && nextProps[propKey] === undefined) {\n // eslint-disable-next-line no-console\n console.error(\"downshift: A component has changed the controlled prop \\\"\" + propKey + \"\\\" to be uncontrolled. \" + warningDescription);\n } else if (prevProps[propKey] === undefined && nextProps[propKey] !== undefined) {\n // eslint-disable-next-line no-console\n console.error(\"downshift: A component has changed the uncontrolled prop \\\"\" + propKey + \"\\\" to be controlled. \" + warningDescription);\n }\n });\n };\n}\n\nvar cleanupStatus = debounce(function (documentProp) {\n getStatusDiv(documentProp).textContent = '';\n}, 500);\n/**\n * Get the status node or create it if it does not already exist.\n * @param {Object} documentProp document passed by the user.\n * @return {HTMLElement} the status node.\n */\n\nfunction getStatusDiv(documentProp) {\n var statusDiv = documentProp.getElementById('a11y-status-message');\n\n if (statusDiv) {\n return statusDiv;\n }\n\n statusDiv = documentProp.createElement('div');\n statusDiv.setAttribute('id', 'a11y-status-message');\n statusDiv.setAttribute('role', 'status');\n statusDiv.setAttribute('aria-live', 'polite');\n statusDiv.setAttribute('aria-relevant', 'additions text');\n Object.assign(statusDiv.style, {\n border: '0',\n clip: 'rect(0 0 0 0)',\n height: '1px',\n margin: '-1px',\n overflow: 'hidden',\n padding: '0',\n position: 'absolute',\n width: '1px'\n });\n documentProp.body.appendChild(statusDiv);\n return statusDiv;\n}\n/**\n * @param {String} status the status message\n * @param {Object} documentProp document passed by the user.\n */\n\n\nfunction setStatus(status, documentProp) {\n if (!status || !documentProp) {\n return;\n }\n\n var div = getStatusDiv(documentProp);\n div.textContent = status;\n cleanupStatus(documentProp);\n}\n/**\n * Removes the status element from the DOM\n * @param {Document} documentProp \n */\n\n\nfunction cleanupStatusDiv(documentProp) {\n var statusDiv = documentProp == null ? void 0 : documentProp.getElementById('a11y-status-message');\n\n if (statusDiv) {\n statusDiv.remove();\n }\n}\n\nvar unknown = process.env.NODE_ENV !== \"production\" ? '__autocomplete_unknown__' : 0;\nvar mouseUp = process.env.NODE_ENV !== \"production\" ? '__autocomplete_mouseup__' : 1;\nvar itemMouseEnter = process.env.NODE_ENV !== \"production\" ? '__autocomplete_item_mouseenter__' : 2;\nvar keyDownArrowUp = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_arrow_up__' : 3;\nvar keyDownArrowDown = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_arrow_down__' : 4;\nvar keyDownEscape = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_escape__' : 5;\nvar keyDownEnter = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_enter__' : 6;\nvar keyDownHome = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_home__' : 7;\nvar keyDownEnd = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_end__' : 8;\nvar clickItem = process.env.NODE_ENV !== \"production\" ? '__autocomplete_click_item__' : 9;\nvar blurInput = process.env.NODE_ENV !== \"production\" ? '__autocomplete_blur_input__' : 10;\nvar changeInput = process.env.NODE_ENV !== \"production\" ? '__autocomplete_change_input__' : 11;\nvar keyDownSpaceButton = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_space_button__' : 12;\nvar clickButton = process.env.NODE_ENV !== \"production\" ? '__autocomplete_click_button__' : 13;\nvar blurButton = process.env.NODE_ENV !== \"production\" ? '__autocomplete_blur_button__' : 14;\nvar controlledPropUpdatedSelectedItem = process.env.NODE_ENV !== \"production\" ? '__autocomplete_controlled_prop_updated_selected_item__' : 15;\nvar touchEnd = process.env.NODE_ENV !== \"production\" ? '__autocomplete_touchend__' : 16;\nvar stateChangeTypes$3 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n blurButton: blurButton,\n blurInput: blurInput,\n changeInput: changeInput,\n clickButton: clickButton,\n clickItem: clickItem,\n controlledPropUpdatedSelectedItem: controlledPropUpdatedSelectedItem,\n itemMouseEnter: itemMouseEnter,\n keyDownArrowDown: keyDownArrowDown,\n keyDownArrowUp: keyDownArrowUp,\n keyDownEnd: keyDownEnd,\n keyDownEnter: keyDownEnter,\n keyDownEscape: keyDownEscape,\n keyDownHome: keyDownHome,\n keyDownSpaceButton: keyDownSpaceButton,\n mouseUp: mouseUp,\n touchEnd: touchEnd,\n unknown: unknown\n});\nvar _excluded$3 = [\"refKey\", \"ref\"],\n _excluded2$3 = [\"onClick\", \"onPress\", \"onKeyDown\", \"onKeyUp\", \"onBlur\"],\n _excluded3$2 = [\"onKeyDown\", \"onBlur\", \"onChange\", \"onInput\", \"onChangeText\"],\n _excluded4$2 = [\"refKey\", \"ref\"],\n _excluded5 = [\"onMouseMove\", \"onMouseDown\", \"onClick\", \"onPress\", \"index\", \"item\"];\n\nvar Downshift = /*#__PURE__*/function () {\n var Downshift = /*#__PURE__*/function (_Component) {\n function Downshift(_props) {\n var _this;\n\n _this = _Component.call(this, _props) || this; // fancy destructuring + defaults + aliases\n // this basically says each value of state should either be set to\n // the initial value or the default value if the initial value is not provided\n\n _this.id = _this.props.id || \"downshift-\" + generateId();\n _this.menuId = _this.props.menuId || _this.id + \"-menu\";\n _this.labelId = _this.props.labelId || _this.id + \"-label\";\n _this.inputId = _this.props.inputId || _this.id + \"-input\";\n\n _this.getItemId = _this.props.getItemId || function (index) {\n return _this.id + \"-item-\" + index;\n };\n\n _this.items = []; // itemCount can be changed asynchronously\n // from within downshift (so it can't come from a prop)\n // this is why we store it as an instance and use\n // getItemCount rather than just use items.length\n // (to support windowing + async)\n\n _this.itemCount = null;\n _this.previousResultCount = 0;\n _this.timeoutIds = [];\n /**\n * @param {Function} fn the function to call after the time\n * @param {Number} time the time to wait\n */\n\n _this.internalSetTimeout = function (fn, time) {\n var id = setTimeout(function () {\n _this.timeoutIds = _this.timeoutIds.filter(function (i) {\n return i !== id;\n });\n fn();\n }, time);\n\n _this.timeoutIds.push(id);\n };\n\n _this.setItemCount = function (count) {\n _this.itemCount = count;\n };\n\n _this.unsetItemCount = function () {\n _this.itemCount = null;\n };\n\n _this.isItemDisabled = function (_item, index) {\n var currentElementNode = _this.getItemNodeFromIndex(index);\n\n return currentElementNode && currentElementNode.hasAttribute('disabled');\n };\n\n _this.setHighlightedIndex = function (highlightedIndex, otherStateToSet) {\n if (highlightedIndex === void 0) {\n highlightedIndex = _this.props.defaultHighlightedIndex;\n }\n\n if (otherStateToSet === void 0) {\n otherStateToSet = {};\n }\n\n otherStateToSet = pickState(otherStateToSet);\n\n _this.internalSetState(_extends({\n highlightedIndex: highlightedIndex\n }, otherStateToSet));\n };\n\n _this.clearSelection = function (cb) {\n _this.internalSetState({\n selectedItem: null,\n inputValue: '',\n highlightedIndex: _this.props.defaultHighlightedIndex,\n isOpen: _this.props.defaultIsOpen\n }, cb);\n };\n\n _this.selectItem = function (item, otherStateToSet, cb) {\n otherStateToSet = pickState(otherStateToSet);\n\n _this.internalSetState(_extends({\n isOpen: _this.props.defaultIsOpen,\n highlightedIndex: _this.props.defaultHighlightedIndex,\n selectedItem: item,\n inputValue: _this.props.itemToString(item)\n }, otherStateToSet), cb);\n };\n\n _this.selectItemAtIndex = function (itemIndex, otherStateToSet, cb) {\n var item = _this.items[itemIndex];\n\n if (item == null) {\n return;\n }\n\n _this.selectItem(item, otherStateToSet, cb);\n };\n\n _this.selectHighlightedItem = function (otherStateToSet, cb) {\n return _this.selectItemAtIndex(_this.getState().highlightedIndex, otherStateToSet, cb);\n }; // any piece of our state can live in two places:\n // 1. Uncontrolled: it's internal (this.state)\n // We will call this.setState to update that state\n // 2. Controlled: it's external (this.props)\n // We will call this.props.onStateChange to update that state\n //\n // In addition, we'll call this.props.onChange if the\n // selectedItem is changed.\n\n\n _this.internalSetState = function (stateToSet, cb) {\n var isItemSelected, onChangeArg;\n var onStateChangeArg = {};\n var isStateToSetFunction = typeof stateToSet === 'function'; // we want to call `onInputValueChange` before the `setState` call\n // so someone controlling the `inputValue` state gets notified of\n // the input change as soon as possible. This avoids issues with\n // preserving the cursor position.\n // See https://github.com/downshift-js/downshift/issues/217 for more info.\n\n if (!isStateToSetFunction && stateToSet.hasOwnProperty('inputValue')) {\n _this.props.onInputValueChange(stateToSet.inputValue, _extends({}, _this.getStateAndHelpers(), stateToSet));\n }\n\n return _this.setState(function (state) {\n var _newStateToSet;\n\n state = _this.getState(state);\n var newStateToSet = isStateToSetFunction ? stateToSet(state) : stateToSet; // Your own function that could modify the state that will be set.\n\n newStateToSet = _this.props.stateReducer(state, newStateToSet); // checks if an item is selected, regardless of if it's different from\n // what was selected before\n // used to determine if onSelect and onChange callbacks should be called\n\n isItemSelected = newStateToSet.hasOwnProperty('selectedItem'); // this keeps track of the object we want to call with setState\n\n var nextState = {}; // we need to call on change if the outside world is controlling any of our state\n // and we're trying to update that state. OR if the selection has changed and we're\n // trying to update the selection\n\n if (isItemSelected && newStateToSet.selectedItem !== state.selectedItem) {\n onChangeArg = newStateToSet.selectedItem;\n }\n\n (_newStateToSet = newStateToSet).type || (_newStateToSet.type = unknown);\n Object.keys(newStateToSet).forEach(function (key) {\n // onStateChangeArg should only have the state that is\n // actually changing\n if (state[key] !== newStateToSet[key]) {\n onStateChangeArg[key] = newStateToSet[key];\n } // the type is useful for the onStateChangeArg\n // but we don't actually want to set it in internal state.\n // this is an undocumented feature for now... Not all internalSetState\n // calls support it and I'm not certain we want them to yet.\n // But it enables users controlling the isOpen state to know when\n // the isOpen state changes due to mouseup events which is quite handy.\n\n\n if (key === 'type') {\n return;\n }\n\n newStateToSet[key]; // if it's coming from props, then we don't care to set it internally\n\n if (!isControlledProp(_this.props, key)) {\n nextState[key] = newStateToSet[key];\n }\n }); // if stateToSet is a function, then we weren't able to call onInputValueChange\n // earlier, so we'll call it now that we know what the inputValue state will be.\n\n if (isStateToSetFunction && newStateToSet.hasOwnProperty('inputValue')) {\n _this.props.onInputValueChange(newStateToSet.inputValue, _extends({}, _this.getStateAndHelpers(), newStateToSet));\n }\n\n return nextState;\n }, function () {\n // call the provided callback if it's a function\n cbToCb(cb)(); // only call the onStateChange and onChange callbacks if\n // we have relevant information to pass them.\n\n var hasMoreStateThanType = Object.keys(onStateChangeArg).length > 1;\n\n if (hasMoreStateThanType) {\n _this.props.onStateChange(onStateChangeArg, _this.getStateAndHelpers());\n }\n\n if (isItemSelected) {\n _this.props.onSelect(stateToSet.selectedItem, _this.getStateAndHelpers());\n }\n\n if (onChangeArg !== undefined) {\n _this.props.onChange(onChangeArg, _this.getStateAndHelpers());\n } // this is currently undocumented and therefore subject to change\n // We'll try to not break it, but just be warned.\n\n\n _this.props.onUserAction(onStateChangeArg, _this.getStateAndHelpers());\n });\n }; //////////////////////////// ROOT\n\n\n _this.rootRef = function (node) {\n return _this._rootNode = node;\n };\n\n _this.getRootProps = function (_temp, _temp2) {\n var _extends2;\n\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$refKey = _ref.refKey,\n refKey = _ref$refKey === void 0 ? 'ref' : _ref$refKey,\n ref = _ref.ref,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$3);\n\n var _ref2 = _temp2 === void 0 ? {} : _temp2,\n _ref2$suppressRefErro = _ref2.suppressRefError,\n suppressRefError = _ref2$suppressRefErro === void 0 ? false : _ref2$suppressRefErro; // this is used in the render to know whether the user has called getRootProps.\n // It uses that to know whether to apply the props automatically\n\n\n _this.getRootProps.called = true;\n _this.getRootProps.refKey = refKey;\n _this.getRootProps.suppressRefError = suppressRefError;\n\n var _this$getState = _this.getState(),\n isOpen = _this$getState.isOpen;\n\n return _extends((_extends2 = {}, _extends2[refKey] = handleRefs(ref, _this.rootRef), _extends2.role = 'combobox', _extends2['aria-expanded'] = isOpen, _extends2['aria-haspopup'] = 'listbox', _extends2['aria-owns'] = isOpen ? _this.menuId : undefined, _extends2['aria-labelledby'] = _this.labelId, _extends2), rest);\n }; //\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ROOT\n\n\n _this.keyDownHandlers = {\n ArrowDown: function ArrowDown(event) {\n var _this2 = this;\n\n event.preventDefault();\n\n if (this.getState().isOpen) {\n var amount = event.shiftKey ? 5 : 1;\n this.moveHighlightedIndex(amount, {\n type: keyDownArrowDown\n });\n } else {\n this.internalSetState({\n isOpen: true,\n type: keyDownArrowDown\n }, function () {\n var itemCount = _this2.getItemCount();\n\n if (itemCount > 0) {\n var _this2$getState = _this2.getState(),\n highlightedIndex = _this2$getState.highlightedIndex;\n\n var nextHighlightedIndex = getHighlightedIndex(highlightedIndex, 1, {\n length: itemCount\n }, _this2.isItemDisabled, true);\n\n _this2.setHighlightedIndex(nextHighlightedIndex, {\n type: keyDownArrowDown\n });\n }\n });\n }\n },\n ArrowUp: function ArrowUp(event) {\n var _this3 = this;\n\n event.preventDefault();\n\n if (this.getState().isOpen) {\n var amount = event.shiftKey ? -5 : -1;\n this.moveHighlightedIndex(amount, {\n type: keyDownArrowUp\n });\n } else {\n this.internalSetState({\n isOpen: true,\n type: keyDownArrowUp\n }, function () {\n var itemCount = _this3.getItemCount();\n\n if (itemCount > 0) {\n var _this3$getState = _this3.getState(),\n highlightedIndex = _this3$getState.highlightedIndex;\n\n var nextHighlightedIndex = getHighlightedIndex(highlightedIndex, -1, {\n length: itemCount\n }, _this3.isItemDisabled, true);\n\n _this3.setHighlightedIndex(nextHighlightedIndex, {\n type: keyDownArrowUp\n });\n }\n });\n }\n },\n Enter: function Enter(event) {\n if (event.which === 229) {\n return;\n }\n\n var _this$getState2 = this.getState(),\n isOpen = _this$getState2.isOpen,\n highlightedIndex = _this$getState2.highlightedIndex;\n\n if (isOpen && highlightedIndex != null) {\n event.preventDefault();\n var item = this.items[highlightedIndex];\n var itemNode = this.getItemNodeFromIndex(highlightedIndex);\n\n if (item == null || itemNode && itemNode.hasAttribute('disabled')) {\n return;\n }\n\n this.selectHighlightedItem({\n type: keyDownEnter\n });\n }\n },\n Escape: function Escape(event) {\n event.preventDefault();\n this.reset(_extends({\n type: keyDownEscape\n }, !this.state.isOpen && {\n selectedItem: null,\n inputValue: ''\n }));\n }\n }; //////////////////////////// BUTTON\n\n _this.buttonKeyDownHandlers = _extends({}, _this.keyDownHandlers, {\n ' ': function _(event) {\n event.preventDefault();\n this.toggleMenu({\n type: keyDownSpaceButton\n });\n }\n });\n _this.inputKeyDownHandlers = _extends({}, _this.keyDownHandlers, {\n Home: function Home(event) {\n var _this$getState3 = this.getState(),\n isOpen = _this$getState3.isOpen;\n\n if (!isOpen) {\n return;\n }\n\n event.preventDefault();\n var itemCount = this.getItemCount();\n\n if (itemCount <= 0 || !isOpen) {\n return;\n } // get next non-disabled starting downwards from 0 if that's disabled.\n\n\n var newHighlightedIndex = getNonDisabledIndex(0, false, {\n length: itemCount\n }, this.isItemDisabled);\n this.setHighlightedIndex(newHighlightedIndex, {\n type: keyDownHome\n });\n },\n End: function End(event) {\n var _this$getState4 = this.getState(),\n isOpen = _this$getState4.isOpen;\n\n if (!isOpen) {\n return;\n }\n\n event.preventDefault();\n var itemCount = this.getItemCount();\n\n if (itemCount <= 0 || !isOpen) {\n return;\n } // get next non-disabled starting upwards from last index if that's disabled.\n\n\n var newHighlightedIndex = getNonDisabledIndex(itemCount - 1, true, {\n length: itemCount\n }, this.isItemDisabled);\n this.setHighlightedIndex(newHighlightedIndex, {\n type: keyDownEnd\n });\n }\n });\n\n _this.getToggleButtonProps = function (_temp3) {\n var _ref3 = _temp3 === void 0 ? {} : _temp3,\n onClick = _ref3.onClick;\n\n _ref3.onPress;\n\n var onKeyDown = _ref3.onKeyDown,\n onKeyUp = _ref3.onKeyUp,\n onBlur = _ref3.onBlur,\n rest = _objectWithoutPropertiesLoose(_ref3, _excluded2$3);\n\n var _this$getState5 = _this.getState(),\n isOpen = _this$getState5.isOpen;\n\n var enabledEventHandlers = {\n onClick: callAllEventHandlers(onClick, _this.buttonHandleClick),\n onKeyDown: callAllEventHandlers(onKeyDown, _this.buttonHandleKeyDown),\n onKeyUp: callAllEventHandlers(onKeyUp, _this.buttonHandleKeyUp),\n onBlur: callAllEventHandlers(onBlur, _this.buttonHandleBlur)\n };\n var eventHandlers = rest.disabled ? {} : enabledEventHandlers;\n return _extends({\n type: 'button',\n role: 'button',\n 'aria-label': isOpen ? 'close menu' : 'open menu',\n 'aria-haspopup': true,\n 'data-toggle': true\n }, eventHandlers, rest);\n };\n\n _this.buttonHandleKeyUp = function (event) {\n // Prevent click event from emitting in Firefox\n event.preventDefault();\n };\n\n _this.buttonHandleKeyDown = function (event) {\n var key = normalizeArrowKey(event);\n\n if (_this.buttonKeyDownHandlers[key]) {\n _this.buttonKeyDownHandlers[key].call(_this, event);\n }\n };\n\n _this.buttonHandleClick = function (event) {\n event.preventDefault(); // handle odd case for Safari and Firefox which\n // don't give the button the focus properly.\n\n /* istanbul ignore if (can't reasonably test this) */\n\n if (_this.props.environment) {\n var _this$props$environme = _this.props.environment.document,\n body = _this$props$environme.body,\n activeElement = _this$props$environme.activeElement;\n\n if (body && body === activeElement) {\n event.target.focus();\n }\n } // to simplify testing components that use downshift, we'll not wrap this in a setTimeout\n // if the NODE_ENV is test. With the proper build system, this should be dead code eliminated\n // when building for production and should therefore have no impact on production code.\n\n\n if (process.env.NODE_ENV === 'test') {\n _this.toggleMenu({\n type: clickButton\n });\n } else {\n // Ensure that toggle of menu occurs after the potential blur event in iOS\n _this.internalSetTimeout(function () {\n return _this.toggleMenu({\n type: clickButton\n });\n });\n }\n };\n\n _this.buttonHandleBlur = function (event) {\n var blurTarget = event.target; // Save blur target for comparison with activeElement later\n // Need setTimeout, so that when the user presses Tab, the activeElement is the next focused element, not body element\n\n _this.internalSetTimeout(function () {\n if (_this.isMouseDown || !_this.props.environment) {\n return;\n }\n\n var activeElement = _this.props.environment.document.activeElement;\n\n if ((activeElement == null || activeElement.id !== _this.inputId) && activeElement !== blurTarget // Do nothing if we refocus the same element again (to solve issue in Safari on iOS)\n ) {\n _this.reset({\n type: blurButton\n });\n }\n });\n }; //\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ BUTTON\n /////////////////////////////// LABEL\n\n\n _this.getLabelProps = function (props) {\n return _extends({\n htmlFor: _this.inputId,\n id: _this.labelId\n }, props);\n }; //\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ LABEL\n /////////////////////////////// INPUT\n\n\n _this.getInputProps = function (_temp4) {\n var _ref4 = _temp4 === void 0 ? {} : _temp4,\n onKeyDown = _ref4.onKeyDown,\n onBlur = _ref4.onBlur,\n onChange = _ref4.onChange,\n onInput = _ref4.onInput;\n\n _ref4.onChangeText;\n\n var rest = _objectWithoutPropertiesLoose(_ref4, _excluded3$2);\n\n var onChangeKey;\n var eventHandlers = {};\n /* istanbul ignore next (preact) */\n\n {\n onChangeKey = 'onChange';\n }\n\n var _this$getState6 = _this.getState(),\n inputValue = _this$getState6.inputValue,\n isOpen = _this$getState6.isOpen,\n highlightedIndex = _this$getState6.highlightedIndex;\n\n if (!rest.disabled) {\n var _eventHandlers;\n\n eventHandlers = (_eventHandlers = {}, _eventHandlers[onChangeKey] = callAllEventHandlers(onChange, onInput, _this.inputHandleChange), _eventHandlers.onKeyDown = callAllEventHandlers(onKeyDown, _this.inputHandleKeyDown), _eventHandlers.onBlur = callAllEventHandlers(onBlur, _this.inputHandleBlur), _eventHandlers);\n }\n\n return _extends({\n 'aria-autocomplete': 'list',\n 'aria-activedescendant': isOpen && typeof highlightedIndex === 'number' && highlightedIndex >= 0 ? _this.getItemId(highlightedIndex) : undefined,\n 'aria-controls': isOpen ? _this.menuId : undefined,\n 'aria-labelledby': rest && rest['aria-label'] ? undefined : _this.labelId,\n // https://developer.mozilla.org/en-US/docs/Web/Security/Securing_your_site/Turning_off_form_autocompletion\n // revert back since autocomplete=\"nope\" is ignored on latest Chrome and Opera\n autoComplete: 'off',\n value: inputValue,\n id: _this.inputId\n }, eventHandlers, rest);\n };\n\n _this.inputHandleKeyDown = function (event) {\n var key = normalizeArrowKey(event);\n\n if (key && _this.inputKeyDownHandlers[key]) {\n _this.inputKeyDownHandlers[key].call(_this, event);\n }\n };\n\n _this.inputHandleChange = function (event) {\n _this.internalSetState({\n type: changeInput,\n isOpen: true,\n inputValue: event.target.value,\n highlightedIndex: _this.props.defaultHighlightedIndex\n });\n };\n\n _this.inputHandleBlur = function () {\n // Need setTimeout, so that when the user presses Tab, the activeElement is the next focused element, not the body element\n _this.internalSetTimeout(function () {\n var _activeElement$datase;\n\n if (_this.isMouseDown || !_this.props.environment) {\n return;\n }\n\n var activeElement = _this.props.environment.document.activeElement;\n\n var downshiftButtonIsActive = (activeElement == null || (_activeElement$datase = activeElement.dataset) == null ? void 0 : _activeElement$datase.toggle) && _this._rootNode && _this._rootNode.contains(activeElement);\n\n if (!downshiftButtonIsActive) {\n _this.reset({\n type: blurInput\n });\n }\n });\n }; //\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ INPUT\n /////////////////////////////// MENU\n\n\n _this.menuRef = function (node) {\n _this._menuNode = node;\n };\n\n _this.getMenuProps = function (_temp5, _temp6) {\n var _extends3;\n\n var _ref5 = _temp5 === void 0 ? {} : _temp5,\n _ref5$refKey = _ref5.refKey,\n refKey = _ref5$refKey === void 0 ? 'ref' : _ref5$refKey,\n ref = _ref5.ref,\n props = _objectWithoutPropertiesLoose(_ref5, _excluded4$2);\n\n var _ref6 = _temp6 === void 0 ? {} : _temp6,\n _ref6$suppressRefErro = _ref6.suppressRefError,\n suppressRefError = _ref6$suppressRefErro === void 0 ? false : _ref6$suppressRefErro;\n\n _this.getMenuProps.called = true;\n _this.getMenuProps.refKey = refKey;\n _this.getMenuProps.suppressRefError = suppressRefError;\n return _extends((_extends3 = {}, _extends3[refKey] = handleRefs(ref, _this.menuRef), _extends3.role = 'listbox', _extends3['aria-labelledby'] = props && props['aria-label'] ? undefined : _this.labelId, _extends3.id = _this.menuId, _extends3), props);\n }; //\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ MENU\n /////////////////////////////// ITEM\n\n\n _this.getItemProps = function (_temp7) {\n var _enabledEventHandlers;\n\n var _ref7 = _temp7 === void 0 ? {} : _temp7,\n onMouseMove = _ref7.onMouseMove,\n onMouseDown = _ref7.onMouseDown,\n onClick = _ref7.onClick;\n\n _ref7.onPress;\n\n var index = _ref7.index,\n _ref7$item = _ref7.item,\n item = _ref7$item === void 0 ? process.env.NODE_ENV === 'production' ?\n /* istanbul ignore next */\n undefined : requiredProp('getItemProps', 'item') : _ref7$item,\n rest = _objectWithoutPropertiesLoose(_ref7, _excluded5);\n\n if (index === undefined) {\n _this.items.push(item);\n\n index = _this.items.indexOf(item);\n } else {\n _this.items[index] = item;\n }\n\n var onSelectKey = 'onClick';\n var customClickHandler = onClick;\n var enabledEventHandlers = (_enabledEventHandlers = {\n // onMouseMove is used over onMouseEnter here. onMouseMove\n // is only triggered on actual mouse movement while onMouseEnter\n // can fire on DOM changes, interrupting keyboard navigation\n onMouseMove: callAllEventHandlers(onMouseMove, function () {\n if (index === _this.getState().highlightedIndex) {\n return;\n }\n\n _this.setHighlightedIndex(index, {\n type: itemMouseEnter\n }); // We never want to manually scroll when changing state based\n // on `onMouseMove` because we will be moving the element out\n // from under the user which is currently scrolling/moving the\n // cursor\n\n\n _this.avoidScrolling = true;\n\n _this.internalSetTimeout(function () {\n return _this.avoidScrolling = false;\n }, 250);\n }),\n onMouseDown: callAllEventHandlers(onMouseDown, function (event) {\n // This prevents the activeElement from being changed\n // to the item so it can remain with the current activeElement\n // which is a more common use case.\n event.preventDefault();\n })\n }, _enabledEventHandlers[onSelectKey] = callAllEventHandlers(customClickHandler, function () {\n _this.selectItemAtIndex(index, {\n type: clickItem\n });\n }), _enabledEventHandlers); // Passing down the onMouseDown handler to prevent redirect\n // of the activeElement if clicking on disabled items\n\n var eventHandlers = rest.disabled ? {\n onMouseDown: enabledEventHandlers.onMouseDown\n } : enabledEventHandlers;\n return _extends({\n id: _this.getItemId(index),\n role: 'option',\n 'aria-selected': _this.getState().highlightedIndex === index\n }, eventHandlers, rest);\n }; //\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ITEM\n\n\n _this.clearItems = function () {\n _this.items = [];\n };\n\n _this.reset = function (otherStateToSet, cb) {\n if (otherStateToSet === void 0) {\n otherStateToSet = {};\n }\n\n otherStateToSet = pickState(otherStateToSet);\n\n _this.internalSetState(function (_ref8) {\n var selectedItem = _ref8.selectedItem;\n return _extends({\n isOpen: _this.props.defaultIsOpen,\n highlightedIndex: _this.props.defaultHighlightedIndex,\n inputValue: _this.props.itemToString(selectedItem)\n }, otherStateToSet);\n }, cb);\n };\n\n _this.toggleMenu = function (otherStateToSet, cb) {\n if (otherStateToSet === void 0) {\n otherStateToSet = {};\n }\n\n otherStateToSet = pickState(otherStateToSet);\n\n _this.internalSetState(function (_ref9) {\n var isOpen = _ref9.isOpen;\n return _extends({\n isOpen: !isOpen\n }, isOpen && {\n highlightedIndex: _this.props.defaultHighlightedIndex\n }, otherStateToSet);\n }, function () {\n var _this$getState7 = _this.getState(),\n isOpen = _this$getState7.isOpen,\n highlightedIndex = _this$getState7.highlightedIndex;\n\n if (isOpen) {\n if (_this.getItemCount() > 0 && typeof highlightedIndex === 'number') {\n _this.setHighlightedIndex(highlightedIndex, otherStateToSet);\n }\n }\n\n cbToCb(cb)();\n });\n };\n\n _this.openMenu = function (cb) {\n _this.internalSetState({\n isOpen: true\n }, cb);\n };\n\n _this.closeMenu = function (cb) {\n _this.internalSetState({\n isOpen: false\n }, cb);\n };\n\n _this.updateStatus = debounce(function () {\n var _this$props;\n\n if (!((_this$props = _this.props) != null && (_this$props = _this$props.environment) != null && _this$props.document)) {\n return;\n }\n\n var state = _this.getState();\n\n var item = _this.items[state.highlightedIndex];\n\n var resultCount = _this.getItemCount();\n\n var status = _this.props.getA11yStatusMessage(_extends({\n itemToString: _this.props.itemToString,\n previousResultCount: _this.previousResultCount,\n resultCount: resultCount,\n highlightedItem: item\n }, state));\n\n _this.previousResultCount = resultCount;\n setStatus(status, _this.props.environment.document);\n }, 200);\n\n var _this$props2 = _this.props,\n defaultHighlightedIndex = _this$props2.defaultHighlightedIndex,\n _this$props2$initialH = _this$props2.initialHighlightedIndex,\n _highlightedIndex = _this$props2$initialH === void 0 ? defaultHighlightedIndex : _this$props2$initialH,\n defaultIsOpen = _this$props2.defaultIsOpen,\n _this$props2$initialI = _this$props2.initialIsOpen,\n _isOpen = _this$props2$initialI === void 0 ? defaultIsOpen : _this$props2$initialI,\n _this$props2$initialI2 = _this$props2.initialInputValue,\n _inputValue = _this$props2$initialI2 === void 0 ? '' : _this$props2$initialI2,\n _this$props2$initialS = _this$props2.initialSelectedItem,\n _selectedItem = _this$props2$initialS === void 0 ? null : _this$props2$initialS;\n\n var _state = _this.getState({\n highlightedIndex: _highlightedIndex,\n isOpen: _isOpen,\n inputValue: _inputValue,\n selectedItem: _selectedItem\n });\n\n if (_state.selectedItem != null && _this.props.initialInputValue === undefined) {\n _state.inputValue = _this.props.itemToString(_state.selectedItem);\n }\n\n _this.state = _state;\n return _this;\n }\n\n _inheritsLoose(Downshift, _Component);\n\n var _proto = Downshift.prototype;\n /**\n * Clear all running timeouts\n */\n\n _proto.internalClearTimeouts = function internalClearTimeouts() {\n this.timeoutIds.forEach(function (id) {\n clearTimeout(id);\n });\n this.timeoutIds = [];\n }\n /**\n * Gets the state based on internal state or props\n * If a state value is passed via props, then that\n * is the value given, otherwise it's retrieved from\n * stateToMerge\n *\n * @param {Object} stateToMerge defaults to this.state\n * @return {Object} the state\n */\n ;\n\n _proto.getState = function getState$1(stateToMerge) {\n if (stateToMerge === void 0) {\n stateToMerge = this.state;\n }\n\n return getState(stateToMerge, this.props);\n };\n\n _proto.getItemCount = function getItemCount() {\n // things read better this way. They're in priority order:\n // 1. `this.itemCount`\n // 2. `this.props.itemCount`\n // 3. `this.items.length`\n var itemCount = this.items.length;\n\n if (this.itemCount != null) {\n itemCount = this.itemCount;\n } else if (this.props.itemCount !== undefined) {\n itemCount = this.props.itemCount;\n }\n\n return itemCount;\n };\n\n _proto.getItemNodeFromIndex = function getItemNodeFromIndex(index) {\n return this.props.environment ? this.props.environment.document.getElementById(this.getItemId(index)) : null;\n };\n\n _proto.scrollHighlightedItemIntoView = function scrollHighlightedItemIntoView() {\n /* istanbul ignore else (react-native) */\n {\n var node = this.getItemNodeFromIndex(this.getState().highlightedIndex);\n this.props.scrollIntoView(node, this._menuNode);\n }\n };\n\n _proto.moveHighlightedIndex = function moveHighlightedIndex(amount, otherStateToSet) {\n var itemCount = this.getItemCount();\n\n var _this$getState8 = this.getState(),\n highlightedIndex = _this$getState8.highlightedIndex;\n\n if (itemCount > 0) {\n var nextHighlightedIndex = getHighlightedIndex(highlightedIndex, amount, {\n length: itemCount\n }, this.isItemDisabled, true);\n this.setHighlightedIndex(nextHighlightedIndex, otherStateToSet);\n }\n };\n\n _proto.getStateAndHelpers = function getStateAndHelpers() {\n var _this$getState9 = this.getState(),\n highlightedIndex = _this$getState9.highlightedIndex,\n inputValue = _this$getState9.inputValue,\n selectedItem = _this$getState9.selectedItem,\n isOpen = _this$getState9.isOpen;\n\n var itemToString = this.props.itemToString;\n var id = this.id;\n var getRootProps = this.getRootProps,\n getToggleButtonProps = this.getToggleButtonProps,\n getLabelProps = this.getLabelProps,\n getMenuProps = this.getMenuProps,\n getInputProps = this.getInputProps,\n getItemProps = this.getItemProps,\n openMenu = this.openMenu,\n closeMenu = this.closeMenu,\n toggleMenu = this.toggleMenu,\n selectItem = this.selectItem,\n selectItemAtIndex = this.selectItemAtIndex,\n selectHighlightedItem = this.selectHighlightedItem,\n setHighlightedIndex = this.setHighlightedIndex,\n clearSelection = this.clearSelection,\n clearItems = this.clearItems,\n reset = this.reset,\n setItemCount = this.setItemCount,\n unsetItemCount = this.unsetItemCount,\n setState = this.internalSetState;\n return {\n // prop getters\n getRootProps: getRootProps,\n getToggleButtonProps: getToggleButtonProps,\n getLabelProps: getLabelProps,\n getMenuProps: getMenuProps,\n getInputProps: getInputProps,\n getItemProps: getItemProps,\n // actions\n reset: reset,\n openMenu: openMenu,\n closeMenu: closeMenu,\n toggleMenu: toggleMenu,\n selectItem: selectItem,\n selectItemAtIndex: selectItemAtIndex,\n selectHighlightedItem: selectHighlightedItem,\n setHighlightedIndex: setHighlightedIndex,\n clearSelection: clearSelection,\n clearItems: clearItems,\n setItemCount: setItemCount,\n unsetItemCount: unsetItemCount,\n setState: setState,\n // props\n itemToString: itemToString,\n // derived\n id: id,\n // state\n highlightedIndex: highlightedIndex,\n inputValue: inputValue,\n isOpen: isOpen,\n selectedItem: selectedItem\n };\n };\n\n _proto.componentDidMount = function componentDidMount() {\n var _this4 = this;\n /* istanbul ignore if (react-native) */\n\n\n if (process.env.NODE_ENV !== 'production' && !false && this.getMenuProps.called && !this.getMenuProps.suppressRefError) {\n validateGetMenuPropsCalledCorrectly(this._menuNode, this.getMenuProps);\n }\n /* istanbul ignore if (react-native or SSR) */\n\n\n if (!this.props.environment) {\n this.cleanup = function () {\n _this4.internalClearTimeouts();\n };\n } else {\n // this.isMouseDown helps us track whether the mouse is currently held down.\n // This is useful when the user clicks on an item in the list, but holds the mouse\n // down long enough for the list to disappear (because the blur event fires on the input)\n // this.isMouseDown is used in the blur handler on the input to determine whether the blur event should\n // trigger hiding the menu.\n var onMouseDown = function onMouseDown() {\n _this4.isMouseDown = true;\n };\n\n var onMouseUp = function onMouseUp(event) {\n _this4.isMouseDown = false; // if the target element or the activeElement is within a downshift node\n // then we don't want to reset downshift\n\n var contextWithinDownshift = targetWithinDownshift(event.target, [_this4._rootNode, _this4._menuNode], _this4.props.environment);\n\n if (!contextWithinDownshift && _this4.getState().isOpen) {\n _this4.reset({\n type: mouseUp\n }, function () {\n return _this4.props.onOuterClick(_this4.getStateAndHelpers());\n });\n }\n }; // Touching an element in iOS gives focus and hover states, but touching out of\n // the element will remove hover, and persist the focus state, resulting in the\n // blur event not being triggered.\n // this.isTouchMove helps us track whether the user is tapping or swiping on a touch screen.\n // If the user taps outside of Downshift, the component should be reset,\n // but not if the user is swiping\n\n\n var onTouchStart = function onTouchStart() {\n _this4.isTouchMove = false;\n };\n\n var onTouchMove = function onTouchMove() {\n _this4.isTouchMove = true;\n };\n\n var onTouchEnd = function onTouchEnd(event) {\n var contextWithinDownshift = targetWithinDownshift(event.target, [_this4._rootNode, _this4._menuNode], _this4.props.environment, false);\n\n if (!_this4.isTouchMove && !contextWithinDownshift && _this4.getState().isOpen) {\n _this4.reset({\n type: touchEnd\n }, function () {\n return _this4.props.onOuterClick(_this4.getStateAndHelpers());\n });\n }\n };\n\n var environment = this.props.environment;\n environment.addEventListener('mousedown', onMouseDown);\n environment.addEventListener('mouseup', onMouseUp);\n environment.addEventListener('touchstart', onTouchStart);\n environment.addEventListener('touchmove', onTouchMove);\n environment.addEventListener('touchend', onTouchEnd);\n\n this.cleanup = function () {\n _this4.internalClearTimeouts();\n\n _this4.updateStatus.cancel();\n\n environment.removeEventListener('mousedown', onMouseDown);\n environment.removeEventListener('mouseup', onMouseUp);\n environment.removeEventListener('touchstart', onTouchStart);\n environment.removeEventListener('touchmove', onTouchMove);\n environment.removeEventListener('touchend', onTouchEnd);\n };\n }\n };\n\n _proto.shouldScroll = function shouldScroll(prevState, prevProps) {\n var _ref10 = this.props.highlightedIndex === undefined ? this.getState() : this.props,\n currentHighlightedIndex = _ref10.highlightedIndex;\n\n var _ref11 = prevProps.highlightedIndex === undefined ? prevState : prevProps,\n prevHighlightedIndex = _ref11.highlightedIndex;\n\n var scrollWhenOpen = currentHighlightedIndex && this.getState().isOpen && !prevState.isOpen;\n var scrollWhenNavigating = currentHighlightedIndex !== prevHighlightedIndex;\n return scrollWhenOpen || scrollWhenNavigating;\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n if (process.env.NODE_ENV !== 'production') {\n validateControlledUnchanged(this.state, prevProps, this.props);\n /* istanbul ignore if (react-native) */\n\n if (this.getMenuProps.called && !this.getMenuProps.suppressRefError) {\n validateGetMenuPropsCalledCorrectly(this._menuNode, this.getMenuProps);\n }\n }\n\n if (isControlledProp(this.props, 'selectedItem') && this.props.selectedItemChanged(prevProps.selectedItem, this.props.selectedItem)) {\n this.internalSetState({\n type: controlledPropUpdatedSelectedItem,\n inputValue: this.props.itemToString(this.props.selectedItem)\n });\n }\n\n if (!this.avoidScrolling && this.shouldScroll(prevState, prevProps)) {\n this.scrollHighlightedItemIntoView();\n }\n /* istanbul ignore else (react-native) */\n\n\n {\n this.updateStatus();\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cleanup(); // avoids memory leak\n };\n\n _proto.render = function render() {\n var children = unwrapArray(this.props.children, noop); // because the items are rerendered every time we call the children\n // we clear this out each render and it will be populated again as\n // getItemProps is called.\n\n this.clearItems(); // we reset this so we know whether the user calls getRootProps during\n // this render. If they do then we don't need to do anything,\n // if they don't then we need to clone the element they return and\n // apply the props for them.\n\n this.getRootProps.called = false;\n this.getRootProps.refKey = undefined;\n this.getRootProps.suppressRefError = undefined; // we do something similar for getMenuProps\n\n this.getMenuProps.called = false;\n this.getMenuProps.refKey = undefined;\n this.getMenuProps.suppressRefError = undefined; // we do something similar for getLabelProps\n\n this.getLabelProps.called = false; // and something similar for getInputProps\n\n this.getInputProps.called = false;\n var element = unwrapArray(children(this.getStateAndHelpers()));\n\n if (!element) {\n return null;\n }\n\n if (this.getRootProps.called || this.props.suppressRefError) {\n if (process.env.NODE_ENV !== 'production' && !this.getRootProps.suppressRefError && !this.props.suppressRefError) {\n validateGetRootPropsCalledCorrectly(element, this.getRootProps);\n }\n\n return element;\n } else if (isDOMElement(element)) {\n // they didn't apply the root props, but we can clone\n // this and apply the props ourselves\n return /*#__PURE__*/cloneElement(element, this.getRootProps(getElementProps(element)));\n }\n /* istanbul ignore else */\n\n\n if (process.env.NODE_ENV !== 'production') {\n // they didn't apply the root props, but they need to\n // otherwise we can't query around the autocomplete\n throw new Error('downshift: If you return a non-DOM element, you must apply the getRootProps function');\n }\n /* istanbul ignore next */\n\n\n return undefined;\n };\n\n return Downshift;\n }(Component);\n\n Downshift.defaultProps = {\n defaultHighlightedIndex: null,\n defaultIsOpen: false,\n getA11yStatusMessage: getA11yStatusMessage,\n itemToString: function itemToString(i) {\n if (i == null) {\n return '';\n }\n\n if (process.env.NODE_ENV !== 'production' && isPlainObject(i) && !i.hasOwnProperty('toString')) {\n // eslint-disable-next-line no-console\n console.warn('downshift: An object was passed to the default implementation of `itemToString`. You should probably provide your own `itemToString` implementation. Please refer to the `itemToString` API documentation.', 'The object that was passed:', i);\n }\n\n return String(i);\n },\n onStateChange: noop,\n onInputValueChange: noop,\n onUserAction: noop,\n onChange: noop,\n onSelect: noop,\n onOuterClick: noop,\n selectedItemChanged: function selectedItemChanged(prevItem, item) {\n return prevItem !== item;\n },\n environment:\n /* istanbul ignore next (ssr) */\n typeof window === 'undefined' || false ? undefined : window,\n stateReducer: function stateReducer(state, stateToSet) {\n return stateToSet;\n },\n suppressRefError: false,\n scrollIntoView: scrollIntoView\n };\n Downshift.stateChangeTypes = stateChangeTypes$3;\n return Downshift;\n}();\n\nprocess.env.NODE_ENV !== \"production\" ? Downshift.propTypes = {\n children: PropTypes.func,\n defaultHighlightedIndex: PropTypes.number,\n defaultIsOpen: PropTypes.bool,\n initialHighlightedIndex: PropTypes.number,\n initialSelectedItem: PropTypes.any,\n initialInputValue: PropTypes.string,\n initialIsOpen: PropTypes.bool,\n getA11yStatusMessage: PropTypes.func,\n itemToString: PropTypes.func,\n onChange: PropTypes.func,\n onSelect: PropTypes.func,\n onStateChange: PropTypes.func,\n onInputValueChange: PropTypes.func,\n onUserAction: PropTypes.func,\n onOuterClick: PropTypes.func,\n selectedItemChanged: PropTypes.func,\n stateReducer: PropTypes.func,\n itemCount: PropTypes.number,\n id: PropTypes.string,\n environment: PropTypes.shape({\n addEventListener: PropTypes.func.isRequired,\n removeEventListener: PropTypes.func.isRequired,\n document: PropTypes.shape({\n createElement: PropTypes.func.isRequired,\n getElementById: PropTypes.func.isRequired,\n activeElement: PropTypes.any.isRequired,\n body: PropTypes.any.isRequired\n }).isRequired,\n Node: PropTypes.func.isRequired\n }),\n suppressRefError: PropTypes.bool,\n scrollIntoView: PropTypes.func,\n // things we keep in state for uncontrolled components\n // but can accept as props for controlled components\n\n /* eslint-disable react/no-unused-prop-types */\n selectedItem: PropTypes.any,\n isOpen: PropTypes.bool,\n inputValue: PropTypes.string,\n highlightedIndex: PropTypes.number,\n labelId: PropTypes.string,\n inputId: PropTypes.string,\n menuId: PropTypes.string,\n getItemId: PropTypes.func\n /* eslint-enable react/no-unused-prop-types */\n\n} : void 0;\nvar Downshift$1 = Downshift;\n\nfunction validateGetMenuPropsCalledCorrectly(node, _ref12) {\n var refKey = _ref12.refKey;\n\n if (!node) {\n // eslint-disable-next-line no-console\n console.error(\"downshift: The ref prop \\\"\" + refKey + \"\\\" from getMenuProps was not applied correctly on your menu element.\");\n }\n}\n\nfunction validateGetRootPropsCalledCorrectly(element, _ref13) {\n var refKey = _ref13.refKey;\n var refKeySpecified = refKey !== 'ref';\n var isComposite = !isDOMElement(element);\n\n if (isComposite && !refKeySpecified && !isForwardRef(element)) {\n // eslint-disable-next-line no-console\n console.error('downshift: You returned a non-DOM element. You must specify a refKey in getRootProps');\n } else if (!isComposite && refKeySpecified) {\n // eslint-disable-next-line no-console\n console.error(\"downshift: You returned a DOM element. You should not specify a refKey in getRootProps. You specified \\\"\" + refKey + \"\\\"\");\n }\n\n if (!isForwardRef(element) && !getElementProps(element)[refKey]) {\n // eslint-disable-next-line no-console\n console.error(\"downshift: You must apply the ref prop \\\"\" + refKey + \"\\\" from getRootProps onto your root element.\");\n }\n}\n\nvar dropdownDefaultStateValues = {\n highlightedIndex: -1,\n isOpen: false,\n selectedItem: null,\n inputValue: ''\n};\n\nfunction callOnChangeProps(action, state, newState) {\n var props = action.props,\n type = action.type;\n var changes = {};\n Object.keys(state).forEach(function (key) {\n invokeOnChangeHandler(key, action, state, newState);\n\n if (newState[key] !== state[key]) {\n changes[key] = newState[key];\n }\n });\n\n if (props.onStateChange && Object.keys(changes).length) {\n props.onStateChange(_extends({\n type: type\n }, changes));\n }\n}\n\nfunction invokeOnChangeHandler(key, action, state, newState) {\n var props = action.props,\n type = action.type;\n var handler = \"on\" + capitalizeString(key) + \"Change\";\n\n if (props[handler] && newState[key] !== undefined && newState[key] !== state[key]) {\n props[handler](_extends({\n type: type\n }, newState));\n }\n}\n/**\n * Default state reducer that returns the changes.\n *\n * @param {Object} s state.\n * @param {Object} a action with changes.\n * @returns {Object} changes.\n */\n\n\nfunction stateReducer(s, a) {\n return a.changes;\n}\n/**\n * Debounced call for updating the a11y message.\n */\n\n\nvar updateA11yStatus = debounce(function (status, document) {\n setStatus(status, document);\n}, 200); // istanbul ignore next\n\nvar useIsomorphicLayoutEffect = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined' ? useLayoutEffect : useEffect; // istanbul ignore next\n\nvar useElementIds = 'useId' in React // Avoid conditional useId call\n? function useElementIds(_ref) {\n var id = _ref.id,\n labelId = _ref.labelId,\n menuId = _ref.menuId,\n getItemId = _ref.getItemId,\n toggleButtonId = _ref.toggleButtonId,\n inputId = _ref.inputId; // Avoid conditional useId call\n\n var reactId = \"downshift-\" + React.useId();\n\n if (!id) {\n id = reactId;\n }\n\n var elementIdsRef = useRef({\n labelId: labelId || id + \"-label\",\n menuId: menuId || id + \"-menu\",\n getItemId: getItemId || function (index) {\n return id + \"-item-\" + index;\n },\n toggleButtonId: toggleButtonId || id + \"-toggle-button\",\n inputId: inputId || id + \"-input\"\n });\n return elementIdsRef.current;\n} : function useElementIds(_ref2) {\n var _ref2$id = _ref2.id,\n id = _ref2$id === void 0 ? \"downshift-\" + generateId() : _ref2$id,\n labelId = _ref2.labelId,\n menuId = _ref2.menuId,\n getItemId = _ref2.getItemId,\n toggleButtonId = _ref2.toggleButtonId,\n inputId = _ref2.inputId;\n var elementIdsRef = useRef({\n labelId: labelId || id + \"-label\",\n menuId: menuId || id + \"-menu\",\n getItemId: getItemId || function (index) {\n return id + \"-item-\" + index;\n },\n toggleButtonId: toggleButtonId || id + \"-toggle-button\",\n inputId: inputId || id + \"-input\"\n });\n return elementIdsRef.current;\n};\n\nfunction getItemAndIndex(itemProp, indexProp, items, errorMessage) {\n var item, index;\n\n if (itemProp === undefined) {\n if (indexProp === undefined) {\n throw new Error(errorMessage);\n }\n\n item = items[indexProp];\n index = indexProp;\n } else {\n index = indexProp === undefined ? items.indexOf(itemProp) : indexProp;\n item = itemProp;\n }\n\n return [item, index];\n}\n\nfunction isAcceptedCharacterKey(key) {\n return /^\\S{1}$/.test(key);\n}\n\nfunction capitalizeString(string) {\n return \"\" + string.slice(0, 1).toUpperCase() + string.slice(1);\n}\n\nfunction useLatestRef(val) {\n var ref = useRef(val); // technically this is not \"concurrent mode safe\" because we're manipulating\n // the value during render (so it's not idempotent). However, the places this\n // hook is used is to support memoizing callbacks which will be called\n // *during* render, so we need the latest values *during* render.\n // If not for this, then we'd probably want to use useLayoutEffect instead.\n\n ref.current = val;\n return ref;\n}\n/**\n * Computes the controlled state using a the previous state, props,\n * two reducers, one from downshift and an optional one from the user.\n * Also calls the onChange handlers for state values that have changed.\n *\n * @param {Function} reducer Reducer function from downshift.\n * @param {Object} props The hook props, also passed to createInitialState.\n * @param {Function} createInitialState Function that returns the initial state.\n * @param {Function} isStateEqual Function that checks if a previous state is equal to the next.\n * @returns {Array} An array with the state and an action dispatcher.\n */\n\n\nfunction useEnhancedReducer(reducer, props, createInitialState, isStateEqual) {\n var prevStateRef = useRef();\n var actionRef = useRef();\n var enhancedReducer = useCallback(function (state, action) {\n actionRef.current = action;\n state = getState(state, action.props);\n var changes = reducer(state, action);\n var newState = action.props.stateReducer(state, _extends({}, action, {\n changes: changes\n }));\n return newState;\n }, [reducer]);\n\n var _useReducer = useReducer(enhancedReducer, props, createInitialState),\n state = _useReducer[0],\n dispatch = _useReducer[1];\n\n var propsRef = useLatestRef(props);\n var dispatchWithProps = useCallback(function (action) {\n return dispatch(_extends({\n props: propsRef.current\n }, action));\n }, [propsRef]);\n var action = actionRef.current;\n useEffect(function () {\n var prevState = getState(prevStateRef.current, action == null ? void 0 : action.props);\n var shouldCallOnChangeProps = action && prevStateRef.current && !isStateEqual(prevState, state);\n\n if (shouldCallOnChangeProps) {\n callOnChangeProps(action, prevState, state);\n }\n\n prevStateRef.current = state;\n }, [state, action, isStateEqual]);\n return [state, dispatchWithProps];\n}\n/**\n * Wraps the useEnhancedReducer and applies the controlled prop values before\n * returning the new state.\n *\n * @param {Function} reducer Reducer function from downshift.\n * @param {Object} props The hook props, also passed to createInitialState.\n * @param {Function} createInitialState Function that returns the initial state.\n * @param {Function} isStateEqual Function that checks if a previous state is equal to the next.\n * @returns {Array} An array with the state and an action dispatcher.\n */\n\n\nfunction useControlledReducer$1(reducer, props, createInitialState, isStateEqual) {\n var _useEnhancedReducer = useEnhancedReducer(reducer, props, createInitialState, isStateEqual),\n state = _useEnhancedReducer[0],\n dispatch = _useEnhancedReducer[1];\n\n return [getState(state, props), dispatch];\n}\n\nvar defaultProps$3 = {\n itemToString: function itemToString(item) {\n return item ? String(item) : '';\n },\n itemToKey: function itemToKey(item) {\n return item;\n },\n stateReducer: stateReducer,\n scrollIntoView: scrollIntoView,\n environment:\n /* istanbul ignore next (ssr) */\n typeof window === 'undefined' || false ? undefined : window\n};\n\nfunction getDefaultValue$1(props, propKey, defaultStateValues) {\n if (defaultStateValues === void 0) {\n defaultStateValues = dropdownDefaultStateValues;\n }\n\n var defaultValue = props[\"default\" + capitalizeString(propKey)];\n\n if (defaultValue !== undefined) {\n return defaultValue;\n }\n\n return defaultStateValues[propKey];\n}\n\nfunction getInitialValue$1(props, propKey, defaultStateValues) {\n if (defaultStateValues === void 0) {\n defaultStateValues = dropdownDefaultStateValues;\n }\n\n var value = props[propKey];\n\n if (value !== undefined) {\n return value;\n }\n\n var initialValue = props[\"initial\" + capitalizeString(propKey)];\n\n if (initialValue !== undefined) {\n return initialValue;\n }\n\n return getDefaultValue$1(props, propKey, defaultStateValues);\n}\n\nfunction getInitialState$2(props) {\n var selectedItem = getInitialValue$1(props, 'selectedItem');\n var isOpen = getInitialValue$1(props, 'isOpen');\n var highlightedIndex = getInitialHighlightedIndex(props);\n var inputValue = getInitialValue$1(props, 'inputValue');\n return {\n highlightedIndex: highlightedIndex < 0 && selectedItem && isOpen ? props.items.findIndex(function (item) {\n return props.itemToKey(item) === props.itemToKey(selectedItem);\n }) : highlightedIndex,\n isOpen: isOpen,\n selectedItem: selectedItem,\n inputValue: inputValue\n };\n}\n\nfunction getHighlightedIndexOnOpen(props, state, offset) {\n var items = props.items,\n initialHighlightedIndex = props.initialHighlightedIndex,\n defaultHighlightedIndex = props.defaultHighlightedIndex,\n isItemDisabled = props.isItemDisabled,\n itemToKey = props.itemToKey;\n var selectedItem = state.selectedItem,\n highlightedIndex = state.highlightedIndex;\n\n if (items.length === 0) {\n return -1;\n } // initialHighlightedIndex will give value to highlightedIndex on initial state only.\n\n\n if (initialHighlightedIndex !== undefined && highlightedIndex === initialHighlightedIndex && !isItemDisabled(items[initialHighlightedIndex], initialHighlightedIndex)) {\n return initialHighlightedIndex;\n }\n\n if (defaultHighlightedIndex !== undefined && !isItemDisabled(items[defaultHighlightedIndex], defaultHighlightedIndex)) {\n return defaultHighlightedIndex;\n }\n\n if (selectedItem) {\n return items.findIndex(function (item) {\n return itemToKey(selectedItem) === itemToKey(item);\n });\n }\n\n if (offset < 0 && !isItemDisabled(items[items.length - 1], items.length - 1)) {\n return items.length - 1;\n }\n\n if (offset > 0 && !isItemDisabled(items[0], 0)) {\n return 0;\n }\n\n return -1;\n}\n/**\n * Tracks mouse and touch events, such as mouseDown, touchMove and touchEnd.\n *\n * @param {Window} environment The environment to add the event listeners to, for instance window.\n * @param {() => void} handleBlur The function that is called if mouseDown or touchEnd occured outside the downshiftElements.\n * @param {Array<{current: HTMLElement}>} downshiftElementsRefs The refs for the elements that should not trigger a blur action from mouseDown or touchEnd.\n * @returns {{isMouseDown: boolean, isTouchMove: boolean, isTouchEnd: boolean}} The mouse and touch events information, if any of are happening.\n */\n\n\nfunction useMouseAndTouchTracker(environment, handleBlur, downshiftElementsRefs) {\n var mouseAndTouchTrackersRef = useRef({\n isMouseDown: false,\n isTouchMove: false,\n isTouchEnd: false\n });\n useEffect(function () {\n if (!environment) {\n return noop;\n }\n\n var downshiftElements = downshiftElementsRefs.map(function (ref) {\n return ref.current;\n });\n\n function onMouseDown() {\n mouseAndTouchTrackersRef.current.isTouchEnd = false; // reset this one.\n\n mouseAndTouchTrackersRef.current.isMouseDown = true;\n }\n\n function onMouseUp(event) {\n mouseAndTouchTrackersRef.current.isMouseDown = false;\n\n if (!targetWithinDownshift(event.target, downshiftElements, environment)) {\n handleBlur();\n }\n }\n\n function onTouchStart() {\n mouseAndTouchTrackersRef.current.isTouchEnd = false;\n mouseAndTouchTrackersRef.current.isTouchMove = false;\n }\n\n function onTouchMove() {\n mouseAndTouchTrackersRef.current.isTouchMove = true;\n }\n\n function onTouchEnd(event) {\n mouseAndTouchTrackersRef.current.isTouchEnd = true;\n\n if (!mouseAndTouchTrackersRef.current.isTouchMove && !targetWithinDownshift(event.target, downshiftElements, environment, false)) {\n handleBlur();\n }\n }\n\n environment.addEventListener('mousedown', onMouseDown);\n environment.addEventListener('mouseup', onMouseUp);\n environment.addEventListener('touchstart', onTouchStart);\n environment.addEventListener('touchmove', onTouchMove);\n environment.addEventListener('touchend', onTouchEnd);\n return function cleanup() {\n environment.removeEventListener('mousedown', onMouseDown);\n environment.removeEventListener('mouseup', onMouseUp);\n environment.removeEventListener('touchstart', onTouchStart);\n environment.removeEventListener('touchmove', onTouchMove);\n environment.removeEventListener('touchend', onTouchEnd);\n };\n }, [downshiftElementsRefs, environment, handleBlur]);\n return mouseAndTouchTrackersRef.current;\n}\n/* istanbul ignore next */\n// eslint-disable-next-line import/no-mutable-exports\n\n\nvar useGetterPropsCalledChecker = function useGetterPropsCalledChecker() {\n return noop;\n};\n/**\n * Custom hook that checks if getter props are called correctly.\n *\n * @param {...any} propKeys Getter prop names to be handled.\n * @returns {Function} Setter function called inside getter props to set call information.\n */\n\n/* istanbul ignore next */\n\n\nif (process.env.NODE_ENV !== 'production') {\n useGetterPropsCalledChecker = function useGetterPropsCalledChecker() {\n for (var _len = arguments.length, propKeys = new Array(_len), _key = 0; _key < _len; _key++) {\n propKeys[_key] = arguments[_key];\n }\n\n var getterPropsCalledRef = useRef(propKeys.reduce(function (acc, propKey) {\n acc[propKey] = {};\n return acc;\n }, {}));\n useEffect(function () {\n Object.keys(getterPropsCalledRef.current).forEach(function (propKey) {\n var propCallInfo = getterPropsCalledRef.current[propKey];\n\n if (!Object.keys(propCallInfo).length) {\n // eslint-disable-next-line no-console\n console.error(\"downshift: You forgot to call the \" + propKey + \" getter function on your component / element.\");\n return;\n }\n\n var suppressRefError = propCallInfo.suppressRefError,\n refKey = propCallInfo.refKey,\n elementRef = propCallInfo.elementRef;\n\n if (suppressRefError) {\n return;\n }\n\n if (!(elementRef != null && elementRef.current)) {\n // eslint-disable-next-line no-console\n console.error(\"downshift: The ref prop \\\"\" + refKey + \"\\\" from \" + propKey + \" was not applied correctly on your element.\");\n }\n });\n }, []);\n var setGetterPropCallInfo = useCallback(function (propKey, suppressRefError, refKey, elementRef) {\n getterPropsCalledRef.current[propKey] = {\n suppressRefError: suppressRefError,\n refKey: refKey,\n elementRef: elementRef\n };\n }, []);\n return setGetterPropCallInfo;\n };\n}\n/**\n * Adds an a11y aria live status message if getA11yStatusMessage is passed.\n * @param {(options: Object) => string} getA11yStatusMessage The function that builds the status message.\n * @param {Object} options The options to be passed to getA11yStatusMessage if called.\n * @param {Array<unknown>} dependencyArray The dependency array that triggers the status message setter via useEffect.\n * @param {{document: Document}} environment The environment object containing the document.\n */\n\n\nfunction useA11yMessageStatus(getA11yStatusMessage, options, dependencyArray, environment) {\n if (environment === void 0) {\n environment = {};\n }\n\n var document = environment.document;\n var isInitialMount = useIsInitialMount(); // Adds an a11y aria live status message if getA11yStatusMessage is passed.\n\n useEffect(function () {\n if (!getA11yStatusMessage || isInitialMount || false || !document) {\n return;\n }\n\n var status = getA11yStatusMessage(options);\n updateA11yStatus(status, document); // eslint-disable-next-line react-hooks/exhaustive-deps\n }, dependencyArray); // Cleanup the status message container.\n\n useEffect(function () {\n return function () {\n updateA11yStatus.cancel();\n cleanupStatusDiv(document);\n };\n }, [document]);\n}\n\nfunction useScrollIntoView(_ref3) {\n var highlightedIndex = _ref3.highlightedIndex,\n isOpen = _ref3.isOpen,\n itemRefs = _ref3.itemRefs,\n getItemNodeFromIndex = _ref3.getItemNodeFromIndex,\n menuElement = _ref3.menuElement,\n scrollIntoViewProp = _ref3.scrollIntoView; // used not to scroll on highlight by mouse.\n\n var shouldScrollRef = useRef(true); // Scroll on highlighted item if change comes from keyboard.\n\n useIsomorphicLayoutEffect(function () {\n if (highlightedIndex < 0 || !isOpen || !Object.keys(itemRefs.current).length) {\n return;\n }\n\n if (shouldScrollRef.current === false) {\n shouldScrollRef.current = true;\n } else {\n scrollIntoViewProp(getItemNodeFromIndex(highlightedIndex), menuElement);\n } // eslint-disable-next-line react-hooks/exhaustive-deps\n\n }, [highlightedIndex]);\n return shouldScrollRef;\n} // eslint-disable-next-line import/no-mutable-exports\n\n\nvar useControlPropsValidator = noop;\n/* istanbul ignore next */\n\nif (process.env.NODE_ENV !== 'production') {\n useControlPropsValidator = function useControlPropsValidator(_ref4) {\n var props = _ref4.props,\n state = _ref4.state; // used for checking when props are moving from controlled to uncontrolled.\n\n var prevPropsRef = useRef(props);\n var isInitialMount = useIsInitialMount();\n useEffect(function () {\n if (isInitialMount) {\n return;\n }\n\n validateControlledUnchanged(state, prevPropsRef.current, props);\n prevPropsRef.current = props;\n }, [state, props, isInitialMount]);\n };\n}\n/**\n * Handles selection on Enter / Alt + ArrowUp. Closes the menu and resets the highlighted index, unless there is a highlighted.\n * In that case, selects the item and resets to defaults for open state and highlighted idex.\n * @param {Object} props The useCombobox props.\n * @param {number} highlightedIndex The index from the state.\n * @param {boolean} inputValue Also return the input value for state.\n * @returns The changes for the state.\n */\n\n\nfunction getChangesOnSelection(props, highlightedIndex, inputValue) {\n var _props$items;\n\n if (inputValue === void 0) {\n inputValue = true;\n }\n\n var shouldSelect = ((_props$items = props.items) == null ? void 0 : _props$items.length) && highlightedIndex >= 0;\n return _extends({\n isOpen: false,\n highlightedIndex: -1\n }, shouldSelect && _extends({\n selectedItem: props.items[highlightedIndex],\n isOpen: getDefaultValue$1(props, 'isOpen'),\n highlightedIndex: getDefaultValue$1(props, 'highlightedIndex')\n }, inputValue && {\n inputValue: props.itemToString(props.items[highlightedIndex])\n }));\n}\n/**\n * Check if a state is equal for dropdowns, by comparing isOpen, inputValue, highlightedIndex and selected item.\n * Used by useSelect and useCombobox.\n *\n * @param {Object} prevState\n * @param {Object} newState\n * @returns {boolean} Wheather the states are deeply equal.\n */\n\n\nfunction isDropdownsStateEqual(prevState, newState) {\n return prevState.isOpen === newState.isOpen && prevState.inputValue === newState.inputValue && prevState.highlightedIndex === newState.highlightedIndex && prevState.selectedItem === newState.selectedItem;\n}\n/**\n * Tracks if it's the first render.\n */\n\n\nfunction useIsInitialMount() {\n var isInitialMountRef = React.useRef(true);\n React.useEffect(function () {\n isInitialMountRef.current = false;\n return function () {\n isInitialMountRef.current = true;\n };\n }, []);\n return isInitialMountRef.current;\n}\n/**\n * Returns the new highlightedIndex based on the defaultHighlightedIndex prop, if it's not disabled.\n *\n * @param {Object} props Props from useCombobox or useSelect.\n * @returns {number} The highlighted index.\n */\n\n\nfunction getDefaultHighlightedIndex(props) {\n var highlightedIndex = getDefaultValue$1(props, 'highlightedIndex');\n\n if (highlightedIndex > -1 && props.isItemDisabled(props.items[highlightedIndex], highlightedIndex)) {\n return -1;\n }\n\n return highlightedIndex;\n}\n/**\n * Returns the new highlightedIndex based on the initialHighlightedIndex prop, if not disabled.\n *\n * @param {Object} props Props from useCombobox or useSelect.\n * @returns {number} The highlighted index.\n */\n\n\nfunction getInitialHighlightedIndex(props) {\n var highlightedIndex = getInitialValue$1(props, 'highlightedIndex');\n\n if (highlightedIndex > -1 && props.isItemDisabled(props.items[highlightedIndex], highlightedIndex)) {\n return -1;\n }\n\n return highlightedIndex;\n} // Shared between all exports.\n\n\nvar commonPropTypes = {\n environment: PropTypes.shape({\n addEventListener: PropTypes.func.isRequired,\n removeEventListener: PropTypes.func.isRequired,\n document: PropTypes.shape({\n createElement: PropTypes.func.isRequired,\n getElementById: PropTypes.func.isRequired,\n activeElement: PropTypes.any.isRequired,\n body: PropTypes.any.isRequired\n }).isRequired,\n Node: PropTypes.func.isRequired\n }),\n itemToString: PropTypes.func,\n itemToKey: PropTypes.func,\n stateReducer: PropTypes.func\n}; // Shared between useSelect, useCombobox, Downshift.\n\nvar commonDropdownPropTypes = _extends({}, commonPropTypes, {\n getA11yStatusMessage: PropTypes.func,\n highlightedIndex: PropTypes.number,\n defaultHighlightedIndex: PropTypes.number,\n initialHighlightedIndex: PropTypes.number,\n isOpen: PropTypes.bool,\n defaultIsOpen: PropTypes.bool,\n initialIsOpen: PropTypes.bool,\n selectedItem: PropTypes.any,\n initialSelectedItem: PropTypes.any,\n defaultSelectedItem: PropTypes.any,\n id: PropTypes.string,\n labelId: PropTypes.string,\n menuId: PropTypes.string,\n getItemId: PropTypes.func,\n toggleButtonId: PropTypes.string,\n onSelectedItemChange: PropTypes.func,\n onHighlightedIndexChange: PropTypes.func,\n onStateChange: PropTypes.func,\n onIsOpenChange: PropTypes.func,\n scrollIntoView: PropTypes.func\n});\n\nfunction downshiftCommonReducer(state, action, stateChangeTypes) {\n var type = action.type,\n props = action.props;\n var changes;\n\n switch (type) {\n case stateChangeTypes.ItemMouseMove:\n changes = {\n highlightedIndex: action.disabled ? -1 : action.index\n };\n break;\n\n case stateChangeTypes.MenuMouseLeave:\n changes = {\n highlightedIndex: -1\n };\n break;\n\n case stateChangeTypes.ToggleButtonClick:\n case stateChangeTypes.FunctionToggleMenu:\n changes = {\n isOpen: !state.isOpen,\n highlightedIndex: state.isOpen ? -1 : getHighlightedIndexOnOpen(props, state, 0)\n };\n break;\n\n case stateChangeTypes.FunctionOpenMenu:\n changes = {\n isOpen: true,\n highlightedIndex: getHighlightedIndexOnOpen(props, state, 0)\n };\n break;\n\n case stateChangeTypes.FunctionCloseMenu:\n changes = {\n isOpen: false\n };\n break;\n\n case stateChangeTypes.FunctionSetHighlightedIndex:\n changes = {\n highlightedIndex: props.isItemDisabled(props.items[action.highlightedIndex], action.highlightedIndex) ? -1 : action.highlightedIndex\n };\n break;\n\n case stateChangeTypes.FunctionSetInputValue:\n changes = {\n inputValue: action.inputValue\n };\n break;\n\n case stateChangeTypes.FunctionReset:\n changes = {\n highlightedIndex: getDefaultHighlightedIndex(props),\n isOpen: getDefaultValue$1(props, 'isOpen'),\n selectedItem: getDefaultValue$1(props, 'selectedItem'),\n inputValue: getDefaultValue$1(props, 'inputValue')\n };\n break;\n\n default:\n throw new Error('Reducer called without proper action type.');\n }\n\n return _extends({}, state, changes);\n}\n/* eslint-enable complexity */\n\n\nfunction getItemIndexByCharacterKey(_a) {\n var keysSoFar = _a.keysSoFar,\n highlightedIndex = _a.highlightedIndex,\n items = _a.items,\n itemToString = _a.itemToString,\n isItemDisabled = _a.isItemDisabled;\n var lowerCasedKeysSoFar = keysSoFar.toLowerCase();\n\n for (var index = 0; index < items.length; index++) {\n // if we already have a search query in progress, we also consider the current highlighted item.\n var offsetIndex = (index + highlightedIndex + (keysSoFar.length < 2 ? 1 : 0)) % items.length;\n var item = items[offsetIndex];\n\n if (item !== undefined && itemToString(item).toLowerCase().startsWith(lowerCasedKeysSoFar) && !isItemDisabled(item, offsetIndex)) {\n return offsetIndex;\n }\n }\n\n return highlightedIndex;\n}\n\nvar propTypes$2 = __assign(__assign({}, commonDropdownPropTypes), {\n items: PropTypes.array.isRequired,\n isItemDisabled: PropTypes.func\n});\n\nvar defaultProps$2 = __assign(__assign({}, defaultProps$3), {\n isItemDisabled: function isItemDisabled() {\n return false;\n }\n}); // eslint-disable-next-line import/no-mutable-exports\n\n\nvar validatePropTypes$2 = noop;\n/* istanbul ignore next */\n\nif (process.env.NODE_ENV !== 'production') {\n validatePropTypes$2 = function validatePropTypes$2(options, caller) {\n PropTypes.checkPropTypes(propTypes$2, options, 'prop', caller.name);\n };\n}\n\nvar ToggleButtonClick$1 = process.env.NODE_ENV !== \"production\" ? '__togglebutton_click__' : 0;\nvar ToggleButtonKeyDownArrowDown = process.env.NODE_ENV !== \"production\" ? '__togglebutton_keydown_arrow_down__' : 1;\nvar ToggleButtonKeyDownArrowUp = process.env.NODE_ENV !== \"production\" ? '__togglebutton_keydown_arrow_up__' : 2;\nvar ToggleButtonKeyDownCharacter = process.env.NODE_ENV !== \"production\" ? '__togglebutton_keydown_character__' : 3;\nvar ToggleButtonKeyDownEscape = process.env.NODE_ENV !== \"production\" ? '__togglebutton_keydown_escape__' : 4;\nvar ToggleButtonKeyDownHome = process.env.NODE_ENV !== \"production\" ? '__togglebutton_keydown_home__' : 5;\nvar ToggleButtonKeyDownEnd = process.env.NODE_ENV !== \"production\" ? '__togglebutton_keydown_end__' : 6;\nvar ToggleButtonKeyDownEnter = process.env.NODE_ENV !== \"production\" ? '__togglebutton_keydown_enter__' : 7;\nvar ToggleButtonKeyDownSpaceButton = process.env.NODE_ENV !== \"production\" ? '__togglebutton_keydown_space_button__' : 8;\nvar ToggleButtonKeyDownPageUp = process.env.NODE_ENV !== \"production\" ? '__togglebutton_keydown_page_up__' : 9;\nvar ToggleButtonKeyDownPageDown = process.env.NODE_ENV !== \"production\" ? '__togglebutton_keydown_page_down__' : 10;\nvar ToggleButtonBlur = process.env.NODE_ENV !== \"production\" ? '__togglebutton_blur__' : 11;\nvar MenuMouseLeave$1 = process.env.NODE_ENV !== \"production\" ? '__menu_mouse_leave__' : 12;\nvar ItemMouseMove$1 = process.env.NODE_ENV !== \"production\" ? '__item_mouse_move__' : 13;\nvar ItemClick$1 = process.env.NODE_ENV !== \"production\" ? '__item_click__' : 14;\nvar FunctionToggleMenu$1 = process.env.NODE_ENV !== \"production\" ? '__function_toggle_menu__' : 15;\nvar FunctionOpenMenu$1 = process.env.NODE_ENV !== \"production\" ? '__function_open_menu__' : 16;\nvar FunctionCloseMenu$1 = process.env.NODE_ENV !== \"production\" ? '__function_close_menu__' : 17;\nvar FunctionSetHighlightedIndex$1 = process.env.NODE_ENV !== \"production\" ? '__function_set_highlighted_index__' : 18;\nvar FunctionSelectItem$1 = process.env.NODE_ENV !== \"production\" ? '__function_select_item__' : 19;\nvar FunctionSetInputValue$1 = process.env.NODE_ENV !== \"production\" ? '__function_set_input_value__' : 20;\nvar FunctionReset$2 = process.env.NODE_ENV !== \"production\" ? '__function_reset__' : 21;\nvar stateChangeTypes$2 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n FunctionCloseMenu: FunctionCloseMenu$1,\n FunctionOpenMenu: FunctionOpenMenu$1,\n FunctionReset: FunctionReset$2,\n FunctionSelectItem: FunctionSelectItem$1,\n FunctionSetHighlightedIndex: FunctionSetHighlightedIndex$1,\n FunctionSetInputValue: FunctionSetInputValue$1,\n FunctionToggleMenu: FunctionToggleMenu$1,\n ItemClick: ItemClick$1,\n ItemMouseMove: ItemMouseMove$1,\n MenuMouseLeave: MenuMouseLeave$1,\n ToggleButtonBlur: ToggleButtonBlur,\n ToggleButtonClick: ToggleButtonClick$1,\n ToggleButtonKeyDownArrowDown: ToggleButtonKeyDownArrowDown,\n ToggleButtonKeyDownArrowUp: ToggleButtonKeyDownArrowUp,\n ToggleButtonKeyDownCharacter: ToggleButtonKeyDownCharacter,\n ToggleButtonKeyDownEnd: ToggleButtonKeyDownEnd,\n ToggleButtonKeyDownEnter: ToggleButtonKeyDownEnter,\n ToggleButtonKeyDownEscape: ToggleButtonKeyDownEscape,\n ToggleButtonKeyDownHome: ToggleButtonKeyDownHome,\n ToggleButtonKeyDownPageDown: ToggleButtonKeyDownPageDown,\n ToggleButtonKeyDownPageUp: ToggleButtonKeyDownPageUp,\n ToggleButtonKeyDownSpaceButton: ToggleButtonKeyDownSpaceButton\n});\n/* eslint-disable complexity */\n\nfunction downshiftSelectReducer(state, action) {\n var _props$items;\n\n var type = action.type,\n props = action.props,\n altKey = action.altKey;\n var changes;\n\n switch (type) {\n case ItemClick$1:\n changes = {\n isOpen: getDefaultValue$1(props, 'isOpen'),\n highlightedIndex: getDefaultHighlightedIndex(props),\n selectedItem: props.items[action.index]\n };\n break;\n\n case ToggleButtonKeyDownCharacter:\n {\n var lowercasedKey = action.key;\n var inputValue = \"\" + state.inputValue + lowercasedKey;\n var prevHighlightedIndex = !state.isOpen && state.selectedItem ? props.items.findIndex(function (item) {\n return props.itemToKey(item) === props.itemToKey(state.selectedItem);\n }) : state.highlightedIndex;\n var highlightedIndex = getItemIndexByCharacterKey({\n keysSoFar: inputValue,\n highlightedIndex: prevHighlightedIndex,\n items: props.items,\n itemToString: props.itemToString,\n isItemDisabled: props.isItemDisabled\n });\n changes = {\n inputValue: inputValue,\n highlightedIndex: highlightedIndex,\n isOpen: true\n };\n }\n break;\n\n case ToggleButtonKeyDownArrowDown:\n {\n var _highlightedIndex = state.isOpen ? getHighlightedIndex(state.highlightedIndex, 1, props.items, props.isItemDisabled) : altKey && state.selectedItem == null ? -1 : getHighlightedIndexOnOpen(props, state, 1);\n\n changes = {\n highlightedIndex: _highlightedIndex,\n isOpen: true\n };\n }\n break;\n\n case ToggleButtonKeyDownArrowUp:\n if (state.isOpen && altKey) {\n changes = getChangesOnSelection(props, state.highlightedIndex, false);\n } else {\n var _highlightedIndex2 = state.isOpen ? getHighlightedIndex(state.highlightedIndex, -1, props.items, props.isItemDisabled) : getHighlightedIndexOnOpen(props, state, -1);\n\n changes = {\n highlightedIndex: _highlightedIndex2,\n isOpen: true\n };\n }\n\n break;\n // only triggered when menu is open.\n\n case ToggleButtonKeyDownEnter:\n case ToggleButtonKeyDownSpaceButton:\n changes = getChangesOnSelection(props, state.highlightedIndex, false);\n break;\n\n case ToggleButtonKeyDownHome:\n changes = {\n highlightedIndex: getNonDisabledIndex(0, false, props.items, props.isItemDisabled),\n isOpen: true\n };\n break;\n\n case ToggleButtonKeyDownEnd:\n changes = {\n highlightedIndex: getNonDisabledIndex(props.items.length - 1, true, props.items, props.isItemDisabled),\n isOpen: true\n };\n break;\n\n case ToggleButtonKeyDownPageUp:\n changes = {\n highlightedIndex: getHighlightedIndex(state.highlightedIndex, -10, props.items, props.isItemDisabled)\n };\n break;\n\n case ToggleButtonKeyDownPageDown:\n changes = {\n highlightedIndex: getHighlightedIndex(state.highlightedIndex, 10, props.items, props.isItemDisabled)\n };\n break;\n\n case ToggleButtonKeyDownEscape:\n changes = {\n isOpen: false,\n highlightedIndex: -1\n };\n break;\n\n case ToggleButtonBlur:\n changes = _extends({\n isOpen: false,\n highlightedIndex: -1\n }, state.highlightedIndex >= 0 && ((_props$items = props.items) == null ? void 0 : _props$items.length) && {\n selectedItem: props.items[state.highlightedIndex]\n });\n break;\n\n case FunctionSelectItem$1:\n changes = {\n selectedItem: action.selectedItem\n };\n break;\n\n default:\n return downshiftCommonReducer(state, action, stateChangeTypes$2);\n }\n\n return _extends({}, state, changes);\n}\n/* eslint-enable complexity */\n\n\nvar _excluded$2 = [\"onClick\"],\n _excluded2$2 = [\"onMouseLeave\", \"refKey\", \"ref\"],\n _excluded3$1 = [\"onBlur\", \"onClick\", \"onPress\", \"onKeyDown\", \"refKey\", \"ref\"],\n _excluded4$1 = [\"item\", \"index\", \"onMouseMove\", \"onClick\", \"onMouseDown\", \"onPress\", \"refKey\", \"disabled\", \"ref\"];\nuseSelect.stateChangeTypes = stateChangeTypes$2;\n\nfunction useSelect(userProps) {\n if (userProps === void 0) {\n userProps = {};\n }\n\n validatePropTypes$2(userProps, useSelect); // Props defaults and destructuring.\n\n var props = _extends({}, defaultProps$2, userProps);\n\n var scrollIntoView = props.scrollIntoView,\n environment = props.environment,\n getA11yStatusMessage = props.getA11yStatusMessage; // Initial state depending on controlled props.\n\n var _useControlledReducer = useControlledReducer$1(downshiftSelectReducer, props, getInitialState$2, isDropdownsStateEqual),\n state = _useControlledReducer[0],\n dispatch = _useControlledReducer[1];\n\n var isOpen = state.isOpen,\n highlightedIndex = state.highlightedIndex,\n selectedItem = state.selectedItem,\n inputValue = state.inputValue; // Element efs.\n\n var toggleButtonRef = useRef(null);\n var menuRef = useRef(null);\n var itemRefs = useRef({}); // used to keep the inputValue clearTimeout object between renders.\n\n var clearTimeoutRef = useRef(null); // prevent id re-generation between renders.\n\n var elementIds = useElementIds(props); // utility callback to get item element.\n\n var latest = useLatestRef({\n state: state,\n props: props\n }); // Some utils.\n\n var getItemNodeFromIndex = useCallback(function (index) {\n return itemRefs.current[elementIds.getItemId(index)];\n }, [elementIds]); // Effects.\n // Adds an a11y aria live status message if getA11yStatusMessage is passed.\n\n useA11yMessageStatus(getA11yStatusMessage, state, [isOpen, highlightedIndex, selectedItem, inputValue], environment); // Scroll on highlighted item if change comes from keyboard.\n\n var shouldScrollRef = useScrollIntoView({\n menuElement: menuRef.current,\n highlightedIndex: highlightedIndex,\n isOpen: isOpen,\n itemRefs: itemRefs,\n scrollIntoView: scrollIntoView,\n getItemNodeFromIndex: getItemNodeFromIndex\n }); // Sets cleanup for the keysSoFar callback, debounded after 500ms.\n\n useEffect(function () {\n // init the clean function here as we need access to dispatch.\n clearTimeoutRef.current = debounce(function (outerDispatch) {\n outerDispatch({\n type: FunctionSetInputValue$1,\n inputValue: ''\n });\n }, 500); // Cancel any pending debounced calls on mount\n\n return function () {\n clearTimeoutRef.current.cancel();\n };\n }, []); // Invokes the keysSoFar callback set up above.\n\n useEffect(function () {\n if (!inputValue) {\n return;\n }\n\n clearTimeoutRef.current(dispatch);\n }, [dispatch, inputValue]);\n useControlPropsValidator({\n props: props,\n state: state\n }); // Focus the toggle button on first render if required.\n\n useEffect(function () {\n var focusOnOpen = getInitialValue$1(props, 'isOpen');\n\n if (focusOnOpen && toggleButtonRef.current) {\n toggleButtonRef.current.focus();\n } // eslint-disable-next-line react-hooks/exhaustive-deps\n\n }, []);\n var mouseAndTouchTrackers = useMouseAndTouchTracker(environment, useCallback(function handleBlur() {\n if (latest.current.state.isOpen) {\n dispatch({\n type: ToggleButtonBlur\n });\n }\n }, [dispatch, latest]), useMemo(function () {\n return [menuRef, toggleButtonRef];\n }, [menuRef.current, toggleButtonRef.current]));\n var setGetterPropCallInfo = useGetterPropsCalledChecker('getMenuProps', 'getToggleButtonProps'); // Reset itemRefs on close.\n\n useEffect(function () {\n if (!isOpen) {\n itemRefs.current = {};\n }\n }, [isOpen]); // Event handler functions.\n\n var toggleButtonKeyDownHandlers = useMemo(function () {\n return {\n ArrowDown: function ArrowDown(event) {\n event.preventDefault();\n dispatch({\n type: ToggleButtonKeyDownArrowDown,\n altKey: event.altKey\n });\n },\n ArrowUp: function ArrowUp(event) {\n event.preventDefault();\n dispatch({\n type: ToggleButtonKeyDownArrowUp,\n altKey: event.altKey\n });\n },\n Home: function Home(event) {\n event.preventDefault();\n dispatch({\n type: ToggleButtonKeyDownHome\n });\n },\n End: function End(event) {\n event.preventDefault();\n dispatch({\n type: ToggleButtonKeyDownEnd\n });\n },\n Escape: function Escape() {\n if (latest.current.state.isOpen) {\n dispatch({\n type: ToggleButtonKeyDownEscape\n });\n }\n },\n Enter: function Enter(event) {\n event.preventDefault();\n dispatch({\n type: latest.current.state.isOpen ? ToggleButtonKeyDownEnter : ToggleButtonClick$1\n });\n },\n PageUp: function PageUp(event) {\n if (latest.current.state.isOpen) {\n event.preventDefault();\n dispatch({\n type: ToggleButtonKeyDownPageUp\n });\n }\n },\n PageDown: function PageDown(event) {\n if (latest.current.state.isOpen) {\n event.preventDefault();\n dispatch({\n type: ToggleButtonKeyDownPageDown\n });\n }\n },\n ' ': function _(event) {\n event.preventDefault();\n var currentState = latest.current.state;\n\n if (!currentState.isOpen) {\n dispatch({\n type: ToggleButtonClick$1\n });\n return;\n }\n\n if (currentState.inputValue) {\n dispatch({\n type: ToggleButtonKeyDownCharacter,\n key: ' '\n });\n } else {\n dispatch({\n type: ToggleButtonKeyDownSpaceButton\n });\n }\n }\n };\n }, [dispatch, latest]); // Action functions.\n\n var toggleMenu = useCallback(function () {\n dispatch({\n type: FunctionToggleMenu$1\n });\n }, [dispatch]);\n var closeMenu = useCallback(function () {\n dispatch({\n type: FunctionCloseMenu$1\n });\n }, [dispatch]);\n var openMenu = useCallback(function () {\n dispatch({\n type: FunctionOpenMenu$1\n });\n }, [dispatch]);\n var setHighlightedIndex = useCallback(function (newHighlightedIndex) {\n dispatch({\n type: FunctionSetHighlightedIndex$1,\n highlightedIndex: newHighlightedIndex\n });\n }, [dispatch]);\n var selectItem = useCallback(function (newSelectedItem) {\n dispatch({\n type: FunctionSelectItem$1,\n selectedItem: newSelectedItem\n });\n }, [dispatch]);\n var reset = useCallback(function () {\n dispatch({\n type: FunctionReset$2\n });\n }, [dispatch]);\n var setInputValue = useCallback(function (newInputValue) {\n dispatch({\n type: FunctionSetInputValue$1,\n inputValue: newInputValue\n });\n }, [dispatch]); // Getter functions.\n\n var getLabelProps = useCallback(function (_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n onClick = _ref.onClick,\n labelProps = _objectWithoutPropertiesLoose(_ref, _excluded$2);\n\n var labelHandleClick = function labelHandleClick() {\n var _toggleButtonRef$curr;\n\n (_toggleButtonRef$curr = toggleButtonRef.current) == null || _toggleButtonRef$curr.focus();\n };\n\n return _extends({\n id: elementIds.labelId,\n htmlFor: elementIds.toggleButtonId,\n onClick: callAllEventHandlers(onClick, labelHandleClick)\n }, labelProps);\n }, [elementIds]);\n var getMenuProps = useCallback(function (_temp2, _temp3) {\n var _extends2;\n\n var _ref2 = _temp2 === void 0 ? {} : _temp2,\n onMouseLeave = _ref2.onMouseLeave,\n _ref2$refKey = _ref2.refKey,\n refKey = _ref2$refKey === void 0 ? 'ref' : _ref2$refKey,\n ref = _ref2.ref,\n rest = _objectWithoutPropertiesLoose(_ref2, _excluded2$2);\n\n var _ref3 = _temp3 === void 0 ? {} : _temp3,\n _ref3$suppressRefErro = _ref3.suppressRefError,\n suppressRefError = _ref3$suppressRefErro === void 0 ? false : _ref3$suppressRefErro;\n\n var menuHandleMouseLeave = function menuHandleMouseLeave() {\n dispatch({\n type: MenuMouseLeave$1\n });\n };\n\n setGetterPropCallInfo('getMenuProps', suppressRefError, refKey, menuRef);\n return _extends((_extends2 = {}, _extends2[refKey] = handleRefs(ref, function (menuNode) {\n menuRef.current = menuNode;\n }), _extends2.id = elementIds.menuId, _extends2.role = 'listbox', _extends2['aria-labelledby'] = rest && rest['aria-label'] ? undefined : \"\" + elementIds.labelId, _extends2.onMouseLeave = callAllEventHandlers(onMouseLeave, menuHandleMouseLeave), _extends2), rest);\n }, [dispatch, setGetterPropCallInfo, elementIds]);\n var getToggleButtonProps = useCallback(function (_temp4, _temp5) {\n var _extends3;\n\n var _ref4 = _temp4 === void 0 ? {} : _temp4,\n onBlur = _ref4.onBlur,\n onClick = _ref4.onClick;\n\n _ref4.onPress;\n\n var onKeyDown = _ref4.onKeyDown,\n _ref4$refKey = _ref4.refKey,\n refKey = _ref4$refKey === void 0 ? 'ref' : _ref4$refKey,\n ref = _ref4.ref,\n rest = _objectWithoutPropertiesLoose(_ref4, _excluded3$1);\n\n var _ref5 = _temp5 === void 0 ? {} : _temp5,\n _ref5$suppressRefErro = _ref5.suppressRefError,\n suppressRefError = _ref5$suppressRefErro === void 0 ? false : _ref5$suppressRefErro;\n\n var latestState = latest.current.state;\n\n var toggleButtonHandleClick = function toggleButtonHandleClick() {\n dispatch({\n type: ToggleButtonClick$1\n });\n };\n\n var toggleButtonHandleBlur = function toggleButtonHandleBlur() {\n if (latestState.isOpen && !mouseAndTouchTrackers.isMouseDown) {\n dispatch({\n type: ToggleButtonBlur\n });\n }\n };\n\n var toggleButtonHandleKeyDown = function toggleButtonHandleKeyDown(event) {\n var key = normalizeArrowKey(event);\n\n if (key && toggleButtonKeyDownHandlers[key]) {\n toggleButtonKeyDownHandlers[key](event);\n } else if (isAcceptedCharacterKey(key)) {\n dispatch({\n type: ToggleButtonKeyDownCharacter,\n key: key\n });\n }\n };\n\n var toggleProps = _extends((_extends3 = {}, _extends3[refKey] = handleRefs(ref, function (toggleButtonNode) {\n toggleButtonRef.current = toggleButtonNode;\n }), _extends3['aria-activedescendant'] = latestState.isOpen && latestState.highlightedIndex > -1 ? elementIds.getItemId(latestState.highlightedIndex) : '', _extends3['aria-controls'] = elementIds.menuId, _extends3['aria-expanded'] = latest.current.state.isOpen, _extends3['aria-haspopup'] = 'listbox', _extends3['aria-labelledby'] = rest && rest['aria-label'] ? undefined : \"\" + elementIds.labelId, _extends3.id = elementIds.toggleButtonId, _extends3.role = 'combobox', _extends3.tabIndex = 0, _extends3.onBlur = callAllEventHandlers(onBlur, toggleButtonHandleBlur), _extends3), rest);\n\n if (!rest.disabled) {\n /* istanbul ignore if (react-native) */\n {\n toggleProps.onClick = callAllEventHandlers(onClick, toggleButtonHandleClick);\n toggleProps.onKeyDown = callAllEventHandlers(onKeyDown, toggleButtonHandleKeyDown);\n }\n }\n\n setGetterPropCallInfo('getToggleButtonProps', suppressRefError, refKey, toggleButtonRef);\n return toggleProps;\n }, [dispatch, elementIds, latest, mouseAndTouchTrackers, setGetterPropCallInfo, toggleButtonKeyDownHandlers]);\n var getItemProps = useCallback(function (_temp6) {\n var _extends4;\n\n var _ref6 = _temp6 === void 0 ? {} : _temp6,\n itemProp = _ref6.item,\n indexProp = _ref6.index,\n onMouseMove = _ref6.onMouseMove,\n onClick = _ref6.onClick,\n onMouseDown = _ref6.onMouseDown;\n\n _ref6.onPress;\n\n var _ref6$refKey = _ref6.refKey,\n refKey = _ref6$refKey === void 0 ? 'ref' : _ref6$refKey,\n disabledProp = _ref6.disabled,\n ref = _ref6.ref,\n rest = _objectWithoutPropertiesLoose(_ref6, _excluded4$1);\n\n if (disabledProp !== undefined) {\n console.warn('Passing \"disabled\" as an argument to getItemProps is not supported anymore. Please use the isItemDisabled prop from useSelect.');\n }\n\n var _latest$current = latest.current,\n latestState = _latest$current.state,\n latestProps = _latest$current.props;\n\n var _getItemAndIndex = getItemAndIndex(itemProp, indexProp, latestProps.items, 'Pass either item or index to getItemProps!'),\n item = _getItemAndIndex[0],\n index = _getItemAndIndex[1];\n\n var disabled = latestProps.isItemDisabled(item, index);\n\n var itemHandleMouseMove = function itemHandleMouseMove() {\n if (mouseAndTouchTrackers.isTouchEnd || index === latestState.highlightedIndex) {\n return;\n }\n\n shouldScrollRef.current = false;\n dispatch({\n type: ItemMouseMove$1,\n index: index,\n disabled: disabled\n });\n };\n\n var itemHandleClick = function itemHandleClick() {\n dispatch({\n type: ItemClick$1,\n index: index\n });\n };\n\n var itemHandleMouseDown = function itemHandleMouseDown(e) {\n return e.preventDefault();\n }; // keep focus on the toggle after item click select.\n\n\n var itemProps = _extends((_extends4 = {}, _extends4[refKey] = handleRefs(ref, function (itemNode) {\n if (itemNode) {\n itemRefs.current[elementIds.getItemId(index)] = itemNode;\n }\n }), _extends4['aria-disabled'] = disabled, _extends4['aria-selected'] = item === latestState.selectedItem, _extends4.id = elementIds.getItemId(index), _extends4.role = 'option', _extends4), rest);\n\n if (!disabled) {\n /* istanbul ignore next (react-native) */\n {\n itemProps.onClick = callAllEventHandlers(onClick, itemHandleClick);\n }\n }\n\n itemProps.onMouseMove = callAllEventHandlers(onMouseMove, itemHandleMouseMove);\n itemProps.onMouseDown = callAllEventHandlers(onMouseDown, itemHandleMouseDown);\n return itemProps;\n }, [latest, elementIds, mouseAndTouchTrackers, shouldScrollRef, dispatch]);\n return {\n // prop getters.\n getToggleButtonProps: getToggleButtonProps,\n getLabelProps: getLabelProps,\n getMenuProps: getMenuProps,\n getItemProps: getItemProps,\n // actions.\n toggleMenu: toggleMenu,\n openMenu: openMenu,\n closeMenu: closeMenu,\n setHighlightedIndex: setHighlightedIndex,\n selectItem: selectItem,\n reset: reset,\n setInputValue: setInputValue,\n // state.\n highlightedIndex: highlightedIndex,\n isOpen: isOpen,\n selectedItem: selectedItem,\n inputValue: inputValue\n };\n}\n\nvar InputKeyDownArrowDown = process.env.NODE_ENV !== \"production\" ? '__input_keydown_arrow_down__' : 0;\nvar InputKeyDownArrowUp = process.env.NODE_ENV !== \"production\" ? '__input_keydown_arrow_up__' : 1;\nvar InputKeyDownEscape = process.env.NODE_ENV !== \"production\" ? '__input_keydown_escape__' : 2;\nvar InputKeyDownHome = process.env.NODE_ENV !== \"production\" ? '__input_keydown_home__' : 3;\nvar InputKeyDownEnd = process.env.NODE_ENV !== \"production\" ? '__input_keydown_end__' : 4;\nvar InputKeyDownPageUp = process.env.NODE_ENV !== \"production\" ? '__input_keydown_page_up__' : 5;\nvar InputKeyDownPageDown = process.env.NODE_ENV !== \"production\" ? '__input_keydown_page_down__' : 6;\nvar InputKeyDownEnter = process.env.NODE_ENV !== \"production\" ? '__input_keydown_enter__' : 7;\nvar InputChange = process.env.NODE_ENV !== \"production\" ? '__input_change__' : 8;\nvar InputBlur = process.env.NODE_ENV !== \"production\" ? '__input_blur__' : 9;\nvar InputClick = process.env.NODE_ENV !== \"production\" ? '__input_click__' : 10;\nvar MenuMouseLeave = process.env.NODE_ENV !== \"production\" ? '__menu_mouse_leave__' : 11;\nvar ItemMouseMove = process.env.NODE_ENV !== \"production\" ? '__item_mouse_move__' : 12;\nvar ItemClick = process.env.NODE_ENV !== \"production\" ? '__item_click__' : 13;\nvar ToggleButtonClick = process.env.NODE_ENV !== \"production\" ? '__togglebutton_click__' : 14;\nvar FunctionToggleMenu = process.env.NODE_ENV !== \"production\" ? '__function_toggle_menu__' : 15;\nvar FunctionOpenMenu = process.env.NODE_ENV !== \"production\" ? '__function_open_menu__' : 16;\nvar FunctionCloseMenu = process.env.NODE_ENV !== \"production\" ? '__function_close_menu__' : 17;\nvar FunctionSetHighlightedIndex = process.env.NODE_ENV !== \"production\" ? '__function_set_highlighted_index__' : 18;\nvar FunctionSelectItem = process.env.NODE_ENV !== \"production\" ? '__function_select_item__' : 19;\nvar FunctionSetInputValue = process.env.NODE_ENV !== \"production\" ? '__function_set_input_value__' : 20;\nvar FunctionReset$1 = process.env.NODE_ENV !== \"production\" ? '__function_reset__' : 21;\nvar ControlledPropUpdatedSelectedItem = process.env.NODE_ENV !== \"production\" ? '__controlled_prop_updated_selected_item__' : 22;\nvar stateChangeTypes$1 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n ControlledPropUpdatedSelectedItem: ControlledPropUpdatedSelectedItem,\n FunctionCloseMenu: FunctionCloseMenu,\n FunctionOpenMenu: FunctionOpenMenu,\n FunctionReset: FunctionReset$1,\n FunctionSelectItem: FunctionSelectItem,\n FunctionSetHighlightedIndex: FunctionSetHighlightedIndex,\n FunctionSetInputValue: FunctionSetInputValue,\n FunctionToggleMenu: FunctionToggleMenu,\n InputBlur: InputBlur,\n InputChange: InputChange,\n InputClick: InputClick,\n InputKeyDownArrowDown: InputKeyDownArrowDown,\n InputKeyDownArrowUp: InputKeyDownArrowUp,\n InputKeyDownEnd: InputKeyDownEnd,\n InputKeyDownEnter: InputKeyDownEnter,\n InputKeyDownEscape: InputKeyDownEscape,\n InputKeyDownHome: InputKeyDownHome,\n InputKeyDownPageDown: InputKeyDownPageDown,\n InputKeyDownPageUp: InputKeyDownPageUp,\n ItemClick: ItemClick,\n ItemMouseMove: ItemMouseMove,\n MenuMouseLeave: MenuMouseLeave,\n ToggleButtonClick: ToggleButtonClick\n});\n\nfunction getInitialState$1(props) {\n var initialState = getInitialState$2(props);\n var selectedItem = initialState.selectedItem;\n var inputValue = initialState.inputValue;\n\n if (inputValue === '' && selectedItem && props.defaultInputValue === undefined && props.initialInputValue === undefined && props.inputValue === undefined) {\n inputValue = props.itemToString(selectedItem);\n }\n\n return _extends({}, initialState, {\n inputValue: inputValue\n });\n}\n\nvar propTypes$1 = _extends({}, commonDropdownPropTypes, {\n items: PropTypes.array.isRequired,\n isItemDisabled: PropTypes.func,\n inputValue: PropTypes.string,\n defaultInputValue: PropTypes.string,\n initialInputValue: PropTypes.string,\n inputId: PropTypes.string,\n onInputValueChange: PropTypes.func\n});\n/**\n * The useCombobox version of useControlledReducer, which also\n * checks if the controlled prop selectedItem changed between\n * renders. If so, it will also update inputValue with its\n * string equivalent. It uses the common useEnhancedReducer to\n * compute the rest of the state.\n *\n * @param {Function} reducer Reducer function from downshift.\n * @param {Object} props The hook props, also passed to createInitialState.\n * @param {Function} createInitialState Function that returns the initial state.\n * @param {Function} isStateEqual Function that checks if a previous state is equal to the next.\n * @returns {Array} An array with the state and an action dispatcher.\n */\n\n\nfunction useControlledReducer(reducer, props, createInitialState, isStateEqual) {\n var previousSelectedItemRef = useRef();\n\n var _useEnhancedReducer = useEnhancedReducer(reducer, props, createInitialState, isStateEqual),\n state = _useEnhancedReducer[0],\n dispatch = _useEnhancedReducer[1];\n\n var isInitialMount = useIsInitialMount();\n useEffect(function () {\n if (!isControlledProp(props, 'selectedItem')) {\n return;\n }\n\n if (!isInitialMount // on first mount we already have the proper inputValue for a initial selected item.\n ) {\n var shouldCallDispatch = props.itemToKey(props.selectedItem) !== props.itemToKey(previousSelectedItemRef.current);\n\n if (shouldCallDispatch) {\n dispatch({\n type: ControlledPropUpdatedSelectedItem,\n inputValue: props.itemToString(props.selectedItem)\n });\n }\n }\n\n previousSelectedItemRef.current = state.selectedItem === previousSelectedItemRef.current ? props.selectedItem : state.selectedItem; // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [state.selectedItem, props.selectedItem]);\n return [getState(state, props), dispatch];\n} // eslint-disable-next-line import/no-mutable-exports\n\n\nvar validatePropTypes$1 = noop;\n/* istanbul ignore next */\n\nif (process.env.NODE_ENV !== 'production') {\n validatePropTypes$1 = function validatePropTypes(options, caller) {\n PropTypes.checkPropTypes(propTypes$1, options, 'prop', caller.name);\n };\n}\n\nvar defaultProps$1 = _extends({}, defaultProps$3, {\n isItemDisabled: function isItemDisabled() {\n return false;\n }\n});\n/* eslint-disable complexity */\n\n\nfunction downshiftUseComboboxReducer(state, action) {\n var _props$items;\n\n var type = action.type,\n props = action.props,\n altKey = action.altKey;\n var changes;\n\n switch (type) {\n case ItemClick:\n changes = {\n isOpen: getDefaultValue$1(props, 'isOpen'),\n highlightedIndex: getDefaultHighlightedIndex(props),\n selectedItem: props.items[action.index],\n inputValue: props.itemToString(props.items[action.index])\n };\n break;\n\n case InputKeyDownArrowDown:\n if (state.isOpen) {\n changes = {\n highlightedIndex: getHighlightedIndex(state.highlightedIndex, 1, props.items, props.isItemDisabled, true)\n };\n } else {\n changes = {\n highlightedIndex: altKey && state.selectedItem == null ? -1 : getHighlightedIndexOnOpen(props, state, 1),\n isOpen: props.items.length >= 0\n };\n }\n\n break;\n\n case InputKeyDownArrowUp:\n if (state.isOpen) {\n if (altKey) {\n changes = getChangesOnSelection(props, state.highlightedIndex);\n } else {\n changes = {\n highlightedIndex: getHighlightedIndex(state.highlightedIndex, -1, props.items, props.isItemDisabled, true)\n };\n }\n } else {\n changes = {\n highlightedIndex: getHighlightedIndexOnOpen(props, state, -1),\n isOpen: props.items.length >= 0\n };\n }\n\n break;\n\n case InputKeyDownEnter:\n changes = getChangesOnSelection(props, state.highlightedIndex);\n break;\n\n case InputKeyDownEscape:\n changes = _extends({\n isOpen: false,\n highlightedIndex: -1\n }, !state.isOpen && {\n selectedItem: null,\n inputValue: ''\n });\n break;\n\n case InputKeyDownPageUp:\n changes = {\n highlightedIndex: getHighlightedIndex(state.highlightedIndex, -10, props.items, props.isItemDisabled, true)\n };\n break;\n\n case InputKeyDownPageDown:\n changes = {\n highlightedIndex: getHighlightedIndex(state.highlightedIndex, 10, props.items, props.isItemDisabled, true)\n };\n break;\n\n case InputKeyDownHome:\n changes = {\n highlightedIndex: getNonDisabledIndex(0, false, props.items, props.isItemDisabled)\n };\n break;\n\n case InputKeyDownEnd:\n changes = {\n highlightedIndex: getNonDisabledIndex(props.items.length - 1, true, props.items, props.isItemDisabled)\n };\n break;\n\n case InputBlur:\n changes = _extends({\n isOpen: false,\n highlightedIndex: -1\n }, state.highlightedIndex >= 0 && ((_props$items = props.items) == null ? void 0 : _props$items.length) && action.selectItem && {\n selectedItem: props.items[state.highlightedIndex],\n inputValue: props.itemToString(props.items[state.highlightedIndex])\n });\n break;\n\n case InputChange:\n changes = {\n isOpen: true,\n highlightedIndex: getDefaultHighlightedIndex(props),\n inputValue: action.inputValue\n };\n break;\n\n case InputClick:\n changes = {\n isOpen: !state.isOpen,\n highlightedIndex: state.isOpen ? -1 : getHighlightedIndexOnOpen(props, state, 0)\n };\n break;\n\n case FunctionSelectItem:\n changes = {\n selectedItem: action.selectedItem,\n inputValue: props.itemToString(action.selectedItem)\n };\n break;\n\n case ControlledPropUpdatedSelectedItem:\n changes = {\n inputValue: action.inputValue\n };\n break;\n\n default:\n return downshiftCommonReducer(state, action, stateChangeTypes$1);\n }\n\n return _extends({}, state, changes);\n}\n/* eslint-enable complexity */\n\n\nvar _excluded$1 = [\"onMouseLeave\", \"refKey\", \"ref\"],\n _excluded2$1 = [\"item\", \"index\", \"refKey\", \"ref\", \"onMouseMove\", \"onMouseDown\", \"onClick\", \"onPress\", \"disabled\"],\n _excluded3 = [\"onClick\", \"onPress\", \"refKey\", \"ref\"],\n _excluded4 = [\"onKeyDown\", \"onChange\", \"onInput\", \"onBlur\", \"onChangeText\", \"onClick\", \"refKey\", \"ref\"];\nuseCombobox.stateChangeTypes = stateChangeTypes$1;\n\nfunction useCombobox(userProps) {\n if (userProps === void 0) {\n userProps = {};\n }\n\n validatePropTypes$1(userProps, useCombobox); // Props defaults and destructuring.\n\n var props = _extends({}, defaultProps$1, userProps);\n\n var items = props.items,\n scrollIntoView = props.scrollIntoView,\n environment = props.environment,\n getA11yStatusMessage = props.getA11yStatusMessage; // Initial state depending on controlled props.\n\n var _useControlledReducer = useControlledReducer(downshiftUseComboboxReducer, props, getInitialState$1, isDropdownsStateEqual),\n state = _useControlledReducer[0],\n dispatch = _useControlledReducer[1];\n\n var isOpen = state.isOpen,\n highlightedIndex = state.highlightedIndex,\n selectedItem = state.selectedItem,\n inputValue = state.inputValue; // Element refs.\n\n var menuRef = useRef(null);\n var itemRefs = useRef({});\n var inputRef = useRef(null);\n var toggleButtonRef = useRef(null);\n var isInitialMount = useIsInitialMount(); // prevent id re-generation between renders.\n\n var elementIds = useElementIds(props); // used to keep track of how many items we had on previous cycle.\n\n var previousResultCountRef = useRef(); // utility callback to get item element.\n\n var latest = useLatestRef({\n state: state,\n props: props\n });\n var getItemNodeFromIndex = useCallback(function (index) {\n return itemRefs.current[elementIds.getItemId(index)];\n }, [elementIds]); // Effects.\n // Adds an a11y aria live status message if getA11yStatusMessage is passed.\n\n useA11yMessageStatus(getA11yStatusMessage, state, [isOpen, highlightedIndex, selectedItem, inputValue], environment); // Scroll on highlighted item if change comes from keyboard.\n\n var shouldScrollRef = useScrollIntoView({\n menuElement: menuRef.current,\n highlightedIndex: highlightedIndex,\n isOpen: isOpen,\n itemRefs: itemRefs,\n scrollIntoView: scrollIntoView,\n getItemNodeFromIndex: getItemNodeFromIndex\n });\n useControlPropsValidator({\n props: props,\n state: state\n }); // Focus the input on first render if required.\n\n useEffect(function () {\n var focusOnOpen = getInitialValue$1(props, 'isOpen');\n\n if (focusOnOpen && inputRef.current) {\n inputRef.current.focus();\n } // eslint-disable-next-line react-hooks/exhaustive-deps\n\n }, []);\n useEffect(function () {\n if (!isInitialMount) {\n previousResultCountRef.current = items.length;\n }\n });\n var mouseAndTouchTrackers = useMouseAndTouchTracker(environment, useCallback(function handleBlur() {\n if (latest.current.state.isOpen) {\n dispatch({\n type: InputBlur,\n selectItem: false\n });\n }\n }, [dispatch, latest]), useMemo(function () {\n return [menuRef, toggleButtonRef, inputRef];\n }, [menuRef.current, toggleButtonRef.current, inputRef.current]));\n var setGetterPropCallInfo = useGetterPropsCalledChecker('getInputProps', 'getMenuProps'); // Reset itemRefs on close.\n\n useEffect(function () {\n if (!isOpen) {\n itemRefs.current = {};\n }\n }, [isOpen]); // Reset itemRefs on close.\n\n useEffect(function () {\n var _inputRef$current;\n\n if (!isOpen || !(environment != null && environment.document) || !(inputRef != null && (_inputRef$current = inputRef.current) != null && _inputRef$current.focus)) {\n return;\n }\n\n if (environment.document.activeElement !== inputRef.current) {\n inputRef.current.focus();\n }\n }, [isOpen, environment]);\n /* Event handler functions */\n\n var inputKeyDownHandlers = useMemo(function () {\n return {\n ArrowDown: function ArrowDown(event) {\n event.preventDefault();\n dispatch({\n type: InputKeyDownArrowDown,\n altKey: event.altKey\n });\n },\n ArrowUp: function ArrowUp(event) {\n event.preventDefault();\n dispatch({\n type: InputKeyDownArrowUp,\n altKey: event.altKey\n });\n },\n Home: function Home(event) {\n if (!latest.current.state.isOpen) {\n return;\n }\n\n event.preventDefault();\n dispatch({\n type: InputKeyDownHome\n });\n },\n End: function End(event) {\n if (!latest.current.state.isOpen) {\n return;\n }\n\n event.preventDefault();\n dispatch({\n type: InputKeyDownEnd\n });\n },\n Escape: function Escape(event) {\n var latestState = latest.current.state;\n\n if (latestState.isOpen || latestState.inputValue || latestState.selectedItem || latestState.highlightedIndex > -1) {\n event.preventDefault();\n dispatch({\n type: InputKeyDownEscape\n });\n }\n },\n Enter: function Enter(event) {\n var latestState = latest.current.state; // if closed or no highlighted index, do nothing.\n\n if (!latestState.isOpen || event.which === 229 // if IME composing, wait for next Enter keydown event.\n ) {\n return;\n }\n\n event.preventDefault();\n dispatch({\n type: InputKeyDownEnter\n });\n },\n PageUp: function PageUp(event) {\n if (latest.current.state.isOpen) {\n event.preventDefault();\n dispatch({\n type: InputKeyDownPageUp\n });\n }\n },\n PageDown: function PageDown(event) {\n if (latest.current.state.isOpen) {\n event.preventDefault();\n dispatch({\n type: InputKeyDownPageDown\n });\n }\n }\n };\n }, [dispatch, latest]); // Getter props.\n\n var getLabelProps = useCallback(function (labelProps) {\n return _extends({\n id: elementIds.labelId,\n htmlFor: elementIds.inputId\n }, labelProps);\n }, [elementIds]);\n var getMenuProps = useCallback(function (_temp, _temp2) {\n var _extends2;\n\n var _ref = _temp === void 0 ? {} : _temp,\n onMouseLeave = _ref.onMouseLeave,\n _ref$refKey = _ref.refKey,\n refKey = _ref$refKey === void 0 ? 'ref' : _ref$refKey,\n ref = _ref.ref,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$1);\n\n var _ref2 = _temp2 === void 0 ? {} : _temp2,\n _ref2$suppressRefErro = _ref2.suppressRefError,\n suppressRefError = _ref2$suppressRefErro === void 0 ? false : _ref2$suppressRefErro;\n\n setGetterPropCallInfo('getMenuProps', suppressRefError, refKey, menuRef);\n return _extends((_extends2 = {}, _extends2[refKey] = handleRefs(ref, function (menuNode) {\n menuRef.current = menuNode;\n }), _extends2.id = elementIds.menuId, _extends2.role = 'listbox', _extends2['aria-labelledby'] = rest && rest['aria-label'] ? undefined : \"\" + elementIds.labelId, _extends2.onMouseLeave = callAllEventHandlers(onMouseLeave, function () {\n dispatch({\n type: MenuMouseLeave\n });\n }), _extends2), rest);\n }, [dispatch, setGetterPropCallInfo, elementIds]);\n var getItemProps = useCallback(function (_temp3) {\n var _extends3, _ref4;\n\n var _ref3 = _temp3 === void 0 ? {} : _temp3,\n itemProp = _ref3.item,\n indexProp = _ref3.index,\n _ref3$refKey = _ref3.refKey,\n refKey = _ref3$refKey === void 0 ? 'ref' : _ref3$refKey,\n ref = _ref3.ref,\n onMouseMove = _ref3.onMouseMove,\n onMouseDown = _ref3.onMouseDown,\n onClick = _ref3.onClick;\n\n _ref3.onPress;\n\n var disabledProp = _ref3.disabled,\n rest = _objectWithoutPropertiesLoose(_ref3, _excluded2$1);\n\n if (disabledProp !== undefined) {\n console.warn('Passing \"disabled\" as an argument to getItemProps is not supported anymore. Please use the isItemDisabled prop from useCombobox.');\n }\n\n var _latest$current = latest.current,\n latestProps = _latest$current.props,\n latestState = _latest$current.state;\n\n var _getItemAndIndex = getItemAndIndex(itemProp, indexProp, latestProps.items, 'Pass either item or index to getItemProps!'),\n item = _getItemAndIndex[0],\n index = _getItemAndIndex[1];\n\n var disabled = latestProps.isItemDisabled(item, index);\n var onSelectKey = 'onClick';\n var customClickHandler = onClick;\n\n var itemHandleMouseMove = function itemHandleMouseMove() {\n if (mouseAndTouchTrackers.isTouchEnd || index === latestState.highlightedIndex) {\n return;\n }\n\n shouldScrollRef.current = false;\n dispatch({\n type: ItemMouseMove,\n index: index,\n disabled: disabled\n });\n };\n\n var itemHandleClick = function itemHandleClick() {\n dispatch({\n type: ItemClick,\n index: index\n });\n };\n\n var itemHandleMouseDown = function itemHandleMouseDown(e) {\n return e.preventDefault();\n }; // keep focus on the input after item click select.\n\n\n return _extends((_extends3 = {}, _extends3[refKey] = handleRefs(ref, function (itemNode) {\n if (itemNode) {\n itemRefs.current[elementIds.getItemId(index)] = itemNode;\n }\n }), _extends3['aria-disabled'] = disabled, _extends3['aria-selected'] = index === latestState.highlightedIndex, _extends3.id = elementIds.getItemId(index), _extends3.role = 'option', _extends3), !disabled && (_ref4 = {}, _ref4[onSelectKey] = callAllEventHandlers(customClickHandler, itemHandleClick), _ref4), {\n onMouseMove: callAllEventHandlers(onMouseMove, itemHandleMouseMove),\n onMouseDown: callAllEventHandlers(onMouseDown, itemHandleMouseDown)\n }, rest);\n }, [dispatch, elementIds, latest, mouseAndTouchTrackers, shouldScrollRef]);\n var getToggleButtonProps = useCallback(function (_temp4) {\n var _extends4;\n\n var _ref5 = _temp4 === void 0 ? {} : _temp4,\n onClick = _ref5.onClick;\n\n _ref5.onPress;\n\n var _ref5$refKey = _ref5.refKey,\n refKey = _ref5$refKey === void 0 ? 'ref' : _ref5$refKey,\n ref = _ref5.ref,\n rest = _objectWithoutPropertiesLoose(_ref5, _excluded3);\n\n var latestState = latest.current.state;\n\n var toggleButtonHandleClick = function toggleButtonHandleClick() {\n dispatch({\n type: ToggleButtonClick\n });\n };\n\n return _extends((_extends4 = {}, _extends4[refKey] = handleRefs(ref, function (toggleButtonNode) {\n toggleButtonRef.current = toggleButtonNode;\n }), _extends4['aria-controls'] = elementIds.menuId, _extends4['aria-expanded'] = latestState.isOpen, _extends4.id = elementIds.toggleButtonId, _extends4.tabIndex = -1, _extends4), !rest.disabled && _extends({}, {\n onClick: callAllEventHandlers(onClick, toggleButtonHandleClick)\n }), rest);\n }, [dispatch, latest, elementIds]);\n var getInputProps = useCallback(function (_temp5, _temp6) {\n var _extends5;\n\n var _ref6 = _temp5 === void 0 ? {} : _temp5,\n onKeyDown = _ref6.onKeyDown,\n onChange = _ref6.onChange,\n onInput = _ref6.onInput,\n onBlur = _ref6.onBlur;\n\n _ref6.onChangeText;\n\n var onClick = _ref6.onClick,\n _ref6$refKey = _ref6.refKey,\n refKey = _ref6$refKey === void 0 ? 'ref' : _ref6$refKey,\n ref = _ref6.ref,\n rest = _objectWithoutPropertiesLoose(_ref6, _excluded4);\n\n var _ref7 = _temp6 === void 0 ? {} : _temp6,\n _ref7$suppressRefErro = _ref7.suppressRefError,\n suppressRefError = _ref7$suppressRefErro === void 0 ? false : _ref7$suppressRefErro;\n\n setGetterPropCallInfo('getInputProps', suppressRefError, refKey, inputRef);\n var latestState = latest.current.state;\n\n var inputHandleKeyDown = function inputHandleKeyDown(event) {\n var key = normalizeArrowKey(event);\n\n if (key && inputKeyDownHandlers[key]) {\n inputKeyDownHandlers[key](event);\n }\n };\n\n var inputHandleChange = function inputHandleChange(event) {\n dispatch({\n type: InputChange,\n inputValue: event.target.value\n });\n };\n\n var inputHandleBlur = function inputHandleBlur(event) {\n /* istanbul ignore else */\n if (environment != null && environment.document && latestState.isOpen && !mouseAndTouchTrackers.isMouseDown) {\n var isBlurByTabChange = event.relatedTarget === null && environment.document.activeElement !== environment.document.body;\n dispatch({\n type: InputBlur,\n selectItem: !isBlurByTabChange\n });\n }\n };\n\n var inputHandleClick = function inputHandleClick() {\n dispatch({\n type: InputClick\n });\n };\n /* istanbul ignore next (preact) */\n\n\n var onChangeKey = 'onChange';\n var eventHandlers = {};\n\n if (!rest.disabled) {\n var _eventHandlers;\n\n eventHandlers = (_eventHandlers = {}, _eventHandlers[onChangeKey] = callAllEventHandlers(onChange, onInput, inputHandleChange), _eventHandlers.onKeyDown = callAllEventHandlers(onKeyDown, inputHandleKeyDown), _eventHandlers.onBlur = callAllEventHandlers(onBlur, inputHandleBlur), _eventHandlers.onClick = callAllEventHandlers(onClick, inputHandleClick), _eventHandlers);\n }\n\n return _extends((_extends5 = {}, _extends5[refKey] = handleRefs(ref, function (inputNode) {\n inputRef.current = inputNode;\n }), _extends5['aria-activedescendant'] = latestState.isOpen && latestState.highlightedIndex > -1 ? elementIds.getItemId(latestState.highlightedIndex) : '', _extends5['aria-autocomplete'] = 'list', _extends5['aria-controls'] = elementIds.menuId, _extends5['aria-expanded'] = latestState.isOpen, _extends5['aria-labelledby'] = rest && rest['aria-label'] ? undefined : elementIds.labelId, _extends5.autoComplete = 'off', _extends5.id = elementIds.inputId, _extends5.role = 'combobox', _extends5.value = latestState.inputValue, _extends5), eventHandlers, rest);\n }, [dispatch, elementIds, environment, inputKeyDownHandlers, latest, mouseAndTouchTrackers, setGetterPropCallInfo]); // returns\n\n var toggleMenu = useCallback(function () {\n dispatch({\n type: FunctionToggleMenu\n });\n }, [dispatch]);\n var closeMenu = useCallback(function () {\n dispatch({\n type: FunctionCloseMenu\n });\n }, [dispatch]);\n var openMenu = useCallback(function () {\n dispatch({\n type: FunctionOpenMenu\n });\n }, [dispatch]);\n var setHighlightedIndex = useCallback(function (newHighlightedIndex) {\n dispatch({\n type: FunctionSetHighlightedIndex,\n highlightedIndex: newHighlightedIndex\n });\n }, [dispatch]);\n var selectItem = useCallback(function (newSelectedItem) {\n dispatch({\n type: FunctionSelectItem,\n selectedItem: newSelectedItem\n });\n }, [dispatch]);\n var setInputValue = useCallback(function (newInputValue) {\n dispatch({\n type: FunctionSetInputValue,\n inputValue: newInputValue\n });\n }, [dispatch]);\n var reset = useCallback(function () {\n dispatch({\n type: FunctionReset$1\n });\n }, [dispatch]);\n return {\n // prop getters.\n getItemProps: getItemProps,\n getLabelProps: getLabelProps,\n getMenuProps: getMenuProps,\n getInputProps: getInputProps,\n getToggleButtonProps: getToggleButtonProps,\n // actions.\n toggleMenu: toggleMenu,\n openMenu: openMenu,\n closeMenu: closeMenu,\n setHighlightedIndex: setHighlightedIndex,\n setInputValue: setInputValue,\n selectItem: selectItem,\n reset: reset,\n // state.\n highlightedIndex: highlightedIndex,\n isOpen: isOpen,\n selectedItem: selectedItem,\n inputValue: inputValue\n };\n}\n\nvar defaultStateValues = {\n activeIndex: -1,\n selectedItems: []\n};\n/**\n * Returns the initial value for a state key in the following order:\n * 1. controlled prop, 2. initial prop, 3. default prop, 4. default\n * value from Downshift.\n *\n * @param {Object} props Props passed to the hook.\n * @param {string} propKey Props key to generate the value for.\n * @returns {any} The initial value for that prop.\n */\n\nfunction getInitialValue(props, propKey) {\n return getInitialValue$1(props, propKey, defaultStateValues);\n}\n/**\n * Returns the default value for a state key in the following order:\n * 1. controlled prop, 2. default prop, 3. default value from Downshift.\n *\n * @param {Object} props Props passed to the hook.\n * @param {string} propKey Props key to generate the value for.\n * @returns {any} The initial value for that prop.\n */\n\n\nfunction getDefaultValue(props, propKey) {\n return getDefaultValue$1(props, propKey, defaultStateValues);\n}\n/**\n * Gets the initial state based on the provided props. It uses initial, default\n * and controlled props related to state in order to compute the initial value.\n *\n * @param {Object} props Props passed to the hook.\n * @returns {Object} The initial state.\n */\n\n\nfunction getInitialState(props) {\n var activeIndex = getInitialValue(props, 'activeIndex');\n var selectedItems = getInitialValue(props, 'selectedItems');\n return {\n activeIndex: activeIndex,\n selectedItems: selectedItems\n };\n}\n/**\n * Returns true if dropdown keydown operation is permitted. Should not be\n * allowed on keydown with modifier keys (ctrl, alt, shift, meta), on\n * input element with text content that is either highlighted or selection\n * cursor is not at the starting position.\n *\n * @param {KeyboardEvent} event The event from keydown.\n * @returns {boolean} Whether the operation is allowed.\n */\n\n\nfunction isKeyDownOperationPermitted(event) {\n if (event.shiftKey || event.metaKey || event.ctrlKey || event.altKey) {\n return false;\n }\n\n var element = event.target;\n\n if (element instanceof HTMLInputElement && // if element is a text input\n element.value !== '' && ( // and we have text in it\n // and cursor is either not at the start or is currently highlighting text.\n element.selectionStart !== 0 || element.selectionEnd !== 0)) {\n return false;\n }\n\n return true;\n}\n/**\n * Check if a state is equal for taglist, by comparing active index and selected items.\n * Used by useSelect and useCombobox.\n *\n * @param {Object} prevState\n * @param {Object} newState\n * @returns {boolean} Wheather the states are deeply equal.\n */\n\n\nfunction isStateEqual(prevState, newState) {\n return prevState.selectedItems === newState.selectedItems && prevState.activeIndex === newState.activeIndex;\n}\n\nvar propTypes = {\n stateReducer: commonPropTypes.stateReducer,\n itemToKey: commonPropTypes.itemToKey,\n environment: commonPropTypes.environment,\n selectedItems: PropTypes.array,\n initialSelectedItems: PropTypes.array,\n defaultSelectedItems: PropTypes.array,\n getA11yStatusMessage: PropTypes.func,\n activeIndex: PropTypes.number,\n initialActiveIndex: PropTypes.number,\n defaultActiveIndex: PropTypes.number,\n onActiveIndexChange: PropTypes.func,\n onSelectedItemsChange: PropTypes.func,\n keyNavigationNext: PropTypes.string,\n keyNavigationPrevious: PropTypes.string\n};\nvar defaultProps = {\n itemToKey: defaultProps$3.itemToKey,\n stateReducer: defaultProps$3.stateReducer,\n environment: defaultProps$3.environment,\n keyNavigationNext: 'ArrowRight',\n keyNavigationPrevious: 'ArrowLeft'\n}; // eslint-disable-next-line import/no-mutable-exports\n\nvar validatePropTypes = noop;\n/* istanbul ignore next */\n\nif (process.env.NODE_ENV !== 'production') {\n validatePropTypes = function validatePropTypes(options, caller) {\n PropTypes.checkPropTypes(propTypes, options, 'prop', caller.name);\n };\n}\n\nvar SelectedItemClick = process.env.NODE_ENV !== \"production\" ? '__selected_item_click__' : 0;\nvar SelectedItemKeyDownDelete = process.env.NODE_ENV !== \"production\" ? '__selected_item_keydown_delete__' : 1;\nvar SelectedItemKeyDownBackspace = process.env.NODE_ENV !== \"production\" ? '__selected_item_keydown_backspace__' : 2;\nvar SelectedItemKeyDownNavigationNext = process.env.NODE_ENV !== \"production\" ? '__selected_item_keydown_navigation_next__' : 3;\nvar SelectedItemKeyDownNavigationPrevious = process.env.NODE_ENV !== \"production\" ? '__selected_item_keydown_navigation_previous__' : 4;\nvar DropdownKeyDownNavigationPrevious = process.env.NODE_ENV !== \"production\" ? '__dropdown_keydown_navigation_previous__' : 5;\nvar DropdownKeyDownBackspace = process.env.NODE_ENV !== \"production\" ? '__dropdown_keydown_backspace__' : 6;\nvar DropdownClick = process.env.NODE_ENV !== \"production\" ? '__dropdown_click__' : 7;\nvar FunctionAddSelectedItem = process.env.NODE_ENV !== \"production\" ? '__function_add_selected_item__' : 8;\nvar FunctionRemoveSelectedItem = process.env.NODE_ENV !== \"production\" ? '__function_remove_selected_item__' : 9;\nvar FunctionSetSelectedItems = process.env.NODE_ENV !== \"production\" ? '__function_set_selected_items__' : 10;\nvar FunctionSetActiveIndex = process.env.NODE_ENV !== \"production\" ? '__function_set_active_index__' : 11;\nvar FunctionReset = process.env.NODE_ENV !== \"production\" ? '__function_reset__' : 12;\nvar stateChangeTypes = /*#__PURE__*/Object.freeze({\n __proto__: null,\n DropdownClick: DropdownClick,\n DropdownKeyDownBackspace: DropdownKeyDownBackspace,\n DropdownKeyDownNavigationPrevious: DropdownKeyDownNavigationPrevious,\n FunctionAddSelectedItem: FunctionAddSelectedItem,\n FunctionRemoveSelectedItem: FunctionRemoveSelectedItem,\n FunctionReset: FunctionReset,\n FunctionSetActiveIndex: FunctionSetActiveIndex,\n FunctionSetSelectedItems: FunctionSetSelectedItems,\n SelectedItemClick: SelectedItemClick,\n SelectedItemKeyDownBackspace: SelectedItemKeyDownBackspace,\n SelectedItemKeyDownDelete: SelectedItemKeyDownDelete,\n SelectedItemKeyDownNavigationNext: SelectedItemKeyDownNavigationNext,\n SelectedItemKeyDownNavigationPrevious: SelectedItemKeyDownNavigationPrevious\n});\n/* eslint-disable complexity */\n\nfunction downshiftMultipleSelectionReducer(state, action) {\n var type = action.type,\n index = action.index,\n props = action.props,\n selectedItem = action.selectedItem;\n var activeIndex = state.activeIndex,\n selectedItems = state.selectedItems;\n var changes;\n\n switch (type) {\n case SelectedItemClick:\n changes = {\n activeIndex: index\n };\n break;\n\n case SelectedItemKeyDownNavigationPrevious:\n changes = {\n activeIndex: activeIndex - 1 < 0 ? 0 : activeIndex - 1\n };\n break;\n\n case SelectedItemKeyDownNavigationNext:\n changes = {\n activeIndex: activeIndex + 1 >= selectedItems.length ? -1 : activeIndex + 1\n };\n break;\n\n case SelectedItemKeyDownBackspace:\n case SelectedItemKeyDownDelete:\n {\n if (activeIndex < 0) {\n break;\n }\n\n var newActiveIndex = activeIndex;\n\n if (selectedItems.length === 1) {\n newActiveIndex = -1;\n } else if (activeIndex === selectedItems.length - 1) {\n newActiveIndex = selectedItems.length - 2;\n }\n\n changes = _extends({\n selectedItems: [].concat(selectedItems.slice(0, activeIndex), selectedItems.slice(activeIndex + 1))\n }, {\n activeIndex: newActiveIndex\n });\n break;\n }\n\n case DropdownKeyDownNavigationPrevious:\n changes = {\n activeIndex: selectedItems.length - 1\n };\n break;\n\n case DropdownKeyDownBackspace:\n changes = {\n selectedItems: selectedItems.slice(0, selectedItems.length - 1)\n };\n break;\n\n case FunctionAddSelectedItem:\n changes = {\n selectedItems: [].concat(selectedItems, [selectedItem])\n };\n break;\n\n case DropdownClick:\n changes = {\n activeIndex: -1\n };\n break;\n\n case FunctionRemoveSelectedItem:\n {\n var _newActiveIndex = activeIndex;\n var selectedItemIndex = selectedItems.findIndex(function (item) {\n return props.itemToKey(item) === props.itemToKey(selectedItem);\n });\n\n if (selectedItemIndex < 0) {\n break;\n }\n\n if (selectedItems.length === 1) {\n _newActiveIndex = -1;\n } else if (selectedItemIndex === selectedItems.length - 1) {\n _newActiveIndex = selectedItems.length - 2;\n }\n\n changes = {\n selectedItems: [].concat(selectedItems.slice(0, selectedItemIndex), selectedItems.slice(selectedItemIndex + 1)),\n activeIndex: _newActiveIndex\n };\n break;\n }\n\n case FunctionSetSelectedItems:\n {\n var newSelectedItems = action.selectedItems;\n changes = {\n selectedItems: newSelectedItems\n };\n break;\n }\n\n case FunctionSetActiveIndex:\n {\n var _newActiveIndex2 = action.activeIndex;\n changes = {\n activeIndex: _newActiveIndex2\n };\n break;\n }\n\n case FunctionReset:\n changes = {\n activeIndex: getDefaultValue(props, 'activeIndex'),\n selectedItems: getDefaultValue(props, 'selectedItems')\n };\n break;\n\n default:\n throw new Error('Reducer called without proper action type.');\n }\n\n return _extends({}, state, changes);\n}\n\nvar _excluded = [\"refKey\", \"ref\", \"onClick\", \"onKeyDown\", \"selectedItem\", \"index\"],\n _excluded2 = [\"refKey\", \"ref\", \"onKeyDown\", \"onClick\", \"preventKeyAction\"];\nuseMultipleSelection.stateChangeTypes = stateChangeTypes;\n\nfunction useMultipleSelection(userProps) {\n if (userProps === void 0) {\n userProps = {};\n }\n\n validatePropTypes(userProps, useMultipleSelection); // Props defaults and destructuring.\n\n var props = _extends({}, defaultProps, userProps);\n\n var getA11yStatusMessage = props.getA11yStatusMessage,\n environment = props.environment,\n keyNavigationNext = props.keyNavigationNext,\n keyNavigationPrevious = props.keyNavigationPrevious; // Reducer init.\n\n var _useControlledReducer = useControlledReducer$1(downshiftMultipleSelectionReducer, props, getInitialState, isStateEqual),\n state = _useControlledReducer[0],\n dispatch = _useControlledReducer[1];\n\n var activeIndex = state.activeIndex,\n selectedItems = state.selectedItems; // Refs.\n\n var isInitialMount = useIsInitialMount();\n var dropdownRef = useRef(null);\n var selectedItemRefs = useRef();\n selectedItemRefs.current = [];\n var latest = useLatestRef({\n state: state,\n props: props\n }); // Effects.\n // Adds an a11y aria live status message if getA11yStatusMessage is passed.\n\n useA11yMessageStatus(getA11yStatusMessage, state, [activeIndex, selectedItems], environment); // Sets focus on active item.\n\n useEffect(function () {\n if (isInitialMount) {\n return;\n }\n\n if (activeIndex === -1 && dropdownRef.current) {\n dropdownRef.current.focus();\n } else if (selectedItemRefs.current[activeIndex]) {\n selectedItemRefs.current[activeIndex].focus();\n } // eslint-disable-next-line react-hooks/exhaustive-deps\n\n }, [activeIndex]);\n useControlPropsValidator({\n props: props,\n state: state\n });\n var setGetterPropCallInfo = useGetterPropsCalledChecker('getDropdownProps'); // Event handler functions.\n\n var selectedItemKeyDownHandlers = useMemo(function () {\n var _ref;\n\n return _ref = {}, _ref[keyNavigationPrevious] = function () {\n dispatch({\n type: SelectedItemKeyDownNavigationPrevious\n });\n }, _ref[keyNavigationNext] = function () {\n dispatch({\n type: SelectedItemKeyDownNavigationNext\n });\n }, _ref.Delete = function Delete() {\n dispatch({\n type: SelectedItemKeyDownDelete\n });\n }, _ref.Backspace = function Backspace() {\n dispatch({\n type: SelectedItemKeyDownBackspace\n });\n }, _ref;\n }, [dispatch, keyNavigationNext, keyNavigationPrevious]);\n var dropdownKeyDownHandlers = useMemo(function () {\n var _ref2;\n\n return _ref2 = {}, _ref2[keyNavigationPrevious] = function (event) {\n if (isKeyDownOperationPermitted(event)) {\n dispatch({\n type: DropdownKeyDownNavigationPrevious\n });\n }\n }, _ref2.Backspace = function Backspace(event) {\n if (isKeyDownOperationPermitted(event)) {\n dispatch({\n type: DropdownKeyDownBackspace\n });\n }\n }, _ref2;\n }, [dispatch, keyNavigationPrevious]); // Getter props.\n\n var getSelectedItemProps = useCallback(function (_temp) {\n var _extends2;\n\n var _ref3 = _temp === void 0 ? {} : _temp,\n _ref3$refKey = _ref3.refKey,\n refKey = _ref3$refKey === void 0 ? 'ref' : _ref3$refKey,\n ref = _ref3.ref,\n onClick = _ref3.onClick,\n onKeyDown = _ref3.onKeyDown,\n selectedItemProp = _ref3.selectedItem,\n indexProp = _ref3.index,\n rest = _objectWithoutPropertiesLoose(_ref3, _excluded);\n\n var latestState = latest.current.state;\n\n var _getItemAndIndex = getItemAndIndex(selectedItemProp, indexProp, latestState.selectedItems, 'Pass either item or index to getSelectedItemProps!'),\n index = _getItemAndIndex[1];\n\n var isFocusable = index > -1 && index === latestState.activeIndex;\n\n var selectedItemHandleClick = function selectedItemHandleClick() {\n dispatch({\n type: SelectedItemClick,\n index: index\n });\n };\n\n var selectedItemHandleKeyDown = function selectedItemHandleKeyDown(event) {\n var key = normalizeArrowKey(event);\n\n if (key && selectedItemKeyDownHandlers[key]) {\n selectedItemKeyDownHandlers[key](event);\n }\n };\n\n return _extends((_extends2 = {}, _extends2[refKey] = handleRefs(ref, function (selectedItemNode) {\n if (selectedItemNode) {\n selectedItemRefs.current.push(selectedItemNode);\n }\n }), _extends2.tabIndex = isFocusable ? 0 : -1, _extends2.onClick = callAllEventHandlers(onClick, selectedItemHandleClick), _extends2.onKeyDown = callAllEventHandlers(onKeyDown, selectedItemHandleKeyDown), _extends2), rest);\n }, [dispatch, latest, selectedItemKeyDownHandlers]);\n var getDropdownProps = useCallback(function (_temp2, _temp3) {\n var _extends3;\n\n var _ref4 = _temp2 === void 0 ? {} : _temp2,\n _ref4$refKey = _ref4.refKey,\n refKey = _ref4$refKey === void 0 ? 'ref' : _ref4$refKey,\n ref = _ref4.ref,\n onKeyDown = _ref4.onKeyDown,\n onClick = _ref4.onClick,\n _ref4$preventKeyActio = _ref4.preventKeyAction,\n preventKeyAction = _ref4$preventKeyActio === void 0 ? false : _ref4$preventKeyActio,\n rest = _objectWithoutPropertiesLoose(_ref4, _excluded2);\n\n var _ref5 = _temp3 === void 0 ? {} : _temp3,\n _ref5$suppressRefErro = _ref5.suppressRefError,\n suppressRefError = _ref5$suppressRefErro === void 0 ? false : _ref5$suppressRefErro;\n\n setGetterPropCallInfo('getDropdownProps', suppressRefError, refKey, dropdownRef);\n\n var dropdownHandleKeyDown = function dropdownHandleKeyDown(event) {\n var key = normalizeArrowKey(event);\n\n if (key && dropdownKeyDownHandlers[key]) {\n dropdownKeyDownHandlers[key](event);\n }\n };\n\n var dropdownHandleClick = function dropdownHandleClick() {\n dispatch({\n type: DropdownClick\n });\n };\n\n return _extends((_extends3 = {}, _extends3[refKey] = handleRefs(ref, function (dropdownNode) {\n if (dropdownNode) {\n dropdownRef.current = dropdownNode;\n }\n }), _extends3), !preventKeyAction && {\n onKeyDown: callAllEventHandlers(onKeyDown, dropdownHandleKeyDown),\n onClick: callAllEventHandlers(onClick, dropdownHandleClick)\n }, rest);\n }, [dispatch, dropdownKeyDownHandlers, setGetterPropCallInfo]); // returns\n\n var addSelectedItem = useCallback(function (selectedItem) {\n dispatch({\n type: FunctionAddSelectedItem,\n selectedItem: selectedItem\n });\n }, [dispatch]);\n var removeSelectedItem = useCallback(function (selectedItem) {\n dispatch({\n type: FunctionRemoveSelectedItem,\n selectedItem: selectedItem\n });\n }, [dispatch]);\n var setSelectedItems = useCallback(function (newSelectedItems) {\n dispatch({\n type: FunctionSetSelectedItems,\n selectedItems: newSelectedItems\n });\n }, [dispatch]);\n var setActiveIndex = useCallback(function (newActiveIndex) {\n dispatch({\n type: FunctionSetActiveIndex,\n activeIndex: newActiveIndex\n });\n }, [dispatch]);\n var reset = useCallback(function () {\n dispatch({\n type: FunctionReset\n });\n }, [dispatch]);\n return {\n getSelectedItemProps: getSelectedItemProps,\n getDropdownProps: getDropdownProps,\n addSelectedItem: addSelectedItem,\n removeSelectedItem: removeSelectedItem,\n setSelectedItems: setSelectedItems,\n setActiveIndex: setActiveIndex,\n reset: reset,\n selectedItems: selectedItems,\n activeIndex: activeIndex\n };\n}\n\nexport { Downshift$1 as default, resetIdCounter, useCombobox, useMultipleSelection, useSelect };","module.exports = __webpack_public_path__ + \"media/crosses/close-icon--white-d5df7380.svg\";","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'moins d’une seconde',\n other: 'moins de {{count}} secondes'\n },\n xSeconds: {\n one: '1 seconde',\n other: '{{count}} secondes'\n },\n halfAMinute: '30 secondes',\n lessThanXMinutes: {\n one: 'moins d’une minute',\n other: 'moins de {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'environ 1 heure',\n other: 'environ {{count}} heures'\n },\n xHours: {\n one: '1 heure',\n other: '{{count}} heures'\n },\n xDays: {\n one: '1 jour',\n other: '{{count}} jours'\n },\n aboutXWeeks: {\n one: 'environ 1 semaine',\n other: 'environ {{count}} semaines'\n },\n xWeeks: {\n one: '1 semaine',\n other: '{{count}} semaines'\n },\n aboutXMonths: {\n one: 'environ 1 mois',\n other: 'environ {{count}} mois'\n },\n xMonths: {\n one: '1 mois',\n other: '{{count}} mois'\n },\n aboutXYears: {\n one: 'environ 1 an',\n other: 'environ {{count}} ans'\n },\n xYears: {\n one: '1 an',\n other: '{{count}} ans'\n },\n overXYears: {\n one: 'plus d’un an',\n other: 'plus de {{count}} ans'\n },\n almostXYears: {\n one: 'presqu’un an',\n other: 'presque {{count}} ans'\n }\n};\nexport default function formatDistance(token, count, options) {\n options = options || {};\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n result = formatDistanceLocale[token].one;\n } else {\n result = formatDistanceLocale[token].other.replace('{{count}}', count);\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'dans ' + result;\n } else {\n return 'il y a ' + result;\n }\n }\n\n return result;\n}","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE d MMMM y',\n long: 'd MMMM y',\n medium: 'd MMM y',\n short: 'dd/MM/y'\n};\nvar timeFormats = {\n full: 'HH:mm:ss zzzz',\n long: 'HH:mm:ss z',\n medium: 'HH:mm:ss',\n short: 'HH:mm'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'à ' {{time}}\",\n long: \"{{date}} 'à ' {{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: \"eeee 'dernier à ' p\",\n yesterday: \"'hier à ' p\",\n today: \"'aujourd’hui à ' p\",\n tomorrow: \"'demain à ' p'\",\n nextWeek: \"eeee 'prochain à ' p\",\n other: 'P'\n};\nexport default function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n}","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['av. J.-C', 'ap. J.-C'],\n abbreviated: ['av. J.-C', 'ap. J.-C'],\n wide: ['avant Jésus-Christ', 'après Jésus-Christ']\n};\nvar quarterValues = {\n narrow: ['T1', 'T2', 'T3', 'T4'],\n abbreviated: ['1er trim.', '2ème trim.', '3ème trim.', '4ème trim.'],\n wide: ['1er trimestre', '2ème trimestre', '3ème trimestre', '4ème trimestre']\n};\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'],\n wide: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre']\n};\nvar dayValues = {\n narrow: ['D', 'L', 'M', 'M', 'J', 'V', 'S'],\n short: ['di', 'lu', 'ma', 'me', 'je', 've', 'sa'],\n abbreviated: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'],\n wide: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'AM',\n pm: 'PM',\n midnight: 'minuit',\n noon: 'midi',\n morning: 'mat.',\n afternoon: 'ap.m.',\n evening: 'soir',\n night: 'mat.'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'minuit',\n noon: 'midi',\n morning: 'matin',\n afternoon: 'après-midi',\n evening: 'soir',\n night: 'matin'\n },\n wide: {\n am: 'AM',\n pm: 'PM',\n midnight: 'minuit',\n noon: 'midi',\n morning: 'du matin',\n afternoon: 'de l’après-midi',\n evening: 'du soir',\n night: 'du matin'\n }\n};\n\nfunction ordinalNumber(dirtyNumber, dirtyOptions) {\n var number = Number(dirtyNumber);\n var options = dirtyOptions || {};\n var unit = String(options.unit);\n var suffix;\n\n if (number === 0) {\n return number;\n }\n\n if (unit === 'year' || unit === 'hour' || unit === 'week') {\n if (number === 1) {\n suffix = 'ère';\n } else {\n suffix = 'ème';\n }\n } else {\n if (number === 1) {\n suffix = 'er';\n } else {\n suffix = 'ème';\n }\n }\n\n return number + suffix;\n}\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 Number(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 })\n};\nexport default localize;","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 French locale.\n * @language French\n * @iso-639-2 fra\n * @author Jean Dupouy [@izeau]{@link https://github.com/izeau}\n * @author François B [@fbonzon]{@link https://github.com/fbonzon}\n */\n\nvar locale = {\n code: 'fr',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 4\n }\n};\nexport default locale;","import buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nimport buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(ième|ère|ème|er|e)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(av\\.J\\.C|ap\\.J\\.C|ap\\.J\\.-C)/i,\n abbreviated: /^(av\\.J\\.-C|av\\.J-C|apr\\.J\\.-C|apr\\.J-C|ap\\.J-C)/i,\n wide: /^(avant Jésus-Christ|après Jésus-Christ)/i\n};\nvar parseEraPatterns = {\n any: [/^av/i, /^ap/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^t[1234]/i,\n wide: /^[1234](er|ème|e)? trimestre/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(janv|févr|mars|avr|mai|juin|juill|juil|août|sept|oct|nov|déc)\\.?/i,\n wide: /^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/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, /^av/i, /^ma/i, /^juin/i, /^juil/i, /^ao/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[lmjvsd]/i,\n short: /^(di|lu|ma|me|je|ve|sa)/i,\n abbreviated: /^(dim|lun|mar|mer|jeu|ven|sam)\\.?/i,\n wide: /^(dimanche|lundi|mardi|mercredi|jeudi|vendredi|samedi)/i\n};\nvar parseDayPatterns = {\n narrow: [/^d/i, /^l/i, /^m/i, /^m/i, /^j/i, /^v/i, /^s/i],\n any: [/^di/i, /^lu/i, /^ma/i, /^me/i, /^je/i, /^ve/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|minuit|midi|mat\\.?|ap\\.?m\\.?|soir|nuit)/i,\n any: /^([ap]\\.?\\s?m\\.?|du matin|de l'après[-\\s]midi|du soir|de la nuit)/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^min/i,\n noon: /^mid/i,\n morning: /mat/i,\n afternoon: /ap/i,\n evening: /soir/i,\n night: /nuit/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;","// @noflow\n\n/* eslint-disable i18next/no-literal-string */\nimport React, { useCallback } from 'react'\nimport { useTranslation } from 'react-i18next'\n\nimport { AnalyticsProps, trackEvent } from '@/services/segment'\n\nimport useBoolean from '@/hooks/useBoolean'\n\nimport Text, {\n AllowedColours,\n Props as TextProps\n} from '@/components/shared/elements/Text/Text'\n\nimport STYLES from './Button.module.sass'\n\nimport { ButtonSkeleton, Props as ButtonSkeletonProps } from './ButtonSkeleton'\n\ntype Variant =\n | 'primary'\n | 'secondary'\n | 'ghost'\n | 'facebook'\n | 'whatsApp'\n | 'linkWhiteBG'\n | 'ghostWhiteText'\n | 'link'\n\ntype Size = 'large' | 'regular' | 'slim'\ntype Icon = {\n component: JSX.Element | undefined\n position: 'left' | 'right'\n}\ntype DisplayText = 'always' | 'never' | 'mobileOnly' | 'desktopOnly'\n\ntype Event =\n | React.MouseEvent<HTMLButtonElement>\n | React.KeyboardEvent<HTMLButtonElement>\n\ntype Skeleton = {\n isLoading: boolean\n} & ButtonSkeletonProps\n\ntype ButtonProps = {\n id?: string\n dataTestId?: string\n typography?: TextProps\n variant?: Variant\n size?: Size\n disabled?: boolean\n displayText?: DisplayText\n icon?: Icon | null | undefined\n skeleton?: Skeleton\n onClick?: (e: Event) => void\n disabledOnClick?: (e: Event) => void\n fullWidth?: boolean\n smallPadding?: boolean\n}\n\ntype Props = ButtonProps &\n AnalyticsProps & { ref?: React.RefObject<HTMLElement> }\n\nconst LARGE_BUTTON_SIZE = 60\nconst REGULAR_BUTTON_SIZE = 40\nconst SLIM_BUTTON_SIZE = 30\n\n/**\n * Button component\n *\n * Use this component to render a button.\n *\n * This component has two states of analytics:\n * Analytics enabled (defaults to `true`)\n * - `identifier` is required - identifier of the button using the\n * `app_place.component_identifier` format\n * - `trackDisabledPresses` is optional - boolean that appends `.disabled` to the `identifier`\n * - `screenIdentifier` is optional - identifier of the screen where the button is located\n *\n * Analytics disabled (defaults to `false`)\n * - `disableAnalytics` is required to be `true` - disables analytics\n * - `identifier`, `trackDisabledPresses` and `screenIdentifier` are not valid in this case\n *\n * @example\n ```\n import { Button } from 'components/shared/elements/Button/Button'\n\n <Button\n identifier=\"example_screen.update_action\"\n trackDisabledPresses\n variant=\"primary\"\n size=\"regular\"\n typography={{\n text: 'translation.path.text',\n namespace: 'example-namespace',\n }}\n onClick={handeOnClick}\n disabled={isDisabled}\n disabledOnClick={handleDisabledOnClick}\n />\n ```\n *\n * @param {TextProps} [typography] - text of the button\n * @param {'primary' | 'secondary' | 'ghost'} [variant='primary'] - variant of the button\n * @param {'large' | 'regular' | 'slim'} [size='regular'] - size of the button\n * @param {boolean} [disabled=false] - is disabled flag\n * @param {'always' | 'never' | 'mobileOnly' | 'desktopOnly'} [displayText='always'] - display text flag\n * @param {Icon} [icon=null] - icon of the button\n * @param {Skeleton} [skeleton] - skeleton\n * @param {boolean} [fulllWidth=false] - fulllWidth flag\n * @param {Function} onClick - on click event\n * @param {Function} [disabledOnClick] - on click event when disabled\n * @param {boolean} [disableAnalytics=false] - disables analytics\n * @param {string} identifier - identifier of the button using the `app_place.component_identifier` format\n * @param {boolean} [trackDisabledPresses=false] - boolean that appends `.disabled` to the `identifier`\n * @param {string} [screenIdentifier=null] - identifier of the screen where the button is located\n * @param {string} [smallPadding=false] - Deprecated: smaller padding flag\n * @category Components\n * @subcategory Atoms\n * @returns {JSX.Element} - button component\n */\nconst Button = ({\n id,\n dataTestId,\n typography: typographyProps,\n variant = 'primary',\n size = 'regular',\n disabled = false,\n displayText = 'always',\n icon = null,\n skeleton,\n fullWidth = false,\n onClick,\n disabledOnClick,\n disableAnalytics = false,\n identifier,\n trackDisabledPresses = false,\n screenIdentifier = null,\n smallPadding = false\n}: Props): JSX.Element => {\n const typography = {\n translate: true,\n ...(typographyProps as TextProps)\n }\n const { t } = useTranslation(typography?.namespace)\n\n const {\n value: pressed,\n setTrue: setPressed,\n setFalse: setUnpressed\n } = useBoolean(false)\n\n const variantToTextColor = ((): AllowedColours => {\n switch (variant) {\n case 'primary': {\n return 'brandWhite'\n }\n case 'secondary':\n case 'ghost': {\n return disabled ? 'brandRed300' : 'brandRed400'\n }\n default: {\n return 'brandWhite'\n }\n }\n })()\n\n const sizeToButtonHeight = ((): number => {\n switch (size) {\n case 'large': {\n return LARGE_BUTTON_SIZE\n }\n case 'regular': {\n return REGULAR_BUTTON_SIZE\n }\n case 'slim': {\n return SLIM_BUTTON_SIZE\n }\n default: {\n return REGULAR_BUTTON_SIZE\n }\n }\n })()\n\n const iconPositionToClass = ((): string => {\n if (!icon) {\n return ''\n }\n\n const { position } = icon\n\n // Formats the position string by capitalizing the first letter.\n const formattedPosition =\n position.charAt(0).toUpperCase() + position.slice(1)\n\n return STYLES[`icon${formattedPosition}` as 'iconLeft' | 'iconRight']\n })()\n\n // Handlers\n const handleTrackEvent = useCallback(\n (componentIdentifier: string): void => {\n trackEvent('Component Clicked', {\n component_identifier: componentIdentifier,\n ...(screenIdentifier ? { screen_identifier: screenIdentifier } : {})\n })\n },\n [screenIdentifier]\n )\n\n const handleOnClick = useCallback(\n (event: Event): void => {\n if (!pressed) {\n if (disabled) {\n disabledOnClick && disabledOnClick(event)\n\n /**\n * If the button is disabled, we still can track the event.\n * Analytics has to be enabled (defaults to `true`) and the `trackDisabledPresses` has\n * to be provided (defaults to `null`).\n */\n if (!disableAnalytics && trackDisabledPresses) {\n handleTrackEvent(`${identifier}.disabled`)\n }\n } else if (onClick) {\n onClick(event)\n\n // If the button and analytics are enabled, we track the event.\n if (!disableAnalytics && identifier) {\n handleTrackEvent(identifier)\n }\n }\n }\n },\n [\n pressed,\n disabled,\n disabledOnClick,\n onClick,\n disableAnalytics,\n identifier,\n trackDisabledPresses,\n handleTrackEvent\n ]\n )\n\n // Animation handlers\n const handleOnPressed = useCallback(() => {\n if (!disabled || disabledOnClick) {\n setPressed()\n }\n }, [setPressed, disabled, disabledOnClick])\n\n const handleOnUnpressed = useCallback(() => {\n if (!disabled || disabledOnClick) {\n setUnpressed()\n }\n }, [setUnpressed, disabled, disabledOnClick])\n\n // Keyboard handlers\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLButtonElement>) => {\n if (event.key === 'Enter' && !pressed) {\n handleOnPressed()\n handleOnClick(event)\n }\n },\n [handleOnPressed, pressed, handleOnClick]\n )\n\n const handleKeyUp = useCallback(\n (event: React.KeyboardEvent<HTMLButtonElement>) => {\n if (event.key === 'Enter') {\n handleOnUnpressed()\n }\n },\n [handleOnUnpressed]\n )\n\n if (skeleton?.isLoading) {\n return <ButtonSkeleton height={sizeToButtonHeight} {...skeleton} />\n }\n\n return (\n <button\n id={id}\n className={`${STYLES.button} ${STYLES[variant]} ${\n STYLES[size]\n } ${iconPositionToClass} ${disabled ? STYLES.disabled : ''} ${\n fullWidth ? STYLES.fullWidth : ''\n } ${smallPadding ? STYLES.smallPadding : ''}`}\n type=\"button\"\n aria-label={\n typography?.translate\n ? t(typography?.text)\n : (typography?.text as string)\n }\n aria-disabled={disabled}\n onClick={handleOnClick}\n onMouseDown={handleOnPressed}\n onMouseUp={handleOnUnpressed}\n onMouseLeave={handleOnUnpressed}\n onTouchStart={handleOnPressed}\n onTouchEnd={handleOnUnpressed}\n onKeyDown={handleKeyDown}\n onKeyUp={handleKeyUp}\n data-testid={dataTestId}\n >\n {icon && (\n <div\n className={`${iconPositionToClass} ${\n displayText === 'never' ? STYLES.iconOnly : ''\n }`}\n aria-label={\n typography?.translate\n ? `${t(typography?.text)} icon`\n : `${typography?.text} icon`\n }\n >\n {icon.component}\n </div>\n )}\n\n {displayText !== 'never' && typography && (\n <div className={`${STYLES.buttonText} ${STYLES[displayText]}`}>\n <Text\n {...typography}\n dataTestId={`${dataTestId}-text`}\n text={typography.text}\n variant={size === 'slim' ? 'textMono16' : 'textMono18'}\n colour={variantToTextColor}\n margin={false}\n shouldScale={false}\n element=\"span\"\n />\n </div>\n )}\n </button>\n )\n}\n\nexport type { Props, Event }\n\nexport { Button }\n","export var NetworkStatus;\n\n(function (NetworkStatus) {\n NetworkStatus[NetworkStatus[\"loading\"] = 1] = \"loading\";\n NetworkStatus[NetworkStatus[\"setVariables\"] = 2] = \"setVariables\";\n NetworkStatus[NetworkStatus[\"fetchMore\"] = 3] = \"fetchMore\";\n NetworkStatus[NetworkStatus[\"refetch\"] = 4] = \"refetch\";\n NetworkStatus[NetworkStatus[\"poll\"] = 6] = \"poll\";\n NetworkStatus[NetworkStatus[\"ready\"] = 7] = \"ready\";\n NetworkStatus[NetworkStatus[\"error\"] = 8] = \"error\";\n})(NetworkStatus || (NetworkStatus = {}));\n\nexport function isNetworkRequestInFlight(networkStatus) {\n return networkStatus ? networkStatus < 7 : false;\n}","// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\nconst debounce = (func: (...args: any[]) => void, wait: number) => {\n let timeout: ReturnType<typeof setTimeout> | null\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function executedFunction(...args: any[]) {\n const later = () => {\n timeout = null\n func(...args)\n }\n\n if (timeout) {\n clearTimeout(timeout)\n }\n\n timeout = setTimeout(later, wait)\n }\n}\n\nexport default debounce\n","// @noflow\nimport { useLazyQuery } from '@apollo/client'\nimport { useCombobox } from 'downshift'\nimport React, { useCallback, useMemo, useState } from 'react'\nimport { useTranslation } from 'react-i18next'\n\nimport debounce from '@/utils/debounce'\nimport * as Sentry from '@/utils/sentry'\n\nimport withApollo from '@/components/apollo/withApollo'\n\nimport { HOME_BREED_SELECTOR_QUERY } from '../../queries/homeBreedSelectorQuery'\n\nimport type {\n HomeBreedSelectorQuery_breeds as Breed,\n HomeBreedSelectorQuery,\n HomeBreedSelectorQueryVariables\n} from '../../queries/__generated__/HomeBreedSelectorQuery'\n\nimport { BreedSelectorVariant } from '../../BreedSelector'\nimport ExpandableIconButton from '../ExpandableIconButton/ExpandableIconButton'\n\ntype Props = {\n loadingPlaceholder: string\n placeholder: string\n initialValue?: Breed\n customRef?: React.RefObject<HTMLInputElement>\n embeddedCTA?: boolean\n onClickCTA?: () => void\n variant?: BreedSelectorVariant\n size?: number\n events: {\n onBreedSelection: (breed: Breed) => void\n onListOpen: () => void\n onFocus: () => void\n onInputEmpty: () => void\n }\n}\n\nconst BreedAutocomplete = ({\n loadingPlaceholder,\n placeholder,\n events,\n initialValue,\n customRef,\n onClickCTA,\n embeddedCTA = false,\n variant = BreedSelectorVariant.Generic,\n size\n}: Props): JSX.Element | null => {\n const { onListOpen, onBreedSelection, onInputEmpty } = events\n\n const namespace = 'paid_traffic'\n const [breeds, setBreeds] = useState<Breed[]>([])\n const [toggleIconButton, setToggleIconButton] = useState(false)\n\n const { t } = useTranslation(namespace)\n const [findBreeds, { loading, data, error }] = useLazyQuery<\n HomeBreedSelectorQuery,\n HomeBreedSelectorQueryVariables\n >(HOME_BREED_SELECTOR_QUERY)\n\n const debouncedFindBreeds = useMemo(\n () =>\n debounce((inputValue) => {\n findBreeds(inputValue)\n }, 500),\n [findBreeds]\n )\n\n const mixedBreed: Breed = useMemo(() => {\n return {\n __typename: 'Breed',\n id: '260',\n key: 'mixed_breed',\n name: t('breeds.mixed_breed.name', { ns: 'models' }),\n popular: false\n }\n }, [t])\n\n const otherBreed: Breed = useMemo(() => {\n return {\n __typename: 'Breed',\n id: '260',\n key: 'other',\n name: t('breeds.other.name', { ns: 'models' }),\n popular: false\n }\n }, [t])\n\n const {\n isOpen,\n getMenuProps,\n getInputProps,\n getItemProps,\n closeMenu,\n highlightedIndex,\n inputValue\n } = useCombobox({\n initialSelectedItem: initialValue,\n items: breeds,\n itemToString: (breed) => (breed ? breed.name : ''),\n onSelectedItemChange: ({ selectedItem }) => {\n if (selectedItem) {\n onBreedSelection(selectedItem)\n }\n },\n onInputValueChange: ({ inputValue, type }) => {\n if (!inputValue) {\n setToggleIconButton(false)\n closeMenu()\n onInputEmpty()\n return\n }\n setToggleIconButton(true)\n\n // If the user clicks on an item, don't make a request\n if (type !== useCombobox.stateChangeTypes.ItemClick) {\n debouncedFindBreeds({ variables: { name: inputValue } })\n }\n\n // If we can't match a breed, ensure the user always sees a\n // 'Mixed breed' and 'Other' option\n if (data?.breeds && data.breeds.length > 0) {\n setBreeds([...data.breeds])\n } else {\n setBreeds([mixedBreed, otherBreed])\n }\n },\n stateReducer: (state, actionAndChanges) => {\n const { type: actionAndChangesType, changes } = actionAndChanges\n switch (actionAndChangesType) {\n case useCombobox.stateChangeTypes.InputBlur:\n setToggleIconButton(false)\n return {\n ...changes,\n selectedItem: null\n }\n default:\n return changes\n }\n }\n })\n\n const onInputFocus = useCallback(() => {\n events.onFocus && events.onFocus()\n if (!inputValue) {\n debouncedFindBreeds({\n variables: { popular: variant !== BreedSelectorVariant.Homepage }\n })\n }\n setToggleIconButton(true)\n }, [debouncedFindBreeds, events, variant, inputValue])\n\n const showResults = isOpen && !loading && breeds.length > 0\n\n React.useEffect(() => {\n if (!loading && data) {\n if (data.breeds.length > 0) {\n setBreeds(data.breeds)\n } else {\n setBreeds([mixedBreed, otherBreed])\n }\n }\n }, [data, loading, mixedBreed, otherBreed])\n\n React.useEffect(() => {\n if (showResults) {\n onListOpen()\n }\n }, [showResults, onListOpen])\n\n if (error) {\n Sentry.captureException(`Error in BREED_SELECTOR_QUERY`, {\n extra: { error: error }\n })\n return null\n }\n\n return (\n <div className=\"breed-autocomplete__container\">\n <div\n className={`breed-autocomplete__breed-selector-wrapper ${\n showResults ? 'expanded' : ''\n } ${\n variant === BreedSelectorVariant.Homepage\n ? 'breed-autocomplete__breed-selector-wrapper--homepage'\n : ''\n }`}\n >\n <input\n className=\"breed-autocomplete__input-field text-regular-28\"\n {...getInputProps({\n placeholder: loading ? loadingPlaceholder : placeholder,\n onFocus: onInputFocus,\n ref: customRef,\n size: size\n })}\n />\n {onClickCTA &&\n embeddedCTA &&\n variant !== BreedSelectorVariant.Homepage && (\n <div className=\"breed-autocomplete__build-box-button-wrapper\">\n <ExpandableIconButton\n toggleIconButton={toggleIconButton}\n text={'breed_autocomplete.feedback.cta_build_your_box_v2'}\n namespace={namespace}\n onClick={onClickCTA}\n />\n </div>\n )}\n </div>\n <div\n className={`breed-autocomplete__results-list-wrapper ${\n !showResults ? 'hidden' : ''\n } ${\n variant === BreedSelectorVariant.Homepage\n ? 'breed-autocomplete__results-list-wrapper--homepage'\n : ''\n }`}\n >\n <ul\n className={`breed-autocomplete__results-list-wrapper__results-list ${\n !showResults ? 'hidden' : ''\n }`}\n aria-label=\"Breed list\"\n {...getMenuProps()}\n >\n {showResults &&\n breeds.map((breed, index) => (\n <li\n className={`${\n highlightedIndex === index\n ? 'breed-autocomplete__highlighted'\n : ''\n }`}\n key={breed.key}\n {...getItemProps({\n item: breed,\n index\n })}\n >\n {breed.name}\n </li>\n ))}\n </ul>\n </div>\n {!showResults &&\n variant === BreedSelectorVariant.Homepage &&\n onClickCTA && (\n <button\n className=\"btn primary full-width\"\n type=\"button\"\n onClick={onClickCTA}\n >\n {t('hero_section.button_html')}\n </button>\n )}\n </div>\n )\n}\n\nexport default withApollo(BreedAutocomplete)\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\n\nfunction emptyFunctionWithReset() {}\n\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function () {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n\n var err = new Error('Calling PropTypes validators directly is not supported by the `prop-types` package. ' + 'Use PropTypes.checkPropTypes() to call them. ' + 'Read more at http://fb.me/use-check-prop-types');\n err.name = 'Invariant Violation';\n throw err;\n }\n\n ;\n shim.isRequired = shim;\n\n function getShim() {\n return shim;\n }\n\n ; // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n ReactPropTypes.PropTypes = ReactPropTypes;\n return ReactPropTypes;\n};","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\nmodule.exports = ReactPropTypesSecret;","var _a = Object.prototype,\n toString = _a.toString,\n hasOwnProperty = _a.hasOwnProperty;\nvar fnToStr = Function.prototype.toString;\nvar previousComparisons = new Map();\n/**\r\n * Performs a deep equality check on two JavaScript values, tolerating cycles.\r\n */\n\nfunction equal(a, b) {\n try {\n return check(a, b);\n } finally {\n previousComparisons.clear();\n }\n}\n\nfunction check(a, b) {\n // If the two values are strictly equal, our job is easy.\n if (a === b) {\n return true;\n } // Object.prototype.toString returns a representation of the runtime type of\n // the given value that is considerably more precise than typeof.\n\n\n var aTag = toString.call(a);\n var bTag = toString.call(b); // If the runtime types of a and b are different, they could maybe be equal\n // under some interpretation of equality, but for simplicity and performance\n // we just return false instead.\n\n if (aTag !== bTag) {\n return false;\n }\n\n switch (aTag) {\n case '[object Array]':\n // Arrays are a lot like other objects, but we can cheaply compare their\n // lengths as a short-cut before comparing their elements.\n if (a.length !== b.length) return false;\n // Fall through to object case...\n\n case '[object Object]':\n {\n if (previouslyCompared(a, b)) return true;\n var aKeys = definedKeys(a);\n var bKeys = definedKeys(b); // If `a` and `b` have a different number of enumerable keys, they\n // must be different.\n\n var keyCount = aKeys.length;\n if (keyCount !== bKeys.length) return false; // Now make sure they have the same keys.\n\n for (var k = 0; k < keyCount; ++k) {\n if (!hasOwnProperty.call(b, aKeys[k])) {\n return false;\n }\n } // Finally, check deep equality of all child properties.\n\n\n for (var k = 0; k < keyCount; ++k) {\n var key = aKeys[k];\n\n if (!check(a[key], b[key])) {\n return false;\n }\n }\n\n return true;\n }\n\n case '[object Error]':\n return a.name === b.name && a.message === b.message;\n\n case '[object Number]':\n // Handle NaN, which is !== itself.\n if (a !== a) return b !== b;\n // Fall through to shared +a === +b case...\n\n case '[object Boolean]':\n case '[object Date]':\n return +a === +b;\n\n case '[object RegExp]':\n case '[object String]':\n return a == \"\" + b;\n\n case '[object Map]':\n case '[object Set]':\n {\n if (a.size !== b.size) return false;\n if (previouslyCompared(a, b)) return true;\n var aIterator = a.entries();\n var isMap = aTag === '[object Map]';\n\n while (true) {\n var info = aIterator.next();\n if (info.done) break; // If a instanceof Set, aValue === aKey.\n\n var _a = info.value,\n aKey = _a[0],\n aValue = _a[1]; // So this works the same way for both Set and Map.\n\n if (!b.has(aKey)) {\n return false;\n } // However, we care about deep equality of values only when dealing\n // with Map structures.\n\n\n if (isMap && !check(aValue, b.get(aKey))) {\n return false;\n }\n }\n\n return true;\n }\n\n case '[object Uint16Array]':\n case '[object Uint8Array]': // Buffer, in Node.js.\n\n case '[object Uint32Array]':\n case '[object Int32Array]':\n case '[object Int8Array]':\n case '[object Int16Array]':\n case '[object ArrayBuffer]':\n // DataView doesn't need these conversions, but the equality check is\n // otherwise the same.\n a = new Uint8Array(a);\n b = new Uint8Array(b);\n // Fall through...\n\n case '[object DataView]':\n {\n var len = a.byteLength;\n\n if (len === b.byteLength) {\n while (len-- && a[len] === b[len]) {// Keep looping as long as the bytes are equal.\n }\n }\n\n return len === -1;\n }\n\n case '[object AsyncFunction]':\n case '[object GeneratorFunction]':\n case '[object AsyncGeneratorFunction]':\n case '[object Function]':\n {\n var aCode = fnToStr.call(a);\n\n if (aCode !== fnToStr.call(b)) {\n return false;\n } // We consider non-native functions equal if they have the same code\n // (native functions require === because their code is censored).\n // Note that this behavior is not entirely sound, since !== function\n // objects with the same code can behave differently depending on\n // their closure scope. However, any function can behave differently\n // depending on the values of its input arguments (including this)\n // and its calling context (including its closure scope), even\n // though the function object is === to itself; and it is entirely\n // possible for functions that are not === to behave exactly the\n // same under all conceivable circumstances. Because none of these\n // factors are statically decidable in JavaScript, JS function\n // equality is not well-defined. This ambiguity allows us to\n // consider the best possible heuristic among various imperfect\n // options, and equating non-native functions that have the same\n // code has enormous practical benefits, such as when comparing\n // functions that are repeatedly passed as fresh function\n // expressions within objects that are otherwise deeply equal. Since\n // any function created from the same syntactic expression (in the\n // same code location) will always stringify to the same code\n // according to fnToStr.call, we can reasonably expect these\n // repeatedly passed function expressions to have the same code, and\n // thus behave \"the same\" (with all the caveats mentioned above),\n // even though the runtime function objects are !== to one another.\n\n\n return !endsWith(aCode, nativeCodeSuffix);\n }\n } // Otherwise the values are not equal.\n\n\n return false;\n}\n\nfunction definedKeys(obj) {\n // Remember that the second argument to Array.prototype.filter will be\n // used as `this` within the callback function.\n return Object.keys(obj).filter(isDefinedKey, obj);\n}\n\nfunction isDefinedKey(key) {\n return this[key] !== void 0;\n}\n\nvar nativeCodeSuffix = \"{ [native code] }\";\n\nfunction endsWith(full, suffix) {\n var fromIndex = full.length - suffix.length;\n return fromIndex >= 0 && full.indexOf(suffix, fromIndex) === fromIndex;\n}\n\nfunction previouslyCompared(a, b) {\n // Though cyclic references can make an object graph appear infinite from the\n // perspective of a depth-first traversal, the graph still contains a finite\n // number of distinct object references. We use the previousComparisons cache\n // to avoid comparing the same pair of object references more than once, which\n // guarantees termination (even if we end up comparing every object in one\n // graph to every object in the other graph, which is extremely unlikely),\n // while still allowing weird isomorphic structures (like rings with different\n // lengths) a chance to pass the equality test.\n var bSet = previousComparisons.get(a);\n\n if (bSet) {\n // Return true here because we can be sure false will be returned somewhere\n // else if the objects are not equivalent.\n if (bSet.has(b)) return true;\n } else {\n previousComparisons.set(a, bSet = new Set());\n }\n\n bSet.add(b);\n return false;\n}\n\nexport { equal as default, equal };","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n} // https://stackoverflow.com/a/46971044/970769\n\n\nvar ParseError = function ParseError(code) {\n _classCallCheck(this, ParseError);\n\n this.name = this.constructor.name;\n this.message = code;\n this.stack = new Error(code).stack;\n};\n\nexport { ParseError as default };\nParseError.prototype = Object.create(Error.prototype);\nParseError.prototype.constructor = ParseError;","export function compact() {\n var objects = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n objects[_i] = arguments[_i];\n }\n\n var result = Object.create(null);\n objects.forEach(function (obj) {\n if (!obj) return;\n Object.keys(obj).forEach(function (key) {\n var value = obj[key];\n\n if (value !== void 0) {\n result[key] = value;\n }\n });\n });\n return result;\n}","export function isNonEmptyArray(value) {\n return Array.isArray(value) && value.length > 0;\n}","module.exports = function (module) {\n if (!module.webpackPolyfill) {\n module.deprecate = function () {};\n\n module.paths = []; // module.parent = undefined by default\n\n if (!module.children) module.children = [];\n Object.defineProperty(module, \"loaded\", {\n enumerable: true,\n get: function get() {\n return module.l;\n }\n });\n Object.defineProperty(module, \"id\", {\n enumerable: true,\n get: function get() {\n return module.i;\n }\n });\n module.webpackPolyfill = 1;\n }\n\n return module;\n};","// @flow\n\ntype AnalyticsBackend = ((event: string, properties: {}) => void)\nexport type InteractionEventProperties = {|\n context: string,\n object: string,\n action: string\n|}\n\nexport default function segmentTrack (\n eventName: string,\n properties: {} = {}): void {\n try {\n window.analytics.track(eventName, properties)\n } catch (error) {\n console.error(error)\n }\n}\n\nexport class Analytics {\n static track (\n event: string,\n properties: {} = {},\n analyticsBackend: AnalyticsBackend = segmentTrack): void {\n try {\n analyticsBackend(event, properties)\n } catch (error) {\n console.error(error)\n }\n }\n\n static trackInteraction (\n event: string,\n interactionEventProperties: InteractionEventProperties,\n extraProperties: {} = {},\n analyticsBackend: AnalyticsBackend = segmentTrack): void {\n const properties = {\n ...interactionEventProperties,\n ...extraProperties\n }\n try {\n analyticsBackend(event, properties)\n } catch (error) {\n console.error(error)\n }\n }\n}\n","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: {\n regular: 'ménÄ› než sekunda',\n past: 'pÅ™ed ménÄ› než sekundou',\n future: 'za ménÄ› než sekundu'\n },\n few: {\n regular: 'ménÄ› než {{count}} sekundy',\n past: 'pÅ™ed ménÄ› než {{count}} sekundami',\n future: 'za ménÄ› než {{count}} sekundy'\n },\n many: {\n regular: 'ménÄ› než {{count}} sekund',\n past: 'pÅ™ed ménÄ› než {{count}} sekundami',\n future: 'za ménÄ› než {{count}} sekund'\n }\n },\n xSeconds: {\n one: {\n regular: 'sekunda',\n past: 'pÅ™ed sekundou',\n future: 'za sekundu'\n },\n few: {\n regular: '{{count}} sekundy',\n past: 'pÅ™ed {{count}} sekundami',\n future: 'za {{count}} sekundy'\n },\n many: {\n regular: '{{count}} sekund',\n past: 'pÅ™ed {{count}} sekundami',\n future: 'za {{count}} sekund'\n }\n },\n halfAMinute: {\n other: {\n regular: 'půl minuty',\n past: 'pÅ™ed půl minutou',\n future: 'za půl minuty'\n }\n },\n lessThanXMinutes: {\n one: {\n regular: 'ménÄ› než minuta',\n past: 'pÅ™ed ménÄ› než minutou',\n future: 'za ménÄ› než minutu'\n },\n few: {\n regular: 'ménÄ› než {{count}} minuty',\n past: 'pÅ™ed ménÄ› než {{count}} minutami',\n future: 'za ménÄ› než {{count}} minuty'\n },\n many: {\n regular: 'ménÄ› než {{count}} minut',\n past: 'pÅ™ed ménÄ› než {{count}} minutami',\n future: 'za ménÄ› než {{count}} minut'\n }\n },\n xMinutes: {\n one: {\n regular: 'minuta',\n past: 'pÅ™ed minutou',\n future: 'za minutu'\n },\n few: {\n regular: '{{count}} minuty',\n past: 'pÅ™ed {{count}} minutami',\n future: 'za {{count}} minuty'\n },\n many: {\n regular: '{{count}} minut',\n past: 'pÅ™ed {{count}} minutami',\n future: 'za {{count}} minut'\n }\n },\n aboutXHours: {\n one: {\n regular: 'pÅ™ibližnÄ› hodina',\n past: 'pÅ™ibližnÄ› pÅ™ed hodinou',\n future: 'pÅ™ibližnÄ› za hodinu'\n },\n few: {\n regular: 'pÅ™ibližnÄ› {{count}} hodiny',\n past: 'pÅ™ibližnÄ› pÅ™ed {{count}} hodinami',\n future: 'pÅ™ibližnÄ› za {{count}} hodiny'\n },\n many: {\n regular: 'pÅ™ibližnÄ› {{count}} hodin',\n past: 'pÅ™ibližnÄ› pÅ™ed {{count}} hodinami',\n future: 'pÅ™ibližnÄ› za {{count}} hodin'\n }\n },\n xHours: {\n one: {\n regular: 'hodina',\n past: 'pÅ™ed hodinou',\n future: 'za hodinu'\n },\n few: {\n regular: '{{count}} hodiny',\n past: 'pÅ™ed {{count}} hodinami',\n future: 'za {{count}} hodiny'\n },\n many: {\n regular: '{{count}} hodin',\n past: 'pÅ™ed {{count}} hodinami',\n future: 'za {{count}} hodin'\n }\n },\n xDays: {\n one: {\n regular: 'den',\n past: 'pÅ™ed dnem',\n future: 'za den'\n },\n few: {\n regular: '{{count}} dny',\n past: 'pÅ™ed {{count}} dny',\n future: 'za {{count}} dny'\n },\n many: {\n regular: '{{count}} dnÃ',\n past: 'pÅ™ed {{count}} dny',\n future: 'za {{count}} dnÃ'\n }\n },\n aboutXWeeks: {\n one: {\n regular: 'pÅ™ibližnÄ› týden',\n past: 'pÅ™ibližnÄ› pÅ™ed týdnem',\n future: 'pÅ™ibližnÄ› za týden'\n },\n few: {\n regular: 'pÅ™ibližnÄ› {{count}} týdny',\n past: 'pÅ™ibližnÄ› pÅ™ed {{count}} týdny',\n future: 'pÅ™ibližnÄ› za {{count}} týdny'\n },\n many: {\n regular: 'pÅ™ibližnÄ› {{count}} týdnů',\n past: 'pÅ™ibližnÄ› pÅ™ed {{count}} týdny',\n future: 'pÅ™ibližnÄ› za {{count}} týdnů'\n }\n },\n xWeeks: {\n one: {\n regular: 'týden',\n past: 'pÅ™ed týdnem',\n future: 'za týden'\n },\n few: {\n regular: '{{count}} týdny',\n past: 'pÅ™ed {{count}} týdny',\n future: 'za {{count}} týdny'\n },\n many: {\n regular: '{{count}} týdnů',\n past: 'pÅ™ed {{count}} týdny',\n future: 'za {{count}} týdnů'\n }\n },\n aboutXMonths: {\n one: {\n regular: 'pÅ™ibližnÄ› mÄ›sÃc',\n past: 'pÅ™ibližnÄ› pÅ™ed mÄ›sÃcem',\n future: 'pÅ™ibližnÄ› za mÄ›sÃc'\n },\n few: {\n regular: 'pÅ™ibližnÄ› {{count}} mÄ›sÃce',\n past: 'pÅ™ibližnÄ› pÅ™ed {{count}} mÄ›sÃci',\n future: 'pÅ™ibližnÄ› za {{count}} mÄ›sÃce'\n },\n many: {\n regular: 'pÅ™ibližnÄ› {{count}} mÄ›sÃců',\n past: 'pÅ™ibližnÄ› pÅ™ed {{count}} mÄ›sÃci',\n future: 'pÅ™ibližnÄ› za {{count}} mÄ›sÃců'\n }\n },\n xMonths: {\n one: {\n regular: 'mÄ›sÃc',\n past: 'pÅ™ed mÄ›sÃcem',\n future: 'za mÄ›sÃc'\n },\n few: {\n regular: '{{count}} mÄ›sÃce',\n past: 'pÅ™ed {{count}} mÄ›sÃci',\n future: 'za {{count}} mÄ›sÃce'\n },\n many: {\n regular: '{{count}} mÄ›sÃců',\n past: 'pÅ™ed {{count}} mÄ›sÃci',\n future: 'za {{count}} mÄ›sÃců'\n }\n },\n aboutXYears: {\n one: {\n regular: 'pÅ™ibližnÄ› rok',\n past: 'pÅ™ibližnÄ› pÅ™ed rokem',\n future: 'pÅ™ibližnÄ› za rok'\n },\n few: {\n regular: 'pÅ™ibližnÄ› {{count}} roky',\n past: 'pÅ™ibližnÄ› pÅ™ed {{count}} roky',\n future: 'pÅ™ibližnÄ› za {{count}} roky'\n },\n many: {\n regular: 'pÅ™ibližnÄ› {{count}} roků',\n past: 'pÅ™ibližnÄ› pÅ™ed {{count}} roky',\n future: 'pÅ™ibližnÄ› za {{count}} roků'\n }\n },\n xYears: {\n one: {\n regular: 'rok',\n past: 'pÅ™ed rokem',\n future: 'za rok'\n },\n few: {\n regular: '{{count}} roky',\n past: 'pÅ™ed {{count}} roky',\n future: 'za {{count}} roky'\n },\n many: {\n regular: '{{count}} roků',\n past: 'pÅ™ed {{count}} roky',\n future: 'za {{count}} roků'\n }\n },\n overXYears: {\n one: {\n regular: 'vÃce než rok',\n past: 'pÅ™ed vÃce než rokem',\n future: 'za vÃce než rok'\n },\n few: {\n regular: 'vÃce než {{count}} roky',\n past: 'pÅ™ed vÃce než {{count}} roky',\n future: 'za vÃce než {{count}} roky'\n },\n many: {\n regular: 'vÃce než {{count}} roků',\n past: 'pÅ™ed vÃce než {{count}} roky',\n future: 'za vÃce než {{count}} roků'\n }\n },\n almostXYears: {\n one: {\n regular: 'skoro rok',\n past: 'skoro pÅ™ed rokem',\n future: 'skoro za rok'\n },\n few: {\n regular: 'skoro {{count}} roky',\n past: 'skoro pÅ™ed {{count}} roky',\n future: 'skoro za {{count}} roky'\n },\n many: {\n regular: 'skoro {{count}} roků',\n past: 'skoro pÅ™ed {{count}} roky',\n future: 'skoro za {{count}} roků'\n }\n }\n};\nexport default function formatDistance(token, count, options) {\n options = options || {};\n var scheme = formatDistanceLocale[token]; // cs pluralization\n\n var pluralToken;\n\n if (typeof scheme.other === 'object') {\n pluralToken = 'other';\n } else if (count === 1) {\n pluralToken = 'one';\n } else if (count > 1 && count < 5 || count === 0) {\n pluralToken = 'few';\n } else {\n pluralToken = 'many';\n } // times\n\n\n var suffixExist = options.addSuffix === true;\n var comparison = options.comparison;\n var timeToken;\n\n if (suffixExist && comparison === -1) {\n timeToken = 'past';\n } else if (suffixExist && comparison === 1) {\n timeToken = 'future';\n } else {\n timeToken = 'regular';\n }\n\n return scheme[pluralToken][timeToken].replace('{{count}}', count);\n}","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE, d. MMMM yyyy',\n long: 'd. MMMM yyyy',\n medium: 'd. M. yyyy',\n short: 'dd.MM.yyyy'\n};\nvar timeFormats = {\n full: 'H:mm:ss zzzz',\n long: 'H:mm:ss z',\n medium: 'H:mm:ss',\n short: 'H:mm'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'v' {{time}}\",\n long: \"{{date}} 'v' {{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 accusativeWeekdays = ['nedÄ›li', 'pondÄ›lÃ', 'úterý', 'stÅ™edu', 'Ätvrtek', 'pátek', 'sobotu'];\nvar formatRelativeLocale = {\n lastWeek: \"'poslednÃ' eeee 've' p\",\n yesterday: \"'vÄera v' p\",\n today: \"'dnes v' p\",\n tomorrow: \"'zÃtra v' p\",\n nextWeek: function nextWeek(date, _baseDate, _options) {\n var day = date.getUTCDay();\n return \"'v \" + accusativeWeekdays[day] + \" o' p\";\n },\n other: 'P'\n};\nexport default function formatRelative(token, date, baseDate, options) {\n var format = formatRelativeLocale[token];\n\n if (typeof format === 'function') {\n return format(date, baseDate, options);\n }\n\n return format;\n}","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['pÅ™. n. l.', 'n. l.'],\n abbreviated: ['pÅ™. n. l.', 'n. l.'],\n wide: ['pÅ™ed naÅ¡Ãm letopoÄtem', 'naÅ¡eho letopoÄtu']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['1. ÄtvrtletÃ', '2. ÄtvrtletÃ', '3. ÄtvrtletÃ', '4. ÄtvrtletÃ'],\n wide: ['1. ÄtvrtletÃ', '2. ÄtvrtletÃ', '3. ÄtvrtletÃ', '4. ÄtvrtletÃ']\n};\nvar monthValues = {\n narrow: ['L', 'Ú', 'B', 'D', 'K', 'ÄŒ', 'ÄŒ', 'S', 'Z', 'Ř', 'L', 'P'],\n abbreviated: ['led', 'úno', 'bÅ™e', 'dub', 'kvÄ›', 'Ävn', 'Ävc', 'srp', 'zář', 'Å™Ãj', 'lis', 'pro'],\n wide: ['leden', 'únor', 'bÅ™ezen', 'duben', 'kvÄ›ten', 'Äerven', 'Äervenec', 'srpen', 'zářÃ', 'Å™Ãjen', 'listopad', 'prosinec']\n};\nvar formattingMonthValues = {\n narrow: ['L', 'Ú', 'B', 'D', 'K', 'ÄŒ', 'ÄŒ', 'S', 'Z', 'Ř', 'L', 'P'],\n abbreviated: ['led', 'úno', 'bÅ™e', 'dub', 'kvÄ›', 'Ävn', 'Ävc', 'srp', 'zář', 'Å™Ãj', 'lis', 'pro'],\n wide: ['ledna', 'února', 'bÅ™ezna', 'dubna', 'kvÄ›tna', 'Äervna', 'Äervence', 'srpna', 'zářÃ', 'Å™Ãjna', 'listopadu', 'prosince']\n};\nvar dayValues = {\n narrow: ['ne', 'po', 'út', 'st', 'Ät', 'pá', 'so'],\n short: ['ne', 'po', 'út', 'st', 'Ät', 'pá', 'so'],\n abbreviated: ['ned', 'pon', 'úte', 'stÅ™', 'Ätv', 'pát', 'sob'],\n wide: ['nedÄ›le', 'pondÄ›lÃ', 'úterý', 'stÅ™eda', 'Ätvrtek', 'pátek', 'sobota']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'dop.',\n pm: 'odp.',\n midnight: 'půlnoc',\n noon: 'poledne',\n morning: 'ráno',\n afternoon: 'odpoledne',\n evening: 'veÄer',\n night: 'noc'\n },\n abbreviated: {\n am: 'dop.',\n pm: 'odp.',\n midnight: 'půlnoc',\n noon: 'poledne',\n morning: 'ráno',\n afternoon: 'odpoledne',\n evening: 'veÄer',\n night: 'noc'\n },\n wide: {\n am: 'dopoledne',\n pm: 'odpoledne',\n midnight: 'půlnoc',\n noon: 'poledne',\n morning: 'ráno',\n afternoon: 'odpoledne',\n evening: 'veÄer',\n night: 'noc'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'dop.',\n pm: 'odp.',\n midnight: 'půlnoc',\n noon: 'poledne',\n morning: 'ráno',\n afternoon: 'odpoledne',\n evening: 'veÄer',\n night: 'noc'\n },\n abbreviated: {\n am: 'dop.',\n pm: 'odp.',\n midnight: 'půlnoc',\n noon: 'poledne',\n morning: 'ráno',\n afternoon: 'odpoledne',\n evening: 'veÄer',\n night: 'noc'\n },\n wide: {\n am: 'dopoledne',\n pm: 'odpoledne',\n midnight: 'půlnoc',\n noon: 'poledne',\n morning: 'ráno',\n afternoon: 'odpoledne',\n evening: 'veÄer',\n night: 'noc'\n }\n};\n\nfunction ordinalNumber(dirtyNumber) {\n var number = Number(dirtyNumber);\n return number + '.';\n}\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 Number(quarter) - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide',\n formattingValues: formattingMonthValues,\n defaultFormattingWidth: '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;","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 Czech locale.\n * @language Czech\n * @iso-639-2 ces\n * @author David Rus [@davidrus]{@link https://github.com/davidrus}\n * @author Pavel Hrách [@SilenY]{@link https://github.com/SilenY}\n * @author Jozef BÃroÅ¡ [@JozefBiros]{@link https://github.com/JozefBiros}\n */\n\nvar locale = {\n code: 'cs',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 4\n }\n};\nexport default locale;","import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)\\.?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(p[Å™r]ed Kr\\.|pred n\\. l\\.|po Kr\\.|n\\. l\\.)/i,\n abbreviated: /^(pe[Å™r]ed Kr\\.|pe[Å™r]ed n\\. l\\.|po Kr\\.|n\\. l\\.)/i,\n wide: /^(p[Å™r]ed Kristem|pred na[Å¡s][Ãi]m letopo[Äc]tem|po Kristu|na[Å¡s]eho letopo[Äc]tu)/i\n};\nvar parseEraPatterns = {\n any: [/^p[Å™r]/i, /^(po|n)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^[1234]\\. [Äc]tvrtlet[Ãi]/i,\n wide: /^[1234]\\. [Äc]tvrtlet[Ãi]/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[lúubdkÄcszÅ™rlp]/i,\n abbreviated: /^(led|[úu]no|b[Å™r]e|dub|kv[Ä›e]|[Äc]vn|[Äc]vc|srp|z[áa][Å™r]|[Å™r][Ãi]j|lis|pro)/i,\n wide: /^(leden|ledna|[úu]nora?|b[Å™r]ezen|b[Å™r]ezna|duben|dubna|kv[Ä›e]ten|kv[Ä›e]tna|[Äc]erven(ec|ce)?|[Äc]ervna|srpen|srpna|z[áa][Å™r][Ãi]|[Å™r][Ãi]jen|[Å™r][Ãi]jna|listopad(a|u)?|prosinec|prosince)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^l/i, /^[úu]/i, /^b/i, /^d/i, /^k/i, /^[Äc]/i, /^[Äc]/i, /^s/i, /^z/i, /^[Å™r]/i, /^l/i, /^p/i],\n any: [/^led/i, /^[úu]n/i, /^b[Å™r]e/i, /^dub/i, /^kv[Ä›e]/i, /^[Äc]vn|[Äc]erven(?!\\w)|[Äc]ervna/i, /^[Äc]vc|[Äc]erven(ec|ce)/i, /^srp/i, /^z[áa][Å™r]/i, /^[Å™r][Ãi]j/i, /^lis/i, /^pro/i]\n};\nvar matchDayPatterns = {\n narrow: /^[npuúsÄps]/i,\n short: /^(ne|po|[úu]t|st|[Äc]t|p[áa]|so)/i,\n abbreviated: /^(ne|po|[úu]t|st|[Äc]t|p[áa]|so)/i,\n wide: /^(ned[Ä›e]le|pond[Ä›e]l[Ãi]|[úu]ter[ýy]|st[Å™r]eda|[Äc]tvrtek|p[áa]tek|sobota)/i\n};\nvar parseDayPatterns = {\n narrow: [/^n/i, /^p/i, /^[úu]/i, /^s/i, /^[Äc]/i, /^p/i, /^s/i],\n any: [/^ne/i, /^po/i, /^ut/i, /^st/i, /^[Äc]t/i, /^p/i, /^so/i]\n};\nvar matchDayPeriodPatterns = {\n any: /^dopoledne|dop\\.?|odpoledne|odp\\.?|půlnoc|poledne|r[áa]no|odpoledne|ve[Äc]er|(v )?noci/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^dop/i,\n pm: /^odp/i,\n midnight: /^p[ůu]lnoc/i,\n noon: /^poledne/i,\n morning: /r[áa]no/i,\n afternoon: /odpoledne/i,\n evening: /ve[Äc]er/i,\n night: /noc/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;","'use strict';\n\nexports.__esModule = true;\nexports.registerDefaultHelpers = registerDefaultHelpers;\nexports.moveHelperToHooks = moveHelperToHooks; // istanbul ignore next\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n 'default': obj\n };\n}\n\nvar _helpersBlockHelperMissing = require('./helpers/block-helper-missing');\n\nvar _helpersBlockHelperMissing2 = _interopRequireDefault(_helpersBlockHelperMissing);\n\nvar _helpersEach = require('./helpers/each');\n\nvar _helpersEach2 = _interopRequireDefault(_helpersEach);\n\nvar _helpersHelperMissing = require('./helpers/helper-missing');\n\nvar _helpersHelperMissing2 = _interopRequireDefault(_helpersHelperMissing);\n\nvar _helpersIf = require('./helpers/if');\n\nvar _helpersIf2 = _interopRequireDefault(_helpersIf);\n\nvar _helpersLog = require('./helpers/log');\n\nvar _helpersLog2 = _interopRequireDefault(_helpersLog);\n\nvar _helpersLookup = require('./helpers/lookup');\n\nvar _helpersLookup2 = _interopRequireDefault(_helpersLookup);\n\nvar _helpersWith = require('./helpers/with');\n\nvar _helpersWith2 = _interopRequireDefault(_helpersWith);\n\nfunction registerDefaultHelpers(instance) {\n _helpersBlockHelperMissing2['default'](instance);\n\n _helpersEach2['default'](instance);\n\n _helpersHelperMissing2['default'](instance);\n\n _helpersIf2['default'](instance);\n\n _helpersLog2['default'](instance);\n\n _helpersLookup2['default'](instance);\n\n _helpersWith2['default'](instance);\n}\n\nfunction moveHelperToHooks(instance, helperName, keepHelper) {\n if (instance.helpers[helperName]) {\n instance.hooks[helperName] = instance.helpers[helperName];\n\n if (!keepHelper) {\n delete instance.helpers[helperName];\n }\n }\n}","'use strict';\n\nexports.__esModule = true;\n\nvar _utils = require('./utils');\n\nvar logger = {\n methodMap: ['debug', 'info', 'warn', 'error'],\n level: 'info',\n // Maps a given level value to the `methodMap` indexes above.\n lookupLevel: function lookupLevel(level) {\n if (typeof level === 'string') {\n var levelMap = _utils.indexOf(logger.methodMap, level.toLowerCase());\n\n if (levelMap >= 0) {\n level = levelMap;\n } else {\n level = parseInt(level, 10);\n }\n }\n\n return level;\n },\n // Can be overridden in the host environment\n log: function log(level) {\n level = logger.lookupLevel(level);\n\n if (typeof console !== 'undefined' && logger.lookupLevel(logger.level) <= level) {\n var method = logger.methodMap[level]; // eslint-disable-next-line no-console\n\n if (!console[method]) {\n method = 'log';\n }\n\n for (var _len = arguments.length, message = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n message[_key - 1] = arguments[_key];\n }\n\n console[method].apply(console, message); // eslint-disable-line no-console\n }\n }\n};\nexports['default'] = logger;\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports.createProtoAccessControl = createProtoAccessControl;\nexports.resultIsAllowed = resultIsAllowed;\nexports.resetLoggedProperties = resetLoggedProperties; // istanbul ignore next\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];\n }\n }\n\n newObj['default'] = obj;\n return newObj;\n }\n}\n\nvar _createNewLookupObject = require('./create-new-lookup-object');\n\nvar _logger = require('../logger');\n\nvar logger = _interopRequireWildcard(_logger);\n\nvar loggedProperties = Object.create(null);\n\nfunction createProtoAccessControl(runtimeOptions) {\n var defaultMethodWhiteList = Object.create(null);\n defaultMethodWhiteList['constructor'] = false;\n defaultMethodWhiteList['__defineGetter__'] = false;\n defaultMethodWhiteList['__defineSetter__'] = false;\n defaultMethodWhiteList['__lookupGetter__'] = false;\n var defaultPropertyWhiteList = Object.create(null); // eslint-disable-next-line no-proto\n\n defaultPropertyWhiteList['__proto__'] = false;\n return {\n properties: {\n whitelist: _createNewLookupObject.createNewLookupObject(defaultPropertyWhiteList, runtimeOptions.allowedProtoProperties),\n defaultValue: runtimeOptions.allowProtoPropertiesByDefault\n },\n methods: {\n whitelist: _createNewLookupObject.createNewLookupObject(defaultMethodWhiteList, runtimeOptions.allowedProtoMethods),\n defaultValue: runtimeOptions.allowProtoMethodsByDefault\n }\n };\n}\n\nfunction resultIsAllowed(result, protoAccessControl, propertyName) {\n if (typeof result === 'function') {\n return checkWhiteList(protoAccessControl.methods, propertyName);\n } else {\n return checkWhiteList(protoAccessControl.properties, propertyName);\n }\n}\n\nfunction checkWhiteList(protoAccessControlForType, propertyName) {\n if (protoAccessControlForType.whitelist[propertyName] !== undefined) {\n return protoAccessControlForType.whitelist[propertyName] === true;\n }\n\n if (protoAccessControlForType.defaultValue !== undefined) {\n return protoAccessControlForType.defaultValue;\n }\n\n logUnexpecedPropertyAccessOnce(propertyName);\n return false;\n}\n\nfunction logUnexpecedPropertyAccessOnce(propertyName) {\n if (loggedProperties[propertyName] !== true) {\n loggedProperties[propertyName] = true;\n logger.log('error', 'Handlebars: Access has been denied to resolve the property \"' + propertyName + '\" because it is not an \"own property\" of its parent.\\n' + 'You can add a runtime option to disable the check or this warning:\\n' + 'See https://handlebarsjs.com/api-reference/runtime-options.html#options-to-control-prototype-access for details');\n }\n}\n\nfunction resetLoggedProperties() {\n Object.keys(loggedProperties).forEach(function (propertyName) {\n delete loggedProperties[propertyName];\n });\n}","'use strict';\n\nexports.__esModule = true;\n\nexports['default'] = function (Handlebars) {\n /* istanbul ignore next */\n var root = typeof global !== 'undefined' ? global : window,\n $Handlebars = root.Handlebars;\n /* istanbul ignore next */\n\n Handlebars.noConflict = function () {\n if (root.Handlebars === Handlebars) {\n root.Handlebars = $Handlebars;\n }\n\n return Handlebars;\n };\n};\n\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nvar AST = {\n // Public API used to evaluate derived attributes regarding AST nodes\n helpers: {\n // a mustache is definitely a helper if:\n // * it is an eligible helper, and\n // * it has at least one parameter or hash segment\n helperExpression: function helperExpression(node) {\n return node.type === 'SubExpression' || (node.type === 'MustacheStatement' || node.type === 'BlockStatement') && !!(node.params && node.params.length || node.hash);\n },\n scopedId: function scopedId(path) {\n return /^\\.|this\\b/.test(path.original);\n },\n // an ID is simple if it only has one part, and that part is not\n // `..` or `this`.\n simpleId: function simpleId(path) {\n return path.parts.length === 1 && !AST.helpers.scopedId(path) && !path.depth;\n }\n }\n}; // Must be exported as an object rather than the root of the module as the jison lexer\n// must modify the object to operate properly.\n\nexports['default'] = AST;\nmodule.exports = exports['default'];","// @noflow\nimport BREAKPOINTS from '@/components/theme/breakpoints.sass'\n\ndeclare type Breakpoints = {\n xs: number\n sm: number\n md: number\n lg: number\n xl: number\n}\n\nexport default ((): Breakpoints =>\n Object.fromEntries(\n Object.entries(BREAKPOINTS).map(([key, value]) => [\n key,\n parseInt(value.replace('px', ''))\n ])\n ) as Breakpoints)()\n","'use strict';\n\nexports.__esModule = true; // istanbul ignore next\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n 'default': obj\n };\n}\n\nvar _exception = require('../exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nfunction Visitor() {\n this.parents = [];\n}\n\nVisitor.prototype = {\n constructor: Visitor,\n mutating: false,\n // Visits a given value. If mutating, will replace the value if necessary.\n acceptKey: function acceptKey(node, name) {\n var value = this.accept(node[name]);\n\n if (this.mutating) {\n // Hacky sanity check: This may have a few false positives for type for the helper\n // methods but will generally do the right thing without a lot of overhead.\n if (value && !Visitor.prototype[value.type]) {\n throw new _exception2['default']('Unexpected node type \"' + value.type + '\" found when accepting ' + name + ' on ' + node.type);\n }\n\n node[name] = value;\n }\n },\n // Performs an accept operation with added sanity check to ensure\n // required keys are not removed.\n acceptRequired: function acceptRequired(node, name) {\n this.acceptKey(node, name);\n\n if (!node[name]) {\n throw new _exception2['default'](node.type + ' requires ' + name);\n }\n },\n // Traverses a given array. If mutating, empty respnses will be removed\n // for child elements.\n acceptArray: function acceptArray(array) {\n for (var i = 0, l = array.length; i < l; i++) {\n this.acceptKey(array, i);\n\n if (!array[i]) {\n array.splice(i, 1);\n i--;\n l--;\n }\n }\n },\n accept: function accept(object) {\n if (!object) {\n return;\n }\n /* istanbul ignore next: Sanity code */\n\n\n if (!this[object.type]) {\n throw new _exception2['default']('Unknown type: ' + object.type, object);\n }\n\n if (this.current) {\n this.parents.unshift(this.current);\n }\n\n this.current = object;\n var ret = this[object.type](object);\n this.current = this.parents.shift();\n\n if (!this.mutating || ret) {\n return ret;\n } else if (ret !== false) {\n return object;\n }\n },\n Program: function Program(program) {\n this.acceptArray(program.body);\n },\n MustacheStatement: visitSubExpression,\n Decorator: visitSubExpression,\n BlockStatement: visitBlock,\n DecoratorBlock: visitBlock,\n PartialStatement: visitPartial,\n PartialBlockStatement: function PartialBlockStatement(partial) {\n visitPartial.call(this, partial);\n this.acceptKey(partial, 'program');\n },\n ContentStatement: function ContentStatement()\n /* content */\n {},\n CommentStatement: function CommentStatement()\n /* comment */\n {},\n SubExpression: visitSubExpression,\n PathExpression: function PathExpression()\n /* path */\n {},\n StringLiteral: function StringLiteral()\n /* string */\n {},\n NumberLiteral: function NumberLiteral()\n /* number */\n {},\n BooleanLiteral: function BooleanLiteral()\n /* bool */\n {},\n UndefinedLiteral: function UndefinedLiteral()\n /* literal */\n {},\n NullLiteral: function NullLiteral()\n /* literal */\n {},\n Hash: function Hash(hash) {\n this.acceptArray(hash.pairs);\n },\n HashPair: function HashPair(pair) {\n this.acceptRequired(pair, 'value');\n }\n};\n\nfunction visitSubExpression(mustache) {\n this.acceptRequired(mustache, 'path');\n this.acceptArray(mustache.params);\n this.acceptKey(mustache, 'hash');\n}\n\nfunction visitBlock(block) {\n visitSubExpression.call(this, block);\n this.acceptKey(block, 'program');\n this.acceptKey(block, 'inverse');\n}\n\nfunction visitPartial(partial) {\n this.acceptRequired(partial, 'name');\n this.acceptArray(partial.params);\n this.acceptKey(partial, 'hash');\n}\n\nexports['default'] = Visitor;\nmodule.exports = exports['default'];","/**\n * Copyright 2016 Google Inc. All Rights Reserved.\n *\n * Licensed under the W3C SOFTWARE AND DOCUMENT NOTICE AND LICENSE.\n *\n * https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n *\n */\n(function () {\n 'use strict'; // Exit early if we're not running in a browser.\n\n if (typeof window !== 'object') {\n return;\n } // Exit early if all IntersectionObserver and IntersectionObserverEntry\n // features are natively supported.\n\n\n if ('IntersectionObserver' in window && 'IntersectionObserverEntry' in window && 'intersectionRatio' in window.IntersectionObserverEntry.prototype) {\n // Minimal polyfill for Edge 15's lack of `isIntersecting`\n // See: https://github.com/w3c/IntersectionObserver/issues/211\n if (!('isIntersecting' in window.IntersectionObserverEntry.prototype)) {\n Object.defineProperty(window.IntersectionObserverEntry.prototype, 'isIntersecting', {\n get: function get() {\n return this.intersectionRatio > 0;\n }\n });\n }\n\n return;\n }\n /**\n * Returns the embedding frame element, if any.\n * @param {!Document} doc\n * @return {!Element}\n */\n\n\n function getFrameElement(doc) {\n try {\n return doc.defaultView && doc.defaultView.frameElement || null;\n } catch (e) {\n // Ignore the error.\n return null;\n }\n }\n /**\n * A local reference to the root document.\n */\n\n\n var document = function (startDoc) {\n var doc = startDoc;\n var frame = getFrameElement(doc);\n\n while (frame) {\n doc = frame.ownerDocument;\n frame = getFrameElement(doc);\n }\n\n return doc;\n }(window.document);\n /**\n * An IntersectionObserver registry. This registry exists to hold a strong\n * reference to IntersectionObserver instances currently observing a target\n * element. Without this registry, instances without another reference may be\n * garbage collected.\n */\n\n\n var registry = [];\n /**\n * The signal updater for cross-origin intersection. When not null, it means\n * that the polyfill is configured to work in a cross-origin mode.\n * @type {function(DOMRect|ClientRect, DOMRect|ClientRect)}\n */\n\n var crossOriginUpdater = null;\n /**\n * The current cross-origin intersection. Only used in the cross-origin mode.\n * @type {DOMRect|ClientRect}\n */\n\n var crossOriginRect = null;\n /**\n * Creates the global IntersectionObserverEntry constructor.\n * https://w3c.github.io/IntersectionObserver/#intersection-observer-entry\n * @param {Object} entry A dictionary of instance properties.\n * @constructor\n */\n\n function IntersectionObserverEntry(entry) {\n this.time = entry.time;\n this.target = entry.target;\n this.rootBounds = ensureDOMRect(entry.rootBounds);\n this.boundingClientRect = ensureDOMRect(entry.boundingClientRect);\n this.intersectionRect = ensureDOMRect(entry.intersectionRect || getEmptyRect());\n this.isIntersecting = !!entry.intersectionRect; // Calculates the intersection ratio.\n\n var targetRect = this.boundingClientRect;\n var targetArea = targetRect.width * targetRect.height;\n var intersectionRect = this.intersectionRect;\n var intersectionArea = intersectionRect.width * intersectionRect.height; // Sets intersection ratio.\n\n if (targetArea) {\n // Round the intersection ratio to avoid floating point math issues:\n // https://github.com/w3c/IntersectionObserver/issues/324\n this.intersectionRatio = Number((intersectionArea / targetArea).toFixed(4));\n } else {\n // If area is zero and is intersecting, sets to 1, otherwise to 0\n this.intersectionRatio = this.isIntersecting ? 1 : 0;\n }\n }\n /**\n * Creates the global IntersectionObserver constructor.\n * https://w3c.github.io/IntersectionObserver/#intersection-observer-interface\n * @param {Function} callback The function to be invoked after intersection\n * changes have queued. The function is not invoked if the queue has\n * been emptied by calling the `takeRecords` method.\n * @param {Object=} opt_options Optional configuration options.\n * @constructor\n */\n\n\n function IntersectionObserver(callback, opt_options) {\n var options = opt_options || {};\n\n if (typeof callback != 'function') {\n throw new Error('callback must be a function');\n }\n\n if (options.root && options.root.nodeType != 1 && options.root.nodeType != 9) {\n throw new Error('root must be a Document or Element');\n } // Binds and throttles `this._checkForIntersections`.\n\n\n this._checkForIntersections = throttle(this._checkForIntersections.bind(this), this.THROTTLE_TIMEOUT); // Private properties.\n\n this._callback = callback;\n this._observationTargets = [];\n this._queuedEntries = [];\n this._rootMarginValues = this._parseRootMargin(options.rootMargin); // Public properties.\n\n this.thresholds = this._initThresholds(options.threshold);\n this.root = options.root || null;\n this.rootMargin = this._rootMarginValues.map(function (margin) {\n return margin.value + margin.unit;\n }).join(' ');\n /** @private @const {!Array<!Document>} */\n\n this._monitoringDocuments = [];\n /** @private @const {!Array<function()>} */\n\n this._monitoringUnsubscribes = [];\n }\n /**\n * The minimum interval within which the document will be checked for\n * intersection changes.\n */\n\n\n IntersectionObserver.prototype.THROTTLE_TIMEOUT = 100;\n /**\n * The frequency in which the polyfill polls for intersection changes.\n * this can be updated on a per instance basis and must be set prior to\n * calling `observe` on the first target.\n */\n\n IntersectionObserver.prototype.POLL_INTERVAL = null;\n /**\n * Use a mutation observer on the root element\n * to detect intersection changes.\n */\n\n IntersectionObserver.prototype.USE_MUTATION_OBSERVER = true;\n /**\n * Sets up the polyfill in the cross-origin mode. The result is the\n * updater function that accepts two arguments: `boundingClientRect` and\n * `intersectionRect` - just as these fields would be available to the\n * parent via `IntersectionObserverEntry`. This function should be called\n * each time the iframe receives intersection information from the parent\n * window, e.g. via messaging.\n * @return {function(DOMRect|ClientRect, DOMRect|ClientRect)}\n */\n\n IntersectionObserver._setupCrossOriginUpdater = function () {\n if (!crossOriginUpdater) {\n /**\n * @param {DOMRect|ClientRect} boundingClientRect\n * @param {DOMRect|ClientRect} intersectionRect\n */\n crossOriginUpdater = function crossOriginUpdater(boundingClientRect, intersectionRect) {\n if (!boundingClientRect || !intersectionRect) {\n crossOriginRect = getEmptyRect();\n } else {\n crossOriginRect = convertFromParentRect(boundingClientRect, intersectionRect);\n }\n\n registry.forEach(function (observer) {\n observer._checkForIntersections();\n });\n };\n }\n\n return crossOriginUpdater;\n };\n /**\n * Resets the cross-origin mode.\n */\n\n\n IntersectionObserver._resetCrossOriginUpdater = function () {\n crossOriginUpdater = null;\n crossOriginRect = null;\n };\n /**\n * Starts observing a target element for intersection changes based on\n * the thresholds values.\n * @param {Element} target The DOM element to observe.\n */\n\n\n IntersectionObserver.prototype.observe = function (target) {\n var isTargetAlreadyObserved = this._observationTargets.some(function (item) {\n return item.element == target;\n });\n\n if (isTargetAlreadyObserved) {\n return;\n }\n\n if (!(target && target.nodeType == 1)) {\n throw new Error('target must be an Element');\n }\n\n this._registerInstance();\n\n this._observationTargets.push({\n element: target,\n entry: null\n });\n\n this._monitorIntersections(target.ownerDocument);\n\n this._checkForIntersections();\n };\n /**\n * Stops observing a target element for intersection changes.\n * @param {Element} target The DOM element to observe.\n */\n\n\n IntersectionObserver.prototype.unobserve = function (target) {\n this._observationTargets = this._observationTargets.filter(function (item) {\n return item.element != target;\n });\n\n this._unmonitorIntersections(target.ownerDocument);\n\n if (this._observationTargets.length == 0) {\n this._unregisterInstance();\n }\n };\n /**\n * Stops observing all target elements for intersection changes.\n */\n\n\n IntersectionObserver.prototype.disconnect = function () {\n this._observationTargets = [];\n\n this._unmonitorAllIntersections();\n\n this._unregisterInstance();\n };\n /**\n * Returns any queue entries that have not yet been reported to the\n * callback and clears the queue. This can be used in conjunction with the\n * callback to obtain the absolute most up-to-date intersection information.\n * @return {Array} The currently queued entries.\n */\n\n\n IntersectionObserver.prototype.takeRecords = function () {\n var records = this._queuedEntries.slice();\n\n this._queuedEntries = [];\n return records;\n };\n /**\n * Accepts the threshold value from the user configuration object and\n * returns a sorted array of unique threshold values. If a value is not\n * between 0 and 1 and error is thrown.\n * @private\n * @param {Array|number=} opt_threshold An optional threshold value or\n * a list of threshold values, defaulting to [0].\n * @return {Array} A sorted list of unique and valid threshold values.\n */\n\n\n IntersectionObserver.prototype._initThresholds = function (opt_threshold) {\n var threshold = opt_threshold || [0];\n if (!Array.isArray(threshold)) threshold = [threshold];\n return threshold.sort().filter(function (t, i, a) {\n if (typeof t != 'number' || isNaN(t) || t < 0 || t > 1) {\n throw new Error('threshold must be a number between 0 and 1 inclusively');\n }\n\n return t !== a[i - 1];\n });\n };\n /**\n * Accepts the rootMargin value from the user configuration object\n * and returns an array of the four margin values as an object containing\n * the value and unit properties. If any of the values are not properly\n * formatted or use a unit other than px or %, and error is thrown.\n * @private\n * @param {string=} opt_rootMargin An optional rootMargin value,\n * defaulting to '0px'.\n * @return {Array<Object>} An array of margin objects with the keys\n * value and unit.\n */\n\n\n IntersectionObserver.prototype._parseRootMargin = function (opt_rootMargin) {\n var marginString = opt_rootMargin || '0px';\n var margins = marginString.split(/\\s+/).map(function (margin) {\n var parts = /^(-?\\d*\\.?\\d+)(px|%)$/.exec(margin);\n\n if (!parts) {\n throw new Error('rootMargin must be specified in pixels or percent');\n }\n\n return {\n value: parseFloat(parts[1]),\n unit: parts[2]\n };\n }); // Handles shorthand.\n\n margins[1] = margins[1] || margins[0];\n margins[2] = margins[2] || margins[0];\n margins[3] = margins[3] || margins[1];\n return margins;\n };\n /**\n * Starts polling for intersection changes if the polling is not already\n * happening, and if the page's visibility state is visible.\n * @param {!Document} doc\n * @private\n */\n\n\n IntersectionObserver.prototype._monitorIntersections = function (doc) {\n var win = doc.defaultView;\n\n if (!win) {\n // Already destroyed.\n return;\n }\n\n if (this._monitoringDocuments.indexOf(doc) != -1) {\n // Already monitoring.\n return;\n } // Private state for monitoring.\n\n\n var callback = this._checkForIntersections;\n var monitoringInterval = null;\n var domObserver = null; // If a poll interval is set, use polling instead of listening to\n // resize and scroll events or DOM mutations.\n\n if (this.POLL_INTERVAL) {\n monitoringInterval = win.setInterval(callback, this.POLL_INTERVAL);\n } else {\n addEvent(win, 'resize', callback, true);\n addEvent(doc, 'scroll', callback, true);\n\n if (this.USE_MUTATION_OBSERVER && 'MutationObserver' in win) {\n domObserver = new win.MutationObserver(callback);\n domObserver.observe(doc, {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true\n });\n }\n }\n\n this._monitoringDocuments.push(doc);\n\n this._monitoringUnsubscribes.push(function () {\n // Get the window object again. When a friendly iframe is destroyed, it\n // will be null.\n var win = doc.defaultView;\n\n if (win) {\n if (monitoringInterval) {\n win.clearInterval(monitoringInterval);\n }\n\n removeEvent(win, 'resize', callback, true);\n }\n\n removeEvent(doc, 'scroll', callback, true);\n\n if (domObserver) {\n domObserver.disconnect();\n }\n }); // Also monitor the parent.\n\n\n var rootDoc = this.root && (this.root.ownerDocument || this.root) || document;\n\n if (doc != rootDoc) {\n var frame = getFrameElement(doc);\n\n if (frame) {\n this._monitorIntersections(frame.ownerDocument);\n }\n }\n };\n /**\n * Stops polling for intersection changes.\n * @param {!Document} doc\n * @private\n */\n\n\n IntersectionObserver.prototype._unmonitorIntersections = function (doc) {\n var index = this._monitoringDocuments.indexOf(doc);\n\n if (index == -1) {\n return;\n }\n\n var rootDoc = this.root && (this.root.ownerDocument || this.root) || document; // Check if any dependent targets are still remaining.\n\n var hasDependentTargets = this._observationTargets.some(function (item) {\n var itemDoc = item.element.ownerDocument; // Target is in this context.\n\n if (itemDoc == doc) {\n return true;\n } // Target is nested in this context.\n\n\n while (itemDoc && itemDoc != rootDoc) {\n var frame = getFrameElement(itemDoc);\n itemDoc = frame && frame.ownerDocument;\n\n if (itemDoc == doc) {\n return true;\n }\n }\n\n return false;\n });\n\n if (hasDependentTargets) {\n return;\n } // Unsubscribe.\n\n\n var unsubscribe = this._monitoringUnsubscribes[index];\n\n this._monitoringDocuments.splice(index, 1);\n\n this._monitoringUnsubscribes.splice(index, 1);\n\n unsubscribe(); // Also unmonitor the parent.\n\n if (doc != rootDoc) {\n var frame = getFrameElement(doc);\n\n if (frame) {\n this._unmonitorIntersections(frame.ownerDocument);\n }\n }\n };\n /**\n * Stops polling for intersection changes.\n * @param {!Document} doc\n * @private\n */\n\n\n IntersectionObserver.prototype._unmonitorAllIntersections = function () {\n var unsubscribes = this._monitoringUnsubscribes.slice(0);\n\n this._monitoringDocuments.length = 0;\n this._monitoringUnsubscribes.length = 0;\n\n for (var i = 0; i < unsubscribes.length; i++) {\n unsubscribes[i]();\n }\n };\n /**\n * Scans each observation target for intersection changes and adds them\n * to the internal entries queue. If new entries are found, it\n * schedules the callback to be invoked.\n * @private\n */\n\n\n IntersectionObserver.prototype._checkForIntersections = function () {\n if (!this.root && crossOriginUpdater && !crossOriginRect) {\n // Cross origin monitoring, but no initial data available yet.\n return;\n }\n\n var rootIsInDom = this._rootIsInDom();\n\n var rootRect = rootIsInDom ? this._getRootRect() : getEmptyRect();\n\n this._observationTargets.forEach(function (item) {\n var target = item.element;\n var targetRect = getBoundingClientRect(target);\n\n var rootContainsTarget = this._rootContainsTarget(target);\n\n var oldEntry = item.entry;\n\n var intersectionRect = rootIsInDom && rootContainsTarget && this._computeTargetAndRootIntersection(target, targetRect, rootRect);\n\n var rootBounds = null;\n\n if (!this._rootContainsTarget(target)) {\n rootBounds = getEmptyRect();\n } else if (!crossOriginUpdater || this.root) {\n rootBounds = rootRect;\n }\n\n var newEntry = item.entry = new IntersectionObserverEntry({\n time: now(),\n target: target,\n boundingClientRect: targetRect,\n rootBounds: rootBounds,\n intersectionRect: intersectionRect\n });\n\n if (!oldEntry) {\n this._queuedEntries.push(newEntry);\n } else if (rootIsInDom && rootContainsTarget) {\n // If the new entry intersection ratio has crossed any of the\n // thresholds, add a new entry.\n if (this._hasCrossedThreshold(oldEntry, newEntry)) {\n this._queuedEntries.push(newEntry);\n }\n } else {\n // If the root is not in the DOM or target is not contained within\n // root but the previous entry for this target had an intersection,\n // add a new record indicating removal.\n if (oldEntry && oldEntry.isIntersecting) {\n this._queuedEntries.push(newEntry);\n }\n }\n }, this);\n\n if (this._queuedEntries.length) {\n this._callback(this.takeRecords(), this);\n }\n };\n /**\n * Accepts a target and root rect computes the intersection between then\n * following the algorithm in the spec.\n * TODO(philipwalton): at this time clip-path is not considered.\n * https://w3c.github.io/IntersectionObserver/#calculate-intersection-rect-algo\n * @param {Element} target The target DOM element\n * @param {Object} targetRect The bounding rect of the target.\n * @param {Object} rootRect The bounding rect of the root after being\n * expanded by the rootMargin value.\n * @return {?Object} The final intersection rect object or undefined if no\n * intersection is found.\n * @private\n */\n\n\n IntersectionObserver.prototype._computeTargetAndRootIntersection = function (target, targetRect, rootRect) {\n // If the element isn't displayed, an intersection can't happen.\n if (window.getComputedStyle(target).display == 'none') return;\n var intersectionRect = targetRect;\n var parent = getParentNode(target);\n var atRoot = false;\n\n while (!atRoot && parent) {\n var parentRect = null;\n var parentComputedStyle = parent.nodeType == 1 ? window.getComputedStyle(parent) : {}; // If the parent isn't displayed, an intersection can't happen.\n\n if (parentComputedStyle.display == 'none') return null;\n\n if (parent == this.root || parent.nodeType ==\n /* DOCUMENT */\n 9) {\n atRoot = true;\n\n if (parent == this.root || parent == document) {\n if (crossOriginUpdater && !this.root) {\n if (!crossOriginRect || crossOriginRect.width == 0 && crossOriginRect.height == 0) {\n // A 0-size cross-origin intersection means no-intersection.\n parent = null;\n parentRect = null;\n intersectionRect = null;\n } else {\n parentRect = crossOriginRect;\n }\n } else {\n parentRect = rootRect;\n }\n } else {\n // Check if there's a frame that can be navigated to.\n var frame = getParentNode(parent);\n var frameRect = frame && getBoundingClientRect(frame);\n\n var frameIntersect = frame && this._computeTargetAndRootIntersection(frame, frameRect, rootRect);\n\n if (frameRect && frameIntersect) {\n parent = frame;\n parentRect = convertFromParentRect(frameRect, frameIntersect);\n } else {\n parent = null;\n intersectionRect = null;\n }\n }\n } else {\n // If the element has a non-visible overflow, and it's not the <body>\n // or <html> element, update the intersection rect.\n // Note: <body> and <html> cannot be clipped to a rect that's not also\n // the document rect, so no need to compute a new intersection.\n var doc = parent.ownerDocument;\n\n if (parent != doc.body && parent != doc.documentElement && parentComputedStyle.overflow != 'visible') {\n parentRect = getBoundingClientRect(parent);\n }\n } // If either of the above conditionals set a new parentRect,\n // calculate new intersection data.\n\n\n if (parentRect) {\n intersectionRect = computeRectIntersection(parentRect, intersectionRect);\n }\n\n if (!intersectionRect) break;\n parent = parent && getParentNode(parent);\n }\n\n return intersectionRect;\n };\n /**\n * Returns the root rect after being expanded by the rootMargin value.\n * @return {ClientRect} The expanded root rect.\n * @private\n */\n\n\n IntersectionObserver.prototype._getRootRect = function () {\n var rootRect;\n\n if (this.root && !isDoc(this.root)) {\n rootRect = getBoundingClientRect(this.root);\n } else {\n // Use <html>/<body> instead of window since scroll bars affect size.\n var doc = isDoc(this.root) ? this.root : document;\n var html = doc.documentElement;\n var body = doc.body;\n rootRect = {\n top: 0,\n left: 0,\n right: html.clientWidth || body.clientWidth,\n width: html.clientWidth || body.clientWidth,\n bottom: html.clientHeight || body.clientHeight,\n height: html.clientHeight || body.clientHeight\n };\n }\n\n return this._expandRectByRootMargin(rootRect);\n };\n /**\n * Accepts a rect and expands it by the rootMargin value.\n * @param {DOMRect|ClientRect} rect The rect object to expand.\n * @return {ClientRect} The expanded rect.\n * @private\n */\n\n\n IntersectionObserver.prototype._expandRectByRootMargin = function (rect) {\n var margins = this._rootMarginValues.map(function (margin, i) {\n return margin.unit == 'px' ? margin.value : margin.value * (i % 2 ? rect.width : rect.height) / 100;\n });\n\n var newRect = {\n top: rect.top - margins[0],\n right: rect.right + margins[1],\n bottom: rect.bottom + margins[2],\n left: rect.left - margins[3]\n };\n newRect.width = newRect.right - newRect.left;\n newRect.height = newRect.bottom - newRect.top;\n return newRect;\n };\n /**\n * Accepts an old and new entry and returns true if at least one of the\n * threshold values has been crossed.\n * @param {?IntersectionObserverEntry} oldEntry The previous entry for a\n * particular target element or null if no previous entry exists.\n * @param {IntersectionObserverEntry} newEntry The current entry for a\n * particular target element.\n * @return {boolean} Returns true if a any threshold has been crossed.\n * @private\n */\n\n\n IntersectionObserver.prototype._hasCrossedThreshold = function (oldEntry, newEntry) {\n // To make comparing easier, an entry that has a ratio of 0\n // but does not actually intersect is given a value of -1\n var oldRatio = oldEntry && oldEntry.isIntersecting ? oldEntry.intersectionRatio || 0 : -1;\n var newRatio = newEntry.isIntersecting ? newEntry.intersectionRatio || 0 : -1; // Ignore unchanged ratios\n\n if (oldRatio === newRatio) return;\n\n for (var i = 0; i < this.thresholds.length; i++) {\n var threshold = this.thresholds[i]; // Return true if an entry matches a threshold or if the new ratio\n // and the old ratio are on the opposite sides of a threshold.\n\n if (threshold == oldRatio || threshold == newRatio || threshold < oldRatio !== threshold < newRatio) {\n return true;\n }\n }\n };\n /**\n * Returns whether or not the root element is an element and is in the DOM.\n * @return {boolean} True if the root element is an element and is in the DOM.\n * @private\n */\n\n\n IntersectionObserver.prototype._rootIsInDom = function () {\n return !this.root || containsDeep(document, this.root);\n };\n /**\n * Returns whether or not the target element is a child of root.\n * @param {Element} target The target element to check.\n * @return {boolean} True if the target element is a child of root.\n * @private\n */\n\n\n IntersectionObserver.prototype._rootContainsTarget = function (target) {\n var rootDoc = this.root && (this.root.ownerDocument || this.root) || document;\n return containsDeep(rootDoc, target) && (!this.root || rootDoc == target.ownerDocument);\n };\n /**\n * Adds the instance to the global IntersectionObserver registry if it isn't\n * already present.\n * @private\n */\n\n\n IntersectionObserver.prototype._registerInstance = function () {\n if (registry.indexOf(this) < 0) {\n registry.push(this);\n }\n };\n /**\n * Removes the instance from the global IntersectionObserver registry.\n * @private\n */\n\n\n IntersectionObserver.prototype._unregisterInstance = function () {\n var index = registry.indexOf(this);\n if (index != -1) registry.splice(index, 1);\n };\n /**\n * Returns the result of the performance.now() method or null in browsers\n * that don't support the API.\n * @return {number} The elapsed time since the page was requested.\n */\n\n\n function now() {\n return window.performance && performance.now && performance.now();\n }\n /**\n * Throttles a function and delays its execution, so it's only called at most\n * once within a given time period.\n * @param {Function} fn The function to throttle.\n * @param {number} timeout The amount of time that must pass before the\n * function can be called again.\n * @return {Function} The throttled function.\n */\n\n\n function throttle(fn, timeout) {\n var timer = null;\n return function () {\n if (!timer) {\n timer = setTimeout(function () {\n fn();\n timer = null;\n }, timeout);\n }\n };\n }\n /**\n * Adds an event handler to a DOM node ensuring cross-browser compatibility.\n * @param {Node} node The DOM node to add the event handler to.\n * @param {string} event The event name.\n * @param {Function} fn The event handler to add.\n * @param {boolean} opt_useCapture Optionally adds the even to the capture\n * phase. Note: this only works in modern browsers.\n */\n\n\n function addEvent(node, event, fn, opt_useCapture) {\n if (typeof node.addEventListener == 'function') {\n node.addEventListener(event, fn, opt_useCapture || false);\n } else if (typeof node.attachEvent == 'function') {\n node.attachEvent('on' + event, fn);\n }\n }\n /**\n * Removes a previously added event handler from a DOM node.\n * @param {Node} node The DOM node to remove the event handler from.\n * @param {string} event The event name.\n * @param {Function} fn The event handler to remove.\n * @param {boolean} opt_useCapture If the event handler was added with this\n * flag set to true, it should be set to true here in order to remove it.\n */\n\n\n function removeEvent(node, event, fn, opt_useCapture) {\n if (typeof node.removeEventListener == 'function') {\n node.removeEventListener(event, fn, opt_useCapture || false);\n } else if (typeof node.detatchEvent == 'function') {\n node.detatchEvent('on' + event, fn);\n }\n }\n /**\n * Returns the intersection between two rect objects.\n * @param {Object} rect1 The first rect.\n * @param {Object} rect2 The second rect.\n * @return {?Object|?ClientRect} The intersection rect or undefined if no\n * intersection is found.\n */\n\n\n function computeRectIntersection(rect1, rect2) {\n var top = Math.max(rect1.top, rect2.top);\n var bottom = Math.min(rect1.bottom, rect2.bottom);\n var left = Math.max(rect1.left, rect2.left);\n var right = Math.min(rect1.right, rect2.right);\n var width = right - left;\n var height = bottom - top;\n return width >= 0 && height >= 0 && {\n top: top,\n bottom: bottom,\n left: left,\n right: right,\n width: width,\n height: height\n } || null;\n }\n /**\n * Shims the native getBoundingClientRect for compatibility with older IE.\n * @param {Element} el The element whose bounding rect to get.\n * @return {DOMRect|ClientRect} The (possibly shimmed) rect of the element.\n */\n\n\n function getBoundingClientRect(el) {\n var rect;\n\n try {\n rect = el.getBoundingClientRect();\n } catch (err) {// Ignore Windows 7 IE11 \"Unspecified error\"\n // https://github.com/w3c/IntersectionObserver/pull/205\n }\n\n if (!rect) return getEmptyRect(); // Older IE\n\n if (!(rect.width && rect.height)) {\n rect = {\n top: rect.top,\n right: rect.right,\n bottom: rect.bottom,\n left: rect.left,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n }\n\n return rect;\n }\n /**\n * Returns an empty rect object. An empty rect is returned when an element\n * is not in the DOM.\n * @return {ClientRect} The empty rect.\n */\n\n\n function getEmptyRect() {\n return {\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n width: 0,\n height: 0\n };\n }\n /**\n * Ensure that the result has all of the necessary fields of the DOMRect.\n * Specifically this ensures that `x` and `y` fields are set.\n *\n * @param {?DOMRect|?ClientRect} rect\n * @return {?DOMRect}\n */\n\n\n function ensureDOMRect(rect) {\n // A `DOMRect` object has `x` and `y` fields.\n if (!rect || 'x' in rect) {\n return rect;\n } // A IE's `ClientRect` type does not have `x` and `y`. The same is the case\n // for internally calculated Rect objects. For the purposes of\n // `IntersectionObserver`, it's sufficient to simply mirror `left` and `top`\n // for these fields.\n\n\n return {\n top: rect.top,\n y: rect.top,\n bottom: rect.bottom,\n left: rect.left,\n x: rect.left,\n right: rect.right,\n width: rect.width,\n height: rect.height\n };\n }\n /**\n * Inverts the intersection and bounding rect from the parent (frame) BCR to\n * the local BCR space.\n * @param {DOMRect|ClientRect} parentBoundingRect The parent's bound client rect.\n * @param {DOMRect|ClientRect} parentIntersectionRect The parent's own intersection rect.\n * @return {ClientRect} The local root bounding rect for the parent's children.\n */\n\n\n function convertFromParentRect(parentBoundingRect, parentIntersectionRect) {\n var top = parentIntersectionRect.top - parentBoundingRect.top;\n var left = parentIntersectionRect.left - parentBoundingRect.left;\n return {\n top: top,\n left: left,\n height: parentIntersectionRect.height,\n width: parentIntersectionRect.width,\n bottom: top + parentIntersectionRect.height,\n right: left + parentIntersectionRect.width\n };\n }\n /**\n * Checks to see if a parent element contains a child element (including inside\n * shadow DOM).\n * @param {Node} parent The parent element.\n * @param {Node} child The child element.\n * @return {boolean} True if the parent node contains the child node.\n */\n\n\n function containsDeep(parent, child) {\n var node = child;\n\n while (node) {\n if (node == parent) return true;\n node = getParentNode(node);\n }\n\n return false;\n }\n /**\n * Gets the parent node of an element or its host element if the parent node\n * is a shadow root.\n * @param {Node} node The node whose parent to get.\n * @return {Node|null} The parent node or null if no parent exists.\n */\n\n\n function getParentNode(node) {\n var parent = node.parentNode;\n\n if (node.nodeType ==\n /* DOCUMENT */\n 9 && node != document) {\n // If this node is a document node, look for the embedding frame.\n return getFrameElement(node);\n } // If the parent has element that is assigned through shadow root slot\n\n\n if (parent && parent.assignedSlot) {\n parent = parent.assignedSlot.parentNode;\n }\n\n if (parent && parent.nodeType == 11 && parent.host) {\n // If the parent is a shadow root, return the host element.\n return parent.host;\n }\n\n return parent;\n }\n /**\n * Returns true if `node` is a Document.\n * @param {!Node} node\n * @returns {boolean}\n */\n\n\n function isDoc(node) {\n return node && node.nodeType === 9;\n } // Exposes the constructors globally.\n\n\n window.IntersectionObserver = IntersectionObserver;\n window.IntersectionObserverEntry = IntersectionObserverEntry;\n})();","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = getDisplayName;\n\nfunction getDisplayName(Component) {\n return Component.displayName || Component.name || (typeof Component === 'string' && Component.length > 0 ? Component : 'Unknown');\n}","// @noflow\nimport React from 'react'\nimport { useTranslation } from 'react-i18next'\n\nimport Image from '../../../Image/Image'\nimport { BreedSelectorVariant } from '../../BreedSelector'\n\ntype PopularBreed = {\n key: string\n number: number\n slug: string\n isPopular: true\n}\n\ntype NonPopularBreed = {\n key: string\n isPopular: false\n}\n\ntype Props = {\n selectedBreed: NonPopularBreed | PopularBreed\n namespace: string\n isPreWizardGuest: boolean\n variant: BreedSelectorVariant\n}\n\nconst BreedCard = ({\n selectedBreed,\n namespace,\n isPreWizardGuest,\n variant = BreedSelectorVariant.Generic\n}: Props): JSX.Element => {\n const { t } = useTranslation(namespace)\n\n return (\n <div\n id=\"matchedBreedCard\"\n className={`breed-card__animation-wrapper breed-card__wrapper`}\n >\n <div\n className={`breed-card__card ${\n variant === BreedSelectorVariant.Homepage\n ? 'breed-card__card--homepage'\n : ''\n }`}\n >\n {selectedBreed.isPopular ? (\n <div className=\"breed-card__matched-breed\">\n <div className=\"breed-card__matched-breed__image\">\n <Image\n alt=\"\"\n slug={selectedBreed.slug}\n image={{\n width: 90,\n height: 90,\n resizeMode: 'resize_to_fill'\n }}\n />\n </div>\n <div>\n <div className=\"breed-card__banner\">\n <p\n className=\"text-regular-16\"\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{\n __html: t(\n `breed_autocomplete.feedback.popular_breed_html${\n isPreWizardGuest ? '_pre_wizard_guest' : ''\n }`,\n {\n number: selectedBreed.number,\n sanitisedNamePlural: t(\n `models:breeds.${selectedBreed.key}.sanitised_name_plural`\n )\n }\n )\n }}\n />\n </div>\n </div>\n </div>\n ) : // Not most popular breed\n selectedBreed.key !== 'dalmatian' ? (\n <div className=\"breed-card__banner\">\n <p className=\"text-regular-16\">\n {t(\n selectedBreed.key === 'other'\n ? `breed_autocomplete.feedback.other_breed${\n isPreWizardGuest ? '_pre_wizard_guest' : ''\n }`\n : `breed_autocomplete.feedback.generic_breed${\n isPreWizardGuest ? '_pre_wizard_guest' : ''\n }`\n )}\n </p>\n </div>\n ) : (\n <p\n className=\"text-regular-16\"\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{\n __html: t(`breed_autocomplete.feedback.dalmatian_atomic`, {\n href: 'https://help.butternutbox.com/en/articles/119-dalmatians-and-butternut%20target= '\n })\n }}\n />\n )}\n </div>\n </div>\n )\n}\n\nexport default BreedCard\nexport type { PopularBreed, NonPopularBreed }\n","// @flow\n\nimport * as Sentry from '@/utils/sentry'\n\nimport type { Gender } from '../shared_types/rails_models/dogs'\nimport type { Language } from '@/packs/localisation'\n\ntype PossessivePronoun =\n | 'their'\n | 'her'\n | 'his'\n | 'hun'\n | 'haar'\n | 'zijn'\n | 'jego'\n | 'jej'\n | 'ich'\n | 'leur'\n | 'son'\n | 'sa'\n | 'ihre'\n | 'seine'\n | 'jejich'\n | 'jeho'\n | 'jejÃ'\n\ntype PronounContext =\n | 'female'\n | 'male'\n | 'plural'\n\ntype ToLocalisedSentenceParams = {|\n arr: Array<string>,\n lng?: string,\n oxfordComma?: boolean\n |}\n\n// Due to GraphQL Naming Rules, we're unable to use kebab-case to distinguish\n// languages with regional variation, i.e. nl vs nl-BE. However, i18next also\n// expects the use of kebab-case in order to make use of its built in features,\n// such as pluralisation which is heavily used across the codebase. As a\n// compromise, we store Flemish as nl_BE in the backend to satisfy GraphQL and\n// utilise nl-BE with i18next (see initialisation of i18n in localisation.ts).\n// This case handling here will ensure that any functions that may receive either\n// forms will be able to manage the logic by then returning `nl_BE`\n// Further reading:\n// https://graphql-rules.com/rules/naming\n// https://www.i18next.com/how-to/faq#how-should-the-language-codes-be-formatted\n\nconst lngStringToLngType = (lng: string): Language => {\n switch (lng) {\n case 'en': {\n return 'en'\n }\n case 'nl': {\n return 'nl'\n }\n case 'nl-BE':\n case 'nl_BE': {\n return 'nl_BE'\n }\n case 'pl': {\n return 'pl'\n }\n case 'pl-PL':\n case 'pl_PL': {\n return 'pl_PL'\n }\n case 'fr' : {\n return 'fr'\n }\n case 'de-DE':\n case 'de_DE': {\n return 'de_DE'\n }\n case 'cs-CZ':\n case 'cs_CZ': {\n return 'cs_CZ'\n }\n default: {\n Sentry.captureException(`Cannot run lngStringToLngType for ${lng}`)\n return 'en'\n }\n }\n}\n\nconst pronounContext = (genders: Array<Gender>, lng: string): PronounContext => {\n if (genders.length === 0) {\n Sentry.captureException('Invalid array to pronounContext - empty')\n return 'female'\n }\n // Because different language grammars treat groups of mixed gender differently,\n // we want to provide this context. For example, in English and Dutch, singular\n // pronouns are gender sensitive (he/she) and plural pronouns are not (they).\n // In languages like Spanish and French however, there are two forms of the plural\n // pronoun they (ellos/ellas) so we would need gender context in the plural form.\n const language = lngStringToLngType(lng)\n switch (language) {\n case 'en':\n case 'nl':\n case 'nl_BE':\n case 'pl':\n case 'pl_PL':\n case 'fr':\n case 'de_DE':\n case 'cs_CZ':\n if (genders.length > 1) {\n return 'plural'\n }\n return genders[0]\n default: {\n Sentry.captureException(`language ${lng} is not supported.`)\n return genders[0]\n }\n }\n}\n\nconst toLocalisedSentence = (params: ToLocalisedSentenceParams): string => {\n const { arr, lng } = params\n const oxfordComma = params.oxfordComma === undefined ? false : params.oxfordComma\n const language = lng ? lngStringToLngType(lng) : 'en'\n if (arr.length === 0) {\n Sentry.captureException('Invalid array to toSentence - empty')\n return ''\n }\n if (arr.length === 1) {\n return arr[0]\n } else if (arr.length === 2) {\n switch (language) {\n case 'en':\n return arr.join(' and ')\n case 'nl':\n case 'nl_BE':\n return arr.join(' en ')\n case 'pl':\n case 'pl_PL':\n return arr.join(' i ')\n case 'fr':\n return arr.join(' et ')\n case 'de_DE':\n return arr.join(' und ')\n case 'cs_CZ':\n return arr.join(' a ')\n default: {\n Sentry.captureException(`language ${language} is not supported.`)\n return arr.join(' and ')\n }\n }\n } else {\n const lastName = arr[arr.length - 1]\n const allButLastName = arr.slice(0, -1)\n switch (language) {\n case 'en':\n // eslint-disable-next-line i18next/no-literal-string\n return `${allButLastName.join(', ')}${oxfordComma ? ',' : ''} and ${lastName}`\n case 'nl':\n case 'nl_BE':\n // eslint-disable-next-line i18next/no-literal-string\n return `${allButLastName.join(', ')}${oxfordComma ? ',' : ''} en ${lastName}`\n case 'pl':\n case 'pl_PL':\n // eslint-disable-next-line i18next/no-literal-string\n return `${allButLastName.join(', ')}${oxfordComma ? ',' : ''} i ${lastName}`\n case 'fr':\n // eslint-disable-next-line i18next/no-literal-string\n return `${allButLastName.join(', ')}${oxfordComma ? ',' : ''} et ${lastName}`\n case 'de_DE':\n // eslint-disable-next-line i18next/no-literal-string\n return `${allButLastName.join(', ')}${oxfordComma ? ',' : ''} und ${lastName}`\n default: {\n Sentry.captureException(`language ${language} is not supported.`)\n // eslint-disable-next-line i18next/no-literal-string\n return `${allButLastName.join(', ')}${oxfordComma ? ',' : ''} and ${lastName}`\n }\n }\n }\n}\n\nconst possessive = (s: string, lng: Language = 'en'): string => {\n const language = lngStringToLngType(lng)\n if (s.length === 0) {\n Sentry.captureException('Invalid string to possessive - empty')\n return ''\n }\n switch (language) {\n case 'en': {\n // eslint-disable-next-line i18next/no-literal-string\n const suffix = s.endsWith('s') ? `'` : `'s`\n return `${s}${suffix}`\n }\n case 'nl':\n case 'nl_BE':\n case 'pl':\n case 'pl_PL':\n for (const i of 'aeiou') {\n // Note that this is not an exact rule since there are exceptions in Dutch. If a name\n // ends with a mute schwa (e), there would be no apostrophe. Identifying the vowel sound\n // would be almost impossible so we fall back to this more general rule.\n if (s.endsWith(i)) {\n // eslint-disable-next-line i18next/no-literal-string\n return `${s}'s`\n }\n }\n if (s.endsWith('s')) {\n return `${s}'`\n }\n // eslint-disable-next-line i18next/no-literal-string\n return `${s}s`\n case 'de_DE':\n // Only use an apostrophe then s when the name ends in s, ss, ß, tz, z, x\n if (/(s|ss|ß|tz|z|x)$/i.test(s)) {\n // eslint-disable-next-line i18next/no-literal-string\n return `${s}'s`\n }\n \n // In all other cases, just use s\n // eslint-disable-next-line i18next/no-literal-string\n return `${s}s`\n case 'fr':\n case 'cs_CZ':\n // These languages do not use apostrophes to indicate possession so we return just the possessor\n return `${s}`\n default:\n Sentry.captureException(`language ${lng} is not supported.`)\n return `${s}`\n }\n}\n\nconst possessivePronoun = (genders: Array<Gender>, language: Language = 'en'): PossessivePronoun => {\n /**\n * DEPRECATED\n *\n * This helper function should not be used. Provide pronoun context\n * (see pronounContext) into the localisation yml file insted\n */\n if (genders.length === 0) { throw new Error('Invalid array to possessivePronoun - empty') }\n if (genders.length > 1) {\n switch (language) {\n case 'nl':\n case 'nl_BE': {\n return 'hun'\n }\n case 'pl':\n case 'pl_PL': {\n return 'ich'\n }\n case 'fr': {\n return 'leur'\n }\n case 'de_DE': {\n return 'ihre'\n }\n case 'cs_CZ': {\n return 'jejich'\n }\n default: {\n return 'their'\n }\n }\n }\n switch (genders[0]) {\n case 'male': {\n switch (language) {\n case 'nl':\n case 'nl_BE': {\n return 'zijn'\n }\n case 'pl':\n case 'pl_PL': {\n return 'jego'\n }\n case 'fr': {\n return 'son'\n }\n case 'de_DE': {\n return 'seine'\n }\n case 'cs_CZ': {\n return 'jeho'\n }\n default: {\n return 'his'\n }\n }\n }\n case 'female': {\n switch (language) {\n case 'nl':\n case 'nl_BE': {\n return 'haar'\n }\n case 'pl':\n case 'pl_PL': {\n return 'jej'\n }\n case 'fr': {\n return 'sa'\n }\n case 'de_DE': {\n return 'ihre'\n }\n case 'cs_CZ': {\n return 'jejÃ'\n }\n default: {\n return 'her'\n }\n }\n }\n default: {\n (genders[0]: empty) // eslint-disable-line no-unused-expressions\n throw new Error(`possessivePronoun not implemented for ${genders[0]}`)\n }\n }\n}\n\nconst capitaliseFirstLetter = (word: string): string => {\n if (word.length === 0) {\n Sentry.captureException('Invalid string to capitaliseFirstLetter - empty')\n return ''\n }\n return `${word[0].toUpperCase()}${word.slice(1)}`\n}\n\n\n\nexport {\n toLocalisedSentence,\n possessive,\n possessivePronoun,\n capitaliseFirstLetter,\n pronounContext,\n lngStringToLngType\n}\n\nexport type {\n PossessivePronoun,\n PronounContext,\n ToLocalisedSentenceParams\n}\n","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = {\n noWobble: {\n stiffness: 170,\n damping: 26\n },\n // the default, if nothing provided\n gentle: {\n stiffness: 120,\n damping: 14\n },\n wobbly: {\n stiffness: 180,\n damping: 12\n },\n stiff: {\n stiffness: 210,\n damping: 20\n }\n};\nmodule.exports = exports[\"default\"];","import invariant from \"./invariant.mjs\";\nimport nodejsCustomInspectSymbol from \"./nodejsCustomInspectSymbol.mjs\";\n/**\n * The `defineInspect()` function defines `inspect()` prototype method as alias of `toJSON`\n */\n\nexport default function defineInspect(classObject) {\n var fn = classObject.prototype.toJSON;\n typeof fn === 'function' || invariant(0);\n classObject.prototype.inspect = fn; // istanbul ignore else (See: 'https://github.com/graphql/graphql-js/issues/2317')\n\n if (nodejsCustomInspectSymbol) {\n classObject.prototype[nodejsCustomInspectSymbol] = fn;\n }\n}","export default function invariant(condition, message) {\n var booleanCondition = Boolean(condition); // istanbul ignore else (See transformation done in './resources/inlineInvariant.js')\n\n if (!booleanCondition) {\n throw new Error(message != null ? message : 'Unexpected invariant triggered.');\n }\n}","import defineInspect from \"../jsutils/defineInspect.mjs\";\n/**\n * Contains a range of UTF-8 character offsets and token references that\n * identify the region of the source from which the AST derived.\n */\n\nexport var Location = /*#__PURE__*/function () {\n /**\n * The character offset at which this Node begins.\n */\n\n /**\n * The character offset at which this Node ends.\n */\n\n /**\n * The Token at which this Node begins.\n */\n\n /**\n * The Token at which this Node ends.\n */\n\n /**\n * The Source document the AST represents.\n */\n function Location(startToken, endToken, source) {\n this.start = startToken.start;\n this.end = endToken.end;\n this.startToken = startToken;\n this.endToken = endToken;\n this.source = source;\n }\n\n var _proto = Location.prototype;\n\n _proto.toJSON = function toJSON() {\n return {\n start: this.start,\n end: this.end\n };\n };\n\n return Location;\n}(); // Print a simplified form when appearing in `inspect` and `util.inspect`.\n\ndefineInspect(Location);\n/**\n * Represents a range of characters represented by a lexical token\n * within a Source.\n */\n\nexport var Token = /*#__PURE__*/function () {\n /**\n * The kind of Token.\n */\n\n /**\n * The character offset at which this Node begins.\n */\n\n /**\n * The character offset at which this Node ends.\n */\n\n /**\n * The 1-indexed line number on which this Token appears.\n */\n\n /**\n * The 1-indexed column number at which this Token begins.\n */\n\n /**\n * For non-punctuation tokens, represents the interpreted value of the token.\n */\n\n /**\n * Tokens exist as nodes in a double-linked-list amongst all tokens\n * including ignored tokens. <SOF> is always the first node and <EOF>\n * the last.\n */\n function Token(kind, start, end, line, column, prev, value) {\n this.kind = kind;\n this.start = start;\n this.end = end;\n this.line = line;\n this.column = column;\n this.value = value;\n this.prev = prev;\n this.next = null;\n }\n\n var _proto2 = Token.prototype;\n\n _proto2.toJSON = function toJSON() {\n return {\n kind: this.kind,\n value: this.value,\n line: this.line,\n column: this.column\n };\n };\n\n return Token;\n}(); // Print a simplified form when appearing in `inspect` and `util.inspect`.\n\ndefineInspect(Token);\n/**\n * @internal\n */\n\nexport function isNode(maybeNode) {\n return maybeNode != null && typeof maybeNode.kind === 'string';\n}\n/**\n * The list of all possible AST node types.\n */","module.exports = __webpack_public_path__ + \"media/crosses/close-4c7df5e0.svg\";","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}","// @noflow\nimport type { Language } from '@/packs/localisation'\nimport type { Locale as DateLocale } from 'date-fns'\nimport { cs, de, enGB, fr, nl, nlBE, pl } from 'date-fns/locale'\n\nimport { lngStringToLngType } from '@/utils/StringHelper'\n\nimport type {\n Code as CountryCode,\n Currency,\n CurrencySymbol\n} from '@/shared_types/rails_models/shipping_countries'\nimport { ensureNever } from '@/typescript/utils'\n\ntype Locale =\n | 'en-GB'\n | 'en-NI'\n | 'en-IE'\n | 'en-NL'\n | 'nl-NL'\n | 'nl-GB'\n | 'nl-IE'\n | 'nl-NI'\n | 'nl-BE'\n | 'pl-PL'\n | 'fr-BE'\n | 'de-DE'\n | 'cs-CZ'\n\ntype LocaleCurrency = {\n locale: Locale\n currency: Currency\n currencySymbol: CurrencySymbol\n}\n\nconst countryCodeToDefaultCurrency = (countryCode: CountryCode): Currency => {\n switch (countryCode) {\n case 'GB': {\n return 'GBP'\n }\n case 'NI': {\n return 'GBP'\n }\n case 'IE':\n case 'NL':\n case 'BE':\n case 'DE': {\n return 'EUR'\n }\n case 'PL': {\n return 'PLN'\n }\n case 'CZ': {\n return 'CZK'\n }\n default: {\n ensureNever(countryCode)\n throw new Error(\n `countryCodeToDefaultCurrency is not implemented for this countryCode, countryCode is: ${countryCode}`\n )\n }\n }\n}\n\nconst countryCodeToDefaultCurrencySymbol = (\n countryCode: CountryCode\n): CurrencySymbol => {\n switch (countryCode) {\n case 'GB': {\n return '£'\n }\n case 'NI': {\n return '£'\n }\n case 'IE':\n case 'NL':\n case 'BE':\n case 'DE': {\n return '€'\n }\n case 'PL': {\n return 'zÅ‚'\n }\n case 'CZ': {\n return 'KÄ'\n }\n default: {\n ensureNever(countryCode)\n throw new Error(\n `countryCodeToDefaultCurrencySymbol is not implemented for this countryCode, countryCode is: ${countryCode}`\n )\n }\n }\n}\n\nconst countryCodeToLocale = (\n countryCode: CountryCode,\n language: Language\n): Locale => {\n const sanitisedLanguageCode = lngStringToLngType(language)\n switch (sanitisedLanguageCode) {\n case 'nl_BE':\n return 'nl-BE'\n case 'pl_PL':\n return 'pl-PL'\n case 'de_DE':\n return 'de-DE'\n case 'cs_CZ':\n return 'cs-CZ'\n default:\n return `${language}-${countryCode}` as Locale\n }\n}\n\nconst countryCodeToLocaleCurrency = (\n shippingCountryCode: CountryCode,\n language: Language\n): LocaleCurrency => {\n const defaultCurrency = countryCodeToDefaultCurrency(shippingCountryCode)\n const defaultCurrencySymbol =\n countryCodeToDefaultCurrencySymbol(shippingCountryCode)\n\n const countryCode = shippingCountryCode\n\n if (!language)\n throw new Error(\n `countryCodeToLocaleCurrency is not implemented for this language, language is: ${language}`\n )\n\n const locale = countryCodeToLocale(countryCode, language)\n\n return {\n currency: defaultCurrency,\n currencySymbol: defaultCurrencySymbol,\n locale\n }\n}\n\nconst languageToSanitisedLocale = (\n shippingCountryCode: CountryCode,\n language: Language\n): string => {\n switch (language) {\n case 'nl_BE':\n return 'nl-BE'\n case 'pl_PL':\n return 'pl-PL'\n case 'de_DE':\n return 'de-DE'\n case 'cs_CZ':\n return 'cs-CZ'\n default:\n return `${language}-${shippingCountryCode}`\n }\n}\n\nconst localeToDateLocale = (\n shippingCountryCode: CountryCode,\n language: Language\n): DateLocale => {\n const sanitisedLanguageCode = lngStringToLngType(language)\n const locale = languageToSanitisedLocale(\n shippingCountryCode,\n sanitisedLanguageCode\n )\n switch (locale) {\n case 'en-GB':\n case 'en-NI':\n case 'en-IE':\n case 'en-NL':\n return enGB\n case 'nl-NL':\n case 'nl-GB':\n case 'nl-IE':\n case 'nl-NI':\n return nl\n case 'nl-BE':\n return nlBE\n case 'pl-PL':\n return pl\n case 'fr':\n case 'fr-BE':\n return fr\n case 'de':\n case 'de-DE':\n return de\n case 'cs-CZ':\n return cs\n default:\n return enGB\n }\n}\n\nconst countryCodeToPrivacyUrl = (countryCode: CountryCode): string => {\n switch (countryCode) {\n case 'GB':\n case 'NI':\n case 'IE':\n return '/privacy-policy-gb'\n case 'NL':\n return '/privacy-policy-nl'\n case 'BE':\n return '/privacy-policy-be'\n case 'PL':\n return '/privacy-policy-pl'\n case 'DE':\n return '/privacy-policy-de'\n case 'CZ':\n return '/privacy-policy-cz'\n default:\n return '/privacy-policy-gb'\n }\n}\n\nconst countrySpecificInstagramLink = (countryCode: CountryCode): string => {\n switch (countryCode) {\n case 'NL': {\n return 'https://www.instagram.com/butternutbox.nl/'\n }\n case 'BE': {\n return 'https://www.instagram.com/butternutbox.be/'\n }\n case 'PL':\n case 'CZ': {\n return 'https://www.instagram.com/psibufet/'\n }\n case 'DE': {\n return 'https://www.instagram.com/butternutbox.de/'\n }\n case 'GB':\n case 'IE':\n case 'NI': {\n return 'https://www.instagram.com/butternutbox'\n }\n default: {\n throw new Error(\n `countrySpecificInstagramLink is not implemented for ${countryCode}`\n )\n }\n }\n}\n\nconst countrySpecificFacebookLink = (countryCode: CountryCode): string => {\n switch (countryCode) {\n case 'IE': {\n return 'https://www.facebook.com/ButternutBox.ie/'\n }\n case 'NL': {\n return 'https://www.facebook.com/ButternutBox.nl/'\n }\n case 'BE': {\n return 'https://www.facebook.com/ButternutBox.be/'\n }\n case 'PL':\n case 'CZ': {\n return 'https://www.facebook.com/psibufet/'\n }\n case 'DE': {\n return 'https://www.facebook.com/profile.php?id=61556277572237'\n }\n case 'GB':\n case 'NI': {\n return 'https://www.facebook.com/ButternutBox/'\n }\n default: {\n throw new Error(\n `countrySpecificFacebookLink is not implemented for ${countryCode}`\n )\n }\n }\n}\n\nconst countrySpecificTikTokLink = (countryCode: CountryCode): string => {\n switch (countryCode) {\n case 'PL':\n case 'CZ': {\n return 'https://www.tiktok.com/@psibufet'\n }\n default: {\n return 'https://www.tiktok.com/@butternutbox'\n }\n }\n}\n\nexport type { Locale, LocaleCurrency }\nexport {\n countryCodeToLocaleCurrency,\n countryCodeToDefaultCurrencySymbol,\n countryCodeToDefaultCurrency,\n localeToDateLocale,\n countryCodeToPrivacyUrl,\n countrySpecificInstagramLink,\n countrySpecificFacebookLink,\n countrySpecificTikTokLink,\n countryCodeToLocale\n}\n","// @noflow\nimport classnames from 'classnames'\nimport Handlebars from 'handlebars'\nimport { TOptions } from 'i18next'\nimport React from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { Markup } from 'react-render-markup'\n\nimport STYLES from './Text.module.sass'\n\ntype AllowedElements =\n | 'p'\n | 'h1'\n | 'h2'\n | 'h3'\n | 'h4'\n | 'h5'\n | 'h6'\n | 'span'\n | 'div'\n | 'li'\n\n// Note: Display variants should only be 'brandBlue500' OR 'brandWhite'\ntype AllowedColours =\n | 'brandBlue100'\n | 'brandBlue200'\n | 'brandBlue300'\n | 'brandBlue400'\n | 'brandBlue500'\n | 'brandBlue600'\n | 'brandRed300'\n | 'brandRed400'\n | 'brandRed500'\n | 'brandRed600'\n | 'brandYellow100'\n | 'brandYellow300'\n | 'brandYellow600'\n | 'brandYellow700'\n | 'brandPink200'\n | 'brandPink400'\n | 'brandPink500'\n | 'brandWhite'\n | 'supportGreen300'\n | 'supportGreen400'\n | 'supportGreen500'\n | 'supportOrange300'\n | 'supportOrange400'\n | 'supportOrange500'\n | 'dangerRed300'\n | 'dangerRed500'\n | 'supportRed300'\n | 'supportRed500'\n | 'supportBlue300'\n | 'supportBlue500'\n | 'grey400'\n | 'shadowBlack'\n | 'cardboardBrown'\n\ntype AllowedAlignment = 'left' | 'right' | 'center'\n\ntype Props = {\n variant?: keyof typeof STYLES\n margin?: boolean\n element?: AllowedElements\n namespace?: string\n text: string | Array<string>\n translate?: boolean\n bold?: boolean\n variables?: TOptions\n colour?: AllowedColours\n align?: AllowedAlignment\n shouldScale?: boolean\n wonky?: boolean\n underline?: boolean\n hideOverflow?: boolean\n uppercase?: boolean\n strikeThrough?: boolean\n tight?: boolean\n dataTestId?: string\n hyphens?: boolean\n}\n\ntype InjectedTextProps = {\n children: Array<string>\n type: keyof typeof STYLES\n}\n\nconst allowedHtmlElement = ['strong', 'em', 'b', 'a', 'br', 'span', 'accent'] // strips all other elements\n\n// This allows us to add specific styling to certain word(s) in a string by\n// wrapping custom <accent> wrappers around them and declaring the style 'type'\n// with a class within the Text component stylesheet. See Storybook for examples\n// under 'With Underline'\nconst AccentText = ({ children, type }: InjectedTextProps) => {\n return <span className={STYLES[type]}>{children[0]}</span>\n}\n\nconst replace = {\n accent: AccentText\n}\n\nconst Text = ({\n variant = 'textRegular16',\n element = 'p',\n namespace = '',\n margin = true,\n text,\n translate = true,\n bold = false,\n variables = {},\n colour = 'brandBlue500',\n align,\n shouldScale = true,\n wonky = false,\n underline = false,\n hideOverflow = false,\n uppercase = false,\n strikeThrough = false,\n tight = false,\n dataTestId,\n hyphens = true\n}: Props): JSX.Element => {\n const { t } = useTranslation(namespace)\n const Element = element as keyof JSX.IntrinsicElements\n const translatedText = translate\n ? t(text, variables)\n : Handlebars.compile(text)(variables)\n\n const applyRotation = (text: string) => {\n return text\n .split('')\n .map((char, index) => {\n const rotateAngle = index % 2 === 0 ? '-5' : '5'\n const minWidth = char === ' ' ? 'min-width: 4px' : ''\n\n return `<span style=\"transform: rotate(${rotateAngle}deg); display: inline-flex; ${minWidth}\">${char}</span>`\n })\n .join('')\n }\n\n const textToDisplay = wonky ? applyRotation(translatedText) : translatedText\n\n const className = classnames({\n [STYLES.hyphens]: hyphens,\n [STYLES[variant]]: variant,\n [STYLES.nomargin]: !margin,\n [STYLES.bold]: bold,\n [STYLES.underline]: underline,\n [STYLES[colour]]: colour,\n [STYLES[`${align}Align` as keyof typeof STYLES]]: align,\n [STYLES.scale]: shouldScale,\n [STYLES.hideOverflow]: hideOverflow,\n [STYLES.uppercase]: uppercase,\n [STYLES.strikeThrough]: strikeThrough,\n [STYLES.tight]: tight\n })\n\n return (\n <Element data-testid={dataTestId} className={className}>\n <Markup\n allowed={allowedHtmlElement}\n markup={textToDisplay}\n replace={replace}\n />\n </Element>\n )\n}\n\nexport { Props, AllowedColours, AllowedAlignment }\nexport default Text\n","// @noflow\nimport initI18n, { Language } from '@/packs/localisation'\nimport { makeVar, useReactiveVar } from '@apollo/client'\nimport * as Sentry from '@sentry/browser'\nimport i18next from 'i18next'\nimport React, { useCallback } from 'react'\nimport ReactDOM from 'react-dom'\nimport { useTranslation } from 'react-i18next'\n\nimport { DiscountBasis } from '@/utils/butternutbox/discountCodes'\n\nimport BlogExitDiscountModal from '../components/shared/elements/BlogExitDiscountModal/BlogExitDiscountModal'\nimport { initCookieConsent } from '@/components/cookie_consent'\nimport TrustpilotWidget, {\n Theme,\n Variant\n} from '@/components/elements/atoms/TrustpilotWidget/TrustpilotWidget'\nimport TransitionalModal from '@/components/shared/TransitionalModal'\nimport { Button } from '@/components/shared/elements/Button/Button'\nimport Cta from '@/components/shared/elements/RoughCostCalculator/components/CTA'\nimport DogDetailsForm from '@/components/shared/elements/RoughCostCalculator/components/DogDetailsForm'\nimport Plan from '@/components/shared/elements/RoughCostCalculator/components/Plan'\n\nimport type { Code as CountryCode } from '@/shared_types/rails_models/shipping_countries'\n\nconst dataContainer = document.getElementById('blog-content-tag') as HTMLElement\n\nif (!dataContainer) {\n Sentry.captureException('Could not find #blog-content-tag')\n}\n\nconst { dataset } = dataContainer\nconst {\n language,\n shippingCountryCode,\n discountBasis,\n discountFirstPartValue,\n trustpilotBusinessUnitId\n} = dataset\n\nconst preferredLanguage = (language as Language) || 'en'\nconst countryCode = (shippingCountryCode as CountryCode) || 'GB'\n\nconst initLanguage = () => {\n if (!i18next.isInitialized) {\n initI18n(preferredLanguage)\n }\n}\n\nconst showRCCModalState = makeVar({\n visible: false\n})\n\nconst initDiscountModal = () => {\n const discountModalElement = document.getElementById('discount-modal')\n\n // The #discount-modal element is only rendered if the user is not logged in\n if (!discountModalElement) return\n\n const dataContainer = document.getElementById('discount-modal-content-tag')\n\n if (!dataContainer) {\n Sentry.captureException('Could not find #discount-modal-content-tag')\n return\n }\n\n const { dataset } = dataContainer\n const {\n discountCode,\n discountCopy,\n discountPercentage,\n funnelCompleted,\n shouldSeeBlogDiscountModalVariant\n } = dataset\n\n const shouldShowDiscountModal =\n discountCode &&\n discountCopy &&\n discountPercentage &&\n discountCode.length > 0\n\n const DiscountModalComponent = () => {\n const rccModal = useReactiveVar(showRCCModalState)\n\n return shouldShowDiscountModal && !rccModal.visible ? (\n <BlogExitDiscountModal\n discountCode={discountCode}\n discountCopy={discountCopy}\n discountPercentage={discountPercentage}\n funnelCompleted={funnelCompleted === 'true'}\n shouldSeeBlogDiscountModal={\n shouldSeeBlogDiscountModalVariant === 'true'\n }\n />\n ) : null\n }\n\n ReactDOM.render(<DiscountModalComponent />, discountModalElement)\n}\n\nconst RoughCostCalculatorModal = (): JSX.Element => {\n const namespace = 'homepage'\n const copyContext = 'rough_cost_calculator'\n const baseClass = 'rough-cost-calculator__cost-calculator'\n\n const showRCCModal = useReactiveVar(showRCCModalState)\n\n const closeRCCModal = useCallback((): void => {\n showRCCModalState({ visible: false })\n }, [])\n\n const { t } = useTranslation(namespace)\n\n return (\n <TransitionalModal\n showCloseButton\n modalIsOpen={showRCCModal.visible}\n closeModal={closeRCCModal}\n modalSize=\"medium\"\n transitionTypes={{ desktop: 'scale', mobile: 'bottom' }}\n extraClasses=\"rough-cost-calculator-modal__wrapper\"\n withBackdrop={false}\n >\n <div className={`${baseClass}__blog`}>\n <div className={`${baseClass}__card`}>\n <h3 className={`display-20 no-scale ${baseClass}__blog__title`}>\n {t(`${copyContext}.alternative_title`)}\n </h3>\n <DogDetailsForm />\n <div className={`${baseClass}__plan-row-alternative`}>\n <Plan\n description={t(`${copyContext}.fresh_butternut`)}\n planType=\"bowl\"\n copyContext={copyContext}\n namespace={namespace}\n preferredLanguage={preferredLanguage}\n discountBasis={discountBasis as DiscountBasis}\n discountValue={parseInt(discountFirstPartValue || '') || 0}\n shippingCountryCode={countryCode}\n align=\"center\"\n />\n </div>\n <div className=\"rough-cost-calculator-modal__cta\">\n <Cta\n namespace=\"blog\"\n text=\"rough_cost_calculator_cta\"\n screenIdentifier=\"blog\"\n />\n </div>\n {trustpilotBusinessUnitId && (\n <TrustpilotWidget\n businessUnitId={trustpilotBusinessUnitId}\n variant={Variant.Default}\n theme={Theme.Light}\n height=\"80\"\n width=\"100%\"\n />\n )}\n </div>\n </div>\n </TransitionalModal>\n )\n}\n\nconst initRoughCostCalculatorModal = (): void => {\n const roughCostCalculatorModalElement = document.getElementById(\n 'rough-cost-calculator-modal'\n )\n if (!roughCostCalculatorModalElement) return\n\n ReactDOM.render(<RoughCostCalculatorModal />, roughCostCalculatorModalElement)\n}\n\nconst StickyCTAComponent = (): JSX.Element | null => {\n const handleCTAClick = useCallback((): void => {\n showRCCModalState({ visible: true })\n }, [])\n\n return (\n <Button\n typography={{\n text: 'sticky_cta',\n namespace: 'blog'\n }}\n onClick={handleCTAClick}\n identifier=\"sticky_cta_rough_cost_calculator_modal\"\n screenIdentifier=\"blog\"\n fullWidth\n />\n )\n}\n\nconst initStickyCTA = (): void => {\n const stickyCTA = document.getElementById('sticky-cta')\n if (!stickyCTA) return\n\n ReactDOM.render(<StickyCTAComponent />, stickyCTA)\n}\n\nconst RoughCostCalculatorSidebar = (): JSX.Element | null => {\n const namespace = 'homepage'\n const copyContext = 'rough_cost_calculator'\n const baseClass = 'rough-cost-calculator__cost-calculator'\n\n const { t } = useTranslation(namespace)\n\n return (\n <div className={`${baseClass}__blog-sidebar`}>\n <div className={`${baseClass}__card ${baseClass}__blog-sidebar__card`}>\n <h3 className={`display-20 no-scale ${baseClass}__blog-sidebar__title`}>\n {t(`${copyContext}.alternative_title`)}\n </h3>\n <div className={`${baseClass}__plan-row-alternative`}>\n <Plan\n description={t(`${copyContext}.fresh_butternut`)}\n planType=\"bowl\"\n copyContext={copyContext}\n namespace={namespace}\n preferredLanguage={preferredLanguage}\n discountBasis={discountBasis as DiscountBasis}\n discountValue={parseInt(discountFirstPartValue || '') || 0}\n shippingCountryCode={countryCode}\n />\n </div>\n <DogDetailsForm fullWidth />\n <div className=\"rough-cost-calculator-sidebar__cta\">\n <Cta\n namespace=\"blog\"\n text=\"rough_cost_calculator_cta\"\n screenIdentifier=\"blog\"\n />\n </div>\n {trustpilotBusinessUnitId && (\n <TrustpilotWidget\n businessUnitId={trustpilotBusinessUnitId}\n variant={Variant.Default}\n theme={Theme.Light}\n height=\"80\"\n width=\"100%\"\n />\n )}\n </div>\n </div>\n )\n}\n\nconst initRoughCostCalculatorSidebar = (): void => {\n const roughCostCalculatorSidebarElement = document.getElementById(\n 'rough-cost-calculator-sidebar'\n )\n if (!roughCostCalculatorSidebarElement) return\n\n ReactDOM.render(\n <RoughCostCalculatorSidebar />,\n roughCostCalculatorSidebarElement\n )\n}\n\ndocument.addEventListener('DOMContentLoaded', () => {\n initLanguage()\n initCookieConsent()\n initDiscountModal()\n initRoughCostCalculatorModal()\n initStickyCTA()\n\n initRoughCostCalculatorSidebar()\n})\n","import { useEffect, useState } from 'react';\nexport function useReactiveVar(rv) {\n var value = rv();\n var setValue = useState(value)[1];\n useEffect(function () {\n var probablySameValue = rv();\n\n if (value !== probablySameValue) {\n setValue(probablySameValue);\n } else {\n return rv.onNextChange(setValue);\n }\n }, [value]);\n return value;\n}","// @flow\n\nimport type { Locale } from './countryCodeHelper'\n\ntype Currency =\n | 'GBP'\n | 'EUR'\n | 'PLN'\n | 'CZK'\n\ntype Options = {|\n currency: Currency,\n locale: Locale\n|}\n\n// Default currency and locale\nconst DEFAULT_CURRENCY: Currency = 'GBP'\nconst DEFAULT_LOCALE: Locale = 'en-GB'\n\nconst DEFAULT_OPTIONS: Options = {\n currency: DEFAULT_CURRENCY,\n locale: DEFAULT_LOCALE\n}\n\n/**\n * See the reference guide for `toLocaleString`:\n * developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toLocaleString\n *\n * eg: formatCurrencyWithDecimal(100) // £1.00\n */\nconst formatCurrencyWithDecimal = (\n n: number,\n { locale, currency }: Options = DEFAULT_OPTIONS\n): string => {\n return (n / 100).toLocaleString(\n locale,\n {\n style: 'currency',\n currency,\n maximumFractionDigits: 2\n }\n )\n}\n\n/**\n * See the reference guide for `toLocaleString`:\n * developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toLocaleString\n *\n * eg: formatCurrencyWithoutDecimal(100) // £1\n */\nconst formatCurrencyWithoutDecimal = (\n n: number,\n { locale, currency }: Options = DEFAULT_OPTIONS\n): string => {\n return (n / 100).toLocaleString(\n locale,\n {\n style: 'currency',\n currency,\n minimumFractionDigits: 0,\n maximumFractionDigits: 0\n }\n )\n}\n\n\nexport {\n formatCurrencyWithDecimal,\n formatCurrencyWithoutDecimal,\n}\n","import mergeArrays from './mergeArrays';\nexport default function checkNumberLength(nationalNumber, metadata) {\n return checkNumberLengthForType(nationalNumber, undefined, metadata);\n} // Checks whether a number is possible for the country based on its length.\n// Should only be called for the \"new\" metadata which has \"possible lengths\".\n\nexport function checkNumberLengthForType(nationalNumber, type, metadata) {\n var type_info = metadata.type(type); // There should always be \"<possiblePengths/>\" set for every type element.\n // This is declared in the XML schema.\n // For size efficiency, where a sub-description (e.g. fixed-line)\n // has the same \"<possiblePengths/>\" as the \"general description\", this is missing,\n // so we fall back to the \"general description\". Where no numbers of the type\n // exist at all, there is one possible length (-1) which is guaranteed\n // not to match the length of any real phone number.\n\n var possible_lengths = type_info && type_info.possibleLengths() || metadata.possibleLengths(); // let local_lengths = type_info && type.possibleLengthsLocal() || metadata.possibleLengthsLocal()\n // Metadata before version `1.0.18` didn't contain `possible_lengths`.\n\n if (!possible_lengths) {\n return 'IS_POSSIBLE';\n }\n\n if (type === 'FIXED_LINE_OR_MOBILE') {\n // No such country in metadata.\n\n /* istanbul ignore next */\n if (!metadata.type('FIXED_LINE')) {\n // The rare case has been encountered where no fixedLine data is available\n // (true for some non-geographic entities), so we just check mobile.\n return checkNumberLengthForType(nationalNumber, 'MOBILE', metadata);\n }\n\n var mobile_type = metadata.type('MOBILE');\n\n if (mobile_type) {\n // Merge the mobile data in if there was any. \"Concat\" creates a new\n // array, it doesn't edit possible_lengths in place, so we don't need a copy.\n // Note that when adding the possible lengths from mobile, we have\n // to again check they aren't empty since if they are this indicates\n // they are the same as the general desc and should be obtained from there.\n possible_lengths = mergeArrays(possible_lengths, mobile_type.possibleLengths()); // The current list is sorted; we need to merge in the new list and\n // re-sort (duplicates are okay). Sorting isn't so expensive because\n // the lists are very small.\n // if (local_lengths) {\n // \tlocal_lengths = mergeArrays(local_lengths, mobile_type.possibleLengthsLocal())\n // } else {\n // \tlocal_lengths = mobile_type.possibleLengthsLocal()\n // }\n }\n } // If the type doesn't exist then return 'INVALID_LENGTH'.\n else if (type && !type_info) {\n return 'INVALID_LENGTH';\n }\n\n var actual_length = nationalNumber.length; // In `libphonenumber-js` all \"local-only\" formats are dropped for simplicity.\n // // This is safe because there is never an overlap beween the possible lengths\n // // and the local-only lengths; this is checked at build time.\n // if (local_lengths && local_lengths.indexOf(nationalNumber.length) >= 0)\n // {\n // \treturn 'IS_POSSIBLE_LOCAL_ONLY'\n // }\n\n var minimum_length = possible_lengths[0];\n\n if (minimum_length === actual_length) {\n return 'IS_POSSIBLE';\n }\n\n if (minimum_length > actual_length) {\n return 'TOO_SHORT';\n }\n\n if (possible_lengths[possible_lengths.length - 1] < actual_length) {\n return 'TOO_LONG';\n } // We skip the first element since we've already checked it.\n\n\n return possible_lengths.indexOf(actual_length, 1) >= 0 ? 'IS_POSSIBLE' : 'INVALID_LENGTH';\n}","/**\r\n * Merges two arrays.\r\n * @param {*} a\r\n * @param {*} b\r\n * @return {*}\r\n */\nexport default function mergeArrays(a, b) {\n var merged = a.slice();\n\n for (var _iterator = b, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {\n var _ref;\n\n if (_isArray) {\n if (_i >= _iterator.length) break;\n _ref = _iterator[_i++];\n } else {\n _i = _iterator.next();\n if (_i.done) break;\n _ref = _i.value;\n }\n\n var element = _ref;\n\n if (a.indexOf(element) < 0) {\n merged.push(element);\n }\n }\n\n return merged.sort(function (a, b) {\n return a - b;\n }); // ES6 version, requires Set polyfill.\n // let merged = new Set(a)\n // for (const element of b) {\n // \tmerged.add(i)\n // }\n // return Array.from(merged).sort((a, b) => a - b)\n}","// @noflow\n\ntype Route =\n | '/plans/recipes'\n | '/plans/plan'\n | '/plans/extras'\n | '/plans/review'\n\nconst Recipes: Route = '/plans/recipes'\nconst Plan: Route = '/plans/plan'\nconst Extras: Route = '/plans/extras'\nconst Review: Route = '/plans/review'\n\nconst PlansRoutes = {\n Recipes,\n Plan,\n Extras,\n Review\n}\n\nexport type { Route, PlansRoutes }\n\nexport default PlansRoutes\n","// @flow\n\n// eslint-disable-next-line\n// $FlowFixMe\nclass Formatter {\n static capitalizeFirstLetter (word: string): string {\n return word[0].toUpperCase() + word.slice(1)\n }\n\n static possessiveName (name: string): string {\n // eslint-disable-next-line quotes\n const suffix = name.endsWith('s') ? '\\'' : '\\'s'\n return `${name}${suffix}`\n }\n\n static removeWhiteSpace(str: string): string {\n // eslint-disable-next-line\n return str.replace(RegExp(' ', 'g'), '')\n }\n}\n\nexport default Formatter\n","// @flow\n\nimport { useState, useEffect } from 'react'\n\ntype WindowSize = {|\n windowWidth: number,\n windowHeight: number\n|}\n\n/**\n * A window size custom hook that can spy window resize changes.\n *\n * Destructuring showed in the example below is optional, you can\n * use returning value in form of an object or optinally pick only width or\n * height.\n *\n * Don't forget that hooks can only be called inside of the body of a\n * function component.\n *\n * Example usage\n * import useWindowSize from '@/hooks/useWindowSize'\n *\n * And inside of the body of a function component\n * const { windowWidth, windowHeight } = useWindowSize()\n */\n\nconst useWindowSize = (): WindowSize => {\n const isClient = typeof window === 'object'\n\n const getSize = (): WindowSize => ({\n windowWidth: window.innerWidth,\n windowHeight: window.innerHeight\n })\n\n const [windowSize, setWindowSize] = useState(getSize())\n\n useEffect((): (() => void) | void => {\n const handleResize = (): void => {\n setWindowSize(getSize())\n }\n\n window.addEventListener('resize', handleResize)\n\n if (isClient) {\n return (): void => window.removeEventListener('resize', handleResize)\n }\n }, [isClient])\n\n return {\n windowWidth: windowSize.windowWidth,\n windowHeight: windowSize.windowHeight\n }\n}\n\nexport default useWindowSize\n","import { __assign } from \"tslib\";\nimport { compact } from \"./compact.js\";\nexport function mergeOptions(defaults, options) {\n return compact(defaults, options, options.variables && {\n variables: __assign(__assign({}, defaults && defaults.variables), options.variables)\n });\n}","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n/**\n * Return true if `value` is object-like. A value is object-like if it's not\n * `null` and has a `typeof` result of \"object\".\n */\n\n\nexport default function isObjectLike(value) {\n return _typeof(value) == 'object' && value !== null;\n}","/**\n * Represents a location in a Source.\n */\n\n/**\n * Takes a Source and a UTF-8 character offset, and returns the corresponding\n * line and column as a SourceLocation.\n */\nexport function getLocation(source, position) {\n var lineRegexp = /\\r\\n|[\\n\\r]/g;\n var line = 1;\n var column = position + 1;\n var match;\n\n while ((match = lineRegexp.exec(source.body)) && match.index < position) {\n line += 1;\n column = position + 1 - (match.index + match[0].length);\n }\n\n return {\n line: line,\n column: column\n };\n}","import { getLocation } from \"./location.mjs\";\n/**\n * Render a helpful description of the location in the GraphQL Source document.\n */\n\nexport function printLocation(location) {\n return printSourceLocation(location.source, getLocation(location.source, location.start));\n}\n/**\n * Render a helpful description of the location in the GraphQL Source document.\n */\n\nexport function printSourceLocation(source, sourceLocation) {\n var firstLineColumnOffset = source.locationOffset.column - 1;\n var body = whitespace(firstLineColumnOffset) + source.body;\n var lineIndex = sourceLocation.line - 1;\n var lineOffset = source.locationOffset.line - 1;\n var lineNum = sourceLocation.line + lineOffset;\n var columnOffset = sourceLocation.line === 1 ? firstLineColumnOffset : 0;\n var columnNum = sourceLocation.column + columnOffset;\n var locationStr = \"\".concat(source.name, \":\").concat(lineNum, \":\").concat(columnNum, \"\\n\");\n var lines = body.split(/\\r\\n|[\\n\\r]/g);\n var locationLine = lines[lineIndex]; // Special case for minified documents\n\n if (locationLine.length > 120) {\n var subLineIndex = Math.floor(columnNum / 80);\n var subLineColumnNum = columnNum % 80;\n var subLines = [];\n\n for (var i = 0; i < locationLine.length; i += 80) {\n subLines.push(locationLine.slice(i, i + 80));\n }\n\n return locationStr + printPrefixedLines([[\"\".concat(lineNum), subLines[0]]].concat(subLines.slice(1, subLineIndex + 1).map(function (subLine) {\n return ['', subLine];\n }), [[' ', whitespace(subLineColumnNum - 1) + '^'], ['', subLines[subLineIndex + 1]]]));\n }\n\n return locationStr + printPrefixedLines([// Lines specified like this: [\"prefix\", \"string\"],\n [\"\".concat(lineNum - 1), lines[lineIndex - 1]], [\"\".concat(lineNum), locationLine], ['', whitespace(columnNum - 1) + '^'], [\"\".concat(lineNum + 1), lines[lineIndex + 1]]]);\n}\n\nfunction printPrefixedLines(lines) {\n var existingLines = lines.filter(function (_ref) {\n var _ = _ref[0],\n line = _ref[1];\n return line !== undefined;\n });\n var padLen = Math.max.apply(Math, existingLines.map(function (_ref2) {\n var prefix = _ref2[0];\n return prefix.length;\n }));\n return existingLines.map(function (_ref3) {\n var prefix = _ref3[0],\n line = _ref3[1];\n return leftPad(padLen, prefix) + (line ? ' | ' + line : ' |');\n }).join('\\n');\n}\n\nfunction whitespace(len) {\n return Array(len + 1).join(' ');\n}\n\nfunction leftPad(len, str) {\n return whitespace(len - str.length) + str;\n}","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\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 _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !_isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return _construct(Class, arguments, _getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return _setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}\n\nfunction _construct(Parent, args, Class) {\n if (_isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) _setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nimport isObjectLike from \"../jsutils/isObjectLike.mjs\";\nimport { SYMBOL_TO_STRING_TAG } from \"../polyfills/symbols.mjs\";\nimport { getLocation } from \"../language/location.mjs\";\nimport { printLocation, printSourceLocation } from \"../language/printLocation.mjs\";\n/**\n * A GraphQLError describes an Error found during the parse, validate, or\n * execute phases of performing a GraphQL operation. In addition to a message\n * and stack trace, it also includes information about the locations in a\n * GraphQL document and/or execution result that correspond to the Error.\n */\n\nexport var GraphQLError = /*#__PURE__*/function (_Error) {\n _inherits(GraphQLError, _Error);\n\n var _super = _createSuper(GraphQLError);\n /**\n * An array of { line, column } locations within the source GraphQL document\n * which correspond to this error.\n *\n * Errors during validation often contain multiple locations, for example to\n * point out two things with the same name. Errors during execution include a\n * single location, the field which produced the error.\n *\n * Enumerable, and appears in the result of JSON.stringify().\n */\n\n /**\n * An array describing the JSON-path into the execution response which\n * corresponds to this error. Only included for errors during execution.\n *\n * Enumerable, and appears in the result of JSON.stringify().\n */\n\n /**\n * An array of GraphQL AST Nodes corresponding to this error.\n */\n\n /**\n * The source GraphQL document for the first location of this error.\n *\n * Note that if this Error represents more than one node, the source may not\n * represent nodes after the first node.\n */\n\n /**\n * An array of character offsets within the source GraphQL document\n * which correspond to this error.\n */\n\n /**\n * The original error thrown from a field resolver during execution.\n */\n\n /**\n * Extension fields to add to the formatted error.\n */\n\n\n function GraphQLError(message, nodes, source, positions, path, originalError, extensions) {\n var _nodeLocations, _nodeLocations2, _nodeLocations3;\n\n var _this;\n\n _classCallCheck(this, GraphQLError);\n\n _this = _super.call(this, message);\n _this.name = 'GraphQLError';\n _this.originalError = originalError !== null && originalError !== void 0 ? originalError : undefined; // Compute list of blame nodes.\n\n _this.nodes = undefinedIfEmpty(Array.isArray(nodes) ? nodes : nodes ? [nodes] : undefined);\n var nodeLocations = [];\n\n for (var _i2 = 0, _ref3 = (_this$nodes = _this.nodes) !== null && _this$nodes !== void 0 ? _this$nodes : []; _i2 < _ref3.length; _i2++) {\n var _this$nodes;\n\n var _ref4 = _ref3[_i2];\n var loc = _ref4.loc;\n\n if (loc != null) {\n nodeLocations.push(loc);\n }\n }\n\n nodeLocations = undefinedIfEmpty(nodeLocations); // Compute locations in the source for the given nodes/positions.\n\n _this.source = source !== null && source !== void 0 ? source : (_nodeLocations = nodeLocations) === null || _nodeLocations === void 0 ? void 0 : _nodeLocations[0].source;\n _this.positions = positions !== null && positions !== void 0 ? positions : (_nodeLocations2 = nodeLocations) === null || _nodeLocations2 === void 0 ? void 0 : _nodeLocations2.map(function (loc) {\n return loc.start;\n });\n _this.locations = positions && source ? positions.map(function (pos) {\n return getLocation(source, pos);\n }) : (_nodeLocations3 = nodeLocations) === null || _nodeLocations3 === void 0 ? void 0 : _nodeLocations3.map(function (loc) {\n return getLocation(loc.source, loc.start);\n });\n _this.path = path !== null && path !== void 0 ? path : undefined;\n var originalExtensions = originalError === null || originalError === void 0 ? void 0 : originalError.extensions;\n\n if (extensions == null && isObjectLike(originalExtensions)) {\n _this.extensions = _objectSpread({}, originalExtensions);\n } else {\n _this.extensions = extensions !== null && extensions !== void 0 ? extensions : {};\n } // By being enumerable, JSON.stringify will include bellow properties in the resulting output.\n // This ensures that the simplest possible GraphQL service adheres to the spec.\n\n\n Object.defineProperties(_assertThisInitialized(_this), {\n message: {\n enumerable: true\n },\n locations: {\n enumerable: _this.locations != null\n },\n path: {\n enumerable: _this.path != null\n },\n extensions: {\n enumerable: _this.extensions != null && Object.keys(_this.extensions).length > 0\n },\n name: {\n enumerable: false\n },\n nodes: {\n enumerable: false\n },\n source: {\n enumerable: false\n },\n positions: {\n enumerable: false\n },\n originalError: {\n enumerable: false\n }\n }); // Include (non-enumerable) stack trace.\n\n if (originalError !== null && originalError !== void 0 && originalError.stack) {\n Object.defineProperty(_assertThisInitialized(_this), 'stack', {\n value: originalError.stack,\n writable: true,\n configurable: true\n });\n return _possibleConstructorReturn(_this);\n } // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2317')\n\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(_assertThisInitialized(_this), GraphQLError);\n } else {\n Object.defineProperty(_assertThisInitialized(_this), 'stack', {\n value: Error().stack,\n writable: true,\n configurable: true\n });\n }\n\n return _this;\n }\n\n _createClass(GraphQLError, [{\n key: \"toString\",\n value: function toString() {\n return printError(this);\n } // FIXME: workaround to not break chai comparisons, should be remove in v16\n // $FlowFixMe[unsupported-syntax] Flow doesn't support computed properties yet\n\n }, {\n key: SYMBOL_TO_STRING_TAG,\n get: function get() {\n return 'Object';\n }\n }]);\n\n return GraphQLError;\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n\nfunction undefinedIfEmpty(array) {\n return array === undefined || array.length === 0 ? undefined : array;\n}\n/**\n * Prints a GraphQLError to a string, representing useful location information\n * about the error's position in the source.\n */\n\n\nexport function printError(error) {\n var output = error.message;\n\n if (error.nodes) {\n for (var _i4 = 0, _error$nodes2 = error.nodes; _i4 < _error$nodes2.length; _i4++) {\n var node = _error$nodes2[_i4];\n\n if (node.loc) {\n output += '\\n\\n' + printLocation(node.loc);\n }\n }\n } else if (error.source && error.locations) {\n for (var _i6 = 0, _error$locations2 = error.locations; _i6 < _error$locations2.length; _i6++) {\n var location = _error$locations2[_i6];\n output += '\\n\\n' + printSourceLocation(error.source, location);\n }\n }\n\n return output;\n}","import { GraphQLError } from \"./GraphQLError.mjs\";\n/**\n * Produces a GraphQLError representing a syntax error, containing useful\n * descriptive information about the syntax error's position in the source.\n */\n\nexport function syntaxError(source, position, description) {\n return new GraphQLError(\"Syntax Error: \".concat(description), undefined, source, [position]);\n}","/**\n * An exported enum describing the different kinds of tokens that the\n * lexer emits.\n */\nexport var TokenKind = Object.freeze({\n SOF: '<SOF>',\n EOF: '<EOF>',\n BANG: '!',\n DOLLAR: '$',\n AMP: '&',\n PAREN_L: '(',\n PAREN_R: ')',\n SPREAD: '...',\n COLON: ':',\n EQUALS: '=',\n AT: '@',\n BRACKET_L: '[',\n BRACKET_R: ']',\n BRACE_L: '{',\n PIPE: '|',\n BRACE_R: '}',\n NAME: 'Name',\n INT: 'Int',\n FLOAT: 'Float',\n STRING: 'String',\n BLOCK_STRING: 'BlockString',\n COMMENT: 'Comment'\n});\n/**\n * The enum type representing the token kinds values.\n */","/**\n * The set of allowed directive location values.\n */\nexport var DirectiveLocation = Object.freeze({\n // Request Definitions\n QUERY: 'QUERY',\n MUTATION: 'MUTATION',\n SUBSCRIPTION: 'SUBSCRIPTION',\n FIELD: 'FIELD',\n FRAGMENT_DEFINITION: 'FRAGMENT_DEFINITION',\n FRAGMENT_SPREAD: 'FRAGMENT_SPREAD',\n INLINE_FRAGMENT: 'INLINE_FRAGMENT',\n VARIABLE_DEFINITION: 'VARIABLE_DEFINITION',\n // Type System Definitions\n SCHEMA: 'SCHEMA',\n SCALAR: 'SCALAR',\n OBJECT: 'OBJECT',\n FIELD_DEFINITION: 'FIELD_DEFINITION',\n ARGUMENT_DEFINITION: 'ARGUMENT_DEFINITION',\n INTERFACE: 'INTERFACE',\n UNION: 'UNION',\n ENUM: 'ENUM',\n ENUM_VALUE: 'ENUM_VALUE',\n INPUT_OBJECT: 'INPUT_OBJECT',\n INPUT_FIELD_DEFINITION: 'INPUT_FIELD_DEFINITION'\n});\n/**\n * The enum type representing the directive location values.\n */","import { syntaxError } from \"../error/syntaxError.mjs\";\nimport { Token } from \"./ast.mjs\";\nimport { TokenKind } from \"./tokenKind.mjs\";\nimport { dedentBlockStringValue } from \"./blockString.mjs\";\n/**\n * Given a Source object, creates a Lexer for that source.\n * A Lexer is a stateful stream generator in that every time\n * it is advanced, it returns the next token in the Source. Assuming the\n * source lexes, the final Token emitted by the lexer will be of kind\n * EOF, after which the lexer will repeatedly return the same EOF token\n * whenever called.\n */\n\nexport var Lexer = /*#__PURE__*/function () {\n /**\n * The previously focused non-ignored token.\n */\n\n /**\n * The currently focused non-ignored token.\n */\n\n /**\n * The (1-indexed) line containing the current token.\n */\n\n /**\n * The character offset at which the current line begins.\n */\n function Lexer(source) {\n var startOfFileToken = new Token(TokenKind.SOF, 0, 0, 0, 0, null);\n this.source = source;\n this.lastToken = startOfFileToken;\n this.token = startOfFileToken;\n this.line = 1;\n this.lineStart = 0;\n }\n /**\n * Advances the token stream to the next non-ignored token.\n */\n\n\n var _proto = Lexer.prototype;\n\n _proto.advance = function advance() {\n this.lastToken = this.token;\n var token = this.token = this.lookahead();\n return token;\n }\n /**\n * Looks ahead and returns the next non-ignored token, but does not change\n * the state of Lexer.\n */\n ;\n\n _proto.lookahead = function lookahead() {\n var token = this.token;\n\n if (token.kind !== TokenKind.EOF) {\n do {\n var _token$next; // Note: next is only mutable during parsing, so we cast to allow this.\n\n\n token = (_token$next = token.next) !== null && _token$next !== void 0 ? _token$next : token.next = readToken(this, token);\n } while (token.kind === TokenKind.COMMENT);\n }\n\n return token;\n };\n\n return Lexer;\n}();\n/**\n * @internal\n */\n\nexport function isPunctuatorTokenKind(kind) {\n return kind === TokenKind.BANG || kind === TokenKind.DOLLAR || kind === TokenKind.AMP || kind === TokenKind.PAREN_L || kind === TokenKind.PAREN_R || kind === TokenKind.SPREAD || kind === TokenKind.COLON || kind === TokenKind.EQUALS || kind === TokenKind.AT || kind === TokenKind.BRACKET_L || kind === TokenKind.BRACKET_R || kind === TokenKind.BRACE_L || kind === TokenKind.PIPE || kind === TokenKind.BRACE_R;\n}\n\nfunction printCharCode(code) {\n return (// NaN/undefined represents access beyond the end of the file.\n isNaN(code) ? TokenKind.EOF : // Trust JSON for ASCII.\n code < 0x007f ? JSON.stringify(String.fromCharCode(code)) : // Otherwise print the escaped form.\n \"\\\"\\\\u\".concat(('00' + code.toString(16).toUpperCase()).slice(-4), \"\\\"\")\n );\n}\n/**\n * Gets the next token from the source starting at the given position.\n *\n * This skips over whitespace until it finds the next lexable token, then lexes\n * punctuators immediately or calls the appropriate helper function for more\n * complicated tokens.\n */\n\n\nfunction readToken(lexer, prev) {\n var source = lexer.source;\n var body = source.body;\n var bodyLength = body.length;\n var pos = prev.end;\n\n while (pos < bodyLength) {\n var code = body.charCodeAt(pos);\n var _line = lexer.line;\n\n var _col = 1 + pos - lexer.lineStart; // SourceCharacter\n\n\n switch (code) {\n case 0xfeff: // <BOM>\n\n case 9: // \\t\n\n case 32: // <space>\n\n case 44:\n // ,\n ++pos;\n continue;\n\n case 10:\n // \\n\n ++pos;\n ++lexer.line;\n lexer.lineStart = pos;\n continue;\n\n case 13:\n // \\r\n if (body.charCodeAt(pos + 1) === 10) {\n pos += 2;\n } else {\n ++pos;\n }\n\n ++lexer.line;\n lexer.lineStart = pos;\n continue;\n\n case 33:\n // !\n return new Token(TokenKind.BANG, pos, pos + 1, _line, _col, prev);\n\n case 35:\n // #\n return readComment(source, pos, _line, _col, prev);\n\n case 36:\n // $\n return new Token(TokenKind.DOLLAR, pos, pos + 1, _line, _col, prev);\n\n case 38:\n // &\n return new Token(TokenKind.AMP, pos, pos + 1, _line, _col, prev);\n\n case 40:\n // (\n return new Token(TokenKind.PAREN_L, pos, pos + 1, _line, _col, prev);\n\n case 41:\n // )\n return new Token(TokenKind.PAREN_R, pos, pos + 1, _line, _col, prev);\n\n case 46:\n // .\n if (body.charCodeAt(pos + 1) === 46 && body.charCodeAt(pos + 2) === 46) {\n return new Token(TokenKind.SPREAD, pos, pos + 3, _line, _col, prev);\n }\n\n break;\n\n case 58:\n // :\n return new Token(TokenKind.COLON, pos, pos + 1, _line, _col, prev);\n\n case 61:\n // =\n return new Token(TokenKind.EQUALS, pos, pos + 1, _line, _col, prev);\n\n case 64:\n // @\n return new Token(TokenKind.AT, pos, pos + 1, _line, _col, prev);\n\n case 91:\n // [\n return new Token(TokenKind.BRACKET_L, pos, pos + 1, _line, _col, prev);\n\n case 93:\n // ]\n return new Token(TokenKind.BRACKET_R, pos, pos + 1, _line, _col, prev);\n\n case 123:\n // {\n return new Token(TokenKind.BRACE_L, pos, pos + 1, _line, _col, prev);\n\n case 124:\n // |\n return new Token(TokenKind.PIPE, pos, pos + 1, _line, _col, prev);\n\n case 125:\n // }\n return new Token(TokenKind.BRACE_R, pos, pos + 1, _line, _col, prev);\n\n case 34:\n // \"\n if (body.charCodeAt(pos + 1) === 34 && body.charCodeAt(pos + 2) === 34) {\n return readBlockString(source, pos, _line, _col, prev, lexer);\n }\n\n return readString(source, pos, _line, _col, prev);\n\n case 45: // -\n\n case 48: // 0\n\n case 49: // 1\n\n case 50: // 2\n\n case 51: // 3\n\n case 52: // 4\n\n case 53: // 5\n\n case 54: // 6\n\n case 55: // 7\n\n case 56: // 8\n\n case 57:\n // 9\n return readNumber(source, pos, code, _line, _col, prev);\n\n case 65: // A\n\n case 66: // B\n\n case 67: // C\n\n case 68: // D\n\n case 69: // E\n\n case 70: // F\n\n case 71: // G\n\n case 72: // H\n\n case 73: // I\n\n case 74: // J\n\n case 75: // K\n\n case 76: // L\n\n case 77: // M\n\n case 78: // N\n\n case 79: // O\n\n case 80: // P\n\n case 81: // Q\n\n case 82: // R\n\n case 83: // S\n\n case 84: // T\n\n case 85: // U\n\n case 86: // V\n\n case 87: // W\n\n case 88: // X\n\n case 89: // Y\n\n case 90: // Z\n\n case 95: // _\n\n case 97: // a\n\n case 98: // b\n\n case 99: // c\n\n case 100: // d\n\n case 101: // e\n\n case 102: // f\n\n case 103: // g\n\n case 104: // h\n\n case 105: // i\n\n case 106: // j\n\n case 107: // k\n\n case 108: // l\n\n case 109: // m\n\n case 110: // n\n\n case 111: // o\n\n case 112: // p\n\n case 113: // q\n\n case 114: // r\n\n case 115: // s\n\n case 116: // t\n\n case 117: // u\n\n case 118: // v\n\n case 119: // w\n\n case 120: // x\n\n case 121: // y\n\n case 122:\n // z\n return readName(source, pos, _line, _col, prev);\n }\n\n throw syntaxError(source, pos, unexpectedCharacterMessage(code));\n }\n\n var line = lexer.line;\n var col = 1 + pos - lexer.lineStart;\n return new Token(TokenKind.EOF, bodyLength, bodyLength, line, col, prev);\n}\n/**\n * Report a message that an unexpected character was encountered.\n */\n\n\nfunction unexpectedCharacterMessage(code) {\n if (code < 0x0020 && code !== 0x0009 && code !== 0x000a && code !== 0x000d) {\n return \"Cannot contain the invalid character \".concat(printCharCode(code), \".\");\n }\n\n if (code === 39) {\n // '\n return 'Unexpected single quote character (\\'), did you mean to use a double quote (\")?';\n }\n\n return \"Cannot parse the unexpected character \".concat(printCharCode(code), \".\");\n}\n/**\n * Reads a comment token from the source file.\n *\n * #[\\u0009\\u0020-\\uFFFF]*\n */\n\n\nfunction readComment(source, start, line, col, prev) {\n var body = source.body;\n var code;\n var position = start;\n\n do {\n code = body.charCodeAt(++position);\n } while (!isNaN(code) && ( // SourceCharacter but not LineTerminator\n code > 0x001f || code === 0x0009));\n\n return new Token(TokenKind.COMMENT, start, position, line, col, prev, body.slice(start + 1, position));\n}\n/**\n * Reads a number token from the source file, either a float\n * or an int depending on whether a decimal point appears.\n *\n * Int: -?(0|[1-9][0-9]*)\n * Float: -?(0|[1-9][0-9]*)(\\.[0-9]+)?((E|e)(+|-)?[0-9]+)?\n */\n\n\nfunction readNumber(source, start, firstCode, line, col, prev) {\n var body = source.body;\n var code = firstCode;\n var position = start;\n var isFloat = false;\n\n if (code === 45) {\n // -\n code = body.charCodeAt(++position);\n }\n\n if (code === 48) {\n // 0\n code = body.charCodeAt(++position);\n\n if (code >= 48 && code <= 57) {\n throw syntaxError(source, position, \"Invalid number, unexpected digit after 0: \".concat(printCharCode(code), \".\"));\n }\n } else {\n position = readDigits(source, position, code);\n code = body.charCodeAt(position);\n }\n\n if (code === 46) {\n // .\n isFloat = true;\n code = body.charCodeAt(++position);\n position = readDigits(source, position, code);\n code = body.charCodeAt(position);\n }\n\n if (code === 69 || code === 101) {\n // E e\n isFloat = true;\n code = body.charCodeAt(++position);\n\n if (code === 43 || code === 45) {\n // + -\n code = body.charCodeAt(++position);\n }\n\n position = readDigits(source, position, code);\n code = body.charCodeAt(position);\n } // Numbers cannot be followed by . or NameStart\n\n\n if (code === 46 || isNameStart(code)) {\n throw syntaxError(source, position, \"Invalid number, expected digit but got: \".concat(printCharCode(code), \".\"));\n }\n\n return new Token(isFloat ? TokenKind.FLOAT : TokenKind.INT, start, position, line, col, prev, body.slice(start, position));\n}\n/**\n * Returns the new position in the source after reading digits.\n */\n\n\nfunction readDigits(source, start, firstCode) {\n var body = source.body;\n var position = start;\n var code = firstCode;\n\n if (code >= 48 && code <= 57) {\n // 0 - 9\n do {\n code = body.charCodeAt(++position);\n } while (code >= 48 && code <= 57); // 0 - 9\n\n\n return position;\n }\n\n throw syntaxError(source, position, \"Invalid number, expected digit but got: \".concat(printCharCode(code), \".\"));\n}\n/**\n * Reads a string token from the source file.\n *\n * \"([^\"\\\\\\u000A\\u000D]|(\\\\(u[0-9a-fA-F]{4}|[\"\\\\/bfnrt])))*\"\n */\n\n\nfunction readString(source, start, line, col, prev) {\n var body = source.body;\n var position = start + 1;\n var chunkStart = position;\n var code = 0;\n var value = '';\n\n while (position < body.length && !isNaN(code = body.charCodeAt(position)) && // not LineTerminator\n code !== 0x000a && code !== 0x000d) {\n // Closing Quote (\")\n if (code === 34) {\n value += body.slice(chunkStart, position);\n return new Token(TokenKind.STRING, start, position + 1, line, col, prev, value);\n } // SourceCharacter\n\n\n if (code < 0x0020 && code !== 0x0009) {\n throw syntaxError(source, position, \"Invalid character within String: \".concat(printCharCode(code), \".\"));\n }\n\n ++position;\n\n if (code === 92) {\n // \\\n value += body.slice(chunkStart, position - 1);\n code = body.charCodeAt(position);\n\n switch (code) {\n case 34:\n value += '\"';\n break;\n\n case 47:\n value += '/';\n break;\n\n case 92:\n value += '\\\\';\n break;\n\n case 98:\n value += '\\b';\n break;\n\n case 102:\n value += '\\f';\n break;\n\n case 110:\n value += '\\n';\n break;\n\n case 114:\n value += '\\r';\n break;\n\n case 116:\n value += '\\t';\n break;\n\n case 117:\n {\n // uXXXX\n var charCode = uniCharCode(body.charCodeAt(position + 1), body.charCodeAt(position + 2), body.charCodeAt(position + 3), body.charCodeAt(position + 4));\n\n if (charCode < 0) {\n var invalidSequence = body.slice(position + 1, position + 5);\n throw syntaxError(source, position, \"Invalid character escape sequence: \\\\u\".concat(invalidSequence, \".\"));\n }\n\n value += String.fromCharCode(charCode);\n position += 4;\n break;\n }\n\n default:\n throw syntaxError(source, position, \"Invalid character escape sequence: \\\\\".concat(String.fromCharCode(code), \".\"));\n }\n\n ++position;\n chunkStart = position;\n }\n }\n\n throw syntaxError(source, position, 'Unterminated string.');\n}\n/**\n * Reads a block string token from the source file.\n *\n * \"\"\"(\"?\"?(\\\\\"\"\"|\\\\(?!=\"\"\")|[^\"\\\\]))*\"\"\"\n */\n\n\nfunction readBlockString(source, start, line, col, prev, lexer) {\n var body = source.body;\n var position = start + 3;\n var chunkStart = position;\n var code = 0;\n var rawValue = '';\n\n while (position < body.length && !isNaN(code = body.charCodeAt(position))) {\n // Closing Triple-Quote (\"\"\")\n if (code === 34 && body.charCodeAt(position + 1) === 34 && body.charCodeAt(position + 2) === 34) {\n rawValue += body.slice(chunkStart, position);\n return new Token(TokenKind.BLOCK_STRING, start, position + 3, line, col, prev, dedentBlockStringValue(rawValue));\n } // SourceCharacter\n\n\n if (code < 0x0020 && code !== 0x0009 && code !== 0x000a && code !== 0x000d) {\n throw syntaxError(source, position, \"Invalid character within String: \".concat(printCharCode(code), \".\"));\n }\n\n if (code === 10) {\n // new line\n ++position;\n ++lexer.line;\n lexer.lineStart = position;\n } else if (code === 13) {\n // carriage return\n if (body.charCodeAt(position + 1) === 10) {\n position += 2;\n } else {\n ++position;\n }\n\n ++lexer.line;\n lexer.lineStart = position;\n } else if ( // Escape Triple-Quote (\\\"\"\")\n code === 92 && body.charCodeAt(position + 1) === 34 && body.charCodeAt(position + 2) === 34 && body.charCodeAt(position + 3) === 34) {\n rawValue += body.slice(chunkStart, position) + '\"\"\"';\n position += 4;\n chunkStart = position;\n } else {\n ++position;\n }\n }\n\n throw syntaxError(source, position, 'Unterminated string.');\n}\n/**\n * Converts four hexadecimal chars to the integer that the\n * string represents. For example, uniCharCode('0','0','0','f')\n * will return 15, and uniCharCode('0','0','f','f') returns 255.\n *\n * Returns a negative number on error, if a char was invalid.\n *\n * This is implemented by noting that char2hex() returns -1 on error,\n * which means the result of ORing the char2hex() will also be negative.\n */\n\n\nfunction uniCharCode(a, b, c, d) {\n return char2hex(a) << 12 | char2hex(b) << 8 | char2hex(c) << 4 | char2hex(d);\n}\n/**\n * Converts a hex character to its integer value.\n * '0' becomes 0, '9' becomes 9\n * 'A' becomes 10, 'F' becomes 15\n * 'a' becomes 10, 'f' becomes 15\n *\n * Returns -1 on error.\n */\n\n\nfunction char2hex(a) {\n return a >= 48 && a <= 57 ? a - 48 // 0-9\n : a >= 65 && a <= 70 ? a - 55 // A-F\n : a >= 97 && a <= 102 ? a - 87 // a-f\n : -1;\n}\n/**\n * Reads an alphanumeric + underscore name from the source.\n *\n * [_A-Za-z][_0-9A-Za-z]*\n */\n\n\nfunction readName(source, start, line, col, prev) {\n var body = source.body;\n var bodyLength = body.length;\n var position = start + 1;\n var code = 0;\n\n while (position !== bodyLength && !isNaN(code = body.charCodeAt(position)) && (code === 95 || // _\n code >= 48 && code <= 57 || // 0-9\n code >= 65 && code <= 90 || // A-Z\n code >= 97 && code <= 122) // a-z\n ) {\n ++position;\n }\n\n return new Token(TokenKind.NAME, start, position, line, col, prev, body.slice(start, position));\n} // _ A-Z a-z\n\n\nfunction isNameStart(code) {\n return code === 95 || code >= 65 && code <= 90 || code >= 97 && code <= 122;\n}","import { syntaxError } from \"../error/syntaxError.mjs\";\nimport { Kind } from \"./kinds.mjs\";\nimport { Location } from \"./ast.mjs\";\nimport { TokenKind } from \"./tokenKind.mjs\";\nimport { Source, isSource } from \"./source.mjs\";\nimport { DirectiveLocation } from \"./directiveLocation.mjs\";\nimport { Lexer, isPunctuatorTokenKind } from \"./lexer.mjs\";\n/**\n * Configuration options to control parser behavior\n */\n\n/**\n * Given a GraphQL source, parses it into a Document.\n * Throws GraphQLError if a syntax error is encountered.\n */\n\nexport function parse(source, options) {\n var parser = new Parser(source, options);\n return parser.parseDocument();\n}\n/**\n * Given a string containing a GraphQL value (ex. `[42]`), parse the AST for\n * that value.\n * Throws GraphQLError if a syntax error is encountered.\n *\n * This is useful within tools that operate upon GraphQL Values directly and\n * in isolation of complete GraphQL documents.\n *\n * Consider providing the results to the utility function: valueFromAST().\n */\n\nexport function parseValue(source, options) {\n var parser = new Parser(source, options);\n parser.expectToken(TokenKind.SOF);\n var value = parser.parseValueLiteral(false);\n parser.expectToken(TokenKind.EOF);\n return value;\n}\n/**\n * Given a string containing a GraphQL Type (ex. `[Int!]`), parse the AST for\n * that type.\n * Throws GraphQLError if a syntax error is encountered.\n *\n * This is useful within tools that operate upon GraphQL Types directly and\n * in isolation of complete GraphQL documents.\n *\n * Consider providing the results to the utility function: typeFromAST().\n */\n\nexport function parseType(source, options) {\n var parser = new Parser(source, options);\n parser.expectToken(TokenKind.SOF);\n var type = parser.parseTypeReference();\n parser.expectToken(TokenKind.EOF);\n return type;\n}\n/**\n * This class is exported only to assist people in implementing their own parsers\n * without duplicating too much code and should be used only as last resort for cases\n * such as experimental syntax or if certain features could not be contributed upstream.\n *\n * It is still part of the internal API and is versioned, so any changes to it are never\n * considered breaking changes. If you still need to support multiple versions of the\n * library, please use the `versionInfo` variable for version detection.\n *\n * @internal\n */\n\nexport var Parser = /*#__PURE__*/function () {\n function Parser(source, options) {\n var sourceObj = isSource(source) ? source : new Source(source);\n this._lexer = new Lexer(sourceObj);\n this._options = options;\n }\n /**\n * Converts a name lex token into a name parse node.\n */\n\n\n var _proto = Parser.prototype;\n\n _proto.parseName = function parseName() {\n var token = this.expectToken(TokenKind.NAME);\n return {\n kind: Kind.NAME,\n value: token.value,\n loc: this.loc(token)\n };\n } // Implements the parsing rules in the Document section.\n\n /**\n * Document : Definition+\n */\n ;\n\n _proto.parseDocument = function parseDocument() {\n var start = this._lexer.token;\n return {\n kind: Kind.DOCUMENT,\n definitions: this.many(TokenKind.SOF, this.parseDefinition, TokenKind.EOF),\n loc: this.loc(start)\n };\n }\n /**\n * Definition :\n * - ExecutableDefinition\n * - TypeSystemDefinition\n * - TypeSystemExtension\n *\n * ExecutableDefinition :\n * - OperationDefinition\n * - FragmentDefinition\n */\n ;\n\n _proto.parseDefinition = function parseDefinition() {\n if (this.peek(TokenKind.NAME)) {\n switch (this._lexer.token.value) {\n case 'query':\n case 'mutation':\n case 'subscription':\n return this.parseOperationDefinition();\n\n case 'fragment':\n return this.parseFragmentDefinition();\n\n case 'schema':\n case 'scalar':\n case 'type':\n case 'interface':\n case 'union':\n case 'enum':\n case 'input':\n case 'directive':\n return this.parseTypeSystemDefinition();\n\n case 'extend':\n return this.parseTypeSystemExtension();\n }\n } else if (this.peek(TokenKind.BRACE_L)) {\n return this.parseOperationDefinition();\n } else if (this.peekDescription()) {\n return this.parseTypeSystemDefinition();\n }\n\n throw this.unexpected();\n } // Implements the parsing rules in the Operations section.\n\n /**\n * OperationDefinition :\n * - SelectionSet\n * - OperationType Name? VariableDefinitions? Directives? SelectionSet\n */\n ;\n\n _proto.parseOperationDefinition = function parseOperationDefinition() {\n var start = this._lexer.token;\n\n if (this.peek(TokenKind.BRACE_L)) {\n return {\n kind: Kind.OPERATION_DEFINITION,\n operation: 'query',\n name: undefined,\n variableDefinitions: [],\n directives: [],\n selectionSet: this.parseSelectionSet(),\n loc: this.loc(start)\n };\n }\n\n var operation = this.parseOperationType();\n var name;\n\n if (this.peek(TokenKind.NAME)) {\n name = this.parseName();\n }\n\n return {\n kind: Kind.OPERATION_DEFINITION,\n operation: operation,\n name: name,\n variableDefinitions: this.parseVariableDefinitions(),\n directives: this.parseDirectives(false),\n selectionSet: this.parseSelectionSet(),\n loc: this.loc(start)\n };\n }\n /**\n * OperationType : one of query mutation subscription\n */\n ;\n\n _proto.parseOperationType = function parseOperationType() {\n var operationToken = this.expectToken(TokenKind.NAME);\n\n switch (operationToken.value) {\n case 'query':\n return 'query';\n\n case 'mutation':\n return 'mutation';\n\n case 'subscription':\n return 'subscription';\n }\n\n throw this.unexpected(operationToken);\n }\n /**\n * VariableDefinitions : ( VariableDefinition+ )\n */\n ;\n\n _proto.parseVariableDefinitions = function parseVariableDefinitions() {\n return this.optionalMany(TokenKind.PAREN_L, this.parseVariableDefinition, TokenKind.PAREN_R);\n }\n /**\n * VariableDefinition : Variable : Type DefaultValue? Directives[Const]?\n */\n ;\n\n _proto.parseVariableDefinition = function parseVariableDefinition() {\n var start = this._lexer.token;\n return {\n kind: Kind.VARIABLE_DEFINITION,\n variable: this.parseVariable(),\n type: (this.expectToken(TokenKind.COLON), this.parseTypeReference()),\n defaultValue: this.expectOptionalToken(TokenKind.EQUALS) ? this.parseValueLiteral(true) : undefined,\n directives: this.parseDirectives(true),\n loc: this.loc(start)\n };\n }\n /**\n * Variable : $ Name\n */\n ;\n\n _proto.parseVariable = function parseVariable() {\n var start = this._lexer.token;\n this.expectToken(TokenKind.DOLLAR);\n return {\n kind: Kind.VARIABLE,\n name: this.parseName(),\n loc: this.loc(start)\n };\n }\n /**\n * SelectionSet : { Selection+ }\n */\n ;\n\n _proto.parseSelectionSet = function parseSelectionSet() {\n var start = this._lexer.token;\n return {\n kind: Kind.SELECTION_SET,\n selections: this.many(TokenKind.BRACE_L, this.parseSelection, TokenKind.BRACE_R),\n loc: this.loc(start)\n };\n }\n /**\n * Selection :\n * - Field\n * - FragmentSpread\n * - InlineFragment\n */\n ;\n\n _proto.parseSelection = function parseSelection() {\n return this.peek(TokenKind.SPREAD) ? this.parseFragment() : this.parseField();\n }\n /**\n * Field : Alias? Name Arguments? Directives? SelectionSet?\n *\n * Alias : Name :\n */\n ;\n\n _proto.parseField = function parseField() {\n var start = this._lexer.token;\n var nameOrAlias = this.parseName();\n var alias;\n var name;\n\n if (this.expectOptionalToken(TokenKind.COLON)) {\n alias = nameOrAlias;\n name = this.parseName();\n } else {\n name = nameOrAlias;\n }\n\n return {\n kind: Kind.FIELD,\n alias: alias,\n name: name,\n arguments: this.parseArguments(false),\n directives: this.parseDirectives(false),\n selectionSet: this.peek(TokenKind.BRACE_L) ? this.parseSelectionSet() : undefined,\n loc: this.loc(start)\n };\n }\n /**\n * Arguments[Const] : ( Argument[?Const]+ )\n */\n ;\n\n _proto.parseArguments = function parseArguments(isConst) {\n var item = isConst ? this.parseConstArgument : this.parseArgument;\n return this.optionalMany(TokenKind.PAREN_L, item, TokenKind.PAREN_R);\n }\n /**\n * Argument[Const] : Name : Value[?Const]\n */\n ;\n\n _proto.parseArgument = function parseArgument() {\n var start = this._lexer.token;\n var name = this.parseName();\n this.expectToken(TokenKind.COLON);\n return {\n kind: Kind.ARGUMENT,\n name: name,\n value: this.parseValueLiteral(false),\n loc: this.loc(start)\n };\n };\n\n _proto.parseConstArgument = function parseConstArgument() {\n var start = this._lexer.token;\n return {\n kind: Kind.ARGUMENT,\n name: this.parseName(),\n value: (this.expectToken(TokenKind.COLON), this.parseValueLiteral(true)),\n loc: this.loc(start)\n };\n } // Implements the parsing rules in the Fragments section.\n\n /**\n * Corresponds to both FragmentSpread and InlineFragment in the spec.\n *\n * FragmentSpread : ... FragmentName Directives?\n *\n * InlineFragment : ... TypeCondition? Directives? SelectionSet\n */\n ;\n\n _proto.parseFragment = function parseFragment() {\n var start = this._lexer.token;\n this.expectToken(TokenKind.SPREAD);\n var hasTypeCondition = this.expectOptionalKeyword('on');\n\n if (!hasTypeCondition && this.peek(TokenKind.NAME)) {\n return {\n kind: Kind.FRAGMENT_SPREAD,\n name: this.parseFragmentName(),\n directives: this.parseDirectives(false),\n loc: this.loc(start)\n };\n }\n\n return {\n kind: Kind.INLINE_FRAGMENT,\n typeCondition: hasTypeCondition ? this.parseNamedType() : undefined,\n directives: this.parseDirectives(false),\n selectionSet: this.parseSelectionSet(),\n loc: this.loc(start)\n };\n }\n /**\n * FragmentDefinition :\n * - fragment FragmentName on TypeCondition Directives? SelectionSet\n *\n * TypeCondition : NamedType\n */\n ;\n\n _proto.parseFragmentDefinition = function parseFragmentDefinition() {\n var _this$_options;\n\n var start = this._lexer.token;\n this.expectKeyword('fragment'); // Experimental support for defining variables within fragments changes\n // the grammar of FragmentDefinition:\n // - fragment FragmentName VariableDefinitions? on TypeCondition Directives? SelectionSet\n\n if (((_this$_options = this._options) === null || _this$_options === void 0 ? void 0 : _this$_options.experimentalFragmentVariables) === true) {\n return {\n kind: Kind.FRAGMENT_DEFINITION,\n name: this.parseFragmentName(),\n variableDefinitions: this.parseVariableDefinitions(),\n typeCondition: (this.expectKeyword('on'), this.parseNamedType()),\n directives: this.parseDirectives(false),\n selectionSet: this.parseSelectionSet(),\n loc: this.loc(start)\n };\n }\n\n return {\n kind: Kind.FRAGMENT_DEFINITION,\n name: this.parseFragmentName(),\n typeCondition: (this.expectKeyword('on'), this.parseNamedType()),\n directives: this.parseDirectives(false),\n selectionSet: this.parseSelectionSet(),\n loc: this.loc(start)\n };\n }\n /**\n * FragmentName : Name but not `on`\n */\n ;\n\n _proto.parseFragmentName = function parseFragmentName() {\n if (this._lexer.token.value === 'on') {\n throw this.unexpected();\n }\n\n return this.parseName();\n } // Implements the parsing rules in the Values section.\n\n /**\n * Value[Const] :\n * - [~Const] Variable\n * - IntValue\n * - FloatValue\n * - StringValue\n * - BooleanValue\n * - NullValue\n * - EnumValue\n * - ListValue[?Const]\n * - ObjectValue[?Const]\n *\n * BooleanValue : one of `true` `false`\n *\n * NullValue : `null`\n *\n * EnumValue : Name but not `true`, `false` or `null`\n */\n ;\n\n _proto.parseValueLiteral = function parseValueLiteral(isConst) {\n var token = this._lexer.token;\n\n switch (token.kind) {\n case TokenKind.BRACKET_L:\n return this.parseList(isConst);\n\n case TokenKind.BRACE_L:\n return this.parseObject(isConst);\n\n case TokenKind.INT:\n this._lexer.advance();\n\n return {\n kind: Kind.INT,\n value: token.value,\n loc: this.loc(token)\n };\n\n case TokenKind.FLOAT:\n this._lexer.advance();\n\n return {\n kind: Kind.FLOAT,\n value: token.value,\n loc: this.loc(token)\n };\n\n case TokenKind.STRING:\n case TokenKind.BLOCK_STRING:\n return this.parseStringLiteral();\n\n case TokenKind.NAME:\n this._lexer.advance();\n\n switch (token.value) {\n case 'true':\n return {\n kind: Kind.BOOLEAN,\n value: true,\n loc: this.loc(token)\n };\n\n case 'false':\n return {\n kind: Kind.BOOLEAN,\n value: false,\n loc: this.loc(token)\n };\n\n case 'null':\n return {\n kind: Kind.NULL,\n loc: this.loc(token)\n };\n\n default:\n return {\n kind: Kind.ENUM,\n value: token.value,\n loc: this.loc(token)\n };\n }\n\n case TokenKind.DOLLAR:\n if (!isConst) {\n return this.parseVariable();\n }\n\n break;\n }\n\n throw this.unexpected();\n };\n\n _proto.parseStringLiteral = function parseStringLiteral() {\n var token = this._lexer.token;\n\n this._lexer.advance();\n\n return {\n kind: Kind.STRING,\n value: token.value,\n block: token.kind === TokenKind.BLOCK_STRING,\n loc: this.loc(token)\n };\n }\n /**\n * ListValue[Const] :\n * - [ ]\n * - [ Value[?Const]+ ]\n */\n ;\n\n _proto.parseList = function parseList(isConst) {\n var _this = this;\n\n var start = this._lexer.token;\n\n var item = function item() {\n return _this.parseValueLiteral(isConst);\n };\n\n return {\n kind: Kind.LIST,\n values: this.any(TokenKind.BRACKET_L, item, TokenKind.BRACKET_R),\n loc: this.loc(start)\n };\n }\n /**\n * ObjectValue[Const] :\n * - { }\n * - { ObjectField[?Const]+ }\n */\n ;\n\n _proto.parseObject = function parseObject(isConst) {\n var _this2 = this;\n\n var start = this._lexer.token;\n\n var item = function item() {\n return _this2.parseObjectField(isConst);\n };\n\n return {\n kind: Kind.OBJECT,\n fields: this.any(TokenKind.BRACE_L, item, TokenKind.BRACE_R),\n loc: this.loc(start)\n };\n }\n /**\n * ObjectField[Const] : Name : Value[?Const]\n */\n ;\n\n _proto.parseObjectField = function parseObjectField(isConst) {\n var start = this._lexer.token;\n var name = this.parseName();\n this.expectToken(TokenKind.COLON);\n return {\n kind: Kind.OBJECT_FIELD,\n name: name,\n value: this.parseValueLiteral(isConst),\n loc: this.loc(start)\n };\n } // Implements the parsing rules in the Directives section.\n\n /**\n * Directives[Const] : Directive[?Const]+\n */\n ;\n\n _proto.parseDirectives = function parseDirectives(isConst) {\n var directives = [];\n\n while (this.peek(TokenKind.AT)) {\n directives.push(this.parseDirective(isConst));\n }\n\n return directives;\n }\n /**\n * Directive[Const] : @ Name Arguments[?Const]?\n */\n ;\n\n _proto.parseDirective = function parseDirective(isConst) {\n var start = this._lexer.token;\n this.expectToken(TokenKind.AT);\n return {\n kind: Kind.DIRECTIVE,\n name: this.parseName(),\n arguments: this.parseArguments(isConst),\n loc: this.loc(start)\n };\n } // Implements the parsing rules in the Types section.\n\n /**\n * Type :\n * - NamedType\n * - ListType\n * - NonNullType\n */\n ;\n\n _proto.parseTypeReference = function parseTypeReference() {\n var start = this._lexer.token;\n var type;\n\n if (this.expectOptionalToken(TokenKind.BRACKET_L)) {\n type = this.parseTypeReference();\n this.expectToken(TokenKind.BRACKET_R);\n type = {\n kind: Kind.LIST_TYPE,\n type: type,\n loc: this.loc(start)\n };\n } else {\n type = this.parseNamedType();\n }\n\n if (this.expectOptionalToken(TokenKind.BANG)) {\n return {\n kind: Kind.NON_NULL_TYPE,\n type: type,\n loc: this.loc(start)\n };\n }\n\n return type;\n }\n /**\n * NamedType : Name\n */\n ;\n\n _proto.parseNamedType = function parseNamedType() {\n var start = this._lexer.token;\n return {\n kind: Kind.NAMED_TYPE,\n name: this.parseName(),\n loc: this.loc(start)\n };\n } // Implements the parsing rules in the Type Definition section.\n\n /**\n * TypeSystemDefinition :\n * - SchemaDefinition\n * - TypeDefinition\n * - DirectiveDefinition\n *\n * TypeDefinition :\n * - ScalarTypeDefinition\n * - ObjectTypeDefinition\n * - InterfaceTypeDefinition\n * - UnionTypeDefinition\n * - EnumTypeDefinition\n * - InputObjectTypeDefinition\n */\n ;\n\n _proto.parseTypeSystemDefinition = function parseTypeSystemDefinition() {\n // Many definitions begin with a description and require a lookahead.\n var keywordToken = this.peekDescription() ? this._lexer.lookahead() : this._lexer.token;\n\n if (keywordToken.kind === TokenKind.NAME) {\n switch (keywordToken.value) {\n case 'schema':\n return this.parseSchemaDefinition();\n\n case 'scalar':\n return this.parseScalarTypeDefinition();\n\n case 'type':\n return this.parseObjectTypeDefinition();\n\n case 'interface':\n return this.parseInterfaceTypeDefinition();\n\n case 'union':\n return this.parseUnionTypeDefinition();\n\n case 'enum':\n return this.parseEnumTypeDefinition();\n\n case 'input':\n return this.parseInputObjectTypeDefinition();\n\n case 'directive':\n return this.parseDirectiveDefinition();\n }\n }\n\n throw this.unexpected(keywordToken);\n };\n\n _proto.peekDescription = function peekDescription() {\n return this.peek(TokenKind.STRING) || this.peek(TokenKind.BLOCK_STRING);\n }\n /**\n * Description : StringValue\n */\n ;\n\n _proto.parseDescription = function parseDescription() {\n if (this.peekDescription()) {\n return this.parseStringLiteral();\n }\n }\n /**\n * SchemaDefinition : Description? schema Directives[Const]? { OperationTypeDefinition+ }\n */\n ;\n\n _proto.parseSchemaDefinition = function parseSchemaDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n this.expectKeyword('schema');\n var directives = this.parseDirectives(true);\n var operationTypes = this.many(TokenKind.BRACE_L, this.parseOperationTypeDefinition, TokenKind.BRACE_R);\n return {\n kind: Kind.SCHEMA_DEFINITION,\n description: description,\n directives: directives,\n operationTypes: operationTypes,\n loc: this.loc(start)\n };\n }\n /**\n * OperationTypeDefinition : OperationType : NamedType\n */\n ;\n\n _proto.parseOperationTypeDefinition = function parseOperationTypeDefinition() {\n var start = this._lexer.token;\n var operation = this.parseOperationType();\n this.expectToken(TokenKind.COLON);\n var type = this.parseNamedType();\n return {\n kind: Kind.OPERATION_TYPE_DEFINITION,\n operation: operation,\n type: type,\n loc: this.loc(start)\n };\n }\n /**\n * ScalarTypeDefinition : Description? scalar Name Directives[Const]?\n */\n ;\n\n _proto.parseScalarTypeDefinition = function parseScalarTypeDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n this.expectKeyword('scalar');\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n return {\n kind: Kind.SCALAR_TYPE_DEFINITION,\n description: description,\n name: name,\n directives: directives,\n loc: this.loc(start)\n };\n }\n /**\n * ObjectTypeDefinition :\n * Description?\n * type Name ImplementsInterfaces? Directives[Const]? FieldsDefinition?\n */\n ;\n\n _proto.parseObjectTypeDefinition = function parseObjectTypeDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n this.expectKeyword('type');\n var name = this.parseName();\n var interfaces = this.parseImplementsInterfaces();\n var directives = this.parseDirectives(true);\n var fields = this.parseFieldsDefinition();\n return {\n kind: Kind.OBJECT_TYPE_DEFINITION,\n description: description,\n name: name,\n interfaces: interfaces,\n directives: directives,\n fields: fields,\n loc: this.loc(start)\n };\n }\n /**\n * ImplementsInterfaces :\n * - implements `&`? NamedType\n * - ImplementsInterfaces & NamedType\n */\n ;\n\n _proto.parseImplementsInterfaces = function parseImplementsInterfaces() {\n var _this$_options2;\n\n if (!this.expectOptionalKeyword('implements')) {\n return [];\n }\n\n if (((_this$_options2 = this._options) === null || _this$_options2 === void 0 ? void 0 : _this$_options2.allowLegacySDLImplementsInterfaces) === true) {\n var types = []; // Optional leading ampersand\n\n this.expectOptionalToken(TokenKind.AMP);\n\n do {\n types.push(this.parseNamedType());\n } while (this.expectOptionalToken(TokenKind.AMP) || this.peek(TokenKind.NAME));\n\n return types;\n }\n\n return this.delimitedMany(TokenKind.AMP, this.parseNamedType);\n }\n /**\n * FieldsDefinition : { FieldDefinition+ }\n */\n ;\n\n _proto.parseFieldsDefinition = function parseFieldsDefinition() {\n var _this$_options3; // Legacy support for the SDL?\n\n\n if (((_this$_options3 = this._options) === null || _this$_options3 === void 0 ? void 0 : _this$_options3.allowLegacySDLEmptyFields) === true && this.peek(TokenKind.BRACE_L) && this._lexer.lookahead().kind === TokenKind.BRACE_R) {\n this._lexer.advance();\n\n this._lexer.advance();\n\n return [];\n }\n\n return this.optionalMany(TokenKind.BRACE_L, this.parseFieldDefinition, TokenKind.BRACE_R);\n }\n /**\n * FieldDefinition :\n * - Description? Name ArgumentsDefinition? : Type Directives[Const]?\n */\n ;\n\n _proto.parseFieldDefinition = function parseFieldDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n var name = this.parseName();\n var args = this.parseArgumentDefs();\n this.expectToken(TokenKind.COLON);\n var type = this.parseTypeReference();\n var directives = this.parseDirectives(true);\n return {\n kind: Kind.FIELD_DEFINITION,\n description: description,\n name: name,\n arguments: args,\n type: type,\n directives: directives,\n loc: this.loc(start)\n };\n }\n /**\n * ArgumentsDefinition : ( InputValueDefinition+ )\n */\n ;\n\n _proto.parseArgumentDefs = function parseArgumentDefs() {\n return this.optionalMany(TokenKind.PAREN_L, this.parseInputValueDef, TokenKind.PAREN_R);\n }\n /**\n * InputValueDefinition :\n * - Description? Name : Type DefaultValue? Directives[Const]?\n */\n ;\n\n _proto.parseInputValueDef = function parseInputValueDef() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n var name = this.parseName();\n this.expectToken(TokenKind.COLON);\n var type = this.parseTypeReference();\n var defaultValue;\n\n if (this.expectOptionalToken(TokenKind.EQUALS)) {\n defaultValue = this.parseValueLiteral(true);\n }\n\n var directives = this.parseDirectives(true);\n return {\n kind: Kind.INPUT_VALUE_DEFINITION,\n description: description,\n name: name,\n type: type,\n defaultValue: defaultValue,\n directives: directives,\n loc: this.loc(start)\n };\n }\n /**\n * InterfaceTypeDefinition :\n * - Description? interface Name Directives[Const]? FieldsDefinition?\n */\n ;\n\n _proto.parseInterfaceTypeDefinition = function parseInterfaceTypeDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n this.expectKeyword('interface');\n var name = this.parseName();\n var interfaces = this.parseImplementsInterfaces();\n var directives = this.parseDirectives(true);\n var fields = this.parseFieldsDefinition();\n return {\n kind: Kind.INTERFACE_TYPE_DEFINITION,\n description: description,\n name: name,\n interfaces: interfaces,\n directives: directives,\n fields: fields,\n loc: this.loc(start)\n };\n }\n /**\n * UnionTypeDefinition :\n * - Description? union Name Directives[Const]? UnionMemberTypes?\n */\n ;\n\n _proto.parseUnionTypeDefinition = function parseUnionTypeDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n this.expectKeyword('union');\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n var types = this.parseUnionMemberTypes();\n return {\n kind: Kind.UNION_TYPE_DEFINITION,\n description: description,\n name: name,\n directives: directives,\n types: types,\n loc: this.loc(start)\n };\n }\n /**\n * UnionMemberTypes :\n * - = `|`? NamedType\n * - UnionMemberTypes | NamedType\n */\n ;\n\n _proto.parseUnionMemberTypes = function parseUnionMemberTypes() {\n return this.expectOptionalToken(TokenKind.EQUALS) ? this.delimitedMany(TokenKind.PIPE, this.parseNamedType) : [];\n }\n /**\n * EnumTypeDefinition :\n * - Description? enum Name Directives[Const]? EnumValuesDefinition?\n */\n ;\n\n _proto.parseEnumTypeDefinition = function parseEnumTypeDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n this.expectKeyword('enum');\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n var values = this.parseEnumValuesDefinition();\n return {\n kind: Kind.ENUM_TYPE_DEFINITION,\n description: description,\n name: name,\n directives: directives,\n values: values,\n loc: this.loc(start)\n };\n }\n /**\n * EnumValuesDefinition : { EnumValueDefinition+ }\n */\n ;\n\n _proto.parseEnumValuesDefinition = function parseEnumValuesDefinition() {\n return this.optionalMany(TokenKind.BRACE_L, this.parseEnumValueDefinition, TokenKind.BRACE_R);\n }\n /**\n * EnumValueDefinition : Description? EnumValue Directives[Const]?\n *\n * EnumValue : Name\n */\n ;\n\n _proto.parseEnumValueDefinition = function parseEnumValueDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n return {\n kind: Kind.ENUM_VALUE_DEFINITION,\n description: description,\n name: name,\n directives: directives,\n loc: this.loc(start)\n };\n }\n /**\n * InputObjectTypeDefinition :\n * - Description? input Name Directives[Const]? InputFieldsDefinition?\n */\n ;\n\n _proto.parseInputObjectTypeDefinition = function parseInputObjectTypeDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n this.expectKeyword('input');\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n var fields = this.parseInputFieldsDefinition();\n return {\n kind: Kind.INPUT_OBJECT_TYPE_DEFINITION,\n description: description,\n name: name,\n directives: directives,\n fields: fields,\n loc: this.loc(start)\n };\n }\n /**\n * InputFieldsDefinition : { InputValueDefinition+ }\n */\n ;\n\n _proto.parseInputFieldsDefinition = function parseInputFieldsDefinition() {\n return this.optionalMany(TokenKind.BRACE_L, this.parseInputValueDef, TokenKind.BRACE_R);\n }\n /**\n * TypeSystemExtension :\n * - SchemaExtension\n * - TypeExtension\n *\n * TypeExtension :\n * - ScalarTypeExtension\n * - ObjectTypeExtension\n * - InterfaceTypeExtension\n * - UnionTypeExtension\n * - EnumTypeExtension\n * - InputObjectTypeDefinition\n */\n ;\n\n _proto.parseTypeSystemExtension = function parseTypeSystemExtension() {\n var keywordToken = this._lexer.lookahead();\n\n if (keywordToken.kind === TokenKind.NAME) {\n switch (keywordToken.value) {\n case 'schema':\n return this.parseSchemaExtension();\n\n case 'scalar':\n return this.parseScalarTypeExtension();\n\n case 'type':\n return this.parseObjectTypeExtension();\n\n case 'interface':\n return this.parseInterfaceTypeExtension();\n\n case 'union':\n return this.parseUnionTypeExtension();\n\n case 'enum':\n return this.parseEnumTypeExtension();\n\n case 'input':\n return this.parseInputObjectTypeExtension();\n }\n }\n\n throw this.unexpected(keywordToken);\n }\n /**\n * SchemaExtension :\n * - extend schema Directives[Const]? { OperationTypeDefinition+ }\n * - extend schema Directives[Const]\n */\n ;\n\n _proto.parseSchemaExtension = function parseSchemaExtension() {\n var start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('schema');\n var directives = this.parseDirectives(true);\n var operationTypes = this.optionalMany(TokenKind.BRACE_L, this.parseOperationTypeDefinition, TokenKind.BRACE_R);\n\n if (directives.length === 0 && operationTypes.length === 0) {\n throw this.unexpected();\n }\n\n return {\n kind: Kind.SCHEMA_EXTENSION,\n directives: directives,\n operationTypes: operationTypes,\n loc: this.loc(start)\n };\n }\n /**\n * ScalarTypeExtension :\n * - extend scalar Name Directives[Const]\n */\n ;\n\n _proto.parseScalarTypeExtension = function parseScalarTypeExtension() {\n var start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('scalar');\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n\n if (directives.length === 0) {\n throw this.unexpected();\n }\n\n return {\n kind: Kind.SCALAR_TYPE_EXTENSION,\n name: name,\n directives: directives,\n loc: this.loc(start)\n };\n }\n /**\n * ObjectTypeExtension :\n * - extend type Name ImplementsInterfaces? Directives[Const]? FieldsDefinition\n * - extend type Name ImplementsInterfaces? Directives[Const]\n * - extend type Name ImplementsInterfaces\n */\n ;\n\n _proto.parseObjectTypeExtension = function parseObjectTypeExtension() {\n var start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('type');\n var name = this.parseName();\n var interfaces = this.parseImplementsInterfaces();\n var directives = this.parseDirectives(true);\n var fields = this.parseFieldsDefinition();\n\n if (interfaces.length === 0 && directives.length === 0 && fields.length === 0) {\n throw this.unexpected();\n }\n\n return {\n kind: Kind.OBJECT_TYPE_EXTENSION,\n name: name,\n interfaces: interfaces,\n directives: directives,\n fields: fields,\n loc: this.loc(start)\n };\n }\n /**\n * InterfaceTypeExtension :\n * - extend interface Name ImplementsInterfaces? Directives[Const]? FieldsDefinition\n * - extend interface Name ImplementsInterfaces? Directives[Const]\n * - extend interface Name ImplementsInterfaces\n */\n ;\n\n _proto.parseInterfaceTypeExtension = function parseInterfaceTypeExtension() {\n var start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('interface');\n var name = this.parseName();\n var interfaces = this.parseImplementsInterfaces();\n var directives = this.parseDirectives(true);\n var fields = this.parseFieldsDefinition();\n\n if (interfaces.length === 0 && directives.length === 0 && fields.length === 0) {\n throw this.unexpected();\n }\n\n return {\n kind: Kind.INTERFACE_TYPE_EXTENSION,\n name: name,\n interfaces: interfaces,\n directives: directives,\n fields: fields,\n loc: this.loc(start)\n };\n }\n /**\n * UnionTypeExtension :\n * - extend union Name Directives[Const]? UnionMemberTypes\n * - extend union Name Directives[Const]\n */\n ;\n\n _proto.parseUnionTypeExtension = function parseUnionTypeExtension() {\n var start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('union');\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n var types = this.parseUnionMemberTypes();\n\n if (directives.length === 0 && types.length === 0) {\n throw this.unexpected();\n }\n\n return {\n kind: Kind.UNION_TYPE_EXTENSION,\n name: name,\n directives: directives,\n types: types,\n loc: this.loc(start)\n };\n }\n /**\n * EnumTypeExtension :\n * - extend enum Name Directives[Const]? EnumValuesDefinition\n * - extend enum Name Directives[Const]\n */\n ;\n\n _proto.parseEnumTypeExtension = function parseEnumTypeExtension() {\n var start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('enum');\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n var values = this.parseEnumValuesDefinition();\n\n if (directives.length === 0 && values.length === 0) {\n throw this.unexpected();\n }\n\n return {\n kind: Kind.ENUM_TYPE_EXTENSION,\n name: name,\n directives: directives,\n values: values,\n loc: this.loc(start)\n };\n }\n /**\n * InputObjectTypeExtension :\n * - extend input Name Directives[Const]? InputFieldsDefinition\n * - extend input Name Directives[Const]\n */\n ;\n\n _proto.parseInputObjectTypeExtension = function parseInputObjectTypeExtension() {\n var start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('input');\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n var fields = this.parseInputFieldsDefinition();\n\n if (directives.length === 0 && fields.length === 0) {\n throw this.unexpected();\n }\n\n return {\n kind: Kind.INPUT_OBJECT_TYPE_EXTENSION,\n name: name,\n directives: directives,\n fields: fields,\n loc: this.loc(start)\n };\n }\n /**\n * DirectiveDefinition :\n * - Description? directive @ Name ArgumentsDefinition? `repeatable`? on DirectiveLocations\n */\n ;\n\n _proto.parseDirectiveDefinition = function parseDirectiveDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n this.expectKeyword('directive');\n this.expectToken(TokenKind.AT);\n var name = this.parseName();\n var args = this.parseArgumentDefs();\n var repeatable = this.expectOptionalKeyword('repeatable');\n this.expectKeyword('on');\n var locations = this.parseDirectiveLocations();\n return {\n kind: Kind.DIRECTIVE_DEFINITION,\n description: description,\n name: name,\n arguments: args,\n repeatable: repeatable,\n locations: locations,\n loc: this.loc(start)\n };\n }\n /**\n * DirectiveLocations :\n * - `|`? DirectiveLocation\n * - DirectiveLocations | DirectiveLocation\n */\n ;\n\n _proto.parseDirectiveLocations = function parseDirectiveLocations() {\n return this.delimitedMany(TokenKind.PIPE, this.parseDirectiveLocation);\n }\n /*\n * DirectiveLocation :\n * - ExecutableDirectiveLocation\n * - TypeSystemDirectiveLocation\n *\n * ExecutableDirectiveLocation : one of\n * `QUERY`\n * `MUTATION`\n * `SUBSCRIPTION`\n * `FIELD`\n * `FRAGMENT_DEFINITION`\n * `FRAGMENT_SPREAD`\n * `INLINE_FRAGMENT`\n *\n * TypeSystemDirectiveLocation : one of\n * `SCHEMA`\n * `SCALAR`\n * `OBJECT`\n * `FIELD_DEFINITION`\n * `ARGUMENT_DEFINITION`\n * `INTERFACE`\n * `UNION`\n * `ENUM`\n * `ENUM_VALUE`\n * `INPUT_OBJECT`\n * `INPUT_FIELD_DEFINITION`\n */\n ;\n\n _proto.parseDirectiveLocation = function parseDirectiveLocation() {\n var start = this._lexer.token;\n var name = this.parseName();\n\n if (DirectiveLocation[name.value] !== undefined) {\n return name;\n }\n\n throw this.unexpected(start);\n } // Core parsing utility functions\n\n /**\n * Returns a location object, used to identify the place in the source that created a given parsed object.\n */\n ;\n\n _proto.loc = function loc(startToken) {\n var _this$_options4;\n\n if (((_this$_options4 = this._options) === null || _this$_options4 === void 0 ? void 0 : _this$_options4.noLocation) !== true) {\n return new Location(startToken, this._lexer.lastToken, this._lexer.source);\n }\n }\n /**\n * Determines if the next token is of a given kind\n */\n ;\n\n _proto.peek = function peek(kind) {\n return this._lexer.token.kind === kind;\n }\n /**\n * If the next token is of the given kind, return that token after advancing the lexer.\n * Otherwise, do not change the parser state and throw an error.\n */\n ;\n\n _proto.expectToken = function expectToken(kind) {\n var token = this._lexer.token;\n\n if (token.kind === kind) {\n this._lexer.advance();\n\n return token;\n }\n\n throw syntaxError(this._lexer.source, token.start, \"Expected \".concat(getTokenKindDesc(kind), \", found \").concat(getTokenDesc(token), \".\"));\n }\n /**\n * If the next token is of the given kind, return that token after advancing the lexer.\n * Otherwise, do not change the parser state and return undefined.\n */\n ;\n\n _proto.expectOptionalToken = function expectOptionalToken(kind) {\n var token = this._lexer.token;\n\n if (token.kind === kind) {\n this._lexer.advance();\n\n return token;\n }\n\n return undefined;\n }\n /**\n * If the next token is a given keyword, advance the lexer.\n * Otherwise, do not change the parser state and throw an error.\n */\n ;\n\n _proto.expectKeyword = function expectKeyword(value) {\n var token = this._lexer.token;\n\n if (token.kind === TokenKind.NAME && token.value === value) {\n this._lexer.advance();\n } else {\n throw syntaxError(this._lexer.source, token.start, \"Expected \\\"\".concat(value, \"\\\", found \").concat(getTokenDesc(token), \".\"));\n }\n }\n /**\n * If the next token is a given keyword, return \"true\" after advancing the lexer.\n * Otherwise, do not change the parser state and return \"false\".\n */\n ;\n\n _proto.expectOptionalKeyword = function expectOptionalKeyword(value) {\n var token = this._lexer.token;\n\n if (token.kind === TokenKind.NAME && token.value === value) {\n this._lexer.advance();\n\n return true;\n }\n\n return false;\n }\n /**\n * Helper function for creating an error when an unexpected lexed token is encountered.\n */\n ;\n\n _proto.unexpected = function unexpected(atToken) {\n var token = atToken !== null && atToken !== void 0 ? atToken : this._lexer.token;\n return syntaxError(this._lexer.source, token.start, \"Unexpected \".concat(getTokenDesc(token), \".\"));\n }\n /**\n * Returns a possibly empty list of parse nodes, determined by the parseFn.\n * This list begins with a lex token of openKind and ends with a lex token of closeKind.\n * Advances the parser to the next lex token after the closing token.\n */\n ;\n\n _proto.any = function any(openKind, parseFn, closeKind) {\n this.expectToken(openKind);\n var nodes = [];\n\n while (!this.expectOptionalToken(closeKind)) {\n nodes.push(parseFn.call(this));\n }\n\n return nodes;\n }\n /**\n * Returns a list of parse nodes, determined by the parseFn.\n * It can be empty only if open token is missing otherwise it will always return non-empty list\n * that begins with a lex token of openKind and ends with a lex token of closeKind.\n * Advances the parser to the next lex token after the closing token.\n */\n ;\n\n _proto.optionalMany = function optionalMany(openKind, parseFn, closeKind) {\n if (this.expectOptionalToken(openKind)) {\n var nodes = [];\n\n do {\n nodes.push(parseFn.call(this));\n } while (!this.expectOptionalToken(closeKind));\n\n return nodes;\n }\n\n return [];\n }\n /**\n * Returns a non-empty list of parse nodes, determined by the parseFn.\n * This list begins with a lex token of openKind and ends with a lex token of closeKind.\n * Advances the parser to the next lex token after the closing token.\n */\n ;\n\n _proto.many = function many(openKind, parseFn, closeKind) {\n this.expectToken(openKind);\n var nodes = [];\n\n do {\n nodes.push(parseFn.call(this));\n } while (!this.expectOptionalToken(closeKind));\n\n return nodes;\n }\n /**\n * Returns a non-empty list of parse nodes, determined by the parseFn.\n * This list may begin with a lex token of delimiterKind followed by items separated by lex tokens of tokenKind.\n * Advances the parser to the next lex token after last item in the list.\n */\n ;\n\n _proto.delimitedMany = function delimitedMany(delimiterKind, parseFn) {\n this.expectOptionalToken(delimiterKind);\n var nodes = [];\n\n do {\n nodes.push(parseFn.call(this));\n } while (this.expectOptionalToken(delimiterKind));\n\n return nodes;\n };\n\n return Parser;\n}();\n/**\n * A helper function to describe a token as a string for debugging.\n */\n\nfunction getTokenDesc(token) {\n var value = token.value;\n return getTokenKindDesc(token.kind) + (value != null ? \" \\\"\".concat(value, \"\\\"\") : '');\n}\n/**\n * A helper function to describe a token kind as a string for debugging.\n */\n\n\nfunction getTokenKindDesc(kind) {\n return isPunctuatorTokenKind(kind) ? \"\\\"\".concat(kind, \"\\\"\") : kind;\n}","import { __assign } from \"tslib\";\nimport { parse } from 'graphql';\nvar docCache = new Map();\nvar fragmentSourceMap = new Map();\nvar printFragmentWarnings = true;\nvar experimentalFragmentVariables = false;\n\nfunction normalize(string) {\n return string.replace(/[\\s,]+/g, ' ').trim();\n}\n\nfunction cacheKeyFromLoc(loc) {\n return normalize(loc.source.body.substring(loc.start, loc.end));\n}\n\nfunction processFragments(ast) {\n var seenKeys = new Set();\n var definitions = [];\n ast.definitions.forEach(function (fragmentDefinition) {\n if (fragmentDefinition.kind === 'FragmentDefinition') {\n var fragmentName = fragmentDefinition.name.value;\n var sourceKey = cacheKeyFromLoc(fragmentDefinition.loc);\n var sourceKeySet = fragmentSourceMap.get(fragmentName);\n\n if (sourceKeySet && !sourceKeySet.has(sourceKey)) {\n if (printFragmentWarnings) {\n console.warn(\"Warning: fragment with name \" + fragmentName + \" already exists.\\n\" + \"graphql-tag enforces all fragment names across your application to be unique; read more about\\n\" + \"this in the docs: http://dev.apollodata.com/core/fragments.html#unique-names\");\n }\n } else if (!sourceKeySet) {\n fragmentSourceMap.set(fragmentName, sourceKeySet = new Set());\n }\n\n sourceKeySet.add(sourceKey);\n\n if (!seenKeys.has(sourceKey)) {\n seenKeys.add(sourceKey);\n definitions.push(fragmentDefinition);\n }\n } else {\n definitions.push(fragmentDefinition);\n }\n });\n return __assign(__assign({}, ast), {\n definitions: definitions\n });\n}\n\nfunction stripLoc(doc) {\n var workSet = new Set(doc.definitions);\n workSet.forEach(function (node) {\n if (node.loc) delete node.loc;\n Object.keys(node).forEach(function (key) {\n var value = node[key];\n\n if (value && typeof value === 'object') {\n workSet.add(value);\n }\n });\n });\n var loc = doc.loc;\n\n if (loc) {\n delete loc.startToken;\n delete loc.endToken;\n }\n\n return doc;\n}\n\nfunction parseDocument(source) {\n var cacheKey = normalize(source);\n\n if (!docCache.has(cacheKey)) {\n var parsed = parse(source, {\n experimentalFragmentVariables: experimentalFragmentVariables,\n allowLegacyFragmentVariables: experimentalFragmentVariables\n });\n\n if (!parsed || parsed.kind !== 'Document') {\n throw new Error('Not a valid GraphQL document.');\n }\n\n docCache.set(cacheKey, stripLoc(processFragments(parsed)));\n }\n\n return docCache.get(cacheKey);\n}\n\nexport function gql(literals) {\n var args = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n\n if (typeof literals === 'string') {\n literals = [literals];\n }\n\n var result = literals[0];\n args.forEach(function (arg, i) {\n if (arg && arg.kind === 'Document') {\n result += arg.loc.source.body;\n } else {\n result += arg;\n }\n\n result += literals[i + 1];\n });\n return parseDocument(result);\n}\nexport function resetCaches() {\n docCache.clear();\n fragmentSourceMap.clear();\n}\nexport function disableFragmentWarnings() {\n printFragmentWarnings = false;\n}\nexport function enableExperimentalFragmentVariables() {\n experimentalFragmentVariables = true;\n}\nexport function disableExperimentalFragmentVariables() {\n experimentalFragmentVariables = false;\n}\nvar extras = {\n gql: gql,\n resetCaches: resetCaches,\n disableFragmentWarnings: disableFragmentWarnings,\n enableExperimentalFragmentVariables: enableExperimentalFragmentVariables,\n disableExperimentalFragmentVariables: disableExperimentalFragmentVariables\n};\n\n(function (gql_1) {\n gql_1.gql = extras.gql, gql_1.resetCaches = extras.resetCaches, gql_1.disableFragmentWarnings = extras.disableFragmentWarnings, gql_1.enableExperimentalFragmentVariables = extras.enableExperimentalFragmentVariables, gql_1.disableExperimentalFragmentVariables = extras.disableExperimentalFragmentVariables;\n})(gql || (gql = {}));\n\ngql[\"default\"] = gql;\nexport default gql;","/* eslint-disable quotes */\n/* eslint-disable prettier/prettier */\nexport const typesWithId = [\"ActionCard\",\"Address\",\"AdminUser\",\"Allergen\",\"Appointment\",\"AppointmentProduct\",\"AppointmentReason\",\"AuthenticationSetup\",\"Banner\",\"Basket\",\"BasketProduct\",\"BillingAgreement\",\"BoostedBox\",\"Box\",\"Breed\",\"CardAuthenticationSetup\",\"CarrierService\",\"Consignment\",\"ContactInformation\",\"CreditCardPaymentMethod\",\"CustomerIssueCategory\",\"CustomerIssueEntryField\",\"CustomerIssueEntryFieldAssociation\",\"CustomerIssueEntryFieldBoolean\",\"CustomerIssueEntryFieldInteger\",\"CustomerIssueEntryFieldMultifield\",\"CustomerIssueEntryFieldString\",\"CustomerIssueManagementCategory\",\"CustomerIssueManagementCategoryReason\",\"CustomerIssueManagementInputFieldAssociation\",\"CustomerIssueManagementInputFieldBoolean\",\"CustomerIssueManagementInputFieldInteger\",\"CustomerIssueManagementInputFieldMultifield\",\"CustomerIssueManagementInputFieldString\",\"CustomerIssueManagementReason\",\"CustomerIssueManagementResolutionOffering\",\"CustomerIssueReason\",\"CustomerReview\",\"DeliveryArea\",\"DirectSalesEvent\",\"DirectSalesRepresentative\",\"DirectSalesTeam\",\"DiscountCode\",\"Dog\",\"DogProfile\",\"Field\",\"FoodBrand\",\"FoodBrandRange\",\"FoodBrandRangeVariety\",\"FoodCategory\",\"GocardlessUserParam\",\"Guest\",\"HealthIssue\",\"Invoice\",\"MarketingMethod\",\"MarketingPurpose\",\"Membership\",\"MerchantInitiatedPayment\",\"NewFlavour\",\"NewInvoice\",\"NonCoreInvoice\",\"NonCoreOrder\",\"NonCoreOrderProduct\",\"Notification\",\"OrderProduct\",\"Pause\",\"PendingSubscription\",\"PendingSubscriptionFlavour\",\"PendingSubscriptionOrderPricingExtras\",\"PetCareProfessional\",\"Plan\",\"PricingCurve\",\"Product\",\"ProductBenefit\",\"ProductCollection\",\"ProductGroup\",\"ProductLabel\",\"ProductSticker\",\"ProductVariant\",\"RecurringOrderProduct\",\"Reportable\",\"SelectedMarketingMethodPurpose\",\"SepaDirectDebit\",\"ShippingCountry\",\"Subscription\",\"SupportedMarketingMethodPurpose\",\"User\"];\n","import { dep } from \"optimism\";\nimport { Slot } from \"@wry/context\";\nexport var cacheSlot = new Slot();\nvar cacheInfoMap = new WeakMap();\n\nfunction getCacheInfo(cache) {\n var info = cacheInfoMap.get(cache);\n\n if (!info) {\n cacheInfoMap.set(cache, info = {\n vars: new Set(),\n dep: dep()\n });\n }\n\n return info;\n}\n\nexport function forgetCache(cache) {\n getCacheInfo(cache).vars.forEach(function (rv) {\n return rv.forgetCache(cache);\n });\n}\nexport function recallCache(cache) {\n getCacheInfo(cache).vars.forEach(function (rv) {\n return rv.attachCache(cache);\n });\n}\nexport function makeVar(value) {\n var caches = new Set();\n var listeners = new Set();\n\n var rv = function rv(newValue) {\n if (arguments.length > 0) {\n if (value !== newValue) {\n value = newValue;\n caches.forEach(function (cache) {\n getCacheInfo(cache).dep.dirty(rv);\n broadcast(cache);\n });\n var oldListeners = Array.from(listeners);\n listeners.clear();\n oldListeners.forEach(function (listener) {\n return listener(value);\n });\n }\n } else {\n var cache = cacheSlot.getValue();\n\n if (cache) {\n attach(cache);\n getCacheInfo(cache).dep(rv);\n }\n }\n\n return value;\n };\n\n rv.onNextChange = function (listener) {\n listeners.add(listener);\n return function () {\n listeners.delete(listener);\n };\n };\n\n var attach = rv.attachCache = function (cache) {\n caches.add(cache);\n getCacheInfo(cache).vars.add(rv);\n return rv;\n };\n\n rv.forgetCache = function (cache) {\n return caches.delete(cache);\n };\n\n return rv;\n}\n\nfunction broadcast(cache) {\n if (cache.broadcastWatches) {\n cache.broadcastWatches();\n }\n}","import Metadata from '../metadata';\nimport matchesEntirely from './matchesEntirely';\nvar NON_FIXED_LINE_PHONE_TYPES = ['MOBILE', 'PREMIUM_RATE', 'TOLL_FREE', 'SHARED_COST', 'VOIP', 'PERSONAL_NUMBER', 'PAGER', 'UAN', 'VOICEMAIL']; // Finds out national phone number type (fixed line, mobile, etc)\n\nexport default function getNumberType(input, options, metadata) {\n // If assigning the `{}` default value is moved to the arguments above,\n // code coverage would decrease for some weird reason.\n options = options || {}; // When `parse()` returned `{}`\n // meaning that the phone number is not a valid one.\n\n if (!input.country) {\n return;\n }\n\n metadata = new Metadata(metadata);\n metadata.selectNumberingPlan(input.country, input.countryCallingCode);\n var nationalNumber = options.v2 ? input.nationalNumber : input.phone; // The following is copy-pasted from the original function:\n // https://github.com/googlei18n/libphonenumber/blob/3ea547d4fbaa2d0b67588904dfa5d3f2557c27ff/javascript/i18n/phonenumbers/phonenumberutil.js#L2835\n // Is this national number even valid for this country\n\n if (!matchesEntirely(nationalNumber, metadata.nationalNumberPattern())) {\n return;\n } // Is it fixed line number\n\n\n if (isNumberTypeEqualTo(nationalNumber, 'FIXED_LINE', metadata)) {\n // Because duplicate regular expressions are removed\n // to reduce metadata size, if \"mobile\" pattern is \"\"\n // then it means it was removed due to being a duplicate of the fixed-line pattern.\n //\n if (metadata.type('MOBILE') && metadata.type('MOBILE').pattern() === '') {\n return 'FIXED_LINE_OR_MOBILE';\n } // v1 metadata.\n // Legacy.\n // Deprecated.\n\n\n if (!metadata.type('MOBILE')) {\n return 'FIXED_LINE_OR_MOBILE';\n } // Check if the number happens to qualify as both fixed line and mobile.\n // (no such country in the minimal metadata set)\n\n /* istanbul ignore if */\n\n\n if (isNumberTypeEqualTo(nationalNumber, 'MOBILE', metadata)) {\n return 'FIXED_LINE_OR_MOBILE';\n }\n\n return 'FIXED_LINE';\n }\n\n for (var _i = 0, _NON_FIXED_LINE_PHONE = NON_FIXED_LINE_PHONE_TYPES; _i < _NON_FIXED_LINE_PHONE.length; _i++) {\n var type = _NON_FIXED_LINE_PHONE[_i];\n\n if (isNumberTypeEqualTo(nationalNumber, type, metadata)) {\n return type;\n }\n }\n}\nexport function isNumberTypeEqualTo(nationalNumber, type, metadata) {\n type = metadata.type(type);\n\n if (!type || !type.pattern()) {\n return false;\n } // Check if any possible number lengths are present;\n // if so, we use them to avoid checking\n // the validation pattern if they don't match.\n // If they are absent, this means they match\n // the general description, which we have\n // already checked before a specific number type.\n\n\n if (type.possibleLengths() && type.possibleLengths().indexOf(nationalNumber.length) < 0) {\n return false;\n }\n\n return matchesEntirely(nationalNumber, type.pattern());\n}","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is'); // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n\n\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}","// These mappings map a character (key) to a specific digit that should\n// replace it for normalization purposes. Non-European digits that\n// may be used in phone numbers are mapped to a European equivalent.\n//\n// E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\n//\nexport var DIGITS = {\n '0': '0',\n '1': '1',\n '2': '2',\n '3': '3',\n '4': '4',\n '5': '5',\n '6': '6',\n '7': '7',\n '8': '8',\n '9': '9',\n \"\\uFF10\": '0',\n // Fullwidth digit 0\n \"\\uFF11\": '1',\n // Fullwidth digit 1\n \"\\uFF12\": '2',\n // Fullwidth digit 2\n \"\\uFF13\": '3',\n // Fullwidth digit 3\n \"\\uFF14\": '4',\n // Fullwidth digit 4\n \"\\uFF15\": '5',\n // Fullwidth digit 5\n \"\\uFF16\": '6',\n // Fullwidth digit 6\n \"\\uFF17\": '7',\n // Fullwidth digit 7\n \"\\uFF18\": '8',\n // Fullwidth digit 8\n \"\\uFF19\": '9',\n // Fullwidth digit 9\n \"\\u0660\": '0',\n // Arabic-indic digit 0\n \"\\u0661\": '1',\n // Arabic-indic digit 1\n \"\\u0662\": '2',\n // Arabic-indic digit 2\n \"\\u0663\": '3',\n // Arabic-indic digit 3\n \"\\u0664\": '4',\n // Arabic-indic digit 4\n \"\\u0665\": '5',\n // Arabic-indic digit 5\n \"\\u0666\": '6',\n // Arabic-indic digit 6\n \"\\u0667\": '7',\n // Arabic-indic digit 7\n \"\\u0668\": '8',\n // Arabic-indic digit 8\n \"\\u0669\": '9',\n // Arabic-indic digit 9\n \"\\u06F0\": '0',\n // Eastern-Arabic digit 0\n \"\\u06F1\": '1',\n // Eastern-Arabic digit 1\n \"\\u06F2\": '2',\n // Eastern-Arabic digit 2\n \"\\u06F3\": '3',\n // Eastern-Arabic digit 3\n \"\\u06F4\": '4',\n // Eastern-Arabic digit 4\n \"\\u06F5\": '5',\n // Eastern-Arabic digit 5\n \"\\u06F6\": '6',\n // Eastern-Arabic digit 6\n \"\\u06F7\": '7',\n // Eastern-Arabic digit 7\n \"\\u06F8\": '8',\n // Eastern-Arabic digit 8\n \"\\u06F9\": '9' // Eastern-Arabic digit 9\n\n};\nexport function parseDigit(character) {\n return DIGITS[character];\n}\n/**\r\n * Parses phone number digits from a string.\r\n * Drops all punctuation leaving only digits.\r\n * Also converts wide-ascii and arabic-indic numerals to conventional numerals.\r\n * E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\r\n * @param {string} string\r\n * @return {string}\r\n * @example\r\n * ```js\r\n * parseDigits('8 (800) 555')\r\n * // Outputs '8800555'.\r\n * ```\r\n */\n\nexport default function parseDigits(string) {\n var result = ''; // Using `.split('')` here instead of normal `for ... of`\n // because the importing application doesn't neccessarily include an ES6 polyfill.\n // The `.split('')` approach discards \"exotic\" UTF-8 characters\n // (the ones consisting of four bytes) but digits\n // (including non-European ones) don't fall into that range\n // so such \"exotic\" characters would be discarded anyway.\n\n for (var _iterator = string.split(''), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {\n var _ref;\n\n if (_isArray) {\n if (_i >= _iterator.length) break;\n _ref = _iterator[_i++];\n } else {\n _i = _iterator.next();\n if (_i.done) break;\n _ref = _i.value;\n }\n\n var character = _ref;\n var digit = parseDigit(character);\n\n if (digit) {\n result += digit;\n }\n }\n\n return result;\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","// @noflow\nimport React, { ReactElement, useCallback } from 'react'\nimport { useTranslation } from 'react-i18next'\n\nimport greenCheckmark from 'assets/images/icons/checkmarks/green-checkmark.svg'\nimport greyCheckmark from 'assets/images/icons/checkmarks/grey-checkmark.svg'\nimport redCross from 'assets/images/icons/crosses/red-cross.svg'\n\ntype CheckmarkProps = {\n color: 'green' | 'grey' | 'red'\n}\n\nconst Checkmark = ({ color }: CheckmarkProps): ReactElement => {\n const { t } = useTranslation('checkout')\n const copy_context = 'validation'\n\n const colourToAsset = useCallback(() => {\n switch (color) {\n case 'green':\n return greenCheckmark\n case 'grey':\n return greyCheckmark\n case 'red':\n return redCross\n }\n }, [color])\n\n return (\n <img\n alt={t(`${copy_context}.image_alt`)}\n className=\"checkout__checkmark\"\n src={colourToAsset()}\n data-testid={`validation-indicator-${color}`}\n />\n )\n}\n\nconst Error = ({ errorMessage }: { errorMessage: string }): ReactElement => (\n <p className=\"checkout-input__validation-error\">{errorMessage}</p>\n)\n\nexport { Checkmark, Error }\n","import toInteger from \"../toInteger/index.js\";\nimport toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCWeek(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\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}","'use strict';\n\nexports.__esModule = true; // istanbul ignore next\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n 'default': obj\n };\n} // istanbul ignore next\n\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];\n }\n }\n\n newObj['default'] = obj;\n return newObj;\n }\n}\n\nvar _handlebarsBase = require('./handlebars/base');\n\nvar base = _interopRequireWildcard(_handlebarsBase); // Each of these augment the Handlebars object. No need to setup here.\n// (This is done to easily share code between commonjs and browse envs)\n\n\nvar _handlebarsSafeString = require('./handlebars/safe-string');\n\nvar _handlebarsSafeString2 = _interopRequireDefault(_handlebarsSafeString);\n\nvar _handlebarsException = require('./handlebars/exception');\n\nvar _handlebarsException2 = _interopRequireDefault(_handlebarsException);\n\nvar _handlebarsUtils = require('./handlebars/utils');\n\nvar Utils = _interopRequireWildcard(_handlebarsUtils);\n\nvar _handlebarsRuntime = require('./handlebars/runtime');\n\nvar runtime = _interopRequireWildcard(_handlebarsRuntime);\n\nvar _handlebarsNoConflict = require('./handlebars/no-conflict');\n\nvar _handlebarsNoConflict2 = _interopRequireDefault(_handlebarsNoConflict); // For compatibility and usage outside of module systems, make the Handlebars object a namespace\n\n\nfunction create() {\n var hb = new base.HandlebarsEnvironment();\n Utils.extend(hb, base);\n hb.SafeString = _handlebarsSafeString2['default'];\n hb.Exception = _handlebarsException2['default'];\n hb.Utils = Utils;\n hb.escapeExpression = Utils.escapeExpression;\n hb.VM = runtime;\n\n hb.template = function (spec) {\n return runtime.template(spec, hb);\n };\n\n return hb;\n}\n\nvar inst = create();\ninst.create = create;\n\n_handlebarsNoConflict2['default'](inst);\n\ninst['default'] = inst;\nexports['default'] = inst;\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\n\nvar _utils = require('../utils');\n\nexports['default'] = function (instance) {\n instance.registerHelper('blockHelperMissing', function (context, options) {\n var inverse = options.inverse,\n fn = options.fn;\n\n if (context === true) {\n return fn(this);\n } else if (context === false || context == null) {\n return inverse(this);\n } else if (_utils.isArray(context)) {\n if (context.length > 0) {\n if (options.ids) {\n options.ids = [options.name];\n }\n\n return instance.helpers.each(context, options);\n } else {\n return inverse(this);\n }\n } else {\n if (options.data && options.ids) {\n var data = _utils.createFrame(options.data);\n\n data.contextPath = _utils.appendContextPath(options.data.contextPath, options.name);\n options = {\n data: data\n };\n }\n\n return fn(context, options);\n }\n });\n};\n\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true; // istanbul ignore next\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n 'default': obj\n };\n}\n\nvar _utils = require('../utils');\n\nvar _exception = require('../exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nexports['default'] = function (instance) {\n instance.registerHelper('each', function (context, options) {\n if (!options) {\n throw new _exception2['default']('Must pass iterator to #each');\n }\n\n var fn = options.fn,\n inverse = options.inverse,\n i = 0,\n ret = '',\n data = undefined,\n contextPath = undefined;\n\n if (options.data && options.ids) {\n contextPath = _utils.appendContextPath(options.data.contextPath, options.ids[0]) + '.';\n }\n\n if (_utils.isFunction(context)) {\n context = context.call(this);\n }\n\n if (options.data) {\n data = _utils.createFrame(options.data);\n }\n\n function execIteration(field, index, last) {\n if (data) {\n data.key = field;\n data.index = index;\n data.first = index === 0;\n data.last = !!last;\n\n if (contextPath) {\n data.contextPath = contextPath + field;\n }\n }\n\n ret = ret + fn(context[field], {\n data: data,\n blockParams: _utils.blockParams([context[field], field], [contextPath + field, null])\n });\n }\n\n if (context && typeof context === 'object') {\n if (_utils.isArray(context)) {\n for (var j = context.length; i < j; i++) {\n if (i in context) {\n execIteration(i, i, i === context.length - 1);\n }\n }\n } else if (global.Symbol && context[global.Symbol.iterator]) {\n var newContext = [];\n var iterator = context[global.Symbol.iterator]();\n\n for (var it = iterator.next(); !it.done; it = iterator.next()) {\n newContext.push(it.value);\n }\n\n context = newContext;\n\n for (var j = context.length; i < j; i++) {\n execIteration(i, i, i === context.length - 1);\n }\n } else {\n (function () {\n var priorKey = undefined;\n Object.keys(context).forEach(function (key) {\n // We're running the iterations one step out of sync so we can detect\n // the last iteration without have to scan the object twice and create\n // an itermediate keys array.\n if (priorKey !== undefined) {\n execIteration(priorKey, i - 1);\n }\n\n priorKey = key;\n i++;\n });\n\n if (priorKey !== undefined) {\n execIteration(priorKey, i - 1, true);\n }\n })();\n }\n }\n\n if (i === 0) {\n ret = inverse(this);\n }\n\n return ret;\n });\n};\n\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true; // istanbul ignore next\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n 'default': obj\n };\n}\n\nvar _exception = require('../exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nexports['default'] = function (instance) {\n instance.registerHelper('helperMissing', function ()\n /* [args, ]options */\n {\n if (arguments.length === 1) {\n // A missing field in a {{foo}} construct.\n return undefined;\n } else {\n // Someone is actually trying to call something, blow up.\n throw new _exception2['default']('Missing helper: \"' + arguments[arguments.length - 1].name + '\"');\n }\n });\n};\n\nmodule.exports = exports['default'];","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","'use strict';\n\nexports.__esModule = true; // istanbul ignore next\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n 'default': obj\n };\n}\n\nvar _utils = require('../utils');\n\nvar _exception = require('../exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nexports['default'] = function (instance) {\n instance.registerHelper('if', function (conditional, options) {\n if (arguments.length != 2) {\n throw new _exception2['default']('#if requires exactly one argument');\n }\n\n if (_utils.isFunction(conditional)) {\n conditional = conditional.call(this);\n } // Default behavior is to render the positive path if the value is truthy and not empty.\n // The `includeZero` option may be set to treat the condtional as purely not empty based on the\n // behavior of isEmpty. Effectively this determines if 0 is handled by the positive path or negative.\n\n\n if (!options.hash.includeZero && !conditional || _utils.isEmpty(conditional)) {\n return options.inverse(this);\n } else {\n return options.fn(this);\n }\n });\n instance.registerHelper('unless', function (conditional, options) {\n if (arguments.length != 2) {\n throw new _exception2['default']('#unless requires exactly one argument');\n }\n\n return instance.helpers['if'].call(this, conditional, {\n fn: options.inverse,\n inverse: options.fn,\n hash: options.hash\n });\n });\n};\n\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\n\nexports['default'] = function (instance) {\n instance.registerHelper('log', function ()\n /* message, options */\n {\n var args = [undefined],\n options = arguments[arguments.length - 1];\n\n for (var i = 0; i < arguments.length - 1; i++) {\n args.push(arguments[i]);\n }\n\n var level = 1;\n\n if (options.hash.level != null) {\n level = options.hash.level;\n } else if (options.data && options.data.level != null) {\n level = options.data.level;\n }\n\n args[0] = level;\n instance.log.apply(instance, args);\n });\n};\n\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\n\nexports['default'] = function (instance) {\n instance.registerHelper('lookup', function (obj, field, options) {\n if (!obj) {\n // Note for 5.0: Change to \"obj == null\" in 5.0\n return obj;\n }\n\n return options.lookupProperty(obj, field);\n });\n};\n\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true; // istanbul ignore next\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n 'default': obj\n };\n}\n\nvar _utils = require('../utils');\n\nvar _exception = require('../exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nexports['default'] = function (instance) {\n instance.registerHelper('with', function (context, options) {\n if (arguments.length != 2) {\n throw new _exception2['default']('#with requires exactly one argument');\n }\n\n if (_utils.isFunction(context)) {\n context = context.call(this);\n }\n\n var fn = options.fn;\n\n if (!_utils.isEmpty(context)) {\n var data = options.data;\n\n if (options.data && options.ids) {\n data = _utils.createFrame(options.data);\n data.contextPath = _utils.appendContextPath(options.data.contextPath, options.ids[0]);\n }\n\n return fn(context, {\n data: data,\n blockParams: _utils.blockParams([context], [data && data.contextPath])\n });\n } else {\n return options.inverse(this);\n }\n });\n};\n\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports.registerDefaultDecorators = registerDefaultDecorators; // istanbul ignore next\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n 'default': obj\n };\n}\n\nvar _decoratorsInline = require('./decorators/inline');\n\nvar _decoratorsInline2 = _interopRequireDefault(_decoratorsInline);\n\nfunction registerDefaultDecorators(instance) {\n _decoratorsInline2['default'](instance);\n}","'use strict';\n\nexports.__esModule = true;\n\nvar _utils = require('../utils');\n\nexports['default'] = function (instance) {\n instance.registerDecorator('inline', function (fn, props, container, options) {\n var ret = fn;\n\n if (!props.partials) {\n props.partials = {};\n\n ret = function ret(context, options) {\n // Create a new partials stack frame prior to exec.\n var original = container.partials;\n container.partials = _utils.extend({}, original, props.partials);\n var ret = fn(context, options);\n container.partials = original;\n return ret;\n };\n }\n\n props.partials[options.args[0]] = options.fn;\n return ret;\n });\n};\n\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports.createNewLookupObject = createNewLookupObject;\n\nvar _utils = require('../utils');\n/**\n * Create a new object with \"null\"-prototype to avoid truthy results on prototype properties.\n * The resulting object can be used with \"object[property]\" to check if a property exists\n * @param {...object} sources a varargs parameter of source objects that will be merged\n * @returns {object}\n */\n\n\nfunction createNewLookupObject() {\n for (var _len = arguments.length, sources = Array(_len), _key = 0; _key < _len; _key++) {\n sources[_key] = arguments[_key];\n }\n\n return _utils.extend.apply(undefined, [Object.create(null)].concat(sources));\n}","// Build out our basic SafeString type\n'use strict';\n\nexports.__esModule = true;\n\nfunction SafeString(string) {\n this.string = string;\n}\n\nSafeString.prototype.toString = SafeString.prototype.toHTML = function () {\n return '' + this.string;\n};\n\nexports['default'] = SafeString;\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports.checkRevision = checkRevision;\nexports.template = template;\nexports.wrapProgram = wrapProgram;\nexports.resolvePartial = resolvePartial;\nexports.invokePartial = invokePartial;\nexports.noop = noop; // istanbul ignore next\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n 'default': obj\n };\n} // istanbul ignore next\n\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];\n }\n }\n\n newObj['default'] = obj;\n return newObj;\n }\n}\n\nvar _utils = require('./utils');\n\nvar Utils = _interopRequireWildcard(_utils);\n\nvar _exception = require('./exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nvar _base = require('./base');\n\nvar _helpers = require('./helpers');\n\nvar _internalWrapHelper = require('./internal/wrapHelper');\n\nvar _internalProtoAccess = require('./internal/proto-access');\n\nfunction checkRevision(compilerInfo) {\n var compilerRevision = compilerInfo && compilerInfo[0] || 1,\n currentRevision = _base.COMPILER_REVISION;\n\n if (compilerRevision >= _base.LAST_COMPATIBLE_COMPILER_REVISION && compilerRevision <= _base.COMPILER_REVISION) {\n return;\n }\n\n if (compilerRevision < _base.LAST_COMPATIBLE_COMPILER_REVISION) {\n var runtimeVersions = _base.REVISION_CHANGES[currentRevision],\n compilerVersions = _base.REVISION_CHANGES[compilerRevision];\n throw new _exception2['default']('Template was precompiled with an older version of Handlebars than the current runtime. ' + 'Please update your precompiler to a newer version (' + runtimeVersions + ') or downgrade your runtime to an older version (' + compilerVersions + ').');\n } else {\n // Use the embedded version info since the runtime doesn't know about this revision yet\n throw new _exception2['default']('Template was precompiled with a newer version of Handlebars than the current runtime. ' + 'Please update your runtime to a newer version (' + compilerInfo[1] + ').');\n }\n}\n\nfunction template(templateSpec, env) {\n /* istanbul ignore next */\n if (!env) {\n throw new _exception2['default']('No environment passed to template');\n }\n\n if (!templateSpec || !templateSpec.main) {\n throw new _exception2['default']('Unknown template object: ' + typeof templateSpec);\n }\n\n templateSpec.main.decorator = templateSpec.main_d; // Note: Using env.VM references rather than local var references throughout this section to allow\n // for external users to override these as pseudo-supported APIs.\n\n env.VM.checkRevision(templateSpec.compiler); // backwards compatibility for precompiled templates with compiler-version 7 (<4.3.0)\n\n var templateWasPrecompiledWithCompilerV7 = templateSpec.compiler && templateSpec.compiler[0] === 7;\n\n function invokePartialWrapper(partial, context, options) {\n if (options.hash) {\n context = Utils.extend({}, context, options.hash);\n\n if (options.ids) {\n options.ids[0] = true;\n }\n }\n\n partial = env.VM.resolvePartial.call(this, partial, context, options);\n var extendedOptions = Utils.extend({}, options, {\n hooks: this.hooks,\n protoAccessControl: this.protoAccessControl\n });\n var result = env.VM.invokePartial.call(this, partial, context, extendedOptions);\n\n if (result == null && env.compile) {\n options.partials[options.name] = env.compile(partial, templateSpec.compilerOptions, env);\n result = options.partials[options.name](context, extendedOptions);\n }\n\n if (result != null) {\n if (options.indent) {\n var lines = result.split('\\n');\n\n for (var i = 0, l = lines.length; i < l; i++) {\n if (!lines[i] && i + 1 === l) {\n break;\n }\n\n lines[i] = options.indent + lines[i];\n }\n\n result = lines.join('\\n');\n }\n\n return result;\n } else {\n throw new _exception2['default']('The partial ' + options.name + ' could not be compiled when running in runtime-only mode');\n }\n } // Just add water\n\n\n var container = {\n strict: function strict(obj, name, loc) {\n if (!obj || !(name in obj)) {\n throw new _exception2['default']('\"' + name + '\" not defined in ' + obj, {\n loc: loc\n });\n }\n\n return container.lookupProperty(obj, name);\n },\n lookupProperty: function lookupProperty(parent, propertyName) {\n var result = parent[propertyName];\n\n if (result == null) {\n return result;\n }\n\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return result;\n }\n\n if (_internalProtoAccess.resultIsAllowed(result, container.protoAccessControl, propertyName)) {\n return result;\n }\n\n return undefined;\n },\n lookup: function lookup(depths, name) {\n var len = depths.length;\n\n for (var i = 0; i < len; i++) {\n var result = depths[i] && container.lookupProperty(depths[i], name);\n\n if (result != null) {\n return depths[i][name];\n }\n }\n },\n lambda: function lambda(current, context) {\n return typeof current === 'function' ? current.call(context) : current;\n },\n escapeExpression: Utils.escapeExpression,\n invokePartial: invokePartialWrapper,\n fn: function fn(i) {\n var ret = templateSpec[i];\n ret.decorator = templateSpec[i + '_d'];\n return ret;\n },\n programs: [],\n program: function program(i, data, declaredBlockParams, blockParams, depths) {\n var programWrapper = this.programs[i],\n fn = this.fn(i);\n\n if (data || depths || blockParams || declaredBlockParams) {\n programWrapper = wrapProgram(this, i, fn, data, declaredBlockParams, blockParams, depths);\n } else if (!programWrapper) {\n programWrapper = this.programs[i] = wrapProgram(this, i, fn);\n }\n\n return programWrapper;\n },\n data: function data(value, depth) {\n while (value && depth--) {\n value = value._parent;\n }\n\n return value;\n },\n mergeIfNeeded: function mergeIfNeeded(param, common) {\n var obj = param || common;\n\n if (param && common && param !== common) {\n obj = Utils.extend({}, common, param);\n }\n\n return obj;\n },\n // An empty object to use as replacement for null-contexts\n nullContext: Object.seal({}),\n noop: env.VM.noop,\n compilerInfo: templateSpec.compiler\n };\n\n function ret(context) {\n var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n var data = options.data;\n\n ret._setup(options);\n\n if (!options.partial && templateSpec.useData) {\n data = initData(context, data);\n }\n\n var depths = undefined,\n blockParams = templateSpec.useBlockParams ? [] : undefined;\n\n if (templateSpec.useDepths) {\n if (options.depths) {\n depths = context != options.depths[0] ? [context].concat(options.depths) : options.depths;\n } else {\n depths = [context];\n }\n }\n\n function main(context\n /*, options*/\n ) {\n return '' + templateSpec.main(container, context, container.helpers, container.partials, data, blockParams, depths);\n }\n\n main = executeDecorators(templateSpec.main, main, container, options.depths || [], data, blockParams);\n return main(context, options);\n }\n\n ret.isTop = true;\n\n ret._setup = function (options) {\n if (!options.partial) {\n var mergedHelpers = Utils.extend({}, env.helpers, options.helpers);\n wrapHelpersToPassLookupProperty(mergedHelpers, container);\n container.helpers = mergedHelpers;\n\n if (templateSpec.usePartial) {\n // Use mergeIfNeeded here to prevent compiling global partials multiple times\n container.partials = container.mergeIfNeeded(options.partials, env.partials);\n }\n\n if (templateSpec.usePartial || templateSpec.useDecorators) {\n container.decorators = Utils.extend({}, env.decorators, options.decorators);\n }\n\n container.hooks = {};\n container.protoAccessControl = _internalProtoAccess.createProtoAccessControl(options);\n var keepHelperInHelpers = options.allowCallsToHelperMissing || templateWasPrecompiledWithCompilerV7;\n\n _helpers.moveHelperToHooks(container, 'helperMissing', keepHelperInHelpers);\n\n _helpers.moveHelperToHooks(container, 'blockHelperMissing', keepHelperInHelpers);\n } else {\n container.protoAccessControl = options.protoAccessControl; // internal option\n\n container.helpers = options.helpers;\n container.partials = options.partials;\n container.decorators = options.decorators;\n container.hooks = options.hooks;\n }\n };\n\n ret._child = function (i, data, blockParams, depths) {\n if (templateSpec.useBlockParams && !blockParams) {\n throw new _exception2['default']('must pass block params');\n }\n\n if (templateSpec.useDepths && !depths) {\n throw new _exception2['default']('must pass parent depths');\n }\n\n return wrapProgram(container, i, templateSpec[i], data, 0, blockParams, depths);\n };\n\n return ret;\n}\n\nfunction wrapProgram(container, i, fn, data, declaredBlockParams, blockParams, depths) {\n function prog(context) {\n var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n var currentDepths = depths;\n\n if (depths && context != depths[0] && !(context === container.nullContext && depths[0] === null)) {\n currentDepths = [context].concat(depths);\n }\n\n return fn(container, context, container.helpers, container.partials, options.data || data, blockParams && [options.blockParams].concat(blockParams), currentDepths);\n }\n\n prog = executeDecorators(fn, prog, container, depths, data, blockParams);\n prog.program = i;\n prog.depth = depths ? depths.length : 0;\n prog.blockParams = declaredBlockParams || 0;\n return prog;\n}\n/**\n * This is currently part of the official API, therefore implementation details should not be changed.\n */\n\n\nfunction resolvePartial(partial, context, options) {\n if (!partial) {\n if (options.name === '@partial-block') {\n partial = options.data['partial-block'];\n } else {\n partial = options.partials[options.name];\n }\n } else if (!partial.call && !options.name) {\n // This is a dynamic partial that returned a string\n options.name = partial;\n partial = options.partials[partial];\n }\n\n return partial;\n}\n\nfunction invokePartial(partial, context, options) {\n // Use the current closure context to save the partial-block if this partial\n var currentPartialBlock = options.data && options.data['partial-block'];\n options.partial = true;\n\n if (options.ids) {\n options.data.contextPath = options.ids[0] || options.data.contextPath;\n }\n\n var partialBlock = undefined;\n\n if (options.fn && options.fn !== noop) {\n (function () {\n options.data = _base.createFrame(options.data); // Wrapper function to get access to currentPartialBlock from the closure\n\n var fn = options.fn;\n\n partialBlock = options.data['partial-block'] = function partialBlockWrapper(context) {\n var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1]; // Restore the partial-block from the closure for the execution of the block\n // i.e. the part inside the block of the partial call.\n\n options.data = _base.createFrame(options.data);\n options.data['partial-block'] = currentPartialBlock;\n return fn(context, options);\n };\n\n if (fn.partials) {\n options.partials = Utils.extend({}, options.partials, fn.partials);\n }\n })();\n }\n\n if (partial === undefined && partialBlock) {\n partial = partialBlock;\n }\n\n if (partial === undefined) {\n throw new _exception2['default']('The partial ' + options.name + ' could not be found');\n } else if (partial instanceof Function) {\n return partial(context, options);\n }\n}\n\nfunction noop() {\n return '';\n}\n\nfunction initData(context, data) {\n if (!data || !('root' in data)) {\n data = data ? _base.createFrame(data) : {};\n data.root = context;\n }\n\n return data;\n}\n\nfunction executeDecorators(fn, prog, container, depths, data, blockParams) {\n if (fn.decorator) {\n var props = {};\n prog = fn.decorator(prog, props, container, depths && depths[0], data, blockParams, depths);\n Utils.extend(prog, props);\n }\n\n return prog;\n}\n\nfunction wrapHelpersToPassLookupProperty(mergedHelpers, container) {\n Object.keys(mergedHelpers).forEach(function (helperName) {\n var helper = mergedHelpers[helperName];\n mergedHelpers[helperName] = passLookupPropertyOption(helper, container);\n });\n}\n\nfunction passLookupPropertyOption(helper, container) {\n var lookupProperty = container.lookupProperty;\n return _internalWrapHelper.wrapHelper(helper, function (options) {\n return Utils.extend({\n lookupProperty: lookupProperty\n }, options);\n });\n}","'use strict';\n\nexports.__esModule = true;\nexports.wrapHelper = wrapHelper;\n\nfunction wrapHelper(helper, transformOptionsFn) {\n if (typeof helper !== 'function') {\n // This should not happen, but apparently it does in https://github.com/wycats/handlebars.js/issues/1639\n // We try to make the wrapper least-invasive by not wrapping it, if the helper is not a function.\n return helper;\n }\n\n var wrapper = function wrapper()\n /* dynamic arguments */\n {\n var options = arguments[arguments.length - 1];\n arguments[arguments.length - 1] = transformOptionsFn(options);\n return helper.apply(this, arguments);\n };\n\n return wrapper;\n}","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is'); // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n\n\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}","'use strict';\n\nexports.__esModule = true;\nexports.parseWithoutProcessing = parseWithoutProcessing;\nexports.parse = parse; // istanbul ignore next\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];\n }\n }\n\n newObj['default'] = obj;\n return newObj;\n }\n} // istanbul ignore next\n\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n 'default': obj\n };\n}\n\nvar _parser = require('./parser');\n\nvar _parser2 = _interopRequireDefault(_parser);\n\nvar _whitespaceControl = require('./whitespace-control');\n\nvar _whitespaceControl2 = _interopRequireDefault(_whitespaceControl);\n\nvar _helpers = require('./helpers');\n\nvar Helpers = _interopRequireWildcard(_helpers);\n\nvar _utils = require('../utils');\n\nexports.parser = _parser2['default'];\nvar yy = {};\n\n_utils.extend(yy, Helpers);\n\nfunction parseWithoutProcessing(input, options) {\n // Just return if an already-compiled AST was passed in.\n if (input.type === 'Program') {\n return input;\n }\n\n _parser2['default'].yy = yy; // Altering the shared object here, but this is ok as parser is a sync operation\n\n yy.locInfo = function (locInfo) {\n return new yy.SourceLocation(options && options.srcName, locInfo);\n };\n\n var ast = _parser2['default'].parse(input);\n\n return ast;\n}\n\nfunction parse(input, options) {\n var ast = parseWithoutProcessing(input, options);\n var strip = new _whitespaceControl2['default'](options);\n return strip.accept(ast);\n}","// File ignored in coverage tests via setting in .istanbul.yml\n\n/* Jison generated parser */\n\"use strict\";\n\nexports.__esModule = true;\n\nvar handlebars = function () {\n var parser = {\n trace: function trace() {},\n yy: {},\n symbols_: {\n \"error\": 2,\n \"root\": 3,\n \"program\": 4,\n \"EOF\": 5,\n \"program_repetition0\": 6,\n \"statement\": 7,\n \"mustache\": 8,\n \"block\": 9,\n \"rawBlock\": 10,\n \"partial\": 11,\n \"partialBlock\": 12,\n \"content\": 13,\n \"COMMENT\": 14,\n \"CONTENT\": 15,\n \"openRawBlock\": 16,\n \"rawBlock_repetition0\": 17,\n \"END_RAW_BLOCK\": 18,\n \"OPEN_RAW_BLOCK\": 19,\n \"helperName\": 20,\n \"openRawBlock_repetition0\": 21,\n \"openRawBlock_option0\": 22,\n \"CLOSE_RAW_BLOCK\": 23,\n \"openBlock\": 24,\n \"block_option0\": 25,\n \"closeBlock\": 26,\n \"openInverse\": 27,\n \"block_option1\": 28,\n \"OPEN_BLOCK\": 29,\n \"openBlock_repetition0\": 30,\n \"openBlock_option0\": 31,\n \"openBlock_option1\": 32,\n \"CLOSE\": 33,\n \"OPEN_INVERSE\": 34,\n \"openInverse_repetition0\": 35,\n \"openInverse_option0\": 36,\n \"openInverse_option1\": 37,\n \"openInverseChain\": 38,\n \"OPEN_INVERSE_CHAIN\": 39,\n \"openInverseChain_repetition0\": 40,\n \"openInverseChain_option0\": 41,\n \"openInverseChain_option1\": 42,\n \"inverseAndProgram\": 43,\n \"INVERSE\": 44,\n \"inverseChain\": 45,\n \"inverseChain_option0\": 46,\n \"OPEN_ENDBLOCK\": 47,\n \"OPEN\": 48,\n \"mustache_repetition0\": 49,\n \"mustache_option0\": 50,\n \"OPEN_UNESCAPED\": 51,\n \"mustache_repetition1\": 52,\n \"mustache_option1\": 53,\n \"CLOSE_UNESCAPED\": 54,\n \"OPEN_PARTIAL\": 55,\n \"partialName\": 56,\n \"partial_repetition0\": 57,\n \"partial_option0\": 58,\n \"openPartialBlock\": 59,\n \"OPEN_PARTIAL_BLOCK\": 60,\n \"openPartialBlock_repetition0\": 61,\n \"openPartialBlock_option0\": 62,\n \"param\": 63,\n \"sexpr\": 64,\n \"OPEN_SEXPR\": 65,\n \"sexpr_repetition0\": 66,\n \"sexpr_option0\": 67,\n \"CLOSE_SEXPR\": 68,\n \"hash\": 69,\n \"hash_repetition_plus0\": 70,\n \"hashSegment\": 71,\n \"ID\": 72,\n \"EQUALS\": 73,\n \"blockParams\": 74,\n \"OPEN_BLOCK_PARAMS\": 75,\n \"blockParams_repetition_plus0\": 76,\n \"CLOSE_BLOCK_PARAMS\": 77,\n \"path\": 78,\n \"dataName\": 79,\n \"STRING\": 80,\n \"NUMBER\": 81,\n \"BOOLEAN\": 82,\n \"UNDEFINED\": 83,\n \"NULL\": 84,\n \"DATA\": 85,\n \"pathSegments\": 86,\n \"SEP\": 87,\n \"$accept\": 0,\n \"$end\": 1\n },\n terminals_: {\n 2: \"error\",\n 5: \"EOF\",\n 14: \"COMMENT\",\n 15: \"CONTENT\",\n 18: \"END_RAW_BLOCK\",\n 19: \"OPEN_RAW_BLOCK\",\n 23: \"CLOSE_RAW_BLOCK\",\n 29: \"OPEN_BLOCK\",\n 33: \"CLOSE\",\n 34: \"OPEN_INVERSE\",\n 39: \"OPEN_INVERSE_CHAIN\",\n 44: \"INVERSE\",\n 47: \"OPEN_ENDBLOCK\",\n 48: \"OPEN\",\n 51: \"OPEN_UNESCAPED\",\n 54: \"CLOSE_UNESCAPED\",\n 55: \"OPEN_PARTIAL\",\n 60: \"OPEN_PARTIAL_BLOCK\",\n 65: \"OPEN_SEXPR\",\n 68: \"CLOSE_SEXPR\",\n 72: \"ID\",\n 73: \"EQUALS\",\n 75: \"OPEN_BLOCK_PARAMS\",\n 77: \"CLOSE_BLOCK_PARAMS\",\n 80: \"STRING\",\n 81: \"NUMBER\",\n 82: \"BOOLEAN\",\n 83: \"UNDEFINED\",\n 84: \"NULL\",\n 85: \"DATA\",\n 87: \"SEP\"\n },\n productions_: [0, [3, 2], [4, 1], [7, 1], [7, 1], [7, 1], [7, 1], [7, 1], [7, 1], [7, 1], [13, 1], [10, 3], [16, 5], [9, 4], [9, 4], [24, 6], [27, 6], [38, 6], [43, 2], [45, 3], [45, 1], [26, 3], [8, 5], [8, 5], [11, 5], [12, 3], [59, 5], [63, 1], [63, 1], [64, 5], [69, 1], [71, 3], [74, 3], [20, 1], [20, 1], [20, 1], [20, 1], [20, 1], [20, 1], [20, 1], [56, 1], [56, 1], [79, 2], [78, 1], [86, 3], [86, 1], [6, 0], [6, 2], [17, 0], [17, 2], [21, 0], [21, 2], [22, 0], [22, 1], [25, 0], [25, 1], [28, 0], [28, 1], [30, 0], [30, 2], [31, 0], [31, 1], [32, 0], [32, 1], [35, 0], [35, 2], [36, 0], [36, 1], [37, 0], [37, 1], [40, 0], [40, 2], [41, 0], [41, 1], [42, 0], [42, 1], [46, 0], [46, 1], [49, 0], [49, 2], [50, 0], [50, 1], [52, 0], [52, 2], [53, 0], [53, 1], [57, 0], [57, 2], [58, 0], [58, 1], [61, 0], [61, 2], [62, 0], [62, 1], [66, 0], [66, 2], [67, 0], [67, 1], [70, 1], [70, 2], [76, 1], [76, 2]],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n\n switch (yystate) {\n case 1:\n return $$[$0 - 1];\n break;\n\n case 2:\n this.$ = yy.prepareProgram($$[$0]);\n break;\n\n case 3:\n this.$ = $$[$0];\n break;\n\n case 4:\n this.$ = $$[$0];\n break;\n\n case 5:\n this.$ = $$[$0];\n break;\n\n case 6:\n this.$ = $$[$0];\n break;\n\n case 7:\n this.$ = $$[$0];\n break;\n\n case 8:\n this.$ = $$[$0];\n break;\n\n case 9:\n this.$ = {\n type: 'CommentStatement',\n value: yy.stripComment($$[$0]),\n strip: yy.stripFlags($$[$0], $$[$0]),\n loc: yy.locInfo(this._$)\n };\n break;\n\n case 10:\n this.$ = {\n type: 'ContentStatement',\n original: $$[$0],\n value: $$[$0],\n loc: yy.locInfo(this._$)\n };\n break;\n\n case 11:\n this.$ = yy.prepareRawBlock($$[$0 - 2], $$[$0 - 1], $$[$0], this._$);\n break;\n\n case 12:\n this.$ = {\n path: $$[$0 - 3],\n params: $$[$0 - 2],\n hash: $$[$0 - 1]\n };\n break;\n\n case 13:\n this.$ = yy.prepareBlock($$[$0 - 3], $$[$0 - 2], $$[$0 - 1], $$[$0], false, this._$);\n break;\n\n case 14:\n this.$ = yy.prepareBlock($$[$0 - 3], $$[$0 - 2], $$[$0 - 1], $$[$0], true, this._$);\n break;\n\n case 15:\n this.$ = {\n open: $$[$0 - 5],\n path: $$[$0 - 4],\n params: $$[$0 - 3],\n hash: $$[$0 - 2],\n blockParams: $$[$0 - 1],\n strip: yy.stripFlags($$[$0 - 5], $$[$0])\n };\n break;\n\n case 16:\n this.$ = {\n path: $$[$0 - 4],\n params: $$[$0 - 3],\n hash: $$[$0 - 2],\n blockParams: $$[$0 - 1],\n strip: yy.stripFlags($$[$0 - 5], $$[$0])\n };\n break;\n\n case 17:\n this.$ = {\n path: $$[$0 - 4],\n params: $$[$0 - 3],\n hash: $$[$0 - 2],\n blockParams: $$[$0 - 1],\n strip: yy.stripFlags($$[$0 - 5], $$[$0])\n };\n break;\n\n case 18:\n this.$ = {\n strip: yy.stripFlags($$[$0 - 1], $$[$0 - 1]),\n program: $$[$0]\n };\n break;\n\n case 19:\n var inverse = yy.prepareBlock($$[$0 - 2], $$[$0 - 1], $$[$0], $$[$0], false, this._$),\n program = yy.prepareProgram([inverse], $$[$0 - 1].loc);\n program.chained = true;\n this.$ = {\n strip: $$[$0 - 2].strip,\n program: program,\n chain: true\n };\n break;\n\n case 20:\n this.$ = $$[$0];\n break;\n\n case 21:\n this.$ = {\n path: $$[$0 - 1],\n strip: yy.stripFlags($$[$0 - 2], $$[$0])\n };\n break;\n\n case 22:\n this.$ = yy.prepareMustache($$[$0 - 3], $$[$0 - 2], $$[$0 - 1], $$[$0 - 4], yy.stripFlags($$[$0 - 4], $$[$0]), this._$);\n break;\n\n case 23:\n this.$ = yy.prepareMustache($$[$0 - 3], $$[$0 - 2], $$[$0 - 1], $$[$0 - 4], yy.stripFlags($$[$0 - 4], $$[$0]), this._$);\n break;\n\n case 24:\n this.$ = {\n type: 'PartialStatement',\n name: $$[$0 - 3],\n params: $$[$0 - 2],\n hash: $$[$0 - 1],\n indent: '',\n strip: yy.stripFlags($$[$0 - 4], $$[$0]),\n loc: yy.locInfo(this._$)\n };\n break;\n\n case 25:\n this.$ = yy.preparePartialBlock($$[$0 - 2], $$[$0 - 1], $$[$0], this._$);\n break;\n\n case 26:\n this.$ = {\n path: $$[$0 - 3],\n params: $$[$0 - 2],\n hash: $$[$0 - 1],\n strip: yy.stripFlags($$[$0 - 4], $$[$0])\n };\n break;\n\n case 27:\n this.$ = $$[$0];\n break;\n\n case 28:\n this.$ = $$[$0];\n break;\n\n case 29:\n this.$ = {\n type: 'SubExpression',\n path: $$[$0 - 3],\n params: $$[$0 - 2],\n hash: $$[$0 - 1],\n loc: yy.locInfo(this._$)\n };\n break;\n\n case 30:\n this.$ = {\n type: 'Hash',\n pairs: $$[$0],\n loc: yy.locInfo(this._$)\n };\n break;\n\n case 31:\n this.$ = {\n type: 'HashPair',\n key: yy.id($$[$0 - 2]),\n value: $$[$0],\n loc: yy.locInfo(this._$)\n };\n break;\n\n case 32:\n this.$ = yy.id($$[$0 - 1]);\n break;\n\n case 33:\n this.$ = $$[$0];\n break;\n\n case 34:\n this.$ = $$[$0];\n break;\n\n case 35:\n this.$ = {\n type: 'StringLiteral',\n value: $$[$0],\n original: $$[$0],\n loc: yy.locInfo(this._$)\n };\n break;\n\n case 36:\n this.$ = {\n type: 'NumberLiteral',\n value: Number($$[$0]),\n original: Number($$[$0]),\n loc: yy.locInfo(this._$)\n };\n break;\n\n case 37:\n this.$ = {\n type: 'BooleanLiteral',\n value: $$[$0] === 'true',\n original: $$[$0] === 'true',\n loc: yy.locInfo(this._$)\n };\n break;\n\n case 38:\n this.$ = {\n type: 'UndefinedLiteral',\n original: undefined,\n value: undefined,\n loc: yy.locInfo(this._$)\n };\n break;\n\n case 39:\n this.$ = {\n type: 'NullLiteral',\n original: null,\n value: null,\n loc: yy.locInfo(this._$)\n };\n break;\n\n case 40:\n this.$ = $$[$0];\n break;\n\n case 41:\n this.$ = $$[$0];\n break;\n\n case 42:\n this.$ = yy.preparePath(true, $$[$0], this._$);\n break;\n\n case 43:\n this.$ = yy.preparePath(false, $$[$0], this._$);\n break;\n\n case 44:\n $$[$0 - 2].push({\n part: yy.id($$[$0]),\n original: $$[$0],\n separator: $$[$0 - 1]\n });\n this.$ = $$[$0 - 2];\n break;\n\n case 45:\n this.$ = [{\n part: yy.id($$[$0]),\n original: $$[$0]\n }];\n break;\n\n case 46:\n this.$ = [];\n break;\n\n case 47:\n $$[$0 - 1].push($$[$0]);\n break;\n\n case 48:\n this.$ = [];\n break;\n\n case 49:\n $$[$0 - 1].push($$[$0]);\n break;\n\n case 50:\n this.$ = [];\n break;\n\n case 51:\n $$[$0 - 1].push($$[$0]);\n break;\n\n case 58:\n this.$ = [];\n break;\n\n case 59:\n $$[$0 - 1].push($$[$0]);\n break;\n\n case 64:\n this.$ = [];\n break;\n\n case 65:\n $$[$0 - 1].push($$[$0]);\n break;\n\n case 70:\n this.$ = [];\n break;\n\n case 71:\n $$[$0 - 1].push($$[$0]);\n break;\n\n case 78:\n this.$ = [];\n break;\n\n case 79:\n $$[$0 - 1].push($$[$0]);\n break;\n\n case 82:\n this.$ = [];\n break;\n\n case 83:\n $$[$0 - 1].push($$[$0]);\n break;\n\n case 86:\n this.$ = [];\n break;\n\n case 87:\n $$[$0 - 1].push($$[$0]);\n break;\n\n case 90:\n this.$ = [];\n break;\n\n case 91:\n $$[$0 - 1].push($$[$0]);\n break;\n\n case 94:\n this.$ = [];\n break;\n\n case 95:\n $$[$0 - 1].push($$[$0]);\n break;\n\n case 98:\n this.$ = [$$[$0]];\n break;\n\n case 99:\n $$[$0 - 1].push($$[$0]);\n break;\n\n case 100:\n this.$ = [$$[$0]];\n break;\n\n case 101:\n $$[$0 - 1].push($$[$0]);\n break;\n }\n },\n table: [{\n 3: 1,\n 4: 2,\n 5: [2, 46],\n 6: 3,\n 14: [2, 46],\n 15: [2, 46],\n 19: [2, 46],\n 29: [2, 46],\n 34: [2, 46],\n 48: [2, 46],\n 51: [2, 46],\n 55: [2, 46],\n 60: [2, 46]\n }, {\n 1: [3]\n }, {\n 5: [1, 4]\n }, {\n 5: [2, 2],\n 7: 5,\n 8: 6,\n 9: 7,\n 10: 8,\n 11: 9,\n 12: 10,\n 13: 11,\n 14: [1, 12],\n 15: [1, 20],\n 16: 17,\n 19: [1, 23],\n 24: 15,\n 27: 16,\n 29: [1, 21],\n 34: [1, 22],\n 39: [2, 2],\n 44: [2, 2],\n 47: [2, 2],\n 48: [1, 13],\n 51: [1, 14],\n 55: [1, 18],\n 59: 19,\n 60: [1, 24]\n }, {\n 1: [2, 1]\n }, {\n 5: [2, 47],\n 14: [2, 47],\n 15: [2, 47],\n 19: [2, 47],\n 29: [2, 47],\n 34: [2, 47],\n 39: [2, 47],\n 44: [2, 47],\n 47: [2, 47],\n 48: [2, 47],\n 51: [2, 47],\n 55: [2, 47],\n 60: [2, 47]\n }, {\n 5: [2, 3],\n 14: [2, 3],\n 15: [2, 3],\n 19: [2, 3],\n 29: [2, 3],\n 34: [2, 3],\n 39: [2, 3],\n 44: [2, 3],\n 47: [2, 3],\n 48: [2, 3],\n 51: [2, 3],\n 55: [2, 3],\n 60: [2, 3]\n }, {\n 5: [2, 4],\n 14: [2, 4],\n 15: [2, 4],\n 19: [2, 4],\n 29: [2, 4],\n 34: [2, 4],\n 39: [2, 4],\n 44: [2, 4],\n 47: [2, 4],\n 48: [2, 4],\n 51: [2, 4],\n 55: [2, 4],\n 60: [2, 4]\n }, {\n 5: [2, 5],\n 14: [2, 5],\n 15: [2, 5],\n 19: [2, 5],\n 29: [2, 5],\n 34: [2, 5],\n 39: [2, 5],\n 44: [2, 5],\n 47: [2, 5],\n 48: [2, 5],\n 51: [2, 5],\n 55: [2, 5],\n 60: [2, 5]\n }, {\n 5: [2, 6],\n 14: [2, 6],\n 15: [2, 6],\n 19: [2, 6],\n 29: [2, 6],\n 34: [2, 6],\n 39: [2, 6],\n 44: [2, 6],\n 47: [2, 6],\n 48: [2, 6],\n 51: [2, 6],\n 55: [2, 6],\n 60: [2, 6]\n }, {\n 5: [2, 7],\n 14: [2, 7],\n 15: [2, 7],\n 19: [2, 7],\n 29: [2, 7],\n 34: [2, 7],\n 39: [2, 7],\n 44: [2, 7],\n 47: [2, 7],\n 48: [2, 7],\n 51: [2, 7],\n 55: [2, 7],\n 60: [2, 7]\n }, {\n 5: [2, 8],\n 14: [2, 8],\n 15: [2, 8],\n 19: [2, 8],\n 29: [2, 8],\n 34: [2, 8],\n 39: [2, 8],\n 44: [2, 8],\n 47: [2, 8],\n 48: [2, 8],\n 51: [2, 8],\n 55: [2, 8],\n 60: [2, 8]\n }, {\n 5: [2, 9],\n 14: [2, 9],\n 15: [2, 9],\n 19: [2, 9],\n 29: [2, 9],\n 34: [2, 9],\n 39: [2, 9],\n 44: [2, 9],\n 47: [2, 9],\n 48: [2, 9],\n 51: [2, 9],\n 55: [2, 9],\n 60: [2, 9]\n }, {\n 20: 25,\n 72: [1, 35],\n 78: 26,\n 79: 27,\n 80: [1, 28],\n 81: [1, 29],\n 82: [1, 30],\n 83: [1, 31],\n 84: [1, 32],\n 85: [1, 34],\n 86: 33\n }, {\n 20: 36,\n 72: [1, 35],\n 78: 26,\n 79: 27,\n 80: [1, 28],\n 81: [1, 29],\n 82: [1, 30],\n 83: [1, 31],\n 84: [1, 32],\n 85: [1, 34],\n 86: 33\n }, {\n 4: 37,\n 6: 3,\n 14: [2, 46],\n 15: [2, 46],\n 19: [2, 46],\n 29: [2, 46],\n 34: [2, 46],\n 39: [2, 46],\n 44: [2, 46],\n 47: [2, 46],\n 48: [2, 46],\n 51: [2, 46],\n 55: [2, 46],\n 60: [2, 46]\n }, {\n 4: 38,\n 6: 3,\n 14: [2, 46],\n 15: [2, 46],\n 19: [2, 46],\n 29: [2, 46],\n 34: [2, 46],\n 44: [2, 46],\n 47: [2, 46],\n 48: [2, 46],\n 51: [2, 46],\n 55: [2, 46],\n 60: [2, 46]\n }, {\n 15: [2, 48],\n 17: 39,\n 18: [2, 48]\n }, {\n 20: 41,\n 56: 40,\n 64: 42,\n 65: [1, 43],\n 72: [1, 35],\n 78: 26,\n 79: 27,\n 80: [1, 28],\n 81: [1, 29],\n 82: [1, 30],\n 83: [1, 31],\n 84: [1, 32],\n 85: [1, 34],\n 86: 33\n }, {\n 4: 44,\n 6: 3,\n 14: [2, 46],\n 15: [2, 46],\n 19: [2, 46],\n 29: [2, 46],\n 34: [2, 46],\n 47: [2, 46],\n 48: [2, 46],\n 51: [2, 46],\n 55: [2, 46],\n 60: [2, 46]\n }, {\n 5: [2, 10],\n 14: [2, 10],\n 15: [2, 10],\n 18: [2, 10],\n 19: [2, 10],\n 29: [2, 10],\n 34: [2, 10],\n 39: [2, 10],\n 44: [2, 10],\n 47: [2, 10],\n 48: [2, 10],\n 51: [2, 10],\n 55: [2, 10],\n 60: [2, 10]\n }, {\n 20: 45,\n 72: [1, 35],\n 78: 26,\n 79: 27,\n 80: [1, 28],\n 81: [1, 29],\n 82: [1, 30],\n 83: [1, 31],\n 84: [1, 32],\n 85: [1, 34],\n 86: 33\n }, {\n 20: 46,\n 72: [1, 35],\n 78: 26,\n 79: 27,\n 80: [1, 28],\n 81: [1, 29],\n 82: [1, 30],\n 83: [1, 31],\n 84: [1, 32],\n 85: [1, 34],\n 86: 33\n }, {\n 20: 47,\n 72: [1, 35],\n 78: 26,\n 79: 27,\n 80: [1, 28],\n 81: [1, 29],\n 82: [1, 30],\n 83: [1, 31],\n 84: [1, 32],\n 85: [1, 34],\n 86: 33\n }, {\n 20: 41,\n 56: 48,\n 64: 42,\n 65: [1, 43],\n 72: [1, 35],\n 78: 26,\n 79: 27,\n 80: [1, 28],\n 81: [1, 29],\n 82: [1, 30],\n 83: [1, 31],\n 84: [1, 32],\n 85: [1, 34],\n 86: 33\n }, {\n 33: [2, 78],\n 49: 49,\n 65: [2, 78],\n 72: [2, 78],\n 80: [2, 78],\n 81: [2, 78],\n 82: [2, 78],\n 83: [2, 78],\n 84: [2, 78],\n 85: [2, 78]\n }, {\n 23: [2, 33],\n 33: [2, 33],\n 54: [2, 33],\n 65: [2, 33],\n 68: [2, 33],\n 72: [2, 33],\n 75: [2, 33],\n 80: [2, 33],\n 81: [2, 33],\n 82: [2, 33],\n 83: [2, 33],\n 84: [2, 33],\n 85: [2, 33]\n }, {\n 23: [2, 34],\n 33: [2, 34],\n 54: [2, 34],\n 65: [2, 34],\n 68: [2, 34],\n 72: [2, 34],\n 75: [2, 34],\n 80: [2, 34],\n 81: [2, 34],\n 82: [2, 34],\n 83: [2, 34],\n 84: [2, 34],\n 85: [2, 34]\n }, {\n 23: [2, 35],\n 33: [2, 35],\n 54: [2, 35],\n 65: [2, 35],\n 68: [2, 35],\n 72: [2, 35],\n 75: [2, 35],\n 80: [2, 35],\n 81: [2, 35],\n 82: [2, 35],\n 83: [2, 35],\n 84: [2, 35],\n 85: [2, 35]\n }, {\n 23: [2, 36],\n 33: [2, 36],\n 54: [2, 36],\n 65: [2, 36],\n 68: [2, 36],\n 72: [2, 36],\n 75: [2, 36],\n 80: [2, 36],\n 81: [2, 36],\n 82: [2, 36],\n 83: [2, 36],\n 84: [2, 36],\n 85: [2, 36]\n }, {\n 23: [2, 37],\n 33: [2, 37],\n 54: [2, 37],\n 65: [2, 37],\n 68: [2, 37],\n 72: [2, 37],\n 75: [2, 37],\n 80: [2, 37],\n 81: [2, 37],\n 82: [2, 37],\n 83: [2, 37],\n 84: [2, 37],\n 85: [2, 37]\n }, {\n 23: [2, 38],\n 33: [2, 38],\n 54: [2, 38],\n 65: [2, 38],\n 68: [2, 38],\n 72: [2, 38],\n 75: [2, 38],\n 80: [2, 38],\n 81: [2, 38],\n 82: [2, 38],\n 83: [2, 38],\n 84: [2, 38],\n 85: [2, 38]\n }, {\n 23: [2, 39],\n 33: [2, 39],\n 54: [2, 39],\n 65: [2, 39],\n 68: [2, 39],\n 72: [2, 39],\n 75: [2, 39],\n 80: [2, 39],\n 81: [2, 39],\n 82: [2, 39],\n 83: [2, 39],\n 84: [2, 39],\n 85: [2, 39]\n }, {\n 23: [2, 43],\n 33: [2, 43],\n 54: [2, 43],\n 65: [2, 43],\n 68: [2, 43],\n 72: [2, 43],\n 75: [2, 43],\n 80: [2, 43],\n 81: [2, 43],\n 82: [2, 43],\n 83: [2, 43],\n 84: [2, 43],\n 85: [2, 43],\n 87: [1, 50]\n }, {\n 72: [1, 35],\n 86: 51\n }, {\n 23: [2, 45],\n 33: [2, 45],\n 54: [2, 45],\n 65: [2, 45],\n 68: [2, 45],\n 72: [2, 45],\n 75: [2, 45],\n 80: [2, 45],\n 81: [2, 45],\n 82: [2, 45],\n 83: [2, 45],\n 84: [2, 45],\n 85: [2, 45],\n 87: [2, 45]\n }, {\n 52: 52,\n 54: [2, 82],\n 65: [2, 82],\n 72: [2, 82],\n 80: [2, 82],\n 81: [2, 82],\n 82: [2, 82],\n 83: [2, 82],\n 84: [2, 82],\n 85: [2, 82]\n }, {\n 25: 53,\n 38: 55,\n 39: [1, 57],\n 43: 56,\n 44: [1, 58],\n 45: 54,\n 47: [2, 54]\n }, {\n 28: 59,\n 43: 60,\n 44: [1, 58],\n 47: [2, 56]\n }, {\n 13: 62,\n 15: [1, 20],\n 18: [1, 61]\n }, {\n 33: [2, 86],\n 57: 63,\n 65: [2, 86],\n 72: [2, 86],\n 80: [2, 86],\n 81: [2, 86],\n 82: [2, 86],\n 83: [2, 86],\n 84: [2, 86],\n 85: [2, 86]\n }, {\n 33: [2, 40],\n 65: [2, 40],\n 72: [2, 40],\n 80: [2, 40],\n 81: [2, 40],\n 82: [2, 40],\n 83: [2, 40],\n 84: [2, 40],\n 85: [2, 40]\n }, {\n 33: [2, 41],\n 65: [2, 41],\n 72: [2, 41],\n 80: [2, 41],\n 81: [2, 41],\n 82: [2, 41],\n 83: [2, 41],\n 84: [2, 41],\n 85: [2, 41]\n }, {\n 20: 64,\n 72: [1, 35],\n 78: 26,\n 79: 27,\n 80: [1, 28],\n 81: [1, 29],\n 82: [1, 30],\n 83: [1, 31],\n 84: [1, 32],\n 85: [1, 34],\n 86: 33\n }, {\n 26: 65,\n 47: [1, 66]\n }, {\n 30: 67,\n 33: [2, 58],\n 65: [2, 58],\n 72: [2, 58],\n 75: [2, 58],\n 80: [2, 58],\n 81: [2, 58],\n 82: [2, 58],\n 83: [2, 58],\n 84: [2, 58],\n 85: [2, 58]\n }, {\n 33: [2, 64],\n 35: 68,\n 65: [2, 64],\n 72: [2, 64],\n 75: [2, 64],\n 80: [2, 64],\n 81: [2, 64],\n 82: [2, 64],\n 83: [2, 64],\n 84: [2, 64],\n 85: [2, 64]\n }, {\n 21: 69,\n 23: [2, 50],\n 65: [2, 50],\n 72: [2, 50],\n 80: [2, 50],\n 81: [2, 50],\n 82: [2, 50],\n 83: [2, 50],\n 84: [2, 50],\n 85: [2, 50]\n }, {\n 33: [2, 90],\n 61: 70,\n 65: [2, 90],\n 72: [2, 90],\n 80: [2, 90],\n 81: [2, 90],\n 82: [2, 90],\n 83: [2, 90],\n 84: [2, 90],\n 85: [2, 90]\n }, {\n 20: 74,\n 33: [2, 80],\n 50: 71,\n 63: 72,\n 64: 75,\n 65: [1, 43],\n 69: 73,\n 70: 76,\n 71: 77,\n 72: [1, 78],\n 78: 26,\n 79: 27,\n 80: [1, 28],\n 81: [1, 29],\n 82: [1, 30],\n 83: [1, 31],\n 84: [1, 32],\n 85: [1, 34],\n 86: 33\n }, {\n 72: [1, 79]\n }, {\n 23: [2, 42],\n 33: [2, 42],\n 54: [2, 42],\n 65: [2, 42],\n 68: [2, 42],\n 72: [2, 42],\n 75: [2, 42],\n 80: [2, 42],\n 81: [2, 42],\n 82: [2, 42],\n 83: [2, 42],\n 84: [2, 42],\n 85: [2, 42],\n 87: [1, 50]\n }, {\n 20: 74,\n 53: 80,\n 54: [2, 84],\n 63: 81,\n 64: 75,\n 65: [1, 43],\n 69: 82,\n 70: 76,\n 71: 77,\n 72: [1, 78],\n 78: 26,\n 79: 27,\n 80: [1, 28],\n 81: [1, 29],\n 82: [1, 30],\n 83: [1, 31],\n 84: [1, 32],\n 85: [1, 34],\n 86: 33\n }, {\n 26: 83,\n 47: [1, 66]\n }, {\n 47: [2, 55]\n }, {\n 4: 84,\n 6: 3,\n 14: [2, 46],\n 15: [2, 46],\n 19: [2, 46],\n 29: [2, 46],\n 34: [2, 46],\n 39: [2, 46],\n 44: [2, 46],\n 47: [2, 46],\n 48: [2, 46],\n 51: [2, 46],\n 55: [2, 46],\n 60: [2, 46]\n }, {\n 47: [2, 20]\n }, {\n 20: 85,\n 72: [1, 35],\n 78: 26,\n 79: 27,\n 80: [1, 28],\n 81: [1, 29],\n 82: [1, 30],\n 83: [1, 31],\n 84: [1, 32],\n 85: [1, 34],\n 86: 33\n }, {\n 4: 86,\n 6: 3,\n 14: [2, 46],\n 15: [2, 46],\n 19: [2, 46],\n 29: [2, 46],\n 34: [2, 46],\n 47: [2, 46],\n 48: [2, 46],\n 51: [2, 46],\n 55: [2, 46],\n 60: [2, 46]\n }, {\n 26: 87,\n 47: [1, 66]\n }, {\n 47: [2, 57]\n }, {\n 5: [2, 11],\n 14: [2, 11],\n 15: [2, 11],\n 19: [2, 11],\n 29: [2, 11],\n 34: [2, 11],\n 39: [2, 11],\n 44: [2, 11],\n 47: [2, 11],\n 48: [2, 11],\n 51: [2, 11],\n 55: [2, 11],\n 60: [2, 11]\n }, {\n 15: [2, 49],\n 18: [2, 49]\n }, {\n 20: 74,\n 33: [2, 88],\n 58: 88,\n 63: 89,\n 64: 75,\n 65: [1, 43],\n 69: 90,\n 70: 76,\n 71: 77,\n 72: [1, 78],\n 78: 26,\n 79: 27,\n 80: [1, 28],\n 81: [1, 29],\n 82: [1, 30],\n 83: [1, 31],\n 84: [1, 32],\n 85: [1, 34],\n 86: 33\n }, {\n 65: [2, 94],\n 66: 91,\n 68: [2, 94],\n 72: [2, 94],\n 80: [2, 94],\n 81: [2, 94],\n 82: [2, 94],\n 83: [2, 94],\n 84: [2, 94],\n 85: [2, 94]\n }, {\n 5: [2, 25],\n 14: [2, 25],\n 15: [2, 25],\n 19: [2, 25],\n 29: [2, 25],\n 34: [2, 25],\n 39: [2, 25],\n 44: [2, 25],\n 47: [2, 25],\n 48: [2, 25],\n 51: [2, 25],\n 55: [2, 25],\n 60: [2, 25]\n }, {\n 20: 92,\n 72: [1, 35],\n 78: 26,\n 79: 27,\n 80: [1, 28],\n 81: [1, 29],\n 82: [1, 30],\n 83: [1, 31],\n 84: [1, 32],\n 85: [1, 34],\n 86: 33\n }, {\n 20: 74,\n 31: 93,\n 33: [2, 60],\n 63: 94,\n 64: 75,\n 65: [1, 43],\n 69: 95,\n 70: 76,\n 71: 77,\n 72: [1, 78],\n 75: [2, 60],\n 78: 26,\n 79: 27,\n 80: [1, 28],\n 81: [1, 29],\n 82: [1, 30],\n 83: [1, 31],\n 84: [1, 32],\n 85: [1, 34],\n 86: 33\n }, {\n 20: 74,\n 33: [2, 66],\n 36: 96,\n 63: 97,\n 64: 75,\n 65: [1, 43],\n 69: 98,\n 70: 76,\n 71: 77,\n 72: [1, 78],\n 75: [2, 66],\n 78: 26,\n 79: 27,\n 80: [1, 28],\n 81: [1, 29],\n 82: [1, 30],\n 83: [1, 31],\n 84: [1, 32],\n 85: [1, 34],\n 86: 33\n }, {\n 20: 74,\n 22: 99,\n 23: [2, 52],\n 63: 100,\n 64: 75,\n 65: [1, 43],\n 69: 101,\n 70: 76,\n 71: 77,\n 72: [1, 78],\n 78: 26,\n 79: 27,\n 80: [1, 28],\n 81: [1, 29],\n 82: [1, 30],\n 83: [1, 31],\n 84: [1, 32],\n 85: [1, 34],\n 86: 33\n }, {\n 20: 74,\n 33: [2, 92],\n 62: 102,\n 63: 103,\n 64: 75,\n 65: [1, 43],\n 69: 104,\n 70: 76,\n 71: 77,\n 72: [1, 78],\n 78: 26,\n 79: 27,\n 80: [1, 28],\n 81: [1, 29],\n 82: [1, 30],\n 83: [1, 31],\n 84: [1, 32],\n 85: [1, 34],\n 86: 33\n }, {\n 33: [1, 105]\n }, {\n 33: [2, 79],\n 65: [2, 79],\n 72: [2, 79],\n 80: [2, 79],\n 81: [2, 79],\n 82: [2, 79],\n 83: [2, 79],\n 84: [2, 79],\n 85: [2, 79]\n }, {\n 33: [2, 81]\n }, {\n 23: [2, 27],\n 33: [2, 27],\n 54: [2, 27],\n 65: [2, 27],\n 68: [2, 27],\n 72: [2, 27],\n 75: [2, 27],\n 80: [2, 27],\n 81: [2, 27],\n 82: [2, 27],\n 83: [2, 27],\n 84: [2, 27],\n 85: [2, 27]\n }, {\n 23: [2, 28],\n 33: [2, 28],\n 54: [2, 28],\n 65: [2, 28],\n 68: [2, 28],\n 72: [2, 28],\n 75: [2, 28],\n 80: [2, 28],\n 81: [2, 28],\n 82: [2, 28],\n 83: [2, 28],\n 84: [2, 28],\n 85: [2, 28]\n }, {\n 23: [2, 30],\n 33: [2, 30],\n 54: [2, 30],\n 68: [2, 30],\n 71: 106,\n 72: [1, 107],\n 75: [2, 30]\n }, {\n 23: [2, 98],\n 33: [2, 98],\n 54: [2, 98],\n 68: [2, 98],\n 72: [2, 98],\n 75: [2, 98]\n }, {\n 23: [2, 45],\n 33: [2, 45],\n 54: [2, 45],\n 65: [2, 45],\n 68: [2, 45],\n 72: [2, 45],\n 73: [1, 108],\n 75: [2, 45],\n 80: [2, 45],\n 81: [2, 45],\n 82: [2, 45],\n 83: [2, 45],\n 84: [2, 45],\n 85: [2, 45],\n 87: [2, 45]\n }, {\n 23: [2, 44],\n 33: [2, 44],\n 54: [2, 44],\n 65: [2, 44],\n 68: [2, 44],\n 72: [2, 44],\n 75: [2, 44],\n 80: [2, 44],\n 81: [2, 44],\n 82: [2, 44],\n 83: [2, 44],\n 84: [2, 44],\n 85: [2, 44],\n 87: [2, 44]\n }, {\n 54: [1, 109]\n }, {\n 54: [2, 83],\n 65: [2, 83],\n 72: [2, 83],\n 80: [2, 83],\n 81: [2, 83],\n 82: [2, 83],\n 83: [2, 83],\n 84: [2, 83],\n 85: [2, 83]\n }, {\n 54: [2, 85]\n }, {\n 5: [2, 13],\n 14: [2, 13],\n 15: [2, 13],\n 19: [2, 13],\n 29: [2, 13],\n 34: [2, 13],\n 39: [2, 13],\n 44: [2, 13],\n 47: [2, 13],\n 48: [2, 13],\n 51: [2, 13],\n 55: [2, 13],\n 60: [2, 13]\n }, {\n 38: 55,\n 39: [1, 57],\n 43: 56,\n 44: [1, 58],\n 45: 111,\n 46: 110,\n 47: [2, 76]\n }, {\n 33: [2, 70],\n 40: 112,\n 65: [2, 70],\n 72: [2, 70],\n 75: [2, 70],\n 80: [2, 70],\n 81: [2, 70],\n 82: [2, 70],\n 83: [2, 70],\n 84: [2, 70],\n 85: [2, 70]\n }, {\n 47: [2, 18]\n }, {\n 5: [2, 14],\n 14: [2, 14],\n 15: [2, 14],\n 19: [2, 14],\n 29: [2, 14],\n 34: [2, 14],\n 39: [2, 14],\n 44: [2, 14],\n 47: [2, 14],\n 48: [2, 14],\n 51: [2, 14],\n 55: [2, 14],\n 60: [2, 14]\n }, {\n 33: [1, 113]\n }, {\n 33: [2, 87],\n 65: [2, 87],\n 72: [2, 87],\n 80: [2, 87],\n 81: [2, 87],\n 82: [2, 87],\n 83: [2, 87],\n 84: [2, 87],\n 85: [2, 87]\n }, {\n 33: [2, 89]\n }, {\n 20: 74,\n 63: 115,\n 64: 75,\n 65: [1, 43],\n 67: 114,\n 68: [2, 96],\n 69: 116,\n 70: 76,\n 71: 77,\n 72: [1, 78],\n 78: 26,\n 79: 27,\n 80: [1, 28],\n 81: [1, 29],\n 82: [1, 30],\n 83: [1, 31],\n 84: [1, 32],\n 85: [1, 34],\n 86: 33\n }, {\n 33: [1, 117]\n }, {\n 32: 118,\n 33: [2, 62],\n 74: 119,\n 75: [1, 120]\n }, {\n 33: [2, 59],\n 65: [2, 59],\n 72: [2, 59],\n 75: [2, 59],\n 80: [2, 59],\n 81: [2, 59],\n 82: [2, 59],\n 83: [2, 59],\n 84: [2, 59],\n 85: [2, 59]\n }, {\n 33: [2, 61],\n 75: [2, 61]\n }, {\n 33: [2, 68],\n 37: 121,\n 74: 122,\n 75: [1, 120]\n }, {\n 33: [2, 65],\n 65: [2, 65],\n 72: [2, 65],\n 75: [2, 65],\n 80: [2, 65],\n 81: [2, 65],\n 82: [2, 65],\n 83: [2, 65],\n 84: [2, 65],\n 85: [2, 65]\n }, {\n 33: [2, 67],\n 75: [2, 67]\n }, {\n 23: [1, 123]\n }, {\n 23: [2, 51],\n 65: [2, 51],\n 72: [2, 51],\n 80: [2, 51],\n 81: [2, 51],\n 82: [2, 51],\n 83: [2, 51],\n 84: [2, 51],\n 85: [2, 51]\n }, {\n 23: [2, 53]\n }, {\n 33: [1, 124]\n }, {\n 33: [2, 91],\n 65: [2, 91],\n 72: [2, 91],\n 80: [2, 91],\n 81: [2, 91],\n 82: [2, 91],\n 83: [2, 91],\n 84: [2, 91],\n 85: [2, 91]\n }, {\n 33: [2, 93]\n }, {\n 5: [2, 22],\n 14: [2, 22],\n 15: [2, 22],\n 19: [2, 22],\n 29: [2, 22],\n 34: [2, 22],\n 39: [2, 22],\n 44: [2, 22],\n 47: [2, 22],\n 48: [2, 22],\n 51: [2, 22],\n 55: [2, 22],\n 60: [2, 22]\n }, {\n 23: [2, 99],\n 33: [2, 99],\n 54: [2, 99],\n 68: [2, 99],\n 72: [2, 99],\n 75: [2, 99]\n }, {\n 73: [1, 108]\n }, {\n 20: 74,\n 63: 125,\n 64: 75,\n 65: [1, 43],\n 72: [1, 35],\n 78: 26,\n 79: 27,\n 80: [1, 28],\n 81: [1, 29],\n 82: [1, 30],\n 83: [1, 31],\n 84: [1, 32],\n 85: [1, 34],\n 86: 33\n }, {\n 5: [2, 23],\n 14: [2, 23],\n 15: [2, 23],\n 19: [2, 23],\n 29: [2, 23],\n 34: [2, 23],\n 39: [2, 23],\n 44: [2, 23],\n 47: [2, 23],\n 48: [2, 23],\n 51: [2, 23],\n 55: [2, 23],\n 60: [2, 23]\n }, {\n 47: [2, 19]\n }, {\n 47: [2, 77]\n }, {\n 20: 74,\n 33: [2, 72],\n 41: 126,\n 63: 127,\n 64: 75,\n 65: [1, 43],\n 69: 128,\n 70: 76,\n 71: 77,\n 72: [1, 78],\n 75: [2, 72],\n 78: 26,\n 79: 27,\n 80: [1, 28],\n 81: [1, 29],\n 82: [1, 30],\n 83: [1, 31],\n 84: [1, 32],\n 85: [1, 34],\n 86: 33\n }, {\n 5: [2, 24],\n 14: [2, 24],\n 15: [2, 24],\n 19: [2, 24],\n 29: [2, 24],\n 34: [2, 24],\n 39: [2, 24],\n 44: [2, 24],\n 47: [2, 24],\n 48: [2, 24],\n 51: [2, 24],\n 55: [2, 24],\n 60: [2, 24]\n }, {\n 68: [1, 129]\n }, {\n 65: [2, 95],\n 68: [2, 95],\n 72: [2, 95],\n 80: [2, 95],\n 81: [2, 95],\n 82: [2, 95],\n 83: [2, 95],\n 84: [2, 95],\n 85: [2, 95]\n }, {\n 68: [2, 97]\n }, {\n 5: [2, 21],\n 14: [2, 21],\n 15: [2, 21],\n 19: [2, 21],\n 29: [2, 21],\n 34: [2, 21],\n 39: [2, 21],\n 44: [2, 21],\n 47: [2, 21],\n 48: [2, 21],\n 51: [2, 21],\n 55: [2, 21],\n 60: [2, 21]\n }, {\n 33: [1, 130]\n }, {\n 33: [2, 63]\n }, {\n 72: [1, 132],\n 76: 131\n }, {\n 33: [1, 133]\n }, {\n 33: [2, 69]\n }, {\n 15: [2, 12],\n 18: [2, 12]\n }, {\n 14: [2, 26],\n 15: [2, 26],\n 19: [2, 26],\n 29: [2, 26],\n 34: [2, 26],\n 47: [2, 26],\n 48: [2, 26],\n 51: [2, 26],\n 55: [2, 26],\n 60: [2, 26]\n }, {\n 23: [2, 31],\n 33: [2, 31],\n 54: [2, 31],\n 68: [2, 31],\n 72: [2, 31],\n 75: [2, 31]\n }, {\n 33: [2, 74],\n 42: 134,\n 74: 135,\n 75: [1, 120]\n }, {\n 33: [2, 71],\n 65: [2, 71],\n 72: [2, 71],\n 75: [2, 71],\n 80: [2, 71],\n 81: [2, 71],\n 82: [2, 71],\n 83: [2, 71],\n 84: [2, 71],\n 85: [2, 71]\n }, {\n 33: [2, 73],\n 75: [2, 73]\n }, {\n 23: [2, 29],\n 33: [2, 29],\n 54: [2, 29],\n 65: [2, 29],\n 68: [2, 29],\n 72: [2, 29],\n 75: [2, 29],\n 80: [2, 29],\n 81: [2, 29],\n 82: [2, 29],\n 83: [2, 29],\n 84: [2, 29],\n 85: [2, 29]\n }, {\n 14: [2, 15],\n 15: [2, 15],\n 19: [2, 15],\n 29: [2, 15],\n 34: [2, 15],\n 39: [2, 15],\n 44: [2, 15],\n 47: [2, 15],\n 48: [2, 15],\n 51: [2, 15],\n 55: [2, 15],\n 60: [2, 15]\n }, {\n 72: [1, 137],\n 77: [1, 136]\n }, {\n 72: [2, 100],\n 77: [2, 100]\n }, {\n 14: [2, 16],\n 15: [2, 16],\n 19: [2, 16],\n 29: [2, 16],\n 34: [2, 16],\n 44: [2, 16],\n 47: [2, 16],\n 48: [2, 16],\n 51: [2, 16],\n 55: [2, 16],\n 60: [2, 16]\n }, {\n 33: [1, 138]\n }, {\n 33: [2, 75]\n }, {\n 33: [2, 32]\n }, {\n 72: [2, 101],\n 77: [2, 101]\n }, {\n 14: [2, 17],\n 15: [2, 17],\n 19: [2, 17],\n 29: [2, 17],\n 34: [2, 17],\n 39: [2, 17],\n 44: [2, 17],\n 47: [2, 17],\n 48: [2, 17],\n 51: [2, 17],\n 55: [2, 17],\n 60: [2, 17]\n }],\n defaultActions: {\n 4: [2, 1],\n 54: [2, 55],\n 56: [2, 20],\n 60: [2, 57],\n 73: [2, 81],\n 82: [2, 85],\n 86: [2, 18],\n 90: [2, 89],\n 101: [2, 53],\n 104: [2, 93],\n 110: [2, 19],\n 111: [2, 77],\n 116: [2, 97],\n 119: [2, 63],\n 122: [2, 69],\n 135: [2, 75],\n 136: [2, 32]\n },\n parseError: function parseError(str, hash) {\n throw new Error(str);\n },\n parse: function parse(input) {\n var self = this,\n stack = [0],\n vstack = [null],\n lstack = [],\n table = this.table,\n yytext = \"\",\n yylineno = 0,\n yyleng = 0,\n recovering = 0,\n TERROR = 2,\n EOF = 1;\n this.lexer.setInput(input);\n this.lexer.yy = this.yy;\n this.yy.lexer = this.lexer;\n this.yy.parser = this;\n if (typeof this.lexer.yylloc == \"undefined\") this.lexer.yylloc = {};\n var yyloc = this.lexer.yylloc;\n lstack.push(yyloc);\n var ranges = this.lexer.options && this.lexer.options.ranges;\n if (typeof this.yy.parseError === \"function\") this.parseError = this.yy.parseError;\n\n function popStack(n) {\n stack.length = stack.length - 2 * n;\n vstack.length = vstack.length - n;\n lstack.length = lstack.length - n;\n }\n\n function lex() {\n var token;\n token = self.lexer.lex() || 1;\n\n if (typeof token !== \"number\") {\n token = self.symbols_[token] || token;\n }\n\n return token;\n }\n\n var symbol,\n preErrorSymbol,\n state,\n action,\n a,\n r,\n yyval = {},\n p,\n len,\n newState,\n expected;\n\n while (true) {\n state = stack[stack.length - 1];\n\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == \"undefined\") {\n symbol = lex();\n }\n\n action = table[state] && table[state][symbol];\n }\n\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n\n if (!recovering) {\n expected = [];\n\n for (p in table[state]) {\n if (this.terminals_[p] && p > 2) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n }\n\n if (this.lexer.showPosition) {\n errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + this.lexer.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == 1 ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n\n this.parseError(errStr, {\n text: this.lexer.match,\n token: this.terminals_[symbol] || symbol,\n line: this.lexer.yylineno,\n loc: yyloc,\n expected: expected\n });\n }\n }\n\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n }\n\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(this.lexer.yytext);\n lstack.push(this.lexer.yylloc);\n stack.push(action[1]);\n symbol = null;\n\n if (!preErrorSymbol) {\n yyleng = this.lexer.yyleng;\n yytext = this.lexer.yytext;\n yylineno = this.lexer.yylineno;\n yyloc = this.lexer.yylloc;\n if (recovering > 0) recovering--;\n } else {\n symbol = preErrorSymbol;\n preErrorSymbol = null;\n }\n\n break;\n\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n\n if (ranges) {\n yyval._$.range = [lstack[lstack.length - (len || 1)].range[0], lstack[lstack.length - 1].range[1]];\n }\n\n r = this.performAction.call(yyval, yytext, yyleng, yylineno, this.yy, action[1], vstack, lstack);\n\n if (typeof r !== \"undefined\") {\n return r;\n }\n\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n\n case 3:\n return true;\n }\n }\n\n return true;\n }\n };\n /* Jison generated lexer */\n\n var lexer = function () {\n var lexer = {\n EOF: 1,\n parseError: function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\n setInput: function setInput(input) {\n this._input = input;\n this._more = this._less = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = '';\n this.conditionStack = ['INITIAL'];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) this.yylloc.range = [0, 0];\n this.offset = 0;\n return this;\n },\n input: function input() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n\n if (this.options.ranges) this.yylloc.range[1]++;\n this._input = this._input.slice(1);\n return ch;\n },\n unput: function unput(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len - 1); //this.yyleng -= len;\n\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) this.yylineno -= lines.length - 1;\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n\n return this;\n },\n more: function more() {\n this._more = true;\n return this;\n },\n less: function less(n) {\n this.unput(this.match.slice(n));\n },\n pastInput: function pastInput() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? '...' : '') + past.substr(-20).replace(/\\n/g, \"\");\n },\n upcomingInput: function upcomingInput() {\n var next = this.match;\n\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n\n return (next.substr(0, 20) + (next.length > 20 ? '...' : '')).replace(/\\n/g, \"\");\n },\n showPosition: function showPosition() {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n next: function next() {\n if (this.done) {\n return this.EOF;\n }\n\n if (!this._input) this.done = true;\n var token, match, tempMatch, index, col, lines;\n\n if (!this._more) {\n this.yytext = '';\n this.match = '';\n }\n\n var rules = this._currentRules();\n\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (!this.options.flex) break;\n }\n }\n\n if (match) {\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) this.yylineno += lines.length;\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n\n this._more = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, rules[index], this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) this.done = false;\n if (token) return token;else return;\n }\n\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\\n' + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n },\n lex: function lex() {\n var r = this.next();\n\n if (typeof r !== 'undefined') {\n return r;\n } else {\n return this.lex();\n }\n },\n begin: function begin(condition) {\n this.conditionStack.push(condition);\n },\n popState: function popState() {\n return this.conditionStack.pop();\n },\n _currentRules: function _currentRules() {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n },\n topState: function topState() {\n return this.conditionStack[this.conditionStack.length - 2];\n },\n pushState: function begin(condition) {\n this.begin(condition);\n }\n };\n lexer.options = {};\n\n lexer.performAction = function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n function strip(start, end) {\n return yy_.yytext = yy_.yytext.substring(start, yy_.yyleng - end + start);\n }\n\n var YYSTATE = YY_START;\n\n switch ($avoiding_name_collisions) {\n case 0:\n if (yy_.yytext.slice(-2) === \"\\\\\\\\\") {\n strip(0, 1);\n this.begin(\"mu\");\n } else if (yy_.yytext.slice(-1) === \"\\\\\") {\n strip(0, 1);\n this.begin(\"emu\");\n } else {\n this.begin(\"mu\");\n }\n\n if (yy_.yytext) return 15;\n break;\n\n case 1:\n return 15;\n break;\n\n case 2:\n this.popState();\n return 15;\n break;\n\n case 3:\n this.begin('raw');\n return 15;\n break;\n\n case 4:\n this.popState(); // Should be using `this.topState()` below, but it currently\n // returns the second top instead of the first top. Opened an\n // issue about it at https://github.com/zaach/jison/issues/291\n\n if (this.conditionStack[this.conditionStack.length - 1] === 'raw') {\n return 15;\n } else {\n strip(5, 9);\n return 'END_RAW_BLOCK';\n }\n\n break;\n\n case 5:\n return 15;\n break;\n\n case 6:\n this.popState();\n return 14;\n break;\n\n case 7:\n return 65;\n break;\n\n case 8:\n return 68;\n break;\n\n case 9:\n return 19;\n break;\n\n case 10:\n this.popState();\n this.begin('raw');\n return 23;\n break;\n\n case 11:\n return 55;\n break;\n\n case 12:\n return 60;\n break;\n\n case 13:\n return 29;\n break;\n\n case 14:\n return 47;\n break;\n\n case 15:\n this.popState();\n return 44;\n break;\n\n case 16:\n this.popState();\n return 44;\n break;\n\n case 17:\n return 34;\n break;\n\n case 18:\n return 39;\n break;\n\n case 19:\n return 51;\n break;\n\n case 20:\n return 48;\n break;\n\n case 21:\n this.unput(yy_.yytext);\n this.popState();\n this.begin('com');\n break;\n\n case 22:\n this.popState();\n return 14;\n break;\n\n case 23:\n return 48;\n break;\n\n case 24:\n return 73;\n break;\n\n case 25:\n return 72;\n break;\n\n case 26:\n return 72;\n break;\n\n case 27:\n return 87;\n break;\n\n case 28:\n // ignore whitespace\n break;\n\n case 29:\n this.popState();\n return 54;\n break;\n\n case 30:\n this.popState();\n return 33;\n break;\n\n case 31:\n yy_.yytext = strip(1, 2).replace(/\\\\\"/g, '\"');\n return 80;\n break;\n\n case 32:\n yy_.yytext = strip(1, 2).replace(/\\\\'/g, \"'\");\n return 80;\n break;\n\n case 33:\n return 85;\n break;\n\n case 34:\n return 82;\n break;\n\n case 35:\n return 82;\n break;\n\n case 36:\n return 83;\n break;\n\n case 37:\n return 84;\n break;\n\n case 38:\n return 81;\n break;\n\n case 39:\n return 75;\n break;\n\n case 40:\n return 77;\n break;\n\n case 41:\n return 72;\n break;\n\n case 42:\n yy_.yytext = yy_.yytext.replace(/\\\\([\\\\\\]])/g, '$1');\n return 72;\n break;\n\n case 43:\n return 'INVALID';\n break;\n\n case 44:\n return 5;\n break;\n }\n };\n\n lexer.rules = [/^(?:[^\\x00]*?(?=(\\{\\{)))/, /^(?:[^\\x00]+)/, /^(?:[^\\x00]{2,}?(?=(\\{\\{|\\\\\\{\\{|\\\\\\\\\\{\\{|$)))/, /^(?:\\{\\{\\{\\{(?=[^\\/]))/, /^(?:\\{\\{\\{\\{\\/[^\\s!\"#%-,\\.\\/;->@\\[-\\^`\\{-~]+(?=[=}\\s\\/.])\\}\\}\\}\\})/, /^(?:[^\\x00]+?(?=(\\{\\{\\{\\{)))/, /^(?:[\\s\\S]*?--(~)?\\}\\})/, /^(?:\\()/, /^(?:\\))/, /^(?:\\{\\{\\{\\{)/, /^(?:\\}\\}\\}\\})/, /^(?:\\{\\{(~)?>)/, /^(?:\\{\\{(~)?#>)/, /^(?:\\{\\{(~)?#\\*?)/, /^(?:\\{\\{(~)?\\/)/, /^(?:\\{\\{(~)?\\^\\s*(~)?\\}\\})/, /^(?:\\{\\{(~)?\\s*else\\s*(~)?\\}\\})/, /^(?:\\{\\{(~)?\\^)/, /^(?:\\{\\{(~)?\\s*else\\b)/, /^(?:\\{\\{(~)?\\{)/, /^(?:\\{\\{(~)?&)/, /^(?:\\{\\{(~)?!--)/, /^(?:\\{\\{(~)?![\\s\\S]*?\\}\\})/, /^(?:\\{\\{(~)?\\*?)/, /^(?:=)/, /^(?:\\.\\.)/, /^(?:\\.(?=([=~}\\s\\/.)|])))/, /^(?:[\\/.])/, /^(?:\\s+)/, /^(?:\\}(~)?\\}\\})/, /^(?:(~)?\\}\\})/, /^(?:\"(\\\\[\"]|[^\"])*\")/, /^(?:'(\\\\[']|[^'])*')/, /^(?:@)/, /^(?:true(?=([~}\\s)])))/, /^(?:false(?=([~}\\s)])))/, /^(?:undefined(?=([~}\\s)])))/, /^(?:null(?=([~}\\s)])))/, /^(?:-?[0-9]+(?:\\.[0-9]+)?(?=([~}\\s)])))/, /^(?:as\\s+\\|)/, /^(?:\\|)/, /^(?:([^\\s!\"#%-,\\.\\/;->@\\[-\\^`\\{-~]+(?=([=~}\\s\\/.)|]))))/, /^(?:\\[(\\\\\\]|[^\\]])*\\])/, /^(?:.)/, /^(?:$)/];\n lexer.conditions = {\n \"mu\": {\n \"rules\": [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44],\n \"inclusive\": false\n },\n \"emu\": {\n \"rules\": [2],\n \"inclusive\": false\n },\n \"com\": {\n \"rules\": [6],\n \"inclusive\": false\n },\n \"raw\": {\n \"rules\": [3, 4, 5],\n \"inclusive\": false\n },\n \"INITIAL\": {\n \"rules\": [0, 1, 44],\n \"inclusive\": true\n }\n };\n return lexer;\n }();\n\n parser.lexer = lexer;\n\n function Parser() {\n this.yy = {};\n }\n\n Parser.prototype = parser;\n parser.Parser = Parser;\n return new Parser();\n}();\n\nexports[\"default\"] = handlebars;\nmodule.exports = exports[\"default\"];","'use strict';\n\nexports.__esModule = true; // istanbul ignore next\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n 'default': obj\n };\n}\n\nvar _visitor = require('./visitor');\n\nvar _visitor2 = _interopRequireDefault(_visitor);\n\nfunction WhitespaceControl() {\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n this.options = options;\n}\n\nWhitespaceControl.prototype = new _visitor2['default']();\n\nWhitespaceControl.prototype.Program = function (program) {\n var doStandalone = !this.options.ignoreStandalone;\n var isRoot = !this.isRootSeen;\n this.isRootSeen = true;\n var body = program.body;\n\n for (var i = 0, l = body.length; i < l; i++) {\n var current = body[i],\n strip = this.accept(current);\n\n if (!strip) {\n continue;\n }\n\n var _isPrevWhitespace = isPrevWhitespace(body, i, isRoot),\n _isNextWhitespace = isNextWhitespace(body, i, isRoot),\n openStandalone = strip.openStandalone && _isPrevWhitespace,\n closeStandalone = strip.closeStandalone && _isNextWhitespace,\n inlineStandalone = strip.inlineStandalone && _isPrevWhitespace && _isNextWhitespace;\n\n if (strip.close) {\n omitRight(body, i, true);\n }\n\n if (strip.open) {\n omitLeft(body, i, true);\n }\n\n if (doStandalone && inlineStandalone) {\n omitRight(body, i);\n\n if (omitLeft(body, i)) {\n // If we are on a standalone node, save the indent info for partials\n if (current.type === 'PartialStatement') {\n // Pull out the whitespace from the final line\n current.indent = /([ \\t]+$)/.exec(body[i - 1].original)[1];\n }\n }\n }\n\n if (doStandalone && openStandalone) {\n omitRight((current.program || current.inverse).body); // Strip out the previous content node if it's whitespace only\n\n omitLeft(body, i);\n }\n\n if (doStandalone && closeStandalone) {\n // Always strip the next node\n omitRight(body, i);\n omitLeft((current.inverse || current.program).body);\n }\n }\n\n return program;\n};\n\nWhitespaceControl.prototype.BlockStatement = WhitespaceControl.prototype.DecoratorBlock = WhitespaceControl.prototype.PartialBlockStatement = function (block) {\n this.accept(block.program);\n this.accept(block.inverse); // Find the inverse program that is involed with whitespace stripping.\n\n var program = block.program || block.inverse,\n inverse = block.program && block.inverse,\n firstInverse = inverse,\n lastInverse = inverse;\n\n if (inverse && inverse.chained) {\n firstInverse = inverse.body[0].program; // Walk the inverse chain to find the last inverse that is actually in the chain.\n\n while (lastInverse.chained) {\n lastInverse = lastInverse.body[lastInverse.body.length - 1].program;\n }\n }\n\n var strip = {\n open: block.openStrip.open,\n close: block.closeStrip.close,\n // Determine the standalone candiacy. Basically flag our content as being possibly standalone\n // so our parent can determine if we actually are standalone\n openStandalone: isNextWhitespace(program.body),\n closeStandalone: isPrevWhitespace((firstInverse || program).body)\n };\n\n if (block.openStrip.close) {\n omitRight(program.body, null, true);\n }\n\n if (inverse) {\n var inverseStrip = block.inverseStrip;\n\n if (inverseStrip.open) {\n omitLeft(program.body, null, true);\n }\n\n if (inverseStrip.close) {\n omitRight(firstInverse.body, null, true);\n }\n\n if (block.closeStrip.open) {\n omitLeft(lastInverse.body, null, true);\n } // Find standalone else statments\n\n\n if (!this.options.ignoreStandalone && isPrevWhitespace(program.body) && isNextWhitespace(firstInverse.body)) {\n omitLeft(program.body);\n omitRight(firstInverse.body);\n }\n } else if (block.closeStrip.open) {\n omitLeft(program.body, null, true);\n }\n\n return strip;\n};\n\nWhitespaceControl.prototype.Decorator = WhitespaceControl.prototype.MustacheStatement = function (mustache) {\n return mustache.strip;\n};\n\nWhitespaceControl.prototype.PartialStatement = WhitespaceControl.prototype.CommentStatement = function (node) {\n /* istanbul ignore next */\n var strip = node.strip || {};\n return {\n inlineStandalone: true,\n open: strip.open,\n close: strip.close\n };\n};\n\nfunction isPrevWhitespace(body, i, isRoot) {\n if (i === undefined) {\n i = body.length;\n } // Nodes that end with newlines are considered whitespace (but are special\n // cased for strip operations)\n\n\n var prev = body[i - 1],\n sibling = body[i - 2];\n\n if (!prev) {\n return isRoot;\n }\n\n if (prev.type === 'ContentStatement') {\n return (sibling || !isRoot ? /\\r?\\n\\s*?$/ : /(^|\\r?\\n)\\s*?$/).test(prev.original);\n }\n}\n\nfunction isNextWhitespace(body, i, isRoot) {\n if (i === undefined) {\n i = -1;\n }\n\n var next = body[i + 1],\n sibling = body[i + 2];\n\n if (!next) {\n return isRoot;\n }\n\n if (next.type === 'ContentStatement') {\n return (sibling || !isRoot ? /^\\s*?\\r?\\n/ : /^\\s*?(\\r?\\n|$)/).test(next.original);\n }\n} // Marks the node to the right of the position as omitted.\n// I.e. {{foo}}' ' will mark the ' ' node as omitted.\n//\n// If i is undefined, then the first child will be marked as such.\n//\n// If mulitple is truthy then all whitespace will be stripped out until non-whitespace\n// content is met.\n\n\nfunction omitRight(body, i, multiple) {\n var current = body[i == null ? 0 : i + 1];\n\n if (!current || current.type !== 'ContentStatement' || !multiple && current.rightStripped) {\n return;\n }\n\n var original = current.value;\n current.value = current.value.replace(multiple ? /^\\s+/ : /^[ \\t]*\\r?\\n?/, '');\n current.rightStripped = current.value !== original;\n} // Marks the node to the left of the position as omitted.\n// I.e. ' '{{foo}} will mark the ' ' node as omitted.\n//\n// If i is undefined then the last child will be marked as such.\n//\n// If mulitple is truthy then all whitespace will be stripped out until non-whitespace\n// content is met.\n\n\nfunction omitLeft(body, i, multiple) {\n var current = body[i == null ? body.length - 1 : i - 1];\n\n if (!current || current.type !== 'ContentStatement' || !multiple && current.leftStripped) {\n return;\n } // We omit the last node if it's whitespace only and not preceded by a non-content node.\n\n\n var original = current.value;\n current.value = current.value.replace(multiple ? /\\s+$/ : /[ \\t]+$/, '');\n current.leftStripped = current.value !== original;\n return current.leftStripped;\n}\n\nexports['default'] = WhitespaceControl;\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports.SourceLocation = SourceLocation;\nexports.id = id;\nexports.stripFlags = stripFlags;\nexports.stripComment = stripComment;\nexports.preparePath = preparePath;\nexports.prepareMustache = prepareMustache;\nexports.prepareRawBlock = prepareRawBlock;\nexports.prepareBlock = prepareBlock;\nexports.prepareProgram = prepareProgram;\nexports.preparePartialBlock = preparePartialBlock; // istanbul ignore next\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n 'default': obj\n };\n}\n\nvar _exception = require('../exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nfunction validateClose(open, close) {\n close = close.path ? close.path.original : close;\n\n if (open.path.original !== close) {\n var errorNode = {\n loc: open.path.loc\n };\n throw new _exception2['default'](open.path.original + \" doesn't match \" + close, errorNode);\n }\n}\n\nfunction SourceLocation(source, locInfo) {\n this.source = source;\n this.start = {\n line: locInfo.first_line,\n column: locInfo.first_column\n };\n this.end = {\n line: locInfo.last_line,\n column: locInfo.last_column\n };\n}\n\nfunction id(token) {\n if (/^\\[.*\\]$/.test(token)) {\n return token.substring(1, token.length - 1);\n } else {\n return token;\n }\n}\n\nfunction stripFlags(open, close) {\n return {\n open: open.charAt(2) === '~',\n close: close.charAt(close.length - 3) === '~'\n };\n}\n\nfunction stripComment(comment) {\n return comment.replace(/^\\{\\{~?!-?-?/, '').replace(/-?-?~?\\}\\}$/, '');\n}\n\nfunction preparePath(data, parts, loc) {\n loc = this.locInfo(loc);\n var original = data ? '@' : '',\n dig = [],\n depth = 0;\n\n for (var i = 0, l = parts.length; i < l; i++) {\n var part = parts[i].part,\n // If we have [] syntax then we do not treat path references as operators,\n // i.e. foo.[this] resolves to approximately context.foo['this']\n isLiteral = parts[i].original !== part;\n original += (parts[i].separator || '') + part;\n\n if (!isLiteral && (part === '..' || part === '.' || part === 'this')) {\n if (dig.length > 0) {\n throw new _exception2['default']('Invalid path: ' + original, {\n loc: loc\n });\n } else if (part === '..') {\n depth++;\n }\n } else {\n dig.push(part);\n }\n }\n\n return {\n type: 'PathExpression',\n data: data,\n depth: depth,\n parts: dig,\n original: original,\n loc: loc\n };\n}\n\nfunction prepareMustache(path, params, hash, open, strip, locInfo) {\n // Must use charAt to support IE pre-10\n var escapeFlag = open.charAt(3) || open.charAt(2),\n escaped = escapeFlag !== '{' && escapeFlag !== '&';\n var decorator = /\\*/.test(open);\n return {\n type: decorator ? 'Decorator' : 'MustacheStatement',\n path: path,\n params: params,\n hash: hash,\n escaped: escaped,\n strip: strip,\n loc: this.locInfo(locInfo)\n };\n}\n\nfunction prepareRawBlock(openRawBlock, contents, close, locInfo) {\n validateClose(openRawBlock, close);\n locInfo = this.locInfo(locInfo);\n var program = {\n type: 'Program',\n body: contents,\n strip: {},\n loc: locInfo\n };\n return {\n type: 'BlockStatement',\n path: openRawBlock.path,\n params: openRawBlock.params,\n hash: openRawBlock.hash,\n program: program,\n openStrip: {},\n inverseStrip: {},\n closeStrip: {},\n loc: locInfo\n };\n}\n\nfunction prepareBlock(openBlock, program, inverseAndProgram, close, inverted, locInfo) {\n if (close && close.path) {\n validateClose(openBlock, close);\n }\n\n var decorator = /\\*/.test(openBlock.open);\n program.blockParams = openBlock.blockParams;\n var inverse = undefined,\n inverseStrip = undefined;\n\n if (inverseAndProgram) {\n if (decorator) {\n throw new _exception2['default']('Unexpected inverse block on decorator', inverseAndProgram);\n }\n\n if (inverseAndProgram.chain) {\n inverseAndProgram.program.body[0].closeStrip = close.strip;\n }\n\n inverseStrip = inverseAndProgram.strip;\n inverse = inverseAndProgram.program;\n }\n\n if (inverted) {\n inverted = inverse;\n inverse = program;\n program = inverted;\n }\n\n return {\n type: decorator ? 'DecoratorBlock' : 'BlockStatement',\n path: openBlock.path,\n params: openBlock.params,\n hash: openBlock.hash,\n program: program,\n inverse: inverse,\n openStrip: openBlock.strip,\n inverseStrip: inverseStrip,\n closeStrip: close && close.strip,\n loc: this.locInfo(locInfo)\n };\n}\n\nfunction prepareProgram(statements, loc) {\n if (!loc && statements.length) {\n var firstLoc = statements[0].loc,\n lastLoc = statements[statements.length - 1].loc;\n /* istanbul ignore else */\n\n if (firstLoc && lastLoc) {\n loc = {\n source: firstLoc.source,\n start: {\n line: firstLoc.start.line,\n column: firstLoc.start.column\n },\n end: {\n line: lastLoc.end.line,\n column: lastLoc.end.column\n }\n };\n }\n }\n\n return {\n type: 'Program',\n body: statements,\n strip: {},\n loc: loc\n };\n}\n\nfunction preparePartialBlock(open, program, close, locInfo) {\n validateClose(open, close);\n return {\n type: 'PartialBlockStatement',\n name: open.path,\n params: open.params,\n hash: open.hash,\n program: program,\n openStrip: open.strip,\n closeStrip: close && close.strip,\n loc: this.locInfo(locInfo)\n };\n}","/* eslint-disable new-cap */\n'use strict';\n\nexports.__esModule = true;\nexports.Compiler = Compiler;\nexports.precompile = precompile;\nexports.compile = compile; // istanbul ignore next\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n 'default': obj\n };\n}\n\nvar _exception = require('../exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nvar _utils = require('../utils');\n\nvar _ast = require('./ast');\n\nvar _ast2 = _interopRequireDefault(_ast);\n\nvar slice = [].slice;\n\nfunction Compiler() {} // the foundHelper register will disambiguate helper lookup from finding a\n// function in a context. This is necessary for mustache compatibility, which\n// requires that context functions in blocks are evaluated by blockHelperMissing,\n// and then proceed as if the resulting value was provided to blockHelperMissing.\n\n\nCompiler.prototype = {\n compiler: Compiler,\n equals: function equals(other) {\n var len = this.opcodes.length;\n\n if (other.opcodes.length !== len) {\n return false;\n }\n\n for (var i = 0; i < len; i++) {\n var opcode = this.opcodes[i],\n otherOpcode = other.opcodes[i];\n\n if (opcode.opcode !== otherOpcode.opcode || !argEquals(opcode.args, otherOpcode.args)) {\n return false;\n }\n } // We know that length is the same between the two arrays because they are directly tied\n // to the opcode behavior above.\n\n\n len = this.children.length;\n\n for (var i = 0; i < len; i++) {\n if (!this.children[i].equals(other.children[i])) {\n return false;\n }\n }\n\n return true;\n },\n guid: 0,\n compile: function compile(program, options) {\n this.sourceNode = [];\n this.opcodes = [];\n this.children = [];\n this.options = options;\n this.stringParams = options.stringParams;\n this.trackIds = options.trackIds;\n options.blockParams = options.blockParams || [];\n options.knownHelpers = _utils.extend(Object.create(null), {\n helperMissing: true,\n blockHelperMissing: true,\n each: true,\n 'if': true,\n unless: true,\n 'with': true,\n log: true,\n lookup: true\n }, options.knownHelpers);\n return this.accept(program);\n },\n compileProgram: function compileProgram(program) {\n var childCompiler = new this.compiler(),\n // eslint-disable-line new-cap\n result = childCompiler.compile(program, this.options),\n guid = this.guid++;\n this.usePartial = this.usePartial || result.usePartial;\n this.children[guid] = result;\n this.useDepths = this.useDepths || result.useDepths;\n return guid;\n },\n accept: function accept(node) {\n /* istanbul ignore next: Sanity code */\n if (!this[node.type]) {\n throw new _exception2['default']('Unknown type: ' + node.type, node);\n }\n\n this.sourceNode.unshift(node);\n var ret = this[node.type](node);\n this.sourceNode.shift();\n return ret;\n },\n Program: function Program(program) {\n this.options.blockParams.unshift(program.blockParams);\n var body = program.body,\n bodyLength = body.length;\n\n for (var i = 0; i < bodyLength; i++) {\n this.accept(body[i]);\n }\n\n this.options.blockParams.shift();\n this.isSimple = bodyLength === 1;\n this.blockParams = program.blockParams ? program.blockParams.length : 0;\n return this;\n },\n BlockStatement: function BlockStatement(block) {\n transformLiteralToPath(block);\n var program = block.program,\n inverse = block.inverse;\n program = program && this.compileProgram(program);\n inverse = inverse && this.compileProgram(inverse);\n var type = this.classifySexpr(block);\n\n if (type === 'helper') {\n this.helperSexpr(block, program, inverse);\n } else if (type === 'simple') {\n this.simpleSexpr(block); // now that the simple mustache is resolved, we need to\n // evaluate it by executing `blockHelperMissing`\n\n this.opcode('pushProgram', program);\n this.opcode('pushProgram', inverse);\n this.opcode('emptyHash');\n this.opcode('blockValue', block.path.original);\n } else {\n this.ambiguousSexpr(block, program, inverse); // now that the simple mustache is resolved, we need to\n // evaluate it by executing `blockHelperMissing`\n\n this.opcode('pushProgram', program);\n this.opcode('pushProgram', inverse);\n this.opcode('emptyHash');\n this.opcode('ambiguousBlockValue');\n }\n\n this.opcode('append');\n },\n DecoratorBlock: function DecoratorBlock(decorator) {\n var program = decorator.program && this.compileProgram(decorator.program);\n var params = this.setupFullMustacheParams(decorator, program, undefined),\n path = decorator.path;\n this.useDecorators = true;\n this.opcode('registerDecorator', params.length, path.original);\n },\n PartialStatement: function PartialStatement(partial) {\n this.usePartial = true;\n var program = partial.program;\n\n if (program) {\n program = this.compileProgram(partial.program);\n }\n\n var params = partial.params;\n\n if (params.length > 1) {\n throw new _exception2['default']('Unsupported number of partial arguments: ' + params.length, partial);\n } else if (!params.length) {\n if (this.options.explicitPartialContext) {\n this.opcode('pushLiteral', 'undefined');\n } else {\n params.push({\n type: 'PathExpression',\n parts: [],\n depth: 0\n });\n }\n }\n\n var partialName = partial.name.original,\n isDynamic = partial.name.type === 'SubExpression';\n\n if (isDynamic) {\n this.accept(partial.name);\n }\n\n this.setupFullMustacheParams(partial, program, undefined, true);\n var indent = partial.indent || '';\n\n if (this.options.preventIndent && indent) {\n this.opcode('appendContent', indent);\n indent = '';\n }\n\n this.opcode('invokePartial', isDynamic, partialName, indent);\n this.opcode('append');\n },\n PartialBlockStatement: function PartialBlockStatement(partialBlock) {\n this.PartialStatement(partialBlock);\n },\n MustacheStatement: function MustacheStatement(mustache) {\n this.SubExpression(mustache);\n\n if (mustache.escaped && !this.options.noEscape) {\n this.opcode('appendEscaped');\n } else {\n this.opcode('append');\n }\n },\n Decorator: function Decorator(decorator) {\n this.DecoratorBlock(decorator);\n },\n ContentStatement: function ContentStatement(content) {\n if (content.value) {\n this.opcode('appendContent', content.value);\n }\n },\n CommentStatement: function CommentStatement() {},\n SubExpression: function SubExpression(sexpr) {\n transformLiteralToPath(sexpr);\n var type = this.classifySexpr(sexpr);\n\n if (type === 'simple') {\n this.simpleSexpr(sexpr);\n } else if (type === 'helper') {\n this.helperSexpr(sexpr);\n } else {\n this.ambiguousSexpr(sexpr);\n }\n },\n ambiguousSexpr: function ambiguousSexpr(sexpr, program, inverse) {\n var path = sexpr.path,\n name = path.parts[0],\n isBlock = program != null || inverse != null;\n this.opcode('getContext', path.depth);\n this.opcode('pushProgram', program);\n this.opcode('pushProgram', inverse);\n path.strict = true;\n this.accept(path);\n this.opcode('invokeAmbiguous', name, isBlock);\n },\n simpleSexpr: function simpleSexpr(sexpr) {\n var path = sexpr.path;\n path.strict = true;\n this.accept(path);\n this.opcode('resolvePossibleLambda');\n },\n helperSexpr: function helperSexpr(sexpr, program, inverse) {\n var params = this.setupFullMustacheParams(sexpr, program, inverse),\n path = sexpr.path,\n name = path.parts[0];\n\n if (this.options.knownHelpers[name]) {\n this.opcode('invokeKnownHelper', params.length, name);\n } else if (this.options.knownHelpersOnly) {\n throw new _exception2['default']('You specified knownHelpersOnly, but used the unknown helper ' + name, sexpr);\n } else {\n path.strict = true;\n path.falsy = true;\n this.accept(path);\n this.opcode('invokeHelper', params.length, path.original, _ast2['default'].helpers.simpleId(path));\n }\n },\n PathExpression: function PathExpression(path) {\n this.addDepth(path.depth);\n this.opcode('getContext', path.depth);\n\n var name = path.parts[0],\n scoped = _ast2['default'].helpers.scopedId(path),\n blockParamId = !path.depth && !scoped && this.blockParamIndex(name);\n\n if (blockParamId) {\n this.opcode('lookupBlockParam', blockParamId, path.parts);\n } else if (!name) {\n // Context reference, i.e. `{{foo .}}` or `{{foo ..}}`\n this.opcode('pushContext');\n } else if (path.data) {\n this.options.data = true;\n this.opcode('lookupData', path.depth, path.parts, path.strict);\n } else {\n this.opcode('lookupOnContext', path.parts, path.falsy, path.strict, scoped);\n }\n },\n StringLiteral: function StringLiteral(string) {\n this.opcode('pushString', string.value);\n },\n NumberLiteral: function NumberLiteral(number) {\n this.opcode('pushLiteral', number.value);\n },\n BooleanLiteral: function BooleanLiteral(bool) {\n this.opcode('pushLiteral', bool.value);\n },\n UndefinedLiteral: function UndefinedLiteral() {\n this.opcode('pushLiteral', 'undefined');\n },\n NullLiteral: function NullLiteral() {\n this.opcode('pushLiteral', 'null');\n },\n Hash: function Hash(hash) {\n var pairs = hash.pairs,\n i = 0,\n l = pairs.length;\n this.opcode('pushHash');\n\n for (; i < l; i++) {\n this.pushParam(pairs[i].value);\n }\n\n while (i--) {\n this.opcode('assignToHash', pairs[i].key);\n }\n\n this.opcode('popHash');\n },\n // HELPERS\n opcode: function opcode(name) {\n this.opcodes.push({\n opcode: name,\n args: slice.call(arguments, 1),\n loc: this.sourceNode[0].loc\n });\n },\n addDepth: function addDepth(depth) {\n if (!depth) {\n return;\n }\n\n this.useDepths = true;\n },\n classifySexpr: function classifySexpr(sexpr) {\n var isSimple = _ast2['default'].helpers.simpleId(sexpr.path);\n\n var isBlockParam = isSimple && !!this.blockParamIndex(sexpr.path.parts[0]); // a mustache is an eligible helper if:\n // * its id is simple (a single part, not `this` or `..`)\n\n var isHelper = !isBlockParam && _ast2['default'].helpers.helperExpression(sexpr); // if a mustache is an eligible helper but not a definite\n // helper, it is ambiguous, and will be resolved in a later\n // pass or at runtime.\n\n\n var isEligible = !isBlockParam && (isHelper || isSimple); // if ambiguous, we can possibly resolve the ambiguity now\n // An eligible helper is one that does not have a complex path, i.e. `this.foo`, `../foo` etc.\n\n if (isEligible && !isHelper) {\n var _name = sexpr.path.parts[0],\n options = this.options;\n\n if (options.knownHelpers[_name]) {\n isHelper = true;\n } else if (options.knownHelpersOnly) {\n isEligible = false;\n }\n }\n\n if (isHelper) {\n return 'helper';\n } else if (isEligible) {\n return 'ambiguous';\n } else {\n return 'simple';\n }\n },\n pushParams: function pushParams(params) {\n for (var i = 0, l = params.length; i < l; i++) {\n this.pushParam(params[i]);\n }\n },\n pushParam: function pushParam(val) {\n var value = val.value != null ? val.value : val.original || '';\n\n if (this.stringParams) {\n if (value.replace) {\n value = value.replace(/^(\\.?\\.\\/)*/g, '').replace(/\\//g, '.');\n }\n\n if (val.depth) {\n this.addDepth(val.depth);\n }\n\n this.opcode('getContext', val.depth || 0);\n this.opcode('pushStringParam', value, val.type);\n\n if (val.type === 'SubExpression') {\n // SubExpressions get evaluated and passed in\n // in string params mode.\n this.accept(val);\n }\n } else {\n if (this.trackIds) {\n var blockParamIndex = undefined;\n\n if (val.parts && !_ast2['default'].helpers.scopedId(val) && !val.depth) {\n blockParamIndex = this.blockParamIndex(val.parts[0]);\n }\n\n if (blockParamIndex) {\n var blockParamChild = val.parts.slice(1).join('.');\n this.opcode('pushId', 'BlockParam', blockParamIndex, blockParamChild);\n } else {\n value = val.original || value;\n\n if (value.replace) {\n value = value.replace(/^this(?:\\.|$)/, '').replace(/^\\.\\//, '').replace(/^\\.$/, '');\n }\n\n this.opcode('pushId', val.type, value);\n }\n }\n\n this.accept(val);\n }\n },\n setupFullMustacheParams: function setupFullMustacheParams(sexpr, program, inverse, omitEmpty) {\n var params = sexpr.params;\n this.pushParams(params);\n this.opcode('pushProgram', program);\n this.opcode('pushProgram', inverse);\n\n if (sexpr.hash) {\n this.accept(sexpr.hash);\n } else {\n this.opcode('emptyHash', omitEmpty);\n }\n\n return params;\n },\n blockParamIndex: function blockParamIndex(name) {\n for (var depth = 0, len = this.options.blockParams.length; depth < len; depth++) {\n var blockParams = this.options.blockParams[depth],\n param = blockParams && _utils.indexOf(blockParams, name);\n\n if (blockParams && param >= 0) {\n return [depth, param];\n }\n }\n }\n};\n\nfunction precompile(input, options, env) {\n if (input == null || typeof input !== 'string' && input.type !== 'Program') {\n throw new _exception2['default']('You must pass a string or Handlebars AST to Handlebars.precompile. You passed ' + input);\n }\n\n options = options || {};\n\n if (!('data' in options)) {\n options.data = true;\n }\n\n if (options.compat) {\n options.useDepths = true;\n }\n\n var ast = env.parse(input, options),\n environment = new env.Compiler().compile(ast, options);\n return new env.JavaScriptCompiler().compile(environment, options);\n}\n\nfunction compile(input, options, env) {\n if (options === undefined) options = {};\n\n if (input == null || typeof input !== 'string' && input.type !== 'Program') {\n throw new _exception2['default']('You must pass a string or Handlebars AST to Handlebars.compile. You passed ' + input);\n }\n\n options = _utils.extend({}, options);\n\n if (!('data' in options)) {\n options.data = true;\n }\n\n if (options.compat) {\n options.useDepths = true;\n }\n\n var compiled = undefined;\n\n function compileInput() {\n var ast = env.parse(input, options),\n environment = new env.Compiler().compile(ast, options),\n templateSpec = new env.JavaScriptCompiler().compile(environment, options, undefined, true);\n return env.template(templateSpec);\n } // Template is only compiled on first use and cached after that point.\n\n\n function ret(context, execOptions) {\n if (!compiled) {\n compiled = compileInput();\n }\n\n return compiled.call(this, context, execOptions);\n }\n\n ret._setup = function (setupOptions) {\n if (!compiled) {\n compiled = compileInput();\n }\n\n return compiled._setup(setupOptions);\n };\n\n ret._child = function (i, data, blockParams, depths) {\n if (!compiled) {\n compiled = compileInput();\n }\n\n return compiled._child(i, data, blockParams, depths);\n };\n\n return ret;\n}\n\nfunction argEquals(a, b) {\n if (a === b) {\n return true;\n }\n\n if (_utils.isArray(a) && _utils.isArray(b) && a.length === b.length) {\n for (var i = 0; i < a.length; i++) {\n if (!argEquals(a[i], b[i])) {\n return false;\n }\n }\n\n return true;\n }\n}\n\nfunction transformLiteralToPath(sexpr) {\n if (!sexpr.path.parts) {\n var literal = sexpr.path; // Casting to string here to make false and 0 literal values play nicely with the rest\n // of the system.\n\n sexpr.path = {\n type: 'PathExpression',\n data: false,\n depth: 0,\n parts: [literal.original + ''],\n original: literal.original + '',\n loc: literal.loc\n };\n }\n}","'use strict';\n\nexports.__esModule = true; // istanbul ignore next\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n 'default': obj\n };\n}\n\nvar _base = require('../base');\n\nvar _exception = require('../exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nvar _utils = require('../utils');\n\nvar _codeGen = require('./code-gen');\n\nvar _codeGen2 = _interopRequireDefault(_codeGen);\n\nfunction Literal(value) {\n this.value = value;\n}\n\nfunction JavaScriptCompiler() {}\n\nJavaScriptCompiler.prototype = {\n // PUBLIC API: You can override these methods in a subclass to provide\n // alternative compiled forms for name lookup and buffering semantics\n nameLookup: function nameLookup(parent, name\n /*, type */\n ) {\n return this.internalNameLookup(parent, name);\n },\n depthedLookup: function depthedLookup(name) {\n return [this.aliasable('container.lookup'), '(depths, ', JSON.stringify(name), ')'];\n },\n compilerInfo: function compilerInfo() {\n var revision = _base.COMPILER_REVISION,\n versions = _base.REVISION_CHANGES[revision];\n return [revision, versions];\n },\n appendToBuffer: function appendToBuffer(source, location, explicit) {\n // Force a source as this simplifies the merge logic.\n if (!_utils.isArray(source)) {\n source = [source];\n }\n\n source = this.source.wrap(source, location);\n\n if (this.environment.isSimple) {\n return ['return ', source, ';'];\n } else if (explicit) {\n // This is a case where the buffer operation occurs as a child of another\n // construct, generally braces. We have to explicitly output these buffer\n // operations to ensure that the emitted code goes in the correct location.\n return ['buffer += ', source, ';'];\n } else {\n source.appendToBuffer = true;\n return source;\n }\n },\n initializeBuffer: function initializeBuffer() {\n return this.quotedString('');\n },\n // END PUBLIC API\n internalNameLookup: function internalNameLookup(parent, name) {\n this.lookupPropertyFunctionIsUsed = true;\n return ['lookupProperty(', parent, ',', JSON.stringify(name), ')'];\n },\n lookupPropertyFunctionIsUsed: false,\n compile: function compile(environment, options, context, asObject) {\n this.environment = environment;\n this.options = options;\n this.stringParams = this.options.stringParams;\n this.trackIds = this.options.trackIds;\n this.precompile = !asObject;\n this.name = this.environment.name;\n this.isChild = !!context;\n this.context = context || {\n decorators: [],\n programs: [],\n environments: []\n };\n this.preamble();\n this.stackSlot = 0;\n this.stackVars = [];\n this.aliases = {};\n this.registers = {\n list: []\n };\n this.hashes = [];\n this.compileStack = [];\n this.inlineStack = [];\n this.blockParams = [];\n this.compileChildren(environment, options);\n this.useDepths = this.useDepths || environment.useDepths || environment.useDecorators || this.options.compat;\n this.useBlockParams = this.useBlockParams || environment.useBlockParams;\n var opcodes = environment.opcodes,\n opcode = undefined,\n firstLoc = undefined,\n i = undefined,\n l = undefined;\n\n for (i = 0, l = opcodes.length; i < l; i++) {\n opcode = opcodes[i];\n this.source.currentLocation = opcode.loc;\n firstLoc = firstLoc || opcode.loc;\n this[opcode.opcode].apply(this, opcode.args);\n } // Flush any trailing content that might be pending.\n\n\n this.source.currentLocation = firstLoc;\n this.pushSource('');\n /* istanbul ignore next */\n\n if (this.stackSlot || this.inlineStack.length || this.compileStack.length) {\n throw new _exception2['default']('Compile completed with content left on stack');\n }\n\n if (!this.decorators.isEmpty()) {\n this.useDecorators = true;\n this.decorators.prepend(['var decorators = container.decorators, ', this.lookupPropertyFunctionVarDeclaration(), ';\\n']);\n this.decorators.push('return fn;');\n\n if (asObject) {\n this.decorators = Function.apply(this, ['fn', 'props', 'container', 'depth0', 'data', 'blockParams', 'depths', this.decorators.merge()]);\n } else {\n this.decorators.prepend('function(fn, props, container, depth0, data, blockParams, depths) {\\n');\n this.decorators.push('}\\n');\n this.decorators = this.decorators.merge();\n }\n } else {\n this.decorators = undefined;\n }\n\n var fn = this.createFunctionContext(asObject);\n\n if (!this.isChild) {\n var ret = {\n compiler: this.compilerInfo(),\n main: fn\n };\n\n if (this.decorators) {\n ret.main_d = this.decorators; // eslint-disable-line camelcase\n\n ret.useDecorators = true;\n }\n\n var _context = this.context;\n var programs = _context.programs;\n var decorators = _context.decorators;\n\n for (i = 0, l = programs.length; i < l; i++) {\n if (programs[i]) {\n ret[i] = programs[i];\n\n if (decorators[i]) {\n ret[i + '_d'] = decorators[i];\n ret.useDecorators = true;\n }\n }\n }\n\n if (this.environment.usePartial) {\n ret.usePartial = true;\n }\n\n if (this.options.data) {\n ret.useData = true;\n }\n\n if (this.useDepths) {\n ret.useDepths = true;\n }\n\n if (this.useBlockParams) {\n ret.useBlockParams = true;\n }\n\n if (this.options.compat) {\n ret.compat = true;\n }\n\n if (!asObject) {\n ret.compiler = JSON.stringify(ret.compiler);\n this.source.currentLocation = {\n start: {\n line: 1,\n column: 0\n }\n };\n ret = this.objectLiteral(ret);\n\n if (options.srcName) {\n ret = ret.toStringWithSourceMap({\n file: options.destName\n });\n ret.map = ret.map && ret.map.toString();\n } else {\n ret = ret.toString();\n }\n } else {\n ret.compilerOptions = this.options;\n }\n\n return ret;\n } else {\n return fn;\n }\n },\n preamble: function preamble() {\n // track the last context pushed into place to allow skipping the\n // getContext opcode when it would be a noop\n this.lastContext = 0;\n this.source = new _codeGen2['default'](this.options.srcName);\n this.decorators = new _codeGen2['default'](this.options.srcName);\n },\n createFunctionContext: function createFunctionContext(asObject) {\n // istanbul ignore next\n var _this = this;\n\n var varDeclarations = '';\n var locals = this.stackVars.concat(this.registers.list);\n\n if (locals.length > 0) {\n varDeclarations += ', ' + locals.join(', ');\n } // Generate minimizer alias mappings\n //\n // When using true SourceNodes, this will update all references to the given alias\n // as the source nodes are reused in situ. For the non-source node compilation mode,\n // aliases will not be used, but this case is already being run on the client and\n // we aren't concern about minimizing the template size.\n\n\n var aliasCount = 0;\n Object.keys(this.aliases).forEach(function (alias) {\n var node = _this.aliases[alias];\n\n if (node.children && node.referenceCount > 1) {\n varDeclarations += ', alias' + ++aliasCount + '=' + alias;\n node.children[0] = 'alias' + aliasCount;\n }\n });\n\n if (this.lookupPropertyFunctionIsUsed) {\n varDeclarations += ', ' + this.lookupPropertyFunctionVarDeclaration();\n }\n\n var params = ['container', 'depth0', 'helpers', 'partials', 'data'];\n\n if (this.useBlockParams || this.useDepths) {\n params.push('blockParams');\n }\n\n if (this.useDepths) {\n params.push('depths');\n } // Perform a second pass over the output to merge content when possible\n\n\n var source = this.mergeSource(varDeclarations);\n\n if (asObject) {\n params.push(source);\n return Function.apply(this, params);\n } else {\n return this.source.wrap(['function(', params.join(','), ') {\\n ', source, '}']);\n }\n },\n mergeSource: function mergeSource(varDeclarations) {\n var isSimple = this.environment.isSimple,\n appendOnly = !this.forceBuffer,\n appendFirst = undefined,\n sourceSeen = undefined,\n bufferStart = undefined,\n bufferEnd = undefined;\n this.source.each(function (line) {\n if (line.appendToBuffer) {\n if (bufferStart) {\n line.prepend(' + ');\n } else {\n bufferStart = line;\n }\n\n bufferEnd = line;\n } else {\n if (bufferStart) {\n if (!sourceSeen) {\n appendFirst = true;\n } else {\n bufferStart.prepend('buffer += ');\n }\n\n bufferEnd.add(';');\n bufferStart = bufferEnd = undefined;\n }\n\n sourceSeen = true;\n\n if (!isSimple) {\n appendOnly = false;\n }\n }\n });\n\n if (appendOnly) {\n if (bufferStart) {\n bufferStart.prepend('return ');\n bufferEnd.add(';');\n } else if (!sourceSeen) {\n this.source.push('return \"\";');\n }\n } else {\n varDeclarations += ', buffer = ' + (appendFirst ? '' : this.initializeBuffer());\n\n if (bufferStart) {\n bufferStart.prepend('return buffer + ');\n bufferEnd.add(';');\n } else {\n this.source.push('return buffer;');\n }\n }\n\n if (varDeclarations) {\n this.source.prepend('var ' + varDeclarations.substring(2) + (appendFirst ? '' : ';\\n'));\n }\n\n return this.source.merge();\n },\n lookupPropertyFunctionVarDeclaration: function lookupPropertyFunctionVarDeclaration() {\n return '\\n lookupProperty = container.lookupProperty || function(parent, propertyName) {\\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\\n return parent[propertyName];\\n }\\n return undefined\\n }\\n '.trim();\n },\n // [blockValue]\n //\n // On stack, before: hash, inverse, program, value\n // On stack, after: return value of blockHelperMissing\n //\n // The purpose of this opcode is to take a block of the form\n // `{{#this.foo}}...{{/this.foo}}`, resolve the value of `foo`, and\n // replace it on the stack with the result of properly\n // invoking blockHelperMissing.\n blockValue: function blockValue(name) {\n var blockHelperMissing = this.aliasable('container.hooks.blockHelperMissing'),\n params = [this.contextName(0)];\n this.setupHelperArgs(name, 0, params);\n var blockName = this.popStack();\n params.splice(1, 0, blockName);\n this.push(this.source.functionCall(blockHelperMissing, 'call', params));\n },\n // [ambiguousBlockValue]\n //\n // On stack, before: hash, inverse, program, value\n // Compiler value, before: lastHelper=value of last found helper, if any\n // On stack, after, if no lastHelper: same as [blockValue]\n // On stack, after, if lastHelper: value\n ambiguousBlockValue: function ambiguousBlockValue() {\n // We're being a bit cheeky and reusing the options value from the prior exec\n var blockHelperMissing = this.aliasable('container.hooks.blockHelperMissing'),\n params = [this.contextName(0)];\n this.setupHelperArgs('', 0, params, true);\n this.flushInline();\n var current = this.topStack();\n params.splice(1, 0, current);\n this.pushSource(['if (!', this.lastHelper, ') { ', current, ' = ', this.source.functionCall(blockHelperMissing, 'call', params), '}']);\n },\n // [appendContent]\n //\n // On stack, before: ...\n // On stack, after: ...\n //\n // Appends the string value of `content` to the current buffer\n appendContent: function appendContent(content) {\n if (this.pendingContent) {\n content = this.pendingContent + content;\n } else {\n this.pendingLocation = this.source.currentLocation;\n }\n\n this.pendingContent = content;\n },\n // [append]\n //\n // On stack, before: value, ...\n // On stack, after: ...\n //\n // Coerces `value` to a String and appends it to the current buffer.\n //\n // If `value` is truthy, or 0, it is coerced into a string and appended\n // Otherwise, the empty string is appended\n append: function append() {\n if (this.isInline()) {\n this.replaceStack(function (current) {\n return [' != null ? ', current, ' : \"\"'];\n });\n this.pushSource(this.appendToBuffer(this.popStack()));\n } else {\n var local = this.popStack();\n this.pushSource(['if (', local, ' != null) { ', this.appendToBuffer(local, undefined, true), ' }']);\n\n if (this.environment.isSimple) {\n this.pushSource(['else { ', this.appendToBuffer(\"''\", undefined, true), ' }']);\n }\n }\n },\n // [appendEscaped]\n //\n // On stack, before: value, ...\n // On stack, after: ...\n //\n // Escape `value` and append it to the buffer\n appendEscaped: function appendEscaped() {\n this.pushSource(this.appendToBuffer([this.aliasable('container.escapeExpression'), '(', this.popStack(), ')']));\n },\n // [getContext]\n //\n // On stack, before: ...\n // On stack, after: ...\n // Compiler value, after: lastContext=depth\n //\n // Set the value of the `lastContext` compiler value to the depth\n getContext: function getContext(depth) {\n this.lastContext = depth;\n },\n // [pushContext]\n //\n // On stack, before: ...\n // On stack, after: currentContext, ...\n //\n // Pushes the value of the current context onto the stack.\n pushContext: function pushContext() {\n this.pushStackLiteral(this.contextName(this.lastContext));\n },\n // [lookupOnContext]\n //\n // On stack, before: ...\n // On stack, after: currentContext[name], ...\n //\n // Looks up the value of `name` on the current context and pushes\n // it onto the stack.\n lookupOnContext: function lookupOnContext(parts, falsy, strict, scoped) {\n var i = 0;\n\n if (!scoped && this.options.compat && !this.lastContext) {\n // The depthed query is expected to handle the undefined logic for the root level that\n // is implemented below, so we evaluate that directly in compat mode\n this.push(this.depthedLookup(parts[i++]));\n } else {\n this.pushContext();\n }\n\n this.resolvePath('context', parts, i, falsy, strict);\n },\n // [lookupBlockParam]\n //\n // On stack, before: ...\n // On stack, after: blockParam[name], ...\n //\n // Looks up the value of `parts` on the given block param and pushes\n // it onto the stack.\n lookupBlockParam: function lookupBlockParam(blockParamId, parts) {\n this.useBlockParams = true;\n this.push(['blockParams[', blockParamId[0], '][', blockParamId[1], ']']);\n this.resolvePath('context', parts, 1);\n },\n // [lookupData]\n //\n // On stack, before: ...\n // On stack, after: data, ...\n //\n // Push the data lookup operator\n lookupData: function lookupData(depth, parts, strict) {\n if (!depth) {\n this.pushStackLiteral('data');\n } else {\n this.pushStackLiteral('container.data(data, ' + depth + ')');\n }\n\n this.resolvePath('data', parts, 0, true, strict);\n },\n resolvePath: function resolvePath(type, parts, i, falsy, strict) {\n // istanbul ignore next\n var _this2 = this;\n\n if (this.options.strict || this.options.assumeObjects) {\n this.push(strictLookup(this.options.strict && strict, this, parts, type));\n return;\n }\n\n var len = parts.length;\n\n for (; i < len; i++) {\n /* eslint-disable no-loop-func */\n this.replaceStack(function (current) {\n var lookup = _this2.nameLookup(current, parts[i], type); // We want to ensure that zero and false are handled properly if the context (falsy flag)\n // needs to have the special handling for these values.\n\n\n if (!falsy) {\n return [' != null ? ', lookup, ' : ', current];\n } else {\n // Otherwise we can use generic falsy handling\n return [' && ', lookup];\n }\n });\n /* eslint-enable no-loop-func */\n }\n },\n // [resolvePossibleLambda]\n //\n // On stack, before: value, ...\n // On stack, after: resolved value, ...\n //\n // If the `value` is a lambda, replace it on the stack by\n // the return value of the lambda\n resolvePossibleLambda: function resolvePossibleLambda() {\n this.push([this.aliasable('container.lambda'), '(', this.popStack(), ', ', this.contextName(0), ')']);\n },\n // [pushStringParam]\n //\n // On stack, before: ...\n // On stack, after: string, currentContext, ...\n //\n // This opcode is designed for use in string mode, which\n // provides the string value of a parameter along with its\n // depth rather than resolving it immediately.\n pushStringParam: function pushStringParam(string, type) {\n this.pushContext();\n this.pushString(type); // If it's a subexpression, the string result\n // will be pushed after this opcode.\n\n if (type !== 'SubExpression') {\n if (typeof string === 'string') {\n this.pushString(string);\n } else {\n this.pushStackLiteral(string);\n }\n }\n },\n emptyHash: function emptyHash(omitEmpty) {\n if (this.trackIds) {\n this.push('{}'); // hashIds\n }\n\n if (this.stringParams) {\n this.push('{}'); // hashContexts\n\n this.push('{}'); // hashTypes\n }\n\n this.pushStackLiteral(omitEmpty ? 'undefined' : '{}');\n },\n pushHash: function pushHash() {\n if (this.hash) {\n this.hashes.push(this.hash);\n }\n\n this.hash = {\n values: {},\n types: [],\n contexts: [],\n ids: []\n };\n },\n popHash: function popHash() {\n var hash = this.hash;\n this.hash = this.hashes.pop();\n\n if (this.trackIds) {\n this.push(this.objectLiteral(hash.ids));\n }\n\n if (this.stringParams) {\n this.push(this.objectLiteral(hash.contexts));\n this.push(this.objectLiteral(hash.types));\n }\n\n this.push(this.objectLiteral(hash.values));\n },\n // [pushString]\n //\n // On stack, before: ...\n // On stack, after: quotedString(string), ...\n //\n // Push a quoted version of `string` onto the stack\n pushString: function pushString(string) {\n this.pushStackLiteral(this.quotedString(string));\n },\n // [pushLiteral]\n //\n // On stack, before: ...\n // On stack, after: value, ...\n //\n // Pushes a value onto the stack. This operation prevents\n // the compiler from creating a temporary variable to hold\n // it.\n pushLiteral: function pushLiteral(value) {\n this.pushStackLiteral(value);\n },\n // [pushProgram]\n //\n // On stack, before: ...\n // On stack, after: program(guid), ...\n //\n // Push a program expression onto the stack. This takes\n // a compile-time guid and converts it into a runtime-accessible\n // expression.\n pushProgram: function pushProgram(guid) {\n if (guid != null) {\n this.pushStackLiteral(this.programExpression(guid));\n } else {\n this.pushStackLiteral(null);\n }\n },\n // [registerDecorator]\n //\n // On stack, before: hash, program, params..., ...\n // On stack, after: ...\n //\n // Pops off the decorator's parameters, invokes the decorator,\n // and inserts the decorator into the decorators list.\n registerDecorator: function registerDecorator(paramSize, name) {\n var foundDecorator = this.nameLookup('decorators', name, 'decorator'),\n options = this.setupHelperArgs(name, paramSize);\n this.decorators.push(['fn = ', this.decorators.functionCall(foundDecorator, '', ['fn', 'props', 'container', options]), ' || fn;']);\n },\n // [invokeHelper]\n //\n // On stack, before: hash, inverse, program, params..., ...\n // On stack, after: result of helper invocation\n //\n // Pops off the helper's parameters, invokes the helper,\n // and pushes the helper's return value onto the stack.\n //\n // If the helper is not found, `helperMissing` is called.\n invokeHelper: function invokeHelper(paramSize, name, isSimple) {\n var nonHelper = this.popStack(),\n helper = this.setupHelper(paramSize, name);\n var possibleFunctionCalls = [];\n\n if (isSimple) {\n // direct call to helper\n possibleFunctionCalls.push(helper.name);\n } // call a function from the input object\n\n\n possibleFunctionCalls.push(nonHelper);\n\n if (!this.options.strict) {\n possibleFunctionCalls.push(this.aliasable('container.hooks.helperMissing'));\n }\n\n var functionLookupCode = ['(', this.itemsSeparatedBy(possibleFunctionCalls, '||'), ')'];\n var functionCall = this.source.functionCall(functionLookupCode, 'call', helper.callParams);\n this.push(functionCall);\n },\n itemsSeparatedBy: function itemsSeparatedBy(items, separator) {\n var result = [];\n result.push(items[0]);\n\n for (var i = 1; i < items.length; i++) {\n result.push(separator, items[i]);\n }\n\n return result;\n },\n // [invokeKnownHelper]\n //\n // On stack, before: hash, inverse, program, params..., ...\n // On stack, after: result of helper invocation\n //\n // This operation is used when the helper is known to exist,\n // so a `helperMissing` fallback is not required.\n invokeKnownHelper: function invokeKnownHelper(paramSize, name) {\n var helper = this.setupHelper(paramSize, name);\n this.push(this.source.functionCall(helper.name, 'call', helper.callParams));\n },\n // [invokeAmbiguous]\n //\n // On stack, before: hash, inverse, program, params..., ...\n // On stack, after: result of disambiguation\n //\n // This operation is used when an expression like `{{foo}}`\n // is provided, but we don't know at compile-time whether it\n // is a helper or a path.\n //\n // This operation emits more code than the other options,\n // and can be avoided by passing the `knownHelpers` and\n // `knownHelpersOnly` flags at compile-time.\n invokeAmbiguous: function invokeAmbiguous(name, helperCall) {\n this.useRegister('helper');\n var nonHelper = this.popStack();\n this.emptyHash();\n var helper = this.setupHelper(0, name, helperCall);\n var helperName = this.lastHelper = this.nameLookup('helpers', name, 'helper');\n var lookup = ['(', '(helper = ', helperName, ' || ', nonHelper, ')'];\n\n if (!this.options.strict) {\n lookup[0] = '(helper = ';\n lookup.push(' != null ? helper : ', this.aliasable('container.hooks.helperMissing'));\n }\n\n this.push(['(', lookup, helper.paramsInit ? ['),(', helper.paramsInit] : [], '),', '(typeof helper === ', this.aliasable('\"function\"'), ' ? ', this.source.functionCall('helper', 'call', helper.callParams), ' : helper))']);\n },\n // [invokePartial]\n //\n // On stack, before: context, ...\n // On stack after: result of partial invocation\n //\n // This operation pops off a context, invokes a partial with that context,\n // and pushes the result of the invocation back.\n invokePartial: function invokePartial(isDynamic, name, indent) {\n var params = [],\n options = this.setupParams(name, 1, params);\n\n if (isDynamic) {\n name = this.popStack();\n delete options.name;\n }\n\n if (indent) {\n options.indent = JSON.stringify(indent);\n }\n\n options.helpers = 'helpers';\n options.partials = 'partials';\n options.decorators = 'container.decorators';\n\n if (!isDynamic) {\n params.unshift(this.nameLookup('partials', name, 'partial'));\n } else {\n params.unshift(name);\n }\n\n if (this.options.compat) {\n options.depths = 'depths';\n }\n\n options = this.objectLiteral(options);\n params.push(options);\n this.push(this.source.functionCall('container.invokePartial', '', params));\n },\n // [assignToHash]\n //\n // On stack, before: value, ..., hash, ...\n // On stack, after: ..., hash, ...\n //\n // Pops a value off the stack and assigns it to the current hash\n assignToHash: function assignToHash(key) {\n var value = this.popStack(),\n context = undefined,\n type = undefined,\n id = undefined;\n\n if (this.trackIds) {\n id = this.popStack();\n }\n\n if (this.stringParams) {\n type = this.popStack();\n context = this.popStack();\n }\n\n var hash = this.hash;\n\n if (context) {\n hash.contexts[key] = context;\n }\n\n if (type) {\n hash.types[key] = type;\n }\n\n if (id) {\n hash.ids[key] = id;\n }\n\n hash.values[key] = value;\n },\n pushId: function pushId(type, name, child) {\n if (type === 'BlockParam') {\n this.pushStackLiteral('blockParams[' + name[0] + '].path[' + name[1] + ']' + (child ? ' + ' + JSON.stringify('.' + child) : ''));\n } else if (type === 'PathExpression') {\n this.pushString(name);\n } else if (type === 'SubExpression') {\n this.pushStackLiteral('true');\n } else {\n this.pushStackLiteral('null');\n }\n },\n // HELPERS\n compiler: JavaScriptCompiler,\n compileChildren: function compileChildren(environment, options) {\n var children = environment.children,\n child = undefined,\n compiler = undefined;\n\n for (var i = 0, l = children.length; i < l; i++) {\n child = children[i];\n compiler = new this.compiler(); // eslint-disable-line new-cap\n\n var existing = this.matchExistingProgram(child);\n\n if (existing == null) {\n this.context.programs.push(''); // Placeholder to prevent name conflicts for nested children\n\n var index = this.context.programs.length;\n child.index = index;\n child.name = 'program' + index;\n this.context.programs[index] = compiler.compile(child, options, this.context, !this.precompile);\n this.context.decorators[index] = compiler.decorators;\n this.context.environments[index] = child;\n this.useDepths = this.useDepths || compiler.useDepths;\n this.useBlockParams = this.useBlockParams || compiler.useBlockParams;\n child.useDepths = this.useDepths;\n child.useBlockParams = this.useBlockParams;\n } else {\n child.index = existing.index;\n child.name = 'program' + existing.index;\n this.useDepths = this.useDepths || existing.useDepths;\n this.useBlockParams = this.useBlockParams || existing.useBlockParams;\n }\n }\n },\n matchExistingProgram: function matchExistingProgram(child) {\n for (var i = 0, len = this.context.environments.length; i < len; i++) {\n var environment = this.context.environments[i];\n\n if (environment && environment.equals(child)) {\n return environment;\n }\n }\n },\n programExpression: function programExpression(guid) {\n var child = this.environment.children[guid],\n programParams = [child.index, 'data', child.blockParams];\n\n if (this.useBlockParams || this.useDepths) {\n programParams.push('blockParams');\n }\n\n if (this.useDepths) {\n programParams.push('depths');\n }\n\n return 'container.program(' + programParams.join(', ') + ')';\n },\n useRegister: function useRegister(name) {\n if (!this.registers[name]) {\n this.registers[name] = true;\n this.registers.list.push(name);\n }\n },\n push: function push(expr) {\n if (!(expr instanceof Literal)) {\n expr = this.source.wrap(expr);\n }\n\n this.inlineStack.push(expr);\n return expr;\n },\n pushStackLiteral: function pushStackLiteral(item) {\n this.push(new Literal(item));\n },\n pushSource: function pushSource(source) {\n if (this.pendingContent) {\n this.source.push(this.appendToBuffer(this.source.quotedString(this.pendingContent), this.pendingLocation));\n this.pendingContent = undefined;\n }\n\n if (source) {\n this.source.push(source);\n }\n },\n replaceStack: function replaceStack(callback) {\n var prefix = ['('],\n stack = undefined,\n createdStack = undefined,\n usedLiteral = undefined;\n /* istanbul ignore next */\n\n if (!this.isInline()) {\n throw new _exception2['default']('replaceStack on non-inline');\n } // We want to merge the inline statement into the replacement statement via ','\n\n\n var top = this.popStack(true);\n\n if (top instanceof Literal) {\n // Literals do not need to be inlined\n stack = [top.value];\n prefix = ['(', stack];\n usedLiteral = true;\n } else {\n // Get or create the current stack name for use by the inline\n createdStack = true;\n\n var _name = this.incrStack();\n\n prefix = ['((', this.push(_name), ' = ', top, ')'];\n stack = this.topStack();\n }\n\n var item = callback.call(this, stack);\n\n if (!usedLiteral) {\n this.popStack();\n }\n\n if (createdStack) {\n this.stackSlot--;\n }\n\n this.push(prefix.concat(item, ')'));\n },\n incrStack: function incrStack() {\n this.stackSlot++;\n\n if (this.stackSlot > this.stackVars.length) {\n this.stackVars.push('stack' + this.stackSlot);\n }\n\n return this.topStackName();\n },\n topStackName: function topStackName() {\n return 'stack' + this.stackSlot;\n },\n flushInline: function flushInline() {\n var inlineStack = this.inlineStack;\n this.inlineStack = [];\n\n for (var i = 0, len = inlineStack.length; i < len; i++) {\n var entry = inlineStack[i];\n /* istanbul ignore if */\n\n if (entry instanceof Literal) {\n this.compileStack.push(entry);\n } else {\n var stack = this.incrStack();\n this.pushSource([stack, ' = ', entry, ';']);\n this.compileStack.push(stack);\n }\n }\n },\n isInline: function isInline() {\n return this.inlineStack.length;\n },\n popStack: function popStack(wrapped) {\n var inline = this.isInline(),\n item = (inline ? this.inlineStack : this.compileStack).pop();\n\n if (!wrapped && item instanceof Literal) {\n return item.value;\n } else {\n if (!inline) {\n /* istanbul ignore next */\n if (!this.stackSlot) {\n throw new _exception2['default']('Invalid stack pop');\n }\n\n this.stackSlot--;\n }\n\n return item;\n }\n },\n topStack: function topStack() {\n var stack = this.isInline() ? this.inlineStack : this.compileStack,\n item = stack[stack.length - 1];\n /* istanbul ignore if */\n\n if (item instanceof Literal) {\n return item.value;\n } else {\n return item;\n }\n },\n contextName: function contextName(context) {\n if (this.useDepths && context) {\n return 'depths[' + context + ']';\n } else {\n return 'depth' + context;\n }\n },\n quotedString: function quotedString(str) {\n return this.source.quotedString(str);\n },\n objectLiteral: function objectLiteral(obj) {\n return this.source.objectLiteral(obj);\n },\n aliasable: function aliasable(name) {\n var ret = this.aliases[name];\n\n if (ret) {\n ret.referenceCount++;\n return ret;\n }\n\n ret = this.aliases[name] = this.source.wrap(name);\n ret.aliasable = true;\n ret.referenceCount = 1;\n return ret;\n },\n setupHelper: function setupHelper(paramSize, name, blockHelper) {\n var params = [],\n paramsInit = this.setupHelperArgs(name, paramSize, params, blockHelper);\n var foundHelper = this.nameLookup('helpers', name, 'helper'),\n callContext = this.aliasable(this.contextName(0) + ' != null ? ' + this.contextName(0) + ' : (container.nullContext || {})');\n return {\n params: params,\n paramsInit: paramsInit,\n name: foundHelper,\n callParams: [callContext].concat(params)\n };\n },\n setupParams: function setupParams(helper, paramSize, params) {\n var options = {},\n contexts = [],\n types = [],\n ids = [],\n objectArgs = !params,\n param = undefined;\n\n if (objectArgs) {\n params = [];\n }\n\n options.name = this.quotedString(helper);\n options.hash = this.popStack();\n\n if (this.trackIds) {\n options.hashIds = this.popStack();\n }\n\n if (this.stringParams) {\n options.hashTypes = this.popStack();\n options.hashContexts = this.popStack();\n }\n\n var inverse = this.popStack(),\n program = this.popStack(); // Avoid setting fn and inverse if neither are set. This allows\n // helpers to do a check for `if (options.fn)`\n\n if (program || inverse) {\n options.fn = program || 'container.noop';\n options.inverse = inverse || 'container.noop';\n } // The parameters go on to the stack in order (making sure that they are evaluated in order)\n // so we need to pop them off the stack in reverse order\n\n\n var i = paramSize;\n\n while (i--) {\n param = this.popStack();\n params[i] = param;\n\n if (this.trackIds) {\n ids[i] = this.popStack();\n }\n\n if (this.stringParams) {\n types[i] = this.popStack();\n contexts[i] = this.popStack();\n }\n }\n\n if (objectArgs) {\n options.args = this.source.generateArray(params);\n }\n\n if (this.trackIds) {\n options.ids = this.source.generateArray(ids);\n }\n\n if (this.stringParams) {\n options.types = this.source.generateArray(types);\n options.contexts = this.source.generateArray(contexts);\n }\n\n if (this.options.data) {\n options.data = 'data';\n }\n\n if (this.useBlockParams) {\n options.blockParams = 'blockParams';\n }\n\n return options;\n },\n setupHelperArgs: function setupHelperArgs(helper, paramSize, params, useRegister) {\n var options = this.setupParams(helper, paramSize, params);\n options.loc = JSON.stringify(this.source.currentLocation);\n options = this.objectLiteral(options);\n\n if (useRegister) {\n this.useRegister('options');\n params.push('options');\n return ['options=', options];\n } else if (params) {\n params.push(options);\n return '';\n } else {\n return options;\n }\n }\n};\n\n(function () {\n var reservedWords = ('break else new var' + ' case finally return void' + ' catch for switch while' + ' continue function this with' + ' default if throw' + ' delete in try' + ' do instanceof typeof' + ' abstract enum int short' + ' boolean export interface static' + ' byte extends long super' + ' char final native synchronized' + ' class float package throws' + ' const goto private transient' + ' debugger implements protected volatile' + ' double import public let yield await' + ' null true false').split(' ');\n var compilerWords = JavaScriptCompiler.RESERVED_WORDS = {};\n\n for (var i = 0, l = reservedWords.length; i < l; i++) {\n compilerWords[reservedWords[i]] = true;\n }\n})();\n/**\n * @deprecated May be removed in the next major version\n */\n\n\nJavaScriptCompiler.isValidJavaScriptVariableName = function (name) {\n return !JavaScriptCompiler.RESERVED_WORDS[name] && /^[a-zA-Z_$][0-9a-zA-Z_$]*$/.test(name);\n};\n\nfunction strictLookup(requireTerminal, compiler, parts, type) {\n var stack = compiler.popStack(),\n i = 0,\n len = parts.length;\n\n if (requireTerminal) {\n len--;\n }\n\n for (; i < len; i++) {\n stack = compiler.nameLookup(stack, parts[i], type);\n }\n\n if (requireTerminal) {\n return [compiler.aliasable('container.strict'), '(', stack, ', ', compiler.quotedString(parts[i]), ', ', JSON.stringify(compiler.source.currentLocation), ' )'];\n } else {\n return stack;\n }\n}\n\nexports['default'] = JavaScriptCompiler;\nmodule.exports = exports['default'];","/* global define */\n'use strict';\n\nexports.__esModule = true;\n\nvar _utils = require('../utils');\n\nvar SourceNode = undefined;\n\ntry {\n /* istanbul ignore next */\n if (typeof define !== 'function' || !define.amd) {\n // We don't support this in AMD environments. For these environments, we asusme that\n // they are running on the browser and thus have no need for the source-map library.\n var SourceMap = require('source-map');\n\n SourceNode = SourceMap.SourceNode;\n }\n} catch (err) {}\n/* NOP */\n\n/* istanbul ignore if: tested but not covered in istanbul due to dist build */\n\n\nif (!SourceNode) {\n SourceNode = function SourceNode(line, column, srcFile, chunks) {\n this.src = '';\n\n if (chunks) {\n this.add(chunks);\n }\n };\n /* istanbul ignore next */\n\n\n SourceNode.prototype = {\n add: function add(chunks) {\n if (_utils.isArray(chunks)) {\n chunks = chunks.join('');\n }\n\n this.src += chunks;\n },\n prepend: function prepend(chunks) {\n if (_utils.isArray(chunks)) {\n chunks = chunks.join('');\n }\n\n this.src = chunks + this.src;\n },\n toStringWithSourceMap: function toStringWithSourceMap() {\n return {\n code: this.toString()\n };\n },\n toString: function toString() {\n return this.src;\n }\n };\n}\n\nfunction castChunk(chunk, codeGen, loc) {\n if (_utils.isArray(chunk)) {\n var ret = [];\n\n for (var i = 0, len = chunk.length; i < len; i++) {\n ret.push(codeGen.wrap(chunk[i], loc));\n }\n\n return ret;\n } else if (typeof chunk === 'boolean' || typeof chunk === 'number') {\n // Handle primitives that the SourceNode will throw up on\n return chunk + '';\n }\n\n return chunk;\n}\n\nfunction CodeGen(srcFile) {\n this.srcFile = srcFile;\n this.source = [];\n}\n\nCodeGen.prototype = {\n isEmpty: function isEmpty() {\n return !this.source.length;\n },\n prepend: function prepend(source, loc) {\n this.source.unshift(this.wrap(source, loc));\n },\n push: function push(source, loc) {\n this.source.push(this.wrap(source, loc));\n },\n merge: function merge() {\n var source = this.empty();\n this.each(function (line) {\n source.add([' ', line, '\\n']);\n });\n return source;\n },\n each: function each(iter) {\n for (var i = 0, len = this.source.length; i < len; i++) {\n iter(this.source[i]);\n }\n },\n empty: function empty() {\n var loc = this.currentLocation || {\n start: {}\n };\n return new SourceNode(loc.start.line, loc.start.column, this.srcFile);\n },\n wrap: function wrap(chunk) {\n var loc = arguments.length <= 1 || arguments[1] === undefined ? this.currentLocation || {\n start: {}\n } : arguments[1];\n\n if (chunk instanceof SourceNode) {\n return chunk;\n }\n\n chunk = castChunk(chunk, this, loc);\n return new SourceNode(loc.start.line, loc.start.column, this.srcFile, chunk);\n },\n functionCall: function functionCall(fn, type, params) {\n params = this.generateList(params);\n return this.wrap([fn, type ? '.' + type + '(' : '(', params, ')']);\n },\n quotedString: function quotedString(str) {\n return '\"' + (str + '').replace(/\\\\/g, '\\\\\\\\').replace(/\"/g, '\\\\\"').replace(/\\n/g, '\\\\n').replace(/\\r/g, '\\\\r').replace(/\\u2028/g, '\\\\u2028') // Per Ecma-262 7.3 + 7.8.4\n .replace(/\\u2029/g, '\\\\u2029') + '\"';\n },\n objectLiteral: function objectLiteral(obj) {\n // istanbul ignore next\n var _this = this;\n\n var pairs = [];\n Object.keys(obj).forEach(function (key) {\n var value = castChunk(obj[key], _this);\n\n if (value !== 'undefined') {\n pairs.push([_this.quotedString(key), ':', value]);\n }\n });\n var ret = this.generateList(pairs);\n ret.prepend('{');\n ret.add('}');\n return ret;\n },\n generateList: function generateList(entries) {\n var ret = this.empty();\n\n for (var i = 0, len = entries.length; i < len; i++) {\n if (i) {\n ret.add(',');\n }\n\n ret.add(castChunk(entries[i], this));\n }\n\n return ret;\n },\n generateArray: function generateArray(entries) {\n var ret = this.generateList(entries);\n ret.prepend('[');\n ret.add(']');\n return ret;\n }\n};\nexports['default'] = CodeGen;\nmodule.exports = exports['default'];","module.exports = __webpack_public_path__ + \"media/checkmarks/green-checkmark-68ab5ccd.svg\";","// @noflow\nimport React from 'react'\nimport { useTranslation } from 'react-i18next'\n\nimport Text from '@/components/elements/atoms/Text/Text'\nimport * as Validation from '@/components/pages/CheckoutPage/components/Validation/Validation'\nimport * as inputs from '@/components/pages/CheckoutPage/helpers/inputs'\n\nimport type { Code as CountryCode } from '@/shared_types/rails_models/shipping_countries'\n\nimport type {\n AccountDetailsFormKey,\n AddressDetailsFormKey,\n DeliveryDetailsFormKey\n} from '../../types'\n\ntype FormSectionKey =\n | AddressDetailsFormKey\n | AccountDetailsFormKey\n | DeliveryDetailsFormKey\n\ntype InputInteractionState =\n | 'InteractingInteracted'\n | 'InteractingNotInteracted'\n | 'NotInteractingInteracted'\n | 'NotInteractingNotInteracted'\n\ntype InputWithString = {\n errorMessage: string | null\n inputInteractionState: InputInteractionState\n value: string\n}\n\ntype Props = {\n children?: React.ReactNode\n fieldName: FormSectionKey\n isValid: boolean\n onBlur: (event: React.ChangeEvent<HTMLInputElement>) => void\n onChange: (event: React.ChangeEvent<HTMLInputElement>) => void\n value: string\n dataTestId?: string\n isHidden?: boolean\n shippingCountryCode?: CountryCode\n}\n\ntype Translate = (arg0: string) => string\n\nconst placeholder = (\n t: Translate,\n fieldName: FormSectionKey,\n shippingCountryCode?: CountryCode\n): React.ReactElement => {\n const copy_context = 'input_placeholders'\n const placeholderFieldName =\n fieldName === 'postcode' && shippingCountryCode === 'IE'\n ? 'eircode'\n : fieldName\n // For GB, we want to make the field optional but not display the copy indicating it is 'optional'\n const isGBMobile =\n fieldName === 'mobileNumber' && shippingCountryCode === 'GB'\n return (\n <p\n className={`checkout-placeholder ${fieldName}-placeholder`}\n id={`${fieldName}-placeholder`}\n >\n {inputs.mapFieldNameToPlaceholder(\n t,\n placeholderFieldName,\n shippingCountryCode\n )}\n {isGBMobile ||\n fieldName === 'searchTerm' ||\n inputs.isRequired(fieldName, shippingCountryCode) ? null : (\n <span className=\"optional-label\">\n {`- ${t(`${copy_context}.optional`)}`}\n </span>\n )}\n </p>\n )\n}\n\nconst BaseInputField = ({\n onChange,\n onBlur,\n children,\n fieldName,\n value,\n isValid,\n dataTestId,\n isHidden = false,\n shippingCountryCode\n}: Props): React.ReactElement => {\n const { t } = useTranslation('checkout')\n return (\n <div\n className={`checkout-input-wrapper${\n isValid ? '' : ' checkout-input-wrapper--invalid'\n } checkout-input-wrapper--${fieldName}${\n isHidden ? ' checkout-input-wrapper--hidden' : ''\n }`}\n >\n <input\n id={fieldName}\n data-testid={dataTestId}\n aria-labelledby={`${fieldName}-placeholder`}\n autoComplete={inputs.mapFieldNameToAutocomplete(fieldName)}\n className={`checkout-input${\n value === '' ? '' : ' checkout-input--interacted'\n }`}\n name={fieldName}\n onBlur={onBlur}\n onChange={onChange}\n type={inputs.mapFieldNameToType(fieldName)}\n value={value}\n />\n {placeholder(t, fieldName, shippingCountryCode)}\n {children}\n </div>\n )\n}\n\nconst StandardInputField = ({\n input,\n fieldName,\n onChange,\n dataTestId,\n onBlur,\n isHidden,\n shippingCountryCode,\n maxCharacterLimit\n}: {\n fieldName: FormSectionKey\n input: InputWithString\n onBlur: (event: React.ChangeEvent<HTMLInputElement>) => void\n onChange: (event: React.ChangeEvent<HTMLInputElement>) => void\n dataTestId?: string\n isHidden?: boolean\n shippingCountryCode?: CountryCode\n maxCharacterLimit?: number | null\n}): React.ReactElement => {\n const indicator = inputs.validationIndicator(input)\n\n return (\n <React.Fragment>\n <BaseInputField\n fieldName={fieldName}\n isValid={indicator !== 'error'}\n onBlur={onBlur}\n onChange={onChange}\n dataTestId={dataTestId}\n value={input.value}\n isHidden={isHidden}\n shippingCountryCode={shippingCountryCode}\n >\n {indicator === 'checkmark' ? (\n <Validation.Checkmark color=\"green\" />\n ) : null}\n </BaseInputField>\n\n {!isHidden && (\n <div\n className={`checkout-counter ${\n indicator === 'error' && 'checkout-counter--invalid'\n }`}\n >\n <div>\n {indicator === 'error' && (\n <Validation.Error errorMessage={input.errorMessage || ''} />\n )}\n </div>\n {maxCharacterLimit && fieldName === 'addressLine1' && (\n <Text\n text={`${input.value.length}/${maxCharacterLimit}`}\n align=\"right\"\n variant=\"textRegular12\"\n translate={false}\n colour={indicator === 'error' ? 'dangerRed300' : 'brandBlue500'}\n />\n )}\n </div>\n )}\n </React.Fragment>\n )\n}\n\nconst AddressSearchInputField = ({\n input,\n fieldName,\n onChange,\n dataTestId,\n onBlur,\n shippingCountryCode\n}: {\n fieldName: FormSectionKey\n input: InputWithString\n onBlur: (event: React.ChangeEvent<HTMLInputElement>) => void\n onChange: (event: React.ChangeEvent<HTMLInputElement>) => void\n dataTestId?: string\n shippingCountryCode: CountryCode\n}): React.ReactElement => {\n const indicator = inputs.validationIndicator(input)\n return (\n <React.Fragment>\n <div className=\"search-term-button-wrapper\">\n <BaseInputField\n fieldName={fieldName}\n isValid={indicator !== 'error'}\n onBlur={onBlur}\n onChange={onChange}\n dataTestId={dataTestId}\n value={input.value}\n shippingCountryCode={shippingCountryCode}\n />\n </div>\n {indicator === 'error' ? (\n <Validation.Error errorMessage={input.errorMessage || ''} />\n ) : null}\n </React.Fragment>\n )\n}\n\nexport {\n StandardInputField,\n AddressSearchInputField,\n BaseInputField,\n InputWithString,\n InputInteractionState\n}\n","import extractNationalNumberFromPossiblyIncompleteNumber from './extractNationalNumberFromPossiblyIncompleteNumber';\nimport matchesEntirely from './matchesEntirely';\nimport checkNumberLength from './checkNumberLength';\n/**\r\n * Strips national prefix and carrier code from a complete phone number.\r\n * The difference from the non-\"FromCompleteNumber\" function is that\r\n * it won't extract national prefix if the resultant number is too short\r\n * to be a complete number for the selected phone numbering plan.\r\n * @param {string} number — Complete phone number digits.\r\n * @param {Metadata} metadata — Metadata with a phone numbering plan selected.\r\n * @return {object} `{ nationalNumber: string, carrierCode: string? }`.\r\n */\n\nexport default function extractNationalNumber(number, metadata) {\n // Parsing national prefixes and carrier codes\n // is only required for local phone numbers\n // but some people don't understand that\n // and sometimes write international phone numbers\n // with national prefixes (or maybe even carrier codes).\n // http://ucken.blogspot.ru/2016/03/trunk-prefixes-in-skype4b.html\n // Google's original library forgives such mistakes\n // and so does this library, because it has been requested:\n // https://github.com/catamphetamine/libphonenumber-js/issues/127\n var _extractNationalNumbe = extractNationalNumberFromPossiblyIncompleteNumber(number, metadata),\n nationalNumber = _extractNationalNumbe.nationalNumber,\n carrierCode = _extractNationalNumbe.carrierCode;\n\n if (!shouldExtractNationalPrefix(number, nationalNumber, metadata)) {\n // Don't strip the national prefix.\n return {\n nationalNumber: number\n };\n } // If a national prefix has been extracted, check to see\n // if the resultant number isn't too short.\n // Same code in Google's `libphonenumber`:\n // https://github.com/google/libphonenumber/blob/e326fa1fc4283bb05eb35cb3c15c18f98a31af33/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L3291-L3302\n // For some reason, they do this check right after the `national_number_pattern` check\n // this library does in `shouldExtractNationalPrefix()` function.\n // Why is there a second \"resultant\" number validity check?\n // They don't provide an explanation.\n // This library just copies the behavior.\n\n\n if (number.length !== nationalNumber.length + (carrierCode ? carrierCode.length : 0)) {\n // If not using legacy generated metadata (before version `1.0.18`)\n // then it has \"possible lengths\", so use those to validate the number length.\n if (metadata.possibleLengths()) {\n // \"We require that the NSN remaining after stripping the national prefix and\n // carrier code be long enough to be a possible length for the region.\n // Otherwise, we don't do the stripping, since the original number could be\n // a valid short number.\"\n // https://github.com/google/libphonenumber/blob/876268eb1ad6cdc1b7b5bef17fc5e43052702d57/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L3236-L3250\n switch (checkNumberLength(nationalNumber, metadata)) {\n case 'TOO_SHORT':\n case 'INVALID_LENGTH':\n // case 'IS_POSSIBLE_LOCAL_ONLY':\n // Don't strip the national prefix.\n return {\n nationalNumber: number\n };\n }\n }\n }\n\n return {\n nationalNumber: nationalNumber,\n carrierCode: carrierCode\n };\n} // In some countries, the same digit could be a national prefix\n// or a leading digit of a valid phone number.\n// For example, in Russia, national prefix is `8`,\n// and also `800 555 35 35` is a valid number\n// in which `8` is not a national prefix, but the first digit\n// of a national (significant) number.\n// Same's with Belarus:\n// `82004910060` is a valid national (significant) number,\n// but `2004910060` is not.\n// To support such cases (to prevent the code from always stripping\n// national prefix), a condition is imposed: a national prefix\n// is not extracted when the original number is \"viable\" and the\n// resultant number is not, a \"viable\" national number being the one\n// that matches `national_number_pattern`.\n\nfunction shouldExtractNationalPrefix(number, nationalSignificantNumber, metadata) {\n // The equivalent in Google's code is:\n // https://github.com/google/libphonenumber/blob/e326fa1fc4283bb05eb35cb3c15c18f98a31af33/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L2969-L3004\n if (matchesEntirely(number, metadata.nationalNumberPattern()) && !matchesEntirely(nationalSignificantNumber, metadata.nationalNumberPattern())) {\n return false;\n } // Just \"possible\" number check would be more relaxed, so it's not used.\n // if (isPossibleNumber(number, metadata) &&\n // \t!isPossibleNumber(numberWithNationalPrefixExtracted, metadata)) {\n // \treturn false\n // }\n\n\n return true;\n}","// @noflow\nimport type {\n Recommendation,\n RecommendationId,\n Recommendations\n} from './generateRecommendations'\n\nconst setRecommendationCompletion = (\n recommendationId: RecommendationId\n): void => {\n const localStorageItem = window.localStorage.getItem(\n 'onboardingRecommendations'\n )\n if (!localStorageItem) return\n\n const onboardingRecommendations: Recommendations =\n JSON.parse(localStorageItem)\n\n const updatedOnboardingRecommendations = onboardingRecommendations.map(\n (recommendation: Recommendation) => {\n return recommendation.id === recommendationId\n ? { ...recommendation, completed: true }\n : recommendation\n }\n )\n window.localStorage.setItem(\n 'onboardingRecommendations',\n JSON.stringify(updatedOnboardingRecommendations)\n )\n}\n\nexport default setRecommendationCompletion\n","// @noflow\nimport i18next from 'i18next'\n\nimport setRecommendationCompletion from '@/utils/onboardingQuiz/setRecommendationCompletion'\n\nimport segmentTrack from '@/components/analytics/Analytics'\n\ntype PartialLocation =\n | 'Dashboard'\n | 'Post Signup Wizard'\n | 'Thank You'\n | 'Raf Campaign'\n\ntype ReferralShareMethod =\n | 'WhatsApp'\n | 'Email'\n | 'Facebook'\n | 'Email'\n | 'Copy Link'\n\nconst referralLinkEvent = (\n method: ReferralShareMethod,\n location: PartialLocation\n): void => {\n const event = 'Referral Link Copy Share Event'\n const properties = { method, location }\n\n segmentTrack(event, properties)\n}\n\nconst copyReferralLinkButtonWasClicked = ({\n e,\n referralLink,\n partialLocation,\n copyReferralLinkCallback\n}: {\n e:\n | React.MouseEvent<HTMLButtonElement>\n | React.KeyboardEvent<HTMLButtonElement>\n referralLink: string\n partialLocation: PartialLocation\n copyReferralLinkCallback: (alertMessage: string) => void\n}): void => {\n e.currentTarget.blur()\n const elem = document.getElementsByClassName(\n `input-${referralLink}`\n )[0] as HTMLInputElement | null\n\n if (!elem) {\n // eslint-disable-next-line i18next/no-literal-string\n copyReferralLinkCallback(`Oops! Couldn't copy`)\n return\n }\n\n elem.select()\n const range = document.createRange()\n range.selectNodeContents(elem)\n const selection = window.getSelection()\n\n if (selection) {\n selection.removeAllRanges()\n selection.addRange(range)\n }\n\n elem.setSelectionRange(0, 999999)\n\n const success = document.execCommand('copy')\n\n if (success) {\n copyReferralLinkCallback(\n i18next.t('dashboard:referrals.link_and_share.copied_tooltip')\n )\n setRecommendationCompletion('Raf')\n } else {\n // eslint-disable-next-line i18next/no-literal-string\n copyReferralLinkCallback(`Oops! Couldn't copy`)\n }\n\n referralLinkEvent('Copy Link', partialLocation)\n}\n\nconst shareOnFacebookButtonWasClicked = (\n partialLocation: PartialLocation\n): void => {\n referralLinkEvent('Facebook', partialLocation)\n}\n\nconst shareOnWhatsAppButtonWasClicked = (\n partialLocation: PartialLocation\n): void => {\n referralLinkEvent('WhatsApp', partialLocation)\n}\n\nconst shareByMailButtonWasClicked = (\n partialLocation: PartialLocation\n): void => {\n referralLinkEvent('Email', partialLocation)\n}\n\nconst sendEmailButtonWasClicked = (partialLocation: PartialLocation): void => {\n referralLinkEvent('Email', partialLocation)\n}\n\nexport type { PartialLocation }\n\nexport {\n copyReferralLinkButtonWasClicked,\n shareOnFacebookButtonWasClicked,\n shareOnWhatsAppButtonWasClicked,\n shareByMailButtonWasClicked,\n sendEmailButtonWasClicked,\n referralLinkEvent\n}\n","const ensureNever = (x: never): never => x\n\nconst notEmpty = <T>(value: T | null | undefined): value is T => {\n return value !== null && value !== undefined\n}\nexport { ensureNever, notEmpty }\n","// @noflow\nimport type { BreedSelectorQuery_breeds as Breed } from '@/components/elements/molecules/BreedAutocomplete/queries/__generated__/BreedSelectorQuery'\n\ntype PopularBreeds = {\n [key: Breed['key']]: {\n number: number\n slug: string\n }\n}\n\nconst popularBreeds: PopularBreeds = {\n basset_hound: {\n number: 350,\n slug: 'breed_card_basset_hound'\n },\n beagle: {\n number: 2202,\n slug: 'breed_card_beagle'\n },\n border_collie: {\n number: 4652,\n slug: 'breed_card_border_collie'\n },\n boxer: {\n number: 1403,\n slug: 'breed_card_boxer'\n },\n bulldog: {\n number: 1290,\n slug: 'breed_card_bulldog'\n },\n cavalier_king_charles_spaniel: {\n number: 3499,\n slug: 'breed_card_cavalier_king_charles_spaniel'\n },\n cavapoo_cavalier_king_charles_spaniel_poodle_mix: {\n number: 9855,\n slug: 'breed_card_cavapoo'\n },\n chihuahua: {\n number: 6196,\n slug: 'breed_card_chihuahua'\n },\n cockapoo_cocker_spaniel_poodle_mix: {\n number: 24256,\n slug: 'breed_card_cockapoo'\n },\n cocker_spaniel: {\n number: 11283,\n slug: 'breed_card_cocker_spaniel'\n },\n dachshund: {\n number: 4753,\n slug: 'breed_card_dachshund'\n },\n dobermann: {\n number: 267,\n slug: 'breed_card_dobermann'\n },\n french_bulldog: {\n number: 11418,\n slug: 'breed_card_frenchie'\n },\n german_shepherd: {\n number: 1910,\n slug: 'breed_card_german_shepherd'\n },\n golden_retriever: {\n number: 5297,\n slug: 'breed_card_golden_retriever'\n },\n goldendoodle_golden_retriever_poodle_mix: {\n number: 1793,\n slug: 'breed_card_goldendoodle'\n },\n jack_russell_terrier: {\n number: 7449,\n slug: 'breed_card_jack_russell'\n },\n labradoodle_labrador_retriever_poodle_mix: {\n number: 3838,\n slug: 'breed_card_labradoodle'\n },\n labrador_retriever: {\n number: 10537,\n slug: 'breed_card_labrador'\n },\n maltese: {\n number: 4124,\n slug: 'breed_card_maltese'\n },\n maltipoo_maltese_poodle_mix: {\n number: 2600,\n slug: 'breed_card_maltipoo'\n },\n mini_american_shepherd: {\n number: 59,\n slug: 'breed_card_mini_american_shepherd'\n },\n miniature_dachshund: {\n number: 7285,\n slug: 'breed_card_miniature_dachshund'\n },\n pembroke_welsh_corgi: {\n number: 497,\n slug: 'breed_card_corgi'\n },\n pomeranian: {\n number: 2946,\n slug: 'breed_card_pomeranian'\n },\n pug: { number: 3138, slug: 'breed_card_pug' },\n shih_tzu: {\n number: 6523,\n slug: 'breed_card_shih_tzu'\n },\n sprocker: {\n number: 1918,\n slug: 'breed_card_sprocker'\n },\n staffordshire_bull_terrier: {\n number: 4188,\n slug: 'breed_card_staffordshire_bull_terrier'\n },\n tibetan_terrier: {\n number: 895,\n slug: 'breed_card_tibetan_terrier'\n },\n vizsla: {\n number: 441,\n slug: 'breed_card_vizsla'\n },\n west_highland_white_terrier: {\n number: 2366,\n slug: 'breed_card_west_highland_white_terrier'\n },\n whippet: {\n number: 2789,\n slug: 'breed_card_whippet'\n }\n}\n\nexport default popularBreeds\n","module.exports = __webpack_public_path__ + \"media/crosses/red-cross-e5e8e3e6.svg\";","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n\n/* global define */\n(function () {\n 'use strict';\n\n var hasOwn = {}.hasOwnProperty;\n\n function classNames() {\n var classes = '';\n\n for (var i = 0; i < arguments.length; i++) {\n var arg = arguments[i];\n\n if (arg) {\n classes = appendClass(classes, parseValue(arg));\n }\n }\n\n return classes;\n }\n\n function parseValue(arg) {\n if (typeof arg === 'string' || typeof arg === 'number') {\n return arg;\n }\n\n if (typeof arg !== 'object') {\n return '';\n }\n\n if (Array.isArray(arg)) {\n return classNames.apply(null, arg);\n }\n\n if (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n return arg.toString();\n }\n\n var classes = '';\n\n for (var key in arg) {\n if (hasOwn.call(arg, key) && arg[key]) {\n classes = appendClass(classes, key);\n }\n }\n\n return classes;\n }\n\n function appendClass(value, newClass) {\n if (!newClass) {\n return value;\n }\n\n if (value) {\n return value + ' ' + newClass;\n }\n\n return value + newClass;\n }\n\n if (typeof module !== 'undefined' && module.exports) {\n classNames.default = classNames;\n module.exports = classNames;\n } else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n // register as 'classnames', consistent with npm package name\n define('classnames', [], function () {\n return classNames;\n });\n } else {\n window.classNames = classNames;\n }\n})();","'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n 'default': obj\n };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== 'function' && superClass !== null) {\n throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar _mapToZero = require('./mapToZero');\n\nvar _mapToZero2 = _interopRequireDefault(_mapToZero);\n\nvar _stripStyle = require('./stripStyle');\n\nvar _stripStyle2 = _interopRequireDefault(_stripStyle);\n\nvar _stepper3 = require('./stepper');\n\nvar _stepper4 = _interopRequireDefault(_stepper3);\n\nvar _performanceNow = require('performance-now');\n\nvar _performanceNow2 = _interopRequireDefault(_performanceNow);\n\nvar _raf = require('raf');\n\nvar _raf2 = _interopRequireDefault(_raf);\n\nvar _shouldStopAnimation = require('./shouldStopAnimation');\n\nvar _shouldStopAnimation2 = _interopRequireDefault(_shouldStopAnimation);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar msPerFrame = 1000 / 60;\n\nvar Motion = function (_React$Component) {\n _inherits(Motion, _React$Component);\n\n _createClass(Motion, null, [{\n key: 'propTypes',\n value: {\n // TOOD: warn against putting a config in here\n defaultStyle: _propTypes2['default'].objectOf(_propTypes2['default'].number),\n style: _propTypes2['default'].objectOf(_propTypes2['default'].oneOfType([_propTypes2['default'].number, _propTypes2['default'].object])).isRequired,\n children: _propTypes2['default'].func.isRequired,\n onRest: _propTypes2['default'].func\n },\n enumerable: true\n }]);\n\n function Motion(props) {\n var _this = this;\n\n _classCallCheck(this, Motion);\n\n _React$Component.call(this, props);\n\n this.wasAnimating = false;\n this.animationID = null;\n this.prevTime = 0;\n this.accumulatedTime = 0;\n this.unreadPropStyle = null;\n\n this.clearUnreadPropStyle = function (destStyle) {\n var dirty = false;\n var _state = _this.state;\n var currentStyle = _state.currentStyle;\n var currentVelocity = _state.currentVelocity;\n var lastIdealStyle = _state.lastIdealStyle;\n var lastIdealVelocity = _state.lastIdealVelocity;\n\n for (var key in destStyle) {\n if (!Object.prototype.hasOwnProperty.call(destStyle, key)) {\n continue;\n }\n\n var styleValue = destStyle[key];\n\n if (typeof styleValue === 'number') {\n if (!dirty) {\n dirty = true;\n currentStyle = _extends({}, currentStyle);\n currentVelocity = _extends({}, currentVelocity);\n lastIdealStyle = _extends({}, lastIdealStyle);\n lastIdealVelocity = _extends({}, lastIdealVelocity);\n }\n\n currentStyle[key] = styleValue;\n currentVelocity[key] = 0;\n lastIdealStyle[key] = styleValue;\n lastIdealVelocity[key] = 0;\n }\n }\n\n if (dirty) {\n _this.setState({\n currentStyle: currentStyle,\n currentVelocity: currentVelocity,\n lastIdealStyle: lastIdealStyle,\n lastIdealVelocity: lastIdealVelocity\n });\n }\n };\n\n this.startAnimationIfNecessary = function () {\n // TODO: when config is {a: 10} and dest is {a: 10} do we raf once and\n // call cb? No, otherwise accidental parent rerender causes cb trigger\n _this.animationID = _raf2['default'](function (timestamp) {\n // check if we need to animate in the first place\n var propsStyle = _this.props.style;\n\n if (_shouldStopAnimation2['default'](_this.state.currentStyle, propsStyle, _this.state.currentVelocity)) {\n if (_this.wasAnimating && _this.props.onRest) {\n _this.props.onRest();\n } // no need to cancel animationID here; shouldn't have any in flight\n\n\n _this.animationID = null;\n _this.wasAnimating = false;\n _this.accumulatedTime = 0;\n return;\n }\n\n _this.wasAnimating = true;\n\n var currentTime = timestamp || _performanceNow2['default']();\n\n var timeDelta = currentTime - _this.prevTime;\n _this.prevTime = currentTime;\n _this.accumulatedTime = _this.accumulatedTime + timeDelta; // more than 10 frames? prolly switched browser tab. Restart\n\n if (_this.accumulatedTime > msPerFrame * 10) {\n _this.accumulatedTime = 0;\n }\n\n if (_this.accumulatedTime === 0) {\n // no need to cancel animationID here; shouldn't have any in flight\n _this.animationID = null;\n\n _this.startAnimationIfNecessary();\n\n return;\n }\n\n var currentFrameCompletion = (_this.accumulatedTime - Math.floor(_this.accumulatedTime / msPerFrame) * msPerFrame) / msPerFrame;\n var framesToCatchUp = Math.floor(_this.accumulatedTime / msPerFrame);\n var newLastIdealStyle = {};\n var newLastIdealVelocity = {};\n var newCurrentStyle = {};\n var newCurrentVelocity = {};\n\n for (var key in propsStyle) {\n if (!Object.prototype.hasOwnProperty.call(propsStyle, key)) {\n continue;\n }\n\n var styleValue = propsStyle[key];\n\n if (typeof styleValue === 'number') {\n newCurrentStyle[key] = styleValue;\n newCurrentVelocity[key] = 0;\n newLastIdealStyle[key] = styleValue;\n newLastIdealVelocity[key] = 0;\n } else {\n var newLastIdealStyleValue = _this.state.lastIdealStyle[key];\n var newLastIdealVelocityValue = _this.state.lastIdealVelocity[key];\n\n for (var i = 0; i < framesToCatchUp; i++) {\n var _stepper = _stepper4['default'](msPerFrame / 1000, newLastIdealStyleValue, newLastIdealVelocityValue, styleValue.val, styleValue.stiffness, styleValue.damping, styleValue.precision);\n\n newLastIdealStyleValue = _stepper[0];\n newLastIdealVelocityValue = _stepper[1];\n }\n\n var _stepper2 = _stepper4['default'](msPerFrame / 1000, newLastIdealStyleValue, newLastIdealVelocityValue, styleValue.val, styleValue.stiffness, styleValue.damping, styleValue.precision);\n\n var nextIdealX = _stepper2[0];\n var nextIdealV = _stepper2[1];\n newCurrentStyle[key] = newLastIdealStyleValue + (nextIdealX - newLastIdealStyleValue) * currentFrameCompletion;\n newCurrentVelocity[key] = newLastIdealVelocityValue + (nextIdealV - newLastIdealVelocityValue) * currentFrameCompletion;\n newLastIdealStyle[key] = newLastIdealStyleValue;\n newLastIdealVelocity[key] = newLastIdealVelocityValue;\n }\n }\n\n _this.animationID = null; // the amount we're looped over above\n\n _this.accumulatedTime -= framesToCatchUp * msPerFrame;\n\n _this.setState({\n currentStyle: newCurrentStyle,\n currentVelocity: newCurrentVelocity,\n lastIdealStyle: newLastIdealStyle,\n lastIdealVelocity: newLastIdealVelocity\n });\n\n _this.unreadPropStyle = null;\n\n _this.startAnimationIfNecessary();\n });\n };\n\n this.state = this.defaultState();\n }\n\n Motion.prototype.defaultState = function defaultState() {\n var _props = this.props;\n var defaultStyle = _props.defaultStyle;\n var style = _props.style;\n\n var currentStyle = defaultStyle || _stripStyle2['default'](style);\n\n var currentVelocity = _mapToZero2['default'](currentStyle);\n\n return {\n currentStyle: currentStyle,\n currentVelocity: currentVelocity,\n lastIdealStyle: currentStyle,\n lastIdealVelocity: currentVelocity\n };\n }; // it's possible that currentStyle's value is stale: if props is immediately\n // changed from 0 to 400 to spring(0) again, the async currentStyle is still\n // at 0 (didn't have time to tick and interpolate even once). If we naively\n // compare currentStyle with destVal it'll be 0 === 0 (no animation, stop).\n // In reality currentStyle should be 400\n\n\n Motion.prototype.componentDidMount = function componentDidMount() {\n this.prevTime = _performanceNow2['default']();\n this.startAnimationIfNecessary();\n };\n\n Motion.prototype.componentWillReceiveProps = function componentWillReceiveProps(props) {\n if (this.unreadPropStyle != null) {\n // previous props haven't had the chance to be set yet; set them here\n this.clearUnreadPropStyle(this.unreadPropStyle);\n }\n\n this.unreadPropStyle = props.style;\n\n if (this.animationID == null) {\n this.prevTime = _performanceNow2['default']();\n this.startAnimationIfNecessary();\n }\n };\n\n Motion.prototype.componentWillUnmount = function componentWillUnmount() {\n if (this.animationID != null) {\n _raf2['default'].cancel(this.animationID);\n\n this.animationID = null;\n }\n };\n\n Motion.prototype.render = function render() {\n var renderedChildren = this.props.children(this.state.currentStyle);\n return renderedChildren && _react2['default'].Children.only(renderedChildren);\n };\n\n return Motion;\n}(_react2['default'].Component);\n\nexports['default'] = Motion;\nmodule.exports = exports['default']; // after checking for unreadPropStyle != null, we manually go set the\n// non-interpolating values (those that are a number, without a spring\n// config)","// Generated by CoffeeScript 1.12.2\n(function () {\n var getNanoSeconds, hrtime, loadTime, moduleLoadTime, nodeLoadTime, upTime;\n\n if (typeof performance !== \"undefined\" && performance !== null && performance.now) {\n module.exports = function () {\n return performance.now();\n };\n } else if (typeof process !== \"undefined\" && process !== null && process.hrtime) {\n module.exports = function () {\n return (getNanoSeconds() - nodeLoadTime) / 1e6;\n };\n\n hrtime = process.hrtime;\n\n getNanoSeconds = function getNanoSeconds() {\n var hr;\n hr = hrtime();\n return hr[0] * 1e9 + hr[1];\n };\n\n moduleLoadTime = getNanoSeconds();\n upTime = process.uptime() * 1e9;\n nodeLoadTime = moduleLoadTime - upTime;\n } else if (Date.now) {\n module.exports = function () {\n return Date.now() - loadTime;\n };\n\n loadTime = Date.now();\n } else {\n module.exports = function () {\n return new Date().getTime() - loadTime;\n };\n\n loadTime = new Date().getTime();\n }\n}).call(this);","'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n 'default': obj\n };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== 'function' && superClass !== null) {\n throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar _mapToZero = require('./mapToZero');\n\nvar _mapToZero2 = _interopRequireDefault(_mapToZero);\n\nvar _stripStyle = require('./stripStyle');\n\nvar _stripStyle2 = _interopRequireDefault(_stripStyle);\n\nvar _stepper3 = require('./stepper');\n\nvar _stepper4 = _interopRequireDefault(_stepper3);\n\nvar _performanceNow = require('performance-now');\n\nvar _performanceNow2 = _interopRequireDefault(_performanceNow);\n\nvar _raf = require('raf');\n\nvar _raf2 = _interopRequireDefault(_raf);\n\nvar _shouldStopAnimation = require('./shouldStopAnimation');\n\nvar _shouldStopAnimation2 = _interopRequireDefault(_shouldStopAnimation);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar msPerFrame = 1000 / 60;\n\nfunction shouldStopAnimationAll(currentStyles, styles, currentVelocities) {\n for (var i = 0; i < currentStyles.length; i++) {\n if (!_shouldStopAnimation2['default'](currentStyles[i], styles[i], currentVelocities[i])) {\n return false;\n }\n }\n\n return true;\n}\n\nvar StaggeredMotion = function (_React$Component) {\n _inherits(StaggeredMotion, _React$Component);\n\n _createClass(StaggeredMotion, null, [{\n key: 'propTypes',\n value: {\n // TOOD: warn against putting a config in here\n defaultStyles: _propTypes2['default'].arrayOf(_propTypes2['default'].objectOf(_propTypes2['default'].number)),\n styles: _propTypes2['default'].func.isRequired,\n children: _propTypes2['default'].func.isRequired\n },\n enumerable: true\n }]);\n\n function StaggeredMotion(props) {\n var _this = this;\n\n _classCallCheck(this, StaggeredMotion);\n\n _React$Component.call(this, props);\n\n this.animationID = null;\n this.prevTime = 0;\n this.accumulatedTime = 0;\n this.unreadPropStyles = null;\n\n this.clearUnreadPropStyle = function (unreadPropStyles) {\n var _state = _this.state;\n var currentStyles = _state.currentStyles;\n var currentVelocities = _state.currentVelocities;\n var lastIdealStyles = _state.lastIdealStyles;\n var lastIdealVelocities = _state.lastIdealVelocities;\n var someDirty = false;\n\n for (var i = 0; i < unreadPropStyles.length; i++) {\n var unreadPropStyle = unreadPropStyles[i];\n var dirty = false;\n\n for (var key in unreadPropStyle) {\n if (!Object.prototype.hasOwnProperty.call(unreadPropStyle, key)) {\n continue;\n }\n\n var styleValue = unreadPropStyle[key];\n\n if (typeof styleValue === 'number') {\n if (!dirty) {\n dirty = true;\n someDirty = true;\n currentStyles[i] = _extends({}, currentStyles[i]);\n currentVelocities[i] = _extends({}, currentVelocities[i]);\n lastIdealStyles[i] = _extends({}, lastIdealStyles[i]);\n lastIdealVelocities[i] = _extends({}, lastIdealVelocities[i]);\n }\n\n currentStyles[i][key] = styleValue;\n currentVelocities[i][key] = 0;\n lastIdealStyles[i][key] = styleValue;\n lastIdealVelocities[i][key] = 0;\n }\n }\n }\n\n if (someDirty) {\n _this.setState({\n currentStyles: currentStyles,\n currentVelocities: currentVelocities,\n lastIdealStyles: lastIdealStyles,\n lastIdealVelocities: lastIdealVelocities\n });\n }\n };\n\n this.startAnimationIfNecessary = function () {\n // TODO: when config is {a: 10} and dest is {a: 10} do we raf once and\n // call cb? No, otherwise accidental parent rerender causes cb trigger\n _this.animationID = _raf2['default'](function (timestamp) {\n var destStyles = _this.props.styles(_this.state.lastIdealStyles); // check if we need to animate in the first place\n\n\n if (shouldStopAnimationAll(_this.state.currentStyles, destStyles, _this.state.currentVelocities)) {\n // no need to cancel animationID here; shouldn't have any in flight\n _this.animationID = null;\n _this.accumulatedTime = 0;\n return;\n }\n\n var currentTime = timestamp || _performanceNow2['default']();\n\n var timeDelta = currentTime - _this.prevTime;\n _this.prevTime = currentTime;\n _this.accumulatedTime = _this.accumulatedTime + timeDelta; // more than 10 frames? prolly switched browser tab. Restart\n\n if (_this.accumulatedTime > msPerFrame * 10) {\n _this.accumulatedTime = 0;\n }\n\n if (_this.accumulatedTime === 0) {\n // no need to cancel animationID here; shouldn't have any in flight\n _this.animationID = null;\n\n _this.startAnimationIfNecessary();\n\n return;\n }\n\n var currentFrameCompletion = (_this.accumulatedTime - Math.floor(_this.accumulatedTime / msPerFrame) * msPerFrame) / msPerFrame;\n var framesToCatchUp = Math.floor(_this.accumulatedTime / msPerFrame);\n var newLastIdealStyles = [];\n var newLastIdealVelocities = [];\n var newCurrentStyles = [];\n var newCurrentVelocities = [];\n\n for (var i = 0; i < destStyles.length; i++) {\n var destStyle = destStyles[i];\n var newCurrentStyle = {};\n var newCurrentVelocity = {};\n var newLastIdealStyle = {};\n var newLastIdealVelocity = {};\n\n for (var key in destStyle) {\n if (!Object.prototype.hasOwnProperty.call(destStyle, key)) {\n continue;\n }\n\n var styleValue = destStyle[key];\n\n if (typeof styleValue === 'number') {\n newCurrentStyle[key] = styleValue;\n newCurrentVelocity[key] = 0;\n newLastIdealStyle[key] = styleValue;\n newLastIdealVelocity[key] = 0;\n } else {\n var newLastIdealStyleValue = _this.state.lastIdealStyles[i][key];\n var newLastIdealVelocityValue = _this.state.lastIdealVelocities[i][key];\n\n for (var j = 0; j < framesToCatchUp; j++) {\n var _stepper = _stepper4['default'](msPerFrame / 1000, newLastIdealStyleValue, newLastIdealVelocityValue, styleValue.val, styleValue.stiffness, styleValue.damping, styleValue.precision);\n\n newLastIdealStyleValue = _stepper[0];\n newLastIdealVelocityValue = _stepper[1];\n }\n\n var _stepper2 = _stepper4['default'](msPerFrame / 1000, newLastIdealStyleValue, newLastIdealVelocityValue, styleValue.val, styleValue.stiffness, styleValue.damping, styleValue.precision);\n\n var nextIdealX = _stepper2[0];\n var nextIdealV = _stepper2[1];\n newCurrentStyle[key] = newLastIdealStyleValue + (nextIdealX - newLastIdealStyleValue) * currentFrameCompletion;\n newCurrentVelocity[key] = newLastIdealVelocityValue + (nextIdealV - newLastIdealVelocityValue) * currentFrameCompletion;\n newLastIdealStyle[key] = newLastIdealStyleValue;\n newLastIdealVelocity[key] = newLastIdealVelocityValue;\n }\n }\n\n newCurrentStyles[i] = newCurrentStyle;\n newCurrentVelocities[i] = newCurrentVelocity;\n newLastIdealStyles[i] = newLastIdealStyle;\n newLastIdealVelocities[i] = newLastIdealVelocity;\n }\n\n _this.animationID = null; // the amount we're looped over above\n\n _this.accumulatedTime -= framesToCatchUp * msPerFrame;\n\n _this.setState({\n currentStyles: newCurrentStyles,\n currentVelocities: newCurrentVelocities,\n lastIdealStyles: newLastIdealStyles,\n lastIdealVelocities: newLastIdealVelocities\n });\n\n _this.unreadPropStyles = null;\n\n _this.startAnimationIfNecessary();\n });\n };\n\n this.state = this.defaultState();\n }\n\n StaggeredMotion.prototype.defaultState = function defaultState() {\n var _props = this.props;\n var defaultStyles = _props.defaultStyles;\n var styles = _props.styles;\n var currentStyles = defaultStyles || styles().map(_stripStyle2['default']);\n var currentVelocities = currentStyles.map(function (currentStyle) {\n return _mapToZero2['default'](currentStyle);\n });\n return {\n currentStyles: currentStyles,\n currentVelocities: currentVelocities,\n lastIdealStyles: currentStyles,\n lastIdealVelocities: currentVelocities\n };\n };\n\n StaggeredMotion.prototype.componentDidMount = function componentDidMount() {\n this.prevTime = _performanceNow2['default']();\n this.startAnimationIfNecessary();\n };\n\n StaggeredMotion.prototype.componentWillReceiveProps = function componentWillReceiveProps(props) {\n if (this.unreadPropStyles != null) {\n // previous props haven't had the chance to be set yet; set them here\n this.clearUnreadPropStyle(this.unreadPropStyles);\n }\n\n this.unreadPropStyles = props.styles(this.state.lastIdealStyles);\n\n if (this.animationID == null) {\n this.prevTime = _performanceNow2['default']();\n this.startAnimationIfNecessary();\n }\n };\n\n StaggeredMotion.prototype.componentWillUnmount = function componentWillUnmount() {\n if (this.animationID != null) {\n _raf2['default'].cancel(this.animationID);\n\n this.animationID = null;\n }\n };\n\n StaggeredMotion.prototype.render = function render() {\n var renderedChildren = this.props.children(this.state.currentStyles);\n return renderedChildren && _react2['default'].Children.only(renderedChildren);\n };\n\n return StaggeredMotion;\n}(_react2['default'].Component);\n\nexports['default'] = StaggeredMotion;\nmodule.exports = exports['default']; // it's possible that currentStyle's value is stale: if props is immediately\n// changed from 0 to 400 to spring(0) again, the async currentStyle is still\n// at 0 (didn't have time to tick and interpolate even once). If we naively\n// compare currentStyle with destVal it'll be 0 === 0 (no animation, stop).\n// In reality currentStyle should be 400\n// after checking for unreadPropStyles != null, we manually go set the\n// non-interpolating values (those that are a number, without a spring\n// config)","'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n 'default': obj\n };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== 'function' && superClass !== null) {\n throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar _mapToZero = require('./mapToZero');\n\nvar _mapToZero2 = _interopRequireDefault(_mapToZero);\n\nvar _stripStyle = require('./stripStyle');\n\nvar _stripStyle2 = _interopRequireDefault(_stripStyle);\n\nvar _stepper3 = require('./stepper');\n\nvar _stepper4 = _interopRequireDefault(_stepper3);\n\nvar _mergeDiff = require('./mergeDiff');\n\nvar _mergeDiff2 = _interopRequireDefault(_mergeDiff);\n\nvar _performanceNow = require('performance-now');\n\nvar _performanceNow2 = _interopRequireDefault(_performanceNow);\n\nvar _raf = require('raf');\n\nvar _raf2 = _interopRequireDefault(_raf);\n\nvar _shouldStopAnimation = require('./shouldStopAnimation');\n\nvar _shouldStopAnimation2 = _interopRequireDefault(_shouldStopAnimation);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar msPerFrame = 1000 / 60; // the children function & (potential) styles function asks as param an\n// Array<TransitionPlainStyle>, where each TransitionPlainStyle is of the format\n// {key: string, data?: any, style: PlainStyle}. However, the way we keep\n// internal states doesn't contain such a data structure (check the state and\n// TransitionMotionState). So when children function and others ask for such\n// data we need to generate them on the fly by combining mergedPropsStyles and\n// currentStyles/lastIdealStyles\n\nfunction rehydrateStyles(mergedPropsStyles, unreadPropStyles, plainStyles) {\n // Copy the value to a `const` so that Flow understands that the const won't\n // change and will be non-nullable in the callback below.\n var cUnreadPropStyles = unreadPropStyles;\n\n if (cUnreadPropStyles == null) {\n return mergedPropsStyles.map(function (mergedPropsStyle, i) {\n return {\n key: mergedPropsStyle.key,\n data: mergedPropsStyle.data,\n style: plainStyles[i]\n };\n });\n }\n\n return mergedPropsStyles.map(function (mergedPropsStyle, i) {\n for (var j = 0; j < cUnreadPropStyles.length; j++) {\n if (cUnreadPropStyles[j].key === mergedPropsStyle.key) {\n return {\n key: cUnreadPropStyles[j].key,\n data: cUnreadPropStyles[j].data,\n style: plainStyles[i]\n };\n }\n }\n\n return {\n key: mergedPropsStyle.key,\n data: mergedPropsStyle.data,\n style: plainStyles[i]\n };\n });\n}\n\nfunction shouldStopAnimationAll(currentStyles, destStyles, currentVelocities, mergedPropsStyles) {\n if (mergedPropsStyles.length !== destStyles.length) {\n return false;\n }\n\n for (var i = 0; i < mergedPropsStyles.length; i++) {\n if (mergedPropsStyles[i].key !== destStyles[i].key) {\n return false;\n }\n } // we have the invariant that mergedPropsStyles and\n // currentStyles/currentVelocities/last* are synced in terms of cells, see\n // mergeAndSync comment for more info\n\n\n for (var i = 0; i < mergedPropsStyles.length; i++) {\n if (!_shouldStopAnimation2['default'](currentStyles[i], destStyles[i].style, currentVelocities[i])) {\n return false;\n }\n }\n\n return true;\n} // core key merging logic\n// things to do: say previously merged style is {a, b}, dest style (prop) is {b,\n// c}, previous current (interpolating) style is {a, b}\n// **invariant**: current[i] corresponds to merged[i] in terms of key\n// steps:\n// turn merged style into {a?, b, c}\n// add c, value of c is destStyles.c\n// maybe remove a, aka call willLeave(a), then merged is either {b, c} or {a, b, c}\n// turn current (interpolating) style from {a, b} into {a?, b, c}\n// maybe remove a\n// certainly add c, value of c is willEnter(c)\n// loop over merged and construct new current\n// dest doesn't change, that's owner's\n\n\nfunction mergeAndSync(willEnter, willLeave, didLeave, oldMergedPropsStyles, destStyles, oldCurrentStyles, oldCurrentVelocities, oldLastIdealStyles, oldLastIdealVelocities) {\n var newMergedPropsStyles = _mergeDiff2['default'](oldMergedPropsStyles, destStyles, function (oldIndex, oldMergedPropsStyle) {\n var leavingStyle = willLeave(oldMergedPropsStyle);\n\n if (leavingStyle == null) {\n didLeave({\n key: oldMergedPropsStyle.key,\n data: oldMergedPropsStyle.data\n });\n return null;\n }\n\n if (_shouldStopAnimation2['default'](oldCurrentStyles[oldIndex], leavingStyle, oldCurrentVelocities[oldIndex])) {\n didLeave({\n key: oldMergedPropsStyle.key,\n data: oldMergedPropsStyle.data\n });\n return null;\n }\n\n return {\n key: oldMergedPropsStyle.key,\n data: oldMergedPropsStyle.data,\n style: leavingStyle\n };\n });\n\n var newCurrentStyles = [];\n var newCurrentVelocities = [];\n var newLastIdealStyles = [];\n var newLastIdealVelocities = [];\n\n for (var i = 0; i < newMergedPropsStyles.length; i++) {\n var newMergedPropsStyleCell = newMergedPropsStyles[i];\n var foundOldIndex = null;\n\n for (var j = 0; j < oldMergedPropsStyles.length; j++) {\n if (oldMergedPropsStyles[j].key === newMergedPropsStyleCell.key) {\n foundOldIndex = j;\n break;\n }\n } // TODO: key search code\n\n\n if (foundOldIndex == null) {\n var plainStyle = willEnter(newMergedPropsStyleCell);\n newCurrentStyles[i] = plainStyle;\n newLastIdealStyles[i] = plainStyle;\n\n var velocity = _mapToZero2['default'](newMergedPropsStyleCell.style);\n\n newCurrentVelocities[i] = velocity;\n newLastIdealVelocities[i] = velocity;\n } else {\n newCurrentStyles[i] = oldCurrentStyles[foundOldIndex];\n newLastIdealStyles[i] = oldLastIdealStyles[foundOldIndex];\n newCurrentVelocities[i] = oldCurrentVelocities[foundOldIndex];\n newLastIdealVelocities[i] = oldLastIdealVelocities[foundOldIndex];\n }\n }\n\n return [newMergedPropsStyles, newCurrentStyles, newCurrentVelocities, newLastIdealStyles, newLastIdealVelocities];\n}\n\nvar TransitionMotion = function (_React$Component) {\n _inherits(TransitionMotion, _React$Component);\n\n _createClass(TransitionMotion, null, [{\n key: 'propTypes',\n value: {\n defaultStyles: _propTypes2['default'].arrayOf(_propTypes2['default'].shape({\n key: _propTypes2['default'].string.isRequired,\n data: _propTypes2['default'].any,\n style: _propTypes2['default'].objectOf(_propTypes2['default'].number).isRequired\n })),\n styles: _propTypes2['default'].oneOfType([_propTypes2['default'].func, _propTypes2['default'].arrayOf(_propTypes2['default'].shape({\n key: _propTypes2['default'].string.isRequired,\n data: _propTypes2['default'].any,\n style: _propTypes2['default'].objectOf(_propTypes2['default'].oneOfType([_propTypes2['default'].number, _propTypes2['default'].object])).isRequired\n }))]).isRequired,\n children: _propTypes2['default'].func.isRequired,\n willEnter: _propTypes2['default'].func,\n willLeave: _propTypes2['default'].func,\n didLeave: _propTypes2['default'].func\n },\n enumerable: true\n }, {\n key: 'defaultProps',\n value: {\n willEnter: function willEnter(styleThatEntered) {\n return _stripStyle2['default'](styleThatEntered.style);\n },\n // recall: returning null makes the current unmounting TransitionStyle\n // disappear immediately\n willLeave: function willLeave() {\n return null;\n },\n didLeave: function didLeave() {}\n },\n enumerable: true\n }]);\n\n function TransitionMotion(props) {\n var _this = this;\n\n _classCallCheck(this, TransitionMotion);\n\n _React$Component.call(this, props);\n\n this.unmounting = false;\n this.animationID = null;\n this.prevTime = 0;\n this.accumulatedTime = 0;\n this.unreadPropStyles = null;\n\n this.clearUnreadPropStyle = function (unreadPropStyles) {\n var _mergeAndSync = mergeAndSync(_this.props.willEnter, _this.props.willLeave, _this.props.didLeave, _this.state.mergedPropsStyles, unreadPropStyles, _this.state.currentStyles, _this.state.currentVelocities, _this.state.lastIdealStyles, _this.state.lastIdealVelocities);\n\n var mergedPropsStyles = _mergeAndSync[0];\n var currentStyles = _mergeAndSync[1];\n var currentVelocities = _mergeAndSync[2];\n var lastIdealStyles = _mergeAndSync[3];\n var lastIdealVelocities = _mergeAndSync[4];\n\n for (var i = 0; i < unreadPropStyles.length; i++) {\n var unreadPropStyle = unreadPropStyles[i].style;\n var dirty = false;\n\n for (var key in unreadPropStyle) {\n if (!Object.prototype.hasOwnProperty.call(unreadPropStyle, key)) {\n continue;\n }\n\n var styleValue = unreadPropStyle[key];\n\n if (typeof styleValue === 'number') {\n if (!dirty) {\n dirty = true;\n currentStyles[i] = _extends({}, currentStyles[i]);\n currentVelocities[i] = _extends({}, currentVelocities[i]);\n lastIdealStyles[i] = _extends({}, lastIdealStyles[i]);\n lastIdealVelocities[i] = _extends({}, lastIdealVelocities[i]);\n mergedPropsStyles[i] = {\n key: mergedPropsStyles[i].key,\n data: mergedPropsStyles[i].data,\n style: _extends({}, mergedPropsStyles[i].style)\n };\n }\n\n currentStyles[i][key] = styleValue;\n currentVelocities[i][key] = 0;\n lastIdealStyles[i][key] = styleValue;\n lastIdealVelocities[i][key] = 0;\n mergedPropsStyles[i].style[key] = styleValue;\n }\n }\n } // unlike the other 2 components, we can't detect staleness and optionally\n // opt out of setState here. each style object's data might contain new\n // stuff we're not/cannot compare\n\n\n _this.setState({\n currentStyles: currentStyles,\n currentVelocities: currentVelocities,\n mergedPropsStyles: mergedPropsStyles,\n lastIdealStyles: lastIdealStyles,\n lastIdealVelocities: lastIdealVelocities\n });\n };\n\n this.startAnimationIfNecessary = function () {\n if (_this.unmounting) {\n return;\n } // TODO: when config is {a: 10} and dest is {a: 10} do we raf once and\n // call cb? No, otherwise accidental parent rerender causes cb trigger\n\n\n _this.animationID = _raf2['default'](function (timestamp) {\n // https://github.com/chenglou/react-motion/pull/420\n // > if execution passes the conditional if (this.unmounting), then\n // executes async defaultRaf and after that component unmounts and after\n // that the callback of defaultRaf is called, then setState will be called\n // on unmounted component.\n if (_this.unmounting) {\n return;\n }\n\n var propStyles = _this.props.styles;\n var destStyles = typeof propStyles === 'function' ? propStyles(rehydrateStyles(_this.state.mergedPropsStyles, _this.unreadPropStyles, _this.state.lastIdealStyles)) : propStyles; // check if we need to animate in the first place\n\n if (shouldStopAnimationAll(_this.state.currentStyles, destStyles, _this.state.currentVelocities, _this.state.mergedPropsStyles)) {\n // no need to cancel animationID here; shouldn't have any in flight\n _this.animationID = null;\n _this.accumulatedTime = 0;\n return;\n }\n\n var currentTime = timestamp || _performanceNow2['default']();\n\n var timeDelta = currentTime - _this.prevTime;\n _this.prevTime = currentTime;\n _this.accumulatedTime = _this.accumulatedTime + timeDelta; // more than 10 frames? prolly switched browser tab. Restart\n\n if (_this.accumulatedTime > msPerFrame * 10) {\n _this.accumulatedTime = 0;\n }\n\n if (_this.accumulatedTime === 0) {\n // no need to cancel animationID here; shouldn't have any in flight\n _this.animationID = null;\n\n _this.startAnimationIfNecessary();\n\n return;\n }\n\n var currentFrameCompletion = (_this.accumulatedTime - Math.floor(_this.accumulatedTime / msPerFrame) * msPerFrame) / msPerFrame;\n var framesToCatchUp = Math.floor(_this.accumulatedTime / msPerFrame);\n\n var _mergeAndSync2 = mergeAndSync(_this.props.willEnter, _this.props.willLeave, _this.props.didLeave, _this.state.mergedPropsStyles, destStyles, _this.state.currentStyles, _this.state.currentVelocities, _this.state.lastIdealStyles, _this.state.lastIdealVelocities);\n\n var newMergedPropsStyles = _mergeAndSync2[0];\n var newCurrentStyles = _mergeAndSync2[1];\n var newCurrentVelocities = _mergeAndSync2[2];\n var newLastIdealStyles = _mergeAndSync2[3];\n var newLastIdealVelocities = _mergeAndSync2[4];\n\n for (var i = 0; i < newMergedPropsStyles.length; i++) {\n var newMergedPropsStyle = newMergedPropsStyles[i].style;\n var newCurrentStyle = {};\n var newCurrentVelocity = {};\n var newLastIdealStyle = {};\n var newLastIdealVelocity = {};\n\n for (var key in newMergedPropsStyle) {\n if (!Object.prototype.hasOwnProperty.call(newMergedPropsStyle, key)) {\n continue;\n }\n\n var styleValue = newMergedPropsStyle[key];\n\n if (typeof styleValue === 'number') {\n newCurrentStyle[key] = styleValue;\n newCurrentVelocity[key] = 0;\n newLastIdealStyle[key] = styleValue;\n newLastIdealVelocity[key] = 0;\n } else {\n var newLastIdealStyleValue = newLastIdealStyles[i][key];\n var newLastIdealVelocityValue = newLastIdealVelocities[i][key];\n\n for (var j = 0; j < framesToCatchUp; j++) {\n var _stepper = _stepper4['default'](msPerFrame / 1000, newLastIdealStyleValue, newLastIdealVelocityValue, styleValue.val, styleValue.stiffness, styleValue.damping, styleValue.precision);\n\n newLastIdealStyleValue = _stepper[0];\n newLastIdealVelocityValue = _stepper[1];\n }\n\n var _stepper2 = _stepper4['default'](msPerFrame / 1000, newLastIdealStyleValue, newLastIdealVelocityValue, styleValue.val, styleValue.stiffness, styleValue.damping, styleValue.precision);\n\n var nextIdealX = _stepper2[0];\n var nextIdealV = _stepper2[1];\n newCurrentStyle[key] = newLastIdealStyleValue + (nextIdealX - newLastIdealStyleValue) * currentFrameCompletion;\n newCurrentVelocity[key] = newLastIdealVelocityValue + (nextIdealV - newLastIdealVelocityValue) * currentFrameCompletion;\n newLastIdealStyle[key] = newLastIdealStyleValue;\n newLastIdealVelocity[key] = newLastIdealVelocityValue;\n }\n }\n\n newLastIdealStyles[i] = newLastIdealStyle;\n newLastIdealVelocities[i] = newLastIdealVelocity;\n newCurrentStyles[i] = newCurrentStyle;\n newCurrentVelocities[i] = newCurrentVelocity;\n }\n\n _this.animationID = null; // the amount we're looped over above\n\n _this.accumulatedTime -= framesToCatchUp * msPerFrame;\n\n _this.setState({\n currentStyles: newCurrentStyles,\n currentVelocities: newCurrentVelocities,\n lastIdealStyles: newLastIdealStyles,\n lastIdealVelocities: newLastIdealVelocities,\n mergedPropsStyles: newMergedPropsStyles\n });\n\n _this.unreadPropStyles = null;\n\n _this.startAnimationIfNecessary();\n });\n };\n\n this.state = this.defaultState();\n }\n\n TransitionMotion.prototype.defaultState = function defaultState() {\n var _props = this.props;\n var defaultStyles = _props.defaultStyles;\n var styles = _props.styles;\n var willEnter = _props.willEnter;\n var willLeave = _props.willLeave;\n var didLeave = _props.didLeave;\n var destStyles = typeof styles === 'function' ? styles(defaultStyles) : styles; // this is special. for the first time around, we don't have a comparison\n // between last (no last) and current merged props. we'll compute last so:\n // say default is {a, b} and styles (dest style) is {b, c}, we'll\n // fabricate last as {a, b}\n\n var oldMergedPropsStyles = undefined;\n\n if (defaultStyles == null) {\n oldMergedPropsStyles = destStyles;\n } else {\n oldMergedPropsStyles = defaultStyles.map(function (defaultStyleCell) {\n // TODO: key search code\n for (var i = 0; i < destStyles.length; i++) {\n if (destStyles[i].key === defaultStyleCell.key) {\n return destStyles[i];\n }\n }\n\n return defaultStyleCell;\n });\n }\n\n var oldCurrentStyles = defaultStyles == null ? destStyles.map(function (s) {\n return _stripStyle2['default'](s.style);\n }) : defaultStyles.map(function (s) {\n return _stripStyle2['default'](s.style);\n });\n var oldCurrentVelocities = defaultStyles == null ? destStyles.map(function (s) {\n return _mapToZero2['default'](s.style);\n }) : defaultStyles.map(function (s) {\n return _mapToZero2['default'](s.style);\n });\n\n var _mergeAndSync3 = mergeAndSync( // Because this is an old-style createReactClass component, Flow doesn't\n // understand that the willEnter and willLeave props have default values\n // and will always be present.\n willEnter, willLeave, didLeave, oldMergedPropsStyles, destStyles, oldCurrentStyles, oldCurrentVelocities, oldCurrentStyles, // oldLastIdealStyles really\n oldCurrentVelocities);\n\n var mergedPropsStyles = _mergeAndSync3[0];\n var currentStyles = _mergeAndSync3[1];\n var currentVelocities = _mergeAndSync3[2];\n var lastIdealStyles = _mergeAndSync3[3];\n var lastIdealVelocities = _mergeAndSync3[4]; // oldLastIdealVelocities really\n\n return {\n currentStyles: currentStyles,\n currentVelocities: currentVelocities,\n lastIdealStyles: lastIdealStyles,\n lastIdealVelocities: lastIdealVelocities,\n mergedPropsStyles: mergedPropsStyles\n };\n }; // after checking for unreadPropStyles != null, we manually go set the\n // non-interpolating values (those that are a number, without a spring\n // config)\n\n\n TransitionMotion.prototype.componentDidMount = function componentDidMount() {\n this.prevTime = _performanceNow2['default']();\n this.startAnimationIfNecessary();\n };\n\n TransitionMotion.prototype.componentWillReceiveProps = function componentWillReceiveProps(props) {\n if (this.unreadPropStyles) {\n // previous props haven't had the chance to be set yet; set them here\n this.clearUnreadPropStyle(this.unreadPropStyles);\n }\n\n var styles = props.styles;\n\n if (typeof styles === 'function') {\n this.unreadPropStyles = styles(rehydrateStyles(this.state.mergedPropsStyles, this.unreadPropStyles, this.state.lastIdealStyles));\n } else {\n this.unreadPropStyles = styles;\n }\n\n if (this.animationID == null) {\n this.prevTime = _performanceNow2['default']();\n this.startAnimationIfNecessary();\n }\n };\n\n TransitionMotion.prototype.componentWillUnmount = function componentWillUnmount() {\n this.unmounting = true;\n\n if (this.animationID != null) {\n _raf2['default'].cancel(this.animationID);\n\n this.animationID = null;\n }\n };\n\n TransitionMotion.prototype.render = function render() {\n var hydratedStyles = rehydrateStyles(this.state.mergedPropsStyles, this.unreadPropStyles, this.state.currentStyles);\n var renderedChildren = this.props.children(hydratedStyles);\n return renderedChildren && _react2['default'].Children.only(renderedChildren);\n };\n\n return TransitionMotion;\n}(_react2['default'].Component);\n\nexports['default'] = TransitionMotion;\nmodule.exports = exports['default']; // list of styles, each containing interpolating values. Part of what's passed\n// to children function. Notice that this is\n// Array<ActualInterpolatingStyleObject>, without the wrapper that is {key: ...,\n// data: ... style: ActualInterpolatingStyleObject}. Only mergedPropsStyles\n// contains the key & data info (so that we only have a single source of truth\n// for these, and to save space). Check the comment for `rehydrateStyles` to\n// see how we regenerate the entirety of what's passed to children function\n// the array that keeps track of currently rendered stuff! Including stuff\n// that you've unmounted but that's still animating. This is where it lives\n// it's possible that currentStyle's value is stale: if props is immediately\n// changed from 0 to 400 to spring(0) again, the async currentStyle is still\n// at 0 (didn't have time to tick and interpolate even once). If we naively\n// compare currentStyle with destVal it'll be 0 === 0 (no animation, stop).\n// In reality currentStyle should be 400","// core keys merging algorithm. If previous render's keys are [a, b], and the\n// next render's [c, b, d], what's the final merged keys and ordering?\n// - c and a must both be before b\n// - b before d\n// - ordering between a and c ambiguous\n// this reduces to merging two partially ordered lists (e.g. lists where not\n// every item has a definite ordering, like comparing a and c above). For the\n// ambiguous ordering we deterministically choose to place the next render's\n// item after the previous'; so c after a\n// this is called a topological sorting. Except the existing algorithms don't\n// work well with js bc of the amount of allocation, and isn't optimized for our\n// current use-case bc the runtime is linear in terms of edges (see wiki for\n// meaning), which is huge when two lists have many common elements\n'use strict';\n\nexports.__esModule = true;\nexports['default'] = mergeDiff;\n\nfunction mergeDiff(prev, next, onRemove) {\n // bookkeeping for easier access of a key's index below. This is 2 allocations +\n // potentially triggering chrome hash map mode for objs (so it might be faster\n var prevKeyIndex = {};\n\n for (var i = 0; i < prev.length; i++) {\n prevKeyIndex[prev[i].key] = i;\n }\n\n var nextKeyIndex = {};\n\n for (var i = 0; i < next.length; i++) {\n nextKeyIndex[next[i].key] = i;\n } // first, an overly elaborate way of merging prev and next, eliminating\n // duplicates (in terms of keys). If there's dupe, keep the item in next).\n // This way of writing it saves allocations\n\n\n var ret = [];\n\n for (var i = 0; i < next.length; i++) {\n ret[i] = next[i];\n }\n\n for (var i = 0; i < prev.length; i++) {\n if (!Object.prototype.hasOwnProperty.call(nextKeyIndex, prev[i].key)) {\n // this is called my TM's `mergeAndSync`, which calls willLeave. We don't\n // merge in keys that the user desires to kill\n var fill = onRemove(i, prev[i]);\n\n if (fill != null) {\n ret.push(fill);\n }\n }\n } // now all the items all present. Core sorting logic to have the right order\n\n\n return ret.sort(function (a, b) {\n var nextOrderA = nextKeyIndex[a.key];\n var nextOrderB = nextKeyIndex[b.key];\n var prevOrderA = prevKeyIndex[a.key];\n var prevOrderB = prevKeyIndex[b.key];\n\n if (nextOrderA != null && nextOrderB != null) {\n // both keys in next\n return nextKeyIndex[a.key] - nextKeyIndex[b.key];\n } else if (prevOrderA != null && prevOrderB != null) {\n // both keys in prev\n return prevKeyIndex[a.key] - prevKeyIndex[b.key];\n } else if (nextOrderA != null) {\n // key a in next, key b in prev\n // how to determine the order between a and b? We find a \"pivot\" (term\n // abuse), a key present in both prev and next, that is sandwiched between\n // a and b. In the context of our above example, if we're comparing a and\n // d, b's (the only) pivot\n for (var i = 0; i < next.length; i++) {\n var pivot = next[i].key;\n\n if (!Object.prototype.hasOwnProperty.call(prevKeyIndex, pivot)) {\n continue;\n }\n\n if (nextOrderA < nextKeyIndex[pivot] && prevOrderB > prevKeyIndex[pivot]) {\n return -1;\n } else if (nextOrderA > nextKeyIndex[pivot] && prevOrderB < prevKeyIndex[pivot]) {\n return 1;\n }\n } // pluggable. default to: next bigger than prev\n\n\n return 1;\n } // prevOrderA, nextOrderB\n\n\n for (var i = 0; i < next.length; i++) {\n var pivot = next[i].key;\n\n if (!Object.prototype.hasOwnProperty.call(prevKeyIndex, pivot)) {\n continue;\n }\n\n if (nextOrderB < nextKeyIndex[pivot] && prevOrderA > prevKeyIndex[pivot]) {\n return 1;\n } else if (nextOrderB > nextKeyIndex[pivot] && prevOrderA < prevKeyIndex[pivot]) {\n return -1;\n }\n } // pluggable. default to: next bigger than prev\n\n\n return -1;\n });\n}\n\nmodule.exports = exports['default']; // to loop through and find a key's index each time), but I no longer care","'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nexports['default'] = spring;\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n 'default': obj\n };\n}\n\nvar _presets = require('./presets');\n\nvar _presets2 = _interopRequireDefault(_presets);\n\nvar defaultConfig = _extends({}, _presets2['default'].noWobble, {\n precision: 0.01\n});\n\nfunction spring(val, config) {\n return _extends({}, defaultConfig, config, {\n val: val\n });\n}\n\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = reorderKeys;\nvar hasWarned = false;\n\nfunction reorderKeys() {\n if (process.env.NODE_ENV === 'development') {\n if (!hasWarned) {\n hasWarned = true;\n console.error('`reorderKeys` has been removed, since it is no longer needed for TransitionMotion\\'s new styles array API.');\n }\n }\n}\n\nmodule.exports = exports['default'];","/* eslint-disable jsx-a11y/label-has-for */\n// @noflow\nimport { UseSelectGetItemPropsOptions, useSelect } from 'downshift'\nimport React, { useCallback } from 'react'\n\nimport BREAKPOINTS from '@/constants/Breakpoints'\n\nimport useWindowSize from '@/hooks/useWindowSize'\n\nimport Image from '@/components/shared/elements/Image/Image'\n\ntype Option = {\n value: string | number\n label: string\n id: string\n}\n\ntype OptionProps = {\n option: Option\n value?: Option | null\n optionAccessibilityAttributes: (\n options: UseSelectGetItemPropsOptions<Option>\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ) => any // have to use any here due to the modules typing\n}\n\ntype Props = {\n initialValue?: Option | null\n label: string\n options: Array<Option>\n disabled?: boolean\n onChange: (value: Option) => void\n}\n\nconst OptionComponent = ({\n option,\n value,\n optionAccessibilityAttributes\n}: OptionProps): JSX.Element => {\n const baseClass = 'selector__option'\n\n return (\n <div\n className={`\n ${baseClass}__list-item\n ${value?.value === option.value && 'selected'}\n `}\n role=\"button\"\n tabIndex={0}\n {...optionAccessibilityAttributes({\n item: option\n })}\n >\n <p className=\"text-regular-18 no-scale\">{option.label}</p>\n </div>\n )\n}\n\nconst Select = ({\n initialValue,\n label,\n options,\n disabled = false,\n onChange\n}: Props): JSX.Element => {\n const baseClass = 'selector'\n const { windowWidth } = useWindowSize()\n const menuRef = React.useRef<HTMLDivElement>(null)\n\n const itemToString = useCallback((item: Option | null) => {\n return item ? item.label : ''\n }, [])\n\n const {\n isOpen,\n selectedItem,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getItemProps\n } = useSelect({\n initialSelectedItem: initialValue,\n items: options,\n itemToString,\n onSelectedItemChange: (data) => {\n if (!data.selectedItem) return\n onChange(data.selectedItem)\n }\n })\n\n return (\n <div className={`${baseClass}__container`}>\n <label className=\"text-regular-18 no-scale\" {...getLabelProps()}>\n {label}\n </label>\n <div\n className={`${baseClass}__header ${disabled ? 'disabled' : ''} ${\n isOpen ? 'open' : ''\n }`}\n {...getToggleButtonProps()}\n role=\"combobox\"\n tabIndex={0}\n aria-controls={`${baseClass}__listbox`}\n aria-haspopup=\"listbox\"\n aria-expanded={isOpen}\n >\n <p className=\"text-regular-18 no-scale\">{selectedItem?.label}</p>\n <span className={`${baseClass}__chevron-icon ${isOpen ? 'open' : ''}`}>\n <Image\n alt=\"\"\n slug=\"chevron-blue-500\"\n image={{\n width: windowWidth < BREAKPOINTS.lg ? 24 : 40,\n height: windowWidth < BREAKPOINTS.lg ? 24 : 40\n }}\n />\n </span>\n </div>\n <div\n className={`${baseClass}__list-container ${!isOpen ? 'hidden' : ''}`}\n {...getMenuProps({ ref: menuRef })}\n >\n <ul className={`${baseClass}__list`}>\n {isOpen &&\n options.map((option) => (\n <OptionComponent\n key={option.value}\n option={option}\n value={selectedItem}\n optionAccessibilityAttributes={getItemProps}\n />\n ))}\n </ul>\n </div>\n </div>\n )\n}\n\nexport type { Props, Option }\nexport default Select\n","// @noflow\nimport type { CookiePreferences } from '@/components/cookie_consent/index'\n\nenum Action {\n Accepted = 'accepted',\n None = 'none',\n Cancelled = 'cancelled',\n Saved = 'saved',\n Deny = 'deny'\n}\n\ntype LocalStorageCookieConsent = {\n action: Action\n preferences?: CookiePreferences\n}\n\nexport { Action }\nexport type { LocalStorageCookieConsent }\n","// @noflow\nimport { makeVar } from '@apollo/client'\nimport React, { Fragment } from 'react'\n\nimport type { CookiePreferences } from '@/components/cookie_consent/index'\nimport CookieConsentBanner from '@/components/shared/CookieConsent/CookieConsentBanner'\nimport CookieConsentModal, {\n Variant\n} from '@/components/shared/CookieConsent/Modals/CookieConsentModal'\n\ntype Props = {\n variant: Variant\n applyPreferences: (preferences: CookiePreferences) => void\n}\n\nconst cookieConsentBannerState = makeVar({\n visible: false\n})\n\nconst cookieConsentModalState = makeVar({\n visible: false\n})\n\nconst CookieConsent = ({\n variant,\n applyPreferences\n}: Props): JSX.Element | null => (\n <Fragment>\n <CookieConsentModal variant={variant} applyPreferences={applyPreferences} />\n <CookieConsentBanner\n variant={variant}\n applyPreferences={applyPreferences}\n />\n </Fragment>\n)\n\nexport default CookieConsent\nexport { cookieConsentBannerState, cookieConsentModalState }\n","import Metadata from '../metadata';\nimport { VALID_DIGITS } from '../constants';\nvar CAPTURING_DIGIT_PATTERN = new RegExp('([' + VALID_DIGITS + '])');\nexport default function stripIddPrefix(number, country, callingCode, metadata) {\n if (!country) {\n return;\n } // Check if the number is IDD-prefixed.\n\n\n var countryMetadata = new Metadata(metadata);\n countryMetadata.selectNumberingPlan(country, callingCode);\n var IDDPrefixPattern = new RegExp(countryMetadata.IDDPrefix());\n\n if (number.search(IDDPrefixPattern) !== 0) {\n return;\n } // Strip IDD prefix.\n\n\n number = number.slice(number.match(IDDPrefixPattern)[0].length); // If there're any digits after an IDD prefix,\n // then those digits are a country calling code.\n // Since no country code starts with a `0`,\n // the code below validates that the next digit (if present) is not `0`.\n\n var matchedGroups = number.match(CAPTURING_DIGIT_PATTERN);\n\n if (matchedGroups && matchedGroups[1] != null && matchedGroups[1].length > 0) {\n if (matchedGroups[1] === '0') {\n return;\n }\n }\n\n return number;\n}","import Metadata from '../metadata';\nimport matchesEntirely from './matchesEntirely';\nimport extractNationalNumber from './extractNationalNumber';\nimport checkNumberLength from './checkNumberLength';\nimport getCountryCallingCode from '../getCountryCallingCode';\n/**\r\n * Sometimes some people incorrectly input international phone numbers\r\n * without the leading `+`. This function corrects such input.\r\n * @param {string} number — Phone number digits.\r\n * @param {string?} country\r\n * @param {string?} callingCode\r\n * @param {object} metadata\r\n * @return {object} `{ countryCallingCode: string?, number: string }`.\r\n */\n\nexport default function extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(number, country, callingCode, metadata) {\n var countryCallingCode = country ? getCountryCallingCode(country, metadata) : callingCode;\n\n if (number.indexOf(countryCallingCode) === 0) {\n metadata = new Metadata(metadata);\n metadata.selectNumberingPlan(country, callingCode);\n var possibleShorterNumber = number.slice(countryCallingCode.length);\n\n var _extractNationalNumbe = extractNationalNumber(possibleShorterNumber, metadata),\n possibleShorterNationalNumber = _extractNationalNumbe.nationalNumber;\n\n var _extractNationalNumbe2 = extractNationalNumber(number, metadata),\n nationalNumber = _extractNationalNumbe2.nationalNumber; // If the number was not valid before but is valid now,\n // or if it was too long before, we consider the number\n // with the country calling code stripped to be a better result\n // and keep that instead.\n // For example, in Germany (+49), `49` is a valid area code,\n // so if a number starts with `49`, it could be both a valid\n // national German number or an international number without\n // a leading `+`.\n\n\n if (!matchesEntirely(nationalNumber, metadata.nationalNumberPattern()) && matchesEntirely(possibleShorterNationalNumber, metadata.nationalNumberPattern()) || checkNumberLength(nationalNumber, metadata) === 'TOO_LONG') {\n return {\n countryCallingCode: countryCallingCode,\n number: possibleShorterNumber\n };\n }\n }\n\n return {\n number: number\n };\n}","// @noflow\nimport React from 'react'\nimport Skeleton, { SkeletonTheme } from 'react-loading-skeleton'\nimport 'react-loading-skeleton/dist/skeleton.css'\n\nimport BRAND_COLOURS from '@/constants/BrandColours'\nimport SUPPORT_COLOURS from '@/constants/SupportColours'\n\ntype Props = {\n baseColor?: string\n highlightColor?: string\n width?: string | number\n height?: string | number\n count?: number\n}\n\nconst ButtonSkeleton = ({\n baseColor = SUPPORT_COLOURS.grey200,\n highlightColor = BRAND_COLOURS.brandWhite,\n width = '100%',\n height = 40,\n count = 1\n}: Props): JSX.Element => {\n return (\n <SkeletonTheme baseColor={baseColor} highlightColor={highlightColor}>\n <Skeleton\n count={count}\n width={width}\n height={height}\n style={{\n borderRadius: '10px'\n }}\n />\n </SkeletonTheme>\n )\n}\n\nexport type { Props }\n\nexport { ButtonSkeleton }\n","import Metadata from './metadata';\nimport checkNumberLength from './helpers/checkNumberLength';\nexport default function isPossiblePhoneNumber(input, options, metadata) {\n /* istanbul ignore if */\n if (options === undefined) {\n options = {};\n }\n\n metadata = new Metadata(metadata);\n\n if (options.v2) {\n if (!input.countryCallingCode) {\n throw new Error('Invalid phone number object passed');\n }\n\n metadata.selectNumberingPlan(input.countryCallingCode);\n } else {\n if (!input.phone) {\n return false;\n }\n\n if (input.country) {\n if (!metadata.hasCountry(input.country)) {\n throw new Error(\"Unknown country: \".concat(input.country));\n }\n\n metadata.country(input.country);\n } else {\n if (!input.countryCallingCode) {\n throw new Error('Invalid phone number object passed');\n }\n\n metadata.selectNumberingPlan(input.countryCallingCode);\n }\n }\n\n if (metadata.possibleLengths()) {\n return isPossibleNumber(input.phone || input.nationalNumber, metadata);\n } else {\n // There was a bug between `1.7.35` and `1.7.37` where \"possible_lengths\"\n // were missing for \"non-geographical\" numbering plans.\n // Just assume the number is possible in such cases:\n // it's unlikely that anyone generated their custom metadata\n // in that short period of time (one day).\n // This code can be removed in some future major version update.\n if (input.countryCallingCode && metadata.isNonGeographicCallingCode(input.countryCallingCode)) {\n // \"Non-geographic entities\" did't have `possibleLengths`\n // due to a bug in metadata generation process.\n return true;\n } else {\n throw new Error('Missing \"possibleLengths\" in metadata. Perhaps the metadata has been generated before v1.0.18.');\n }\n }\n}\nexport function isPossibleNumber(nationalNumber, metadata) {\n //, isInternational) {\n switch (checkNumberLength(nationalNumber, metadata)) {\n case 'IS_POSSIBLE':\n return true;\n // This library ignores \"local-only\" phone numbers (for simplicity).\n // See the readme for more info on what are \"local-only\" phone numbers.\n // case 'IS_POSSIBLE_LOCAL_ONLY':\n // \treturn !isInternational\n\n default:\n return false;\n }\n}","function _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n\nfunction _iterableToArrayLimit(arr, i) {\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 _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nimport isViablePhoneNumber from './isViablePhoneNumber'; // https://www.ietf.org/rfc/rfc3966.txt\n\n/**\r\n * @param {string} text - Phone URI (RFC 3966).\r\n * @return {object} `{ ?number, ?ext }`.\r\n */\n\nexport function parseRFC3966(text) {\n var number;\n var ext; // Replace \"tel:\" with \"tel=\" for parsing convenience.\n\n text = text.replace(/^tel:/, 'tel=');\n\n for (var _iterator = text.split(';'), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {\n var _ref;\n\n if (_isArray) {\n if (_i >= _iterator.length) break;\n _ref = _iterator[_i++];\n } else {\n _i = _iterator.next();\n if (_i.done) break;\n _ref = _i.value;\n }\n\n var part = _ref;\n\n var _part$split = part.split('='),\n _part$split2 = _slicedToArray(_part$split, 2),\n name = _part$split2[0],\n value = _part$split2[1];\n\n switch (name) {\n case 'tel':\n number = value;\n break;\n\n case 'ext':\n ext = value;\n break;\n\n case 'phone-context':\n // Only \"country contexts\" are supported.\n // \"Domain contexts\" are ignored.\n if (value[0] === '+') {\n number = value + number;\n }\n\n break;\n }\n } // If the phone number is not viable, then abort.\n\n\n if (!isViablePhoneNumber(number)) {\n return {};\n }\n\n var result = {\n number: number\n };\n\n if (ext) {\n result.ext = ext;\n }\n\n return result;\n}\n/**\r\n * @param {object} - `{ ?number, ?extension }`.\r\n * @return {string} Phone URI (RFC 3966).\r\n */\n\nexport function formatRFC3966(_ref2) {\n var number = _ref2.number,\n ext = _ref2.ext;\n\n if (!number) {\n return '';\n }\n\n if (number[0] !== '+') {\n throw new Error(\"\\\"formatRFC3966()\\\" expects \\\"number\\\" to be in E.164 format.\");\n }\n\n return \"tel:\".concat(number).concat(ext ? ';ext=' + ext : '');\n}","import { MIN_LENGTH_FOR_NSN, VALID_DIGITS, VALID_PUNCTUATION, PLUS_CHARS } from '../constants';\nimport createExtensionPattern from './extension/createExtensionPattern'; // Regular expression of viable phone numbers. This is location independent.\n// Checks we have at least three leading digits, and only valid punctuation,\n// alpha characters and digits in the phone number. Does not include extension\n// data. The symbol 'x' is allowed here as valid punctuation since it is often\n// used as a placeholder for carrier codes, for example in Brazilian phone\n// numbers. We also allow multiple '+' characters at the start.\n//\n// Corresponds to the following:\n// [digits]{minLengthNsn}|\n// plus_sign*\n// (([punctuation]|[star])*[digits]){3,}([punctuation]|[star]|[digits]|[alpha])*\n//\n// The first reg-ex is to allow short numbers (two digits long) to be parsed if\n// they are entered as \"15\" etc, but only if there is no punctuation in them.\n// The second expression restricts the number of digits to three or more, but\n// then allows them to be in international form, and to have alpha-characters\n// and punctuation. We split up the two reg-exes here and combine them when\n// creating the reg-ex VALID_PHONE_NUMBER_PATTERN itself so we can prefix it\n// with ^ and append $ to each branch.\n//\n// \"Note VALID_PUNCTUATION starts with a -,\n// so must be the first in the range\" (c) Google devs.\n// (wtf did they mean by saying that; probably nothing)\n//\n\nvar MIN_LENGTH_PHONE_NUMBER_PATTERN = '[' + VALID_DIGITS + ']{' + MIN_LENGTH_FOR_NSN + '}'; //\n// And this is the second reg-exp:\n// (see MIN_LENGTH_PHONE_NUMBER_PATTERN for a full description of this reg-exp)\n//\n\nexport var VALID_PHONE_NUMBER = '[' + PLUS_CHARS + ']{0,1}' + '(?:' + '[' + VALID_PUNCTUATION + ']*' + '[' + VALID_DIGITS + ']' + '){3,}' + '[' + VALID_PUNCTUATION + VALID_DIGITS + ']*';\nexport var VALID_PHONE_NUMBER_WITH_EXTENSION = VALID_PHONE_NUMBER + // Phone number extensions\n'(?:' + createExtensionPattern() + ')?'; // The combined regular expression for valid phone numbers:\n//\n\nvar VALID_PHONE_NUMBER_PATTERN = new RegExp( // Either a short two-digit-only phone number\n'^' + MIN_LENGTH_PHONE_NUMBER_PATTERN + '$' + '|' + // Or a longer fully parsed phone number (min 3 characters)\n'^' + VALID_PHONE_NUMBER_WITH_EXTENSION + '$', 'i'); // Checks to see if the string of characters could possibly be a phone number at\n// all. At the moment, checks to see that the string begins with at least 2\n// digits, ignoring any punctuation commonly found in phone numbers. This method\n// does not require the number to be normalized in advance - but does assume\n// that leading non-number symbols have been removed, such as by the method\n// `extract_possible_number`.\n//\n\nexport default function isViablePhoneNumber(number) {\n return number.length >= MIN_LENGTH_FOR_NSN && VALID_PHONE_NUMBER_PATTERN.test(number);\n}","import { VALID_DIGITS } from '../../constants'; // The RFC 3966 format for extensions.\n\nvar RFC3966_EXTN_PREFIX = ';ext=';\n/**\r\n * Helper method for constructing regular expressions for parsing. Creates\r\n * an expression that captures up to max_length digits.\r\n * @return {string} RegEx pattern to capture extension digits.\r\n */\n\nvar getExtensionDigitsPattern = function getExtensionDigitsPattern(maxLength) {\n return \"([\".concat(VALID_DIGITS, \"]{1,\").concat(maxLength, \"})\");\n};\n/**\r\n * Helper initialiser method to create the regular-expression pattern to match\r\n * extensions.\r\n * Copy-pasted from Google's `libphonenumber`:\r\n * https://github.com/google/libphonenumber/blob/55b2646ec9393f4d3d6661b9c82ef9e258e8b829/javascript/i18n/phonenumbers/phonenumberutil.js#L759-L766\r\n * @return {string} RegEx pattern to capture extensions.\r\n */\n\n\nexport default function createExtensionPattern(purpose) {\n // We cap the maximum length of an extension based on the ambiguity of the way\n // the extension is prefixed. As per ITU, the officially allowed length for\n // extensions is actually 40, but we don't support this since we haven't seen real\n // examples and this introduces many false interpretations as the extension labels\n // are not standardized.\n\n /** @type {string} */\n var extLimitAfterExplicitLabel = '20';\n /** @type {string} */\n\n var extLimitAfterLikelyLabel = '15';\n /** @type {string} */\n\n var extLimitAfterAmbiguousChar = '9';\n /** @type {string} */\n\n var extLimitWhenNotSure = '6';\n /** @type {string} */\n\n var possibleSeparatorsBetweenNumberAndExtLabel = \"[ \\xA0\\\\t,]*\"; // Optional full stop (.) or colon, followed by zero or more spaces/tabs/commas.\n\n /** @type {string} */\n\n var possibleCharsAfterExtLabel = \"[:\\\\.\\uFF0E]?[ \\xA0\\\\t,-]*\";\n /** @type {string} */\n\n var optionalExtnSuffix = \"#?\"; // Here the extension is called out in more explicit way, i.e mentioning it obvious\n // patterns like \"ext.\".\n\n /** @type {string} */\n\n var explicitExtLabels = \"(?:e?xt(?:ensi(?:o\\u0301?|\\xF3))?n?|\\uFF45?\\uFF58\\uFF54\\uFF4E?|\\u0434\\u043E\\u0431|anexo)\"; // One-character symbols that can be used to indicate an extension, and less\n // commonly used or more ambiguous extension labels.\n\n /** @type {string} */\n\n var ambiguousExtLabels = \"(?:[x\\uFF58#\\uFF03~\\uFF5E]|int|\\uFF49\\uFF4E\\uFF54)\"; // When extension is not separated clearly.\n\n /** @type {string} */\n\n var ambiguousSeparator = \"[- ]+\"; // This is the same as possibleSeparatorsBetweenNumberAndExtLabel, but not matching\n // comma as extension label may have it.\n\n /** @type {string} */\n\n var possibleSeparatorsNumberExtLabelNoComma = \"[ \\xA0\\\\t]*\"; // \",,\" is commonly used for auto dialling the extension when connected. First\n // comma is matched through possibleSeparatorsBetweenNumberAndExtLabel, so we do\n // not repeat it here. Semi-colon works in Iphone and Android also to pop up a\n // button with the extension number following.\n\n /** @type {string} */\n\n var autoDiallingAndExtLabelsFound = \"(?:,{2}|;)\";\n /** @type {string} */\n\n var rfcExtn = RFC3966_EXTN_PREFIX + getExtensionDigitsPattern(extLimitAfterExplicitLabel);\n /** @type {string} */\n\n var explicitExtn = possibleSeparatorsBetweenNumberAndExtLabel + explicitExtLabels + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterExplicitLabel) + optionalExtnSuffix;\n /** @type {string} */\n\n var ambiguousExtn = possibleSeparatorsBetweenNumberAndExtLabel + ambiguousExtLabels + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterAmbiguousChar) + optionalExtnSuffix;\n /** @type {string} */\n\n var americanStyleExtnWithSuffix = ambiguousSeparator + getExtensionDigitsPattern(extLimitWhenNotSure) + \"#\";\n /** @type {string} */\n\n var autoDiallingExtn = possibleSeparatorsNumberExtLabelNoComma + autoDiallingAndExtLabelsFound + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterLikelyLabel) + optionalExtnSuffix;\n /** @type {string} */\n\n var onlyCommasExtn = possibleSeparatorsNumberExtLabelNoComma + \"(?:,)+\" + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterAmbiguousChar) + optionalExtnSuffix; // The first regular expression covers RFC 3966 format, where the extension is added\n // using \";ext=\". The second more generic where extension is mentioned with explicit\n // labels like \"ext:\". In both the above cases we allow more numbers in extension than\n // any other extension labels. The third one captures when single character extension\n // labels or less commonly used labels are used. In such cases we capture fewer\n // extension digits in order to reduce the chance of falsely interpreting two\n // numbers beside each other as a number + extension. The fourth one covers the\n // special case of American numbers where the extension is written with a hash\n // at the end, such as \"- 503#\". The fifth one is exclusively for extension\n // autodialling formats which are used when dialling and in this case we accept longer\n // extensions. The last one is more liberal on the number of commas that acts as\n // extension labels, so we have a strict cap on the number of digits in such extensions.\n\n return rfcExtn + \"|\" + explicitExtn + \"|\" + ambiguousExtn + \"|\" + americanStyleExtnWithSuffix + \"|\" + autoDiallingExtn + \"|\" + onlyCommasExtn;\n}","import applyInternationalSeparatorStyle from './applyInternationalSeparatorStyle'; // This was originally set to $1 but there are some countries for which the\n// first group is not used in the national pattern (e.g. Argentina) so the $1\n// group does not match correctly. Therefore, we use `\\d`, so that the first\n// group actually used in the pattern will be matched.\n\nexport var FIRST_GROUP_PATTERN = /(\\$\\d)/;\nexport default function formatNationalNumberUsingFormat(number, format, _ref) {\n var useInternationalFormat = _ref.useInternationalFormat,\n withNationalPrefix = _ref.withNationalPrefix,\n carrierCode = _ref.carrierCode,\n metadata = _ref.metadata;\n var formattedNumber = number.replace(new RegExp(format.pattern()), useInternationalFormat ? format.internationalFormat() : // This library doesn't use `domestic_carrier_code_formatting_rule`,\n // because that one is only used when formatting phone numbers\n // for dialing from a mobile phone, and this is not a dialing library.\n // carrierCode && format.domesticCarrierCodeFormattingRule()\n // \t// First, replace the $CC in the formatting rule with the desired carrier code.\n // \t// Then, replace the $FG in the formatting rule with the first group\n // \t// and the carrier code combined in the appropriate way.\n // \t? format.format().replace(FIRST_GROUP_PATTERN, format.domesticCarrierCodeFormattingRule().replace('$CC', carrierCode))\n // \t: (\n // \t\twithNationalPrefix && format.nationalPrefixFormattingRule()\n // \t\t\t? format.format().replace(FIRST_GROUP_PATTERN, format.nationalPrefixFormattingRule())\n // \t\t\t: format.format()\n // \t)\n withNationalPrefix && format.nationalPrefixFormattingRule() ? format.format().replace(FIRST_GROUP_PATTERN, format.nationalPrefixFormattingRule()) : format.format());\n\n if (useInternationalFormat) {\n return applyInternationalSeparatorStyle(formattedNumber);\n }\n\n return formattedNumber;\n}","// @noflow\n\ntype AgeCategory = 'puppy' | 'adult' | 'senior'\n\ntype DogSize =\n | 'extra_small'\n | 'small'\n | 'medium_1'\n | 'medium_2'\n | 'medium_3'\n | 'large_1'\n | 'large_2'\n | 'large_3'\n | 'large_4'\n | 'extra_large'\n\ntype EstimatedDailyPlanPrices = {\n ageCategory: AgeCategory\n size: DogSize\n GB: {\n mix: number\n all: number\n }\n NI: {\n mix: number\n all: number\n }\n IE: {\n mix: number\n all: number\n }\n NL: {\n mix: number\n all: number\n }\n BE: {\n mix: number\n all: number\n }\n PL: {\n mix: number\n all: number\n }\n CZ: {\n mix: number\n all: number\n }\n DE: {\n mix: number\n all: number\n }\n}\n\nconst EstimatedDailyPlanPrices: Array<EstimatedDailyPlanPrices> = [\n {\n ageCategory: 'puppy',\n size: 'extra_small',\n GB: { mix: 137, all: 205 },\n NI: { mix: 137, all: 205 },\n IE: { mix: 147, all: 221 },\n NL: { mix: 155, all: 233 },\n BE: { mix: 155, all: 233 },\n PL: { mix: 544, all: 816 },\n CZ: { mix: 3235, all: 4852 },\n DE: { mix: 101, all: 151 }\n },\n {\n ageCategory: 'puppy',\n size: 'small',\n GB: { mix: 152, all: 228 },\n NI: { mix: 152, all: 228 },\n IE: { mix: 147, all: 221 },\n NL: { mix: 165, all: 248 },\n BE: { mix: 165, all: 248 },\n PL: { mix: 544, all: 816 },\n CZ: { mix: 3235, all: 4852 },\n DE: { mix: 145, all: 218 }\n },\n {\n ageCategory: 'puppy',\n size: 'medium_1',\n GB: { mix: 165, all: 247 },\n NI: { mix: 165, all: 247 },\n IE: { mix: 184, all: 276 },\n NL: { mix: 168, all: 252 },\n BE: { mix: 168, all: 252 },\n PL: { mix: 605, all: 908 },\n CZ: { mix: 3597, all: 5400 },\n DE: { mix: 175, all: 263 }\n },\n {\n ageCategory: 'puppy',\n size: 'medium_2',\n GB: { mix: 178, all: 267 },\n NI: { mix: 178, all: 267 },\n IE: { mix: 200, all: 300 },\n NL: { mix: 173, all: 259 },\n BE: { mix: 173, all: 259 },\n PL: { mix: 662, all: 993 },\n CZ: { mix: 3937, all: 5905 },\n DE: { mix: 176, all: 264 }\n },\n {\n ageCategory: 'puppy',\n size: 'medium_3',\n GB: { mix: 184, all: 276 },\n NI: { mix: 184, all: 276 },\n IE: { mix: 215, all: 323 },\n NL: { mix: 183, all: 275 },\n BE: { mix: 183, all: 275 },\n PL: { mix: 707, all: 1060 },\n CZ: { mix: 4204, all: 6304 },\n DE: { mix: 185, all: 278 }\n },\n {\n ageCategory: 'puppy',\n size: 'large_1',\n GB: { mix: 206, all: 309 },\n NI: { mix: 206, all: 309 },\n IE: { mix: 233, all: 350 },\n NL: { mix: 198, all: 297 },\n BE: { mix: 198, all: 297 },\n PL: { mix: 775, all: 1163 },\n CZ: { mix: 4609, all: 6916 },\n DE: { mix: 225, all: 338 }\n },\n {\n ageCategory: 'puppy',\n size: 'large_2',\n GB: { mix: 240, all: 360 },\n NI: { mix: 240, all: 360 },\n IE: { mix: 246, all: 369 },\n NL: { mix: 198, all: 297 },\n BE: { mix: 198, all: 297 },\n PL: { mix: 799, all: 1198 },\n CZ: { mix: 4752, all: 7124 },\n DE: { mix: 225, all: 338 }\n },\n {\n ageCategory: 'puppy',\n size: 'large_3',\n GB: { mix: 240, all: 360 },\n NI: { mix: 240, all: 360 },\n IE: { mix: 247, all: 371 },\n NL: { mix: 199, all: 299 },\n BE: { mix: 199, all: 299 },\n PL: { mix: 900, all: 1350 },\n CZ: { mix: 5352, all: 8028 },\n DE: { mix: 227, all: 341 }\n },\n {\n ageCategory: 'puppy',\n size: 'large_4',\n GB: { mix: 240, all: 360 },\n NI: { mix: 240, all: 360 },\n IE: { mix: 251, all: 376 },\n NL: { mix: 239, all: 359 },\n BE: { mix: 239, all: 359 },\n PL: { mix: 931, all: 1396 },\n CZ: { mix: 5537, all: 8302 },\n DE: { mix: 235, all: 352 }\n },\n {\n ageCategory: 'puppy',\n size: 'extra_large',\n GB: { mix: 286, all: 429 },\n NI: { mix: 286, all: 429 },\n IE: { mix: 251, all: 376 },\n NL: { mix: 273, all: 409 },\n BE: { mix: 273, all: 409 },\n PL: { mix: 931, all: 1396 },\n CZ: { mix: 5537, all: 8302 },\n DE: { mix: 267, all: 401 }\n },\n {\n ageCategory: 'senior',\n size: 'extra_small',\n GB: { mix: 143, all: 214 },\n NI: { mix: 143, all: 214 },\n IE: { mix: 168, all: 252 },\n NL: { mix: 166, all: 249 },\n BE: { mix: 166, all: 249 },\n PL: { mix: 498, all: 747 },\n CZ: { mix: 2962, all: 4442 },\n DE: { mix: 136, all: 204 }\n },\n {\n ageCategory: 'senior',\n size: 'small',\n GB: { mix: 143, all: 215 },\n NI: { mix: 143, all: 215 },\n IE: { mix: 178, all: 267 },\n NL: { mix: 167, all: 250 },\n BE: { mix: 167, all: 250 },\n PL: { mix: 528, all: 792 },\n CZ: { mix: 3140, all: 4710 },\n DE: { mix: 149, all: 223 }\n },\n {\n ageCategory: 'senior',\n size: 'medium_1',\n GB: { mix: 149, all: 223 },\n NI: { mix: 149, all: 223 },\n IE: { mix: 181, all: 271 },\n NL: { mix: 185, all: 278 },\n BE: { mix: 185, all: 278 },\n PL: { mix: 557, all: 836 },\n CZ: { mix: 3312, all: 4972 },\n DE: { mix: 157, all: 235 }\n },\n {\n ageCategory: 'senior',\n size: 'medium_2',\n GB: { mix: 150, all: 225 },\n NI: { mix: 150, all: 225 },\n IE: { mix: 183, all: 275 },\n NL: { mix: 191, all: 287 },\n BE: { mix: 191, all: 287 },\n PL: { mix: 601, all: 901 },\n CZ: { mix: 3574, all: 5358 },\n DE: { mix: 166, all: 249 }\n },\n {\n ageCategory: 'senior',\n size: 'medium_3',\n GB: { mix: 152, all: 228 },\n NI: { mix: 152, all: 228 },\n IE: { mix: 202, all: 303 },\n NL: { mix: 193, all: 290 },\n BE: { mix: 193, all: 290 },\n PL: { mix: 655, all: 982 },\n CZ: { mix: 3895, all: 5840 },\n DE: { mix: 173, all: 259 }\n },\n {\n ageCategory: 'senior',\n size: 'large_1',\n GB: { mix: 166, all: 249 },\n NI: { mix: 166, all: 249 },\n IE: { mix: 216, all: 324 },\n NL: { mix: 193, all: 290 },\n BE: { mix: 193, all: 290 },\n PL: { mix: 669, all: 1004 },\n CZ: { mix: 3979, all: 5971 },\n DE: { mix: 205, all: 307 }\n },\n {\n ageCategory: 'senior',\n size: 'large_2',\n GB: { mix: 181, all: 272 },\n NI: { mix: 181, all: 272 },\n IE: { mix: 235, all: 352 },\n NL: { mix: 199, all: 299 },\n BE: { mix: 199, all: 299 },\n PL: { mix: 801, all: 1201 },\n CZ: { mix: 4764, all: 7142 },\n DE: { mix: 207, all: 311 }\n },\n {\n ageCategory: 'senior',\n size: 'large_3',\n GB: { mix: 190, all: 285 },\n NI: { mix: 190, all: 285 },\n IE: { mix: 248, all: 372 },\n NL: { mix: 240, all: 360 },\n BE: { mix: 240, all: 360 },\n PL: { mix: 835, all: 1253 },\n CZ: { mix: 4866, all: 7452 },\n DE: { mix: 225, all: 338 }\n },\n {\n ageCategory: 'senior',\n size: 'large_4',\n GB: { mix: 203, all: 304 },\n NI: { mix: 203, all: 304 },\n IE: { mix: 252, all: 378 },\n NL: { mix: 243, all: 365 },\n BE: { mix: 243, all: 365 },\n PL: { mix: 845, all: 1267 },\n CZ: { mix: 5025, all: 7535 },\n DE: { mix: 266, all: 399 }\n },\n {\n ageCategory: 'senior',\n size: 'extra_large',\n GB: { mix: 205, all: 307 },\n NI: { mix: 205, all: 307 },\n IE: { mix: 253, all: 380 },\n NL: { mix: 253, all: 380 },\n BE: { mix: 253, all: 380 },\n PL: { mix: 880, all: 1320 },\n CZ: { mix: 5233, all: 7850 },\n DE: { mix: 287, all: 431 }\n },\n {\n ageCategory: 'adult',\n size: 'extra_small',\n GB: { mix: 143, all: 214 },\n NI: { mix: 143, all: 214 },\n IE: { mix: 168, all: 252 },\n NL: { mix: 166, all: 249 },\n BE: { mix: 166, all: 249 },\n PL: { mix: 498, all: 747 },\n CZ: { mix: 2962, all: 4442 },\n DE: { mix: 136, all: 204 }\n },\n {\n ageCategory: 'adult',\n size: 'small',\n GB: { mix: 143, all: 215 },\n NI: { mix: 143, all: 215 },\n IE: { mix: 178, all: 267 },\n NL: { mix: 167, all: 250 },\n BE: { mix: 167, all: 250 },\n PL: { mix: 528, all: 792 },\n CZ: { mix: 3140, all: 4710 },\n DE: { mix: 149, all: 223 }\n },\n {\n ageCategory: 'adult',\n size: 'medium_1',\n GB: { mix: 149, all: 223 },\n NI: { mix: 149, all: 223 },\n IE: { mix: 181, all: 271 },\n NL: { mix: 185, all: 278 },\n BE: { mix: 185, all: 278 },\n PL: { mix: 557, all: 836 },\n CZ: { mix: 3312, all: 4972 },\n DE: { mix: 157, all: 235 }\n },\n {\n ageCategory: 'adult',\n size: 'medium_2',\n GB: { mix: 150, all: 225 },\n NI: { mix: 150, all: 225 },\n IE: { mix: 183, all: 275 },\n NL: { mix: 191, all: 287 },\n BE: { mix: 191, all: 287 },\n PL: { mix: 601, all: 901 },\n CZ: { mix: 3574, all: 5358 },\n DE: { mix: 166, all: 249 }\n },\n {\n ageCategory: 'adult',\n size: 'medium_3',\n GB: { mix: 152, all: 228 },\n NI: { mix: 152, all: 228 },\n IE: { mix: 202, all: 303 },\n NL: { mix: 193, all: 290 },\n BE: { mix: 193, all: 290 },\n PL: { mix: 655, all: 982 },\n CZ: { mix: 3895, all: 5840 },\n DE: { mix: 173, all: 259 }\n },\n {\n ageCategory: 'adult',\n size: 'large_1',\n GB: { mix: 166, all: 249 },\n NI: { mix: 166, all: 249 },\n IE: { mix: 216, all: 324 },\n NL: { mix: 193, all: 290 },\n BE: { mix: 193, all: 290 },\n PL: { mix: 669, all: 1004 },\n CZ: { mix: 3979, all: 5971 },\n DE: { mix: 205, all: 307 }\n },\n {\n ageCategory: 'adult',\n size: 'large_2',\n GB: { mix: 181, all: 272 },\n NI: { mix: 181, all: 272 },\n IE: { mix: 235, all: 352 },\n NL: { mix: 199, all: 299 },\n BE: { mix: 199, all: 299 },\n PL: { mix: 801, all: 1201 },\n CZ: { mix: 4763, all: 7142 },\n DE: { mix: 207, all: 311 }\n },\n {\n ageCategory: 'adult',\n size: 'large_3',\n GB: { mix: 190, all: 285 },\n NI: { mix: 190, all: 285 },\n IE: { mix: 248, all: 372 },\n NL: { mix: 240, all: 360 },\n BE: { mix: 240, all: 360 },\n PL: { mix: 835, all: 1253 },\n CZ: { mix: 4966, all: 7452 },\n DE: { mix: 225, all: 338 }\n },\n {\n ageCategory: 'adult',\n size: 'large_4',\n GB: { mix: 203, all: 304 },\n NI: { mix: 203, all: 304 },\n IE: { mix: 252, all: 378 },\n NL: { mix: 243, all: 365 },\n BE: { mix: 243, all: 365 },\n PL: { mix: 845, all: 1267 },\n CZ: { mix: 5025, all: 7535 },\n DE: { mix: 266, all: 399 }\n },\n {\n ageCategory: 'adult',\n size: 'extra_large',\n GB: { mix: 205, all: 307 },\n NI: { mix: 205, all: 307 },\n IE: { mix: 253, all: 380 },\n NL: { mix: 253, all: 380 },\n BE: { mix: 253, all: 380 },\n PL: { mix: 880, all: 1320 },\n CZ: { mix: 5233, all: 7850 },\n DE: { mix: 287, all: 431 }\n }\n]\n\nexport default EstimatedDailyPlanPrices\nexport type { AgeCategory, EstimatedDailyPlanPrices }\n","import createExtensionPattern from './createExtensionPattern'; // Regexp of all known extension prefixes used by different regions followed by\n// 1 or more valid digits, for use when parsing.\n\nvar EXTN_PATTERN = new RegExp('(?:' + createExtensionPattern() + ')$', 'i'); // Strips any extension (as in, the part of the number dialled after the call is\n// connected, usually indicated with extn, ext, x or similar) from the end of\n// the number, and returns it.\n\nexport default function extractExtension(number) {\n var start = number.search(EXTN_PATTERN);\n\n if (start < 0) {\n return {};\n } // If we find a potential extension, and the number preceding this is a viable\n // number, we assume it is an extension.\n\n\n var numberWithoutExtension = number.slice(0, start);\n var matches = number.match(EXTN_PATTERN);\n var i = 1;\n\n while (i < matches.length) {\n if (matches[i]) {\n return {\n number: numberWithoutExtension,\n ext: matches[i]\n };\n }\n\n i++;\n }\n}","import { parseDigit } from './helpers/parseDigits';\n/**\r\n * Parses phone number characters from a string.\r\n * Drops all punctuation leaving only digits and the leading `+` sign (if any).\r\n * Also converts wide-ascii and arabic-indic numerals to conventional numerals.\r\n * E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\r\n * @param {string} string\r\n * @return {string}\r\n * @example\r\n * ```js\r\n * // Outputs '8800555'.\r\n * parseIncompletePhoneNumber('8 (800) 555')\r\n * // Outputs '+7800555'.\r\n * parseIncompletePhoneNumber('+7 800 555')\r\n * ```\r\n */\n\nexport default function parseIncompletePhoneNumber(string) {\n var result = ''; // Using `.split('')` here instead of normal `for ... of`\n // because the importing application doesn't neccessarily include an ES6 polyfill.\n // The `.split('')` approach discards \"exotic\" UTF-8 characters\n // (the ones consisting of four bytes) but digits\n // (including non-European ones) don't fall into that range\n // so such \"exotic\" characters would be discarded anyway.\n\n for (var _iterator = string.split(''), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {\n var _ref;\n\n if (_isArray) {\n if (_i >= _iterator.length) break;\n _ref = _iterator[_i++];\n } else {\n _i = _iterator.next();\n if (_i.done) break;\n _ref = _i.value;\n }\n\n var character = _ref;\n result += parsePhoneNumberCharacter(character, result) || '';\n }\n\n return result;\n}\n/**\r\n * Parses next character while parsing phone number digits (including a `+`)\r\n * from text: discards everything except `+` and digits, and `+` is only allowed\r\n * at the start of a phone number.\r\n * For example, is used in `react-phone-number-input` where it uses\r\n * [`input-format`](https://gitlab.com/catamphetamine/input-format).\r\n * @param {string} character - Yet another character from raw input string.\r\n * @param {string?} prevParsedCharacters - Previous parsed characters.\r\n * @param {object} meta - Optional custom use-case-specific metadata.\r\n * @return {string?} The parsed character.\r\n */\n\nexport function parsePhoneNumberCharacter(character, prevParsedCharacters) {\n // Only allow a leading `+`.\n if (character === '+') {\n // If this `+` is not the first parsed character\n // then discard it.\n if (prevParsedCharacters) {\n return;\n }\n\n return '+';\n } // Allow digits.\n\n\n return parseDigit(character);\n}","// This is a port of Google Android `libphonenumber`'s\n// `phonenumberutil.js` of December 31th, 2018.\n//\n// https://github.com/googlei18n/libphonenumber/commits/master/javascript/i18n/phonenumbers/phonenumberutil.js\nimport { VALID_DIGITS, PLUS_CHARS, MIN_LENGTH_FOR_NSN, MAX_LENGTH_FOR_NSN } from './constants';\nimport ParseError from './ParseError';\nimport Metadata from './metadata';\nimport isViablePhoneNumber from './helpers/isViablePhoneNumber';\nimport extractExtension from './helpers/extension/extractExtension';\nimport parseIncompletePhoneNumber from './parseIncompletePhoneNumber';\nimport getCountryCallingCode from './getCountryCallingCode';\nimport { isPossibleNumber } from './isPossibleNumber_';\nimport { parseRFC3966 } from './helpers/RFC3966';\nimport PhoneNumber from './PhoneNumber';\nimport matchesEntirely from './helpers/matchesEntirely';\nimport extractCountryCallingCode from './helpers/extractCountryCallingCode';\nimport extractCountryCallingCodeFromInternationalNumberWithoutPlusSign from './helpers/extractCountryCallingCodeFromInternationalNumberWithoutPlusSign';\nimport extractNationalNumber from './helpers/extractNationalNumber';\nimport stripIddPrefix from './helpers/stripIddPrefix';\nimport getCountryByCallingCode from './helpers/getCountryByCallingCode'; // We don't allow input strings for parsing to be longer than 250 chars.\n// This prevents malicious input from consuming CPU.\n\nvar MAX_INPUT_STRING_LENGTH = 250; // This consists of the plus symbol, digits, and arabic-indic digits.\n\nvar PHONE_NUMBER_START_PATTERN = new RegExp('[' + PLUS_CHARS + VALID_DIGITS + ']'); // Regular expression of trailing characters that we want to remove.\n// A trailing `#` is sometimes used when writing phone numbers with extensions in US.\n// Example: \"+1 (645) 123 1234-910#\" number has extension \"910\".\n\nvar AFTER_PHONE_NUMBER_END_PATTERN = new RegExp('[^' + VALID_DIGITS + '#' + ']+$');\nvar USE_NON_GEOGRAPHIC_COUNTRY_CODE = false; // Examples:\n//\n// ```js\n// parse('8 (800) 555-35-35', 'RU')\n// parse('8 (800) 555-35-35', 'RU', metadata)\n// parse('8 (800) 555-35-35', { country: { default: 'RU' } })\n// parse('8 (800) 555-35-35', { country: { default: 'RU' } }, metadata)\n// parse('+7 800 555 35 35')\n// parse('+7 800 555 35 35', metadata)\n// ```\n//\n\nexport default function parse(text, options, metadata) {\n // If assigning the `{}` default value is moved to the arguments above,\n // code coverage would decrease for some weird reason.\n options = options || {};\n metadata = new Metadata(metadata); // Validate `defaultCountry`.\n\n if (options.defaultCountry && !metadata.hasCountry(options.defaultCountry)) {\n if (options.v2) {\n throw new ParseError('INVALID_COUNTRY');\n }\n\n throw new Error(\"Unknown country: \".concat(options.defaultCountry));\n } // Parse the phone number.\n\n\n var _parseInput = parseInput(text, options.v2, options.extract),\n formattedPhoneNumber = _parseInput.number,\n ext = _parseInput.ext; // If the phone number is not viable then return nothing.\n\n\n if (!formattedPhoneNumber) {\n if (options.v2) {\n throw new ParseError('NOT_A_NUMBER');\n }\n\n return {};\n }\n\n var _parsePhoneNumber = parsePhoneNumber(formattedPhoneNumber, options.defaultCountry, options.defaultCallingCode, metadata),\n country = _parsePhoneNumber.country,\n nationalNumber = _parsePhoneNumber.nationalNumber,\n countryCallingCode = _parsePhoneNumber.countryCallingCode,\n carrierCode = _parsePhoneNumber.carrierCode;\n\n if (!metadata.hasSelectedNumberingPlan()) {\n if (options.v2) {\n throw new ParseError('INVALID_COUNTRY');\n }\n\n return {};\n } // Validate national (significant) number length.\n\n\n if (!nationalNumber || nationalNumber.length < MIN_LENGTH_FOR_NSN) {\n // Won't throw here because the regexp already demands length > 1.\n\n /* istanbul ignore if */\n if (options.v2) {\n throw new ParseError('TOO_SHORT');\n } // Google's demo just throws an error in this case.\n\n\n return {};\n } // Validate national (significant) number length.\n //\n // A sidenote:\n //\n // They say that sometimes national (significant) numbers\n // can be longer than `MAX_LENGTH_FOR_NSN` (e.g. in Germany).\n // https://github.com/googlei18n/libphonenumber/blob/7e1748645552da39c4e1ba731e47969d97bdb539/resources/phonenumber.proto#L36\n // Such numbers will just be discarded.\n //\n\n\n if (nationalNumber.length > MAX_LENGTH_FOR_NSN) {\n if (options.v2) {\n throw new ParseError('TOO_LONG');\n } // Google's demo just throws an error in this case.\n\n\n return {};\n }\n\n if (options.v2) {\n var phoneNumber = new PhoneNumber(countryCallingCode, nationalNumber, metadata.metadata);\n\n if (country) {\n phoneNumber.country = country;\n }\n\n if (carrierCode) {\n phoneNumber.carrierCode = carrierCode;\n }\n\n if (ext) {\n phoneNumber.ext = ext;\n }\n\n return phoneNumber;\n } // Check if national phone number pattern matches the number.\n // National number pattern is different for each country,\n // even for those ones which are part of the \"NANPA\" group.\n\n\n var valid = (options.extended ? metadata.hasSelectedNumberingPlan() : country) ? matchesEntirely(nationalNumber, metadata.nationalNumberPattern()) : false;\n\n if (!options.extended) {\n return valid ? result(country, nationalNumber, ext) : {};\n } // isInternational: countryCallingCode !== undefined\n\n\n return {\n country: country,\n countryCallingCode: countryCallingCode,\n carrierCode: carrierCode,\n valid: valid,\n possible: valid ? true : options.extended === true && metadata.possibleLengths() && isPossibleNumber(nationalNumber, metadata) ? true : false,\n phone: nationalNumber,\n ext: ext\n };\n}\n/**\r\n * Extracts a formatted phone number from text.\r\n * Doesn't guarantee that the extracted phone number\r\n * is a valid phone number (for example, doesn't validate its length).\r\n * @param {string} text\r\n * @param {boolean} [extract] — If `false`, then will parse the entire `text` as a phone number.\r\n * @param {boolean} [throwOnError] — By default, it won't throw if the text is too long.\r\n * @return {string}\r\n * @example\r\n * // Returns \"(213) 373-4253\".\r\n * extractFormattedPhoneNumber(\"Call (213) 373-4253 for assistance.\")\r\n */\n\nfunction extractFormattedPhoneNumber(text, extract, throwOnError) {\n if (!text) {\n return;\n }\n\n if (text.length > MAX_INPUT_STRING_LENGTH) {\n if (throwOnError) {\n throw new ParseError('TOO_LONG');\n }\n\n return;\n }\n\n if (extract === false) {\n return text;\n } // Attempt to extract a possible number from the string passed in\n\n\n var startsAt = text.search(PHONE_NUMBER_START_PATTERN);\n\n if (startsAt < 0) {\n return;\n }\n\n return text // Trim everything to the left of the phone number\n .slice(startsAt) // Remove trailing non-numerical characters\n .replace(AFTER_PHONE_NUMBER_END_PATTERN, '');\n}\n/**\r\n * @param {string} text - Input.\r\n * @param {boolean} v2 - Legacy API functions don't pass `v2: true` flag.\r\n * @param {boolean} [extract] - Whether to extract a phone number from `text`, or attempt to parse the entire text as a phone number.\r\n * @return {object} `{ ?number, ?ext }`.\r\n */\n\n\nfunction parseInput(text, v2, extract) {\n // Parse RFC 3966 phone number URI.\n if (text && text.indexOf('tel:') === 0) {\n return parseRFC3966(text);\n }\n\n var number = extractFormattedPhoneNumber(text, extract, v2); // If the phone number is not viable, then abort.\n\n if (!number || !isViablePhoneNumber(number)) {\n return {};\n } // Attempt to parse extension first, since it doesn't require region-specific\n // data and we want to have the non-normalised number here.\n\n\n var withExtensionStripped = extractExtension(number);\n\n if (withExtensionStripped.ext) {\n return withExtensionStripped;\n }\n\n return {\n number: number\n };\n}\n/**\r\n * Creates `parse()` result object.\r\n */\n\n\nfunction result(country, nationalNumber, ext) {\n var result = {\n country: country,\n phone: nationalNumber\n };\n\n if (ext) {\n result.ext = ext;\n }\n\n return result;\n}\n/**\r\n * Parses a viable phone number.\r\n * @param {string} formattedPhoneNumber — Example: \"(213) 373-4253\".\r\n * @param {string} [defaultCountry]\r\n * @param {string} [defaultCallingCode]\r\n * @param {Metadata} metadata\r\n * @return {object} Returns `{ country: string?, countryCallingCode: string?, nationalNumber: string? }`.\r\n */\n\n\nfunction parsePhoneNumber(formattedPhoneNumber, defaultCountry, defaultCallingCode, metadata) {\n // Extract calling code from phone number.\n var _extractCountryCallin = extractCountryCallingCode(parseIncompletePhoneNumber(formattedPhoneNumber), defaultCountry, defaultCallingCode, metadata.metadata),\n countryCallingCode = _extractCountryCallin.countryCallingCode,\n number = _extractCountryCallin.number; // Choose a country by `countryCallingCode`.\n\n\n var country;\n\n if (countryCallingCode) {\n metadata.selectNumberingPlan(countryCallingCode);\n } // If `formattedPhoneNumber` is in \"national\" format\n // then `number` is defined and `countryCallingCode` isn't.\n else if (number && (defaultCountry || defaultCallingCode)) {\n metadata.selectNumberingPlan(defaultCountry, defaultCallingCode);\n\n if (defaultCountry) {\n country = defaultCountry;\n } else {\n /* istanbul ignore if */\n if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n if (metadata.isNonGeographicCallingCode(defaultCallingCode)) {\n country = '001';\n }\n }\n }\n\n countryCallingCode = defaultCallingCode || getCountryCallingCode(defaultCountry, metadata.metadata);\n } else return {};\n\n if (!number) {\n return {\n countryCallingCode: countryCallingCode\n };\n }\n\n var _extractNationalNumbe = extractNationalNumber(parseIncompletePhoneNumber(number), metadata),\n nationalNumber = _extractNationalNumbe.nationalNumber,\n carrierCode = _extractNationalNumbe.carrierCode; // Sometimes there are several countries\n // corresponding to the same country phone code\n // (e.g. NANPA countries all having `1` country phone code).\n // Therefore, to reliably determine the exact country,\n // national (significant) number should have been parsed first.\n //\n // When `metadata.json` is generated, all \"ambiguous\" country phone codes\n // get their countries populated with the full set of\n // \"phone number type\" regular expressions.\n //\n\n\n var exactCountry = getCountryByCallingCode(countryCallingCode, nationalNumber, metadata);\n\n if (exactCountry) {\n country = exactCountry;\n /* istanbul ignore if */\n\n if (exactCountry === '001') {// Can't happen with `USE_NON_GEOGRAPHIC_COUNTRY_CODE` being `false`.\n // If `USE_NON_GEOGRAPHIC_COUNTRY_CODE` is set to `true` for some reason,\n // then remove the \"istanbul ignore if\".\n } else {\n metadata.country(country);\n }\n }\n\n return {\n country: country,\n countryCallingCode: countryCallingCode,\n nationalNumber: nationalNumber,\n carrierCode: carrierCode\n };\n}","function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\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\nimport parseNumber from './parse_';\nexport default function parsePhoneNumber(text, options, metadata) {\n return parseNumber(text, _objectSpread({}, options, {\n v2: true\n }), metadata);\n}","// This file is a workaround for a bug in web browsers' \"native\"\n// ES6 importing system which is uncapable of importing \"*.json\" files.\n// https://github.com/catamphetamine/libphonenumber-js/issues/239\nexport default {\n \"version\": 4,\n \"country_calling_codes\": {\n \"1\": [\"US\", \"AG\", \"AI\", \"AS\", \"BB\", \"BM\", \"BS\", \"CA\", \"DM\", \"DO\", \"GD\", \"GU\", \"JM\", \"KN\", \"KY\", \"LC\", \"MP\", \"MS\", \"PR\", \"SX\", \"TC\", \"TT\", \"VC\", \"VG\", \"VI\"],\n \"7\": [\"RU\", \"KZ\"],\n \"20\": [\"EG\"],\n \"27\": [\"ZA\"],\n \"30\": [\"GR\"],\n \"31\": [\"NL\"],\n \"32\": [\"BE\"],\n \"33\": [\"FR\"],\n \"34\": [\"ES\"],\n \"36\": [\"HU\"],\n \"39\": [\"IT\", \"VA\"],\n \"40\": [\"RO\"],\n \"41\": [\"CH\"],\n \"43\": [\"AT\"],\n \"44\": [\"GB\", \"GG\", \"IM\", \"JE\"],\n \"45\": [\"DK\"],\n \"46\": [\"SE\"],\n \"47\": [\"NO\", \"SJ\"],\n \"48\": [\"PL\"],\n \"49\": [\"DE\"],\n \"51\": [\"PE\"],\n \"52\": [\"MX\"],\n \"53\": [\"CU\"],\n \"54\": [\"AR\"],\n \"55\": [\"BR\"],\n \"56\": [\"CL\"],\n \"57\": [\"CO\"],\n \"58\": [\"VE\"],\n \"60\": [\"MY\"],\n \"61\": [\"AU\", \"CC\", \"CX\"],\n \"62\": [\"ID\"],\n \"63\": [\"PH\"],\n \"64\": [\"NZ\"],\n \"65\": [\"SG\"],\n \"66\": [\"TH\"],\n \"81\": [\"JP\"],\n \"82\": [\"KR\"],\n \"84\": [\"VN\"],\n \"86\": [\"CN\"],\n \"90\": [\"TR\"],\n \"91\": [\"IN\"],\n \"92\": [\"PK\"],\n \"93\": [\"AF\"],\n \"94\": [\"LK\"],\n \"95\": [\"MM\"],\n \"98\": [\"IR\"],\n \"211\": [\"SS\"],\n \"212\": [\"MA\", \"EH\"],\n \"213\": [\"DZ\"],\n \"216\": [\"TN\"],\n \"218\": [\"LY\"],\n \"220\": [\"GM\"],\n \"221\": [\"SN\"],\n \"222\": [\"MR\"],\n \"223\": [\"ML\"],\n \"224\": [\"GN\"],\n \"225\": [\"CI\"],\n \"226\": [\"BF\"],\n \"227\": [\"NE\"],\n \"228\": [\"TG\"],\n \"229\": [\"BJ\"],\n \"230\": [\"MU\"],\n \"231\": [\"LR\"],\n \"232\": [\"SL\"],\n \"233\": [\"GH\"],\n \"234\": [\"NG\"],\n \"235\": [\"TD\"],\n \"236\": [\"CF\"],\n \"237\": [\"CM\"],\n \"238\": [\"CV\"],\n \"239\": [\"ST\"],\n \"240\": [\"GQ\"],\n \"241\": [\"GA\"],\n \"242\": [\"CG\"],\n \"243\": [\"CD\"],\n \"244\": [\"AO\"],\n \"245\": [\"GW\"],\n \"246\": [\"IO\"],\n \"247\": [\"AC\"],\n \"248\": [\"SC\"],\n \"249\": [\"SD\"],\n \"250\": [\"RW\"],\n \"251\": [\"ET\"],\n \"252\": [\"SO\"],\n \"253\": [\"DJ\"],\n \"254\": [\"KE\"],\n \"255\": [\"TZ\"],\n \"256\": [\"UG\"],\n \"257\": [\"BI\"],\n \"258\": [\"MZ\"],\n \"260\": [\"ZM\"],\n \"261\": [\"MG\"],\n \"262\": [\"RE\", \"YT\"],\n \"263\": [\"ZW\"],\n \"264\": [\"NA\"],\n \"265\": [\"MW\"],\n \"266\": [\"LS\"],\n \"267\": [\"BW\"],\n \"268\": [\"SZ\"],\n \"269\": [\"KM\"],\n \"290\": [\"SH\", \"TA\"],\n \"291\": [\"ER\"],\n \"297\": [\"AW\"],\n \"298\": [\"FO\"],\n \"299\": [\"GL\"],\n \"350\": [\"GI\"],\n \"351\": [\"PT\"],\n \"352\": [\"LU\"],\n \"353\": [\"IE\"],\n \"354\": [\"IS\"],\n \"355\": [\"AL\"],\n \"356\": [\"MT\"],\n \"357\": [\"CY\"],\n \"358\": [\"FI\", \"AX\"],\n \"359\": [\"BG\"],\n \"370\": [\"LT\"],\n \"371\": [\"LV\"],\n \"372\": [\"EE\"],\n \"373\": [\"MD\"],\n \"374\": [\"AM\"],\n \"375\": [\"BY\"],\n \"376\": [\"AD\"],\n \"377\": [\"MC\"],\n \"378\": [\"SM\"],\n \"380\": [\"UA\"],\n \"381\": [\"RS\"],\n \"382\": [\"ME\"],\n \"383\": [\"XK\"],\n \"385\": [\"HR\"],\n \"386\": [\"SI\"],\n \"387\": [\"BA\"],\n \"389\": [\"MK\"],\n \"420\": [\"CZ\"],\n \"421\": [\"SK\"],\n \"423\": [\"LI\"],\n \"500\": [\"FK\"],\n \"501\": [\"BZ\"],\n \"502\": [\"GT\"],\n \"503\": [\"SV\"],\n \"504\": [\"HN\"],\n \"505\": [\"NI\"],\n \"506\": [\"CR\"],\n \"507\": [\"PA\"],\n \"508\": [\"PM\"],\n \"509\": [\"HT\"],\n \"590\": [\"GP\", \"BL\", \"MF\"],\n \"591\": [\"BO\"],\n \"592\": [\"GY\"],\n \"593\": [\"EC\"],\n \"594\": [\"GF\"],\n \"595\": [\"PY\"],\n \"596\": [\"MQ\"],\n \"597\": [\"SR\"],\n \"598\": [\"UY\"],\n \"599\": [\"CW\", \"BQ\"],\n \"670\": [\"TL\"],\n \"672\": [\"NF\"],\n \"673\": [\"BN\"],\n \"674\": [\"NR\"],\n \"675\": [\"PG\"],\n \"676\": [\"TO\"],\n \"677\": [\"SB\"],\n \"678\": [\"VU\"],\n \"679\": [\"FJ\"],\n \"680\": [\"PW\"],\n \"681\": [\"WF\"],\n \"682\": [\"CK\"],\n \"683\": [\"NU\"],\n \"685\": [\"WS\"],\n \"686\": [\"KI\"],\n \"687\": [\"NC\"],\n \"688\": [\"TV\"],\n \"689\": [\"PF\"],\n \"690\": [\"TK\"],\n \"691\": [\"FM\"],\n \"692\": [\"MH\"],\n \"850\": [\"KP\"],\n \"852\": [\"HK\"],\n \"853\": [\"MO\"],\n \"855\": [\"KH\"],\n \"856\": [\"LA\"],\n \"880\": [\"BD\"],\n \"886\": [\"TW\"],\n \"960\": [\"MV\"],\n \"961\": [\"LB\"],\n \"962\": [\"JO\"],\n \"963\": [\"SY\"],\n \"964\": [\"IQ\"],\n \"965\": [\"KW\"],\n \"966\": [\"SA\"],\n \"967\": [\"YE\"],\n \"968\": [\"OM\"],\n \"970\": [\"PS\"],\n \"971\": [\"AE\"],\n \"972\": [\"IL\"],\n \"973\": [\"BH\"],\n \"974\": [\"QA\"],\n \"975\": [\"BT\"],\n \"976\": [\"MN\"],\n \"977\": [\"NP\"],\n \"992\": [\"TJ\"],\n \"993\": [\"TM\"],\n \"994\": [\"AZ\"],\n \"995\": [\"GE\"],\n \"996\": [\"KG\"],\n \"998\": [\"UZ\"]\n },\n \"countries\": {\n \"AC\": [\"247\", \"00\", \"(?:[01589]\\\\d|[46])\\\\d{4}\", [5, 6], 0, 0, 0, 0, 0, 0, 0, [0, [\"4\\\\d{4}\", [5]]]],\n \"AD\": [\"376\", \"00\", \"(?:1|6\\\\d)\\\\d{7}|[135-9]\\\\d{5}\", [6, 8, 9], [[\"(\\\\d{3})(\\\\d{3})\", \"$1 $2\", [\"[135-9]\"]], [\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"1\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"6\"]]], 0, 0, 0, 0, 0, 0, [0, [\"690\\\\d{6}|[356]\\\\d{5}\", [6, 9]]]],\n \"AE\": [\"971\", \"00\", \"(?:[4-7]\\\\d|9[0-689])\\\\d{7}|800\\\\d{2,9}|[2-4679]\\\\d{7}\", [5, 6, 7, 8, 9, 10, 11, 12], [[\"(\\\\d{3})(\\\\d{2,9})\", \"$1 $2\", [\"60|8\"]], [\"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[236]|[479][2-8]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d)(\\\\d{5})\", \"$1 $2 $3\", [\"[479]\"]], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"5\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [0, [\"5[024-68]\\\\d{7}\", [9]]]],\n \"AF\": [\"93\", \"00\", \"[2-7]\\\\d{8}\", [9], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[2-7]\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [0, [\"7\\\\d{8}\"]]],\n \"AG\": [\"1\", \"011\", \"(?:268|[58]\\\\d\\\\d|900)\\\\d{7}\", [10], 0, \"1\", 0, \"1|([457]\\\\d{6})$\", \"268$1\", 0, \"268\", [0, [\"268(?:464|7(?:1[3-9]|[28]\\\\d|3[0246]|64|7[0-689]))\\\\d{4}\"]]],\n \"AI\": [\"1\", \"011\", \"(?:264|[58]\\\\d\\\\d|900)\\\\d{7}\", [10], 0, \"1\", 0, \"1|([2457]\\\\d{6})$\", \"264$1\", 0, \"264\", [0, [\"264(?:235|4(?:69|76)|5(?:3[6-9]|8[1-4])|7(?:29|72))\\\\d{4}\"]]],\n \"AL\": [\"355\", \"00\", \"(?:700\\\\d\\\\d|900)\\\\d{3}|8\\\\d{5,7}|(?:[2-5]|6\\\\d)\\\\d{7}\", [6, 7, 8, 9], [[\"(\\\\d{3})(\\\\d{3,4})\", \"$1 $2\", [\"80|9\"], \"0$1\"], [\"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"4[2-6]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[2358][2-5]|4\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{5})\", \"$1 $2\", [\"[23578]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"6\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [0, [\"6(?:[78][2-9]|9\\\\d)\\\\d{6}\", [9]]]],\n \"AM\": [\"374\", \"00\", \"(?:[1-489]\\\\d|55|60|77)\\\\d{6}\", [8], [[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3\", [\"[89]0\"], \"0 $1\"], [\"(\\\\d{3})(\\\\d{5})\", \"$1 $2\", [\"2|3[12]\"], \"(0$1)\"], [\"(\\\\d{2})(\\\\d{6})\", \"$1 $2\", [\"1|47\"], \"(0$1)\"], [\"(\\\\d{2})(\\\\d{6})\", \"$1 $2\", [\"[3-9]\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [0, [\"(?:33|4[1349]|55|77|88|9[13-9])\\\\d{6}\"]]],\n \"AO\": [\"244\", \"00\", \"[29]\\\\d{8}\", [9], [[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[29]\"]]], 0, 0, 0, 0, 0, 0, [0, [\"9[1-49]\\\\d{7}\"]]],\n \"AR\": [\"54\", \"00\", \"(?:11|[89]\\\\d\\\\d)\\\\d{8}|[2368]\\\\d{9}\", [10, 11], [[\"(\\\\d{4})(\\\\d{2})(\\\\d{4})\", \"$1 $2-$3\", [\"2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9])\", \"2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8]))|2(?:2[24-9]|3[1-59]|47)\", \"2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5[56][46]|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]\", \"2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|58|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|54(?:4|5[13-7]|6[89])|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:454|85[56])[46]|3(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]\"], \"0$1\", 1], [\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1 $2-$3\", [\"1\"], \"0$1\", 1], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1-$2-$3\", [\"[68]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2-$3\", [\"[23]\"], \"0$1\", 1], [\"(\\\\d)(\\\\d{4})(\\\\d{2})(\\\\d{4})\", \"$2 15-$3-$4\", [\"9(?:2[2-469]|3[3-578])\", \"9(?:2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9]))\", \"9(?:2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8])))|92(?:2[24-9]|3[1-59]|47)\", \"9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5(?:[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]\", \"9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|5(?:4(?:4|5[13-7]|6[89])|[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]\"], \"0$1\", 0, \"$1 $2 $3-$4\"], [\"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$2 15-$3-$4\", [\"91\"], \"0$1\", 0, \"$1 $2 $3-$4\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\", \"$1-$2-$3\", [\"8\"], \"0$1\"], [\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$2 15-$3-$4\", [\"9\"], \"0$1\", 0, \"$1 $2 $3-$4\"]], \"0\", 0, \"0?(?:(11|2(?:2(?:02?|[13]|2[13-79]|4[1-6]|5[2457]|6[124-8]|7[1-4]|8[13-6]|9[1267])|3(?:02?|1[467]|2[03-6]|3[13-8]|[49][2-6]|5[2-8]|[67])|4(?:7[3-578]|9)|6(?:[0136]|2[24-6]|4[6-8]?|5[15-8])|80|9(?:0[1-3]|[19]|2\\\\d|3[1-6]|4[02568]?|5[2-4]|6[2-46]|72?|8[23]?))|3(?:3(?:2[79]|6|8[2578])|4(?:0[0-24-9]|[12]|3[5-8]?|4[24-7]|5[4-68]?|6[02-9]|7[126]|8[2379]?|9[1-36-8])|5(?:1|2[1245]|3[237]?|4[1-46-9]|6[2-4]|7[1-6]|8[2-5]?)|6[24]|7(?:[069]|1[1568]|2[15]|3[145]|4[13]|5[14-8]|7[2-57]|8[126])|8(?:[01]|2[15-7]|3[2578]?|4[13-6]|5[4-8]?|6[1-357-9]|7[36-8]?|8[5-8]?|9[124])))15)?\", \"9$1\", 0, 0, [0, [\"93888[013-9]\\\\d{5}|9(?:29(?:54|66)|3(?:777|865))[2-8]\\\\d{5}|93(?:7(?:1[15]|81)|8(?:21|4[16]|69|9[12]))[46]\\\\d{5}|9(?:2(?:2(?:2[59]|44|52)|3(?:26|44)|473|9(?:[07]2|2[26]|34|46))|3327)[45]\\\\d{5}|9(?:2(?:284|302|657|920)|3(?:4(?:8[27]|92)|541|755|878))[2-7]\\\\d{5}|9(?:2(?:(?:26|62)2|32[03]|477|9(?:42|83))|3(?:329|4(?:[47]6|62|89)|564))[2-6]\\\\d{5}|(?:675\\\\d|9(?:11[1-8]\\\\d|2(?:2(?:0[45]|1[2-6]|3[3-6])|3(?:[06]4|7[45])|494|6(?:04|1[2-7]|[36][45]|4[3-6])|80[45]|9(?:[17][4-6]|[48][45]|9[3-6]))|3(?:364|4(?:1[2-7]|[235][4-6]|84)|5(?:1[2-8]|[38][4-6])|6(?:2[45]|44)|7[069][45]|8(?:[03][45]|[17][2-6]|[58][3-6]))))\\\\d{6}|92(?:2(?:21|4[23]|6[145]|7[1-4]|8[356]|9[267])|3(?:16|3[13-8]|43|5[346-8]|9[3-5])|475|6(?:2[46]|4[78]|5[1568])|9(?:03|2[1457-9]|3[1356]|4[08]|[56][23]|82))4\\\\d{5}|9(?:2(?:2(?:57|81)|3(?:24|46|92)|9(?:01|23|64))|3(?:4(?:42|71)|5(?:25|37|4[347]|71)|7(?:18|5[17])))[3-6]\\\\d{5}|9(?:2(?:2(?:02|2[3467]|4[156]|5[45]|6[6-8]|91)|3(?:1[47]|25|[45][25]|96)|47[48]|625|932)|3(?:38[2578]|4(?:0[0-24-9]|3[78]|4[457]|58|6[03-9]|72|83|9[136-8])|5(?:2[124]|[368][23]|4[2689]|7[2-6])|7(?:16|2[15]|3[145]|4[13]|5[468]|7[2-5]|8[26])|8(?:2[5-7]|3[278]|4[3-5]|5[78]|6[1-378]|[78]7|94)))[4-6]\\\\d{5}\"]]],\n \"AS\": [\"1\", \"011\", \"(?:[58]\\\\d\\\\d|684|900)\\\\d{7}\", [10], 0, \"1\", 0, \"1|([267]\\\\d{6})$\", \"684$1\", 0, \"684\", [0, [\"684(?:2(?:48|5[2468]|72)|7(?:3[13]|70|82))\\\\d{4}\"]]],\n \"AT\": [\"43\", \"00\", \"1\\\\d{3,12}|2\\\\d{6,12}|43(?:(?:0\\\\d|5[02-9])\\\\d{3,9}|2\\\\d{4,5}|[3467]\\\\d{4}|8\\\\d{4,6}|9\\\\d{4,7})|5\\\\d{4,12}|8\\\\d{7,12}|9\\\\d{8,12}|(?:[367]\\\\d|4[0-24-9])\\\\d{4,11}\", [4, 5, 6, 7, 8, 9, 10, 11, 12, 13], [[\"(\\\\d)(\\\\d{3,12})\", \"$1 $2\", [\"1(?:11|[2-9])\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{2})\", \"$1 $2\", [\"517\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3,5})\", \"$1 $2\", [\"5[079]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3,10})\", \"$1 $2\", [\"(?:31|4)6|51|6(?:5[0-3579]|[6-9])|7(?:20|32|8)|[89]\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{3,9})\", \"$1 $2\", [\"[2-467]|5[2-6]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"5\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{4})(\\\\d{4,7})\", \"$1 $2 $3\", [\"5\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [0, [\"6(?:5[0-3579]|6[013-9]|[7-9]\\\\d)\\\\d{4,10}\", [7, 8, 9, 10, 11, 12, 13]]]],\n \"AU\": [\"61\", \"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\", \"1(?:[0-79]\\\\d{7,8}|8[0-24-9]\\\\d{7})|[2-478]\\\\d{8}|1\\\\d{4,7}\", [5, 6, 7, 8, 9, 10], [[\"(\\\\d{2})(\\\\d{3,4})\", \"$1 $2\", [\"16\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{2,4})\", \"$1 $2 $3\", [\"16\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"14|4\"], \"0$1\"], [\"(\\\\d)(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"[2378]\"], \"(0$1)\"], [\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"1(?:30|[89])\"]]], \"0\", 0, \"0|(183[12])\", 0, 0, 0, [0, [\"4(?:83[0-38]|93[0-4])\\\\d{5}|4(?:[0-3]\\\\d|4[047-9]|5[0-25-9]|6[06-9]|7[02-9]|8[0-24-9]|9[0-27-9])\\\\d{6}\", [9]]], \"0011\"],\n \"AW\": [\"297\", \"00\", \"(?:[25-79]\\\\d\\\\d|800)\\\\d{4}\", [7], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[25-9]\"]]], 0, 0, 0, 0, 0, 0, [0, [\"(?:290|5[69]\\\\d|6(?:[03]0|22|4[0-2]|[69]\\\\d)|7(?:[34]\\\\d|7[07])|9(?:6[45]|9[4-8]))\\\\d{4}\"]]],\n \"AX\": [\"358\", \"00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))\", \"2\\\\d{4,9}|35\\\\d{4,5}|(?:60\\\\d\\\\d|800)\\\\d{4,6}|7\\\\d{5,11}|(?:[14]\\\\d|3[0-46-9]|50)\\\\d{4,8}\", [5, 6, 7, 8, 9, 10, 11, 12], 0, \"0\", 0, 0, 0, 0, \"18\", [0, [\"4946\\\\d{2,6}|(?:4[0-8]|50)\\\\d{4,8}\", [6, 7, 8, 9, 10]]], \"00\"],\n \"AZ\": [\"994\", \"00\", \"365\\\\d{6}|(?:[124579]\\\\d|60|88)\\\\d{7}\", [9], [[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"90\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"1[28]|2|365|46\", \"1[28]|2|365|46\", \"1[28]|2|365(?:[0-46-9]|5[0-35-9])|46\"], \"(0$1)\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[13-9]\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [0, [\"(?:36554|99[2-9]\\\\d\\\\d)\\\\d{4}|(?:[16]0|4[04]|5[015]|7[07])\\\\d{7}\"]]],\n \"BA\": [\"387\", \"00\", \"6\\\\d{8}|(?:[35689]\\\\d|49|70)\\\\d{6}\", [8, 9], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"6[1-3]|[7-9]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2-$3\", [\"[3-5]|6[56]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"6\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [0, [\"6040\\\\d{5}|6(?:03|[1-356]|44|7\\\\d)\\\\d{6}\"]]],\n \"BB\": [\"1\", \"011\", \"(?:246|[58]\\\\d\\\\d|900)\\\\d{7}\", [10], 0, \"1\", 0, \"1|([2-9]\\\\d{6})$\", \"246$1\", 0, \"246\", [0, [\"246(?:2(?:[3568]\\\\d|4[0-57-9])|45\\\\d|69[5-7]|8(?:[2-5]\\\\d|83))\\\\d{4}\"]]],\n \"BD\": [\"880\", \"00\", \"1\\\\d{9}|2\\\\d{7,8}|88\\\\d{4,6}|(?:8[0-79]|9\\\\d)\\\\d{4,8}|(?:[346]\\\\d|[57])\\\\d{5,8}\", [6, 7, 8, 9, 10], [[\"(\\\\d{2})(\\\\d{4,6})\", \"$1-$2\", [\"31[5-8]|[459]1\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3,7})\", \"$1-$2\", [\"3(?:[67]|8[013-9])|4(?:6[168]|7|[89][18])|5(?:6[128]|9)|6(?:28|4[14]|5)|7[2-589]|8(?:0[014-9]|[12])|9[358]|(?:3[2-5]|4[235]|5[2-578]|6[0389]|76|8[3-7]|9[24])1|(?:44|66)[01346-9]\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{3,6})\", \"$1-$2\", [\"[13-9]\"], \"0$1\"], [\"(\\\\d)(\\\\d{7,8})\", \"$1-$2\", [\"2\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [0, [\"(?:1[13-9]\\\\d|644)\\\\d{7}|(?:3[78]|44|66)[02-9]\\\\d{7}\", [10]]]],\n \"BE\": [\"32\", \"00\", \"4\\\\d{8}|[1-9]\\\\d{7}\", [8, 9], [[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3\", [\"(?:80|9)0\"], \"0$1\"], [\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[239]|4[23]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[15-8]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"4\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [0, [\"4[5-9]\\\\d{7}\", [9]]]],\n \"BF\": [\"226\", \"00\", \"[025-7]\\\\d{7}\", [8], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[025-7]\"]]], 0, 0, 0, 0, 0, 0, [0, [\"(?:0[1267]|5[1-8]|[67]\\\\d)\\\\d{6}\"]]],\n \"BG\": [\"359\", \"00\", \"[2-7]\\\\d{6,7}|[89]\\\\d{6,8}|2\\\\d{5}\", [6, 7, 8, 9], [[\"(\\\\d)(\\\\d)(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"2\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"43[1-6]|70[1-9]\"], \"0$1\"], [\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"2\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\", \"$1 $2 $3\", [\"[356]|4[124-7]|7[1-9]|8[1-6]|9[1-7]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3\", [\"(?:70|8)0\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{2})\", \"$1 $2 $3\", [\"43[1-7]|7\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[48]|9[08]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"9\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [0, [\"43[07-9]\\\\d{5}|(?:48|8[7-9]\\\\d|9(?:8\\\\d|9[69]))\\\\d{6}\", [8, 9]]]],\n \"BH\": [\"973\", \"00\", \"[136-9]\\\\d{7}\", [8], [[\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[13679]|8[047]\"]]], 0, 0, 0, 0, 0, 0, [0, [\"(?:3(?:[1-79]\\\\d|8[0-47-9])\\\\d|6(?:3(?:00|33|6[16])|6(?:3[03-9]|[69]\\\\d|7[0-6])))\\\\d{4}\"]]],\n \"BI\": [\"257\", \"00\", \"(?:[267]\\\\d|31)\\\\d{6}\", [8], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[2367]\"]]], 0, 0, 0, 0, 0, 0, [0, [\"(?:29|31|6[1289]|7[125-9])\\\\d{6}\"]]],\n \"BJ\": [\"229\", \"00\", \"[25689]\\\\d{7}\", [8], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[25689]\"]]], 0, 0, 0, 0, 0, 0, [0, [\"(?:5[1-35-8]|6\\\\d|9[013-9])\\\\d{6}\"]]],\n \"BL\": [\"590\", \"00\", \"(?:590|(?:69|80)\\\\d|976)\\\\d{6}\", [9], 0, \"0\", 0, 0, 0, 0, 0, [0, [\"69(?:0\\\\d\\\\d|1(?:2[2-9]|3[0-5]))\\\\d{4}\"]]],\n \"BM\": [\"1\", \"011\", \"(?:441|[58]\\\\d\\\\d|900)\\\\d{7}\", [10], 0, \"1\", 0, \"1|([2-8]\\\\d{6})$\", \"441$1\", 0, \"441\", [0, [\"441(?:[2378]\\\\d|5[0-39])\\\\d{5}\"]]],\n \"BN\": [\"673\", \"00\", \"[2-578]\\\\d{6}\", [7], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[2-578]\"]]], 0, 0, 0, 0, 0, 0, [0, [\"(?:22[89]|[78]\\\\d\\\\d)\\\\d{4}\"]]],\n \"BO\": [\"591\", \"00(?:1\\\\d)?\", \"(?:[2-467]\\\\d\\\\d|8001)\\\\d{5}\", [8, 9], [[\"(\\\\d)(\\\\d{7})\", \"$1 $2\", [\"[23]|4[46]\"]], [\"(\\\\d{8})\", \"$1\", [\"[67]\"]], [\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\", \"$1 $2 $3\", [\"8\"]]], \"0\", 0, \"0(1\\\\d)?\", 0, 0, 0, [0, [\"[67]\\\\d{7}\", [8]]]],\n \"BQ\": [\"599\", \"00\", \"(?:[34]1|7\\\\d)\\\\d{5}\", [7], 0, 0, 0, 0, 0, 0, \"[347]\", [0, [\"(?:31(?:8[14-8]|9[14578])|416[14-9]|7(?:0[01]|7[07]|8\\\\d|9[056])\\\\d)\\\\d{3}\"]]],\n \"BR\": [\"55\", \"00(?:1[245]|2[1-35]|31|4[13]|[56]5|99)\", \"(?:[1-46-9]\\\\d\\\\d|5(?:[0-46-9]\\\\d|5[0-24679]))\\\\d{8}|[1-9]\\\\d{9}|[3589]\\\\d{8}|[34]\\\\d{7}\", [8, 9, 10, 11], [[\"(\\\\d{4})(\\\\d{4})\", \"$1-$2\", [\"300|4(?:0[02]|37)\", \"4(?:02|37)0|[34]00\"]], [\"(\\\\d{3})(\\\\d{2,3})(\\\\d{4})\", \"$1 $2 $3\", [\"(?:[358]|90)0\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1 $2-$3\", [\"(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-57]\"], \"($1)\"], [\"(\\\\d{2})(\\\\d{5})(\\\\d{4})\", \"$1 $2-$3\", [\"[16][1-9]|[2-57-9]\"], \"($1)\"]], \"0\", 0, \"(?:0|90)(?:(1[245]|2[1-35]|31|4[13]|[56]5|99)(\\\\d{10,11}))?\", \"$2\", 0, 0, [0, [\"(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])(?:7|9\\\\d)\\\\d{7}\", [10, 11]]]],\n \"BS\": [\"1\", \"011\", \"(?:242|[58]\\\\d\\\\d|900)\\\\d{7}\", [10], 0, \"1\", 0, \"1|([3-8]\\\\d{6})$\", \"242$1\", 0, \"242\", [0, [\"242(?:3(?:5[79]|7[56]|95)|4(?:[23][1-9]|4[1-35-9]|5[1-8]|6[2-8]|7\\\\d|81)|5(?:2[45]|3[35]|44|5[1-46-9]|65|77)|6[34]6|7(?:27|38)|8(?:0[1-9]|1[02-9]|2\\\\d|[89]9))\\\\d{4}\"]]],\n \"BT\": [\"975\", \"00\", \"[17]\\\\d{7}|[2-8]\\\\d{6}\", [7, 8], [[\"(\\\\d)(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[2-68]|7[246]\"]], [\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"1[67]|7\"]]], 0, 0, 0, 0, 0, 0, [0, [\"(?:1[67]|77)\\\\d{6}\", [8]]]],\n \"BW\": [\"267\", \"00\", \"(?:0800|(?:[37]|800)\\\\d)\\\\d{6}|(?:[2-6]\\\\d|90)\\\\d{5}\", [7, 8, 10], [[\"(\\\\d{2})(\\\\d{5})\", \"$1 $2\", [\"90\"]], [\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[24-6]|3[15-79]\"]], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[37]\"]], [\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"0\"]], [\"(\\\\d{3})(\\\\d{4})(\\\\d{3})\", \"$1 $2 $3\", [\"8\"]]], 0, 0, 0, 0, 0, 0, [0, [\"77200\\\\d{3}|(?:321|7(?:[1-6]\\\\d|7[013-9]|8[01]))\\\\d{5}\", [8]]]],\n \"BY\": [\"375\", \"810\", \"(?:[12]\\\\d|33|44|902)\\\\d{7}|8(?:0[0-79]\\\\d{5,7}|[1-7]\\\\d{9})|8(?:1[0-489]|[5-79]\\\\d)\\\\d{7}|8[1-79]\\\\d{6,7}|8[0-79]\\\\d{5}|8\\\\d{5}\", [6, 7, 8, 9, 10, 11], [[\"(\\\\d{3})(\\\\d{3})\", \"$1 $2\", [\"800\"], \"8 $1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2,4})\", \"$1 $2 $3\", [\"800\"], \"8 $1\"], [\"(\\\\d{4})(\\\\d{2})(\\\\d{3})\", \"$1 $2-$3\", [\"1(?:5[169]|6[3-5]|7[179])|2(?:1[35]|2[34]|3[3-5])\", \"1(?:5[169]|6(?:3[1-3]|4|5[125])|7(?:1[3-9]|7[0-24-6]|9[2-7]))|2(?:1[35]|2[34]|3[3-5])\"], \"8 0$1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2-$3-$4\", [\"1(?:[56]|7[467])|2[1-3]\"], \"8 0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2-$3-$4\", [\"[1-4]\"], \"8 0$1\"], [\"(\\\\d{3})(\\\\d{3,4})(\\\\d{4})\", \"$1 $2 $3\", [\"[89]\"], \"8 $1\"]], \"8\", 0, \"0|80?\", 0, 0, 0, [0, [\"(?:2(?:5[5-79]|9[1-9])|(?:33|44)\\\\d)\\\\d{6}\", [9]]], \"8~10\"],\n \"BZ\": [\"501\", \"00\", \"(?:0800\\\\d|[2-8])\\\\d{6}\", [7, 11], [[\"(\\\\d{3})(\\\\d{4})\", \"$1-$2\", [\"[2-8]\"]], [\"(\\\\d)(\\\\d{3})(\\\\d{4})(\\\\d{3})\", \"$1-$2-$3-$4\", [\"0\"]]], 0, 0, 0, 0, 0, 0, [0, [\"6[0-35-7]\\\\d{5}\", [7]]]],\n \"CA\": [\"1\", \"011\", \"(?:[2-8]\\\\d|90)\\\\d{8}\", [10], 0, \"1\", 0, 0, 0, 0, 0, [0, [\"(?:2(?:04|[23]6|[48]9|50)|3(?:06|43|6[578])|4(?:03|1[68]|3[178]|50|74)|5(?:06|1[49]|48|79|8[17])|6(?:04|13|39|47|72)|7(?:0[59]|78|8[02])|8(?:[06]7|19|25|73)|90[25])[2-9]\\\\d{6}\"]]],\n \"CC\": [\"61\", \"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\", \"1(?:[0-79]\\\\d|8[0-24-9])\\\\d{7}|[148]\\\\d{8}|1\\\\d{5,7}\", [6, 7, 8, 9, 10], 0, \"0\", 0, \"0|([59]\\\\d{7})$\", \"8$1\", 0, 0, [0, [\"4(?:83[0-38]|93[0-4])\\\\d{5}|4(?:[0-3]\\\\d|4[047-9]|5[0-25-9]|6[06-9]|7[02-9]|8[0-24-9]|9[0-27-9])\\\\d{6}\", [9]]], \"0011\"],\n \"CD\": [\"243\", \"00\", \"[189]\\\\d{8}|[1-68]\\\\d{6}\", [7, 9], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3\", [\"88\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{5})\", \"$1 $2\", [\"[1-6]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"1\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[89]\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [0, [\"88\\\\d{5}|(?:8[0-59]|9[017-9])\\\\d{7}\"]]],\n \"CF\": [\"236\", \"00\", \"(?:[27]\\\\d{3}|8776)\\\\d{4}\", [8], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[278]\"]]], 0, 0, 0, 0, 0, 0, [0, [\"7[0257]\\\\d{6}\"]]],\n \"CG\": [\"242\", \"00\", \"222\\\\d{6}|(?:0\\\\d|80)\\\\d{7}\", [9], [[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"801\"]], [\"(\\\\d)(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"8\"]], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[02]\"]]], 0, 0, 0, 0, 0, 0, [0, [\"026(?:1[0-5]|6[6-9])\\\\d{4}|0(?:[14-6]\\\\d\\\\d|2(?:40|5[5-8]|6[07-9]))\\\\d{5}\"]]],\n \"CH\": [\"41\", \"00\", \"8\\\\d{11}|[2-9]\\\\d{8}\", [9], [[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"8[047]|90\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[2-79]|81\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4 $5\", [\"8\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [0, [\"7[35-9]\\\\d{7}\"]]],\n \"CI\": [\"225\", \"00\", \"[02]\\\\d{9}\", [10], [[\"(\\\\d{2})(\\\\d{2})(\\\\d)(\\\\d{5})\", \"$1 $2 $3 $4\", [\"2\"]], [\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{4})\", \"$1 $2 $3 $4\", [\"0\"]]], 0, 0, 0, 0, 0, 0, [0, [\"0(?:[15]\\\\d\\\\d|7(?:[04-8][7-9]|9[78]))\\\\d{6}\"]]],\n \"CK\": [\"682\", \"00\", \"[2-578]\\\\d{4}\", [5], [[\"(\\\\d{2})(\\\\d{3})\", \"$1 $2\", [\"[2-578]\"]]], 0, 0, 0, 0, 0, 0, [0, [\"[578]\\\\d{4}\"]]],\n \"CL\": [\"56\", \"(?:0|1(?:1[0-69]|2[02-5]|5[13-58]|69|7[0167]|8[018]))0\", \"12300\\\\d{6}|6\\\\d{9,10}|[2-9]\\\\d{8}\", [9, 10, 11], [[\"(\\\\d{5})(\\\\d{4})\", \"$1 $2\", [\"219\", \"2196\"], \"($1)\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"44\"]], [\"(\\\\d)(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"2[1-3]\"], \"($1)\"], [\"(\\\\d)(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"9[2-9]\"]], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"3[2-5]|[47]|5[1-3578]|6[13-57]|8(?:0[1-9]|[1-9])\"], \"($1)\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"60|8\"]], [\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"1\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"60\"]]], 0, 0, 0, 0, 0, 0, [0, [\"2(?:1982[0-6]|3314[05-9])\\\\d{3}|(?:2(?:1(?:160|962)|3(?:2\\\\d\\\\d|3(?:[034]\\\\d|1[0-35-9]|2[1-9]|5[0-2])|600))|80[1-9]\\\\d\\\\d|9(?:3(?:[0-57-9]\\\\d\\\\d|6(?:0[02-9]|[1-9]\\\\d))|6(?:[0-8]\\\\d\\\\d|9(?:[02-79]\\\\d|1[05-9]))|7[1-9]\\\\d\\\\d|9(?:[03-9]\\\\d\\\\d|1(?:[0235-9]\\\\d|4[0-24-9])|2(?:[0-79]\\\\d|8[0-46-9]))))\\\\d{4}|(?:22|3[2-5]|[47][1-35]|5[1-3578]|6[13-57]|8[1-9]|9[2458])\\\\d{7}\", [9]]]],\n \"CM\": [\"237\", \"00\", \"[26]\\\\d{8}|88\\\\d{6,7}\", [8, 9], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"88\"]], [\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4 $5\", [\"[26]|88\"]]], 0, 0, 0, 0, 0, 0, [0, [\"(?:24[23]|6[5-9]\\\\d)\\\\d{6}\", [9]]]],\n \"CN\": [\"86\", \"00|1(?:[12]\\\\d|79)\\\\d\\\\d00\", \"1[127]\\\\d{8,9}|2\\\\d{9}(?:\\\\d{2})?|[12]\\\\d{6,7}|86\\\\d{6}|(?:1[03-689]\\\\d|6)\\\\d{7,9}|(?:[3-579]\\\\d|8[0-57-9])\\\\d{6,9}\", [7, 8, 9, 10, 11, 12], [[\"(\\\\d{2})(\\\\d{5,6})\", \"$1 $2\", [\"(?:10|2[0-57-9])[19]\", \"(?:10|2[0-57-9])(?:10|9[56])\", \"(?:10|2[0-57-9])(?:100|9[56])\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{5,6})\", \"$1 $2\", [\"3(?:[157]|35|49|9[1-68])|4(?:[17]|2[179]|6[47-9]|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])|(?:4[35]|59|85)[1-9]\", \"(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))[19]\", \"85[23](?:10|95)|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))(?:10|9[56])\", \"85[23](?:100|95)|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))(?:100|9[56])\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"(?:4|80)0\"]], [\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"10|2(?:[02-57-9]|1[1-9])\", \"10|2(?:[02-57-9]|1[1-9])\", \"10[0-79]|2(?:[02-57-9]|1[1-79])|(?:10|21)8(?:0[1-9]|[1-9])\"], \"0$1\", 1], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"3(?:[3-59]|7[02-68])|4(?:[26-8]|3[3-9]|5[2-9])|5(?:3[03-9]|[468]|7[028]|9[2-46-9])|6|7(?:[0-247]|3[04-9]|5[0-4689]|6[2368])|8(?:[1-358]|9[1-7])|9(?:[013479]|5[1-5])|(?:[34]1|55|79|87)[02-9]\"], \"0$1\", 1], [\"(\\\\d{3})(\\\\d{7,8})\", \"$1 $2\", [\"9\"]], [\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"80\"], \"0$1\", 1], [\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"[3-578]\"], \"0$1\", 1], [\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"1[3-9]\"]], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3 $4\", [\"[12]\"], \"0$1\", 1]], \"0\", 0, \"0|(1(?:[12]\\\\d|79)\\\\d\\\\d)\", 0, 0, 0, [0, [\"1740[0-5]\\\\d{6}|1(?:[38]\\\\d|4[57]|5[0-35-9]|6[25-7]|7[0-35-8]|9[0135-9])\\\\d{8}\", [11]]], \"00\"],\n \"CO\": [\"57\", \"00(?:4(?:[14]4|56)|[579])\", \"(?:1\\\\d|3)\\\\d{9}|[124-8]\\\\d{7}\", [8, 10, 11], [[\"(\\\\d)(\\\\d{7})\", \"$1 $2\", [\"[14][2-9]|[25-8]\"], \"($1)\"], [\"(\\\\d{3})(\\\\d{7})\", \"$1 $2\", [\"3\"]], [\"(\\\\d)(\\\\d{3})(\\\\d{7})\", \"$1-$2-$3\", [\"1\"], \"0$1\", 0, \"$1 $2 $3\"]], \"0\", 0, \"0([3579]|4(?:[14]4|56))?\", 0, 0, 0, [0, [\"3333(?:0(?:0\\\\d|1[0-5])|[4-9]\\\\d\\\\d)\\\\d{3}|3(?:24[2-6]|3(?:00|3[0-24-9]))\\\\d{6}|3(?:0[0-5]|1\\\\d|2[0-3]|5[01]|70)\\\\d{7}\", [10]]]],\n \"CR\": [\"506\", \"00\", \"(?:8\\\\d|90)\\\\d{8}|(?:[24-8]\\\\d{3}|3005)\\\\d{4}\", [8, 10], [[\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[2-7]|8[3-9]\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1-$2-$3\", [\"[89]\"]]], 0, 0, \"(19(?:0[0-2468]|1[09]|20|66|77|99))\", 0, 0, 0, [0, [\"(?:3005\\\\d|6500[01])\\\\d{3}|(?:5[07]|6[0-4]|7[0-3]|8[3-9])\\\\d{6}\", [8]]]],\n \"CU\": [\"53\", \"119\", \"[27]\\\\d{6,7}|[34]\\\\d{5,7}|(?:5|8\\\\d\\\\d)\\\\d{7}\", [6, 7, 8, 10], [[\"(\\\\d{2})(\\\\d{4,6})\", \"$1 $2\", [\"2[1-4]|[34]\"], \"(0$1)\"], [\"(\\\\d)(\\\\d{6,7})\", \"$1 $2\", [\"7\"], \"(0$1)\"], [\"(\\\\d)(\\\\d{7})\", \"$1 $2\", [\"5\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{7})\", \"$1 $2\", [\"8\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [0, [\"5\\\\d{7}\", [8]]]],\n \"CV\": [\"238\", \"0\", \"(?:[2-59]\\\\d\\\\d|800)\\\\d{4}\", [7], [[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3\", [\"[2-589]\"]]], 0, 0, 0, 0, 0, 0, [0, [\"(?:[34][36]|5[1-389]|9\\\\d)\\\\d{5}\"]]],\n \"CW\": [\"599\", \"00\", \"(?:[34]1|60|(?:7|9\\\\d)\\\\d)\\\\d{5}\", [7, 8], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[3467]\"]], [\"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"9[4-8]\"]]], 0, 0, 0, 0, 0, \"[69]\", [0, [\"953[01]\\\\d{4}|9(?:5[12467]|6[5-9])\\\\d{5}\"]]],\n \"CX\": [\"61\", \"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\", \"1(?:[0-79]\\\\d|8[0-24-9])\\\\d{7}|[148]\\\\d{8}|1\\\\d{5,7}\", [6, 7, 8, 9, 10], 0, \"0\", 0, \"0|([59]\\\\d{7})$\", \"8$1\", 0, 0, [0, [\"4(?:83[0-38]|93[0-4])\\\\d{5}|4(?:[0-3]\\\\d|4[047-9]|5[0-25-9]|6[06-9]|7[02-9]|8[0-24-9]|9[0-27-9])\\\\d{6}\", [9]]], \"0011\"],\n \"CY\": [\"357\", \"00\", \"(?:[279]\\\\d|[58]0)\\\\d{6}\", [8], [[\"(\\\\d{2})(\\\\d{6})\", \"$1 $2\", [\"[257-9]\"]]], 0, 0, 0, 0, 0, 0, [0, [\"9[4-79]\\\\d{6}\"]]],\n \"CZ\": [\"420\", \"00\", \"(?:[2-578]\\\\d|60)\\\\d{7}|9\\\\d{8,11}\", [9], [[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[2-8]|9[015-7]\"]], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"9\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"9\"]]], 0, 0, 0, 0, 0, 0, [0, [\"(?:60[1-8]|7(?:0[2-5]|[2379]\\\\d))\\\\d{6}\"]]],\n \"DE\": [\"49\", \"00\", \"[2579]\\\\d{5,14}|49(?:[34]0|69|8\\\\d)\\\\d\\\\d?|49(?:37|49|60|7[089]|9\\\\d)\\\\d{1,3}|49(?:[12]\\\\d|3[2-689]|7[1-7])\\\\d{1,8}|(?:1|[368]\\\\d|4[0-8])\\\\d{3,13}|49(?:[05]\\\\d|31|[46][1-8])\\\\d{1,9}\", [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], [[\"(\\\\d{2})(\\\\d{3,13})\", \"$1 $2\", [\"3[02]|40|[68]9\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3,12})\", \"$1 $2\", [\"2(?:0[1-389]|1[124]|2[18]|3[14])|3(?:[35-9][15]|4[015])|906|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1\", \"2(?:0[1-389]|12[0-8])|3(?:[35-9][15]|4[015])|906|2(?:[13][14]|2[18])|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{2,11})\", \"$1 $2\", [\"[24-6]|3(?:[3569][02-46-9]|4[2-4679]|7[2-467]|8[2-46-8])|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]\", \"[24-6]|3(?:3(?:0[1-467]|2[127-9]|3[124578]|7[1257-9]|8[1256]|9[145])|4(?:2[135]|4[13578]|9[1346])|5(?:0[14]|2[1-3589]|6[1-4]|7[13468]|8[13568])|6(?:2[1-489]|3[124-6]|6[13]|7[12579]|8[1-356]|9[135])|7(?:2[1-7]|4[145]|6[1-5]|7[1-4])|8(?:21|3[1468]|6|7[1467]|8[136])|9(?:0[12479]|2[1358]|4[134679]|6[1-9]|7[136]|8[147]|9[1468]))|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]|3[68]4[1347]|3(?:47|60)[1356]|3(?:3[46]|46|5[49])[1246]|3[4579]3[1357]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"138\"], \"0$1\"], [\"(\\\\d{5})(\\\\d{2,10})\", \"$1 $2\", [\"3\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{5,11})\", \"$1 $2\", [\"181\"], \"0$1\"], [\"(\\\\d{3})(\\\\d)(\\\\d{4,10})\", \"$1 $2 $3\", [\"1(?:3|80)|9\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{7,8})\", \"$1 $2\", [\"1[67]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{7,12})\", \"$1 $2\", [\"8\"], \"0$1\"], [\"(\\\\d{5})(\\\\d{6})\", \"$1 $2\", [\"185\", \"1850\", \"18500\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"7\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{7})\", \"$1 $2\", [\"18[68]\"], \"0$1\"], [\"(\\\\d{5})(\\\\d{6})\", \"$1 $2\", [\"15[0568]\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{7})\", \"$1 $2\", [\"15[1279]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{8})\", \"$1 $2\", [\"18\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{7,8})\", \"$1 $2 $3\", [\"1(?:6[023]|7)\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{2})(\\\\d{7})\", \"$1 $2 $3\", [\"15[279]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{8})\", \"$1 $2 $3\", [\"15\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [0, [\"15[0-25-9]\\\\d{8}|1(?:6[023]|7\\\\d)\\\\d{7,8}\", [10, 11]]]],\n \"DJ\": [\"253\", \"00\", \"(?:2\\\\d|77)\\\\d{6}\", [8], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[27]\"]]], 0, 0, 0, 0, 0, 0, [0, [\"77\\\\d{6}\"]]],\n \"DK\": [\"45\", \"00\", \"[2-9]\\\\d{7}\", [8], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[2-9]\"]]], 0, 0, 0, 0, 0, 0, [0, [\"(?:[2-7]\\\\d|8[126-9]|9[1-46-9])\\\\d{6}\"]]],\n \"DM\": [\"1\", \"011\", \"(?:[58]\\\\d\\\\d|767|900)\\\\d{7}\", [10], 0, \"1\", 0, \"1|([2-7]\\\\d{6})$\", \"767$1\", 0, \"767\", [0, [\"767(?:2(?:[2-4689]5|7[5-7])|31[5-7]|61[1-8]|70[1-6])\\\\d{4}\"]]],\n \"DO\": [\"1\", \"011\", \"(?:[58]\\\\d\\\\d|900)\\\\d{7}\", [10], 0, \"1\", 0, 0, 0, 0, \"8001|8[024]9\", [0, [\"8[024]9[2-9]\\\\d{6}\"]]],\n \"DZ\": [\"213\", \"00\", \"(?:[1-4]|[5-79]\\\\d|80)\\\\d{7}\", [8, 9], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[1-4]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"9\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[5-8]\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [0, [\"(?:5(?:4[0-29]|5\\\\d|6[01])|6(?:[569]\\\\d|7[0-6])|7[7-9]\\\\d)\\\\d{6}\", [9]]]],\n \"EC\": [\"593\", \"00\", \"1\\\\d{9,10}|(?:[2-7]|9\\\\d)\\\\d{7}\", [8, 9, 10, 11], [[\"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1 $2-$3\", [\"[2-7]\"], \"(0$1)\", 0, \"$1-$2-$3\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"9\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"1\"]]], \"0\", 0, 0, 0, 0, 0, [0, [\"964[0-2]\\\\d{5}|9(?:39|[57][89]|6[0-36-9]|[89]\\\\d)\\\\d{6}\", [9]]]],\n \"EE\": [\"372\", \"00\", \"8\\\\d{9}|[4578]\\\\d{7}|(?:[3-8]\\\\d|90)\\\\d{5}\", [7, 8, 10], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[369]|4[3-8]|5(?:[0-2]|5[0-478]|6[45])|7[1-9]|88\", \"[369]|4[3-8]|5(?:[02]|1(?:[0-8]|95)|5[0-478]|6(?:4[0-4]|5[1-589]))|7[1-9]|88\"]], [\"(\\\\d{4})(\\\\d{3,4})\", \"$1 $2\", [\"[45]|8(?:00|[1-49])\", \"[45]|8(?:00[1-9]|[1-49])\"]], [\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\", \"$1 $2 $3\", [\"7\"]], [\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"8\"]]], 0, 0, 0, 0, 0, 0, [0, [\"5(?:[0-35-9]\\\\d{6}|4(?:[0-57-9]\\\\d{5}|6(?:[0-24-9]\\\\d{4}|3(?:[0-35-9]\\\\d{3}|4000))))|8(?:1(?:0(?:000|[3-9]\\\\d\\\\d)|(?:1(?:0[236]|1\\\\d)|(?:23|[3-79]\\\\d)\\\\d)\\\\d)|2(?:0(?:000|(?:19|[24-7]\\\\d)\\\\d)|(?:(?:[124-6]\\\\d|3[5-9]|8[2-4])\\\\d|7(?:[679]\\\\d|8[13-9]))\\\\d)|[349]\\\\d{4})\\\\d\\\\d|5(?:(?:[02]\\\\d|5[0-478])\\\\d|1(?:[0-8]\\\\d|95)|6(?:4[0-4]|5[1-589]))\\\\d{3}\", [7, 8]]]],\n \"EG\": [\"20\", \"00\", \"[189]\\\\d{8,9}|[24-6]\\\\d{8}|[135]\\\\d{7}\", [8, 9, 10], [[\"(\\\\d)(\\\\d{7,8})\", \"$1 $2\", [\"[23]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{6,7})\", \"$1 $2\", [\"1[35]|[4-6]|8[2468]|9[235-7]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[189]\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [0, [\"1[0-25]\\\\d{8}\", [10]]]],\n \"EH\": [\"212\", \"00\", \"[5-8]\\\\d{8}\", [9], 0, \"0\", 0, 0, 0, 0, \"528[89]\", [0, [\"(?:6(?:[0-79]\\\\d|8[0-247-9])|7(?:0\\\\d|10|6[1267]|7[0-57]))\\\\d{6}\"]]],\n \"ER\": [\"291\", \"00\", \"[178]\\\\d{6}\", [7], [[\"(\\\\d)(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[178]\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [0, [\"(?:17[1-3]|7\\\\d\\\\d)\\\\d{4}\"]]],\n \"ES\": [\"34\", \"00\", \"[5-9]\\\\d{8}\", [9], [[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[89]00\"]], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[5-9]\"]]], 0, 0, 0, 0, 0, 0, [0, [\"(?:590[16]00\\\\d|9(?:6906(?:09|10)|7390\\\\d\\\\d))\\\\d\\\\d|(?:6\\\\d|7[1-48])\\\\d{7}\"]]],\n \"ET\": [\"251\", \"00\", \"(?:11|[2-59]\\\\d)\\\\d{7}\", [9], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[1-59]\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [0, [\"9\\\\d{8}\"]]],\n \"FI\": [\"358\", \"00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))\", \"[1-35689]\\\\d{4}|7\\\\d{10,11}|(?:[124-7]\\\\d|3[0-46-9])\\\\d{8}|[1-9]\\\\d{5,8}\", [5, 6, 7, 8, 9, 10, 11, 12], [[\"(\\\\d)(\\\\d{4,9})\", \"$1 $2\", [\"[2568][1-8]|3(?:0[1-9]|[1-9])|9\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3,7})\", \"$1 $2\", [\"[12]00|[368]|70[07-9]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{4,8})\", \"$1 $2\", [\"[1245]|7[135]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{6,10})\", \"$1 $2\", [\"7\"], \"0$1\"]], \"0\", 0, 0, 0, 0, \"1[03-79]|[2-9]\", [0, [\"4946\\\\d{2,6}|(?:4[0-8]|50)\\\\d{4,8}\", [6, 7, 8, 9, 10]]], \"00\"],\n \"FJ\": [\"679\", \"0(?:0|52)\", \"45\\\\d{5}|(?:0800\\\\d|[235-9])\\\\d{6}\", [7, 11], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[235-9]|45\"]], [\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"0\"]]], 0, 0, 0, 0, 0, 0, [0, [\"(?:[279]\\\\d|45|5[01568]|8[034679])\\\\d{5}\", [7]]], \"00\"],\n \"FK\": [\"500\", \"00\", \"[2-7]\\\\d{4}\", [5], 0, 0, 0, 0, 0, 0, 0, [0, [\"[56]\\\\d{4}\"]]],\n \"FM\": [\"691\", \"00\", \"(?:[39]\\\\d\\\\d|820)\\\\d{4}\", [7], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[389]\"]]], 0, 0, 0, 0, 0, 0, [0, [\"31(?:00[67]|208|309)\\\\d\\\\d|(?:3(?:[2357]0[1-9]|602|804|905)|(?:820|9[2-7]\\\\d)\\\\d)\\\\d{3}\"]]],\n \"FO\": [\"298\", \"00\", \"[2-9]\\\\d{5}\", [6], [[\"(\\\\d{6})\", \"$1\", [\"[2-9]\"]]], 0, 0, \"(10(?:01|[12]0|88))\", 0, 0, 0, [0, [\"(?:[27][1-9]|5\\\\d|91)\\\\d{4}\"]]],\n \"FR\": [\"33\", \"00\", \"[1-9]\\\\d{8}\", [9], [[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"8\"], \"0 $1\"], [\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4 $5\", [\"[1-79]\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [0, [\"(?:6(?:[0-24-8]\\\\d|3[0-8]|9[589])|7(?:00|[3-9]\\\\d))\\\\d{6}\"]]],\n \"GA\": [\"241\", \"00\", \"(?:[067]\\\\d|11)\\\\d{6}|[2-7]\\\\d{6}\", [7, 8], [[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[2-7]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"11|[67]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"0\"]]], 0, 0, \"0(11\\\\d{6}|6[256]\\\\d{6}|7[47]\\\\d{6})\", \"$1\", 0, 0, [0, [\"(?:0[2-7]|6[256]|7[47])\\\\d{6}|[2-7]\\\\d{6}\"]]],\n \"GB\": [\"44\", \"00\", \"[1-357-9]\\\\d{9}|[18]\\\\d{8}|8\\\\d{6}\", [7, 9, 10], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"800\", \"8001\", \"80011\", \"800111\", \"8001111\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3\", [\"845\", \"8454\", \"84546\", \"845464\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{6})\", \"$1 $2\", [\"800\"], \"0$1\"], [\"(\\\\d{5})(\\\\d{4,5})\", \"$1 $2\", [\"1(?:38|5[23]|69|76|94)\", \"1(?:(?:38|69)7|5(?:24|39)|768|946)\", \"1(?:3873|5(?:242|39[4-6])|(?:697|768)[347]|9467)\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{5,6})\", \"$1 $2\", [\"1(?:[2-69][02-9]|[78])\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"[25]|7(?:0|6[02-9])\", \"[25]|7(?:0|6(?:[03-9]|2[356]))\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{6})\", \"$1 $2\", [\"7\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[1389]\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [0, [\"7(?:457[0-57-9]|700[01]|911[028])\\\\d{5}|7(?:[1-3]\\\\d\\\\d|4(?:[0-46-9]\\\\d|5[0-689])|5(?:0[0-8]|[13-9]\\\\d|2[0-35-9])|7(?:0[1-9]|[1-7]\\\\d|8[02-9]|9[0-689])|8(?:[014-9]\\\\d|[23][0-8])|9(?:[024-9]\\\\d|1[02-9]|3[0-689]))\\\\d{6}\", [10]]], 0, \" x\"],\n \"GD\": [\"1\", \"011\", \"(?:473|[58]\\\\d\\\\d|900)\\\\d{7}\", [10], 0, \"1\", 0, \"1|([2-9]\\\\d{6})$\", \"473$1\", 0, \"473\", [0, [\"473(?:4(?:0[2-79]|1[04-9]|2[0-5]|58)|5(?:2[01]|3[3-8])|901)\\\\d{4}\"]]],\n \"GE\": [\"995\", \"00\", \"(?:[3-57]\\\\d\\\\d|800)\\\\d{6}\", [9], [[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"70\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"32\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[57]\"]], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[348]\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [0, [\"5(?:0555[5-9]|757(?:7[7-9]|8[01]))\\\\d{3}|5(?:0070|[25]222|3333)[0-4]\\\\d{3}|5(?:00(?:0\\\\d|50)|111\\\\d|(?:52|75)00|8(?:58[89]|8(?:55|88)))\\\\d{4}|(?:5(?:[14]4|5[0157-9]|68|7[0147-9]|9[1-35-9])|790)\\\\d{6}\"]]],\n \"GF\": [\"594\", \"00\", \"(?:[56]94|80\\\\d|976)\\\\d{6}\", [9], [[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[569]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"8\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [0, [\"694(?:[0-249]\\\\d|3[0-48])\\\\d{4}\"]]],\n \"GG\": [\"44\", \"00\", \"(?:1481|[357-9]\\\\d{3})\\\\d{6}|8\\\\d{6}(?:\\\\d{2})?\", [7, 9, 10], 0, \"0\", 0, \"0|([25-9]\\\\d{5})$\", \"1481$1\", 0, 0, [0, [\"7(?:(?:781|839)\\\\d|911[17])\\\\d{5}\", [10]]]],\n \"GH\": [\"233\", \"00\", \"(?:[235]\\\\d{3}|800)\\\\d{5}\", [8, 9], [[\"(\\\\d{3})(\\\\d{5})\", \"$1 $2\", [\"8\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[235]\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [0, [\"(?:2(?:[0346-8]\\\\d|5[67])|5(?:[0457]\\\\d|6[01]|9[1-9]))\\\\d{6}\", [9]]]],\n \"GI\": [\"350\", \"00\", \"(?:[25]\\\\d\\\\d|606)\\\\d{5}\", [8], [[\"(\\\\d{3})(\\\\d{5})\", \"$1 $2\", [\"2\"]]], 0, 0, 0, 0, 0, 0, [0, [\"(?:5[146-8]\\\\d|606)\\\\d{5}\"]]],\n \"GL\": [\"299\", \"00\", \"(?:19|[2-689]\\\\d)\\\\d{4}\", [6], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3\", [\"19|[2-689]\"]]], 0, 0, 0, 0, 0, 0, [0, [\"[245]\\\\d{5}\"]]],\n \"GM\": [\"220\", \"00\", \"[2-9]\\\\d{6}\", [7], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[2-9]\"]]], 0, 0, 0, 0, 0, 0, [0, [\"(?:[23679]\\\\d|5[0-389])\\\\d{5}\"]]],\n \"GN\": [\"224\", \"00\", \"722\\\\d{6}|(?:3|6\\\\d)\\\\d{7}\", [8, 9], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"3\"]], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[67]\"]]], 0, 0, 0, 0, 0, 0, [0, [\"6[0-356]\\\\d{7}\", [9]]]],\n \"GP\": [\"590\", \"00\", \"(?:590|(?:69|80)\\\\d|976)\\\\d{6}\", [9], [[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[569]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"8\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [0, [\"69(?:0\\\\d\\\\d|1(?:2[2-9]|3[0-5]))\\\\d{4}\"]]],\n \"GQ\": [\"240\", \"00\", \"222\\\\d{6}|(?:3\\\\d|55|[89]0)\\\\d{7}\", [9], [[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[235]\"]], [\"(\\\\d{3})(\\\\d{6})\", \"$1 $2\", [\"[89]\"]]], 0, 0, 0, 0, 0, 0, [0, [\"(?:222|55\\\\d)\\\\d{6}\"]]],\n \"GR\": [\"30\", \"00\", \"5005000\\\\d{3}|8\\\\d{9,10}|(?:[269]\\\\d|70)\\\\d{8}\", [10, 11], [[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"21|7\"]], [\"(\\\\d{4})(\\\\d{6})\", \"$1 $2\", [\"2(?:2|3[2-57-9]|4[2-469]|5[2-59]|6[2-9]|7[2-69]|8[2-49])|5\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[2689]\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\", \"$1 $2 $3\", [\"8\"]]], 0, 0, 0, 0, 0, 0, [0, [\"68[57-9]\\\\d{7}|(?:69|94)\\\\d{8}\", [10]]]],\n \"GT\": [\"502\", \"00\", \"(?:1\\\\d{3}|[2-7])\\\\d{7}\", [8, 11], [[\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[2-7]\"]], [\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"1\"]]], 0, 0, 0, 0, 0, 0, [0, [\"[3-5]\\\\d{7}\", [8]]]],\n \"GU\": [\"1\", \"011\", \"(?:[58]\\\\d\\\\d|671|900)\\\\d{7}\", [10], 0, \"1\", 0, \"1|([3-9]\\\\d{6})$\", \"671$1\", 0, \"671\", [0, [\"671(?:3(?:00|3[39]|4[349]|55|6[26])|4(?:00|56|7[1-9]|8[0236-9])|5(?:55|6[2-5]|88)|6(?:3[2-578]|4[24-9]|5[34]|78|8[235-9])|7(?:[0479]7|2[0167]|3[45]|8[7-9])|8(?:[2-57-9]8|6[48])|9(?:2[29]|6[79]|7[1279]|8[7-9]|9[78]))\\\\d{4}\"]]],\n \"GW\": [\"245\", \"00\", \"[49]\\\\d{8}|4\\\\d{6}\", [7, 9], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"40\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[49]\"]]], 0, 0, 0, 0, 0, 0, [0, [\"9(?:5\\\\d|6[569]|77)\\\\d{6}\", [9]]]],\n \"GY\": [\"592\", \"001\", \"(?:862\\\\d|9008)\\\\d{3}|(?:[2-46]\\\\d|77)\\\\d{5}\", [7], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[2-46-9]\"]]], 0, 0, 0, 0, 0, 0, [0, [\"6\\\\d{6}\"]]],\n \"HK\": [\"852\", \"00(?:30|5[09]|[126-9]?)\", \"8[0-46-9]\\\\d{6,7}|9\\\\d{4}(?:\\\\d(?:\\\\d(?:\\\\d{4})?)?)?|(?:[235-79]\\\\d|46)\\\\d{6}\", [5, 6, 7, 8, 9, 11], [[\"(\\\\d{3})(\\\\d{2,5})\", \"$1 $2\", [\"900\", \"9003\"]], [\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[2-7]|8[1-4]|9(?:0[1-9]|[1-8])\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"8\"]], [\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"9\"]]], 0, 0, 0, 0, 0, 0, [0, [\"(?:46(?:0[0-7]|1[0-6]|4[0-57-9]|5[0-8]|6[0-4])|5730|6(?:26[013-7]|66[0-3])|70(?:7[1-5]|8[0-4])|848[015-9]|929[03-9])\\\\d{4}|(?:46[23]|5(?:[1-59][0-46-9]|6[0-4689]|7[0-2469])|6(?:0[1-9]|[13-59]\\\\d|[268][0-57-9]|7[0-79])|849|9(?:0[1-9]|1[02-9]|[2358][0-8]|[467]\\\\d))\\\\d{5}\", [8]]], \"00\"],\n \"HN\": [\"504\", \"00\", \"8\\\\d{10}|[237-9]\\\\d{7}\", [8, 11], [[\"(\\\\d{4})(\\\\d{4})\", \"$1-$2\", [\"[237-9]\"]]], 0, 0, 0, 0, 0, 0, [0, [\"[37-9]\\\\d{7}\", [8]]]],\n \"HR\": [\"385\", \"00\", \"(?:[24-69]\\\\d|3[0-79])\\\\d{7}|80\\\\d{5,7}|[1-79]\\\\d{7}|6\\\\d{5,6}\", [6, 7, 8, 9], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2,3})\", \"$1 $2 $3\", [\"6[01]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\", \"$1 $2 $3\", [\"8\"], \"0$1\"], [\"(\\\\d)(\\\\d{4})(\\\\d{3})\", \"$1 $2 $3\", [\"1\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[67]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"9\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[2-5]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"8\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [0, [\"9(?:751\\\\d{5}|8\\\\d{6,7})|9(?:0[1-9]|[1259]\\\\d|7[0679])\\\\d{6}\", [8, 9]]]],\n \"HT\": [\"509\", \"00\", \"[2-489]\\\\d{7}\", [8], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\", \"$1 $2 $3\", [\"[2-489]\"]]], 0, 0, 0, 0, 0, 0, [0, [\"[34]\\\\d{7}\"]]],\n \"HU\": [\"36\", \"00\", \"[235-7]\\\\d{8}|[1-9]\\\\d{7}\", [8, 9], [[\"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"1\"], \"(06 $1)\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[27][2-9]|3[2-7]|4[24-9]|5[2-79]|6|8[2-57-9]|9[2-69]\"], \"(06 $1)\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[2-9]\"], \"06 $1\"]], \"06\", 0, 0, 0, 0, 0, [0, [\"(?:[257]0|3[01])\\\\d{7}\", [9]]]],\n \"ID\": [\"62\", \"00[89]\", \"(?:(?:00[1-9]|8\\\\d)\\\\d{4}|[1-36])\\\\d{6}|00\\\\d{10}|[1-9]\\\\d{8,10}|[2-9]\\\\d{7}\", [7, 8, 9, 10, 11, 12, 13], [[\"(\\\\d)(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"15\"]], [\"(\\\\d{2})(\\\\d{5,9})\", \"$1 $2\", [\"2[124]|[36]1\"], \"(0$1)\"], [\"(\\\\d{3})(\\\\d{5,7})\", \"$1 $2\", [\"800\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{5,8})\", \"$1 $2\", [\"[2-79]\"], \"(0$1)\"], [\"(\\\\d{3})(\\\\d{3,4})(\\\\d{3})\", \"$1-$2-$3\", [\"8[1-35-9]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{6,8})\", \"$1 $2\", [\"1\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"804\"], \"0$1\"], [\"(\\\\d{3})(\\\\d)(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"80\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\", \"$1-$2-$3\", [\"8\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [0, [\"8[1-35-9]\\\\d{7,10}\", [9, 10, 11, 12]]]],\n \"IE\": [\"353\", \"00\", \"(?:1\\\\d|[2569])\\\\d{6,8}|4\\\\d{6,9}|7\\\\d{8}|8\\\\d{8,9}\", [7, 8, 9, 10], [[\"(\\\\d{2})(\\\\d{5})\", \"$1 $2\", [\"2[24-9]|47|58|6[237-9]|9[35-9]\"], \"(0$1)\"], [\"(\\\\d{3})(\\\\d{5})\", \"$1 $2\", [\"[45]0\"], \"(0$1)\"], [\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\", \"$1 $2 $3\", [\"1\"], \"(0$1)\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[2569]|4[1-69]|7[14]\"], \"(0$1)\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"70\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"81\"], \"(0$1)\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[78]\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"1\"]], [\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"4\"], \"(0$1)\"], [\"(\\\\d{2})(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3 $4\", [\"8\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [0, [\"8(?:22|[35-9]\\\\d)\\\\d{6}\", [9]]]],\n \"IL\": [\"972\", \"0(?:0|1[2-9])\", \"1\\\\d{6}(?:\\\\d{3,5})?|[57]\\\\d{8}|[1-489]\\\\d{7}\", [7, 8, 9, 10, 11, 12], [[\"(\\\\d{4})(\\\\d{3})\", \"$1-$2\", [\"125\"]], [\"(\\\\d{4})(\\\\d{2})(\\\\d{2})\", \"$1-$2-$3\", [\"121\"]], [\"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1-$2-$3\", [\"[2-489]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1-$2-$3\", [\"[57]\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\", \"$1-$2-$3\", [\"12\"]], [\"(\\\\d{4})(\\\\d{6})\", \"$1-$2\", [\"159\"]], [\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1-$2-$3-$4\", [\"1[7-9]\"]], [\"(\\\\d{3})(\\\\d{1,2})(\\\\d{3})(\\\\d{4})\", \"$1-$2 $3-$4\", [\"15\"]]], \"0\", 0, 0, 0, 0, 0, [0, [\"5(?:(?:[02368]\\\\d|[19][2-9]|4[1-9])\\\\d|5(?:01|1[79]|2[2-9]|3[0-3]|4[34]|5[015689]|6[6-8]|7[0-267]|8[7-9]|9[1-9]))\\\\d{5}\", [9]]]],\n \"IM\": [\"44\", \"00\", \"1624\\\\d{6}|(?:[3578]\\\\d|90)\\\\d{8}\", [10], 0, \"0\", 0, \"0|([25-8]\\\\d{5})$\", \"1624$1\", 0, \"74576|(?:16|7[56])24\", [0, [\"76245[06]\\\\d{4}|7(?:4576|[59]24\\\\d|624[0-4689])\\\\d{5}\"]]],\n \"IN\": [\"91\", \"00\", \"(?:000800|[2-9]\\\\d\\\\d)\\\\d{7}|1\\\\d{7,12}\", [8, 9, 10, 11, 12, 13], [[\"(\\\\d{8})\", \"$1\", [\"5(?:0|2[23]|3[03]|[67]1|88)\", \"5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|888)\", \"5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|8888)\"], 0, 1], [\"(\\\\d{4})(\\\\d{4,5})\", \"$1 $2\", [\"180\", \"1800\"], 0, 1], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"140\"], 0, 1], [\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"11|2[02]|33|4[04]|79[1-7]|80[2-46]\", \"11|2[02]|33|4[04]|79(?:[1-6]|7[19])|80(?:[2-4]|6[0-589])\", \"11|2[02]|33|4[04]|79(?:[124-6]|3(?:[02-9]|1[0-24-9])|7(?:1|9[1-6]))|80(?:[2-4]|6[0-589])\"], \"0$1\", 1], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"1(?:2[0-249]|3[0-25]|4[145]|[68]|7[1257])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|78|8[1568])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|5[12]|[78]1)|6(?:12|[2-4]1|5[17]|6[13]|80)|7(?:12|3[134]|4[47]|61|88)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91)|(?:43|59|75)[15]|(?:1[59]|29|67|72)[14]\", \"1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|674|7(?:(?:2[14]|3[34]|5[15])[2-6]|61[346]|88[0-8])|8(?:70[2-6]|84[235-7]|91[3-7])|(?:1(?:29|60|8[06])|261|552|6(?:12|[2-47]1|5[17]|6[13]|80)|7(?:12|31|4[47])|8(?:16|2[014]|3[126]|6[136]|7[78]|83))[2-7]\", \"1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|6(?:12(?:[2-6]|7[0-8])|74[2-7])|7(?:(?:2[14]|5[15])[2-6]|3171|61[346]|88(?:[2-7]|82))|8(?:70[2-6]|84(?:[2356]|7[19])|91(?:[3-6]|7[19]))|73[134][2-6]|(?:74[47]|8(?:16|2[014]|3[126]|6[136]|7[78]|83))(?:[2-6]|7[19])|(?:1(?:29|60|8[06])|261|552|6(?:[2-4]1|5[17]|6[13]|7(?:1|4[0189])|80)|7(?:12|88[01]))[2-7]\"], \"0$1\", 1], [\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2[2457-9]|3[2-5]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1[013-9]|28|3[129]|4[1-35689]|5[29]|6[02-5]|70)|807\", \"1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2(?:[2457]|84|95)|3(?:[2-4]|55)|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1(?:[013-8]|9[6-9])|28[6-8]|3(?:17|2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4|5[0-367])|70[13-7])|807[19]\", \"1(?:[2-479]|5(?:[0236-9]|5[013-9]))|[2-5]|6(?:2(?:84|95)|355|83)|73179|807(?:1|9[1-3])|(?:1552|6(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[124-6])\\\\d|7(?:1(?:[013-8]\\\\d|9[6-9])|28[6-8]|3(?:2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]\\\\d|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4\\\\d|5[0-367])|70[13-7]))[2-7]\"], \"0$1\", 1], [\"(\\\\d{5})(\\\\d{5})\", \"$1 $2\", [\"[6-9]\"], \"0$1\", 1], [\"(\\\\d{4})(\\\\d{2,4})(\\\\d{4})\", \"$1 $2 $3\", [\"1(?:6|8[06])\", \"1(?:6|8[06]0)\"], 0, 1], [\"(\\\\d{4})(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"18\"], 0, 1]], \"0\", 0, 0, 0, 0, 0, [0, [\"(?:61279|7(?:887[02-9]|9(?:313|79[07-9]))|8(?:079[04-9]|(?:84|91)7[02-8]))\\\\d{5}|(?:6(?:12|[2-47]1|5[17]|6[13]|80)[0189]|7(?:1(?:2[0189]|9[0-5])|2(?:[14][017-9]|8[0-59])|3(?:2[5-8]|[34][017-9]|9[016-9])|4(?:1[015-9]|[29][89]|39|8[389])|5(?:[15][017-9]|2[04-9]|9[7-9])|6(?:0[0-47]|1[0-257-9]|2[0-4]|3[19]|5[4589])|70[0289]|88[089]|97[02-8])|8(?:0(?:6[67]|7[02-8])|70[017-9]|84[01489]|91[0-289]))\\\\d{6}|(?:7(?:31|4[47])|8(?:16|2[014]|3[126]|6[136]|7[78]|83))(?:[0189]\\\\d|7[02-8])\\\\d{5}|(?:6(?:[09]\\\\d|1[04679]|2[03689]|3[05-9]|4[0489]|50|6[069]|7[07]|8[7-9])|7(?:0\\\\d|2[0235-79]|3[05-8]|40|5[0346-8]|6[6-9]|7[1-9]|8[0-79]|9[089])|8(?:0[01589]|1[0-57-9]|2[235-9]|3[03-57-9]|[45]\\\\d|6[02457-9]|7[1-69]|8[0-25-9]|9[02-9])|9\\\\d\\\\d)\\\\d{7}|(?:6(?:(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|8[124-6])\\\\d|7(?:[235689]\\\\d|4[0189]))|7(?:1(?:[013-8]\\\\d|9[6-9])|28[6-8]|3(?:2[0-49]|9[2-5])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]\\\\d|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4\\\\d|5[0-367])|70[13-7]|881))[0189]\\\\d{5}\", [10]]]],\n \"IO\": [\"246\", \"00\", \"3\\\\d{6}\", [7], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"3\"]]], 0, 0, 0, 0, 0, 0, [0, [\"38\\\\d{5}\"]]],\n \"IQ\": [\"964\", \"00\", \"(?:1|7\\\\d\\\\d)\\\\d{7}|[2-6]\\\\d{7,8}\", [8, 9, 10], [[\"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"1\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[2-6]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"7\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [0, [\"7[3-9]\\\\d{8}\", [10]]]],\n \"IR\": [\"98\", \"00\", \"[1-9]\\\\d{9}|(?:[1-8]\\\\d\\\\d|9)\\\\d{3,4}\", [4, 5, 6, 7, 10], [[\"(\\\\d{4,5})\", \"$1\", [\"96\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{4,5})\", \"$1 $2\", [\"(?:1[137]|2[13-68]|3[1458]|4[145]|5[1468]|6[16]|7[1467]|8[13467])[12689]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"9\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"[1-8]\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [0, [\"9(?:(?:0(?:[0-35]\\\\d|4[4-6])|(?:[13]\\\\d|2[0-3])\\\\d)\\\\d|9(?:(?:[0-2]\\\\d|3[01]|4[0145])\\\\d|5[15]0|8(?:1\\\\d|88)|9(?:0[013]|[19]\\\\d|21|77|8[7-9])))\\\\d{5}\", [10]]]],\n \"IS\": [\"354\", \"00|1(?:0(?:01|[12]0)|100)\", \"(?:38\\\\d|[4-9])\\\\d{6}\", [7, 9], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[4-9]\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"3\"]]], 0, 0, 0, 0, 0, 0, [0, [\"(?:38[589]\\\\d\\\\d|6(?:1[1-8]|2[0-6]|3[027-9]|4[014679]|5[0159]|6[0-69]|70|8[06-8]|9\\\\d)|7(?:5[057]|[6-9]\\\\d)|8(?:2[0-59]|[3-69]\\\\d|8[28]))\\\\d{4}\"]], \"00\"],\n \"IT\": [\"39\", \"00\", \"0\\\\d{5,10}|3[0-8]\\\\d{7,10}|55\\\\d{8}|8\\\\d{5}(?:\\\\d{2,4})?|(?:1\\\\d|39)\\\\d{7,8}\", [6, 7, 8, 9, 10, 11], [[\"(\\\\d{2})(\\\\d{4,6})\", \"$1 $2\", [\"0[26]\"]], [\"(\\\\d{3})(\\\\d{3,6})\", \"$1 $2\", [\"0[13-57-9][0159]|8(?:03|4[17]|9[245])\", \"0[13-57-9][0159]|8(?:03|4[17]|9(?:2|[45][0-4]))\"]], [\"(\\\\d{4})(\\\\d{2,6})\", \"$1 $2\", [\"0(?:[13-579][2-46-8]|8[236-8])\"]], [\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"894\"]], [\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\", \"$1 $2 $3\", [\"0[26]|5\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"1[4679]|[38]\"]], [\"(\\\\d{3})(\\\\d{3,4})(\\\\d{4})\", \"$1 $2 $3\", [\"0[13-57-9][0159]\"]], [\"(\\\\d{2})(\\\\d{4})(\\\\d{5})\", \"$1 $2 $3\", [\"0[26]\"]], [\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"0\"]], [\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\", \"$1 $2 $3\", [\"3\"]]], 0, 0, 0, 0, 0, 0, [0, [\"3[1-9]\\\\d{8}|3[2-9]\\\\d{7}\", [9, 10]]]],\n \"JE\": [\"44\", \"00\", \"1534\\\\d{6}|(?:[3578]\\\\d|90)\\\\d{8}\", [10], 0, \"0\", 0, \"0|([0-24-8]\\\\d{5})$\", \"1534$1\", 0, 0, [0, [\"7(?:(?:(?:50|82)9|937)\\\\d|7(?:00[378]|97[7-9]))\\\\d{5}\"]]],\n \"JM\": [\"1\", \"011\", \"(?:[58]\\\\d\\\\d|658|900)\\\\d{7}\", [10], 0, \"1\", 0, 0, 0, 0, \"658|876\", [0, [\"(?:658295|876(?:2(?:0[6-9]|[14-9]\\\\d|2[013-9]|3[7-9])|[348]\\\\d\\\\d|5(?:0[1-9]|[1-9]\\\\d)|6(?:4[89]|6[67])|7(?:0[07]|7\\\\d|8[1-47-9]|9[0-36-9])|9(?:[01]9|9[0579])))\\\\d{4}\"]]],\n \"JO\": [\"962\", \"00\", \"(?:(?:[2689]|7\\\\d)\\\\d|32|53)\\\\d{6}\", [8, 9], [[\"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[2356]|87\"], \"(0$1)\"], [\"(\\\\d{3})(\\\\d{5,6})\", \"$1 $2\", [\"[89]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{7})\", \"$1 $2\", [\"70\"], \"0$1\"], [\"(\\\\d)(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"7\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [0, [\"7(?:[78][0-25-9]|9\\\\d)\\\\d{6}\", [9]]]],\n \"JP\": [\"81\", \"010\", \"00[1-9]\\\\d{6,14}|[257-9]\\\\d{9}|(?:00|[1-9]\\\\d\\\\d)\\\\d{6}\", [8, 9, 10, 11, 12, 13, 14, 15, 16, 17], [[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1-$2-$3\", [\"(?:12|57|99)0\"], \"0$1\"], [\"(\\\\d{4})(\\\\d)(\\\\d{4})\", \"$1-$2-$3\", [\"1(?:26|3[79]|4[56]|5[4-68]|6[3-5])|499|5(?:76|97)|746|8(?:3[89]|47|51|63)|9(?:49|80|9[16])\", \"1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:76|97)9|7468|8(?:3(?:8[7-9]|96)|477|51[2-9]|636)|9(?:496|802|9(?:1[23]|69))|1(?:45|58)[67]\", \"1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:769|979[2-69])|7468|8(?:3(?:8[7-9]|96[2457-9])|477|51[2-9]|636[457-9])|9(?:496|802|9(?:1[23]|69))|1(?:45|58)[67]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1-$2-$3\", [\"60\"], \"0$1\"], [\"(\\\\d)(\\\\d{4})(\\\\d{4})\", \"$1-$2-$3\", [\"[36]|4(?:2[09]|7[01])\", \"[36]|4(?:2(?:0|9[02-69])|7(?:0[019]|1))\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1-$2-$3\", [\"1(?:1|5[45]|77|88|9[69])|2(?:2[1-37]|3[0-269]|4[59]|5|6[24]|7[1-358]|8[1369]|9[0-38])|4(?:[28][1-9]|3[0-57]|[45]|6[248]|7[2-579]|9[29])|5(?:2|3[045]|4[0-369]|5[29]|8[02389]|9[0-389])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9[2-6])|8(?:2[124589]|3[27-9]|49|51|6|7[0-468]|8[68]|9[019])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9[1-489])\", \"1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2(?:[127]|3[014-9])|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9[19])|62|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|8[1-9])|5(?:2|3[045]|4[0-369]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0-2469])|49|51|6(?:[0-24]|36|5[0-3589]|72|9[01459])|7[0-468]|8[68])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3[34]|4[0178]))|(?:49|55|83)[29]|(?:264|837)[016-9]|2(?:57|93)[015-9]|(?:25[0468]|422|838)[01]|(?:47[59]|59[89]|8(?:6[68]|9))[019]\", \"1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3[045]|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0169])|3(?:[29]|7(?:[017-9]|6[6-8]))|49|51|6(?:[0-24]|36[23]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|72|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:8294|96)[1-3]|2(?:57|93)[015-9]|(?:223|8699)[014-9]|(?:25[0468]|422|838)[01]|(?:48|8292|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]\", \"1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|7[015-9]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17|3[015-9]))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3[045]|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9(?:[019]|4[1-3]|6(?:[0-47-9]|5[01346-9])))|3(?:[29]|7(?:[017-9]|6[6-8]))|49|51|6(?:[0-24]|36[23]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|72|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:223|8699)[014-9]|(?:25[0468]|422|838)[01]|(?:48|829(?:2|66)|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\", \"$1-$2-$3\", [\"[14]|[289][2-9]|5[3-9]|7[2-4679]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1-$2-$3\", [\"800\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1-$2-$3\", [\"[257-9]\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [0, [\"[7-9]0[1-9]\\\\d{7}\", [10]]]],\n \"KE\": [\"254\", \"000\", \"(?:[17]\\\\d\\\\d|900)\\\\d{6}|(?:2|80)0\\\\d{6,7}|[4-6]\\\\d{6,8}\", [7, 8, 9, 10], [[\"(\\\\d{2})(\\\\d{5,7})\", \"$1 $2\", [\"[24-6]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{6})\", \"$1 $2\", [\"[17]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[89]\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [0, [\"(?:1(?:0[0-6]|1[0-5]|2[014])|7\\\\d\\\\d)\\\\d{6}\", [9]]]],\n \"KG\": [\"996\", \"00\", \"8\\\\d{9}|(?:[235-8]\\\\d|99)\\\\d{7}\", [9, 10], [[\"(\\\\d{4})(\\\\d{5})\", \"$1 $2\", [\"3(?:1[346]|[24-79])\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[235-79]|88\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d)(\\\\d{2,3})\", \"$1 $2 $3 $4\", [\"8\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [0, [\"312(?:58\\\\d|973)\\\\d{3}|(?:2(?:0[0-35]|2\\\\d)|5[0-24-7]\\\\d|7(?:[07]\\\\d|55)|880|99[05-9])\\\\d{6}\", [9]]]],\n \"KH\": [\"855\", \"00[14-9]\", \"1\\\\d{9}|[1-9]\\\\d{7,8}\", [8, 9, 10], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[1-9]\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"1\"]]], \"0\", 0, 0, 0, 0, 0, [0, [\"(?:(?:1[28]|3[18]|9[67])\\\\d|6[016-9]|7(?:[07-9]|[16]\\\\d)|8(?:[013-79]|8\\\\d))\\\\d{6}|(?:1\\\\d|9[0-57-9])\\\\d{6}|(?:2[3-6]|3[2-6]|4[2-4]|[5-7][2-5])48\\\\d{5}\", [8, 9]]]],\n \"KI\": [\"686\", \"00\", \"(?:[37]\\\\d|6[0-79])\\\\d{6}|(?:[2-48]\\\\d|50)\\\\d{3}\", [5, 8], 0, \"0\", 0, 0, 0, 0, 0, [0, [\"(?:63\\\\d{3}|73(?:0[0-5]\\\\d|140))\\\\d{3}|[67]200[01]\\\\d{3}\", [8]]]],\n \"KM\": [\"269\", \"00\", \"[3478]\\\\d{6}\", [7], [[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3\", [\"[3478]\"]]], 0, 0, 0, 0, 0, 0, [0, [\"[34]\\\\d{6}\"]]],\n \"KN\": [\"1\", \"011\", \"(?:[58]\\\\d\\\\d|900)\\\\d{7}\", [10], 0, \"1\", 0, \"1|([2-7]\\\\d{6})$\", \"869$1\", 0, \"869\", [0, [\"869(?:48[89]|55[6-8]|66\\\\d|76[02-7])\\\\d{4}\"]]],\n \"KP\": [\"850\", \"00|99\", \"85\\\\d{6}|(?:19\\\\d|[2-7])\\\\d{7}\", [8, 10], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"8\"], \"0$1\"], [\"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[2-7]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"1\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [0, [\"19[1-3]\\\\d{7}\", [10]]]],\n \"KR\": [\"82\", \"00(?:[125689]|3(?:[46]5|91)|7(?:00|27|3|55|6[126]))\", \"00[1-9]\\\\d{8,11}|(?:[12]|5\\\\d{3})\\\\d{7}|[13-6]\\\\d{9}|(?:[1-6]\\\\d|80)\\\\d{7}|[3-6]\\\\d{4,5}|(?:00|7)0\\\\d{8}\", [5, 6, 8, 9, 10, 11, 12, 13, 14], [[\"(\\\\d{2})(\\\\d{3,4})\", \"$1-$2\", [\"(?:3[1-3]|[46][1-4]|5[1-5])1\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{4})\", \"$1-$2\", [\"1\"]], [\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\", \"$1-$2-$3\", [\"2\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1-$2-$3\", [\"60|8\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\", \"$1-$2-$3\", [\"[1346]|5[1-5]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1-$2-$3\", [\"[57]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{5})(\\\\d{4})\", \"$1-$2-$3\", [\"5\"], \"0$1\"]], \"0\", 0, \"0(8(?:[1-46-8]|5\\\\d\\\\d))?\", 0, 0, 0, [0, [\"1(?:05(?:[0-8]\\\\d|9[0-6])|22[13]\\\\d)\\\\d{4,5}|1(?:0[1-46-9]|[16-9]\\\\d|2[013-9])\\\\d{6,7}\", [9, 10]]]],\n \"KW\": [\"965\", \"00\", \"(?:18|[2569]\\\\d\\\\d)\\\\d{5}\", [7, 8], [[\"(\\\\d{4})(\\\\d{3,4})\", \"$1 $2\", [\"[169]|2(?:[235]|4[1-35-9])|52\"]], [\"(\\\\d{3})(\\\\d{5})\", \"$1 $2\", [\"[25]\"]]], 0, 0, 0, 0, 0, 0, [0, [\"(?:5(?:2(?:22|5[25])|88[58])|6(?:222|333|444|70[013-9]|888|93[039])|9(?:11[01]|3(?:00|33)|500))\\\\d{4}|(?:5(?:[05]\\\\d|1[0-7]|6[56])|6(?:0[034679]|5[015-9]|6\\\\d|7[67]|9[069])|9(?:0[09]|22|[4679]\\\\d|55|8[057-9]))\\\\d{5}\", [8]]]],\n \"KY\": [\"1\", \"011\", \"(?:345|[58]\\\\d\\\\d|900)\\\\d{7}\", [10], 0, \"1\", 0, \"1|([2-9]\\\\d{6})$\", \"345$1\", 0, \"345\", [0, [\"345(?:32[1-9]|42[0-4]|5(?:1[67]|2[5-79]|4[6-9]|50|76)|649|9(?:1[679]|2[2-9]|3[06-9]|90))\\\\d{4}\"]]],\n \"KZ\": [\"7\", \"810\", \"33622\\\\d{5}|(?:7\\\\d|80)\\\\d{8}\", [10], 0, \"8\", 0, 0, 0, 0, \"33|7\", [0, [\"7(?:0[0-25-8]|47|6[0-4]|7[15-8]|85)\\\\d{7}\"]], \"8~10\"],\n \"LA\": [\"856\", \"00\", \"[23]\\\\d{9}|3\\\\d{8}|(?:[235-8]\\\\d|41)\\\\d{6}\", [8, 9, 10], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"2[13]|3[14]|[4-8]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"30[013-9]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"[23]\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [0, [\"(?:20(?:[239]\\\\d|5[24-9]|7[6-8])|302\\\\d)\\\\d{6}\", [10]]]],\n \"LB\": [\"961\", \"00\", \"[27-9]\\\\d{7}|[13-9]\\\\d{6}\", [7, 8], [[\"(\\\\d)(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[13-69]|7(?:[2-57]|62|8[0-7]|9[04-9])|8[02-9]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[27-9]\"]]], \"0\", 0, 0, 0, 0, 0, [0, [\"793(?:[01]\\\\d|2[0-4])\\\\d{3}|(?:(?:3|81)\\\\d|7(?:[01]\\\\d|6[013-9]|8[89]|9[12]))\\\\d{5}\"]]],\n \"LC\": [\"1\", \"011\", \"(?:[58]\\\\d\\\\d|758|900)\\\\d{7}\", [10], 0, \"1\", 0, \"1|([2-8]\\\\d{6})$\", \"758$1\", 0, \"758\", [0, [\"758(?:28[4-7]|384|4(?:6[01]|8[4-9])|5(?:1[89]|20|84)|7(?:1[2-9]|2\\\\d|3[0-3])|812)\\\\d{4}\"]]],\n \"LI\": [\"423\", \"00\", \"90\\\\d{5}|(?:[2378]|6\\\\d\\\\d)\\\\d{6}\", [7, 9], [[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3\", [\"[237-9]\"]], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"69\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"6\"]]], \"0\", 0, \"0|(1001)\", 0, 0, 0, [0, [\"(?:6(?:4(?:69|[7-9]\\\\d)|5[0-4]\\\\d|6(?:[024]\\\\d|[17]0|3[7-9]))\\\\d|7(?:[37-9]\\\\d|42|56))\\\\d{4}\"]]],\n \"LK\": [\"94\", \"00\", \"[1-9]\\\\d{8}\", [9], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"7\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[1-689]\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [0, [\"7(?:[0-25-8]\\\\d|4[01])\\\\d{6}\"]]],\n \"LR\": [\"231\", \"00\", \"(?:2|33|5\\\\d|77|88)\\\\d{7}|[4-6]\\\\d{6}\", [7, 8, 9], [[\"(\\\\d)(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[4-6]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"2\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[3578]\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [0, [\"(?:(?:330|555|(?:77|88)\\\\d)\\\\d|4[67])\\\\d{5}|[56]\\\\d{6}\", [7, 9]]]],\n \"LS\": [\"266\", \"00\", \"(?:[256]\\\\d\\\\d|800)\\\\d{5}\", [8], [[\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[2568]\"]]], 0, 0, 0, 0, 0, 0, [0, [\"[56]\\\\d{7}\"]]],\n \"LT\": [\"370\", \"00\", \"(?:[3469]\\\\d|52|[78]0)\\\\d{6}\", [8], [[\"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"52[0-7]\"], \"(8-$1)\", 1], [\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3\", [\"[7-9]\"], \"8 $1\", 1], [\"(\\\\d{2})(\\\\d{6})\", \"$1 $2\", [\"37|4(?:[15]|6[1-8])\"], \"(8-$1)\", 1], [\"(\\\\d{3})(\\\\d{5})\", \"$1 $2\", [\"[3-6]\"], \"(8-$1)\", 1]], \"8\", 0, \"[08]\", 0, 0, 0, [0, [\"6\\\\d{7}\"]]],\n \"LU\": [\"352\", \"00\", \"35[013-9]\\\\d{4,8}|6\\\\d{8}|35\\\\d{2,4}|(?:[2457-9]\\\\d|3[0-46-9])\\\\d{2,9}\", [4, 5, 6, 7, 8, 9, 10, 11], [[\"(\\\\d{2})(\\\\d{3})\", \"$1 $2\", [\"2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])\"]], [\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3\", [\"2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])\"]], [\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3\", [\"20[2-689]\"]], [\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,2})\", \"$1 $2 $3 $4\", [\"2(?:[0367]|4[3-8])\"]], [\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3\", [\"80[01]|90[015]\"]], [\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"20\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"6\"]], [\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,2})\", \"$1 $2 $3 $4 $5\", [\"2(?:[0367]|4[3-8])\"]], [\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,5})\", \"$1 $2 $3 $4\", [\"[3-57]|8[13-9]|9(?:0[89]|[2-579])|(?:2|80)[2-9]\"]]], 0, 0, \"(15(?:0[06]|1[12]|[35]5|4[04]|6[26]|77|88|99)\\\\d)\", 0, 0, 0, [0, [\"6(?:[269][18]|5[1568]|7[189]|81)\\\\d{6}\", [9]]]],\n \"LV\": [\"371\", \"00\", \"(?:[268]\\\\d|90)\\\\d{6}\", [8], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[269]|8[01]\"]]], 0, 0, 0, 0, 0, 0, [0, [\"2\\\\d{7}\"]]],\n \"LY\": [\"218\", \"00\", \"[2-9]\\\\d{8}\", [9], [[\"(\\\\d{2})(\\\\d{7})\", \"$1-$2\", [\"[2-9]\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [0, [\"9[1-6]\\\\d{7}\"]]],\n \"MA\": [\"212\", \"00\", \"[5-8]\\\\d{8}\", [9], [[\"(\\\\d{5})(\\\\d{4})\", \"$1-$2\", [\"5(?:29|38)\", \"5(?:29|38)[89]\", \"5(?:29|38)[89]0\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"5[45]\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{5})\", \"$1-$2\", [\"5(?:2[2-489]|3[5-9]|9)|892\", \"5(?:2(?:[2-49]|8[235-9])|3[5-9]|9)|892\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{7})\", \"$1-$2\", [\"8\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{6})\", \"$1-$2\", [\"[5-7]\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [0, [\"(?:6(?:[0-79]\\\\d|8[0-247-9])|7(?:0\\\\d|10|6[1267]|7[0-57]))\\\\d{6}\"]]],\n \"MC\": [\"377\", \"00\", \"(?:[3489]|6\\\\d)\\\\d{7}\", [8, 9], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"4\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[389]\"]], [\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4 $5\", [\"6\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [0, [\"4(?:[46]\\\\d|5[1-9])\\\\d{5}|(?:3|6\\\\d)\\\\d{7}\"]]],\n \"MD\": [\"373\", \"00\", \"(?:[235-7]\\\\d|[89]0)\\\\d{6}\", [8], [[\"(\\\\d{3})(\\\\d{5})\", \"$1 $2\", [\"[89]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"22|3\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3\", [\"[25-7]\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [0, [\"562\\\\d{5}|(?:6\\\\d|7[16-9])\\\\d{6}\"]]],\n \"ME\": [\"382\", \"00\", \"(?:20|[3-79]\\\\d)\\\\d{6}|80\\\\d{6,7}\", [8, 9], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[2-9]\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [0, [\"6(?:[07-9]\\\\d|3[024]|6[0-25])\\\\d{5}\", [8]]]],\n \"MF\": [\"590\", \"00\", \"(?:590|(?:69|80)\\\\d|976)\\\\d{6}\", [9], 0, \"0\", 0, 0, 0, 0, 0, [0, [\"69(?:0\\\\d\\\\d|1(?:2[2-9]|3[0-5]))\\\\d{4}\"]]],\n \"MG\": [\"261\", \"00\", \"[23]\\\\d{8}\", [9], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[23]\"], \"0$1\"]], \"0\", 0, \"0|([24-9]\\\\d{6})$\", \"20$1\", 0, 0, [0, [\"3[2-49]\\\\d{7}\"]]],\n \"MH\": [\"692\", \"011\", \"329\\\\d{4}|(?:[256]\\\\d|45)\\\\d{5}\", [7], [[\"(\\\\d{3})(\\\\d{4})\", \"$1-$2\", [\"[2-6]\"]]], \"1\", 0, 0, 0, 0, 0, [0, [\"(?:(?:23|54)5|329|45[56])\\\\d{4}\"]]],\n \"MK\": [\"389\", \"00\", \"[2-578]\\\\d{7}\", [8], [[\"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"2\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[347]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d)(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[58]\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [0, [\"7(?:3555|4(?:60\\\\d|747)|94(?:[01]\\\\d|2[0-4]))\\\\d{3}|7(?:[0-25-8]\\\\d|3[2-4]|42|9[23])\\\\d{5}\"]]],\n \"ML\": [\"223\", \"00\", \"[24-9]\\\\d{7}\", [8], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[24-9]\"]]], 0, 0, 0, 0, 0, 0, [0, [\"2(?:0(?:01|79)|17\\\\d)\\\\d{4}|(?:5[01]|[679]\\\\d|8[239])\\\\d{6}\"]]],\n \"MM\": [\"95\", \"00\", \"1\\\\d{5,7}|95\\\\d{6}|(?:[4-7]|9[0-46-9])\\\\d{6,8}|(?:2|8\\\\d)\\\\d{5,8}\", [6, 7, 8, 9, 10], [[\"(\\\\d)(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3\", [\"16|2\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3\", [\"[45]|6(?:0[23]|[1-689]|7[235-7])|7(?:[0-4]|5[2-7])|8[1-6]\"], \"0$1\"], [\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[12]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[4-7]|8[1-35]\"], \"0$1\"], [\"(\\\\d)(\\\\d{3})(\\\\d{4,6})\", \"$1 $2 $3\", [\"9(?:2[0-4]|[35-9]|4[137-9])\"], \"0$1\"], [\"(\\\\d)(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"2\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"8\"], \"0$1\"], [\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"92\"], \"0$1\"], [\"(\\\\d)(\\\\d{5})(\\\\d{4})\", \"$1 $2 $3\", [\"9\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [0, [\"(?:17[01]|9(?:2(?:[0-4]|[56]\\\\d\\\\d)|(?:3(?:[0-36]|4\\\\d)|(?:6\\\\d|8[89]|9[4-8])\\\\d|7(?:3|40|[5-9]\\\\d))\\\\d|4(?:(?:[0245]\\\\d|[1379])\\\\d|88)|5[0-6])\\\\d)\\\\d{4}|9[69]1\\\\d{6}|9(?:[68]\\\\d|9[089])\\\\d{5}\", [7, 8, 9, 10]]]],\n \"MN\": [\"976\", \"001\", \"[12]\\\\d{7,9}|[57-9]\\\\d{7}\", [8, 9, 10], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\", \"$1 $2 $3\", [\"[12]1\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[57-9]\"]], [\"(\\\\d{3})(\\\\d{5,6})\", \"$1 $2\", [\"[12]2[1-3]\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{5,6})\", \"$1 $2\", [\"[12](?:27|3[2-8]|4[2-68]|5[1-4689])\", \"[12](?:27|3[2-8]|4[2-68]|5[1-4689])[0-3]\"], \"0$1\"], [\"(\\\\d{5})(\\\\d{4,5})\", \"$1 $2\", [\"[12]\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [0, [\"(?:83[01]|920)\\\\d{5}|(?:5[05]|8[05689]|9[013-9])\\\\d{6}\", [8]]]],\n \"MO\": [\"853\", \"00\", \"(?:28|[68]\\\\d)\\\\d{6}\", [8], [[\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[268]\"]]], 0, 0, 0, 0, 0, 0, [0, [\"6800[0-79]\\\\d{3}|6(?:[235]\\\\d\\\\d|6(?:0[0-5]|[1-9]\\\\d)|8(?:0[1-9]|[14-8]\\\\d|2[5-9]|[39][0-4]))\\\\d{4}\"]]],\n \"MP\": [\"1\", \"011\", \"[58]\\\\d{9}|(?:67|90)0\\\\d{7}\", [10], 0, \"1\", 0, \"1|([2-9]\\\\d{6})$\", \"670$1\", 0, \"670\", [0, [\"670(?:2(?:3[3-7]|56|8[4-8])|32[1-38]|4(?:33|8[348])|5(?:32|55|88)|6(?:64|70|82)|78[3589]|8[3-9]8|989)\\\\d{4}\"]]],\n \"MQ\": [\"596\", \"00\", \"(?:69|80)\\\\d{7}|(?:59|97)6\\\\d{6}\", [9], [[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[569]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"8\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [0, [\"69(?:6(?:[0-46-9]\\\\d|5[0-6])|727)\\\\d{4}\"]]],\n \"MR\": [\"222\", \"00\", \"(?:[2-4]\\\\d\\\\d|800)\\\\d{5}\", [8], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[2-48]\"]]], 0, 0, 0, 0, 0, 0, [0, [\"[2-4][0-46-9]\\\\d{6}\"]]],\n \"MS\": [\"1\", \"011\", \"(?:[58]\\\\d\\\\d|664|900)\\\\d{7}\", [10], 0, \"1\", 0, \"1|([34]\\\\d{6})$\", \"664$1\", 0, \"664\", [0, [\"664(?:3(?:49|9[1-6])|49[2-6])\\\\d{4}\"]]],\n \"MT\": [\"356\", \"00\", \"3550\\\\d{4}|(?:[2579]\\\\d\\\\d|800)\\\\d{5}\", [8], [[\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[2357-9]\"]]], 0, 0, 0, 0, 0, 0, [0, [\"(?:7(?:210|[79]\\\\d\\\\d)|9(?:[29]\\\\d\\\\d|69[67]|8(?:1[1-3]|89|97)))\\\\d{4}\"]]],\n \"MU\": [\"230\", \"0(?:0|[24-7]0|3[03])\", \"(?:[2-468]|5\\\\d)\\\\d{6}\", [7, 8], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[2-46]|8[013]\"]], [\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"5\"]]], 0, 0, 0, 0, 0, 0, [0, [\"5(?:4(?:2[1-389]|7[1-9])|87[15-8])\\\\d{4}|5(?:2[5-9]|4[3-589]|[57]\\\\d|8[0-689]|9[0-8])\\\\d{5}\", [8]]], \"020\"],\n \"MV\": [\"960\", \"0(?:0|19)\", \"(?:800|9[0-57-9]\\\\d)\\\\d{7}|[34679]\\\\d{6}\", [7, 10], [[\"(\\\\d{3})(\\\\d{4})\", \"$1-$2\", [\"[3467]|9[13-9]\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[89]\"]]], 0, 0, 0, 0, 0, 0, [0, [\"46[46]\\\\d{4}|(?:7\\\\d|9[13-9])\\\\d{5}\", [7]]], \"00\"],\n \"MW\": [\"265\", \"00\", \"1\\\\d{6}(?:\\\\d{2})?|(?:[23]1|77|88|99)\\\\d{7}\", [7, 9], [[\"(\\\\d)(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"1[2-9]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"2\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[137-9]\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [0, [\"111\\\\d{6}|(?:31|77|88|99)\\\\d{7}\", [9]]]],\n \"MX\": [\"52\", \"0[09]\", \"(?:1(?:[01467]\\\\d|[2359][1-9]|8[1-79])|[2-9]\\\\d)\\\\d{8}\", [10, 11], [[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"33|5[56]|81\"], 0, 1], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[2-9]\"], 0, 1], [\"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$2 $3 $4\", [\"1(?:33|5[56]|81)\"], 0, 1], [\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$2 $3 $4\", [\"1\"], 0, 1]], \"01\", 0, \"0(?:[12]|4[45])|1\", 0, 0, 0, [0, [\"(?:1(?:2(?:2[1-9]|3[1-35-8]|4[13-9]|7[1-689]|8[1-578]|9[467])|3(?:1[1-79]|[2458][1-9]|3\\\\d|7[1-8]|9[1-5])|4(?:1[1-57-9]|[24-7][1-9]|3[1-8]|8[1-35-9]|9[2-689])|5(?:[56]\\\\d|88|9[1-79])|6(?:1[2-68]|[2-4][1-9]|5[1-3689]|6[1-57-9]|7[1-7]|8[67]|9[4-8])|7(?:[1-467][1-9]|5[13-9]|8[1-69]|9[17])|8(?:1\\\\d|2[13-689]|3[1-6]|4[124-6]|6[1246-9]|7[1-378]|9[12479])|9(?:1[346-9]|2[1-4]|3[2-46-8]|5[1348]|[69][1-9]|7[12]|8[1-8]))|2(?:2[1-9]|3[1-35-8]|4[13-9]|7[1-689]|8[1-578]|9[467])|3(?:1[1-79]|[2458][1-9]|3\\\\d|7[1-8]|9[1-5])|4(?:1[1-57-9]|[24-7][1-9]|3[1-8]|8[1-35-9]|9[2-689])|5(?:[56]\\\\d|88|9[1-79])|6(?:1[2-68]|[2-4][1-9]|5[1-3689]|6[1-57-9]|7[1-7]|8[67]|9[4-8])|7(?:[1-467][1-9]|5[13-9]|8[1-69]|9[17])|8(?:1\\\\d|2[13-689]|3[1-6]|4[124-6]|6[1246-9]|7[1-378]|9[12479])|9(?:1[346-9]|2[1-4]|3[2-46-8]|5[1348]|[69][1-9]|7[12]|8[1-8]))\\\\d{7}\"]], \"00\"],\n \"MY\": [\"60\", \"00\", \"1\\\\d{8,9}|(?:3\\\\d|[4-9])\\\\d{7}\", [8, 9, 10], [[\"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1-$2 $3\", [\"[4-79]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1-$2 $3\", [\"1(?:[02469]|[378][1-9])|8\"], \"0$1\"], [\"(\\\\d)(\\\\d{4})(\\\\d{4})\", \"$1-$2 $3\", [\"3\"], \"0$1\"], [\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{4})\", \"$1-$2-$3-$4\", [\"1[36-8]\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1-$2 $3\", [\"15\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1-$2 $3\", [\"1\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [0, [\"1(?:1888[69]|4400|8(?:47|8[27])[0-4])\\\\d{4}|1(?:0(?:[23568]\\\\d|4[0-6]|7[016-9]|9[0-8])|1(?:[1-5]\\\\d\\\\d|6(?:0[5-9]|[1-9]\\\\d)|7(?:[0134]\\\\d|2[1-9]|5[0-6]))|(?:(?:[269]|59)\\\\d|[37][1-9]|4[235-9])\\\\d|8(?:1[23]|[236]\\\\d|4[06]|5[7-9]|7[016-9]|8[01]|9[0-8]))\\\\d{5}\", [9, 10]]]],\n \"MZ\": [\"258\", \"00\", \"(?:2|8\\\\d)\\\\d{7}\", [8, 9], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"2|8[2-79]\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"8\"]]], 0, 0, 0, 0, 0, 0, [0, [\"8[2-79]\\\\d{7}\", [9]]]],\n \"NA\": [\"264\", \"00\", \"[68]\\\\d{7,8}\", [8, 9], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"88\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"6\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"87\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"8\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [0, [\"(?:60|8[1245])\\\\d{7}\", [9]]]],\n \"NC\": [\"687\", \"00\", \"[2-57-9]\\\\d{5}\", [6], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1.$2.$3\", [\"[2-57-9]\"]]], 0, 0, 0, 0, 0, 0, [0, [\"(?:5[0-4]|[79]\\\\d|8[0-79])\\\\d{4}\"]]],\n \"NE\": [\"227\", \"00\", \"[027-9]\\\\d{7}\", [8], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"08\"]], [\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[089]|2[013]|7[04]\"]]], 0, 0, 0, 0, 0, 0, [0, [\"(?:23|7[04]|[89]\\\\d)\\\\d{6}\"]]],\n \"NF\": [\"672\", \"00\", \"[13]\\\\d{5}\", [6], [[\"(\\\\d{2})(\\\\d{4})\", \"$1 $2\", [\"1[0-3]\"]], [\"(\\\\d)(\\\\d{5})\", \"$1 $2\", [\"[13]\"]]], 0, 0, \"([0-258]\\\\d{4})$\", \"3$1\", 0, 0, [0, [\"(?:14|3[58])\\\\d{4}\"]]],\n \"NG\": [\"234\", \"009\", \"(?:[124-7]|9\\\\d{3})\\\\d{6}|[1-9]\\\\d{7}|[78]\\\\d{9,13}\", [7, 8, 10, 11, 12, 13, 14], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3\", [\"78\"], \"0$1\"], [\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[12]|9(?:0[3-9]|[1-9])\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\", \"$1 $2 $3\", [\"[3-7]|8[2-9]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[7-9]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\", \"$1 $2 $3\", [\"[78]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{5})(\\\\d{5,6})\", \"$1 $2 $3\", [\"[78]\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [0, [\"(?:702[0-24-9]|8(?:01|19)[01])\\\\d{6}|(?:70[13-689]|8(?:0[2-9]|1[0-8])|9(?:0[1-9]|1[235]))\\\\d{7}\", [10]]]],\n \"NI\": [\"505\", \"00\", \"(?:1800|[25-8]\\\\d{3})\\\\d{4}\", [8], [[\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[125-8]\"]]], 0, 0, 0, 0, 0, 0, [0, [\"(?:5(?:5[0-7]|[78]\\\\d)|6(?:20|3[035]|4[045]|5[05]|77|8[1-9]|9[059])|(?:7[5-8]|8\\\\d)\\\\d)\\\\d{5}\"]]],\n \"NL\": [\"31\", \"00\", \"(?:[124-7]\\\\d\\\\d|3(?:[02-9]\\\\d|1[0-8]))\\\\d{6}|[89]\\\\d{6,9}|1\\\\d{4,5}\", [5, 6, 7, 8, 9, 10], [[\"(\\\\d{3})(\\\\d{4,7})\", \"$1 $2\", [\"[89]0\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{7})\", \"$1 $2\", [\"66\"], \"0$1\"], [\"(\\\\d)(\\\\d{8})\", \"$1 $2\", [\"6\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"1[16-8]|2[259]|3[124]|4[17-9]|5[124679]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[1-57-9]\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [0, [\"6[1-58]\\\\d{7}\", [9]]]],\n \"NO\": [\"47\", \"00\", \"(?:0|[2-9]\\\\d{3})\\\\d{4}\", [5, 8], [[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3\", [\"[489]|59\"]], [\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[235-7]\"]]], 0, 0, 0, 0, 0, \"[02-689]|7[0-8]\", [0, [\"(?:4[015-8]|59|9\\\\d)\\\\d{6}\", [8]]]],\n \"NP\": [\"977\", \"00\", \"(?:1\\\\d|9)\\\\d{9}|[1-9]\\\\d{7}\", [8, 10, 11], [[\"(\\\\d)(\\\\d{7})\", \"$1-$2\", [\"1[2-6]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{6})\", \"$1-$2\", [\"1[01]|[2-8]|9(?:[1-579]|6[2-6])\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{7})\", \"$1-$2\", [\"9\"]]], \"0\", 0, 0, 0, 0, 0, [0, [\"9(?:6[0-3]|7[245]|8[0-24-68])\\\\d{7}\", [10]]]],\n \"NR\": [\"674\", \"00\", \"(?:444|(?:55|8\\\\d)\\\\d|666)\\\\d{4}\", [7], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[4-68]\"]]], 0, 0, 0, 0, 0, 0, [0, [\"(?:55[3-9]|666|8\\\\d\\\\d)\\\\d{4}\"]]],\n \"NU\": [\"683\", \"00\", \"(?:[47]|888\\\\d)\\\\d{3}\", [4, 7], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"8\"]]], 0, 0, 0, 0, 0, 0, [0, [\"888[4-9]\\\\d{3}\", [7]]]],\n \"NZ\": [\"64\", \"0(?:0|161)\", \"[29]\\\\d{7,9}|50\\\\d{5}(?:\\\\d{2,3})?|6[0-35-9]\\\\d{6}|7\\\\d{7,8}|8\\\\d{4,9}|(?:11\\\\d|[34])\\\\d{7}\", [5, 6, 7, 8, 9, 10], [[\"(\\\\d{2})(\\\\d{3,8})\", \"$1 $2\", [\"8[1-579]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\", \"$1 $2 $3\", [\"50[036-8]|[89]0\", \"50(?:[0367]|88)|[89]0\"], \"0$1\"], [\"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1-$2 $3\", [\"24|[346]|7[2-57-9]|9[2-9]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"2(?:10|74)|[59]|80\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\", \"$1 $2 $3\", [\"1|2[028]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3,5})\", \"$1 $2 $3\", [\"2(?:[169]|7[0-35-9])|7|86\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [0, [\"2[0-27-9]\\\\d{7,8}|21\\\\d{6}\", [8, 9, 10]]], \"00\"],\n \"OM\": [\"968\", \"00\", \"(?:1505|[279]\\\\d{3}|500)\\\\d{4}|800\\\\d{5,6}\", [7, 8, 9], [[\"(\\\\d{3})(\\\\d{4,6})\", \"$1 $2\", [\"[58]\"]], [\"(\\\\d{2})(\\\\d{6})\", \"$1 $2\", [\"2\"]], [\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[179]\"]]], 0, 0, 0, 0, 0, 0, [0, [\"(?:1505|90[1-9]\\\\d)\\\\d{4}|(?:7[1289]|9[1-9])\\\\d{6}\", [8]]]],\n \"PA\": [\"507\", \"00\", \"8\\\\d{9}|[68]\\\\d{7}|[1-57-9]\\\\d{6}\", [7, 8, 10], [[\"(\\\\d{3})(\\\\d{4})\", \"$1-$2\", [\"[1-57-9]\"]], [\"(\\\\d{4})(\\\\d{4})\", \"$1-$2\", [\"[68]\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"8\"]]], 0, 0, 0, 0, 0, 0, [0, [\"(?:1[16]1|21[89]|6(?:[02-9]\\\\d|1[0-8])\\\\d|8(?:1[01]|7[23]))\\\\d{4}\", [7, 8]]]],\n \"PE\": [\"51\", \"19(?:1[124]|77|90)00\", \"(?:[14-8]|9\\\\d)\\\\d{7}\", [8, 9], [[\"(\\\\d{3})(\\\\d{5})\", \"$1 $2\", [\"80\"], \"(0$1)\"], [\"(\\\\d)(\\\\d{7})\", \"$1 $2\", [\"1\"], \"(0$1)\"], [\"(\\\\d{2})(\\\\d{6})\", \"$1 $2\", [\"[4-8]\"], \"(0$1)\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"9\"]]], \"0\", 0, 0, 0, 0, 0, [0, [\"9\\\\d{8}\", [9]]], 0, \" Anexo \"],\n \"PF\": [\"689\", \"00\", \"4\\\\d{5}(?:\\\\d{2})?|8\\\\d{7,8}\", [6, 8, 9], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3\", [\"44\"]], [\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"4|8[7-9]\"]], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"8\"]]], 0, 0, 0, 0, 0, 0, [0, [\"8[7-9]\\\\d{6}\", [8]]]],\n \"PG\": [\"675\", \"00|140[1-3]\", \"(?:180|[78]\\\\d{3})\\\\d{4}|(?:[2-589]\\\\d|64)\\\\d{5}\", [7, 8], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"18|[2-69]|85\"]], [\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[78]\"]]], 0, 0, 0, 0, 0, 0, [0, [\"(?:7\\\\d|8[18])\\\\d{6}\", [8]]], \"00\"],\n \"PH\": [\"63\", \"00\", \"1800\\\\d{7,9}|(?:2|[89]\\\\d{4})\\\\d{5}|[2-8]\\\\d{8}|[28]\\\\d{7}\", [6, 8, 9, 10, 11, 12, 13], [[\"(\\\\d)(\\\\d{5})\", \"$1 $2\", [\"2\"], \"(0$1)\"], [\"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"2\"], \"(0$1)\"], [\"(\\\\d{4})(\\\\d{4,6})\", \"$1 $2\", [\"3(?:23|39|46)|4(?:2[3-6]|[35]9|4[26]|76)|544|88[245]|(?:52|64|86)2\", \"3(?:230|397|461)|4(?:2(?:35|[46]4|51)|396|4(?:22|63)|59[347]|76[15])|5(?:221|446)|642[23]|8(?:622|8(?:[24]2|5[13]))\"], \"(0$1)\"], [\"(\\\\d{5})(\\\\d{4})\", \"$1 $2\", [\"346|4(?:27|9[35])|883\", \"3469|4(?:279|9(?:30|56))|8834\"], \"(0$1)\"], [\"(\\\\d)(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"2\"], \"(0$1)\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[3-7]|8[2-8]\"], \"(0$1)\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[89]\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"1\"]], [\"(\\\\d{4})(\\\\d{1,2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3 $4\", [\"1\"]]], \"0\", 0, 0, 0, 0, 0, [0, [\"(?:8(?:1[37]|9[5-8])|9(?:0[5-9]|1[0-24-9]|[2357]\\\\d|4[2-9]|6[0-35-9]|8[189]|9[1-9]))\\\\d{7}\", [10]]]],\n \"PK\": [\"92\", \"00\", \"122\\\\d{6}|[24-8]\\\\d{10,11}|9(?:[013-9]\\\\d{8,10}|2(?:[01]\\\\d\\\\d|2(?:[06-8]\\\\d|1[01]))\\\\d{7})|(?:[2-8]\\\\d{3}|92(?:[0-7]\\\\d|8[1-9]))\\\\d{6}|[24-9]\\\\d{8}|[89]\\\\d{7}\", [8, 9, 10, 11, 12], [[\"(\\\\d{3})(\\\\d{3})(\\\\d{2,7})\", \"$1 $2 $3\", [\"[89]0\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{5})\", \"$1 $2\", [\"1\"]], [\"(\\\\d{3})(\\\\d{6,7})\", \"$1 $2\", [\"2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:2[2-8]|3[27-9]|4[2-6]|6[3569]|9[25-8])\", \"9(?:2[3-8]|98)|(?:2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:22|3[27-9]|4[2-6]|6[3569]|9[25-7]))[2-9]\"], \"(0$1)\"], [\"(\\\\d{2})(\\\\d{7,8})\", \"$1 $2\", [\"(?:2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)[2-9]\"], \"(0$1)\"], [\"(\\\\d{5})(\\\\d{5})\", \"$1 $2\", [\"58\"], \"(0$1)\"], [\"(\\\\d{3})(\\\\d{7})\", \"$1 $2\", [\"3\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91\"], \"(0$1)\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"[24-9]\"], \"(0$1)\"]], \"0\", 0, 0, 0, 0, 0, [0, [\"3(?:[014]\\\\d|2[0-5]|3[0-7]|55|64)\\\\d{7}\", [10]]]],\n \"PL\": [\"48\", \"00\", \"6\\\\d{5}(?:\\\\d{2})?|8\\\\d{9}|[1-9]\\\\d{6}(?:\\\\d{2})?\", [6, 7, 8, 9, 10], [[\"(\\\\d{5})\", \"$1\", [\"19\"]], [\"(\\\\d{3})(\\\\d{3})\", \"$1 $2\", [\"11|64\"]], [\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3\", [\"(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])1\", \"(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])19\"]], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\", \"$1 $2 $3\", [\"64\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"39|45|5[0137]|6[0469]|7[02389]|8(?:0[14]|8)\"]], [\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"1[2-8]|[2-7]|8[1-79]|9[145]\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"8\"]]], 0, 0, 0, 0, 0, 0, [0, [\"(?:45|5[0137]|6[069]|7[2389]|88)\\\\d{7}\", [9]]]],\n \"PM\": [\"508\", \"00\", \"(?:[45]|80\\\\d\\\\d)\\\\d{5}\", [6, 9], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3\", [\"[45]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"8\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [0, [\"(?:4[02-4]|5[05])\\\\d{4}\", [6]]]],\n \"PR\": [\"1\", \"011\", \"(?:[589]\\\\d\\\\d|787)\\\\d{7}\", [10], 0, \"1\", 0, 0, 0, 0, \"787|939\", [0, [\"(?:787|939)[2-9]\\\\d{6}\"]]],\n \"PS\": [\"970\", \"00\", \"[2489]2\\\\d{6}|(?:1\\\\d|5)\\\\d{8}\", [8, 9, 10], [[\"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[2489]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"5\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"1\"]]], \"0\", 0, 0, 0, 0, 0, [0, [\"5[69]\\\\d{7}\", [9]]]],\n \"PT\": [\"351\", \"00\", \"1693\\\\d{5}|(?:[26-9]\\\\d|30)\\\\d{7}\", [9], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"2[12]\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"16|[236-9]\"]]], 0, 0, 0, 0, 0, 0, [0, [\"6[0356]92(?:30|9\\\\d)\\\\d{3}|(?:(?:16|6[0356])93|9(?:[1-36]\\\\d\\\\d|480))\\\\d{5}\"]]],\n \"PW\": [\"680\", \"01[12]\", \"(?:[24-8]\\\\d\\\\d|345|900)\\\\d{4}\", [7], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[2-9]\"]]], 0, 0, 0, 0, 0, 0, [0, [\"(?:46[0-5]|6[2-4689]0)\\\\d{4}|(?:45|77|88)\\\\d{5}\"]]],\n \"PY\": [\"595\", \"00\", \"59\\\\d{4,6}|9\\\\d{5,10}|(?:[2-46-8]\\\\d|5[0-8])\\\\d{4,7}\", [6, 7, 8, 9, 10, 11], [[\"(\\\\d{3})(\\\\d{3,6})\", \"$1 $2\", [\"[2-9]0\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{5})\", \"$1 $2\", [\"[26]1|3[289]|4[1246-8]|7[1-3]|8[1-36]\"], \"(0$1)\"], [\"(\\\\d{3})(\\\\d{4,5})\", \"$1 $2\", [\"2[279]|3[13-5]|4[359]|5|6(?:[34]|7[1-46-8])|7[46-8]|85\"], \"(0$1)\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"2[14-68]|3[26-9]|4[1246-8]|6(?:1|75)|7[1-35]|8[1-36]\"], \"(0$1)\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"87\"]], [\"(\\\\d{3})(\\\\d{6})\", \"$1 $2\", [\"9(?:[5-79]|8[1-6])\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[2-8]\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"9\"]]], \"0\", 0, 0, 0, 0, 0, [0, [\"9(?:51|6[129]|[78][1-6]|9[1-5])\\\\d{6}\", [9]]]],\n \"QA\": [\"974\", \"00\", \"[2-7]\\\\d{7}|(?:2\\\\d\\\\d|800)\\\\d{4}\", [7, 8], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"2[126]|8\"]], [\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[2-7]\"]]], 0, 0, 0, 0, 0, 0, [0, [\"(?:28|[35-7]\\\\d)\\\\d{6}\", [8]]]],\n \"RE\": [\"262\", \"00\", \"9769\\\\d{5}|(?:26|[68]\\\\d)\\\\d{7}\", [9], [[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[2689]\"], \"0$1\"]], \"0\", 0, 0, 0, 0, \"26[23]|69|[89]\", [0, [\"(?:69(?:2\\\\d\\\\d|3(?:[06][0-46]|1[013]|2[0-2]|3[0-39]|4\\\\d|5[0-5]|7[0-27]|8[0-8]|9[0-479]))|9769\\\\d)\\\\d{4}\"]]],\n \"RO\": [\"40\", \"00\", \"(?:[237]\\\\d|[89]0)\\\\d{7}|[23]\\\\d{5}\", [6, 9], [[\"(\\\\d{3})(\\\\d{3})\", \"$1 $2\", [\"2[3-6]\", \"2[3-6]\\\\d9\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{4})\", \"$1 $2\", [\"219|31\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[23]1\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[237-9]\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [0, [\"7[01]20\\\\d{5}|7(?:0[013-9]|1[01]|[2-7]\\\\d|8[03-8]|9[09])\\\\d{6}\", [9]]], 0, \" int \"],\n \"RS\": [\"381\", \"00\", \"38[02-9]\\\\d{6,9}|6\\\\d{7,9}|90\\\\d{4,8}|38\\\\d{5,6}|(?:7\\\\d\\\\d|800)\\\\d{3,9}|(?:[12]\\\\d|3[0-79])\\\\d{5,10}\", [6, 7, 8, 9, 10, 11, 12], [[\"(\\\\d{3})(\\\\d{3,9})\", \"$1 $2\", [\"(?:2[389]|39)0|[7-9]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{5,10})\", \"$1 $2\", [\"[1-36]\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [0, [\"6(?:[0-689]|7\\\\d)\\\\d{6,7}\", [8, 9, 10]]]],\n \"RU\": [\"7\", \"810\", \"[347-9]\\\\d{9}\", [10], [[\"(\\\\d{4})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"7(?:1[0-8]|2[1-9])\", \"7(?:1(?:[0-6]2|7|8[27])|2(?:1[23]|[2-9]2))\", \"7(?:1(?:[0-6]2|7|8[27])|2(?:13[03-69]|62[013-9]))|72[1-57-9]2\"], \"8 ($1)\", 1], [\"(\\\\d{5})(\\\\d)(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"7(?:1[0-68]|2[1-9])\", \"7(?:1(?:[06][3-6]|[18]|2[35]|[3-5][3-5])|2(?:[13][3-5]|[24-689]|7[457]))\", \"7(?:1(?:0(?:[356]|4[023])|[18]|2(?:3[013-9]|5)|3[45]|43[013-79]|5(?:3[1-8]|4[1-7]|5)|6(?:3[0-35-9]|[4-6]))|2(?:1(?:3[178]|[45])|[24-689]|3[35]|7[457]))|7(?:14|23)4[0-8]|71(?:33|45)[1-79]\"], \"8 ($1)\", 1], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"7\"], \"8 ($1)\", 1], [\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2-$3-$4\", [\"[3489]\"], \"8 ($1)\", 1]], \"8\", 0, 0, 0, 0, \"3[04-689]|[489]\", [0, [\"9\\\\d{9}\"]], \"8~10\"],\n \"RW\": [\"250\", \"00\", \"(?:06|[27]\\\\d\\\\d|[89]00)\\\\d{6}\", [8, 9], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"0\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[7-9]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"2\"]]], \"0\", 0, 0, 0, 0, 0, [0, [\"7[2389]\\\\d{7}\", [9]]]],\n \"SA\": [\"966\", \"00\", \"92\\\\d{7}|(?:[15]|8\\\\d)\\\\d{8}\", [9, 10], [[\"(\\\\d{4})(\\\\d{5})\", \"$1 $2\", [\"9\"]], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"1\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"5\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"81\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"8\"]]], \"0\", 0, 0, 0, 0, 0, [0, [\"579[01]\\\\d{5}|5(?:[013-689]\\\\d|7[0-36-8])\\\\d{6}\", [9]]]],\n \"SB\": [\"677\", \"0[01]\", \"(?:[1-6]|[7-9]\\\\d\\\\d)\\\\d{4}\", [5, 7], [[\"(\\\\d{2})(\\\\d{5})\", \"$1 $2\", [\"7|8[4-9]|9(?:[1-8]|9[0-8])\"]]], 0, 0, 0, 0, 0, 0, [0, [\"48\\\\d{3}|(?:(?:7[1-9]|8[4-9])\\\\d|9(?:1[2-9]|2[013-9]|3[0-2]|[46]\\\\d|5[0-46-9]|7[0-689]|8[0-79]|9[0-8]))\\\\d{4}\"]]],\n \"SC\": [\"248\", \"010|0[0-2]\", \"8000\\\\d{3}|(?:[249]\\\\d|64)\\\\d{5}\", [7], [[\"(\\\\d)(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[246]|9[57]\"]]], 0, 0, 0, 0, 0, 0, [0, [\"2[5-8]\\\\d{5}\"]], \"00\"],\n \"SD\": [\"249\", \"00\", \"[19]\\\\d{8}\", [9], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[19]\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [0, [\"(?:1[0-2]|9[0-3569])\\\\d{7}\"]]],\n \"SE\": [\"46\", \"00\", \"(?:[26]\\\\d\\\\d|9)\\\\d{9}|[1-9]\\\\d{8}|[1-689]\\\\d{7}|[1-4689]\\\\d{6}|2\\\\d{5}\", [6, 7, 8, 9, 10], [[\"(\\\\d{2})(\\\\d{2,3})(\\\\d{2})\", \"$1-$2 $3\", [\"20\"], \"0$1\", 0, \"$1 $2 $3\"], [\"(\\\\d{3})(\\\\d{4})\", \"$1-$2\", [\"9(?:00|39|44)\"], \"0$1\", 0, \"$1 $2\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{2})\", \"$1-$2 $3\", [\"[12][136]|3[356]|4[0246]|6[03]|90[1-9]\"], \"0$1\", 0, \"$1 $2 $3\"], [\"(\\\\d)(\\\\d{2,3})(\\\\d{2})(\\\\d{2})\", \"$1-$2 $3 $4\", [\"8\"], \"0$1\", 0, \"$1 $2 $3 $4\"], [\"(\\\\d{3})(\\\\d{2,3})(\\\\d{2})\", \"$1-$2 $3\", [\"1[2457]|2(?:[247-9]|5[0138])|3[0247-9]|4[1357-9]|5[0-35-9]|6(?:[125689]|4[02-57]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])\"], \"0$1\", 0, \"$1 $2 $3\"], [\"(\\\\d{3})(\\\\d{2,3})(\\\\d{3})\", \"$1-$2 $3\", [\"9(?:00|39|44)\"], \"0$1\", 0, \"$1 $2 $3\"], [\"(\\\\d{2})(\\\\d{2,3})(\\\\d{2})(\\\\d{2})\", \"$1-$2 $3 $4\", [\"1[13689]|2[0136]|3[1356]|4[0246]|54|6[03]|90[1-9]\"], \"0$1\", 0, \"$1 $2 $3 $4\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1-$2 $3 $4\", [\"10|7\"], \"0$1\", 0, \"$1 $2 $3 $4\"], [\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{2})\", \"$1-$2 $3 $4\", [\"8\"], \"0$1\", 0, \"$1 $2 $3 $4\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1-$2 $3 $4\", [\"[13-5]|2(?:[247-9]|5[0138])|6(?:[124-689]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])\"], \"0$1\", 0, \"$1 $2 $3 $4\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{3})\", \"$1-$2 $3 $4\", [\"9\"], \"0$1\", 0, \"$1 $2 $3 $4\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1-$2 $3 $4 $5\", [\"[26]\"], \"0$1\", 0, \"$1 $2 $3 $4 $5\"]], \"0\", 0, 0, 0, 0, 0, [0, [\"7[02369]\\\\d{7}\", [9]]]],\n \"SG\": [\"65\", \"0[0-3]\\\\d\", \"(?:(?:1\\\\d|8)\\\\d\\\\d|7000)\\\\d{7}|[3689]\\\\d{7}\", [8, 10, 11], [[\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[369]|8(?:0[1-4]|[1-9])\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"8\"]], [\"(\\\\d{4})(\\\\d{4})(\\\\d{3})\", \"$1 $2 $3\", [\"7\"]], [\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"1\"]]], 0, 0, 0, 0, 0, 0, [0, [\"(?:8(?:0(?:[13]\\\\d|2[013-9]|4[01])|[1-8]\\\\d\\\\d|9(?:[0-4]\\\\d|5[0-2]))|9[0-8]\\\\d\\\\d)\\\\d{4}\", [8]]]],\n \"SH\": [\"290\", \"00\", \"(?:[256]\\\\d|8)\\\\d{3}\", [4, 5], 0, 0, 0, 0, 0, 0, \"[256]\", [0, [\"[56]\\\\d{4}\", [5]]]],\n \"SI\": [\"386\", \"00|10(?:22|66|88|99)\", \"[1-7]\\\\d{7}|8\\\\d{4,7}|90\\\\d{4,6}\", [5, 6, 7, 8], [[\"(\\\\d{2})(\\\\d{3,6})\", \"$1 $2\", [\"8[09]|9\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{5})\", \"$1 $2\", [\"59|8\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[37][01]|4[0139]|51|6\"], \"0$1\"], [\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[1-57]\"], \"(0$1)\"]], \"0\", 0, 0, 0, 0, 0, [0, [\"65(?:1\\\\d|55|[67]0)\\\\d{4}|(?:[37][01]|4[0139]|51|6[489])\\\\d{6}\", [8]]], \"00\"],\n \"SJ\": [\"47\", \"00\", \"0\\\\d{4}|(?:[489]\\\\d|[57]9)\\\\d{6}\", [5, 8], 0, 0, 0, 0, 0, 0, \"79\", [0, [\"(?:4[015-8]|59|9\\\\d)\\\\d{6}\", [8]]]],\n \"SK\": [\"421\", \"00\", \"[2-689]\\\\d{8}|[2-59]\\\\d{6}|[2-5]\\\\d{5}\", [6, 7, 9], [[\"(\\\\d)(\\\\d{2})(\\\\d{3,4})\", \"$1 $2 $3\", [\"21\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{2})(\\\\d{2,3})\", \"$1 $2 $3\", [\"[3-5][1-8]1\", \"[3-5][1-8]1[67]\"], \"0$1\"], [\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{2})\", \"$1/$2 $3 $4\", [\"2\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[689]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1/$2 $3 $4\", [\"[3-5]\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [0, [\"909[1-9]\\\\d{5}|9(?:0[1-8]|1[0-24-9]|4[03-57-9]|5\\\\d)\\\\d{6}\", [9]]]],\n \"SL\": [\"232\", \"00\", \"(?:[237-9]\\\\d|66)\\\\d{6}\", [8], [[\"(\\\\d{2})(\\\\d{6})\", \"$1 $2\", [\"[236-9]\"], \"(0$1)\"]], \"0\", 0, 0, 0, 0, 0, [0, [\"(?:25|3[0-5]|66|7[3-9]|8[08]|9[09])\\\\d{6}\"]]],\n \"SM\": [\"378\", \"00\", \"(?:0549|[5-7]\\\\d)\\\\d{6}\", [8, 10], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[5-7]\"]], [\"(\\\\d{4})(\\\\d{6})\", \"$1 $2\", [\"0\"]]], 0, 0, \"([89]\\\\d{5})$\", \"0549$1\", 0, 0, [0, [\"6[16]\\\\d{6}\", [8]]]],\n \"SN\": [\"221\", \"00\", \"(?:[378]\\\\d{4}|93330)\\\\d{4}\", [9], [[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"8\"]], [\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[379]\"]]], 0, 0, 0, 0, 0, 0, [0, [\"7(?:[06-8]\\\\d|21|5[4-7]|90)\\\\d{6}\"]]],\n \"SO\": [\"252\", \"00\", \"[346-9]\\\\d{8}|[12679]\\\\d{7}|[1-5]\\\\d{6}|[1348]\\\\d{5}\", [6, 7, 8, 9], [[\"(\\\\d{2})(\\\\d{4})\", \"$1 $2\", [\"8[125]\"]], [\"(\\\\d{6})\", \"$1\", [\"[134]\"]], [\"(\\\\d)(\\\\d{6})\", \"$1 $2\", [\"[15]|2[0-79]|3[0-46-8]|4[0-7]\"]], [\"(\\\\d)(\\\\d{7})\", \"$1 $2\", [\"24|[67]\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[3478]|64|90\"]], [\"(\\\\d{2})(\\\\d{5,7})\", \"$1 $2\", [\"1|28|6[1-35-9]|9[2-9]\"]]], \"0\", 0, 0, 0, 0, 0, [0, [\"28\\\\d{5}|(?:6[1-9]|79)\\\\d{6,7}|(?:15|24|(?:3[59]|4[89]|8[08])\\\\d|60|7[1-8]|9(?:0\\\\d|[2-9]))\\\\d{6}\", [7, 8, 9]]]],\n \"SR\": [\"597\", \"00\", \"(?:[2-5]|68|[78]\\\\d)\\\\d{5}\", [6, 7], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1-$2-$3\", [\"56\"]], [\"(\\\\d{3})(\\\\d{3})\", \"$1-$2\", [\"[2-5]\"]], [\"(\\\\d{3})(\\\\d{4})\", \"$1-$2\", [\"[6-8]\"]]], 0, 0, 0, 0, 0, 0, [0, [\"(?:7[124-7]|8[124-9])\\\\d{5}\", [7]]]],\n \"SS\": [\"211\", \"00\", \"[19]\\\\d{8}\", [9], [[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[19]\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [0, [\"(?:12|9[1257-9])\\\\d{7}\"]]],\n \"ST\": [\"239\", \"00\", \"(?:22|9\\\\d)\\\\d{5}\", [7], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[29]\"]]], 0, 0, 0, 0, 0, 0, [0, [\"900[5-9]\\\\d{3}|9(?:0[1-9]|[89]\\\\d)\\\\d{4}\"]]],\n \"SV\": [\"503\", \"00\", \"[267]\\\\d{7}|[89]00\\\\d{4}(?:\\\\d{4})?\", [7, 8, 11], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[89]\"]], [\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[267]\"]], [\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"[89]\"]]], 0, 0, 0, 0, 0, 0, [0, [\"66(?:[02-9]\\\\d\\\\d|1(?:[02-9]\\\\d|16))\\\\d{3}|(?:6[0-57-9]|7\\\\d)\\\\d{6}\", [8]]]],\n \"SX\": [\"1\", \"011\", \"7215\\\\d{6}|(?:[58]\\\\d\\\\d|900)\\\\d{7}\", [10], 0, \"1\", 0, \"1|(5\\\\d{6})$\", \"721$1\", 0, \"721\", [0, [\"7215(?:1[02]|2\\\\d|5[034679]|8[014-8])\\\\d{4}\"]]],\n \"SY\": [\"963\", \"00\", \"[1-39]\\\\d{8}|[1-5]\\\\d{7}\", [8, 9], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[1-5]\"], \"0$1\", 1], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"9\"], \"0$1\", 1]], \"0\", 0, 0, 0, 0, 0, [0, [\"9(?:22|[3-589]\\\\d|6[02-9])\\\\d{6}\", [9]]]],\n \"SZ\": [\"268\", \"00\", \"0800\\\\d{4}|(?:[237]\\\\d|900)\\\\d{6}\", [8, 9], [[\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[0237]\"]], [\"(\\\\d{5})(\\\\d{4})\", \"$1 $2\", [\"9\"]]], 0, 0, 0, 0, 0, 0, [0, [\"7[6-9]\\\\d{6}\", [8]]]],\n \"TA\": [\"290\", \"00\", \"8\\\\d{3}\", [4], 0, 0, 0, 0, 0, 0, \"8\"],\n \"TC\": [\"1\", \"011\", \"(?:[58]\\\\d\\\\d|649|900)\\\\d{7}\", [10], 0, \"1\", 0, \"1|([2-479]\\\\d{6})$\", \"649$1\", 0, \"649\", [0, [\"649(?:2(?:3[129]|4[1-79])|3\\\\d\\\\d|4[34][1-3])\\\\d{4}\"]]],\n \"TD\": [\"235\", \"00|16\", \"(?:22|[69]\\\\d|77)\\\\d{6}\", [8], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[2679]\"]]], 0, 0, 0, 0, 0, 0, [0, [\"(?:6[023568]|77|9\\\\d)\\\\d{6}\"]], \"00\"],\n \"TG\": [\"228\", \"00\", \"[279]\\\\d{7}\", [8], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[279]\"]]], 0, 0, 0, 0, 0, 0, [0, [\"(?:7[09]|9[0-36-9])\\\\d{6}\"]]],\n \"TH\": [\"66\", \"00[1-9]\", \"1\\\\d{9}|[1689]\\\\d{8}|[1-57]\\\\d{7}\", [8, 9, 10], [[\"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"2\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[13-9]\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"1\"]]], \"0\", 0, 0, 0, 0, 0, [0, [\"671[0-3]\\\\d{5}|(?:14|6[1-6]|[89]\\\\d)\\\\d{7}\", [9]]]],\n \"TJ\": [\"992\", \"810\", \"(?:00|11|[2-57-9]\\\\d)\\\\d{7}\", [9], [[\"(\\\\d{6})(\\\\d)(\\\\d{2})\", \"$1 $2 $3\", [\"331\", \"3317\"], 0, 1], [\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\", \"$1 $2 $3\", [\"[34]7|91[78]\"], 0, 1], [\"(\\\\d{4})(\\\\d)(\\\\d{4})\", \"$1 $2 $3\", [\"3[1-5]\"], 0, 1], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[02-57-9]|11\"], 0, 1]], \"8\", 0, 0, 0, 0, 0, [0, [\"41[18]\\\\d{6}|(?:[034]0|11|2[02]|5[05]|7[07]|8[08]|9\\\\d)\\\\d{7}\"]], \"8~10\"],\n \"TK\": [\"690\", \"00\", \"[2-47]\\\\d{3,6}\", [4, 5, 6, 7], 0, 0, 0, 0, 0, 0, 0, [0, [\"7[2-4]\\\\d{2,5}\"]]],\n \"TL\": [\"670\", \"00\", \"7\\\\d{7}|(?:[2-47]\\\\d|[89]0)\\\\d{5}\", [7, 8], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[2-489]|70\"]], [\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"7\"]]], 0, 0, 0, 0, 0, 0, [0, [\"7[2-8]\\\\d{6}\", [8]]]],\n \"TM\": [\"993\", \"810\", \"[1-6]\\\\d{7}\", [8], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2-$3-$4\", [\"12\"], \"(8 $1)\"], [\"(\\\\d{3})(\\\\d)(\\\\d{2})(\\\\d{2})\", \"$1 $2-$3-$4\", [\"[1-5]\"], \"(8 $1)\"], [\"(\\\\d{2})(\\\\d{6})\", \"$1 $2\", [\"6\"], \"8 $1\"]], \"8\", 0, 0, 0, 0, 0, [0, [\"6\\\\d{7}\"]], \"8~10\"],\n \"TN\": [\"216\", \"00\", \"[2-57-9]\\\\d{7}\", [8], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[2-57-9]\"]]], 0, 0, 0, 0, 0, 0, [0, [\"3(?:001|[12]40)\\\\d{4}|(?:(?:[259]\\\\d|4[0-7])\\\\d|3(?:1[1-35]|6[0-4]|91))\\\\d{5}\"]]],\n \"TO\": [\"676\", \"00\", \"(?:0800|(?:[5-8]\\\\d\\\\d|999)\\\\d)\\\\d{3}|[2-8]\\\\d{4}\", [5, 7], [[\"(\\\\d{2})(\\\\d{3})\", \"$1-$2\", [\"[2-4]|50|6[09]|7[0-24-69]|8[05]\"]], [\"(\\\\d{4})(\\\\d{3})\", \"$1 $2\", [\"0\"]], [\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[5-9]\"]]], 0, 0, 0, 0, 0, 0, [0, [\"(?:6(?:[09]\\\\d|3[02]|8[15-9])|(?:7\\\\d|8[46-9])\\\\d|999)\\\\d{4}\", [7]]]],\n \"TR\": [\"90\", \"00\", \"4\\\\d{6}|8\\\\d{11,12}|(?:[2-58]\\\\d\\\\d|900)\\\\d{7}\", [7, 10, 12, 13], [[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"512|8[01589]|90\"], \"0$1\", 1], [\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"5(?:[0-59]|61)\", \"5(?:[0-59]|616)\", \"5(?:[0-59]|6161)\"], \"0$1\", 1], [\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[24][1-8]|3[1-9]\"], \"(0$1)\", 1], [\"(\\\\d{3})(\\\\d{3})(\\\\d{6,7})\", \"$1 $2 $3\", [\"80\"], \"0$1\", 1]], \"0\", 0, 0, 0, 0, 0, [0, [\"56161\\\\d{5}|5(?:0[15-7]|1[06]|24|[34]\\\\d|5[1-59]|9[46])\\\\d{7}\", [10]]]],\n \"TT\": [\"1\", \"011\", \"(?:[58]\\\\d\\\\d|900)\\\\d{7}\", [10], 0, \"1\", 0, \"1|([2-46-8]\\\\d{6})$\", \"868$1\", 0, \"868\", [0, [\"868(?:(?:2[5-9]|3\\\\d)\\\\d|4(?:3[0-6]|[6-9]\\\\d)|6(?:20|78|8\\\\d)|7(?:0[1-9]|1[02-9]|[2-9]\\\\d))\\\\d{4}\"]]],\n \"TV\": [\"688\", \"00\", \"(?:2|7\\\\d\\\\d|90)\\\\d{4}\", [5, 6, 7], [[\"(\\\\d{2})(\\\\d{3})\", \"$1 $2\", [\"2\"]], [\"(\\\\d{2})(\\\\d{4})\", \"$1 $2\", [\"90\"]], [\"(\\\\d{2})(\\\\d{5})\", \"$1 $2\", [\"7\"]]], 0, 0, 0, 0, 0, 0, [0, [\"(?:7[01]\\\\d|90)\\\\d{4}\", [6, 7]]]],\n \"TW\": [\"886\", \"0(?:0[25-79]|19)\", \"[2-689]\\\\d{8}|7\\\\d{9,10}|[2-8]\\\\d{7}|2\\\\d{6}\", [7, 8, 9, 10, 11], [[\"(\\\\d{2})(\\\\d)(\\\\d{4})\", \"$1 $2 $3\", [\"202\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[258]0\"], \"0$1\"], [\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\", \"$1 $2 $3\", [\"[23568]|4(?:0[02-48]|[1-47-9])|7[1-9]\", \"[23568]|4(?:0[2-48]|[1-47-9])|(?:400|7)[1-9]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[49]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{4})(\\\\d{4,5})\", \"$1 $2 $3\", [\"7\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [0, [\"(?:40001[0-2]|9[0-8]\\\\d{4})\\\\d{3}\", [9]]], 0, \"#\"],\n \"TZ\": [\"255\", \"00[056]\", \"(?:[26-8]\\\\d|41|90)\\\\d{7}\", [9], [[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\", \"$1 $2 $3\", [\"[89]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[24]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[67]\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [0, [\"77[2-9]\\\\d{6}|(?:6[1-9]|7[1-689])\\\\d{7}\"]]],\n \"UA\": [\"380\", \"00\", \"[89]\\\\d{9}|[3-9]\\\\d{8}\", [9, 10], [[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"6[12][29]|(?:3[1-8]|4[136-8]|5[12457]|6[49])2|(?:56|65)[24]\", \"6[12][29]|(?:35|4[1378]|5[12457]|6[49])2|(?:56|65)[24]|(?:3[1-46-8]|46)2[013-9]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"4[45][0-5]|5(?:0|6[37])|6(?:[12][018]|[36-8])|7|89|9[1-9]|(?:48|57)[0137-9]\", \"4[45][0-5]|5(?:0|6(?:3[14-7]|7))|6(?:[12][018]|[36-8])|7|89|9[1-9]|(?:48|57)[0137-9]\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{5})\", \"$1 $2\", [\"[3-6]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[89]\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [0, [\"(?:50|6[36-8]|7[1-3]|9[1-9])\\\\d{7}\", [9]]], \"0~0\"],\n \"UG\": [\"256\", \"00[057]\", \"800\\\\d{6}|(?:[29]0|[347]\\\\d)\\\\d{7}\", [9], [[\"(\\\\d{4})(\\\\d{5})\", \"$1 $2\", [\"202\", \"2024\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{6})\", \"$1 $2\", [\"[27-9]|4(?:6[45]|[7-9])\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{7})\", \"$1 $2\", [\"[34]\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [0, [\"7260\\\\d{5}|7(?:[0157-9]\\\\d|[26]0|36|4[0-4])\\\\d{6}\"]]],\n \"US\": [\"1\", \"011\", \"[2-9]\\\\d{9}\", [10], [[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"($1) $2-$3\", [\"[2-9]\"], 0, 1, \"$1-$2-$3\"]], \"1\", 0, 0, 0, 0, 0, [0, [\"(?:2(?:0[1-35-9]|1[02-9]|2[03-589]|3[149]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-57-9]|1[02-9]|2[01356]|3[0-24679]|4[167]|5[12]|6[014]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[023578]|58|6[39]|7[0589]|8[04])|5(?:0[1-57-9]|1[0235-8]|20|3[0149]|4[01]|5[19]|6[1-47]|7[0-5]|8[056])|6(?:0[1-35-9]|1[024-9]|2[03689]|[34][016]|5[0179]|6[0-279]|78|8[0-29])|7(?:0[1-46-8]|1[2-9]|2[04-7]|3[1247]|4[037]|5[47]|6[02359]|7[02-59]|8[156])|8(?:0[1-68]|1[02-8]|2[08]|3[0-289]|4[03578]|5[046-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[0146-8]|4[01579]|5[12469]|7[0-389]|8[04-69]))[2-9]\\\\d{6}\"]]],\n \"UY\": [\"598\", \"0(?:0|1[3-9]\\\\d)\", \"4\\\\d{9}|[249]\\\\d{7}|(?:[49]\\\\d|80)\\\\d{5}\", [7, 8, 10], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"405|8|90\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"9\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[24]\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"4\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [0, [\"9[1-9]\\\\d{6}\", [8]]], \"00\", \" int. \"],\n \"UZ\": [\"998\", \"810\", \"(?:33|55|[679]\\\\d|88)\\\\d{7}\", [9], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[35-9]\"], \"8 $1\"]], \"8\", 0, 0, 0, 0, 0, [0, [\"(?:(?:33|88|9[0-57-9])\\\\d{3}|55(?:50[13]|90\\\\d)|6(?:1(?:2(?:2[01]|98)|35[0-4]|50\\\\d|61[23]|7(?:[01][017]|4\\\\d|55|9[5-9]))|2(?:(?:11|7\\\\d)\\\\d|2(?:[12]1|9[01379])|5(?:[126]\\\\d|3[0-4]))|5(?:19[01]|2(?:27|9[26])|(?:30|59|7\\\\d)\\\\d)|6(?:2(?:1[5-9]|2[0367]|38|41|52|60)|(?:3[79]|9[0-3])\\\\d|4(?:56|83)|7(?:[07]\\\\d|1[017]|3[07]|4[047]|5[057]|67|8[0178]|9[79]))|7(?:2(?:24|3[237]|4[5-9]|7[15-8])|5(?:7[12]|8[0589])|7(?:0\\\\d|[39][07])|9(?:0\\\\d|7[079]))|9(?:2(?:1[1267]|3[01]|5\\\\d|7[0-4])|(?:5[67]|7\\\\d)\\\\d|6(?:2[0-26]|8\\\\d)))|7(?:[07]\\\\d{3}|1(?:13[01]|6(?:0[47]|1[67]|66)|71[3-69]|98\\\\d)|2(?:2(?:2[79]|95)|3(?:2[5-9]|6[0-6])|57\\\\d|7(?:0\\\\d|1[17]|2[27]|3[37]|44|5[057]|66|88))|3(?:2(?:1[0-6]|21|3[469]|7[159])|(?:33|9[4-6])\\\\d|5(?:0[0-4]|5[579]|9\\\\d)|7(?:[0-3579]\\\\d|4[0467]|6[67]|8[078]))|4(?:2(?:29|5[0257]|6[0-7]|7[1-57])|5(?:1[0-4]|8\\\\d|9[5-9])|7(?:0\\\\d|1[024589]|2[0-27]|3[0137]|[46][07]|5[01]|7[5-9]|9[079])|9(?:7[015-9]|[89]\\\\d))|5(?:112|2(?:0\\\\d|2[29]|[49]4)|3[1568]\\\\d|52[6-9]|7(?:0[01578]|1[017]|[23]7|4[047]|[5-7]\\\\d|8[78]|9[079]))|6(?:2(?:2[1245]|4[2-4])|39\\\\d|41[179]|5(?:[349]\\\\d|5[0-2])|7(?:0[017]|[13]\\\\d|22|44|55|67|88))|9(?:22[128]|3(?:2[0-4]|7\\\\d)|57[02569]|7(?:2[05-9]|3[37]|4\\\\d|60|7[2579]|87|9[07]))))\\\\d{4}\"]], \"8~10\"],\n \"VA\": [\"39\", \"00\", \"0\\\\d{5,10}|3[0-8]\\\\d{7,10}|55\\\\d{8}|8\\\\d{5}(?:\\\\d{2,4})?|(?:1\\\\d|39)\\\\d{7,8}\", [6, 7, 8, 9, 10, 11], 0, 0, 0, 0, 0, 0, \"06698\", [0, [\"3[1-9]\\\\d{8}|3[2-9]\\\\d{7}\", [9, 10]]]],\n \"VC\": [\"1\", \"011\", \"(?:[58]\\\\d\\\\d|784|900)\\\\d{7}\", [10], 0, \"1\", 0, \"1|([2-7]\\\\d{6})$\", \"784$1\", 0, \"784\", [0, [\"784(?:4(?:3[0-5]|5[45]|89|9[0-8])|5(?:2[6-9]|3[0-4])|720)\\\\d{4}\"]]],\n \"VE\": [\"58\", \"00\", \"[68]00\\\\d{7}|(?:[24]\\\\d|[59]0)\\\\d{8}\", [10], [[\"(\\\\d{3})(\\\\d{7})\", \"$1-$2\", [\"[24-689]\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [0, [\"4(?:1[24-8]|2[46])\\\\d{7}\"]]],\n \"VG\": [\"1\", \"011\", \"(?:284|[58]\\\\d\\\\d|900)\\\\d{7}\", [10], 0, \"1\", 0, \"1|([2-578]\\\\d{6})$\", \"284$1\", 0, \"284\", [0, [\"284496[6-9]\\\\d{3}|284(?:245|3(?:0[0-3]|4[0-7]|68|9[34])|4(?:4[0-6]|68|99)|5(?:4[0-7]|68|9[69]))\\\\d{4}\"]]],\n \"VI\": [\"1\", \"011\", \"[58]\\\\d{9}|(?:34|90)0\\\\d{7}\", [10], 0, \"1\", 0, \"1|([2-9]\\\\d{6})$\", \"340$1\", 0, \"340\", [0, [\"340(?:2(?:0[12]|2[06-8]|4[49]|77)|3(?:32|44)|4(?:2[23]|44|7[34]|89)|5(?:1[34]|55)|6(?:2[56]|4[23]|77|9[023])|7(?:1[2-57-9]|2[57]|7\\\\d)|884|998)\\\\d{4}\"]]],\n \"VN\": [\"84\", \"00\", \"[12]\\\\d{9}|[135-9]\\\\d{8}|[16]\\\\d{7}|[16-8]\\\\d{6}\", [7, 8, 9, 10], [[\"(\\\\d{2})(\\\\d{5})\", \"$1 $2\", [\"80\"], \"0$1\", 1], [\"(\\\\d{4})(\\\\d{4,6})\", \"$1 $2\", [\"1\"], 0, 1], [\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[69]\"], \"0$1\", 1], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[3578]\"], \"0$1\", 1], [\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"2[48]\"], \"0$1\", 1], [\"(\\\\d{3})(\\\\d{4})(\\\\d{3})\", \"$1 $2 $3\", [\"2\"], \"0$1\", 1]], \"0\", 0, 0, 0, 0, 0, [0, [\"(?:5(?:2[238]|59)|89[689]|99[013-9])\\\\d{6}|(?:3\\\\d|5[689]|7[06-9]|8[1-8]|9[0-8])\\\\d{7}\", [9]]]],\n \"VU\": [\"678\", \"00\", \"[57-9]\\\\d{6}|(?:[238]\\\\d|48)\\\\d{3}\", [5, 7], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[57-9]\"]]], 0, 0, 0, 0, 0, 0, [0, [\"(?:[58]\\\\d|7[013-7])\\\\d{5}\", [7]]]],\n \"WF\": [\"681\", \"00\", \"(?:40|72)\\\\d{4}|8\\\\d{5}(?:\\\\d{3})?\", [6, 9], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3\", [\"[478]\"]], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"8\"]]], 0, 0, 0, 0, 0, 0, [0, [\"(?:72|8[23])\\\\d{4}\", [6]]]],\n \"WS\": [\"685\", \"0\", \"(?:[2-6]|8\\\\d{5})\\\\d{4}|[78]\\\\d{6}|[68]\\\\d{5}\", [5, 6, 7, 10], [[\"(\\\\d{5})\", \"$1\", [\"[2-5]|6[1-9]\"]], [\"(\\\\d{3})(\\\\d{3,7})\", \"$1 $2\", [\"[68]\"]], [\"(\\\\d{2})(\\\\d{5})\", \"$1 $2\", [\"7\"]]], 0, 0, 0, 0, 0, 0, [0, [\"(?:7[1-35-7]|8(?:[3-7]|9\\\\d{3}))\\\\d{5}\", [7, 10]]]],\n \"XK\": [\"383\", \"00\", \"[23]\\\\d{7,8}|(?:4\\\\d\\\\d|[89]00)\\\\d{5}\", [8, 9], [[\"(\\\\d{3})(\\\\d{5})\", \"$1 $2\", [\"[89]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[2-4]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[23]\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [0, [\"4[3-9]\\\\d{6}\", [8]]]],\n \"YE\": [\"967\", \"00\", \"(?:1|7\\\\d)\\\\d{7}|[1-7]\\\\d{6}\", [7, 8, 9], [[\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[1-6]|7[24-68]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"7\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [0, [\"7[0137]\\\\d{7}\", [9]]]],\n \"YT\": [\"262\", \"00\", \"80\\\\d{7}|(?:26|63)9\\\\d{6}\", [9], 0, \"0\", 0, 0, 0, 0, \"269|63\", [0, [\"639(?:0[0-79]|1[019]|[267]\\\\d|3[09]|[45]0|9[04-79])\\\\d{4}\"]]],\n \"ZA\": [\"27\", \"00\", \"[1-79]\\\\d{8}|8\\\\d{4,9}\", [5, 6, 7, 8, 9, 10], [[\"(\\\\d{2})(\\\\d{3,4})\", \"$1 $2\", [\"8[1-4]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\", \"$1 $2 $3\", [\"8[1-4]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"860\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[1-9]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"8\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [0, [\"(?:1(?:3492[0-25]|4495[0235]|549(?:20|5[01]))|4[34]492[01])\\\\d{3}|8[1-4]\\\\d{3,7}|(?:2[27]|47|54)4950\\\\d{3}|(?:1(?:049[2-4]|9[12]\\\\d\\\\d)|(?:6\\\\d|7[0-46-9])\\\\d{3}|8(?:5\\\\d{3}|7(?:08[67]|158|28[5-9]|310)))\\\\d{4}|(?:1[6-8]|28|3[2-69]|4[025689]|5[36-8])4920\\\\d{3}|(?:12|[2-5]1)492\\\\d{4}\", [5, 6, 7, 8, 9]]]],\n \"ZM\": [\"260\", \"00\", \"(?:63|80)0\\\\d{6}|(?:21|[79]\\\\d)\\\\d{7}\", [9], [[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[28]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{7})\", \"$1 $2\", [\"[79]\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [0, [\"(?:7[679]|9[5-8])\\\\d{7}\"]]],\n \"ZW\": [\"263\", \"00\", \"2(?:[0-57-9]\\\\d{6,8}|6[0-24-9]\\\\d{6,7})|[38]\\\\d{9}|[35-8]\\\\d{8}|[3-6]\\\\d{7}|[1-689]\\\\d{6}|[1-3569]\\\\d{5}|[1356]\\\\d{4}\", [5, 6, 7, 8, 9, 10], [[\"(\\\\d{3})(\\\\d{3,5})\", \"$1 $2\", [\"2(?:0[45]|2[278]|[49]8)|3(?:[09]8|17)|6(?:[29]8|37|75)|[23][78]|(?:33|5[15]|6[68])[78]\"], \"0$1\"], [\"(\\\\d)(\\\\d{3})(\\\\d{2,4})\", \"$1 $2 $3\", [\"[49]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"80\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{7})\", \"$1 $2\", [\"24|8[13-59]|(?:2[05-79]|39|5[45]|6[15-8])2\", \"2(?:02[014]|4|[56]20|[79]2)|392|5(?:42|525)|6(?:[16-8]21|52[013])|8[13-59]\"], \"(0$1)\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"7\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"2(?:1[39]|2[0157]|[378]|[56][14])|3(?:12|29)\", \"2(?:1[39]|2[0157]|[378]|[56][14])|3(?:123|29)\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{6})\", \"$1 $2\", [\"8\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3,5})\", \"$1 $2\", [\"1|2(?:0[0-36-9]|12|29|[56])|3(?:1[0-689]|[24-6])|5(?:[0236-9]|1[2-4])|6(?:[013-59]|7[0-46-9])|(?:33|55|6[68])[0-69]|(?:29|3[09]|62)[0-79]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"29[013-9]|39|54\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{3,5})\", \"$1 $2\", [\"(?:25|54)8\", \"258|5483\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [0, [\"7(?:[17]\\\\d|[38][1-9])\\\\d{6}\", [9]]]]\n },\n \"nonGeographic\": {\n \"800\": [\"800\", 0, \"[1-9]\\\\d{7}\", [8], [[\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[1-9]\"]]], 0, 0, 0, 0, 0, 0, [0, 0, [\"[1-9]\\\\d{7}\"]]],\n \"808\": [\"808\", 0, \"[1-9]\\\\d{7}\", [8], [[\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[1-9]\"]]], 0, 0, 0, 0, 0, 0, [0, 0, 0, 0, 0, 0, 0, 0, 0, [\"[1-9]\\\\d{7}\"]]],\n \"870\": [\"870\", 0, \"7\\\\d{11}|[35-7]\\\\d{8}\", [9, 12], [[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[35-7]\"]]], 0, 0, 0, 0, 0, 0, [0, [\"(?:[356]|774[45])\\\\d{8}|7[6-8]\\\\d{7}\"]]],\n \"878\": [\"878\", 0, \"10\\\\d{10}\", [12], [[\"(\\\\d{2})(\\\\d{5})(\\\\d{5})\", \"$1 $2 $3\", [\"1\"]]], 0, 0, 0, 0, 0, 0, [0, 0, 0, 0, 0, 0, 0, 0, [\"10\\\\d{10}\"]]],\n \"881\": [\"881\", 0, \"[0-36-9]\\\\d{8}\", [9], [[\"(\\\\d)(\\\\d{3})(\\\\d{5})\", \"$1 $2 $3\", [\"[0-36-9]\"]]], 0, 0, 0, 0, 0, 0, [0, [\"[0-36-9]\\\\d{8}\"]]],\n \"882\": [\"882\", 0, \"[13]\\\\d{6}(?:\\\\d{2,5})?|285\\\\d{9}|(?:[19]\\\\d|49)\\\\d{6}\", [7, 8, 9, 10, 11, 12], [[\"(\\\\d{2})(\\\\d{5})\", \"$1 $2\", [\"16|342\"]], [\"(\\\\d{2})(\\\\d{6})\", \"$1 $2\", [\"4\"]], [\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\", \"$1 $2 $3\", [\"[19]\"]], [\"(\\\\d{2})(\\\\d{4})(\\\\d{3})\", \"$1 $2 $3\", [\"3[23]\"]], [\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\", \"$1 $2 $3\", [\"1\"]], [\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"34[57]\"]], [\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"34\"]], [\"(\\\\d{2})(\\\\d{4,5})(\\\\d{5})\", \"$1 $2 $3\", [\"[1-3]\"]]], 0, 0, 0, 0, 0, 0, [0, [\"342\\\\d{4}|(?:337|49)\\\\d{6}|3(?:2|47|7\\\\d{3})\\\\d{7}\", [7, 8, 9, 10, 12]], 0, 0, 0, 0, 0, 0, [\"1(?:3(?:0[0347]|[13][0139]|2[035]|4[013568]|6[0459]|7[06]|8[15-8]|9[0689])\\\\d{4}|6\\\\d{5,10})|(?:(?:285\\\\d\\\\d|3(?:45|[69]\\\\d{3}))\\\\d|9[89])\\\\d{6}\"]]],\n \"883\": [\"883\", 0, \"210\\\\d{7}|51\\\\d{7}(?:\\\\d{3})?\", [9, 10, 12], [[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"510\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"2\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"510\"]], [\"(\\\\d{4})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"5\"]]], 0, 0, 0, 0, 0, 0, [0, 0, 0, 0, 0, 0, 0, 0, [\"(?:210|51[013]0\\\\d)\\\\d{7}|5100\\\\d{5}\"]]],\n \"888\": [\"888\", 0, \"\\\\d{11}\", [11], [[\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\", \"$1 $2 $3\"]], 0, 0, 0, 0, 0, 0, [0, 0, 0, 0, 0, 0, [\"\\\\d{11}\"]]],\n \"979\": [\"979\", 0, \"[1359]\\\\d{8}\", [9], [[\"(\\\\d)(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"[1359]\"]]], 0, 0, 0, 0, 0, 0, [0, 0, 0, [\"[1359]\\\\d{8}\"]]]\n }\n};","// Importing from `.json.js` a workaround for a bug in web browsers' \"native\"\n// ES6 importing system which is uncapable of importing \"*.json\" files.\n// https://github.com/catamphetamine/libphonenumber-js/issues/239\nimport metadata from '../metadata.mobile.json.js';\nexport default metadata;\nexport function withMetadata(func, _arguments) {\n var args = Array.prototype.slice.call(_arguments);\n args.push(metadata);\n return func.apply(this, args);\n}","// @noflow\nimport type { Language } from '@/packs/localisation'\nimport EstimatedDailyPlanPrices from '@/static_content/EstimatedDailyPlanPrices'\nimport { useReactiveVar } from '@apollo/client'\nimport React, { useCallback } from 'react'\nimport { useTranslation } from 'react-i18next'\n\nimport { DiscountBasis } from '@/utils/butternutbox/discountCodes'\nimport { countryCodeToLocaleCurrency } from '@/utils/countryCodeHelper'\nimport { formatCurrencyWithDecimal } from '@/utils/currency'\nimport * as Sentry from '@/utils/sentry'\n\nimport Image from '@/components/shared/elements/Image/Image'\nimport { ageToAgeCategory } from '@/components/shared/elements/RoughCostCalculator/helpers/roughCostCalculatorHelpers'\n\nimport type { Code as CountryCode } from '@/shared_types/rails_models/shipping_countries'\n\nimport { dogDetailsState } from './DogDetailsForm'\n\ntype Props = {\n description: string\n planType: 'mix' | 'all' | 'bowl'\n copyContext: string\n namespace: string\n preferredLanguage: Language\n shippingCountryCode: CountryCode\n discountValue: number\n discountBasis: DiscountBasis\n align?: 'center'\n}\n\nconst Plan = ({\n description,\n planType,\n copyContext,\n namespace,\n preferredLanguage,\n shippingCountryCode,\n discountValue,\n discountBasis,\n align\n}: Props): JSX.Element | null => {\n const baseClass = 'rough-cost-calculator__plan'\n const { t } = useTranslation(namespace)\n\n const { locale, currency } = countryCodeToLocaleCurrency(\n shippingCountryCode,\n preferredLanguage\n )\n\n const dogDetails = useReactiveVar(dogDetailsState)\n\n const getDiscountedPrice = useCallback(\n (price: number, discountValue: number, discountBasis: DiscountBasis) => {\n if (discountValue && discountBasis === 'percentage') {\n return price - (price * discountValue) / 100\n }\n },\n []\n )\n\n const dogAgeCategory = ageToAgeCategory(dogDetails.age)\n\n const dailyPlanPrices = EstimatedDailyPlanPrices.find(\n ({ ageCategory, size }) =>\n ageCategory === dogAgeCategory && size === dogDetails.weight\n )\n if (!dailyPlanPrices) {\n Sentry.captureException(\n 'dailyPlanPrices not found for Rough Cost Calculator'\n )\n return null\n }\n\n const mixedPlanDailyPrice = dailyPlanPrices[shippingCountryCode].mix\n const allPlanDailyPrice = dailyPlanPrices[shippingCountryCode].all\n\n const allPlanDiscountedPrice =\n (discountValue &&\n discountBasis &&\n getDiscountedPrice(\n allPlanDailyPrice,\n discountValue,\n discountBasis as DiscountBasis\n )) ||\n 0\n\n const mixedPlanDiscountedPrice =\n discountValue && discountBasis\n ? getDiscountedPrice(\n mixedPlanDailyPrice,\n discountValue,\n discountBasis as DiscountBasis\n )\n : 0\n\n const strikethroughPrice =\n planType === 'mix' ? mixedPlanDailyPrice : allPlanDailyPrice\n const discountedPrice =\n planType === 'mix' ? mixedPlanDiscountedPrice : allPlanDiscountedPrice\n\n const imageAlt = () => {\n switch (planType) {\n case 'bowl':\n return t(`${copyContext}.bowl_butternut_img_alt`)\n case 'mix':\n return t(`${copyContext}.mix_butternut_img_alt`)\n default:\n return t(`${copyContext}.full_butternut_img_alt`)\n }\n }\n const imageSlug = () => {\n switch (planType) {\n case 'bowl':\n return 'duck-and-chicken-bowl'\n case 'mix':\n return 'most-butternut-with-pink-background'\n default:\n return 'all-butternut-with-pink-background'\n }\n }\n\n const isDiscounted = !!(discountedPrice && discountedPrice > 0)\n\n return (\n <div className={`${baseClass} ${align ? `${baseClass}--${align}` : ''}`}>\n <div className={`${baseClass}__image-wrapper`}>\n <Image\n alt={imageAlt()}\n slug={imageSlug()}\n image={{\n width: 80,\n height: 80,\n resizeMode: 'resize_to_fill',\n retina: true\n }}\n className={`${baseClass}__image-wrapper__image`}\n />\n </div>\n <div className={`${baseClass}__text-wrapper`}>\n <p className=\"text-regular-16 no-scale\">{description}</p>\n <p>\n <span\n className={`display-24 no-scale ${\n isDiscounted ? baseClass + '__discounted-price' : ''\n }`}\n >\n {formatCurrencyWithDecimal(\n isDiscounted ? discountedPrice : strikethroughPrice,\n {\n locale,\n currency\n }\n )}\n </span>\n <span className=\"text-regular-16 no-scale\">\n {t(`${copyContext}.per_day`)}\n </span>\n </p>\n {isDiscounted && (\n <p className=\"text-regular-14 no-scale strikethrough\">\n <span>\n {formatCurrencyWithDecimal(strikethroughPrice, {\n locale,\n currency\n })}\n </span>\n {t(`${copyContext}.per_day`)}\n </p>\n )}\n </div>\n </div>\n )\n}\n\nexport type { Props }\nexport default Plan\n","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\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}","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}","// @flow\n\n/**\n * Brand Colours\n * Here is where we define our core brand colours in JavaScript variables so we\n * can pass them as parameters into our asset functions that are stored inside\n * 'javascript/assets/...'. These colours should ALWAYS be in-line with the\n * variables stored in our `_colours.scss` CSS sheet.\n */\n\ntype BrandColours = {|\n // Blue\n brandBlue100: '#ecf4f9',\n brandBlue200: '#c9dbe8',\n brandBlue300: '#94b8d1',\n brandBlue400: '#3f769e',\n brandBlue500: '#174f78',\n brandBlue600: '#0f3f61',\n brandBlue700: '#092d46',\n\n // Yellow\n brandYellow100: '#fbf8e9',\n brandYellow200: '#fbedb6',\n brandYellow300: '#ffe180',\n brandYellow400: '#ffd54b',\n brandYellow500: '#efbf0b',\n brandYellow600: '#d9b226',\n brandYellow700: '#8c741f',\n\n // Pink\n brandPink100: '#f9ecec',\n brandPink200: '#f2c4c4',\n brandPink300: '#e89797',\n brandPink400: '#df6d6d',\n brandPink500: '#bf4040',\n brandPink600: '#933',\n brandPink700: '#7a1f1f',\n\n // Red\n brandRed100: '#f9eeec',\n brandRed200: '#f5c5bc',\n brandRed300: '#ef9f90',\n brandRed400: '#e66c55',\n brandRed500: '#cc4b33',\n brandRed600: '#a83924',\n brandRed700: '#7e2b1b',\n\n // Black\n brandBlack: '#000',\n\n // White\n brandWhite: '#fff',\n\n // Brown\n cardboardBrown: '#85614d'\n|}\n\nconst BRAND_COLOURS: BrandColours = {\n // Blue\n brandBlue100: '#ecf4f9',\n brandBlue200: '#c9dbe8',\n brandBlue300: '#94b8d1',\n brandBlue400: '#3f769e',\n brandBlue500: '#174f78',\n brandBlue600: '#0f3f61',\n brandBlue700: '#092d46',\n\n // Yellow\n brandYellow100: '#fbf8e9',\n brandYellow200: '#fbedb6',\n brandYellow300: '#ffe180',\n brandYellow400: '#ffd54b',\n brandYellow500: '#efbf0b',\n brandYellow600: '#d9b226',\n brandYellow700: '#8c741f',\n\n // Pink\n brandPink100: '#f9ecec',\n brandPink200: '#f2c4c4',\n brandPink300: '#e89797',\n brandPink400: '#df6d6d',\n brandPink500: '#bf4040',\n brandPink600: '#933',\n brandPink700: '#7a1f1f',\n\n // Red\n brandRed100: '#f9eeec',\n brandRed200: '#f5c5bc',\n brandRed300: '#ef9f90',\n brandRed400: '#e66c55',\n brandRed500: '#cc4b33',\n brandRed600: '#a83924',\n brandRed700: '#7e2b1b',\n\n // Black\n brandBlack: '#000',\n\n // White\n brandWhite: '#fff',\n\n // Brown\n cardboardBrown: '#85614d'\n}\n\nexport default BRAND_COLOURS\n\nexport type { BrandColours }\n","// @noflow\nimport BreedQuestionnaire from './BreedQuestionnaire'\n\nexport default BreedQuestionnaire\n","// @noflow\nimport i18next from 'i18next'\nimport * as React from 'react'\nimport {\n ChangeEvent,\n Fragment,\n ReactElement,\n useCallback,\n useEffect,\n useState\n} from 'react'\n\nimport * as Validation from '@/components/pages/CheckoutPage/components/Validation/Validation'\nimport * as inputHelpers from '@/components/pages/CheckoutPage/helpers/inputs'\n\nimport { validationIndicator } from '../../helpers/inputs'\nimport { BaseInputField, InputWithString } from './InputField'\n\ntype Props = {\n value: InputWithString\n dataTestId?: string\n onBlur: (event: ChangeEvent<HTMLInputElement>) => void\n onChange: (event: ChangeEvent<HTMLInputElement>) => void\n}\n\nenum RuleId {\n MinimumLength = 'minimumLength',\n OneUpperCaseLetter = 'oneUpperCaseLetter',\n OneSpecialCharacterOrNumber = 'oneSpecialCharacterOrNumber',\n OneLowercaseLetter = 'oneLowercaseLetter'\n}\n\ntype PasswordRule = {\n id: RuleId\n valid: boolean | null\n ruleMessage: string\n}\n\ntype PasswordRulesState = PasswordRule[]\n\n// Password Rules\n// Regular expression to check for at least one uppercase letter\n// Example: \"Hello\" matches the condition as it has an uppercase \"H\"\nconst oneUpperCaseLetter = /[A-Z]/\n\n// Regular expression to check for at least one lowercase letter\n// Example: \"Hello\" matches the condition as it has lowercase letters \"ello\"\nconst oneLowercaseLetter = /[a-z]/\n\n// Regular expression to check for a minimum length of 8 characters\n// Example: \"Hello123\" matches the condition as it has 8 characters\nconst maximumLength = /^.{8,}$/\n\n// Regular expression to check for at least one special character or number\n// Example: \"Hello@123\" matches the condition as it has a special character \"@\" and numbers \"123\"\nconst oneSpecialCharacterOrNumber = /[\\W\\d]/\n\nconst ValidationMessage = ({ rule }: { rule: PasswordRule }) => {\n switch (rule.valid) {\n case null:\n return (\n <p className=\"checkout__password-helper checkout__password-helper--grey\">\n <Validation.Checkmark color=\"grey\" />\n {rule.ruleMessage}\n </p>\n )\n case true:\n return (\n <p className=\"checkout__password-helper checkout__password-helper--green\">\n <Validation.Checkmark color=\"green\" />\n {rule.ruleMessage}\n </p>\n )\n case false:\n return (\n <p className=\"checkout__password-helper checkout__password-helper--red\">\n <Validation.Checkmark color=\"red\" />\n {rule.ruleMessage}\n </p>\n )\n }\n}\n\nconst invalidatePasswordField = (value: InputWithString): void => {\n // Clear the password field\n value.value = ''\n\n // Set the password field to NotInteractingInteracted\n value.inputInteractionState = 'NotInteractingInteracted'\n\n // Validate the password field\n const errorMessage = inputHelpers.validate(value.value, 'password')\n\n // Set the error message\n value.errorMessage = errorMessage\n}\n\n/**\n * `PasswordInputField` is a React component that renders an input field for password entry.\n * It also includes password validation rules and displays validation messages.\n *\n * @component\n * @param {object} props - The properties that define the component's behavior and display.\n * @param {string} props.value - The current value of the password input field.\n * @param {function} props.onBlur - The function to be called when the input field loses focus.\n * @param {function} props.onChange - The function to be called when the value of the input field changes.\n *\n * @returns {ReactElement} A React element representing the password input field.\n *\n * @example\n * // To use this component, import it and use it in your React component's render method:\n * import PasswordInputField from './PasswordInputField';\n *\n * function MyComponent() {\n * const [password, setPassword] = useState('');\n *\n * return (\n * <PasswordInputField\n * value={password}\n * onBlur={() => console.log('Input field lost focus')}\n * onChange={(e) => setPassword(e.target.value)}\n * />\n * );\n * }\n */\nconst PasswordInputField = ({\n value,\n dataTestId,\n onBlur,\n onChange\n}: Props): ReactElement => {\n const copyContext = 'checkout:errors.password'\n const [passwordDisplayed, setPasswordDisplayed] = useState(false)\n const [passwordRules, setPassWordRules] = useState<PasswordRulesState>([\n {\n id: RuleId.MinimumLength,\n valid: null,\n ruleMessage: i18next.t(`${copyContext}.minimum_length`)\n },\n {\n id: RuleId.OneUpperCaseLetter,\n valid: null,\n ruleMessage: i18next.t(`${copyContext}.one_uppercase_letter`)\n },\n {\n id: RuleId.OneSpecialCharacterOrNumber,\n valid: null,\n ruleMessage: i18next.t(`${copyContext}.one_special_character_or_number`)\n },\n {\n id: RuleId.OneLowercaseLetter,\n valid: null,\n ruleMessage: i18next.t(`${copyContext}.one_lowercase_letter`)\n }\n ])\n\n const testValue = useCallback(\n (value: string, pattern: RegExp) => pattern.test(value),\n []\n )\n\n const indicator = validationIndicator(value)\n\n const validateValue = useCallback(\n (value: string) => {\n setPassWordRules((prevRules) =>\n prevRules.map((rule) => {\n switch (rule.id) {\n case 'minimumLength':\n return {\n ...rule,\n valid: testValue(value, maximumLength)\n }\n case 'oneUpperCaseLetter':\n return {\n ...rule,\n valid: testValue(value, oneUpperCaseLetter)\n }\n case 'oneSpecialCharacterOrNumber':\n return {\n ...rule,\n valid: testValue(value, oneSpecialCharacterOrNumber)\n }\n case 'oneLowercaseLetter':\n return {\n ...rule,\n valid: testValue(value, oneLowercaseLetter)\n }\n default:\n return rule\n }\n })\n )\n },\n [testValue]\n )\n\n const onChangeCallback = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n onChange(event)\n validateValue(event.currentTarget.value)\n },\n [onChange, validateValue]\n )\n\n const togglePasswordVisibility = useCallback(() => {\n setPasswordDisplayed(!passwordDisplayed)\n }, [passwordDisplayed])\n\n // If a value is already present, validate it on\n // component load and set the state of the password\n // rules appropriately\n useEffect(() => {\n if (value.inputInteractionState === 'NotInteractingInteracted') {\n validateValue(value.value)\n }\n }, [value.value, validateValue, value.inputInteractionState])\n\n return (\n <Fragment>\n <BaseInputField\n fieldName={passwordDisplayed ? 'visible-password' : 'password'}\n isValid={indicator !== 'error'}\n dataTestId={dataTestId}\n onBlur={onBlur}\n onChange={onChangeCallback}\n value={value.value}\n >\n <span\n aria-label={\n passwordDisplayed\n ? i18next.t('checkout:input_placeholders.hide_password')\n : i18next.t('checkout:input_placeholders.show_password')\n }\n className={`password-display-toggle${\n passwordDisplayed ? ' visible' : ''\n }`}\n onClick={togglePasswordVisibility}\n onKeyPress={togglePasswordVisibility}\n role=\"button\"\n tabIndex={0}\n />\n </BaseInputField>\n <div className=\"checkout__password-helper-container\">\n {passwordRules.map((rule) => (\n <ValidationMessage key={rule.id} rule={rule} />\n ))}\n </div>\n </Fragment>\n )\n}\n\nexport default PasswordInputField\n\nexport {\n oneUpperCaseLetter,\n oneLowercaseLetter,\n maximumLength,\n oneSpecialCharacterOrNumber,\n invalidatePasswordField\n}\n","// A [trie](https://en.wikipedia.org/wiki/Trie) data structure that holds\n// object keys weakly, yet can also hold non-object keys, unlike the\n// native `WeakMap`.\n// If no makeData function is supplied, the looked-up data will be an empty,\n// null-prototype Object.\nvar defaultMakeData = function defaultMakeData() {\n return Object.create(null);\n}; // Useful for processing arguments objects as well as arrays.\n\n\nvar _a = Array.prototype,\n forEach = _a.forEach,\n slice = _a.slice;\n\nvar Trie =\n/** @class */\nfunction () {\n function Trie(weakness, makeData) {\n if (weakness === void 0) {\n weakness = true;\n }\n\n if (makeData === void 0) {\n makeData = defaultMakeData;\n }\n\n this.weakness = weakness;\n this.makeData = makeData;\n }\n\n Trie.prototype.lookup = function () {\n var array = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n array[_i] = arguments[_i];\n }\n\n return this.lookupArray(array);\n };\n\n Trie.prototype.lookupArray = function (array) {\n var node = this;\n forEach.call(array, function (key) {\n return node = node.getChildTrie(key);\n });\n return node.data || (node.data = this.makeData(slice.call(array)));\n };\n\n Trie.prototype.getChildTrie = function (key) {\n var map = this.weakness && isObjRef(key) ? this.weak || (this.weak = new WeakMap()) : this.strong || (this.strong = new Map());\n var child = map.get(key);\n if (!child) map.set(key, child = new Trie(this.weakness, this.makeData));\n return child;\n };\n\n return Trie;\n}();\n\nfunction isObjRef(value) {\n switch (typeof value) {\n case \"object\":\n if (value === null) break;\n // Fall through to return true...\n\n case \"function\":\n return true;\n }\n\n return false;\n}\n\nexport { Trie };","import differenceInMilliseconds from \"../differenceInMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getRoundingMethod } from \"../_lib/roundingMethods/index.js\";\n/**\n * @name differenceInSeconds\n * @category Second Helpers\n * @summary Get the number of seconds between the given dates.\n *\n * @description\n * Get the number of seconds between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @param {Object} [options] - an object with options.\n * @param {String} [options.roundingMethod='trunc'] - a rounding method (`ceil`, `floor`, `round` or `trunc`)\n * @returns {Number} the number of seconds\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many seconds are between\n * // 2 July 2014 12:30:07.999 and 2 July 2014 12:30:20.000?\n * const result = differenceInSeconds(\n * new Date(2014, 6, 2, 12, 30, 20, 0),\n * new Date(2014, 6, 2, 12, 30, 7, 999)\n * )\n * //=> 12\n */\n\nexport default function differenceInSeconds(dateLeft, dateRight, options) {\n requiredArgs(2, arguments);\n var diff = differenceInMilliseconds(dateLeft, dateRight) / 1000;\n return getRoundingMethod(options === null || options === void 0 ? void 0 : options.roundingMethod)(diff);\n}","const times = (n: number): number[] => {\n return Array.from({ length: n }, (_, i) => i)\n}\n\nexport default times\n","'use strict';\n\nexports.__esModule = true;\nexports.extend = extend;\nexports.indexOf = indexOf;\nexports.escapeExpression = escapeExpression;\nexports.isEmpty = isEmpty;\nexports.createFrame = createFrame;\nexports.blockParams = blockParams;\nexports.appendContextPath = appendContextPath;\nvar escape = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '`': '`',\n '=': '='\n};\nvar badChars = /[&<>\"'`=]/g,\n possible = /[&<>\"'`=]/;\n\nfunction escapeChar(chr) {\n return escape[chr];\n}\n\nfunction extend(obj\n/* , ...source */\n) {\n for (var i = 1; i < arguments.length; i++) {\n for (var key in arguments[i]) {\n if (Object.prototype.hasOwnProperty.call(arguments[i], key)) {\n obj[key] = arguments[i][key];\n }\n }\n }\n\n return obj;\n}\n\nvar toString = Object.prototype.toString;\nexports.toString = toString; // Sourced from lodash\n// https://github.com/bestiejs/lodash/blob/master/LICENSE.txt\n\n/* eslint-disable func-style */\n\nvar isFunction = function isFunction(value) {\n return typeof value === 'function';\n}; // fallback for older versions of Chrome and Safari\n\n/* istanbul ignore next */\n\n\nif (isFunction(/x/)) {\n exports.isFunction = isFunction = function isFunction(value) {\n return typeof value === 'function' && toString.call(value) === '[object Function]';\n };\n}\n\nexports.isFunction = isFunction;\n/* eslint-enable func-style */\n\n/* istanbul ignore next */\n\nvar isArray = Array.isArray || function (value) {\n return value && typeof value === 'object' ? toString.call(value) === '[object Array]' : false;\n};\n\nexports.isArray = isArray; // Older IE versions do not directly support indexOf so we must implement our own, sadly.\n\nfunction indexOf(array, value) {\n for (var i = 0, len = array.length; i < len; i++) {\n if (array[i] === value) {\n return i;\n }\n }\n\n return -1;\n}\n\nfunction escapeExpression(string) {\n if (typeof string !== 'string') {\n // don't escape SafeStrings, since they're already safe\n if (string && string.toHTML) {\n return string.toHTML();\n } else if (string == null) {\n return '';\n } else if (!string) {\n return string + '';\n } // Force a string conversion as this will be done by the append regardless and\n // the regex test will do this transparently behind the scenes, causing issues if\n // an object's to string has escaped characters in it.\n\n\n string = '' + string;\n }\n\n if (!possible.test(string)) {\n return string;\n }\n\n return string.replace(badChars, escapeChar);\n}\n\nfunction isEmpty(value) {\n if (!value && value !== 0) {\n return true;\n } else if (isArray(value) && value.length === 0) {\n return true;\n } else {\n return false;\n }\n}\n\nfunction createFrame(object) {\n var frame = extend({}, object);\n frame._parent = object;\n return frame;\n}\n\nfunction blockParams(params, ids) {\n params.path = ids;\n return params;\n}\n\nfunction appendContextPath(contextPath, id) {\n return (contextPath ? contextPath + '.' : '') + id;\n}","/**\r\n * Strips any national prefix (such as 0, 1) present in a\r\n * (possibly incomplete) number provided.\r\n * \"Carrier codes\" are only used in Colombia and Brazil,\r\n * and only when dialing within those countries from a mobile phone to a fixed line number.\r\n * Sometimes it won't actually strip national prefix\r\n * and will instead prepend some digits to the `number`:\r\n * for example, when number `2345678` is passed with `VI` country selected,\r\n * it will return `{ number: \"3402345678\" }`, because `340` area code is prepended.\r\n * @param {string} number — National number digits.\r\n * @param {object} metadata — Metadata with country selected.\r\n * @return {object} `{ nationalNumber: string, nationalPrefix: string? carrierCode: string? }`.\r\n */\nexport default function extractNationalNumberFromPossiblyIncompleteNumber(number, metadata) {\n if (number && metadata.numberingPlan.nationalPrefixForParsing()) {\n // See METADATA.md for the description of\n // `national_prefix_for_parsing` and `national_prefix_transform_rule`.\n // Attempt to parse the first digits as a national prefix.\n var prefixPattern = new RegExp('^(?:' + metadata.numberingPlan.nationalPrefixForParsing() + ')');\n var prefixMatch = prefixPattern.exec(number);\n\n if (prefixMatch) {\n var nationalNumber;\n var carrierCode; // https://gitlab.com/catamphetamine/libphonenumber-js/-/blob/master/METADATA.md#national_prefix_for_parsing--national_prefix_transform_rule\n // If a `national_prefix_for_parsing` has any \"capturing groups\"\n // then it means that the national (significant) number is equal to\n // those \"capturing groups\" transformed via `national_prefix_transform_rule`,\n // and nothing could be said about the actual national prefix:\n // what is it and was it even there.\n // If a `national_prefix_for_parsing` doesn't have any \"capturing groups\",\n // then everything it matches is a national prefix.\n // To determine whether `national_prefix_for_parsing` matched any\n // \"capturing groups\", the value of the result of calling `.exec()`\n // is looked at, and if it has non-undefined values where there're\n // \"capturing groups\" in the regular expression, then it means\n // that \"capturing groups\" have been matched.\n // It's not possible to tell whether there'll be any \"capturing gropus\"\n // before the matching process, because a `national_prefix_for_parsing`\n // could exhibit both behaviors.\n\n var capturedGroupsCount = prefixMatch.length - 1;\n var hasCapturedGroups = capturedGroupsCount > 0 && prefixMatch[capturedGroupsCount];\n\n if (metadata.nationalPrefixTransformRule() && hasCapturedGroups) {\n nationalNumber = number.replace(prefixPattern, metadata.nationalPrefixTransformRule()); // If there's more than one captured group,\n // then carrier code is the second one.\n\n if (capturedGroupsCount > 1) {\n carrierCode = prefixMatch[1];\n }\n } // If there're no \"capturing groups\",\n // or if there're \"capturing groups\" but no\n // `national_prefix_transform_rule`,\n // then just strip the national prefix from the number,\n // and possibly a carrier code.\n // Seems like there could be more.\n else {\n // `prefixBeforeNationalNumber` is the whole substring matched by\n // the `national_prefix_for_parsing` regular expression.\n // There seem to be no guarantees that it's just a national prefix.\n // For example, if there's a carrier code, it's gonna be a\n // part of `prefixBeforeNationalNumber` too.\n var prefixBeforeNationalNumber = prefixMatch[0];\n nationalNumber = number.slice(prefixBeforeNationalNumber.length); // If there's at least one captured group,\n // then carrier code is the first one.\n\n if (hasCapturedGroups) {\n carrierCode = prefixMatch[1];\n }\n } // Tries to guess whether a national prefix was present in the input.\n // This is not something copy-pasted from Google's library:\n // they don't seem to have an equivalent for that.\n // So this isn't an \"officially approved\" way of doing something like that.\n // But since there seems no other existing method, this library uses it.\n\n\n var nationalPrefix;\n\n if (hasCapturedGroups) {\n var possiblePositionOfTheFirstCapturedGroup = number.indexOf(prefixMatch[1]);\n var possibleNationalPrefix = number.slice(0, possiblePositionOfTheFirstCapturedGroup); // Example: an Argentinian (AR) phone number `0111523456789`.\n // `prefixMatch[0]` is `01115`, and `$1` is `11`,\n // and the rest of the phone number is `23456789`.\n // The national number is transformed via `9$1` to `91123456789`.\n // National prefix `0` is detected being present at the start.\n // if (possibleNationalPrefix.indexOf(metadata.numberingPlan.nationalPrefix()) === 0) {\n\n if (possibleNationalPrefix === metadata.numberingPlan.nationalPrefix()) {\n nationalPrefix = metadata.numberingPlan.nationalPrefix();\n }\n } else {\n nationalPrefix = prefixMatch[0];\n }\n\n return {\n nationalNumber: nationalNumber,\n nationalPrefix: nationalPrefix,\n carrierCode: carrierCode\n };\n }\n }\n\n return {\n nationalNumber: number\n };\n}","const ageOptions = [\n {\n value: 0,\n text: '0_year'\n },\n {\n value: 1,\n text: '1_year'\n },\n {\n value: 2,\n text: '2_year'\n },\n {\n value: 3,\n text: '3_year'\n },\n {\n value: 4,\n text: '4_year'\n },\n {\n value: 5,\n text: '5_year'\n },\n {\n value: 6,\n text: '6_year'\n },\n {\n value: 7,\n text: '7_year'\n },\n {\n value: 8,\n text: '8_year'\n },\n {\n value: 9,\n text: '9_year'\n },\n {\n value: 10,\n text: '10_year'\n },\n {\n value: 11,\n text: '11_year'\n },\n {\n value: 12,\n text: '12_year'\n }\n]\n\nexport { ageOptions }\n","// @noflow\nimport { ageOptions } from '@/static_content/dropdownOptions'\nimport { useReactiveVar } from '@apollo/client'\nimport React, { useCallback } from 'react'\nimport { useTranslation } from 'react-i18next'\n\nimport Select from '@/components/shared/elements/Select/Select'\nimport type { Option } from '@/components/shared/elements/Select/Select'\n\nimport { dogDetailsState } from './DogDetailsForm'\n\nconst namespace = 'homepage'\nconst copyContext = 'rough_cost_calculator'\nconst baseClass = 'rough-cost-calculator__cost-calculator'\n\nconst AgeSelect = (): JSX.Element => {\n const { t } = useTranslation(namespace)\n\n const dogDetails = useReactiveVar(dogDetailsState)\n\n const formattedAgeOptions = ageOptions.map((option, index): Option => {\n return {\n id: index.toString(),\n value: option.value,\n label: t(`${copyContext}.age.${option.text}`)\n }\n })\n\n const formattedAgeOption = formattedAgeOptions.find(\n (option) => option.value === dogDetails.age\n )\n\n const handleAgeChange = useCallback(\n (option: Option) => {\n // We want to set interactedWithAge explicitly as true so that we don't end up using the\n // defaulted value of 2 years old in the Signup Wizard if this isn't a value picked by the user\n dogDetailsState({\n ...dogDetails,\n age: parseInt(option.value.toString()),\n interactedWithAge: true\n })\n },\n [dogDetails]\n )\n\n return (\n <div className={`${baseClass}__dropdown-wrapper`}>\n <Select\n onChange={handleAgeChange}\n label={t(`${copyContext}.age_label`)}\n options={formattedAgeOptions}\n initialValue={formattedAgeOption}\n />\n </div>\n )\n}\n\nexport default AgeSelect\n","// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction uniqBy<T>(array: T[], key: (item: T) => any): T[] {\n const seen = new Set()\n return array.filter((item) => {\n const keyValue = key(item)\n if (seen.has(keyValue)) {\n return false\n } else {\n seen.add(keyValue)\n return true\n }\n })\n}\n\nexport default uniqBy\n","// @noflow\nimport EstimatedDailyPlanPrices from '@/static_content/EstimatedDailyPlanPrices'\nimport { useReactiveVar } from '@apollo/client'\nimport React, { useCallback } from 'react'\nimport { useTranslation } from 'react-i18next'\n\nimport uniqBy from '@/utils/uniqBy'\n\nimport Select from '@/components/shared/elements/Select/Select'\nimport type { Option } from '@/components/shared/elements/Select/Select'\n\nimport { dogDetailsState } from './DogDetailsForm'\n\nconst namespace = 'homepage'\nconst copyContext = 'rough_cost_calculator'\nconst baseClass = 'rough-cost-calculator__cost-calculator'\n\nconst WeightSelect = (): JSX.Element => {\n const { t } = useTranslation(namespace)\n\n const dogDetails = useReactiveVar(dogDetailsState)\n\n const weightOptions = uniqBy(\n EstimatedDailyPlanPrices,\n (estimate) => estimate.size\n )\n\n const formattedWeightOptions = weightOptions.map((option, index): Option => {\n return {\n id: index.toString(),\n value: option.size,\n label: t(`${copyContext}.weight.${option.size}`)\n }\n })\n\n const formattedWeightOption = formattedWeightOptions.find(\n (option) => option.value === dogDetails.weight\n )\n\n const handleWeightChange = useCallback(\n (option: Option) => {\n dogDetailsState({ ...dogDetails, weight: option.value })\n },\n [dogDetails]\n )\n\n return (\n <div className={`${baseClass}__dropdown-wrapper`}>\n <Select\n onChange={handleWeightChange}\n label={t(`${copyContext}.weight_label`)}\n options={formattedWeightOptions}\n initialValue={formattedWeightOption}\n />\n </div>\n )\n}\n\nexport default WeightSelect\n","// This currentContext variable will only be used if the makeSlotClass\n// function is called, which happens only if this is the first copy of the\n// @wry/context package to be imported.\nvar currentContext = null; // This unique internal object is used to denote the absence of a value\n// for a given Slot, and is never exposed to outside code.\n\nvar MISSING_VALUE = {};\nvar idCounter = 1; // Although we can't do anything about the cost of duplicated code from\n// accidentally bundling multiple copies of the @wry/context package, we can\n// avoid creating the Slot class more than once using makeSlotClass.\n\nvar makeSlotClass = function makeSlotClass() {\n return (\n /** @class */\n function () {\n function Slot() {\n // If you have a Slot object, you can find out its slot.id, but you cannot\n // guess the slot.id of a Slot you don't have access to, thanks to the\n // randomized suffix.\n this.id = [\"slot\", idCounter++, Date.now(), Math.random().toString(36).slice(2)].join(\":\");\n }\n\n Slot.prototype.hasValue = function () {\n for (var context_1 = currentContext; context_1; context_1 = context_1.parent) {\n // We use the Slot object iself as a key to its value, which means the\n // value cannot be obtained without a reference to the Slot object.\n if (this.id in context_1.slots) {\n var value = context_1.slots[this.id];\n if (value === MISSING_VALUE) break;\n\n if (context_1 !== currentContext) {\n // Cache the value in currentContext.slots so the next lookup will\n // be faster. This caching is safe because the tree of contexts and\n // the values of the slots are logically immutable.\n currentContext.slots[this.id] = value;\n }\n\n return true;\n }\n }\n\n if (currentContext) {\n // If a value was not found for this Slot, it's never going to be found\n // no matter how many times we look it up, so we might as well cache\n // the absence of the value, too.\n currentContext.slots[this.id] = MISSING_VALUE;\n }\n\n return false;\n };\n\n Slot.prototype.getValue = function () {\n if (this.hasValue()) {\n return currentContext.slots[this.id];\n }\n };\n\n Slot.prototype.withValue = function (value, callback, // Given the prevalence of arrow functions, specifying arguments is likely\n // to be much more common than specifying `this`, hence this ordering:\n args, thisArg) {\n var _a;\n\n var slots = (_a = {\n __proto__: null\n }, _a[this.id] = value, _a);\n var parent = currentContext;\n currentContext = {\n parent: parent,\n slots: slots\n };\n\n try {\n // Function.prototype.apply allows the arguments array argument to be\n // omitted or undefined, so args! is fine here.\n return callback.apply(thisArg, args);\n } finally {\n currentContext = parent;\n }\n }; // Capture the current context and wrap a callback function so that it\n // reestablishes the captured context when called.\n\n\n Slot.bind = function (callback) {\n var context = currentContext;\n return function () {\n var saved = currentContext;\n\n try {\n currentContext = context;\n return callback.apply(this, arguments);\n } finally {\n currentContext = saved;\n }\n };\n }; // Immediately run a callback function without any captured context.\n\n\n Slot.noContext = function (callback, // Given the prevalence of arrow functions, specifying arguments is likely\n // to be much more common than specifying `this`, hence this ordering:\n args, thisArg) {\n if (currentContext) {\n var saved = currentContext;\n\n try {\n currentContext = null; // Function.prototype.apply allows the arguments array argument to be\n // omitted or undefined, so args! is fine here.\n\n return callback.apply(thisArg, args);\n } finally {\n currentContext = saved;\n }\n } else {\n return callback.apply(thisArg, args);\n }\n };\n\n return Slot;\n }()\n );\n}; // We store a single global implementation of the Slot class as a permanent\n// non-enumerable symbol property of the Array constructor. This obfuscation\n// does nothing to prevent access to the Slot class, but at least it ensures\n// the implementation (i.e. currentContext) cannot be tampered with, and all\n// copies of the @wry/context package (hopefully just one) will share the\n// same Slot implementation. Since the first copy of the @wry/context package\n// to be imported wins, this technique imposes a very high cost for any\n// future breaking changes to the Slot class.\n\n\nvar globalKey = \"@wry/context:Slot\";\nvar host = Array;\n\nvar Slot = host[globalKey] || function () {\n var Slot = makeSlotClass();\n\n try {\n Object.defineProperty(host, globalKey, {\n value: host[globalKey] = Slot,\n enumerable: false,\n writable: false,\n configurable: false\n });\n } finally {\n return Slot;\n }\n}();\n\nvar bind = Slot.bind,\n noContext = Slot.noContext;\n\nfunction setTimeoutWithContext(callback, delay) {\n return setTimeout(bind(callback), delay);\n} // Turn any generator function into an async function (using yield instead\n// of await), with context automatically preserved across yields.\n\n\nfunction asyncFromGen(genFn) {\n return function () {\n var gen = genFn.apply(this, arguments);\n var boundNext = bind(gen.next);\n var boundThrow = bind(gen.throw);\n return new Promise(function (resolve, reject) {\n function invoke(method, argument) {\n try {\n var result = method.call(gen, argument);\n } catch (error) {\n return reject(error);\n }\n\n var next = result.done ? resolve : invokeNext;\n\n if (isPromiseLike(result.value)) {\n result.value.then(next, result.done ? reject : invokeThrow);\n } else {\n next(result.value);\n }\n }\n\n var invokeNext = function invokeNext(value) {\n return invoke(boundNext, value);\n };\n\n var invokeThrow = function invokeThrow(error) {\n return invoke(boundThrow, error);\n };\n\n invokeNext();\n });\n };\n}\n\nfunction isPromiseLike(value) {\n return value && typeof value.then === \"function\";\n} // If you use the fibers npm package to implement coroutines in Node.js,\n// you should call this function at least once to ensure context management\n// remains coherent across any yields.\n\n\nvar wrappedFibers = [];\n\nfunction wrapYieldingFiberMethods(Fiber) {\n // There can be only one implementation of Fiber per process, so this array\n // should never grow longer than one element.\n if (wrappedFibers.indexOf(Fiber) < 0) {\n var wrap = function wrap(obj, method) {\n var fn = obj[method];\n\n obj[method] = function () {\n return noContext(fn, arguments, this);\n };\n }; // These methods can yield, according to\n // https://github.com/laverdet/node-fibers/blob/ddebed9b8ae3883e57f822e2108e6943e5c8d2a8/fibers.js#L97-L100\n\n\n wrap(Fiber, \"yield\");\n wrap(Fiber.prototype, \"run\");\n wrap(Fiber.prototype, \"throwInto\");\n wrappedFibers.push(Fiber);\n }\n\n return Fiber;\n}\n\nexport { Slot, asyncFromGen, bind, noContext, setTimeoutWithContext as setTimeout, wrapYieldingFiberMethods };","import { Trie } from '@wry/trie';\nexport { Trie as KeyTrie } from '@wry/trie';\nimport { Slot } from '@wry/context';\nexport { asyncFromGen, bind as bindContext, noContext, setTimeout } from '@wry/context';\n\nfunction defaultDispose() {}\n\nvar Cache =\n/** @class */\nfunction () {\n function Cache(max, dispose) {\n if (max === void 0) {\n max = Infinity;\n }\n\n if (dispose === void 0) {\n dispose = defaultDispose;\n }\n\n this.max = max;\n this.dispose = dispose;\n this.map = new Map();\n this.newest = null;\n this.oldest = null;\n }\n\n Cache.prototype.has = function (key) {\n return this.map.has(key);\n };\n\n Cache.prototype.get = function (key) {\n var node = this.getNode(key);\n return node && node.value;\n };\n\n Cache.prototype.getNode = function (key) {\n var node = this.map.get(key);\n\n if (node && node !== this.newest) {\n var older = node.older,\n newer = node.newer;\n\n if (newer) {\n newer.older = older;\n }\n\n if (older) {\n older.newer = newer;\n }\n\n node.older = this.newest;\n node.older.newer = node;\n node.newer = null;\n this.newest = node;\n\n if (node === this.oldest) {\n this.oldest = newer;\n }\n }\n\n return node;\n };\n\n Cache.prototype.set = function (key, value) {\n var node = this.getNode(key);\n\n if (node) {\n return node.value = value;\n }\n\n node = {\n key: key,\n value: value,\n newer: null,\n older: this.newest\n };\n\n if (this.newest) {\n this.newest.newer = node;\n }\n\n this.newest = node;\n this.oldest = this.oldest || node;\n this.map.set(key, node);\n return node.value;\n };\n\n Cache.prototype.clean = function () {\n while (this.oldest && this.map.size > this.max) {\n this.delete(this.oldest.key);\n }\n };\n\n Cache.prototype.delete = function (key) {\n var node = this.map.get(key);\n\n if (node) {\n if (node === this.newest) {\n this.newest = node.older;\n }\n\n if (node === this.oldest) {\n this.oldest = node.newer;\n }\n\n if (node.newer) {\n node.newer.older = node.older;\n }\n\n if (node.older) {\n node.older.newer = node.newer;\n }\n\n this.map.delete(key);\n this.dispose(node.value, key);\n return true;\n }\n\n return false;\n };\n\n return Cache;\n}();\n\nvar parentEntrySlot = new Slot();\n\nvar _a;\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar // This Array.from polyfill is restricted to working with Set<any> for now,\n// but we can improve the polyfill and add other input types, as needed. Note\n// that this fallback implementation will only be used if the host environment\n// does not support a native Array.from function. In most modern JS runtimes,\n// the toArray function exported here will be === Array.from.\ntoArray = (_a = Array.from, _a === void 0 ? function (collection) {\n var array = [];\n collection.forEach(function (item) {\n return array.push(item);\n });\n return array;\n} : _a);\n\nfunction maybeUnsubscribe(entryOrDep) {\n var unsubscribe = entryOrDep.unsubscribe;\n\n if (typeof unsubscribe === \"function\") {\n entryOrDep.unsubscribe = void 0;\n unsubscribe();\n }\n}\n\nvar emptySetPool = [];\nvar POOL_TARGET_SIZE = 100; // Since this package might be used browsers, we should avoid using the\n// Node built-in assert module.\n\nfunction assert(condition, optionalMessage) {\n if (!condition) {\n throw new Error(optionalMessage || \"assertion failure\");\n }\n}\n\nfunction valueIs(a, b) {\n var len = a.length;\n return (// Unknown values are not equal to each other.\n len > 0 && // Both values must be ordinary (or both exceptional) to be equal.\n len === b.length && // The underlying value or exception must be the same.\n a[len - 1] === b[len - 1]\n );\n}\n\nfunction valueGet(value) {\n switch (value.length) {\n case 0:\n throw new Error(\"unknown value\");\n\n case 1:\n return value[0];\n\n case 2:\n throw value[1];\n }\n}\n\nfunction valueCopy(value) {\n return value.slice(0);\n}\n\nvar Entry =\n/** @class */\nfunction () {\n function Entry(fn) {\n this.fn = fn;\n this.parents = new Set();\n this.childValues = new Map(); // When this Entry has children that are dirty, this property becomes\n // a Set containing other Entry objects, borrowed from emptySetPool.\n // When the set becomes empty, it gets recycled back to emptySetPool.\n\n this.dirtyChildren = null;\n this.dirty = true;\n this.recomputing = false;\n this.value = [];\n this.deps = null;\n ++Entry.count;\n }\n\n Entry.prototype.peek = function () {\n if (this.value.length === 1 && !mightBeDirty(this)) {\n rememberParent(this);\n return this.value[0];\n }\n }; // This is the most important method of the Entry API, because it\n // determines whether the cached this.value can be returned immediately,\n // or must be recomputed. The overall performance of the caching system\n // depends on the truth of the following observations: (1) this.dirty is\n // usually false, (2) this.dirtyChildren is usually null/empty, and thus\n // (3) valueGet(this.value) is usually returned without recomputation.\n\n\n Entry.prototype.recompute = function (args) {\n assert(!this.recomputing, \"already recomputing\");\n rememberParent(this);\n return mightBeDirty(this) ? reallyRecompute(this, args) : valueGet(this.value);\n };\n\n Entry.prototype.setDirty = function () {\n if (this.dirty) return;\n this.dirty = true;\n this.value.length = 0;\n reportDirty(this); // We can go ahead and unsubscribe here, since any further dirty\n // notifications we receive will be redundant, and unsubscribing may\n // free up some resources, e.g. file watchers.\n\n maybeUnsubscribe(this);\n };\n\n Entry.prototype.dispose = function () {\n var _this = this;\n\n this.setDirty(); // Sever any dependency relationships with our own children, so those\n // children don't retain this parent Entry in their child.parents sets,\n // thereby preventing it from being fully garbage collected.\n\n forgetChildren(this); // Because this entry has been kicked out of the cache (in index.js),\n // we've lost the ability to find out if/when this entry becomes dirty,\n // whether that happens through a subscription, because of a direct call\n // to entry.setDirty(), or because one of its children becomes dirty.\n // Because of this loss of future information, we have to assume the\n // worst (that this entry might have become dirty very soon), so we must\n // immediately mark this entry's parents as dirty. Normally we could\n // just call entry.setDirty() rather than calling parent.setDirty() for\n // each parent, but that would leave this entry in parent.childValues\n // and parent.dirtyChildren, which would prevent the child from being\n // truly forgotten.\n\n eachParent(this, function (parent, child) {\n parent.setDirty();\n forgetChild(parent, _this);\n });\n };\n\n Entry.prototype.forget = function () {\n // The code that creates Entry objects in index.ts will replace this method\n // with one that actually removes the Entry from the cache, which will also\n // trigger the entry.dispose method.\n this.dispose();\n };\n\n Entry.prototype.dependOn = function (dep) {\n dep.add(this);\n\n if (!this.deps) {\n this.deps = emptySetPool.pop() || new Set();\n }\n\n this.deps.add(dep);\n };\n\n Entry.prototype.forgetDeps = function () {\n var _this = this;\n\n if (this.deps) {\n toArray(this.deps).forEach(function (dep) {\n return dep.delete(_this);\n });\n this.deps.clear();\n emptySetPool.push(this.deps);\n this.deps = null;\n }\n };\n\n Entry.count = 0;\n return Entry;\n}();\n\nfunction rememberParent(child) {\n var parent = parentEntrySlot.getValue();\n\n if (parent) {\n child.parents.add(parent);\n\n if (!parent.childValues.has(child)) {\n parent.childValues.set(child, []);\n }\n\n if (mightBeDirty(child)) {\n reportDirtyChild(parent, child);\n } else {\n reportCleanChild(parent, child);\n }\n\n return parent;\n }\n}\n\nfunction reallyRecompute(entry, args) {\n forgetChildren(entry); // Set entry as the parent entry while calling recomputeNewValue(entry).\n\n parentEntrySlot.withValue(entry, recomputeNewValue, [entry, args]);\n\n if (maybeSubscribe(entry, args)) {\n // If we successfully recomputed entry.value and did not fail to\n // (re)subscribe, then this Entry is no longer explicitly dirty.\n setClean(entry);\n }\n\n return valueGet(entry.value);\n}\n\nfunction recomputeNewValue(entry, args) {\n entry.recomputing = true; // Set entry.value as unknown.\n\n entry.value.length = 0;\n\n try {\n // If entry.fn succeeds, entry.value will become a normal Value.\n entry.value[0] = entry.fn.apply(null, args);\n } catch (e) {\n // If entry.fn throws, entry.value will become exceptional.\n entry.value[1] = e;\n } // Either way, this line is always reached.\n\n\n entry.recomputing = false;\n}\n\nfunction mightBeDirty(entry) {\n return entry.dirty || !!(entry.dirtyChildren && entry.dirtyChildren.size);\n}\n\nfunction setClean(entry) {\n entry.dirty = false;\n\n if (mightBeDirty(entry)) {\n // This Entry may still have dirty children, in which case we can't\n // let our parents know we're clean just yet.\n return;\n }\n\n reportClean(entry);\n}\n\nfunction reportDirty(child) {\n eachParent(child, reportDirtyChild);\n}\n\nfunction reportClean(child) {\n eachParent(child, reportCleanChild);\n}\n\nfunction eachParent(child, callback) {\n var parentCount = child.parents.size;\n\n if (parentCount) {\n var parents = toArray(child.parents);\n\n for (var i = 0; i < parentCount; ++i) {\n callback(parents[i], child);\n }\n }\n} // Let a parent Entry know that one of its children may be dirty.\n\n\nfunction reportDirtyChild(parent, child) {\n // Must have called rememberParent(child) before calling\n // reportDirtyChild(parent, child).\n assert(parent.childValues.has(child));\n assert(mightBeDirty(child));\n var parentWasClean = !mightBeDirty(parent);\n\n if (!parent.dirtyChildren) {\n parent.dirtyChildren = emptySetPool.pop() || new Set();\n } else if (parent.dirtyChildren.has(child)) {\n // If we already know this child is dirty, then we must have already\n // informed our own parents that we are dirty, so we can terminate\n // the recursion early.\n return;\n }\n\n parent.dirtyChildren.add(child); // If parent was clean before, it just became (possibly) dirty (according to\n // mightBeDirty), since we just added child to parent.dirtyChildren.\n\n if (parentWasClean) {\n reportDirty(parent);\n }\n} // Let a parent Entry know that one of its children is no longer dirty.\n\n\nfunction reportCleanChild(parent, child) {\n // Must have called rememberChild(child) before calling\n // reportCleanChild(parent, child).\n assert(parent.childValues.has(child));\n assert(!mightBeDirty(child));\n var childValue = parent.childValues.get(child);\n\n if (childValue.length === 0) {\n parent.childValues.set(child, valueCopy(child.value));\n } else if (!valueIs(childValue, child.value)) {\n parent.setDirty();\n }\n\n removeDirtyChild(parent, child);\n\n if (mightBeDirty(parent)) {\n return;\n }\n\n reportClean(parent);\n}\n\nfunction removeDirtyChild(parent, child) {\n var dc = parent.dirtyChildren;\n\n if (dc) {\n dc.delete(child);\n\n if (dc.size === 0) {\n if (emptySetPool.length < POOL_TARGET_SIZE) {\n emptySetPool.push(dc);\n }\n\n parent.dirtyChildren = null;\n }\n }\n} // Removes all children from this entry and returns an array of the\n// removed children.\n\n\nfunction forgetChildren(parent) {\n if (parent.childValues.size > 0) {\n parent.childValues.forEach(function (_value, child) {\n forgetChild(parent, child);\n });\n } // Remove this parent Entry from any sets to which it was added by the\n // addToSet method.\n\n\n parent.forgetDeps(); // After we forget all our children, this.dirtyChildren must be empty\n // and therefore must have been reset to null.\n\n assert(parent.dirtyChildren === null);\n}\n\nfunction forgetChild(parent, child) {\n child.parents.delete(parent);\n parent.childValues.delete(child);\n removeDirtyChild(parent, child);\n}\n\nfunction maybeSubscribe(entry, args) {\n if (typeof entry.subscribe === \"function\") {\n try {\n maybeUnsubscribe(entry); // Prevent double subscriptions.\n\n entry.unsubscribe = entry.subscribe.apply(null, args);\n } catch (e) {\n // If this Entry has a subscribe function and it threw an exception\n // (or an unsubscribe function it previously returned now throws),\n // return false to indicate that we were not able to subscribe (or\n // unsubscribe), and this Entry should remain dirty.\n entry.setDirty();\n return false;\n }\n } // Returning true indicates either that there was no entry.subscribe\n // function or that it succeeded.\n\n\n return true;\n}\n\nvar EntryMethods = {\n setDirty: true,\n dispose: true,\n forget: true\n};\n\nfunction dep(options) {\n var depsByKey = new Map();\n var subscribe = options && options.subscribe;\n\n function depend(key) {\n var parent = parentEntrySlot.getValue();\n\n if (parent) {\n var dep_1 = depsByKey.get(key);\n\n if (!dep_1) {\n depsByKey.set(key, dep_1 = new Set());\n }\n\n parent.dependOn(dep_1);\n\n if (typeof subscribe === \"function\") {\n maybeUnsubscribe(dep_1);\n dep_1.unsubscribe = subscribe(key);\n }\n }\n }\n\n depend.dirty = function dirty(key, entryMethodName) {\n var dep = depsByKey.get(key);\n\n if (dep) {\n var m_1 = entryMethodName && hasOwnProperty.call(EntryMethods, entryMethodName) ? entryMethodName : \"setDirty\"; // We have to use toArray(dep).forEach instead of dep.forEach, because\n // modifying a Set while iterating over it can cause elements in the Set\n // to be removed from the Set before they've been iterated over.\n\n toArray(dep).forEach(function (entry) {\n return entry[m_1]();\n });\n depsByKey.delete(key);\n maybeUnsubscribe(dep);\n }\n };\n\n return depend;\n}\n\nfunction makeDefaultMakeCacheKeyFunction() {\n var keyTrie = new Trie(typeof WeakMap === \"function\");\n return function () {\n return keyTrie.lookupArray(arguments);\n };\n} // The defaultMakeCacheKey function is remarkably powerful, because it gives\n// a unique object for any shallow-identical list of arguments. If you need\n// to implement a custom makeCacheKey function, you may find it helpful to\n// delegate the final work to defaultMakeCacheKey, which is why we export it\n// here. However, you may want to avoid defaultMakeCacheKey if your runtime\n// does not support WeakMap, or you have the ability to return a string key.\n// In those cases, just write your own custom makeCacheKey functions.\n\n\nvar defaultMakeCacheKey = makeDefaultMakeCacheKeyFunction();\nvar caches = new Set();\n\nfunction wrap(originalFunction, options) {\n if (options === void 0) {\n options = Object.create(null);\n }\n\n var cache = new Cache(options.max || Math.pow(2, 16), function (entry) {\n return entry.dispose();\n });\n var keyArgs = options.keyArgs;\n var makeCacheKey = options.makeCacheKey || makeDefaultMakeCacheKeyFunction();\n\n var optimistic = function optimistic() {\n var key = makeCacheKey.apply(null, keyArgs ? keyArgs.apply(null, arguments) : arguments);\n\n if (key === void 0) {\n return originalFunction.apply(null, arguments);\n }\n\n var entry = cache.get(key);\n\n if (!entry) {\n cache.set(key, entry = new Entry(originalFunction));\n entry.subscribe = options.subscribe; // Give the Entry the ability to trigger cache.delete(key), even though\n // the Entry itself does not know about key or cache.\n\n entry.forget = function () {\n return cache.delete(key);\n };\n }\n\n var value = entry.recompute(Array.prototype.slice.call(arguments)); // Move this entry to the front of the least-recently used queue,\n // since we just finished computing its value.\n\n cache.set(key, entry);\n caches.add(cache); // Clean up any excess entries in the cache, but only if there is no\n // active parent entry, meaning we're not in the middle of a larger\n // computation that might be flummoxed by the cleaning.\n\n if (!parentEntrySlot.hasValue()) {\n caches.forEach(function (cache) {\n return cache.clean();\n });\n caches.clear();\n }\n\n return value;\n };\n\n Object.defineProperty(optimistic, \"size\", {\n get: function get() {\n return cache[\"map\"].size;\n },\n configurable: false,\n enumerable: false\n });\n\n function dirtyKey(key) {\n var entry = cache.get(key);\n\n if (entry) {\n entry.setDirty();\n }\n }\n\n optimistic.dirtyKey = dirtyKey;\n\n optimistic.dirty = function dirty() {\n dirtyKey(makeCacheKey.apply(null, arguments));\n };\n\n function peekKey(key) {\n var entry = cache.get(key);\n\n if (entry) {\n return entry.peek();\n }\n }\n\n optimistic.peekKey = peekKey;\n\n optimistic.peek = function peek() {\n return peekKey(makeCacheKey.apply(null, arguments));\n };\n\n function forgetKey(key) {\n return cache.delete(key);\n }\n\n optimistic.forgetKey = forgetKey;\n\n optimistic.forget = function forget() {\n return forgetKey(makeCacheKey.apply(null, arguments));\n };\n\n optimistic.makeCacheKey = makeCacheKey;\n optimistic.getKey = keyArgs ? function getKey() {\n return makeCacheKey.apply(null, keyArgs.apply(null, arguments));\n } : makeCacheKey;\n return Object.freeze(optimistic);\n}\n\nexport { defaultMakeCacheKey, dep, wrap };","import { gql } from '@apollo/client'\n\nconst HOME_BREED_SELECTOR_QUERY = gql`\n query HomeBreedSelectorQuery($name: String, $popular: Boolean) {\n breeds(name: $name, popular: $popular) {\n id\n name\n key\n popular\n }\n }\n`\n\nexport { HOME_BREED_SELECTOR_QUERY }\n","// @noflow\nimport * as React from 'react'\nimport { useTranslation } from 'react-i18next'\n\nimport times from '@/utils/times'\n\nimport Paw from 'assets/images/icons/paws/paw-yellow-alt.svg'\n\nimport type { HomeBreedSelectorQuery_breeds as Breed } from '../../queries/__generated__/HomeBreedSelectorQuery'\n\nimport { BreedSelectorVariant } from '../../BreedSelector'\nimport BreedAutocomplete from '../BreedAutocomplete/BreedAutocomplete'\nimport BreedCard, {\n NonPopularBreed,\n PopularBreed\n} from '../BreedCard/BreedCard'\n\ntype Props = {\n selectedBreed: PopularBreed | NonPopularBreed | null\n isPreWizardGuest: boolean\n variant: BreedSelectorVariant\n namespace: string\n onClickCTA: () => void\n events: {\n onBreedSelection: (breed: Breed) => void\n onListOpen: () => void\n onFocus: () => void\n onInputEmpty: () => void\n }\n}\n\nconst BreedQuestionnaire = ({\n onClickCTA,\n events,\n namespace,\n variant = BreedSelectorVariant.Generic,\n selectedBreed,\n isPreWizardGuest\n}: Props): JSX.Element => {\n const { t } = useTranslation(namespace)\n return (\n <div className=\"breed-selector--homepage\">\n <div className=\"breed-selector--homepage__paw-container\">\n {times(4).map((i) => (\n <img\n className={`breed-selector--homepage__paw-container__paw breed-selector--homepage__paw-container__paw--${\n i + 1\n }`}\n key={i}\n src={Paw}\n alt={t(`breed_hero_section.paw_alt`)}\n />\n ))}\n </div>\n <p className=\"text-regular-20 breed-selector--homepage__subtitle\">\n {t(`breed_hero_section.text_homepage`)}\n </p>\n <div className=\"breed-selector--homepage__autocomplete-wrapper\">\n <BreedAutocomplete\n variant={variant}\n loadingPlaceholder={t(`breed_hero_section.field_placeholder_loading`)}\n placeholder={t('breed_hero_section.field_placeholder')}\n embeddedCTA\n onClickCTA={onClickCTA}\n events={{\n onBreedSelection: events.onBreedSelection,\n onListOpen: events.onListOpen,\n onFocus: events.onFocus,\n onInputEmpty: () => null\n }}\n />\n </div>\n {selectedBreed !== null && (\n <div className=\"breed-selector__breed-card-section breed-selector__breed-card-section--homepage\">\n <div className=\"breed-selector__breed-card-wrapper breed-selector__breed-card-wrapper--homepage\">\n <BreedCard\n selectedBreed={selectedBreed}\n isPreWizardGuest={isPreWizardGuest}\n namespace={namespace}\n variant={variant}\n />\n </div>\n </div>\n )}\n </div>\n )\n}\n\nexport default BreedQuestionnaire\n","// @noflow\nimport { TOptions } from 'i18next'\nimport React, { useCallback } from 'react'\nimport { useTranslation } from 'react-i18next'\n\nimport Arrow from 'assets/images/icons/arrows/arrow--white.svg'\n\ntype ExpandableIconButtonProps = {\n namespace?: string\n text: string | Array<string>\n variables?: TOptions\n disabled?: boolean\n onClick?: (e: React.MouseEvent<HTMLButtonElement>) => void\n disabledOnClick?: (e: React.MouseEvent<HTMLButtonElement>) => void\n translate?: boolean\n toggleIconButton: boolean\n onFocus?: () => void\n}\n\nconst ExpandableIconButton = ({\n namespace,\n text,\n variables,\n disabled,\n onClick,\n disabledOnClick,\n translate = true,\n toggleIconButton = false,\n onFocus\n}: ExpandableIconButtonProps): JSX.Element => {\n const { t } = useTranslation(namespace)\n\n const handleOnClick = useCallback(\n (e: React.MouseEvent<HTMLButtonElement>): void => {\n if (disabled) {\n if (disabledOnClick) disabledOnClick(e)\n } else {\n onClick && onClick(e)\n }\n },\n [disabled, disabledOnClick, onClick]\n )\n\n return (\n <button\n className={`expandable-icon-button__button ${\n toggleIconButton\n ? 'expandable-icon-button__button__short'\n : 'expandable-icon-button__button__long'\n }`}\n disabled={disabled}\n onClick={handleOnClick}\n type=\"button\"\n aria-label={translate ? t(text) : (text as string)}\n onFocus={onFocus}\n >\n <div className=\"button-icon\">{<img src={Arrow} alt=\"\" />}</div>\n <div className=\"button-text\">\n <span className=\"text-mono-18\">{t(text, variables)}</span>\n </div>\n </button>\n )\n}\n\nexport default ExpandableIconButton\n","type WizardCtaLink = {\n url: string\n text: string\n}\n\nenum UserType {\n PreWizardGuest = 'PreWizardGuest',\n Guest = 'Guest',\n User = 'User'\n}\n\nconst wizardCtaLink = (currentUserType: UserType | string): WizardCtaLink => {\n switch (currentUserType) {\n case UserType.PreWizardGuest: {\n return {\n url: '/wizard/new',\n text: 'cta_build'\n }\n }\n case UserType.Guest: {\n return {\n url: '/plans/recipes',\n text: 'cta_plan'\n }\n }\n case UserType.User: {\n return {\n url: '/dashboard',\n text: 'cta_account'\n }\n }\n default: {\n return {\n url: '/wizard/new',\n text: 'cta_build'\n }\n }\n }\n}\n\nexport { wizardCtaLink, WizardCtaLink, UserType }\n","// @noflow\nimport React, { useCallback } from 'react'\n\nimport { UserType, wizardCtaLink } from '@/utils/wizardCtaLink'\n\nimport { Button } from '@/components/shared/elements/Button/Button'\n\ntype Props = {\n namespace: string\n text: string\n currentUserType?: UserType\n screenIdentifier: string\n}\n\nconst CTA = ({\n currentUserType,\n screenIdentifier,\n namespace,\n text\n}: Props): JSX.Element => {\n const handleCTAClick = useCallback(() => {\n window.location.href = currentUserType\n ? wizardCtaLink(currentUserType).url\n : '/wizard/new'\n }, [currentUserType])\n\n return (\n <Button\n typography={{\n text,\n namespace\n }}\n onClick={handleCTAClick}\n identifier=\"rough_cost_calculator_cta\"\n screenIdentifier={screenIdentifier}\n fullWidth\n />\n )\n}\n\nexport default CTA\n","import { __extends } from \"tslib\";\nimport \"../utilities/globals/index.js\";\nimport { isNonEmptyArray } from \"../utilities/index.js\";\nexport function isApolloError(err) {\n return err.hasOwnProperty('graphQLErrors');\n}\n\nvar generateErrorMessage = function generateErrorMessage(err) {\n var message = '';\n\n if (isNonEmptyArray(err.graphQLErrors) || isNonEmptyArray(err.clientErrors)) {\n var errors = (err.graphQLErrors || []).concat(err.clientErrors || []);\n errors.forEach(function (error) {\n var errorMessage = error ? error.message : 'Error message not found.';\n message += \"\".concat(errorMessage, \"\\n\");\n });\n }\n\n if (err.networkError) {\n message += \"\".concat(err.networkError.message, \"\\n\");\n }\n\n message = message.replace(/\\n$/, '');\n return message;\n};\n\nvar ApolloError = function (_super) {\n __extends(ApolloError, _super);\n\n function ApolloError(_a) {\n var graphQLErrors = _a.graphQLErrors,\n clientErrors = _a.clientErrors,\n networkError = _a.networkError,\n errorMessage = _a.errorMessage,\n extraInfo = _a.extraInfo;\n\n var _this = _super.call(this, errorMessage) || this;\n\n _this.graphQLErrors = graphQLErrors || [];\n _this.clientErrors = clientErrors || [];\n _this.networkError = networkError || null;\n _this.message = errorMessage || generateErrorMessage(_this);\n _this.extraInfo = extraInfo;\n _this.__proto__ = ApolloError.prototype;\n return _this;\n }\n\n return ApolloError;\n}(Error);\n\nexport { ApolloError };","import { invariant } from \"../../utilities/globals/index.js\";\nimport * as React from 'react';\nimport { canUseLayoutEffect } from \"../../utilities/index.js\";\nvar didWarnUncachedGetSnapshot = false;\nvar uSESKey = \"useSyncExternalStore\";\nvar realHook = React[uSESKey];\nexport var useSyncExternalStore = realHook || function (subscribe, getSnapshot, getServerSnapshot) {\n var value = getSnapshot();\n\n if (__DEV__ && !didWarnUncachedGetSnapshot && value !== getSnapshot()) {\n didWarnUncachedGetSnapshot = true;\n __DEV__ && invariant.error('The result of getSnapshot should be cached to avoid an infinite loop');\n }\n\n var _a = React.useState({\n inst: {\n value: value,\n getSnapshot: getSnapshot\n }\n }),\n inst = _a[0].inst,\n forceUpdate = _a[1];\n\n if (canUseLayoutEffect) {\n React.useLayoutEffect(function () {\n Object.assign(inst, {\n value: value,\n getSnapshot: getSnapshot\n });\n\n if (checkIfSnapshotChanged(inst)) {\n forceUpdate({\n inst: inst\n });\n }\n }, [subscribe, value, getSnapshot]);\n } else {\n Object.assign(inst, {\n value: value,\n getSnapshot: getSnapshot\n });\n }\n\n React.useEffect(function () {\n if (checkIfSnapshotChanged(inst)) {\n forceUpdate({\n inst: inst\n });\n }\n\n return subscribe(function handleStoreChange() {\n if (checkIfSnapshotChanged(inst)) {\n forceUpdate({\n inst: inst\n });\n }\n });\n }, [subscribe]);\n return value;\n};\n\nfunction checkIfSnapshotChanged(_a) {\n var value = _a.value,\n getSnapshot = _a.getSnapshot;\n\n try {\n return value !== getSnapshot();\n } catch (_b) {\n return true;\n }\n}","import { __assign, __rest } from \"tslib\";\nimport { invariant } from \"../../utilities/globals/index.js\";\nimport { useCallback, useContext, useMemo, useRef, useState } from 'react';\nimport { useSyncExternalStore } from \"./useSyncExternalStore.js\";\nimport { equal } from '@wry/equality';\nimport { mergeOptions } from \"../../core/index.js\";\nimport { getApolloContext } from \"../context/index.js\";\nimport { ApolloError } from \"../../errors/index.js\";\nimport { NetworkStatus } from \"../../core/index.js\";\nimport { DocumentType, verifyDocumentType } from \"../parser/index.js\";\nimport { useApolloClient } from \"./useApolloClient.js\";\nimport { canUseWeakMap, canUseWeakSet, compact, isNonEmptyArray, maybeDeepFreeze } from \"../../utilities/index.js\";\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nexport function useQuery(query, options) {\n if (options === void 0) {\n options = Object.create(null);\n }\n\n return useInternalState(useApolloClient(options.client), query).useQuery(options);\n}\nexport function useInternalState(client, query) {\n var stateRef = useRef();\n\n if (!stateRef.current || client !== stateRef.current.client || query !== stateRef.current.query) {\n stateRef.current = new InternalState(client, query, stateRef.current);\n }\n\n var state = stateRef.current;\n\n var _a = useState(0),\n _tick = _a[0],\n setTick = _a[1];\n\n state.forceUpdate = function () {\n setTick(function (tick) {\n return tick + 1;\n });\n };\n\n return state;\n}\n\nvar InternalState = function () {\n function InternalState(client, query, previous) {\n this.client = client;\n this.query = query;\n this.asyncResolveFns = new Set();\n this.optionsToIgnoreOnce = new (canUseWeakSet ? WeakSet : Set)();\n this.ssrDisabledResult = maybeDeepFreeze({\n loading: true,\n data: void 0,\n error: void 0,\n networkStatus: NetworkStatus.loading\n });\n this.skipStandbyResult = maybeDeepFreeze({\n loading: false,\n data: void 0,\n error: void 0,\n networkStatus: NetworkStatus.ready\n });\n this.toQueryResultCache = new (canUseWeakMap ? WeakMap : Map)();\n verifyDocumentType(query, DocumentType.Query);\n var previousResult = previous && previous.result;\n var previousData = previousResult && previousResult.data;\n\n if (previousData) {\n this.previousData = previousData;\n }\n }\n\n InternalState.prototype.forceUpdate = function () {\n __DEV__ && invariant.warn(\"Calling default no-op implementation of InternalState#forceUpdate\");\n };\n\n InternalState.prototype.asyncUpdate = function () {\n var _this = this;\n\n return new Promise(function (resolve) {\n _this.asyncResolveFns.add(resolve);\n\n _this.optionsToIgnoreOnce.add(_this.watchQueryOptions);\n\n _this.forceUpdate();\n });\n };\n\n InternalState.prototype.useQuery = function (options) {\n var _this = this;\n\n this.renderPromises = useContext(getApolloContext()).renderPromises;\n this.useOptions(options);\n var obsQuery = this.useObservableQuery();\n var result = useSyncExternalStore(useCallback(function () {\n if (_this.renderPromises) {\n return function () {};\n }\n\n var onNext = function onNext() {\n var previousResult = _this.result;\n var result = obsQuery.getCurrentResult();\n\n if (previousResult && previousResult.loading === result.loading && previousResult.networkStatus === result.networkStatus && equal(previousResult.data, result.data)) {\n return;\n }\n\n _this.setResult(result);\n };\n\n var onError = function onError(error) {\n var last = obsQuery[\"last\"];\n subscription.unsubscribe();\n\n try {\n obsQuery.resetLastResults();\n subscription = obsQuery.subscribe(onNext, onError);\n } finally {\n obsQuery[\"last\"] = last;\n }\n\n if (!hasOwnProperty.call(error, 'graphQLErrors')) {\n throw error;\n }\n\n var previousResult = _this.result;\n\n if (!previousResult || previousResult && previousResult.loading || !equal(error, previousResult.error)) {\n _this.setResult({\n data: previousResult && previousResult.data,\n error: error,\n loading: false,\n networkStatus: NetworkStatus.error\n });\n }\n };\n\n var subscription = obsQuery.subscribe(onNext, onError);\n return function () {\n return subscription.unsubscribe();\n };\n }, [obsQuery, this.renderPromises, this.client.disableNetworkFetches]), function () {\n return _this.getCurrentResult();\n }, function () {\n return _this.getCurrentResult();\n });\n this.unsafeHandlePartialRefetch(result);\n var queryResult = this.toQueryResult(result);\n\n if (!queryResult.loading && this.asyncResolveFns.size) {\n this.asyncResolveFns.forEach(function (resolve) {\n return resolve(queryResult);\n });\n this.asyncResolveFns.clear();\n }\n\n return queryResult;\n };\n\n InternalState.prototype.useOptions = function (options) {\n var _a;\n\n var watchQueryOptions = this.createWatchQueryOptions(this.queryHookOptions = options);\n var currentWatchQueryOptions = this.watchQueryOptions;\n\n if (this.optionsToIgnoreOnce.has(currentWatchQueryOptions) || !equal(watchQueryOptions, currentWatchQueryOptions)) {\n this.watchQueryOptions = watchQueryOptions;\n\n if (currentWatchQueryOptions && this.observable) {\n this.optionsToIgnoreOnce.delete(currentWatchQueryOptions);\n this.observable.reobserve(this.getObsQueryOptions());\n this.previousData = ((_a = this.result) === null || _a === void 0 ? void 0 : _a.data) || this.previousData;\n this.result = void 0;\n }\n }\n\n this.onCompleted = options.onCompleted || InternalState.prototype.onCompleted;\n this.onError = options.onError || InternalState.prototype.onError;\n\n if ((this.renderPromises || this.client.disableNetworkFetches) && this.queryHookOptions.ssr === false && !this.queryHookOptions.skip) {\n this.result = this.ssrDisabledResult;\n } else if (this.queryHookOptions.skip || this.watchQueryOptions.fetchPolicy === 'standby') {\n this.result = this.skipStandbyResult;\n } else if (this.result === this.ssrDisabledResult || this.result === this.skipStandbyResult) {\n this.result = void 0;\n }\n };\n\n InternalState.prototype.getObsQueryOptions = function () {\n var toMerge = [];\n var globalDefaults = this.client.defaultOptions.watchQuery;\n if (globalDefaults) toMerge.push(globalDefaults);\n\n if (this.queryHookOptions.defaultOptions) {\n toMerge.push(this.queryHookOptions.defaultOptions);\n }\n\n toMerge.push(compact(this.observable && this.observable.options, this.watchQueryOptions));\n return toMerge.reduce(mergeOptions);\n };\n\n InternalState.prototype.createWatchQueryOptions = function (_a) {\n var _b;\n\n if (_a === void 0) {\n _a = {};\n }\n\n var skip = _a.skip,\n ssr = _a.ssr,\n onCompleted = _a.onCompleted,\n onError = _a.onError,\n defaultOptions = _a.defaultOptions,\n otherOptions = __rest(_a, [\"skip\", \"ssr\", \"onCompleted\", \"onError\", \"defaultOptions\"]);\n\n var watchQueryOptions = Object.assign(otherOptions, {\n query: this.query\n });\n\n if (this.renderPromises && (watchQueryOptions.fetchPolicy === 'network-only' || watchQueryOptions.fetchPolicy === 'cache-and-network')) {\n watchQueryOptions.fetchPolicy = 'cache-first';\n }\n\n if (!watchQueryOptions.variables) {\n watchQueryOptions.variables = {};\n }\n\n if (skip) {\n var _c = watchQueryOptions.fetchPolicy,\n fetchPolicy = _c === void 0 ? this.getDefaultFetchPolicy() : _c,\n _d = watchQueryOptions.initialFetchPolicy,\n initialFetchPolicy = _d === void 0 ? fetchPolicy : _d;\n Object.assign(watchQueryOptions, {\n initialFetchPolicy: initialFetchPolicy,\n fetchPolicy: 'standby'\n });\n } else if (!watchQueryOptions.fetchPolicy) {\n watchQueryOptions.fetchPolicy = ((_b = this.observable) === null || _b === void 0 ? void 0 : _b.options.initialFetchPolicy) || this.getDefaultFetchPolicy();\n }\n\n return watchQueryOptions;\n };\n\n InternalState.prototype.getDefaultFetchPolicy = function () {\n var _a, _b;\n\n return ((_a = this.queryHookOptions.defaultOptions) === null || _a === void 0 ? void 0 : _a.fetchPolicy) || ((_b = this.client.defaultOptions.watchQuery) === null || _b === void 0 ? void 0 : _b.fetchPolicy) || \"cache-first\";\n };\n\n InternalState.prototype.onCompleted = function (data) {};\n\n InternalState.prototype.onError = function (error) {};\n\n InternalState.prototype.useObservableQuery = function () {\n var obsQuery = this.observable = this.renderPromises && this.renderPromises.getSSRObservable(this.watchQueryOptions) || this.observable || this.client.watchQuery(this.getObsQueryOptions());\n this.obsQueryFields = useMemo(function () {\n return {\n refetch: obsQuery.refetch.bind(obsQuery),\n reobserve: obsQuery.reobserve.bind(obsQuery),\n fetchMore: obsQuery.fetchMore.bind(obsQuery),\n updateQuery: obsQuery.updateQuery.bind(obsQuery),\n startPolling: obsQuery.startPolling.bind(obsQuery),\n stopPolling: obsQuery.stopPolling.bind(obsQuery),\n subscribeToMore: obsQuery.subscribeToMore.bind(obsQuery)\n };\n }, [obsQuery]);\n var ssrAllowed = !(this.queryHookOptions.ssr === false || this.queryHookOptions.skip);\n\n if (this.renderPromises && ssrAllowed) {\n this.renderPromises.registerSSRObservable(obsQuery);\n\n if (obsQuery.getCurrentResult().loading) {\n this.renderPromises.addObservableQueryPromise(obsQuery);\n }\n }\n\n return obsQuery;\n };\n\n InternalState.prototype.setResult = function (nextResult) {\n var previousResult = this.result;\n\n if (previousResult && previousResult.data) {\n this.previousData = previousResult.data;\n }\n\n this.result = nextResult;\n this.forceUpdate();\n this.handleErrorOrCompleted(nextResult);\n };\n\n InternalState.prototype.handleErrorOrCompleted = function (result) {\n var _this = this;\n\n if (!result.loading) {\n Promise.resolve().then(function () {\n if (result.error) {\n _this.onError(result.error);\n } else if (result.data) {\n _this.onCompleted(result.data);\n }\n }).catch(function (error) {\n __DEV__ && invariant.warn(error);\n });\n }\n };\n\n InternalState.prototype.getCurrentResult = function () {\n if (!this.result) {\n this.handleErrorOrCompleted(this.result = this.observable.getCurrentResult());\n }\n\n return this.result;\n };\n\n InternalState.prototype.toQueryResult = function (result) {\n var queryResult = this.toQueryResultCache.get(result);\n if (queryResult) return queryResult;\n\n var data = result.data,\n partial = result.partial,\n resultWithoutPartial = __rest(result, [\"data\", \"partial\"]);\n\n this.toQueryResultCache.set(result, queryResult = __assign(__assign(__assign({\n data: data\n }, resultWithoutPartial), this.obsQueryFields), {\n client: this.client,\n observable: this.observable,\n variables: this.observable.variables,\n called: !this.queryHookOptions.skip,\n previousData: this.previousData\n }));\n\n if (!queryResult.error && isNonEmptyArray(result.errors)) {\n queryResult.error = new ApolloError({\n graphQLErrors: result.errors\n });\n }\n\n return queryResult;\n };\n\n InternalState.prototype.unsafeHandlePartialRefetch = function (result) {\n if (result.partial && this.queryHookOptions.partialRefetch && !result.loading && (!result.data || Object.keys(result.data).length === 0) && this.observable.options.fetchPolicy !== 'cache-only') {\n Object.assign(result, {\n loading: true,\n networkStatus: NetworkStatus.refetch\n });\n this.observable.refetch();\n }\n };\n\n return InternalState;\n}();","import { VALID_PUNCTUATION } from '../constants'; // Removes brackets and replaces dashes with spaces.\n//\n// E.g. \"(999) 111-22-33\" -> \"999 111 22 33\"\n//\n// For some reason Google's metadata contains `<intlFormat/>`s with brackets and dashes.\n// Meanwhile, there's no single opinion about using punctuation in international phone numbers.\n//\n// For example, Google's `<intlFormat/>` for USA is `+1 213-373-4253`.\n// And here's a quote from WikiPedia's \"North American Numbering Plan\" page:\n// https://en.wikipedia.org/wiki/North_American_Numbering_Plan\n//\n// \"The country calling code for all countries participating in the NANP is 1.\n// In international format, an NANP number should be listed as +1 301 555 01 00,\n// where 301 is an area code (Maryland).\"\n//\n// I personally prefer the international format without any punctuation.\n// For example, brackets are remnants of the old age, meaning that the\n// phone number part in brackets (so called \"area code\") can be omitted\n// if dialing within the same \"area\".\n// And hyphens were clearly introduced for splitting local numbers into memorizable groups.\n// For example, remembering \"5553535\" is difficult but \"555-35-35\" is much simpler.\n// Imagine a man taking a bus from home to work and seeing an ad with a phone number.\n// He has a couple of seconds to memorize that number until it passes by.\n// If it were spaces instead of hyphens the man wouldn't necessarily get it,\n// but with hyphens instead of spaces the grouping is more explicit.\n// I personally think that hyphens introduce visual clutter,\n// so I prefer replacing them with spaces in international numbers.\n// In the modern age all output is done on displays where spaces are clearly distinguishable\n// so hyphens can be safely replaced with spaces without losing any legibility.\n//\n\nexport default function applyInternationalSeparatorStyle(formattedNumber) {\n return formattedNumber.replace(new RegExp(\"[\".concat(VALID_PUNCTUATION, \"]+\"), 'g'), ' ').trim();\n}","import stripIddPrefix from './stripIddPrefix';\nimport extractCountryCallingCodeFromInternationalNumberWithoutPlusSign from './extractCountryCallingCodeFromInternationalNumberWithoutPlusSign';\nimport Metadata from '../metadata';\nimport { MAX_LENGTH_COUNTRY_CODE } from '../constants';\n/**\r\n * Converts a phone number digits (possibly with a `+`)\r\n * into a calling code and the rest phone number digits.\r\n * The \"rest phone number digits\" could include\r\n * a national prefix, carrier code, and national\r\n * (significant) number.\r\n * @param {string} number — Phone number digits (possibly with a `+`).\r\n * @param {string} [country] — Default country.\r\n * @param {string} [callingCode] — Default calling code (some phone numbering plans are non-geographic).\r\n * @param {object} metadata\r\n * @return {object} `{ countryCallingCode: string?, number: string }`\r\n * @example\r\n * // Returns `{ countryCallingCode: \"1\", number: \"2133734253\" }`.\r\n * extractCountryCallingCode('2133734253', 'US', null, metadata)\r\n * extractCountryCallingCode('2133734253', null, '1', metadata)\r\n * extractCountryCallingCode('+12133734253', null, null, metadata)\r\n * extractCountryCallingCode('+12133734253', 'RU', null, metadata)\r\n */\n\nexport default function extractCountryCallingCode(number, country, callingCode, metadata) {\n if (!number) {\n return {};\n } // If this is not an international phone number,\n // then either extract an \"IDD\" prefix, or extract a\n // country calling code from a number by autocorrecting it\n // by prepending a leading `+` in cases when it starts\n // with the country calling code.\n // https://wikitravel.org/en/International_dialling_prefix\n // https://github.com/catamphetamine/libphonenumber-js/issues/376\n\n\n if (number[0] !== '+') {\n // Convert an \"out-of-country\" dialing phone number\n // to a proper international phone number.\n var numberWithoutIDD = stripIddPrefix(number, country, callingCode, metadata); // If an IDD prefix was stripped then\n // convert the number to international one\n // for subsequent parsing.\n\n if (numberWithoutIDD && numberWithoutIDD !== number) {\n number = '+' + numberWithoutIDD;\n } else {\n // Check to see if the number starts with the country calling code\n // for the default country. If so, we remove the country calling code,\n // and do some checks on the validity of the number before and after.\n // https://github.com/catamphetamine/libphonenumber-js/issues/376\n if (country || callingCode) {\n var _extractCountryCallin = extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(number, country, callingCode, metadata),\n countryCallingCode = _extractCountryCallin.countryCallingCode,\n shorterNumber = _extractCountryCallin.number;\n\n if (countryCallingCode) {\n return {\n countryCallingCode: countryCallingCode,\n number: shorterNumber\n };\n }\n }\n\n return {\n number: number\n };\n }\n } // Fast abortion: country codes do not begin with a '0'\n\n\n if (number[1] === '0') {\n return {};\n }\n\n metadata = new Metadata(metadata); // The thing with country phone codes\n // is that they are orthogonal to each other\n // i.e. there's no such country phone code A\n // for which country phone code B exists\n // where B starts with A.\n // Therefore, while scanning digits,\n // if a valid country code is found,\n // that means that it is the country code.\n //\n\n var i = 2;\n\n while (i - 1 <= MAX_LENGTH_COUNTRY_CODE && i <= number.length) {\n var _countryCallingCode = number.slice(1, i);\n\n if (metadata.hasCallingCode(_countryCallingCode)) {\n metadata.selectNumberingPlan(_countryCallingCode);\n return {\n countryCallingCode: _countryCallingCode,\n number: number.slice(i)\n };\n }\n\n i++;\n }\n\n return {};\n}","import Metadata from '../metadata';\nimport getNumberType from './getNumberType';\nvar USE_NON_GEOGRAPHIC_COUNTRY_CODE = false;\nexport default function getCountryByCallingCode(callingCode, nationalPhoneNumber, metadata) {\n /* istanbul ignore if */\n if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n if (metadata.isNonGeographicCallingCode(callingCode)) {\n return '001';\n }\n } // Is always non-empty, because `callingCode` is always valid\n\n\n var possibleCountries = metadata.getCountryCodesForCallingCode(callingCode);\n\n if (!possibleCountries) {\n return;\n } // If there's just one country corresponding to the country code,\n // then just return it, without further phone number digits validation.\n\n\n if (possibleCountries.length === 1) {\n return possibleCountries[0];\n }\n\n return selectCountryFromList(possibleCountries, nationalPhoneNumber, metadata.metadata);\n}\n\nfunction selectCountryFromList(possibleCountries, nationalPhoneNumber, metadata) {\n // Re-create `metadata` because it will be selecting a `country`.\n metadata = new Metadata(metadata);\n\n for (var _iterator = possibleCountries, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {\n var _ref;\n\n if (_isArray) {\n if (_i >= _iterator.length) break;\n _ref = _iterator[_i++];\n } else {\n _i = _iterator.next();\n if (_i.done) break;\n _ref = _i.value;\n }\n\n var country = _ref;\n metadata.country(country); // Leading digits check would be the simplest one\n\n if (metadata.leadingDigits()) {\n if (nationalPhoneNumber && nationalPhoneNumber.search(metadata.leadingDigits()) === 0) {\n return country;\n }\n } // Else perform full validation with all of those\n // fixed-line/mobile/etc regular expressions.\n else if (getNumberType({\n phone: nationalPhoneNumber,\n country: country\n }, undefined, metadata.metadata)) {\n return country;\n }\n }\n}","export function maybe(thunk) {\n try {\n return thunk();\n } catch (_a) {}\n}","import Metadata from '../metadata';\n/**\r\n * Pattern that makes it easy to distinguish whether a region has a single\r\n * international dialing prefix or not. If a region has a single international\r\n * prefix (e.g. 011 in USA), it will be represented as a string that contains\r\n * a sequence of ASCII digits, and possibly a tilde, which signals waiting for\r\n * the tone. If there are multiple available international prefixes in a\r\n * region, they will be represented as a regex string that always contains one\r\n * or more characters that are not ASCII digits or a tilde.\r\n */\n\nvar SINGLE_IDD_PREFIX_REG_EXP = /^[\\d]+(?:[~\\u2053\\u223C\\uFF5E][\\d]+)?$/; // For regions that have multiple IDD prefixes\n// a preferred IDD prefix is returned.\n\nexport default function getIddPrefix(country, callingCode, metadata) {\n var countryMetadata = new Metadata(metadata);\n countryMetadata.selectNumberingPlan(country, callingCode);\n\n if (countryMetadata.defaultIDDPrefix()) {\n return countryMetadata.defaultIDDPrefix();\n }\n\n if (SINGLE_IDD_PREFIX_REG_EXP.test(countryMetadata.IDDPrefix())) {\n return countryMetadata.IDDPrefix();\n }\n}","function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\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} // This is a port of Google Android `libphonenumber`'s\n// `phonenumberutil.js` of December 31th, 2018.\n//\n// https://github.com/googlei18n/libphonenumber/commits/master/javascript/i18n/phonenumbers/phonenumberutil.js\n\n\nimport matchesEntirely from './helpers/matchesEntirely';\nimport formatNationalNumberUsingFormat from './helpers/formatNationalNumberUsingFormat';\nimport Metadata, { getCountryCallingCode } from './metadata';\nimport getIddPrefix from './helpers/getIddPrefix';\nimport { formatRFC3966 } from './helpers/RFC3966';\nvar DEFAULT_OPTIONS = {\n formatExtension: function formatExtension(formattedNumber, extension, metadata) {\n return \"\".concat(formattedNumber).concat(metadata.ext()).concat(extension);\n } // Formats a phone number\n //\n // Example use cases:\n //\n // ```js\n // formatNumber('8005553535', 'RU', 'INTERNATIONAL')\n // formatNumber('8005553535', 'RU', 'INTERNATIONAL', metadata)\n // formatNumber({ phone: '8005553535', country: 'RU' }, 'INTERNATIONAL')\n // formatNumber({ phone: '8005553535', country: 'RU' }, 'INTERNATIONAL', metadata)\n // formatNumber('+78005553535', 'NATIONAL')\n // formatNumber('+78005553535', 'NATIONAL', metadata)\n // ```\n //\n\n};\nexport default function formatNumber(input, format, options, metadata) {\n // Apply default options.\n if (options) {\n options = _objectSpread({}, DEFAULT_OPTIONS, options);\n } else {\n options = DEFAULT_OPTIONS;\n }\n\n metadata = new Metadata(metadata);\n\n if (input.country && input.country !== '001') {\n // Validate `input.country`.\n if (!metadata.hasCountry(input.country)) {\n throw new Error(\"Unknown country: \".concat(input.country));\n }\n\n metadata.country(input.country);\n } else if (input.countryCallingCode) {\n metadata.selectNumberingPlan(input.countryCallingCode);\n } else return input.phone || '';\n\n var countryCallingCode = metadata.countryCallingCode();\n var nationalNumber = options.v2 ? input.nationalNumber : input.phone; // This variable should have been declared inside `case`s\n // but Babel has a bug and it says \"duplicate variable declaration\".\n\n var number;\n\n switch (format) {\n case 'NATIONAL':\n // Legacy argument support.\n // (`{ country: ..., phone: '' }`)\n if (!nationalNumber) {\n return '';\n }\n\n number = formatNationalNumber(nationalNumber, input.carrierCode, 'NATIONAL', metadata, options);\n return addExtension(number, input.ext, metadata, options.formatExtension);\n\n case 'INTERNATIONAL':\n // Legacy argument support.\n // (`{ country: ..., phone: '' }`)\n if (!nationalNumber) {\n return \"+\".concat(countryCallingCode);\n }\n\n number = formatNationalNumber(nationalNumber, null, 'INTERNATIONAL', metadata, options);\n number = \"+\".concat(countryCallingCode, \" \").concat(number);\n return addExtension(number, input.ext, metadata, options.formatExtension);\n\n case 'E.164':\n // `E.164` doesn't define \"phone number extensions\".\n return \"+\".concat(countryCallingCode).concat(nationalNumber);\n\n case 'RFC3966':\n return formatRFC3966({\n number: \"+\".concat(countryCallingCode).concat(nationalNumber),\n ext: input.ext\n });\n // For reference, here's Google's IDD formatter:\n // https://github.com/google/libphonenumber/blob/32719cf74e68796788d1ca45abc85dcdc63ba5b9/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L1546\n // Not saying that this IDD formatter replicates it 1:1, but it seems to work.\n // Who would even need to format phone numbers in IDD format anyway?\n\n case 'IDD':\n if (!options.fromCountry) {\n return; // throw new Error('`fromCountry` option not passed for IDD-prefixed formatting.')\n }\n\n var formattedNumber = formatIDD(nationalNumber, input.carrierCode, countryCallingCode, options.fromCountry, metadata);\n return addExtension(formattedNumber, input.ext, metadata, options.formatExtension);\n\n default:\n throw new Error(\"Unknown \\\"format\\\" argument passed to \\\"formatNumber()\\\": \\\"\".concat(format, \"\\\"\"));\n }\n}\n\nfunction formatNationalNumber(number, carrierCode, formatAs, metadata, options) {\n var format = chooseFormatForNumber(metadata.formats(), number);\n\n if (!format) {\n return number;\n }\n\n return formatNationalNumberUsingFormat(number, format, {\n useInternationalFormat: formatAs === 'INTERNATIONAL',\n withNationalPrefix: format.nationalPrefixIsOptionalWhenFormattingInNationalFormat() && options && options.nationalPrefix === false ? false : true,\n carrierCode: carrierCode,\n metadata: metadata\n });\n}\n\nfunction chooseFormatForNumber(availableFormats, nationalNnumber) {\n for (var _iterator = availableFormats, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {\n var _ref;\n\n if (_isArray) {\n if (_i >= _iterator.length) break;\n _ref = _iterator[_i++];\n } else {\n _i = _iterator.next();\n if (_i.done) break;\n _ref = _i.value;\n }\n\n var format = _ref; // Validate leading digits\n\n if (format.leadingDigitsPatterns().length > 0) {\n // The last leading_digits_pattern is used here, as it is the most detailed\n var lastLeadingDigitsPattern = format.leadingDigitsPatterns()[format.leadingDigitsPatterns().length - 1]; // If leading digits don't match then move on to the next phone number format\n\n if (nationalNnumber.search(lastLeadingDigitsPattern) !== 0) {\n continue;\n }\n } // Check that the national number matches the phone number format regular expression\n\n\n if (matchesEntirely(nationalNnumber, format.pattern())) {\n return format;\n }\n }\n}\n\nfunction addExtension(formattedNumber, ext, metadata, formatExtension) {\n return ext ? formatExtension(formattedNumber, ext, metadata) : formattedNumber;\n}\n\nfunction formatIDD(nationalNumber, carrierCode, countryCallingCode, fromCountry, metadata) {\n var fromCountryCallingCode = getCountryCallingCode(fromCountry, metadata.metadata); // When calling within the same country calling code.\n\n if (fromCountryCallingCode === countryCallingCode) {\n var formattedNumber = formatNationalNumber(nationalNumber, carrierCode, 'NATIONAL', metadata); // For NANPA regions, return the national format for these regions\n // but prefix it with the country calling code.\n\n if (countryCallingCode === '1') {\n return countryCallingCode + ' ' + formattedNumber;\n } // If regions share a country calling code, the country calling code need\n // not be dialled. This also applies when dialling within a region, so this\n // if clause covers both these cases. Technically this is the case for\n // dialling from La Reunion to other overseas departments of France (French\n // Guiana, Martinique, Guadeloupe), but not vice versa - so we don't cover\n // this edge case for now and for those cases return the version including\n // country calling code. Details here:\n // http://www.petitfute.com/voyage/225-info-pratiques-reunion\n //\n\n\n return formattedNumber;\n }\n\n var iddPrefix = getIddPrefix(fromCountry, undefined, metadata.metadata);\n\n if (iddPrefix) {\n return \"\".concat(iddPrefix, \" \").concat(countryCallingCode, \" \").concat(formatNationalNumber(nationalNumber, null, 'INTERNATIONAL', metadata));\n }\n}","function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\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 _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nimport Metadata from './metadata';\nimport isPossibleNumber from './isPossibleNumber_';\nimport isValidNumber from './validate_';\nimport isValidNumberForRegion from './isValidNumberForRegion_';\nimport getNumberType from './helpers/getNumberType';\nimport formatNumber from './format_';\nvar USE_NON_GEOGRAPHIC_COUNTRY_CODE = false;\n\nvar PhoneNumber = /*#__PURE__*/function () {\n function PhoneNumber(countryCallingCode, nationalNumber, metadata) {\n _classCallCheck(this, PhoneNumber);\n\n if (!countryCallingCode) {\n throw new TypeError('`country` or `countryCallingCode` not passed');\n }\n\n if (!nationalNumber) {\n throw new TypeError('`nationalNumber` not passed');\n }\n\n if (!metadata) {\n throw new TypeError('`metadata` not passed');\n }\n\n var _metadata = new Metadata(metadata); // If country code is passed then derive `countryCallingCode` from it.\n // Also store the country code as `.country`.\n\n\n if (isCountryCode(countryCallingCode)) {\n this.country = countryCallingCode;\n\n _metadata.country(countryCallingCode);\n\n countryCallingCode = _metadata.countryCallingCode();\n } else {\n /* istanbul ignore if */\n if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n if (_metadata.isNonGeographicCallingCode(countryCallingCode)) {\n this.country = '001';\n }\n }\n }\n\n this.countryCallingCode = countryCallingCode;\n this.nationalNumber = nationalNumber;\n this.number = '+' + this.countryCallingCode + this.nationalNumber;\n this.metadata = metadata;\n }\n\n _createClass(PhoneNumber, [{\n key: \"isPossible\",\n value: function isPossible() {\n return isPossibleNumber(this, {\n v2: true\n }, this.metadata);\n }\n }, {\n key: \"isValid\",\n value: function isValid() {\n return isValidNumber(this, {\n v2: true\n }, this.metadata);\n }\n }, {\n key: \"isNonGeographic\",\n value: function isNonGeographic() {\n var metadata = new Metadata(this.metadata);\n return metadata.isNonGeographicCallingCode(this.countryCallingCode);\n }\n }, {\n key: \"isEqual\",\n value: function isEqual(phoneNumber) {\n return this.number === phoneNumber.number && this.ext === phoneNumber.ext;\n } // // Is just an alias for `this.isValid() && this.country === country`.\n // // https://github.com/googlei18n/libphonenumber/blob/master/FAQ.md#when-should-i-use-isvalidnumberforregion\n // isValidForRegion(country) {\n // \treturn isValidNumberForRegion(this, country, { v2: true }, this.metadata)\n // }\n\n }, {\n key: \"getType\",\n value: function getType() {\n return getNumberType(this, {\n v2: true\n }, this.metadata);\n }\n }, {\n key: \"format\",\n value: function format(_format, options) {\n return formatNumber(this, _format, options ? _objectSpread({}, options, {\n v2: true\n }) : {\n v2: true\n }, this.metadata);\n }\n }, {\n key: \"formatNational\",\n value: function formatNational(options) {\n return this.format('NATIONAL', options);\n }\n }, {\n key: \"formatInternational\",\n value: function formatInternational(options) {\n return this.format('INTERNATIONAL', options);\n }\n }, {\n key: \"getURI\",\n value: function getURI(options) {\n return this.format('RFC3966', options);\n }\n }]);\n\n return PhoneNumber;\n}();\n\nexport { PhoneNumber as default };\n\nvar isCountryCode = function isCountryCode(value) {\n return /^[A-Z]{2}$/.test(value);\n};","import Metadata from './metadata';\nimport matchesEntirely from './helpers/matchesEntirely';\nimport getNumberType from './helpers/getNumberType';\n/**\r\n * Checks if a given phone number is valid.\r\n *\r\n * If the `number` is a string, it will be parsed to an object,\r\n * but only if it contains only valid phone number characters (including punctuation).\r\n * If the `number` is an object, it is used as is.\r\n *\r\n * The optional `defaultCountry` argument is the default country.\r\n * I.e. it does not restrict to just that country,\r\n * e.g. in those cases where several countries share\r\n * the same phone numbering rules (NANPA, Britain, etc).\r\n * For example, even though the number `07624 369230`\r\n * belongs to the Isle of Man (\"IM\" country code)\r\n * calling `isValidNumber('07624369230', 'GB', metadata)`\r\n * still returns `true` because the country is not restricted to `GB`,\r\n * it's just that `GB` is the default one for the phone numbering rules.\r\n * For restricting the country see `isValidNumberForRegion()`\r\n * though restricting a country might not be a good idea.\r\n * https://github.com/googlei18n/libphonenumber/blob/master/FAQ.md#when-should-i-use-isvalidnumberforregion\r\n *\r\n * Examples:\r\n *\r\n * ```js\r\n * isValidNumber('+78005553535', metadata)\r\n * isValidNumber('8005553535', 'RU', metadata)\r\n * isValidNumber('88005553535', 'RU', metadata)\r\n * isValidNumber({ phone: '8005553535', country: 'RU' }, metadata)\r\n * ```\r\n */\n\nexport default function isValidNumber(input, options, metadata) {\n // If assigning the `{}` default value is moved to the arguments above,\n // code coverage would decrease for some weird reason.\n options = options || {};\n metadata = new Metadata(metadata); // This is just to support `isValidNumber({})`\n // for cases when `parseNumber()` returns `{}`.\n\n if (!input.country) {\n return false;\n }\n\n metadata.selectNumberingPlan(input.country, input.countryCallingCode); // By default, countries only have type regexps when it's required for\n // distinguishing different countries having the same `countryCallingCode`.\n\n if (metadata.hasTypes()) {\n return getNumberType(input, options, metadata.metadata) !== undefined;\n } // If there are no type regexps for this country in metadata then use\n // `nationalNumberPattern` as a \"better than nothing\" replacement.\n\n\n var national_number = options.v2 ? input.nationalNumber : input.phone;\n return matchesEntirely(national_number, metadata.nationalNumberPattern());\n}","export function isNonNullObject(obj) {\n return obj !== null && typeof obj === 'object';\n}","var matchHtmlEntity = /&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g;\nvar htmlEntities = {\n '&': '&',\n '&': '&',\n '<': '<',\n '<': '<',\n '>': '>',\n '>': '>',\n ''': \"'\",\n ''': \"'\",\n '"': '\"',\n '"': '\"',\n ' ': ' ',\n ' ': ' ',\n '©': '©',\n '©': '©',\n '®': '®',\n '®': '®',\n '…': '…',\n '…': '…',\n '/': '/',\n '/': '/'\n};\n\nvar unescapeHtmlEntity = function unescapeHtmlEntity(m) {\n return htmlEntities[m];\n};\n\nexport var unescape = function unescape(text) {\n return text.replace(matchHtmlEntity, unescapeHtmlEntity);\n};","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nimport { createContext } from 'react';\nimport { unescape } from './unescape';\nvar defaultOptions = {\n bindI18n: 'languageChanged',\n bindI18nStore: '',\n transEmptyNodeValue: '',\n transSupportBasicHtmlNodes: true,\n transWrapTextNodes: '',\n transKeepBasicHtmlNodesFor: ['br', 'strong', 'i', 'p'],\n useSuspense: true,\n unescape: unescape\n};\nvar i18nInstance;\nexport var I18nContext = createContext();\nexport function setDefaults() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n defaultOptions = _objectSpread(_objectSpread({}, defaultOptions), options);\n}\nexport function getDefaults() {\n return defaultOptions;\n}\nexport var ReportNamespaces = function () {\n function ReportNamespaces() {\n _classCallCheck(this, ReportNamespaces);\n\n this.usedNamespaces = {};\n }\n\n _createClass(ReportNamespaces, [{\n key: \"addUsedNamespaces\",\n value: function addUsedNamespaces(namespaces) {\n var _this = this;\n\n namespaces.forEach(function (ns) {\n if (!_this.usedNamespaces[ns]) _this.usedNamespaces[ns] = true;\n });\n }\n }, {\n key: \"getUsedNamespaces\",\n value: function getUsedNamespaces() {\n return Object.keys(this.usedNamespaces);\n }\n }]);\n\n return ReportNamespaces;\n}();\nexport function setI18n(instance) {\n i18nInstance = instance;\n}\nexport function getI18n() {\n return i18nInstance;\n}\nexport var initReactI18next = {\n type: '3rdParty',\n init: function init(instance) {\n setDefaults(instance.options.react);\n setI18n(instance);\n }\n};\nexport function composeInitialProps(ForComponent) {\n return function (ctx) {\n return new Promise(function (resolve) {\n var i18nInitialProps = getInitialProps();\n\n if (ForComponent.getInitialProps) {\n ForComponent.getInitialProps(ctx).then(function (componentsInitialProps) {\n resolve(_objectSpread(_objectSpread({}, componentsInitialProps), i18nInitialProps));\n });\n } else {\n resolve(i18nInitialProps);\n }\n });\n };\n}\nexport function getInitialProps() {\n var i18n = getI18n();\n var namespaces = i18n.reportNamespaces ? i18n.reportNamespaces.getUsedNamespaces() : [];\n var ret = {};\n var initialI18nStore = {};\n i18n.languages.forEach(function (l) {\n initialI18nStore[l] = {};\n namespaces.forEach(function (ns) {\n initialI18nStore[l][ns] = i18n.getResourceBundle(l, ns) || {};\n });\n });\n ret.initialI18nStore = initialI18nStore;\n ret.initialLanguage = i18n.language;\n return ret;\n}","// @noflow\n\nexport { default } from './Image'\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://git.io/fxCyr\"));\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://git.io/fxCyr\"));\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://git.io/fxCyr\"));\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://git.io/fxCyr\"));\n }\n}","module.exports = __webpack_public_path__ + \"media/paws/paw-yellow-alt-ec6fabb1.svg\";","module.exports = __webpack_public_path__ + \"media/arrows/arrow--white-88052e73.svg\";","'use strict';\n\nexports.__esModule = true;\nvar errorProps = ['description', 'fileName', 'lineNumber', 'endLineNumber', 'message', 'name', 'number', 'stack'];\n\nfunction Exception(message, node) {\n var loc = node && node.loc,\n line = undefined,\n endLineNumber = undefined,\n column = undefined,\n endColumn = undefined;\n\n if (loc) {\n line = loc.start.line;\n endLineNumber = loc.end.line;\n column = loc.start.column;\n endColumn = loc.end.column;\n message += ' - ' + line + ':' + column;\n }\n\n var tmp = Error.prototype.constructor.call(this, message); // Unfortunately errors are not enumerable in Chrome (at least), so `for prop in tmp` doesn't work.\n\n for (var idx = 0; idx < errorProps.length; idx++) {\n this[errorProps[idx]] = tmp[errorProps[idx]];\n }\n /* istanbul ignore else */\n\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, Exception);\n }\n\n try {\n if (loc) {\n this.lineNumber = line;\n this.endLineNumber = endLineNumber; // Work around issue under safari where we can't directly set the column value\n\n /* istanbul ignore next */\n\n if (Object.defineProperty) {\n Object.defineProperty(this, 'column', {\n value: column,\n enumerable: true\n });\n Object.defineProperty(this, 'endColumn', {\n value: endColumn,\n enumerable: true\n });\n } else {\n this.column = column;\n this.endColumn = endColumn;\n }\n }\n } catch (nop) {\n /* Ignore if the browser is very particular */\n }\n}\n\nException.prototype = new Error();\nexports['default'] = Exception;\nmodule.exports = exports['default'];","// @noflow\nimport Cookies from 'js-cookie'\nimport React, { useEffect } from 'react'\n\ndeclare global {\n interface Window {\n Trustpilot: {\n loadFromElement: (element: HTMLElement, arg: boolean) => void\n }\n }\n}\n\nenum TemplateId {\n Default = '5419b6ffb0d04a076446a9af',\n Slim = '5419b732fbfb950b10de65e5'\n}\n\nenum Variant {\n Default = 'default',\n Slim = 'slim'\n}\n\nenum Theme {\n Light = 'light',\n Dark = 'dark'\n}\n\ntype Props = {\n businessUnitId: string\n width: string\n height: string\n variant: Variant\n theme: Theme\n}\n\nconst TrustpilotWidget = ({\n businessUnitId,\n width,\n height,\n variant,\n theme\n}: Props): JSX.Element => {\n const trustBoxRef = React.useRef<HTMLDivElement>(null)\n const language = Cookies.get('user_language')\n const shippingCountryCode = Cookies.get('user_country_code')\n const locale =\n language && shippingCountryCode\n ? `${language}-${shippingCountryCode}`\n : 'en-GB'\n\n useEffect((): void => {\n if (window.Trustpilot && trustBoxRef.current) {\n window.Trustpilot.loadFromElement(trustBoxRef.current, true)\n }\n }, [])\n\n return (\n <section className=\"trustpilot-section\">\n <div\n ref={trustBoxRef}\n className=\"trustpilot-widget\"\n data-businessunit-id={businessUnitId}\n data-locale={locale}\n data-style-height={height}\n data-style-width={width}\n data-template-id={\n variant === Variant.Slim ? TemplateId.Slim : TemplateId.Default\n }\n data-theme={theme}\n />\n </section>\n )\n}\n\nexport { Props, Variant, Theme }\nexport default TrustpilotWidget\n","import { __assign } from \"tslib\";\nimport { useCallback, useMemo, useRef } from 'react';\nimport { mergeOptions } from \"../../utilities/index.js\";\nimport { useInternalState } from \"./useQuery.js\";\nimport { useApolloClient } from \"./useApolloClient.js\";\nvar EAGER_METHODS = ['refetch', 'reobserve', 'fetchMore', 'updateQuery', 'startPolling', 'subscribeToMore'];\nexport function useLazyQuery(query, options) {\n var internalState = useInternalState(useApolloClient(options && options.client), query);\n var execOptionsRef = useRef();\n var merged = execOptionsRef.current ? mergeOptions(options, execOptionsRef.current) : options;\n var useQueryResult = internalState.useQuery(__assign(__assign({}, merged), {\n skip: !execOptionsRef.current\n }));\n var initialFetchPolicy = useQueryResult.observable.options.initialFetchPolicy || internalState.getDefaultFetchPolicy();\n var result = Object.assign(useQueryResult, {\n called: !!execOptionsRef.current\n });\n var eagerMethods = useMemo(function () {\n var eagerMethods = {};\n\n var _loop_1 = function _loop_1(key) {\n var method = result[key];\n\n eagerMethods[key] = function () {\n if (!execOptionsRef.current) {\n execOptionsRef.current = Object.create(null);\n internalState.forceUpdate();\n }\n\n return method.apply(this, arguments);\n };\n };\n\n for (var _i = 0, EAGER_METHODS_1 = EAGER_METHODS; _i < EAGER_METHODS_1.length; _i++) {\n var key = EAGER_METHODS_1[_i];\n\n _loop_1(key);\n }\n\n return eagerMethods;\n }, []);\n Object.assign(result, eagerMethods);\n var execute = useCallback(function (executeOptions) {\n execOptionsRef.current = executeOptions ? __assign(__assign({}, executeOptions), {\n fetchPolicy: executeOptions.fetchPolicy || initialFetchPolicy\n }) : {\n fetchPolicy: initialFetchPolicy\n };\n var promise = internalState.asyncUpdate().then(function (queryResult) {\n return Object.assign(queryResult, eagerMethods);\n });\n promise.catch(function () {});\n return promise;\n }, []);\n return [execute, result];\n}","// @noflow\nimport { useReactiveVar } from '@apollo/client'\nimport Cookies from 'js-cookie'\nimport React, { useCallback, useEffect, useState } from 'react'\n\nimport ManageModal, {\n ManageProps\n} from '@/components/shared/CookieConsent/Modals/ManageModal'\nimport StrictModal, {\n StrictProps\n} from '@/components/shared/CookieConsent/Modals/StrictModal'\n\nimport { Code as CountryCode } from '@/types'\n\nimport { cookieConsentModalState } from '../CookieConsent'\n\nenum Variant {\n Strict = 'strict',\n Default = 'default'\n}\n\ntype BaseProps = ManageProps | StrictProps\n\ntype BaseModalProps = BaseProps & {\n variant: Variant\n shippingCountryCode: CountryCode\n handleModalClose: () => void\n setShowStrictModal: (arg0: boolean) => void\n}\n\nconst CookieConsentModal = ({\n variant,\n applyPreferences\n}: BaseProps): JSX.Element => {\n const countryCodeCookiesKey = 'user_country_code'\n const cookieConsentModal = useReactiveVar(cookieConsentModalState)\n const shippingCountryCode =\n (Cookies.get(countryCodeCookiesKey) as CountryCode) || CountryCode.GB\n\n const [isModalOpen, setIsModalOpen] = useState(cookieConsentModal.visible)\n const [showStrictModal, setShowStrictModal] = useState(\n variant === Variant.Strict && cookieConsentModal.visible\n )\n\n const handleModalClose = useCallback(() => {\n setIsModalOpen(false)\n\n setTimeout(() => {\n cookieConsentModalState({ visible: false })\n }, 300)\n }, [])\n\n useEffect(() => {\n setIsModalOpen(cookieConsentModal.visible)\n setShowStrictModal(variant === Variant.Strict && cookieConsentModal.visible)\n\n document.body.style.overflow = isModalOpen ? 'hidden' : 'auto'\n }, [cookieConsentModal, isModalOpen, variant])\n\n return (\n <>\n <div\n className={`cookie-modal-overlay ${isModalOpen ? 'transition-in' : ''}`}\n />\n <section className={`cookie-modal ${isModalOpen ? 'transition-in' : ''}`}>\n {showStrictModal ? (\n <StrictModal\n variant={variant}\n shippingCountryCode={shippingCountryCode}\n applyPreferences={applyPreferences}\n handleModalClose={handleModalClose}\n setShowStrictModal={setShowStrictModal}\n />\n ) : (\n <ManageModal\n variant={variant}\n shippingCountryCode={shippingCountryCode}\n applyPreferences={applyPreferences}\n handleModalClose={handleModalClose}\n setShowStrictModal={setShowStrictModal}\n />\n )}\n </section>\n </>\n )\n}\n\nexport default CookieConsentModal\n\nexport { Variant, BaseModalProps }\n","// @noflow\n\ntype Route =\n | '/wizard/new'\n | '/wizard/gender'\n | '/wizard/age'\n | '/wizard/breed'\n | '/wizard/food'\n | '/wizard/eater'\n | '/wizard/fussiness-help'\n | '/wizard/goals'\n | '/wizard/body'\n | '/wizard/weight'\n | '/wizard/activity'\n | '/wizard/allergies'\n | '/wizard/health'\n | '/wizard/snacks'\n | '/wizard/pet-parent'\n\nconst Name: Route = '/wizard/new'\nconst Gender: Route = '/wizard/gender'\nconst Age: Route = '/wizard/age'\nconst Breed: Route = '/wizard/breed'\nconst Food: Route = '/wizard/food'\nconst Eater: Route = '/wizard/eater'\nconst FussinessHelp: Route = '/wizard/fussiness-help'\nconst BodyShape: Route = '/wizard/body'\nconst Weight: Route = '/wizard/weight'\nconst Activity: Route = '/wizard/activity'\nconst Allergies: Route = '/wizard/allergies'\nconst Health: Route = '/wizard/health'\nconst Snacks: Route = '/wizard/snacks'\nconst Goals: Route = '/wizard/goals'\nconst PetParent: Route = '/wizard/pet-parent'\n\nconst WizardRoutes = {\n Name,\n Gender,\n Age,\n Breed,\n Food,\n Eater,\n FussinessHelp,\n Goals,\n BodyShape,\n Weight,\n Activity,\n Allergies,\n Health,\n Snacks,\n PetParent\n}\n\ntype FullWizardRoutes = (typeof WizardRoutes)[keyof typeof WizardRoutes]\n\nexport type { Route, FullWizardRoutes }\n\nexport default WizardRoutes\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"xs\":\"375px\",\"sm\":\"600px\",\"md\":\"834px\",\"lg\":\"1280px\",\"xl\":\"1280px\",\"hyphens\":\"Text-module__hyphens___2YM7d\",\"nomargin\":\"Text-module__nomargin___68cTX\",\"leftAlign\":\"Text-module__leftAlign___37tt2\",\"centerAlign\":\"Text-module__centerAlign___2pOVt\",\"rightAlign\":\"Text-module__rightAlign___7uh5y\",\"uppercase\":\"Text-module__uppercase___jrxoB\",\"strikeThrough\":\"Text-module__strikeThrough___MvdmR\",\"bold\":\"Text-module__bold___525Nr\",\"discount\":\"Text-module__discount___1Ypkb\",\"textMono18\":\"Text-module__textMono18___1L1SH\",\"textMono16\":\"Text-module__textMono16___22ipQ\",\"textMono14\":\"Text-module__textMono14___1F_wD\",\"textMono12\":\"Text-module__textMono12___AGE37\",\"textRegular20\":\"Text-module__textRegular20___2_gnX\",\"textRegular18\":\"Text-module__textRegular18___66jcJ\",\"textRegular16\":\"Text-module__textRegular16___-TYQ6\",\"textRegular14\":\"Text-module__textRegular14___LwPjA\",\"textRegular12\":\"Text-module__textRegular12___34DKo\",\"display45\":\"Text-module__display45___2B5ZS\",\"display36\":\"Text-module__display36___vrlu_\",\"display28\":\"Text-module__display28___2P3RX\",\"display24\":\"Text-module__display24___3MSoz\",\"display20\":\"Text-module__display20___eTErO\",\"display18\":\"Text-module__display18___39J-X\",\"display16\":\"Text-module__display16___1e7O0\",\"display14\":\"Text-module__display14___2krwX\",\"display12\":\"Text-module__display12___EEyyx\",\"scale\":\"Text-module__scale___2akVs\",\"tight\":\"Text-module__tight___1TcSa\",\"brandBlue100\":\"Text-module__brandBlue100___279nB\",\"brandBlue200\":\"Text-module__brandBlue200___3zZgN\",\"brandBlue300\":\"Text-module__brandBlue300___2N_p4\",\"brandBlue400\":\"Text-module__brandBlue400___3E2Gm\",\"brandBlue500\":\"Text-module__brandBlue500___3l8y9\",\"brandBlue600\":\"Text-module__brandBlue600___1w73C\",\"brandRed300\":\"Text-module__brandRed300___22WeU\",\"brandRed400\":\"Text-module__brandRed400___1IiuZ\",\"brandRed500\":\"Text-module__brandRed500___1sYNU\",\"brandRed600\":\"Text-module__brandRed600___1jgIZ\",\"brandYellow100\":\"Text-module__brandYellow100___AjOhz\",\"brandYellow300\":\"Text-module__brandYellow300___NEDg-\",\"brandYellow600\":\"Text-module__brandYellow600___3c1e3\",\"brandYellow700\":\"Text-module__brandYellow700___2nXF5\",\"brandPink200\":\"Text-module__brandPink200___37k4E\",\"brandPink400\":\"Text-module__brandPink400___iAJOr\",\"brandPink500\":\"Text-module__brandPink500___1PWci\",\"brandWhite\":\"Text-module__brandWhite___1wshz\",\"supportGreen300\":\"Text-module__supportGreen300___OPoaS\",\"supportGreen400\":\"Text-module__supportGreen400___2ntTd\",\"supportGreen500\":\"Text-module__supportGreen500___2dFRW\",\"supportOrange300\":\"Text-module__supportOrange300___2bvnW\",\"supportOrange400\":\"Text-module__supportOrange400___2X7Qf\",\"supportOrange500\":\"Text-module__supportOrange500___38zAq\",\"supportRed300\":\"Text-module__supportRed300___3pnQ6\",\"supportRed500\":\"Text-module__supportRed500___2PEPM\",\"supportBlue300\":\"Text-module__supportBlue300___3n-FZ\",\"supportBlue500\":\"Text-module__supportBlue500___1e9HW\",\"dangerRed300\":\"Text-module__dangerRed300___ZTt8M\",\"dangerRed500\":\"Text-module__dangerRed500___3lUJi\",\"cardboardBrown\":\"Text-module__cardboardBrown___3MVL8\",\"grey400\":\"Text-module__grey400___1c7Sz\",\"shadowBlack\":\"Text-module__shadowBlack___1zKg5\",\"squigglyUnderlineYellow\":\"Text-module__squigglyUnderlineYellow___3Teka\",\"squigglyUnderlineBlue\":\"Text-module__squigglyUnderlineBlue___3a3rQ\",\"squigglyUnderlineGreen\":\"Text-module__squigglyUnderlineGreen___2T3pF\",\"squigglyUnderlinePinkLarge\":\"Text-module__squigglyUnderlinePinkLarge___2VyOP\",\"pillDiscount\":\"Text-module__pillDiscount___1-AZC\",\"angledStrikethrough\":\"Text-module__angledStrikethrough___1ATqe\",\"discountStrikeThrough\":\"Text-module__discountStrikeThrough___3VRbo\",\"link\":\"Text-module__link___N7xa_\",\"whiteTape\":\"Text-module__whiteTape___1IFqx\",\"lightBlueTape\":\"Text-module__lightBlueTape___3aOyI\",\"whiteTapeWithBlueShadow\":\"Text-module__whiteTapeWithBlueShadow___2EN7M\",\"blueTape\":\"Text-module__blueTape___30rDs\",\"blueTapeOutlinedWhiteText\":\"Text-module__blueTapeOutlinedWhiteText___zWOuA\",\"yellowTape\":\"Text-module__yellowTape___2vnlM\",\"pinkTape\":\"Text-module__pinkTape___33A3C\",\"redTape\":\"Text-module__redTape___1e-Mc\",\"greenTape\":\"Text-module__greenTape___1saHk\",\"colorAccentDiscount\":\"Text-module__colorAccentDiscount___2ZhnB\",\"colorAccentLight\":\"Text-module__colorAccentLight___3MbOx\",\"strikeTrough\":\"Text-module__strikeTrough___1MSqF\",\"underline\":\"Text-module__underline___2-_3C\",\"redAccent\":\"Text-module__redAccent___zmn0F\",\"yellowAccent\":\"Text-module__yellowAccent___3UXJp\",\"blueTextShadow\":\"Text-module__blueTextShadow___eBbJ-\",\"grayTextShadow\":\"Text-module__grayTextShadow___EupRb\",\"redTextShadow\":\"Text-module__redTextShadow___2v0zU\",\"yellowUnderline\":\"Text-module__yellowUnderline___1ZMXU\"};","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\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 return obj;\n}\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// @noflow\nimport { ReactiveVar, makeVar } from '@apollo/client'\n\nimport type {\n ClientInitQuery_user_dogs as Dog,\n ClientInitQuery_user_shippingCountry as ShippingCountry,\n ClientInitQuery_user_subscription as Subscription,\n ClientInitQuery_user as User\n} from '@/components/pages/App/queries/__generated__/ClientInitQuery'\n\nimport { SubscriptionStatus } from '@/types/index'\n\ntype DynamicDefaultTrackEventProperties = {\n subscription_id?: string\n subscription_status?: SubscriptionStatus\n deliveries_received?: number\n has_puppy?: boolean\n has_fussy_eater?: boolean\n}\n\ntype DogInfo = {\n dogs: Array<Dog>\n pronoun: 'male' | 'female' | 'plural'\n possessive: Record<string, string>\n has_puppy: boolean\n has_fussy_eater: boolean\n}\n\nconst dynamicDefaultTrackEventPropertiesVar: ReactiveVar<DynamicDefaultTrackEventProperties | null> =\n makeVar<DynamicDefaultTrackEventProperties | null>(null)\n\nconst userDataVar: ReactiveVar<User | null> = makeVar<User | null>(null)\n\nconst dogsDataVar: ReactiveVar<DogInfo | null> = makeVar<DogInfo | null>(null)\n\nconst subscriptionDataVar: ReactiveVar<Subscription | null> =\n makeVar<Subscription | null>(null)\n\nconst shippingCountryDataVar: ReactiveVar<ShippingCountry | null> =\n makeVar<ShippingCountry | null>(null)\n\nconst featureFlagsDataVar: ReactiveVar<Record<string, string | null> | null> =\n makeVar<Record<string, string | null> | null>(null)\n\nconst hasNotificationsVar: ReactiveVar<boolean> = makeVar<boolean>(false)\n\nconst settingsVar: ReactiveVar<Record<string, boolean>> = makeVar<\n Record<string, boolean>\n>({})\n\nexport type { DynamicDefaultTrackEventProperties, DogInfo, ShippingCountry }\n\nexport {\n dynamicDefaultTrackEventPropertiesVar,\n dogsDataVar,\n userDataVar,\n subscriptionDataVar,\n shippingCountryDataVar,\n featureFlagsDataVar,\n hasNotificationsVar,\n settingsVar\n}\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};\n\nvar formatDistance = function formatDistance(token, count, options) {\n var result;\n var tokenValue = formatDistanceLocale[token];\n\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\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\n return result;\n};\n\nexport default formatDistance;","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};\n\nvar formatRelative = function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n};\n\nexport default formatRelative;","// @noflow\nimport Cookies from 'js-cookie'\nimport React, { useCallback } from 'react'\nimport { useTranslation } from 'react-i18next'\n\nimport type { BreedSelectorQuery_breeds as Breed } from '@/components/elements/molecules/BreedAutocomplete/queries/__generated__/BreedSelectorQuery'\nimport BreedAutocomplete from '@/components/shared/elements/BreedSelector/components/BreedAutocomplete/BreedAutocomplete'\n\nimport { BreedSelectorVariant } from '../../BreedSelector/BreedSelector'\n\ntype Props = {\n breedSelectRef?: React.RefObject<HTMLDivElement>\n onFocusCallback?: () => void\n}\n\nconst namespace = 'homepage'\nconst copyContext = 'rough_cost_calculator'\nconst baseClass = 'rough-cost-calculator__cost-calculator'\n\nconst BreedSelect = ({\n breedSelectRef,\n onFocusCallback\n}: Props): JSX.Element => {\n const { t } = useTranslation(namespace)\n\n const onBreedSelectionCallback = useCallback((breed: Breed) => {\n // Set Breed ID cookie to be accessed by the Wizard to allow\n // for pre-populated breed selection\n Cookies.set(\n 'breedSelectorBreedId',\n JSON.stringify({\n id: parseInt(breed.id),\n key: breed.key,\n name: breed.name\n })\n )\n }, [])\n\n return (\n <div className={`${baseClass}__breed-row`}>\n <p className={`text-regular-18 no-scale breed-label`}>\n {t(`${copyContext}.breed_label`)}\n </p>\n <div className={`${baseClass}__breed-autocomplete`} ref={breedSelectRef}>\n <BreedAutocomplete\n loadingPlaceholder={t(`${copyContext}.breed_loading`)}\n placeholder={t(`${copyContext}.breed_placeholder`)}\n events={{\n onBreedSelection: onBreedSelectionCallback,\n onListOpen: () => null,\n onFocus: onFocusCallback || (() => null),\n onInputEmpty: () => null\n }}\n variant={BreedSelectorVariant.Generic}\n />\n </div>\n </div>\n )\n}\n\nexport default BreedSelect\n","// @noflow\nimport type { AgeCategory } from '@/static_content/EstimatedDailyPlanPrices'\n\nconst ageToAgeCategory = (dogAge: number): AgeCategory => {\n switch (dogAge) {\n case 0: {\n return 'puppy'\n }\n case 12: {\n return 'senior'\n }\n default: {\n return 'adult'\n }\n }\n}\n\nexport { ageToAgeCategory }\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}; // 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.\n\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};\n\nvar ordinalNumber = function ordinalNumber(dirtyNumber, _options) {\n var number = Number(dirtyNumber); // 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\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st';\n\n case 2:\n return number + 'nd';\n\n case 3:\n return number + 'rd';\n }\n }\n\n return number + 'th';\n};\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;","function _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\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 _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n\nfunction _iterableToArrayLimit(arr, i) {\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 _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nimport parsePhoneNumber_ from './parsePhoneNumber_';\nexport default function parsePhoneNumber() {\n var _normalizeArguments = normalizeArguments(arguments),\n text = _normalizeArguments.text,\n options = _normalizeArguments.options,\n metadata = _normalizeArguments.metadata;\n\n return parsePhoneNumber_(text, options, metadata);\n}\nexport function normalizeArguments(args) {\n var _Array$prototype$slic = Array.prototype.slice.call(args),\n _Array$prototype$slic2 = _slicedToArray(_Array$prototype$slic, 4),\n arg_1 = _Array$prototype$slic2[0],\n arg_2 = _Array$prototype$slic2[1],\n arg_3 = _Array$prototype$slic2[2],\n arg_4 = _Array$prototype$slic2[3];\n\n var text;\n var options;\n var metadata; // If the phone number is passed as a string.\n // `parsePhoneNumber('88005553535', ...)`.\n\n if (typeof arg_1 === 'string') {\n text = arg_1;\n } else throw new TypeError('A text for parsing must be a string.'); // If \"default country\" argument is being passed then move it to `options`.\n // `parsePhoneNumber('88005553535', 'RU', [options], metadata)`.\n\n\n if (!arg_2 || typeof arg_2 === 'string') {\n if (arg_4) {\n options = arg_3;\n metadata = arg_4;\n } else {\n options = undefined;\n metadata = arg_3;\n }\n\n if (arg_2) {\n options = _objectSpread({\n defaultCountry: arg_2\n }, options);\n }\n } // `defaultCountry` is not passed.\n // Example: `parsePhoneNumber('+78005553535', [options], metadata)`.\n else if (isObject(arg_2)) {\n if (arg_3) {\n options = arg_2;\n metadata = arg_3;\n } else {\n metadata = arg_2;\n }\n } else throw new Error(\"Invalid second argument: \".concat(arg_2));\n\n return {\n text: text,\n options: options,\n metadata: metadata\n };\n} // Otherwise istanbul would show this as \"branch not covered\".\n\n/* istanbul ignore next */\n\nvar isObject = function isObject(_) {\n return _typeof(_) === 'object';\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 toInteger from \"../toInteger/index.js\";\nimport toDate from \"../../toDate/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCWeekYear(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate, dirtyOptions);\n var year = date.getUTCFullYear();\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeFirstWeekContainsDate = locale && locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\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, dirtyOptions);\n var firstWeekOfThisYear = new Date(0);\n firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, dirtyOptions);\n\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}","// The minimum length of the national significant number.\nexport var MIN_LENGTH_FOR_NSN = 2; // The ITU says the maximum length should be 15,\n// but one can find longer numbers in Germany.\n\nexport var MAX_LENGTH_FOR_NSN = 17; // The maximum length of the country calling code.\n\nexport var MAX_LENGTH_COUNTRY_CODE = 3; // Digits accepted in phone numbers\n// (ascii, fullwidth, arabic-indic, and eastern arabic digits).\n\nexport var VALID_DIGITS = \"0-9\\uFF10-\\uFF19\\u0660-\\u0669\\u06F0-\\u06F9\"; // `DASHES` will be right after the opening square bracket of the \"character class\"\n\nvar DASHES = \"-\\u2010-\\u2015\\u2212\\u30FC\\uFF0D\";\nvar SLASHES = \"\\uFF0F/\";\nvar DOTS = \"\\uFF0E.\";\nexport var WHITESPACE = \" \\xA0\\xAD\\u200B\\u2060\\u3000\";\nvar BRACKETS = \"()\\uFF08\\uFF09\\uFF3B\\uFF3D\\\\[\\\\]\"; // export const OPENING_BRACKETS = '(\\uFF08\\uFF3B\\\\\\['\n\nvar TILDES = \"~\\u2053\\u223C\\uFF5E\"; // Regular expression of acceptable punctuation found in phone numbers. This\n// excludes punctuation found as a leading character only. This consists of dash\n// characters, white space characters, full stops, slashes, square brackets,\n// parentheses and tildes. Full-width variants are also present.\n\nexport var VALID_PUNCTUATION = \"\".concat(DASHES).concat(SLASHES).concat(DOTS).concat(WHITESPACE).concat(BRACKETS).concat(TILDES);\nexport var PLUS_CHARS = \"+\\uFF0B\"; // const LEADING_PLUS_CHARS_PATTERN = new RegExp('^[' + PLUS_CHARS + ']+')","import toDate from \"../../toDate/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\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\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 \"../globals/index.js\";\nimport { isNonNullObject } from \"./objects.js\";\n\nfunction deepFreeze(value) {\n var workSet = new Set([value]);\n workSet.forEach(function (obj) {\n if (isNonNullObject(obj) && shallowFreeze(obj) === obj) {\n Object.getOwnPropertyNames(obj).forEach(function (name) {\n if (isNonNullObject(obj[name])) workSet.add(obj[name]);\n });\n }\n });\n return value;\n}\n\nfunction shallowFreeze(obj) {\n if (__DEV__ && !Object.isFrozen(obj)) {\n try {\n Object.freeze(obj);\n } catch (e) {\n if (e instanceof TypeError) return null;\n throw e;\n }\n }\n\n return obj;\n}\n\nexport function maybeDeepFreeze(obj) {\n if (__DEV__) {\n deepFreeze(obj);\n }\n\n return obj;\n}","// Copy-pasted from:\n// https://github.com/substack/semver-compare/blob/master/index.js\n//\n// Inlining this function because some users reported issues with\n// importing from `semver-compare` in a browser with ES6 \"native\" modules.\n//\n// Fixes `semver-compare` not being able to compare versions with alpha/beta/etc \"tags\".\n// https://github.com/catamphetamine/libphonenumber-js/issues/381\nexport default function (a, b) {\n a = a.split('-');\n b = b.split('-');\n var pa = a[0].split('.');\n var pb = b[0].split('.');\n\n for (var i = 0; i < 3; i++) {\n var na = Number(pa[i]);\n var nb = Number(pb[i]);\n if (na > nb) return 1;\n if (nb > na) return -1;\n if (!isNaN(na) && isNaN(nb)) return 1;\n if (isNaN(na) && !isNaN(nb)) return -1;\n }\n\n if (a[1] && b[1]) {\n return a[1] > b[1] ? 1 : a[1] < b[1] ? -1 : 0;\n }\n\n return !a[1] && b[1] ? 1 : a[1] && !b[1] ? -1 : 0;\n}","function _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nimport compare from './tools/semver-compare'; // Added \"possibleLengths\" and renamed\n// \"country_phone_code_to_countries\" to \"country_calling_codes\".\n\nvar V2 = '1.0.18'; // Added \"idd_prefix\" and \"default_idd_prefix\".\n\nvar V3 = '1.2.0'; // Moved `001` country code to \"nonGeographic\" section of metadata.\n\nvar V4 = '1.7.35';\nvar DEFAULT_EXT_PREFIX = ' ext. ';\nvar CALLING_CODE_REG_EXP = /^\\d+$/;\n/**\r\n * See: https://gitlab.com/catamphetamine/libphonenumber-js/blob/master/METADATA.md\r\n */\n\nvar Metadata = /*#__PURE__*/function () {\n function Metadata(metadata) {\n _classCallCheck(this, Metadata);\n\n validateMetadata(metadata);\n this.metadata = metadata;\n setVersion.call(this, metadata);\n }\n\n _createClass(Metadata, [{\n key: \"getCountries\",\n value: function getCountries() {\n return Object.keys(this.metadata.countries).filter(function (_) {\n return _ !== '001';\n });\n }\n }, {\n key: \"getCountryMetadata\",\n value: function getCountryMetadata(countryCode) {\n return this.metadata.countries[countryCode];\n }\n }, {\n key: \"nonGeographic\",\n value: function nonGeographic() {\n if (this.v1 || this.v2 || this.v3) return; // `nonGeographical` was a typo.\n // It's present in metadata generated from `1.7.35` to `1.7.37`.\n\n return this.metadata.nonGeographic || this.metadata.nonGeographical;\n }\n }, {\n key: \"hasCountry\",\n value: function hasCountry(country) {\n return this.getCountryMetadata(country) !== undefined;\n }\n }, {\n key: \"hasCallingCode\",\n value: function hasCallingCode(callingCode) {\n if (this.getCountryCodesForCallingCode(callingCode)) {\n return true;\n }\n\n if (this.nonGeographic()) {\n if (this.nonGeographic()[callingCode]) {\n return true;\n }\n } else {\n // A hacky workaround for old custom metadata (generated before V4).\n var countryCodes = this.countryCallingCodes()[callingCode];\n\n if (countryCodes && countryCodes.length === 1 && countryCodes[0] === '001') {\n return true;\n }\n }\n }\n }, {\n key: \"isNonGeographicCallingCode\",\n value: function isNonGeographicCallingCode(callingCode) {\n if (this.nonGeographic()) {\n return this.nonGeographic()[callingCode] ? true : false;\n } else {\n return this.getCountryCodesForCallingCode(callingCode) ? false : true;\n }\n } // Deprecated.\n\n }, {\n key: \"country\",\n value: function country(countryCode) {\n return this.selectNumberingPlan(countryCode);\n }\n }, {\n key: \"selectNumberingPlan\",\n value: function selectNumberingPlan(countryCode, callingCode) {\n // Supports just passing `callingCode` as the first argument.\n if (countryCode && CALLING_CODE_REG_EXP.test(countryCode)) {\n callingCode = countryCode;\n countryCode = null;\n }\n\n if (countryCode && countryCode !== '001') {\n if (!this.hasCountry(countryCode)) {\n throw new Error(\"Unknown country: \".concat(countryCode));\n }\n\n this.numberingPlan = new NumberingPlan(this.getCountryMetadata(countryCode), this);\n } else if (callingCode) {\n if (!this.hasCallingCode(callingCode)) {\n throw new Error(\"Unknown calling code: \".concat(callingCode));\n }\n\n this.numberingPlan = new NumberingPlan(this.getNumberingPlanMetadata(callingCode), this);\n } else {\n this.numberingPlan = undefined;\n }\n\n return this;\n }\n }, {\n key: \"getCountryCodesForCallingCode\",\n value: function getCountryCodesForCallingCode(callingCode) {\n var countryCodes = this.countryCallingCodes()[callingCode];\n\n if (countryCodes) {\n // Metadata before V4 included \"non-geographic entity\" calling codes\n // inside `country_calling_codes` (for example, `\"881\":[\"001\"]`).\n // Now the semantics of `country_calling_codes` has changed:\n // it's specifically for \"countries\" now.\n // Older versions of custom metadata will simply skip parsing\n // \"non-geographic entity\" phone numbers with new versions\n // of this library: it's not considered a bug,\n // because such numbers are extremely rare,\n // and developers extremely rarely use custom metadata.\n if (countryCodes.length === 1 && countryCodes[0].length === 3) {\n return;\n }\n\n return countryCodes;\n }\n }\n }, {\n key: \"getCountryCodeForCallingCode\",\n value: function getCountryCodeForCallingCode(callingCode) {\n var countryCodes = this.getCountryCodesForCallingCode(callingCode);\n\n if (countryCodes) {\n return countryCodes[0];\n }\n }\n }, {\n key: \"getNumberingPlanMetadata\",\n value: function getNumberingPlanMetadata(callingCode) {\n var countryCode = this.getCountryCodeForCallingCode(callingCode);\n\n if (countryCode) {\n return this.getCountryMetadata(countryCode);\n }\n\n if (this.nonGeographic()) {\n var metadata = this.nonGeographic()[callingCode];\n\n if (metadata) {\n return metadata;\n }\n } else {\n // A hacky workaround for old custom metadata (generated before V4).\n var countryCodes = this.countryCallingCodes()[callingCode];\n\n if (countryCodes && countryCodes.length === 1 && countryCodes[0] === '001') {\n return this.metadata.countries['001'];\n }\n }\n } // Deprecated.\n\n }, {\n key: \"countryCallingCode\",\n value: function countryCallingCode() {\n return this.numberingPlan.callingCode();\n } // Deprecated.\n\n }, {\n key: \"IDDPrefix\",\n value: function IDDPrefix() {\n return this.numberingPlan.IDDPrefix();\n } // Deprecated.\n\n }, {\n key: \"defaultIDDPrefix\",\n value: function defaultIDDPrefix() {\n return this.numberingPlan.defaultIDDPrefix();\n } // Deprecated.\n\n }, {\n key: \"nationalNumberPattern\",\n value: function nationalNumberPattern() {\n return this.numberingPlan.nationalNumberPattern();\n } // Deprecated.\n\n }, {\n key: \"possibleLengths\",\n value: function possibleLengths() {\n return this.numberingPlan.possibleLengths();\n } // Deprecated.\n\n }, {\n key: \"formats\",\n value: function formats() {\n return this.numberingPlan.formats();\n } // Deprecated.\n\n }, {\n key: \"nationalPrefixForParsing\",\n value: function nationalPrefixForParsing() {\n return this.numberingPlan.nationalPrefixForParsing();\n } // Deprecated.\n\n }, {\n key: \"nationalPrefixTransformRule\",\n value: function nationalPrefixTransformRule() {\n return this.numberingPlan.nationalPrefixTransformRule();\n } // Deprecated.\n\n }, {\n key: \"leadingDigits\",\n value: function leadingDigits() {\n return this.numberingPlan.leadingDigits();\n } // Deprecated.\n\n }, {\n key: \"hasTypes\",\n value: function hasTypes() {\n return this.numberingPlan.hasTypes();\n } // Deprecated.\n\n }, {\n key: \"type\",\n value: function type(_type) {\n return this.numberingPlan.type(_type);\n } // Deprecated.\n\n }, {\n key: \"ext\",\n value: function ext() {\n return this.numberingPlan.ext();\n }\n }, {\n key: \"countryCallingCodes\",\n value: function countryCallingCodes() {\n if (this.v1) return this.metadata.country_phone_code_to_countries;\n return this.metadata.country_calling_codes;\n } // Deprecated.\n\n }, {\n key: \"chooseCountryByCountryCallingCode\",\n value: function chooseCountryByCountryCallingCode(callingCode) {\n return this.selectNumberingPlan(callingCode);\n }\n }, {\n key: \"hasSelectedNumberingPlan\",\n value: function hasSelectedNumberingPlan() {\n return this.numberingPlan !== undefined;\n }\n }]);\n\n return Metadata;\n}();\n\nexport { Metadata as default };\n\nvar NumberingPlan = /*#__PURE__*/function () {\n function NumberingPlan(metadata, globalMetadataObject) {\n _classCallCheck(this, NumberingPlan);\n\n this.globalMetadataObject = globalMetadataObject;\n this.metadata = metadata;\n setVersion.call(this, globalMetadataObject.metadata);\n }\n\n _createClass(NumberingPlan, [{\n key: \"callingCode\",\n value: function callingCode() {\n return this.metadata[0];\n } // Formatting information for regions which share\n // a country calling code is contained by only one region\n // for performance reasons. For example, for NANPA region\n // (\"North American Numbering Plan Administration\",\n // which includes USA, Canada, Cayman Islands, Bahamas, etc)\n // it will be contained in the metadata for `US`.\n\n }, {\n key: \"getDefaultCountryMetadataForRegion\",\n value: function getDefaultCountryMetadataForRegion() {\n return this.globalMetadataObject.getNumberingPlanMetadata(this.callingCode());\n }\n }, {\n key: \"IDDPrefix\",\n value: function IDDPrefix() {\n if (this.v1 || this.v2) return;\n return this.metadata[1];\n }\n }, {\n key: \"defaultIDDPrefix\",\n value: function defaultIDDPrefix() {\n if (this.v1 || this.v2) return;\n return this.metadata[12];\n }\n }, {\n key: \"nationalNumberPattern\",\n value: function nationalNumberPattern() {\n if (this.v1 || this.v2) return this.metadata[1];\n return this.metadata[2];\n }\n }, {\n key: \"possibleLengths\",\n value: function possibleLengths() {\n if (this.v1) return;\n return this.metadata[this.v2 ? 2 : 3];\n }\n }, {\n key: \"_getFormats\",\n value: function _getFormats(metadata) {\n return metadata[this.v1 ? 2 : this.v2 ? 3 : 4];\n } // For countries of the same region (e.g. NANPA)\n // formats are all stored in the \"main\" country for that region.\n // E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\n\n }, {\n key: \"formats\",\n value: function formats() {\n var _this = this;\n\n var formats = this._getFormats(this.metadata) || this._getFormats(this.getDefaultCountryMetadataForRegion()) || [];\n return formats.map(function (_) {\n return new Format(_, _this);\n });\n }\n }, {\n key: \"nationalPrefix\",\n value: function nationalPrefix() {\n return this.metadata[this.v1 ? 3 : this.v2 ? 4 : 5];\n }\n }, {\n key: \"_getNationalPrefixFormattingRule\",\n value: function _getNationalPrefixFormattingRule(metadata) {\n return metadata[this.v1 ? 4 : this.v2 ? 5 : 6];\n } // For countries of the same region (e.g. NANPA)\n // national prefix formatting rule is stored in the \"main\" country for that region.\n // E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\n\n }, {\n key: \"nationalPrefixFormattingRule\",\n value: function nationalPrefixFormattingRule() {\n return this._getNationalPrefixFormattingRule(this.metadata) || this._getNationalPrefixFormattingRule(this.getDefaultCountryMetadataForRegion());\n }\n }, {\n key: \"_nationalPrefixForParsing\",\n value: function _nationalPrefixForParsing() {\n return this.metadata[this.v1 ? 5 : this.v2 ? 6 : 7];\n }\n }, {\n key: \"nationalPrefixForParsing\",\n value: function nationalPrefixForParsing() {\n // If `national_prefix_for_parsing` is not set explicitly,\n // then infer it from `national_prefix` (if any)\n return this._nationalPrefixForParsing() || this.nationalPrefix();\n }\n }, {\n key: \"nationalPrefixTransformRule\",\n value: function nationalPrefixTransformRule() {\n return this.metadata[this.v1 ? 6 : this.v2 ? 7 : 8];\n }\n }, {\n key: \"_getNationalPrefixIsOptionalWhenFormatting\",\n value: function _getNationalPrefixIsOptionalWhenFormatting() {\n return !!this.metadata[this.v1 ? 7 : this.v2 ? 8 : 9];\n } // For countries of the same region (e.g. NANPA)\n // \"national prefix is optional when formatting\" flag is\n // stored in the \"main\" country for that region.\n // E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\n\n }, {\n key: \"nationalPrefixIsOptionalWhenFormattingInNationalFormat\",\n value: function nationalPrefixIsOptionalWhenFormattingInNationalFormat() {\n return this._getNationalPrefixIsOptionalWhenFormatting(this.metadata) || this._getNationalPrefixIsOptionalWhenFormatting(this.getDefaultCountryMetadataForRegion());\n }\n }, {\n key: \"leadingDigits\",\n value: function leadingDigits() {\n return this.metadata[this.v1 ? 8 : this.v2 ? 9 : 10];\n }\n }, {\n key: \"types\",\n value: function types() {\n return this.metadata[this.v1 ? 9 : this.v2 ? 10 : 11];\n }\n }, {\n key: \"hasTypes\",\n value: function hasTypes() {\n // Versions 1.2.0 - 1.2.4: can be `[]`.\n\n /* istanbul ignore next */\n if (this.types() && this.types().length === 0) {\n return false;\n } // Versions <= 1.2.4: can be `undefined`.\n // Version >= 1.2.5: can be `0`.\n\n\n return !!this.types();\n }\n }, {\n key: \"type\",\n value: function type(_type2) {\n if (this.hasTypes() && getType(this.types(), _type2)) {\n return new Type(getType(this.types(), _type2), this);\n }\n }\n }, {\n key: \"ext\",\n value: function ext() {\n if (this.v1 || this.v2) return DEFAULT_EXT_PREFIX;\n return this.metadata[13] || DEFAULT_EXT_PREFIX;\n }\n }]);\n\n return NumberingPlan;\n}();\n\nvar Format = /*#__PURE__*/function () {\n function Format(format, metadata) {\n _classCallCheck(this, Format);\n\n this._format = format;\n this.metadata = metadata;\n }\n\n _createClass(Format, [{\n key: \"pattern\",\n value: function pattern() {\n return this._format[0];\n }\n }, {\n key: \"format\",\n value: function format() {\n return this._format[1];\n }\n }, {\n key: \"leadingDigitsPatterns\",\n value: function leadingDigitsPatterns() {\n return this._format[2] || [];\n }\n }, {\n key: \"nationalPrefixFormattingRule\",\n value: function nationalPrefixFormattingRule() {\n return this._format[3] || this.metadata.nationalPrefixFormattingRule();\n }\n }, {\n key: \"nationalPrefixIsOptionalWhenFormattingInNationalFormat\",\n value: function nationalPrefixIsOptionalWhenFormattingInNationalFormat() {\n return !!this._format[4] || this.metadata.nationalPrefixIsOptionalWhenFormattingInNationalFormat();\n }\n }, {\n key: \"nationalPrefixIsMandatoryWhenFormattingInNationalFormat\",\n value: function nationalPrefixIsMandatoryWhenFormattingInNationalFormat() {\n // National prefix is omitted if there's no national prefix formatting rule\n // set for this country, or when the national prefix formatting rule\n // contains no national prefix itself, or when this rule is set but\n // national prefix is optional for this phone number format\n // (and it is not enforced explicitly)\n return this.usesNationalPrefix() && !this.nationalPrefixIsOptionalWhenFormattingInNationalFormat();\n } // Checks whether national prefix formatting rule contains national prefix.\n\n }, {\n key: \"usesNationalPrefix\",\n value: function usesNationalPrefix() {\n return this.nationalPrefixFormattingRule() && // Check that national prefix formatting rule is not a \"dummy\" one.\n !FIRST_GROUP_ONLY_PREFIX_PATTERN.test(this.nationalPrefixFormattingRule()) // In compressed metadata, `this.nationalPrefixFormattingRule()` is `0`\n // when `national_prefix_formatting_rule` is not present.\n // So, `true` or `false` are returned explicitly here, so that\n // `0` number isn't returned.\n ? true : false;\n }\n }, {\n key: \"internationalFormat\",\n value: function internationalFormat() {\n return this._format[5] || this.format();\n }\n }]);\n\n return Format;\n}();\n/**\r\n * A pattern that is used to determine if the national prefix formatting rule\r\n * has the first group only, i.e., does not start with the national prefix.\r\n * Note that the pattern explicitly allows for unbalanced parentheses.\r\n */\n\n\nvar FIRST_GROUP_ONLY_PREFIX_PATTERN = /^\\(?\\$1\\)?$/;\n\nvar Type = /*#__PURE__*/function () {\n function Type(type, metadata) {\n _classCallCheck(this, Type);\n\n this.type = type;\n this.metadata = metadata;\n }\n\n _createClass(Type, [{\n key: \"pattern\",\n value: function pattern() {\n if (this.metadata.v1) return this.type;\n return this.type[0];\n }\n }, {\n key: \"possibleLengths\",\n value: function possibleLengths() {\n if (this.metadata.v1) return;\n return this.type[1] || this.metadata.possibleLengths();\n }\n }]);\n\n return Type;\n}();\n\nfunction getType(types, type) {\n switch (type) {\n case 'FIXED_LINE':\n return types[0];\n\n case 'MOBILE':\n return types[1];\n\n case 'TOLL_FREE':\n return types[2];\n\n case 'PREMIUM_RATE':\n return types[3];\n\n case 'PERSONAL_NUMBER':\n return types[4];\n\n case 'VOICEMAIL':\n return types[5];\n\n case 'UAN':\n return types[6];\n\n case 'PAGER':\n return types[7];\n\n case 'VOIP':\n return types[8];\n\n case 'SHARED_COST':\n return types[9];\n }\n}\n\nexport function validateMetadata(metadata) {\n if (!metadata) {\n throw new Error('[libphonenumber-js] `metadata` argument not passed. Check your arguments.');\n } // `country_phone_code_to_countries` was renamed to\n // `country_calling_codes` in `1.0.18`.\n\n\n if (!is_object(metadata) || !is_object(metadata.countries)) {\n throw new Error(\"[libphonenumber-js] `metadata` argument was passed but it's not a valid metadata. Must be an object having `.countries` child object property. Got \".concat(is_object(metadata) ? 'an object of shape: { ' + Object.keys(metadata).join(', ') + ' }' : 'a ' + type_of(metadata) + ': ' + metadata, \".\"));\n }\n} // Babel transforms `typeof` into some \"branches\"\n// so istanbul will show this as \"branch not covered\".\n\n/* istanbul ignore next */\n\nvar is_object = function is_object(_) {\n return _typeof(_) === 'object';\n}; // Babel transforms `typeof` into some \"branches\"\n// so istanbul will show this as \"branch not covered\".\n\n/* istanbul ignore next */\n\n\nvar type_of = function type_of(_) {\n return _typeof(_);\n};\n/**\r\n * Returns extension prefix for a country.\r\n * @param {string} country\r\n * @param {object} metadata\r\n * @return {string?}\r\n * @example\r\n * // Returns \" ext. \"\r\n * getExtPrefix(\"US\")\r\n */\n\n\nexport function getExtPrefix(country, metadata) {\n metadata = new Metadata(metadata);\n\n if (metadata.hasCountry(country)) {\n return metadata.country(country).ext();\n }\n\n return DEFAULT_EXT_PREFIX;\n}\n/**\r\n * Returns \"country calling code\" for a country.\r\n * Throws an error if the country doesn't exist or isn't supported by this library.\r\n * @param {string} country\r\n * @param {object} metadata\r\n * @return {string}\r\n * @example\r\n * // Returns \"44\"\r\n * getCountryCallingCode(\"GB\")\r\n */\n\nexport function getCountryCallingCode(country, metadata) {\n metadata = new Metadata(metadata);\n\n if (metadata.hasCountry(country)) {\n return metadata.country(country).countryCallingCode();\n }\n\n throw new Error(\"Unknown country: \".concat(country));\n}\nexport function isSupportedCountry(country, metadata) {\n // metadata = new Metadata(metadata)\n // return metadata.hasCountry(country)\n return metadata.countries[country] !== undefined;\n}\n\nfunction setVersion(metadata) {\n var version = metadata.version;\n\n if (typeof version === 'number') {\n this.v1 = version === 1;\n this.v2 = version === 2;\n this.v3 = version === 3;\n this.v4 = version === 4;\n } else {\n if (!version) {\n this.v1 = true;\n } else if (compare(version, V3) === -1) {\n this.v2 = true;\n } else if (compare(version, V4) === -1) {\n this.v3 = true;\n } else {\n this.v4 = true;\n }\n }\n} // const ISO_COUNTRY_CODE = /^[A-Z]{2}$/\n// function isCountryCode(countryCode) {\n// \treturn ISO_COUNTRY_CODE.test(countryCodeOrCountryCallingCode)\n// }"],"sourceRoot":""}