{"version":3,"file":"app-05ef299465b1a35f0370.js","mappings":"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","sources":["webpack://Vokalensemble-Website/./node_modules/@fortawesome/fontawesome-svg-core/index.es.js","webpack://Vokalensemble-Website/./node_modules/gatsby-page-utils/dist/apply-trailing-slash-option.js","webpack://Vokalensemble-Website/./node_modules/gatsby-react-router-scroll/index.js","webpack://Vokalensemble-Website/./node_modules/gatsby-react-router-scroll/scroll-handler.js","webpack://Vokalensemble-Website/./node_modules/gatsby-react-router-scroll/session-storage.js","webpack://Vokalensemble-Website/./node_modules/gatsby-react-router-scroll/use-scroll-restoration.js","webpack://Vokalensemble-Website/./node_modules/gatsby/dist/internal-plugins/partytown/gatsby-browser.js","webpack://Vokalensemble-Website/./node_modules/gatsby/dist/internal-plugins/partytown/utils/get-forwards.js","webpack://Vokalensemble-Website/./node_modules/gatsby/dist/internal-plugins/partytown/utils/inject-partytown-snippet.js","webpack://Vokalensemble-Website/./.cache/_this_is_virtual_fs_path_/$virtual/async-requires.js","webpack://Vokalensemble-Website/./.cache/api-runner-browser-plugins.js","webpack://Vokalensemble-Website/./.cache/api-runner-browser.js","webpack://Vokalensemble-Website/./.cache/create-content-digest-browser-shim.js","webpack://Vokalensemble-Website/./.cache/emitter.js","webpack://Vokalensemble-Website/./node_modules/mitt/dist/mitt.es.js","webpack://Vokalensemble-Website/./.cache/normalize-page-path.js","webpack://Vokalensemble-Website/./.cache/find-path.js","webpack://Vokalensemble-Website/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://Vokalensemble-Website/./node_modules/@babel/runtime/helpers/esm/construct.js","webpack://Vokalensemble-Website/./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack://Vokalensemble-Website/./node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","webpack://Vokalensemble-Website/./node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","webpack://Vokalensemble-Website/./.cache/slice/server-slice-renderer.js","webpack://Vokalensemble-Website/./.cache/slice/server-slice.js","webpack://Vokalensemble-Website/./.cache/slice/inline-slice.js","webpack://Vokalensemble-Website/./.cache/slice.js","webpack://Vokalensemble-Website/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://Vokalensemble-Website/./.cache/gatsby-browser-entry.js","webpack://Vokalensemble-Website/./.cache/prefetch.js","webpack://Vokalensemble-Website/./.cache/loader.js","webpack://Vokalensemble-Website/./.cache/head/components/fire-callback-in-effect.js","webpack://Vokalensemble-Website/./.cache/head/constants.js","webpack://Vokalensemble-Website/./.cache/head/utils.js","webpack://Vokalensemble-Website/./.cache/head/head-export-handler-for-browser.js","webpack://Vokalensemble-Website/./.cache/page-renderer.js","webpack://Vokalensemble-Website/./.cache/route-announcer-props.js","webpack://Vokalensemble-Website/./.cache/navigation.js","webpack://Vokalensemble-Website/./node_modules/shallow-compare/es/index.js","webpack://Vokalensemble-Website/./.cache/ensure-resources.js","webpack://Vokalensemble-Website/./.cache/production-app.js","webpack://Vokalensemble-Website/./.cache/public-page-renderer-prod.js","webpack://Vokalensemble-Website/./.cache/public-page-renderer.js","webpack://Vokalensemble-Website/./.cache/react-dom-utils.js","webpack://Vokalensemble-Website/./.cache/redirect-utils.js","webpack://Vokalensemble-Website/./.cache/register-service-worker.js","webpack://Vokalensemble-Website/./.cache/slice/context.js","webpack://Vokalensemble-Website/./.cache/static-query.js","webpack://Vokalensemble-Website/./.cache/context-utils.js","webpack://Vokalensemble-Website/./.cache/strip-prefix.js","webpack://Vokalensemble-Website/./node_modules/gatsby-plugin-fontawesome-css/gatsby-browser.js","webpack://Vokalensemble-Website/./node_modules/gatsby-plugin-manifest/gatsby-browser.js","webpack://Vokalensemble-Website/./node_modules/gatsby-plugin-manifest/get-manifest-pathname.js","webpack://Vokalensemble-Website/./node_modules/gatsby-plugin-scroll-reveal-with-new-react/Wrapper.js","webpack://Vokalensemble-Website/./node_modules/gatsby-plugin-scroll-reveal-with-new-react/gatsby-browser.js","webpack://Vokalensemble-Website/./node_modules/intersection-observer/intersection-observer.js","webpack://Vokalensemble-Website/./node_modules/invariant/browser.js","webpack://Vokalensemble-Website/./node_modules/react-server-dom-webpack/cjs/react-server-dom-webpack.production.min.js","webpack://Vokalensemble-Website/./node_modules/react-server-dom-webpack/index.js","webpack://Vokalensemble-Website/./node_modules/sal.js/dist/sal.js","webpack://Vokalensemble-Website/./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack://Vokalensemble-Website/./node_modules/@babel/runtime/helpers/inheritsLoose.js","webpack://Vokalensemble-Website/./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://Vokalensemble-Website/./node_modules/@babel/runtime/helpers/interopRequireWildcard.js","webpack://Vokalensemble-Website/./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","webpack://Vokalensemble-Website/./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack://Vokalensemble-Website/./node_modules/@babel/runtime/helpers/typeof.js","webpack://Vokalensemble-Website/./node_modules/@builder.io/partytown/integration/index.cjs","webpack://Vokalensemble-Website/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://Vokalensemble-Website/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://Vokalensemble-Website/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://Vokalensemble-Website/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://Vokalensemble-Website/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://Vokalensemble-Website/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://Vokalensemble-Website/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://Vokalensemble-Website/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://Vokalensemble-Website/./node_modules/@gatsbyjs/reach-router/dist/index.modern.mjs","webpack://Vokalensemble-Website/./node_modules/gatsby-link/dist/index.modern.mjs","webpack://Vokalensemble-Website/./node_modules/gatsby-script/dist/index.modern.mjs"],"sourcesContent":["/*!\n * Font Awesome Free 6.0.0 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n * Copyright 2022 Fonticons, Inc.\n */\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\n\nfunction _wrapRegExp() {\n _wrapRegExp = function (re, groups) {\n return new BabelRegExp(re, void 0, groups);\n };\n\n var _super = RegExp.prototype,\n _groups = new WeakMap();\n\n function BabelRegExp(re, flags, groups) {\n var _this = new RegExp(re, flags);\n\n return _groups.set(_this, groups || _groups.get(re)), _setPrototypeOf(_this, BabelRegExp.prototype);\n }\n\n function buildGroups(result, re) {\n var g = _groups.get(re);\n\n return Object.keys(g).reduce(function (groups, name) {\n return groups[name] = result[g[name]], groups;\n }, Object.create(null));\n }\n\n return _inherits(BabelRegExp, RegExp), BabelRegExp.prototype.exec = function (str) {\n var result = _super.exec.call(this, str);\n\n return result && (result.groups = buildGroups(result, this)), result;\n }, BabelRegExp.prototype[Symbol.replace] = function (str, substitution) {\n if (\"string\" == typeof substitution) {\n var groups = _groups.get(this);\n\n return _super[Symbol.replace].call(this, str, substitution.replace(/\\$<([^>]+)>/g, function (_, name) {\n return \"$\" + groups[name];\n }));\n }\n\n if (\"function\" == typeof substitution) {\n var _this = this;\n\n return _super[Symbol.replace].call(this, str, function () {\n var args = arguments;\n return \"object\" != typeof args[args.length - 1] && (args = [].slice.call(args)).push(buildGroups(args, _this)), substitution.apply(this, args);\n });\n }\n\n return _super[Symbol.replace].call(this, str, substitution);\n }, _wrapRegExp.apply(this, arguments);\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 Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\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\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 Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\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 _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nvar noop = function noop() {};\n\nvar _WINDOW = {};\nvar _DOCUMENT = {};\nvar _MUTATION_OBSERVER = null;\nvar _PERFORMANCE = {\n mark: noop,\n measure: noop\n};\n\ntry {\n if (typeof window !== 'undefined') _WINDOW = window;\n if (typeof document !== 'undefined') _DOCUMENT = document;\n if (typeof MutationObserver !== 'undefined') _MUTATION_OBSERVER = MutationObserver;\n if (typeof performance !== 'undefined') _PERFORMANCE = performance;\n} catch (e) {}\n\nvar _ref = _WINDOW.navigator || {},\n _ref$userAgent = _ref.userAgent,\n userAgent = _ref$userAgent === void 0 ? '' : _ref$userAgent;\nvar WINDOW = _WINDOW;\nvar DOCUMENT = _DOCUMENT;\nvar MUTATION_OBSERVER = _MUTATION_OBSERVER;\nvar PERFORMANCE = _PERFORMANCE;\nvar IS_BROWSER = !!WINDOW.document;\nvar IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === 'function' && typeof DOCUMENT.createElement === 'function';\nvar IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/');\n\nvar NAMESPACE_IDENTIFIER = '___FONT_AWESOME___';\nvar UNITS_IN_GRID = 16;\nvar DEFAULT_FAMILY_PREFIX = 'fa';\nvar DEFAULT_REPLACEMENT_CLASS = 'svg-inline--fa';\nvar DATA_FA_I2SVG = 'data-fa-i2svg';\nvar DATA_FA_PSEUDO_ELEMENT = 'data-fa-pseudo-element';\nvar DATA_FA_PSEUDO_ELEMENT_PENDING = 'data-fa-pseudo-element-pending';\nvar DATA_PREFIX = 'data-prefix';\nvar DATA_ICON = 'data-icon';\nvar HTML_CLASS_I2SVG_BASE_CLASS = 'fontawesome-i2svg';\nvar MUTATION_APPROACH_ASYNC = 'async';\nvar TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS = ['HTML', 'HEAD', 'STYLE', 'SCRIPT'];\nvar PRODUCTION = function () {\n try {\n return process.env.NODE_ENV === 'production';\n } catch (e) {\n return false;\n }\n}();\nvar PREFIX_TO_STYLE = {\n 'fas': 'solid',\n 'fa-solid': 'solid',\n 'far': 'regular',\n 'fa-regular': 'regular',\n 'fal': 'light',\n 'fa-light': 'light',\n 'fat': 'thin',\n 'fa-thin': 'thin',\n 'fad': 'duotone',\n 'fa-duotone': 'duotone',\n 'fab': 'brands',\n 'fa-brands': 'brands',\n 'fak': 'kit',\n 'fa-kit': 'kit',\n 'fa': 'solid'\n};\nvar STYLE_TO_PREFIX = {\n 'solid': 'fas',\n 'regular': 'far',\n 'light': 'fal',\n 'thin': 'fat',\n 'duotone': 'fad',\n 'brands': 'fab',\n 'kit': 'fak'\n};\nvar PREFIX_TO_LONG_STYLE = {\n 'fab': 'fa-brands',\n 'fad': 'fa-duotone',\n 'fak': 'fa-kit',\n 'fal': 'fa-light',\n 'far': 'fa-regular',\n 'fas': 'fa-solid',\n 'fat': 'fa-thin'\n};\nvar LONG_STYLE_TO_PREFIX = {\n 'fa-brands': 'fab',\n 'fa-duotone': 'fad',\n 'fa-kit': 'fak',\n 'fa-light': 'fal',\n 'fa-regular': 'far',\n 'fa-solid': 'fas',\n 'fa-thin': 'fat'\n};\nvar ICON_SELECTION_SYNTAX_PATTERN = /fa[srltdbk\\-\\ ]/; // eslint-disable-line no-useless-escape\n\nvar LAYERS_TEXT_CLASSNAME = 'fa-layers-text';\nvar FONT_FAMILY_PATTERN = /Font ?Awesome ?([56 ]*)(Solid|Regular|Light|Thin|Duotone|Brands|Free|Pro|Kit)?.*/i; // TODO: do we need to handle font-weight for kit SVG pseudo-elements?\n\nvar FONT_WEIGHT_TO_PREFIX = {\n '900': 'fas',\n '400': 'far',\n 'normal': 'far',\n '300': 'fal',\n '100': 'fat'\n};\nvar oneToTen = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];\nvar oneToTwenty = oneToTen.concat([11, 12, 13, 14, 15, 16, 17, 18, 19, 20]);\nvar ATTRIBUTES_WATCHED_FOR_MUTATION = ['class', 'data-prefix', 'data-icon', 'data-fa-transform', 'data-fa-mask'];\nvar DUOTONE_CLASSES = {\n GROUP: 'duotone-group',\n SWAP_OPACITY: 'swap-opacity',\n PRIMARY: 'primary',\n SECONDARY: 'secondary'\n};\nvar RESERVED_CLASSES = [].concat(_toConsumableArray(Object.keys(STYLE_TO_PREFIX)), ['2xs', 'xs', 'sm', 'lg', 'xl', '2xl', 'beat', 'border', 'fade', 'beat-fade', 'bounce', 'flip-both', 'flip-horizontal', 'flip-vertical', 'flip', 'fw', 'inverse', 'layers-counter', 'layers-text', 'layers', 'li', 'pull-left', 'pull-right', 'pulse', 'rotate-180', 'rotate-270', 'rotate-90', 'rotate-by', 'shake', 'spin-pulse', 'spin-reverse', 'spin', 'stack-1x', 'stack-2x', 'stack', 'ul', DUOTONE_CLASSES.GROUP, DUOTONE_CLASSES.SWAP_OPACITY, DUOTONE_CLASSES.PRIMARY, DUOTONE_CLASSES.SECONDARY]).concat(oneToTen.map(function (n) {\n return \"\".concat(n, \"x\");\n})).concat(oneToTwenty.map(function (n) {\n return \"w-\".concat(n);\n}));\n\nvar initial = WINDOW.FontAwesomeConfig || {};\n\nfunction getAttrConfig(attr) {\n var element = DOCUMENT.querySelector('script[' + attr + ']');\n\n if (element) {\n return element.getAttribute(attr);\n }\n}\n\nfunction coerce(val) {\n // Getting an empty string will occur if the attribute is set on the HTML tag but without a value\n // We'll assume that this is an indication that it should be toggled to true\n // For example \n if (val === '') return true;\n if (val === 'false') return false;\n if (val === 'true') return true;\n return val;\n}\n\nif (DOCUMENT && typeof DOCUMENT.querySelector === 'function') {\n var attrs = [['data-family-prefix', 'familyPrefix'], ['data-style-default', 'styleDefault'], ['data-replacement-class', 'replacementClass'], ['data-auto-replace-svg', 'autoReplaceSvg'], ['data-auto-add-css', 'autoAddCss'], ['data-auto-a11y', 'autoA11y'], ['data-search-pseudo-elements', 'searchPseudoElements'], ['data-observe-mutations', 'observeMutations'], ['data-mutate-approach', 'mutateApproach'], ['data-keep-original-source', 'keepOriginalSource'], ['data-measure-performance', 'measurePerformance'], ['data-show-missing-icons', 'showMissingIcons']];\n attrs.forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n attr = _ref2[0],\n key = _ref2[1];\n\n var val = coerce(getAttrConfig(attr));\n\n if (val !== undefined && val !== null) {\n initial[key] = val;\n }\n });\n}\n\nvar _default = {\n familyPrefix: DEFAULT_FAMILY_PREFIX,\n styleDefault: 'solid',\n replacementClass: DEFAULT_REPLACEMENT_CLASS,\n autoReplaceSvg: true,\n autoAddCss: true,\n autoA11y: true,\n searchPseudoElements: false,\n observeMutations: true,\n mutateApproach: 'async',\n keepOriginalSource: true,\n measurePerformance: false,\n showMissingIcons: true\n};\n\nvar _config = _objectSpread2(_objectSpread2({}, _default), initial);\n\nif (!_config.autoReplaceSvg) _config.observeMutations = false;\nvar config = {};\nObject.keys(_config).forEach(function (key) {\n Object.defineProperty(config, key, {\n enumerable: true,\n set: function set(val) {\n _config[key] = val;\n\n _onChangeCb.forEach(function (cb) {\n return cb(config);\n });\n },\n get: function get() {\n return _config[key];\n }\n });\n});\nWINDOW.FontAwesomeConfig = config;\nvar _onChangeCb = [];\nfunction onChange(cb) {\n _onChangeCb.push(cb);\n\n return function () {\n _onChangeCb.splice(_onChangeCb.indexOf(cb), 1);\n };\n}\n\nvar d = UNITS_IN_GRID;\nvar meaninglessTransform = {\n size: 16,\n x: 0,\n y: 0,\n rotate: 0,\n flipX: false,\n flipY: false\n};\nfunction insertCss(css) {\n if (!css || !IS_DOM) {\n return;\n }\n\n var style = DOCUMENT.createElement('style');\n style.setAttribute('type', 'text/css');\n style.innerHTML = css;\n var headChildren = DOCUMENT.head.childNodes;\n var beforeChild = null;\n\n for (var i = headChildren.length - 1; i > -1; i--) {\n var child = headChildren[i];\n var tagName = (child.tagName || '').toUpperCase();\n\n if (['STYLE', 'LINK'].indexOf(tagName) > -1) {\n beforeChild = child;\n }\n }\n\n DOCUMENT.head.insertBefore(style, beforeChild);\n return css;\n}\nvar idPool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\nfunction nextUniqueId() {\n var size = 12;\n var id = '';\n\n while (size-- > 0) {\n id += idPool[Math.random() * 62 | 0];\n }\n\n return id;\n}\nfunction toArray(obj) {\n var array = [];\n\n for (var i = (obj || []).length >>> 0; i--;) {\n array[i] = obj[i];\n }\n\n return array;\n}\nfunction classArray(node) {\n if (node.classList) {\n return toArray(node.classList);\n } else {\n return (node.getAttribute('class') || '').split(' ').filter(function (i) {\n return i;\n });\n }\n}\nfunction htmlEscape(str) {\n return \"\".concat(str).replace(/&/g, '&').replace(/\"/g, '"').replace(/'/g, ''').replace(//g, '>');\n}\nfunction joinAttributes(attributes) {\n return Object.keys(attributes || {}).reduce(function (acc, attributeName) {\n return acc + \"\".concat(attributeName, \"=\\\"\").concat(htmlEscape(attributes[attributeName]), \"\\\" \");\n }, '').trim();\n}\nfunction joinStyles(styles) {\n return Object.keys(styles || {}).reduce(function (acc, styleName) {\n return acc + \"\".concat(styleName, \": \").concat(styles[styleName].trim(), \";\");\n }, '');\n}\nfunction transformIsMeaningful(transform) {\n return transform.size !== meaninglessTransform.size || transform.x !== meaninglessTransform.x || transform.y !== meaninglessTransform.y || transform.rotate !== meaninglessTransform.rotate || transform.flipX || transform.flipY;\n}\nfunction transformForSvg(_ref) {\n var transform = _ref.transform,\n containerWidth = _ref.containerWidth,\n iconWidth = _ref.iconWidth;\n var outer = {\n transform: \"translate(\".concat(containerWidth / 2, \" 256)\")\n };\n var innerTranslate = \"translate(\".concat(transform.x * 32, \", \").concat(transform.y * 32, \") \");\n var innerScale = \"scale(\".concat(transform.size / 16 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / 16 * (transform.flipY ? -1 : 1), \") \");\n var innerRotate = \"rotate(\".concat(transform.rotate, \" 0 0)\");\n var inner = {\n transform: \"\".concat(innerTranslate, \" \").concat(innerScale, \" \").concat(innerRotate)\n };\n var path = {\n transform: \"translate(\".concat(iconWidth / 2 * -1, \" -256)\")\n };\n return {\n outer: outer,\n inner: inner,\n path: path\n };\n}\nfunction transformForCss(_ref2) {\n var transform = _ref2.transform,\n _ref2$width = _ref2.width,\n width = _ref2$width === void 0 ? UNITS_IN_GRID : _ref2$width,\n _ref2$height = _ref2.height,\n height = _ref2$height === void 0 ? UNITS_IN_GRID : _ref2$height,\n _ref2$startCentered = _ref2.startCentered,\n startCentered = _ref2$startCentered === void 0 ? false : _ref2$startCentered;\n var val = '';\n\n if (startCentered && IS_IE) {\n val += \"translate(\".concat(transform.x / d - width / 2, \"em, \").concat(transform.y / d - height / 2, \"em) \");\n } else if (startCentered) {\n val += \"translate(calc(-50% + \".concat(transform.x / d, \"em), calc(-50% + \").concat(transform.y / d, \"em)) \");\n } else {\n val += \"translate(\".concat(transform.x / d, \"em, \").concat(transform.y / d, \"em) \");\n }\n\n val += \"scale(\".concat(transform.size / d * (transform.flipX ? -1 : 1), \", \").concat(transform.size / d * (transform.flipY ? -1 : 1), \") \");\n val += \"rotate(\".concat(transform.rotate, \"deg) \");\n return val;\n}\n\nvar baseStyles = \":root, :host {\\n --fa-font-solid: normal 900 1em/1 \\\"Font Awesome 6 Solid\\\";\\n --fa-font-regular: normal 400 1em/1 \\\"Font Awesome 6 Regular\\\";\\n --fa-font-light: normal 300 1em/1 \\\"Font Awesome 6 Light\\\";\\n --fa-font-thin: normal 100 1em/1 \\\"Font Awesome 6 Thin\\\";\\n --fa-font-duotone: normal 900 1em/1 \\\"Font Awesome 6 Duotone\\\";\\n --fa-font-brands: normal 400 1em/1 \\\"Font Awesome 6 Brands\\\";\\n}\\n\\nsvg:not(:root).svg-inline--fa, svg:not(:host).svg-inline--fa {\\n overflow: visible;\\n box-sizing: content-box;\\n}\\n\\n.svg-inline--fa {\\n display: var(--fa-display, inline-block);\\n height: 1em;\\n overflow: visible;\\n vertical-align: -0.125em;\\n}\\n.svg-inline--fa.fa-2xs {\\n vertical-align: 0.1em;\\n}\\n.svg-inline--fa.fa-xs {\\n vertical-align: 0em;\\n}\\n.svg-inline--fa.fa-sm {\\n vertical-align: -0.0714285705em;\\n}\\n.svg-inline--fa.fa-lg {\\n vertical-align: -0.2em;\\n}\\n.svg-inline--fa.fa-xl {\\n vertical-align: -0.25em;\\n}\\n.svg-inline--fa.fa-2xl {\\n vertical-align: -0.3125em;\\n}\\n.svg-inline--fa.fa-pull-left {\\n margin-right: var(--fa-pull-margin, 0.3em);\\n width: auto;\\n}\\n.svg-inline--fa.fa-pull-right {\\n margin-left: var(--fa-pull-margin, 0.3em);\\n width: auto;\\n}\\n.svg-inline--fa.fa-li {\\n width: var(--fa-li-width, 2em);\\n top: 0.25em;\\n}\\n.svg-inline--fa.fa-fw {\\n width: var(--fa-fw-width, 1.25em);\\n}\\n\\n.fa-layers svg.svg-inline--fa {\\n bottom: 0;\\n left: 0;\\n margin: auto;\\n position: absolute;\\n right: 0;\\n top: 0;\\n}\\n\\n.fa-layers-counter, .fa-layers-text {\\n display: inline-block;\\n position: absolute;\\n text-align: center;\\n}\\n\\n.fa-layers {\\n display: inline-block;\\n height: 1em;\\n position: relative;\\n text-align: center;\\n vertical-align: -0.125em;\\n width: 1em;\\n}\\n.fa-layers svg.svg-inline--fa {\\n -webkit-transform-origin: center center;\\n transform-origin: center center;\\n}\\n\\n.fa-layers-text {\\n left: 50%;\\n top: 50%;\\n -webkit-transform: translate(-50%, -50%);\\n transform: translate(-50%, -50%);\\n -webkit-transform-origin: center center;\\n transform-origin: center center;\\n}\\n\\n.fa-layers-counter {\\n background-color: var(--fa-counter-background-color, #ff253a);\\n border-radius: var(--fa-counter-border-radius, 1em);\\n box-sizing: border-box;\\n color: var(--fa-inverse, #fff);\\n line-height: var(--fa-counter-line-height, 1);\\n max-width: var(--fa-counter-max-width, 5em);\\n min-width: var(--fa-counter-min-width, 1.5em);\\n overflow: hidden;\\n padding: var(--fa-counter-padding, 0.25em 0.5em);\\n right: var(--fa-right, 0);\\n text-overflow: ellipsis;\\n top: var(--fa-top, 0);\\n -webkit-transform: scale(var(--fa-counter-scale, 0.25));\\n transform: scale(var(--fa-counter-scale, 0.25));\\n -webkit-transform-origin: top right;\\n transform-origin: top right;\\n}\\n\\n.fa-layers-bottom-right {\\n bottom: var(--fa-bottom, 0);\\n right: var(--fa-right, 0);\\n top: auto;\\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\\n transform: scale(var(--fa-layers-scale, 0.25));\\n -webkit-transform-origin: bottom right;\\n transform-origin: bottom right;\\n}\\n\\n.fa-layers-bottom-left {\\n bottom: var(--fa-bottom, 0);\\n left: var(--fa-left, 0);\\n right: auto;\\n top: auto;\\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\\n transform: scale(var(--fa-layers-scale, 0.25));\\n -webkit-transform-origin: bottom left;\\n transform-origin: bottom left;\\n}\\n\\n.fa-layers-top-right {\\n top: var(--fa-top, 0);\\n right: var(--fa-right, 0);\\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\\n transform: scale(var(--fa-layers-scale, 0.25));\\n -webkit-transform-origin: top right;\\n transform-origin: top right;\\n}\\n\\n.fa-layers-top-left {\\n left: var(--fa-left, 0);\\n right: auto;\\n top: var(--fa-top, 0);\\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\\n transform: scale(var(--fa-layers-scale, 0.25));\\n -webkit-transform-origin: top left;\\n transform-origin: top left;\\n}\\n\\n.fa-1x {\\n font-size: 1em;\\n}\\n\\n.fa-2x {\\n font-size: 2em;\\n}\\n\\n.fa-3x {\\n font-size: 3em;\\n}\\n\\n.fa-4x {\\n font-size: 4em;\\n}\\n\\n.fa-5x {\\n font-size: 5em;\\n}\\n\\n.fa-6x {\\n font-size: 6em;\\n}\\n\\n.fa-7x {\\n font-size: 7em;\\n}\\n\\n.fa-8x {\\n font-size: 8em;\\n}\\n\\n.fa-9x {\\n font-size: 9em;\\n}\\n\\n.fa-10x {\\n font-size: 10em;\\n}\\n\\n.fa-2xs {\\n font-size: 0.625em;\\n line-height: 0.1em;\\n vertical-align: 0.225em;\\n}\\n\\n.fa-xs {\\n font-size: 0.75em;\\n line-height: 0.0833333337em;\\n vertical-align: 0.125em;\\n}\\n\\n.fa-sm {\\n font-size: 0.875em;\\n line-height: 0.0714285718em;\\n vertical-align: 0.0535714295em;\\n}\\n\\n.fa-lg {\\n font-size: 1.25em;\\n line-height: 0.05em;\\n vertical-align: -0.075em;\\n}\\n\\n.fa-xl {\\n font-size: 1.5em;\\n line-height: 0.0416666682em;\\n vertical-align: -0.125em;\\n}\\n\\n.fa-2xl {\\n font-size: 2em;\\n line-height: 0.03125em;\\n vertical-align: -0.1875em;\\n}\\n\\n.fa-fw {\\n text-align: center;\\n width: 1.25em;\\n}\\n\\n.fa-ul {\\n list-style-type: none;\\n margin-left: var(--fa-li-margin, 2.5em);\\n padding-left: 0;\\n}\\n.fa-ul > li {\\n position: relative;\\n}\\n\\n.fa-li {\\n left: calc(var(--fa-li-width, 2em) * -1);\\n position: absolute;\\n text-align: center;\\n width: var(--fa-li-width, 2em);\\n line-height: inherit;\\n}\\n\\n.fa-border {\\n border-color: var(--fa-border-color, #eee);\\n border-radius: var(--fa-border-radius, 0.1em);\\n border-style: var(--fa-border-style, solid);\\n border-width: var(--fa-border-width, 0.08em);\\n padding: var(--fa-border-padding, 0.2em 0.25em 0.15em);\\n}\\n\\n.fa-pull-left {\\n float: left;\\n margin-right: var(--fa-pull-margin, 0.3em);\\n}\\n\\n.fa-pull-right {\\n float: right;\\n margin-left: var(--fa-pull-margin, 0.3em);\\n}\\n\\n.fa-beat {\\n -webkit-animation-name: fa-beat;\\n animation-name: fa-beat;\\n -webkit-animation-delay: var(--fa-animation-delay, 0);\\n animation-delay: var(--fa-animation-delay, 0);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out);\\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\\n}\\n\\n.fa-bounce {\\n -webkit-animation-name: fa-bounce;\\n animation-name: fa-bounce;\\n -webkit-animation-delay: var(--fa-animation-delay, 0);\\n animation-delay: var(--fa-animation-delay, 0);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));\\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));\\n}\\n\\n.fa-fade {\\n -webkit-animation-name: fa-fade;\\n animation-name: fa-fade;\\n -webkit-animation-delay: var(--fa-animation-delay, 0);\\n animation-delay: var(--fa-animation-delay, 0);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\\n}\\n\\n.fa-beat-fade {\\n -webkit-animation-name: fa-beat-fade;\\n animation-name: fa-beat-fade;\\n -webkit-animation-delay: var(--fa-animation-delay, 0);\\n animation-delay: var(--fa-animation-delay, 0);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\\n}\\n\\n.fa-flip {\\n -webkit-animation-name: fa-flip;\\n animation-name: fa-flip;\\n -webkit-animation-delay: var(--fa-animation-delay, 0);\\n animation-delay: var(--fa-animation-delay, 0);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out);\\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\\n}\\n\\n.fa-shake {\\n -webkit-animation-name: fa-shake;\\n animation-name: fa-shake;\\n -webkit-animation-delay: var(--fa-animation-delay, 0);\\n animation-delay: var(--fa-animation-delay, 0);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, linear);\\n animation-timing-function: var(--fa-animation-timing, linear);\\n}\\n\\n.fa-spin {\\n -webkit-animation-name: fa-spin;\\n animation-name: fa-spin;\\n -webkit-animation-delay: var(--fa-animation-delay, 0);\\n animation-delay: var(--fa-animation-delay, 0);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 2s);\\n animation-duration: var(--fa-animation-duration, 2s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, linear);\\n animation-timing-function: var(--fa-animation-timing, linear);\\n}\\n\\n.fa-spin-reverse {\\n --fa-animation-direction: reverse;\\n}\\n\\n.fa-pulse,\\n.fa-spin-pulse {\\n -webkit-animation-name: fa-spin;\\n animation-name: fa-spin;\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, steps(8));\\n animation-timing-function: var(--fa-animation-timing, steps(8));\\n}\\n\\n@media (prefers-reduced-motion: reduce) {\\n .fa-beat,\\n.fa-bounce,\\n.fa-fade,\\n.fa-beat-fade,\\n.fa-flip,\\n.fa-pulse,\\n.fa-shake,\\n.fa-spin,\\n.fa-spin-pulse {\\n -webkit-animation-delay: -1ms;\\n animation-delay: -1ms;\\n -webkit-animation-duration: 1ms;\\n animation-duration: 1ms;\\n -webkit-animation-iteration-count: 1;\\n animation-iteration-count: 1;\\n transition-delay: 0s;\\n transition-duration: 0s;\\n }\\n}\\n@-webkit-keyframes fa-beat {\\n 0%, 90% {\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n }\\n 45% {\\n -webkit-transform: scale(var(--fa-beat-scale, 1.25));\\n transform: scale(var(--fa-beat-scale, 1.25));\\n }\\n}\\n@keyframes fa-beat {\\n 0%, 90% {\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n }\\n 45% {\\n -webkit-transform: scale(var(--fa-beat-scale, 1.25));\\n transform: scale(var(--fa-beat-scale, 1.25));\\n }\\n}\\n@-webkit-keyframes fa-bounce {\\n 0% {\\n -webkit-transform: scale(1, 1) translateY(0);\\n transform: scale(1, 1) translateY(0);\\n }\\n 10% {\\n -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\\n transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\\n }\\n 30% {\\n -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\\n transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\\n }\\n 50% {\\n -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\\n transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\\n }\\n 57% {\\n -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\\n }\\n 64% {\\n -webkit-transform: scale(1, 1) translateY(0);\\n transform: scale(1, 1) translateY(0);\\n }\\n 100% {\\n -webkit-transform: scale(1, 1) translateY(0);\\n transform: scale(1, 1) translateY(0);\\n }\\n}\\n@keyframes fa-bounce {\\n 0% {\\n -webkit-transform: scale(1, 1) translateY(0);\\n transform: scale(1, 1) translateY(0);\\n }\\n 10% {\\n -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\\n transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\\n }\\n 30% {\\n -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\\n transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\\n }\\n 50% {\\n -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\\n transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\\n }\\n 57% {\\n -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\\n }\\n 64% {\\n -webkit-transform: scale(1, 1) translateY(0);\\n transform: scale(1, 1) translateY(0);\\n }\\n 100% {\\n -webkit-transform: scale(1, 1) translateY(0);\\n transform: scale(1, 1) translateY(0);\\n }\\n}\\n@-webkit-keyframes fa-fade {\\n 50% {\\n opacity: var(--fa-fade-opacity, 0.4);\\n }\\n}\\n@keyframes fa-fade {\\n 50% {\\n opacity: var(--fa-fade-opacity, 0.4);\\n }\\n}\\n@-webkit-keyframes fa-beat-fade {\\n 0%, 100% {\\n opacity: var(--fa-beat-fade-opacity, 0.4);\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n }\\n 50% {\\n opacity: 1;\\n -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125));\\n transform: scale(var(--fa-beat-fade-scale, 1.125));\\n }\\n}\\n@keyframes fa-beat-fade {\\n 0%, 100% {\\n opacity: var(--fa-beat-fade-opacity, 0.4);\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n }\\n 50% {\\n opacity: 1;\\n -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125));\\n transform: scale(var(--fa-beat-fade-scale, 1.125));\\n }\\n}\\n@-webkit-keyframes fa-flip {\\n 50% {\\n -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\\n transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\\n }\\n}\\n@keyframes fa-flip {\\n 50% {\\n -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\\n transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\\n }\\n}\\n@-webkit-keyframes fa-shake {\\n 0% {\\n -webkit-transform: rotate(-15deg);\\n transform: rotate(-15deg);\\n }\\n 4% {\\n -webkit-transform: rotate(15deg);\\n transform: rotate(15deg);\\n }\\n 8%, 24% {\\n -webkit-transform: rotate(-18deg);\\n transform: rotate(-18deg);\\n }\\n 12%, 28% {\\n -webkit-transform: rotate(18deg);\\n transform: rotate(18deg);\\n }\\n 16% {\\n -webkit-transform: rotate(-22deg);\\n transform: rotate(-22deg);\\n }\\n 20% {\\n -webkit-transform: rotate(22deg);\\n transform: rotate(22deg);\\n }\\n 32% {\\n -webkit-transform: rotate(-12deg);\\n transform: rotate(-12deg);\\n }\\n 36% {\\n -webkit-transform: rotate(12deg);\\n transform: rotate(12deg);\\n }\\n 40%, 100% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n}\\n@keyframes fa-shake {\\n 0% {\\n -webkit-transform: rotate(-15deg);\\n transform: rotate(-15deg);\\n }\\n 4% {\\n -webkit-transform: rotate(15deg);\\n transform: rotate(15deg);\\n }\\n 8%, 24% {\\n -webkit-transform: rotate(-18deg);\\n transform: rotate(-18deg);\\n }\\n 12%, 28% {\\n -webkit-transform: rotate(18deg);\\n transform: rotate(18deg);\\n }\\n 16% {\\n -webkit-transform: rotate(-22deg);\\n transform: rotate(-22deg);\\n }\\n 20% {\\n -webkit-transform: rotate(22deg);\\n transform: rotate(22deg);\\n }\\n 32% {\\n -webkit-transform: rotate(-12deg);\\n transform: rotate(-12deg);\\n }\\n 36% {\\n -webkit-transform: rotate(12deg);\\n transform: rotate(12deg);\\n }\\n 40%, 100% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n}\\n@-webkit-keyframes fa-spin {\\n 0% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n@keyframes fa-spin {\\n 0% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n.fa-rotate-90 {\\n -webkit-transform: rotate(90deg);\\n transform: rotate(90deg);\\n}\\n\\n.fa-rotate-180 {\\n -webkit-transform: rotate(180deg);\\n transform: rotate(180deg);\\n}\\n\\n.fa-rotate-270 {\\n -webkit-transform: rotate(270deg);\\n transform: rotate(270deg);\\n}\\n\\n.fa-flip-horizontal {\\n -webkit-transform: scale(-1, 1);\\n transform: scale(-1, 1);\\n}\\n\\n.fa-flip-vertical {\\n -webkit-transform: scale(1, -1);\\n transform: scale(1, -1);\\n}\\n\\n.fa-flip-both,\\n.fa-flip-horizontal.fa-flip-vertical {\\n -webkit-transform: scale(-1, -1);\\n transform: scale(-1, -1);\\n}\\n\\n.fa-rotate-by {\\n -webkit-transform: rotate(var(--fa-rotate-angle, none));\\n transform: rotate(var(--fa-rotate-angle, none));\\n}\\n\\n.fa-stack {\\n display: inline-block;\\n vertical-align: middle;\\n height: 2em;\\n position: relative;\\n width: 2.5em;\\n}\\n\\n.fa-stack-1x,\\n.fa-stack-2x {\\n bottom: 0;\\n left: 0;\\n margin: auto;\\n position: absolute;\\n right: 0;\\n top: 0;\\n z-index: var(--fa-stack-z-index, auto);\\n}\\n\\n.svg-inline--fa.fa-stack-1x {\\n height: 1em;\\n width: 1.25em;\\n}\\n.svg-inline--fa.fa-stack-2x {\\n height: 2em;\\n width: 2.5em;\\n}\\n\\n.fa-inverse {\\n color: var(--fa-inverse, #fff);\\n}\\n\\n.sr-only,\\n.fa-sr-only {\\n position: absolute;\\n width: 1px;\\n height: 1px;\\n padding: 0;\\n margin: -1px;\\n overflow: hidden;\\n clip: rect(0, 0, 0, 0);\\n white-space: nowrap;\\n border-width: 0;\\n}\\n\\n.sr-only-focusable:not(:focus),\\n.fa-sr-only-focusable:not(:focus) {\\n position: absolute;\\n width: 1px;\\n height: 1px;\\n padding: 0;\\n margin: -1px;\\n overflow: hidden;\\n clip: rect(0, 0, 0, 0);\\n white-space: nowrap;\\n border-width: 0;\\n}\\n\\n.svg-inline--fa .fa-primary {\\n fill: var(--fa-primary-color, currentColor);\\n opacity: var(--fa-primary-opacity, 1);\\n}\\n\\n.svg-inline--fa .fa-secondary {\\n fill: var(--fa-secondary-color, currentColor);\\n opacity: var(--fa-secondary-opacity, 0.4);\\n}\\n\\n.svg-inline--fa.fa-swap-opacity .fa-primary {\\n opacity: var(--fa-secondary-opacity, 0.4);\\n}\\n\\n.svg-inline--fa.fa-swap-opacity .fa-secondary {\\n opacity: var(--fa-primary-opacity, 1);\\n}\\n\\n.svg-inline--fa mask .fa-primary,\\n.svg-inline--fa mask .fa-secondary {\\n fill: black;\\n}\\n\\n.fad.fa-inverse,\\n.fa-duotone.fa-inverse {\\n color: var(--fa-inverse, #fff);\\n}\";\n\nfunction css() {\n var dfp = DEFAULT_FAMILY_PREFIX;\n var drc = DEFAULT_REPLACEMENT_CLASS;\n var fp = config.familyPrefix;\n var rc = config.replacementClass;\n var s = baseStyles;\n\n if (fp !== dfp || rc !== drc) {\n var dPatt = new RegExp(\"\\\\.\".concat(dfp, \"\\\\-\"), 'g');\n var customPropPatt = new RegExp(\"\\\\--\".concat(dfp, \"\\\\-\"), 'g');\n var rPatt = new RegExp(\"\\\\.\".concat(drc), 'g');\n s = s.replace(dPatt, \".\".concat(fp, \"-\")).replace(customPropPatt, \"--\".concat(fp, \"-\")).replace(rPatt, \".\".concat(rc));\n }\n\n return s;\n}\n\nvar _cssInserted = false;\n\nfunction ensureCss() {\n if (config.autoAddCss && !_cssInserted) {\n insertCss(css());\n _cssInserted = true;\n }\n}\n\nvar InjectCSS = {\n mixout: function mixout() {\n return {\n dom: {\n css: css,\n insertCss: ensureCss\n }\n };\n },\n hooks: function hooks() {\n return {\n beforeDOMElementCreation: function beforeDOMElementCreation() {\n ensureCss();\n },\n beforeI2svg: function beforeI2svg() {\n ensureCss();\n }\n };\n }\n};\n\nvar w = WINDOW || {};\nif (!w[NAMESPACE_IDENTIFIER]) w[NAMESPACE_IDENTIFIER] = {};\nif (!w[NAMESPACE_IDENTIFIER].styles) w[NAMESPACE_IDENTIFIER].styles = {};\nif (!w[NAMESPACE_IDENTIFIER].hooks) w[NAMESPACE_IDENTIFIER].hooks = {};\nif (!w[NAMESPACE_IDENTIFIER].shims) w[NAMESPACE_IDENTIFIER].shims = [];\nvar namespace = w[NAMESPACE_IDENTIFIER];\n\nvar functions = [];\n\nvar listener = function listener() {\n DOCUMENT.removeEventListener('DOMContentLoaded', listener);\n loaded = 1;\n functions.map(function (fn) {\n return fn();\n });\n};\n\nvar loaded = false;\n\nif (IS_DOM) {\n loaded = (DOCUMENT.documentElement.doScroll ? /^loaded|^c/ : /^loaded|^i|^c/).test(DOCUMENT.readyState);\n if (!loaded) DOCUMENT.addEventListener('DOMContentLoaded', listener);\n}\n\nfunction domready (fn) {\n if (!IS_DOM) return;\n loaded ? setTimeout(fn, 0) : functions.push(fn);\n}\n\nfunction toHtml(abstractNodes) {\n var tag = abstractNodes.tag,\n _abstractNodes$attrib = abstractNodes.attributes,\n attributes = _abstractNodes$attrib === void 0 ? {} : _abstractNodes$attrib,\n _abstractNodes$childr = abstractNodes.children,\n children = _abstractNodes$childr === void 0 ? [] : _abstractNodes$childr;\n\n if (typeof abstractNodes === 'string') {\n return htmlEscape(abstractNodes);\n } else {\n return \"<\".concat(tag, \" \").concat(joinAttributes(attributes), \">\").concat(children.map(toHtml).join(''), \"\").concat(tag, \">\");\n }\n}\n\nfunction iconFromMapping(mapping, prefix, iconName) {\n if (mapping && mapping[prefix] && mapping[prefix][iconName]) {\n return {\n prefix: prefix,\n iconName: iconName,\n icon: mapping[prefix][iconName]\n };\n }\n}\n\n/**\n * Internal helper to bind a function known to have 4 arguments\n * to a given context.\n */\n\nvar bindInternal4 = function bindInternal4(func, thisContext) {\n return function (a, b, c, d) {\n return func.call(thisContext, a, b, c, d);\n };\n};\n\n/**\n * # Reduce\n *\n * A fast object `.reduce()` implementation.\n *\n * @param {Object} subject The object to reduce over.\n * @param {Function} fn The reducer function.\n * @param {mixed} initialValue The initial value for the reducer, defaults to subject[0].\n * @param {Object} thisContext The context for the reducer.\n * @return {mixed} The final result.\n */\n\n\nvar reduce = function fastReduceObject(subject, fn, initialValue, thisContext) {\n var keys = Object.keys(subject),\n length = keys.length,\n iterator = thisContext !== undefined ? bindInternal4(fn, thisContext) : fn,\n i,\n key,\n result;\n\n if (initialValue === undefined) {\n i = 1;\n result = subject[keys[0]];\n } else {\n i = 0;\n result = initialValue;\n }\n\n for (; i < length; i++) {\n key = keys[i];\n result = iterator(result, subject[key], key, subject);\n }\n\n return result;\n};\n\n/**\n * ucs2decode() and codePointAt() are both works of Mathias Bynens and licensed under MIT\n *\n * Copyright Mathias Bynens \n\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\nfunction ucs2decode(string) {\n var output = [];\n var counter = 0;\n var length = string.length;\n\n while (counter < length) {\n var value = string.charCodeAt(counter++);\n\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n var extra = string.charCodeAt(counter++);\n\n if ((extra & 0xFC00) == 0xDC00) {\n // eslint-disable-line eqeqeq\n output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n output.push(value);\n counter--;\n }\n } else {\n output.push(value);\n }\n }\n\n return output;\n}\n\nfunction toHex(unicode) {\n var decoded = ucs2decode(unicode);\n return decoded.length === 1 ? decoded[0].toString(16) : null;\n}\nfunction codePointAt(string, index) {\n var size = string.length;\n var first = string.charCodeAt(index);\n var second;\n\n if (first >= 0xD800 && first <= 0xDBFF && size > index + 1) {\n second = string.charCodeAt(index + 1);\n\n if (second >= 0xDC00 && second <= 0xDFFF) {\n return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n }\n\n return first;\n}\n\nfunction normalizeIcons(icons) {\n return Object.keys(icons).reduce(function (acc, iconName) {\n var icon = icons[iconName];\n var expanded = !!icon.icon;\n\n if (expanded) {\n acc[icon.iconName] = icon.icon;\n } else {\n acc[iconName] = icon;\n }\n\n return acc;\n }, {});\n}\n\nfunction defineIcons(prefix, icons) {\n var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var _params$skipHooks = params.skipHooks,\n skipHooks = _params$skipHooks === void 0 ? false : _params$skipHooks;\n var normalized = normalizeIcons(icons);\n\n if (typeof namespace.hooks.addPack === 'function' && !skipHooks) {\n namespace.hooks.addPack(prefix, normalizeIcons(icons));\n } else {\n namespace.styles[prefix] = _objectSpread2(_objectSpread2({}, namespace.styles[prefix] || {}), normalized);\n }\n /**\n * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction\n * of new styles we needed to differentiate between them. Prefix `fa` is now an alias\n * for `fas` so we'll ease the upgrade process for our users by automatically defining\n * this as well.\n */\n\n\n if (prefix === 'fas') {\n defineIcons('fa', icons);\n }\n}\n\nvar duotonePathRe = [/*#__PURE__*/_wrapRegExp(/path d=\"((?:(?!\")[\\s\\S])+)\".*path d=\"((?:(?!\")[\\s\\S])+)\"/, {\n d1: 1,\n d2: 2\n}), /*#__PURE__*/_wrapRegExp(/path class=\"((?:(?!\")[\\s\\S])+)\".*d=\"((?:(?!\")[\\s\\S])+)\".*path class=\"((?:(?!\")[\\s\\S])+)\".*d=\"((?:(?!\")[\\s\\S])+)\"/, {\n cls1: 1,\n d1: 2,\n cls2: 3,\n d2: 4\n}), /*#__PURE__*/_wrapRegExp(/path class=\"((?:(?!\")[\\s\\S])+)\".*d=\"((?:(?!\")[\\s\\S])+)\"/, {\n cls1: 1,\n d1: 2\n})];\n\nvar styles = namespace.styles,\n shims = namespace.shims;\nvar LONG_STYLE = Object.values(PREFIX_TO_LONG_STYLE);\nvar _defaultUsablePrefix = null;\nvar _byUnicode = {};\nvar _byLigature = {};\nvar _byOldName = {};\nvar _byOldUnicode = {};\nvar _byAlias = {};\nvar PREFIXES = Object.keys(PREFIX_TO_STYLE);\n\nfunction isReserved(name) {\n return ~RESERVED_CLASSES.indexOf(name);\n}\n\nfunction getIconName(familyPrefix, cls) {\n var parts = cls.split('-');\n var prefix = parts[0];\n var iconName = parts.slice(1).join('-');\n\n if (prefix === familyPrefix && iconName !== '' && !isReserved(iconName)) {\n return iconName;\n } else {\n return null;\n }\n}\nvar build = function build() {\n var lookup = function lookup(reducer) {\n return reduce(styles, function (o, style, prefix) {\n o[prefix] = reduce(style, reducer, {});\n return o;\n }, {});\n };\n\n _byUnicode = lookup(function (acc, icon, iconName) {\n if (icon[3]) {\n acc[icon[3]] = iconName;\n }\n\n if (icon[2]) {\n var aliases = icon[2].filter(function (a) {\n return typeof a === 'number';\n });\n aliases.forEach(function (alias) {\n acc[alias.toString(16)] = iconName;\n });\n }\n\n return acc;\n });\n _byLigature = lookup(function (acc, icon, iconName) {\n acc[iconName] = iconName;\n\n if (icon[2]) {\n var aliases = icon[2].filter(function (a) {\n return typeof a === 'string';\n });\n aliases.forEach(function (alias) {\n acc[alias] = iconName;\n });\n }\n\n return acc;\n });\n _byAlias = lookup(function (acc, icon, iconName) {\n var aliases = icon[2];\n acc[iconName] = iconName;\n aliases.forEach(function (alias) {\n acc[alias] = iconName;\n });\n return acc;\n }); // If we have a Kit, we can't determine if regular is available since we\n // could be auto-fetching it. We'll have to assume that it is available.\n\n var hasRegular = 'far' in styles || config.autoFetchSvg;\n var shimLookups = reduce(shims, function (acc, shim) {\n var maybeNameMaybeUnicode = shim[0];\n var prefix = shim[1];\n var iconName = shim[2];\n\n if (prefix === 'far' && !hasRegular) {\n prefix = 'fas';\n }\n\n if (typeof maybeNameMaybeUnicode === 'string') {\n acc.names[maybeNameMaybeUnicode] = {\n prefix: prefix,\n iconName: iconName\n };\n }\n\n if (typeof maybeNameMaybeUnicode === 'number') {\n acc.unicodes[maybeNameMaybeUnicode.toString(16)] = {\n prefix: prefix,\n iconName: iconName\n };\n }\n\n return acc;\n }, {\n names: {},\n unicodes: {}\n });\n _byOldName = shimLookups.names;\n _byOldUnicode = shimLookups.unicodes;\n _defaultUsablePrefix = getCanonicalPrefix(config.styleDefault);\n};\nonChange(function (c) {\n _defaultUsablePrefix = getCanonicalPrefix(c.styleDefault);\n});\nbuild();\nfunction byUnicode(prefix, unicode) {\n return (_byUnicode[prefix] || {})[unicode];\n}\nfunction byLigature(prefix, ligature) {\n return (_byLigature[prefix] || {})[ligature];\n}\nfunction byAlias(prefix, alias) {\n return (_byAlias[prefix] || {})[alias];\n}\nfunction byOldName(name) {\n return _byOldName[name] || {\n prefix: null,\n iconName: null\n };\n}\nfunction byOldUnicode(unicode) {\n var oldUnicode = _byOldUnicode[unicode];\n var newUnicode = byUnicode('fas', unicode);\n return oldUnicode || (newUnicode ? {\n prefix: 'fas',\n iconName: newUnicode\n } : null) || {\n prefix: null,\n iconName: null\n };\n}\nfunction getDefaultUsablePrefix() {\n return _defaultUsablePrefix;\n}\nvar emptyCanonicalIcon = function emptyCanonicalIcon() {\n return {\n prefix: null,\n iconName: null,\n rest: []\n };\n};\nfunction getCanonicalPrefix(styleOrPrefix) {\n var style = PREFIX_TO_STYLE[styleOrPrefix];\n var prefix = STYLE_TO_PREFIX[styleOrPrefix] || STYLE_TO_PREFIX[style];\n var defined = styleOrPrefix in namespace.styles ? styleOrPrefix : null;\n return prefix || defined || null;\n}\nfunction getCanonicalIcon(values) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$skipLookups = params.skipLookups,\n skipLookups = _params$skipLookups === void 0 ? false : _params$skipLookups;\n var givenPrefix = null;\n var canonical = values.reduce(function (acc, cls) {\n var iconName = getIconName(config.familyPrefix, cls);\n\n if (styles[cls]) {\n cls = LONG_STYLE.includes(cls) ? LONG_STYLE_TO_PREFIX[cls] : cls;\n givenPrefix = cls;\n acc.prefix = cls;\n } else if (PREFIXES.indexOf(cls) > -1) {\n givenPrefix = cls;\n acc.prefix = getCanonicalPrefix(cls);\n } else if (iconName) {\n acc.iconName = iconName;\n } else if (cls !== config.replacementClass) {\n acc.rest.push(cls);\n }\n\n if (!skipLookups && acc.prefix && acc.iconName) {\n var shim = givenPrefix === 'fa' ? byOldName(acc.iconName) : {};\n var aliasIconName = byAlias(acc.prefix, acc.iconName);\n\n if (shim.prefix) {\n givenPrefix = null;\n }\n\n acc.iconName = shim.iconName || aliasIconName || acc.iconName;\n acc.prefix = shim.prefix || acc.prefix;\n\n if (acc.prefix === 'far' && !styles['far'] && styles['fas'] && !config.autoFetchSvg) {\n // Allow a fallback from the regular style to solid if regular is not available\n // but only if we aren't auto-fetching SVGs\n acc.prefix = 'fas';\n }\n }\n\n return acc;\n }, emptyCanonicalIcon());\n\n if (canonical.prefix === 'fa' || givenPrefix === 'fa') {\n // The fa prefix is not canonical. So if it has made it through until this point\n // we will shift it to the correct prefix.\n canonical.prefix = getDefaultUsablePrefix() || 'fas';\n }\n\n return canonical;\n}\n\nvar Library = /*#__PURE__*/function () {\n function Library() {\n _classCallCheck(this, Library);\n\n this.definitions = {};\n }\n\n _createClass(Library, [{\n key: \"add\",\n value: function add() {\n var _this = this;\n\n for (var _len = arguments.length, definitions = new Array(_len), _key = 0; _key < _len; _key++) {\n definitions[_key] = arguments[_key];\n }\n\n var additions = definitions.reduce(this._pullDefinitions, {});\n Object.keys(additions).forEach(function (key) {\n _this.definitions[key] = _objectSpread2(_objectSpread2({}, _this.definitions[key] || {}), additions[key]);\n defineIcons(key, additions[key]);\n var longPrefix = PREFIX_TO_LONG_STYLE[key];\n if (longPrefix) defineIcons(longPrefix, additions[key]);\n build();\n });\n }\n }, {\n key: \"reset\",\n value: function reset() {\n this.definitions = {};\n }\n }, {\n key: \"_pullDefinitions\",\n value: function _pullDefinitions(additions, definition) {\n var normalized = definition.prefix && definition.iconName && definition.icon ? {\n 0: definition\n } : definition;\n Object.keys(normalized).map(function (key) {\n var _normalized$key = normalized[key],\n prefix = _normalized$key.prefix,\n iconName = _normalized$key.iconName,\n icon = _normalized$key.icon;\n var aliases = icon[2];\n if (!additions[prefix]) additions[prefix] = {};\n\n if (aliases.length > 0) {\n aliases.forEach(function (alias) {\n if (typeof alias === 'string') {\n additions[prefix][alias] = icon;\n }\n });\n }\n\n additions[prefix][iconName] = icon;\n });\n return additions;\n }\n }]);\n\n return Library;\n}();\n\nvar _plugins = [];\nvar _hooks = {};\nvar providers = {};\nvar defaultProviderKeys = Object.keys(providers);\nfunction registerPlugins(nextPlugins, _ref) {\n var obj = _ref.mixoutsTo;\n _plugins = nextPlugins;\n _hooks = {};\n Object.keys(providers).forEach(function (k) {\n if (defaultProviderKeys.indexOf(k) === -1) {\n delete providers[k];\n }\n });\n\n _plugins.forEach(function (plugin) {\n var mixout = plugin.mixout ? plugin.mixout() : {};\n Object.keys(mixout).forEach(function (tk) {\n if (typeof mixout[tk] === 'function') {\n obj[tk] = mixout[tk];\n }\n\n if (_typeof(mixout[tk]) === 'object') {\n Object.keys(mixout[tk]).forEach(function (sk) {\n if (!obj[tk]) {\n obj[tk] = {};\n }\n\n obj[tk][sk] = mixout[tk][sk];\n });\n }\n });\n\n if (plugin.hooks) {\n var hooks = plugin.hooks();\n Object.keys(hooks).forEach(function (hook) {\n if (!_hooks[hook]) {\n _hooks[hook] = [];\n }\n\n _hooks[hook].push(hooks[hook]);\n });\n }\n\n if (plugin.provides) {\n plugin.provides(providers);\n }\n });\n\n return obj;\n}\nfunction chainHooks(hook, accumulator) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n var hookFns = _hooks[hook] || [];\n hookFns.forEach(function (hookFn) {\n accumulator = hookFn.apply(null, [accumulator].concat(args)); // eslint-disable-line no-useless-call\n });\n return accumulator;\n}\nfunction callHooks(hook) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n var hookFns = _hooks[hook] || [];\n hookFns.forEach(function (hookFn) {\n hookFn.apply(null, args);\n });\n return undefined;\n}\nfunction callProvided() {\n var hook = arguments[0];\n var args = Array.prototype.slice.call(arguments, 1);\n return providers[hook] ? providers[hook].apply(null, args) : undefined;\n}\n\nfunction findIconDefinition(iconLookup) {\n if (iconLookup.prefix === 'fa') {\n iconLookup.prefix = 'fas';\n }\n\n var iconName = iconLookup.iconName;\n var prefix = iconLookup.prefix || getDefaultUsablePrefix();\n if (!iconName) return;\n iconName = byAlias(prefix, iconName) || iconName;\n return iconFromMapping(library.definitions, prefix, iconName) || iconFromMapping(namespace.styles, prefix, iconName);\n}\nvar library = new Library();\nvar noAuto = function noAuto() {\n config.autoReplaceSvg = false;\n config.observeMutations = false;\n callHooks('noAuto');\n};\nvar dom = {\n i2svg: function i2svg() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n if (IS_DOM) {\n callHooks('beforeI2svg', params);\n callProvided('pseudoElements2svg', params);\n return callProvided('i2svg', params);\n } else {\n return Promise.reject('Operation requires a DOM of some kind.');\n }\n },\n watch: function watch() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var autoReplaceSvgRoot = params.autoReplaceSvgRoot;\n\n if (config.autoReplaceSvg === false) {\n config.autoReplaceSvg = true;\n }\n\n config.observeMutations = true;\n domready(function () {\n autoReplace({\n autoReplaceSvgRoot: autoReplaceSvgRoot\n });\n callHooks('watch', params);\n });\n }\n};\nvar parse = {\n icon: function icon(_icon) {\n if (_icon === null) {\n return null;\n }\n\n if (_typeof(_icon) === 'object' && _icon.prefix && _icon.iconName) {\n return {\n prefix: _icon.prefix,\n iconName: byAlias(_icon.prefix, _icon.iconName) || _icon.iconName\n };\n }\n\n if (Array.isArray(_icon) && _icon.length === 2) {\n var iconName = _icon[1].indexOf('fa-') === 0 ? _icon[1].slice(3) : _icon[1];\n var prefix = getCanonicalPrefix(_icon[0]);\n return {\n prefix: prefix,\n iconName: byAlias(prefix, iconName) || iconName\n };\n }\n\n if (typeof _icon === 'string' && (_icon.indexOf(\"\".concat(config.familyPrefix, \"-\")) > -1 || _icon.match(ICON_SELECTION_SYNTAX_PATTERN))) {\n var canonicalIcon = getCanonicalIcon(_icon.split(' '), {\n skipLookups: true\n });\n return {\n prefix: canonicalIcon.prefix || getDefaultUsablePrefix(),\n iconName: byAlias(canonicalIcon.prefix, canonicalIcon.iconName) || canonicalIcon.iconName\n };\n }\n\n if (typeof _icon === 'string') {\n var _prefix = getDefaultUsablePrefix();\n\n return {\n prefix: _prefix,\n iconName: byAlias(_prefix, _icon) || _icon\n };\n }\n }\n};\nvar api = {\n noAuto: noAuto,\n config: config,\n dom: dom,\n parse: parse,\n library: library,\n findIconDefinition: findIconDefinition,\n toHtml: toHtml\n};\n\nvar autoReplace = function autoReplace() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _params$autoReplaceSv = params.autoReplaceSvgRoot,\n autoReplaceSvgRoot = _params$autoReplaceSv === void 0 ? DOCUMENT : _params$autoReplaceSv;\n if ((Object.keys(namespace.styles).length > 0 || config.autoFetchSvg) && IS_DOM && config.autoReplaceSvg) api.dom.i2svg({\n node: autoReplaceSvgRoot\n });\n};\n\nfunction domVariants(val, abstractCreator) {\n Object.defineProperty(val, 'abstract', {\n get: abstractCreator\n });\n Object.defineProperty(val, 'html', {\n get: function get() {\n return val.abstract.map(function (a) {\n return toHtml(a);\n });\n }\n });\n Object.defineProperty(val, 'node', {\n get: function get() {\n if (!IS_DOM) return;\n var container = DOCUMENT.createElement('div');\n container.innerHTML = val.html;\n return container.children;\n }\n });\n return val;\n}\n\nfunction asIcon (_ref) {\n var children = _ref.children,\n main = _ref.main,\n mask = _ref.mask,\n attributes = _ref.attributes,\n styles = _ref.styles,\n transform = _ref.transform;\n\n if (transformIsMeaningful(transform) && main.found && !mask.found) {\n var width = main.width,\n height = main.height;\n var offset = {\n x: width / height / 2,\n y: 0.5\n };\n attributes['style'] = joinStyles(_objectSpread2(_objectSpread2({}, styles), {}, {\n 'transform-origin': \"\".concat(offset.x + transform.x / 16, \"em \").concat(offset.y + transform.y / 16, \"em\")\n }));\n }\n\n return [{\n tag: 'svg',\n attributes: attributes,\n children: children\n }];\n}\n\nfunction asSymbol (_ref) {\n var prefix = _ref.prefix,\n iconName = _ref.iconName,\n children = _ref.children,\n attributes = _ref.attributes,\n symbol = _ref.symbol;\n var id = symbol === true ? \"\".concat(prefix, \"-\").concat(config.familyPrefix, \"-\").concat(iconName) : symbol;\n return [{\n tag: 'svg',\n attributes: {\n style: 'display: none;'\n },\n children: [{\n tag: 'symbol',\n attributes: _objectSpread2(_objectSpread2({}, attributes), {}, {\n id: id\n }),\n children: children\n }]\n }];\n}\n\nfunction makeInlineSvgAbstract(params) {\n var _params$icons = params.icons,\n main = _params$icons.main,\n mask = _params$icons.mask,\n prefix = params.prefix,\n iconName = params.iconName,\n transform = params.transform,\n symbol = params.symbol,\n title = params.title,\n maskId = params.maskId,\n titleId = params.titleId,\n extra = params.extra,\n _params$watchable = params.watchable,\n watchable = _params$watchable === void 0 ? false : _params$watchable;\n\n var _ref = mask.found ? mask : main,\n width = _ref.width,\n height = _ref.height;\n\n var isUploadedIcon = prefix === 'fak';\n var attrClass = [config.replacementClass, iconName ? \"\".concat(config.familyPrefix, \"-\").concat(iconName) : ''].filter(function (c) {\n return extra.classes.indexOf(c) === -1;\n }).filter(function (c) {\n return c !== '' || !!c;\n }).concat(extra.classes).join(' ');\n var content = {\n children: [],\n attributes: _objectSpread2(_objectSpread2({}, extra.attributes), {}, {\n 'data-prefix': prefix,\n 'data-icon': iconName,\n 'class': attrClass,\n 'role': extra.attributes.role || 'img',\n 'xmlns': 'http://www.w3.org/2000/svg',\n 'viewBox': \"0 0 \".concat(width, \" \").concat(height)\n })\n };\n var uploadedIconWidthStyle = isUploadedIcon && !~extra.classes.indexOf('fa-fw') ? {\n width: \"\".concat(width / height * 16 * 0.0625, \"em\")\n } : {};\n\n if (watchable) {\n content.attributes[DATA_FA_I2SVG] = '';\n }\n\n if (title) {\n content.children.push({\n tag: 'title',\n attributes: {\n id: content.attributes['aria-labelledby'] || \"title-\".concat(titleId || nextUniqueId())\n },\n children: [title]\n });\n delete content.attributes.title;\n }\n\n var args = _objectSpread2(_objectSpread2({}, content), {}, {\n prefix: prefix,\n iconName: iconName,\n main: main,\n mask: mask,\n maskId: maskId,\n transform: transform,\n symbol: symbol,\n styles: _objectSpread2(_objectSpread2({}, uploadedIconWidthStyle), extra.styles)\n });\n\n var _ref2 = mask.found && main.found ? callProvided('generateAbstractMask', args) || {\n children: [],\n attributes: {}\n } : callProvided('generateAbstractIcon', args) || {\n children: [],\n attributes: {}\n },\n children = _ref2.children,\n attributes = _ref2.attributes;\n\n args.children = children;\n args.attributes = attributes;\n\n if (symbol) {\n return asSymbol(args);\n } else {\n return asIcon(args);\n }\n}\nfunction makeLayersTextAbstract(params) {\n var content = params.content,\n width = params.width,\n height = params.height,\n transform = params.transform,\n title = params.title,\n extra = params.extra,\n _params$watchable2 = params.watchable,\n watchable = _params$watchable2 === void 0 ? false : _params$watchable2;\n\n var attributes = _objectSpread2(_objectSpread2(_objectSpread2({}, extra.attributes), title ? {\n 'title': title\n } : {}), {}, {\n 'class': extra.classes.join(' ')\n });\n\n if (watchable) {\n attributes[DATA_FA_I2SVG] = '';\n }\n\n var styles = _objectSpread2({}, extra.styles);\n\n if (transformIsMeaningful(transform)) {\n styles['transform'] = transformForCss({\n transform: transform,\n startCentered: true,\n width: width,\n height: height\n });\n styles['-webkit-transform'] = styles['transform'];\n }\n\n var styleString = joinStyles(styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n var val = [];\n val.push({\n tag: 'span',\n attributes: attributes,\n children: [content]\n });\n\n if (title) {\n val.push({\n tag: 'span',\n attributes: {\n class: 'sr-only'\n },\n children: [title]\n });\n }\n\n return val;\n}\nfunction makeLayersCounterAbstract(params) {\n var content = params.content,\n title = params.title,\n extra = params.extra;\n\n var attributes = _objectSpread2(_objectSpread2(_objectSpread2({}, extra.attributes), title ? {\n 'title': title\n } : {}), {}, {\n 'class': extra.classes.join(' ')\n });\n\n var styleString = joinStyles(extra.styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n var val = [];\n val.push({\n tag: 'span',\n attributes: attributes,\n children: [content]\n });\n\n if (title) {\n val.push({\n tag: 'span',\n attributes: {\n class: 'sr-only'\n },\n children: [title]\n });\n }\n\n return val;\n}\n\nvar styles$1 = namespace.styles;\nfunction asFoundIcon(icon) {\n var width = icon[0];\n var height = icon[1];\n\n var _icon$slice = icon.slice(4),\n _icon$slice2 = _slicedToArray(_icon$slice, 1),\n vectorData = _icon$slice2[0];\n\n var element = null;\n\n if (Array.isArray(vectorData)) {\n element = {\n tag: 'g',\n attributes: {\n class: \"\".concat(config.familyPrefix, \"-\").concat(DUOTONE_CLASSES.GROUP)\n },\n children: [{\n tag: 'path',\n attributes: {\n class: \"\".concat(config.familyPrefix, \"-\").concat(DUOTONE_CLASSES.SECONDARY),\n fill: 'currentColor',\n d: vectorData[0]\n }\n }, {\n tag: 'path',\n attributes: {\n class: \"\".concat(config.familyPrefix, \"-\").concat(DUOTONE_CLASSES.PRIMARY),\n fill: 'currentColor',\n d: vectorData[1]\n }\n }]\n };\n } else {\n element = {\n tag: 'path',\n attributes: {\n fill: 'currentColor',\n d: vectorData\n }\n };\n }\n\n return {\n found: true,\n width: width,\n height: height,\n icon: element\n };\n}\nvar missingIconResolutionMixin = {\n found: false,\n width: 512,\n height: 512\n};\n\nfunction maybeNotifyMissing(iconName, prefix) {\n if (!PRODUCTION && !config.showMissingIcons && iconName) {\n console.error(\"Icon with name \\\"\".concat(iconName, \"\\\" and prefix \\\"\").concat(prefix, \"\\\" is missing.\"));\n }\n}\n\nfunction findIcon(iconName, prefix) {\n var givenPrefix = prefix;\n\n if (prefix === 'fa' && config.styleDefault !== null) {\n prefix = getDefaultUsablePrefix();\n }\n\n return new Promise(function (resolve, reject) {\n var val = {\n found: false,\n width: 512,\n height: 512,\n icon: callProvided('missingIconAbstract') || {}\n };\n\n if (givenPrefix === 'fa') {\n var shim = byOldName(iconName) || {};\n iconName = shim.iconName || iconName;\n prefix = shim.prefix || prefix;\n }\n\n if (iconName && prefix && styles$1[prefix] && styles$1[prefix][iconName]) {\n var icon = styles$1[prefix][iconName];\n return resolve(asFoundIcon(icon));\n }\n\n maybeNotifyMissing(iconName, prefix);\n resolve(_objectSpread2(_objectSpread2({}, missingIconResolutionMixin), {}, {\n icon: config.showMissingIcons && iconName ? callProvided('missingIconAbstract') || {} : {}\n }));\n });\n}\n\nvar noop$1 = function noop() {};\n\nvar p = config.measurePerformance && PERFORMANCE && PERFORMANCE.mark && PERFORMANCE.measure ? PERFORMANCE : {\n mark: noop$1,\n measure: noop$1\n};\nvar preamble = \"FA \\\"6.0.0\\\"\";\n\nvar begin = function begin(name) {\n p.mark(\"\".concat(preamble, \" \").concat(name, \" begins\"));\n return function () {\n return end(name);\n };\n};\n\nvar end = function end(name) {\n p.mark(\"\".concat(preamble, \" \").concat(name, \" ends\"));\n p.measure(\"\".concat(preamble, \" \").concat(name), \"\".concat(preamble, \" \").concat(name, \" begins\"), \"\".concat(preamble, \" \").concat(name, \" ends\"));\n};\n\nvar perf = {\n begin: begin,\n end: end\n};\n\nvar noop$2 = function noop() {};\n\nfunction isWatched(node) {\n var i2svg = node.getAttribute ? node.getAttribute(DATA_FA_I2SVG) : null;\n return typeof i2svg === 'string';\n}\n\nfunction hasPrefixAndIcon(node) {\n var prefix = node.getAttribute ? node.getAttribute(DATA_PREFIX) : null;\n var icon = node.getAttribute ? node.getAttribute(DATA_ICON) : null;\n return prefix && icon;\n}\n\nfunction hasBeenReplaced(node) {\n return node && node.classList && node.classList.contains && node.classList.contains(config.replacementClass);\n}\n\nfunction getMutator() {\n if (config.autoReplaceSvg === true) {\n return mutators.replace;\n }\n\n var mutator = mutators[config.autoReplaceSvg];\n return mutator || mutators.replace;\n}\n\nfunction createElementNS(tag) {\n return DOCUMENT.createElementNS('http://www.w3.org/2000/svg', tag);\n}\n\nfunction createElement(tag) {\n return DOCUMENT.createElement(tag);\n}\n\nfunction convertSVG(abstractObj) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$ceFn = params.ceFn,\n ceFn = _params$ceFn === void 0 ? abstractObj.tag === 'svg' ? createElementNS : createElement : _params$ceFn;\n\n if (typeof abstractObj === 'string') {\n return DOCUMENT.createTextNode(abstractObj);\n }\n\n var tag = ceFn(abstractObj.tag);\n Object.keys(abstractObj.attributes || []).forEach(function (key) {\n tag.setAttribute(key, abstractObj.attributes[key]);\n });\n var children = abstractObj.children || [];\n children.forEach(function (child) {\n tag.appendChild(convertSVG(child, {\n ceFn: ceFn\n }));\n });\n return tag;\n}\n\nfunction nodeAsComment(node) {\n var comment = \" \".concat(node.outerHTML, \" \");\n /* BEGIN.ATTRIBUTION */\n\n comment = \"\".concat(comment, \"Font Awesome fontawesome.com \");\n /* END.ATTRIBUTION */\n\n return comment;\n}\n\nvar mutators = {\n replace: function replace(mutation) {\n var node = mutation[0];\n\n if (node.parentNode) {\n mutation[1].forEach(function (abstract) {\n node.parentNode.insertBefore(convertSVG(abstract), node);\n });\n\n if (node.getAttribute(DATA_FA_I2SVG) === null && config.keepOriginalSource) {\n var comment = DOCUMENT.createComment(nodeAsComment(node));\n node.parentNode.replaceChild(comment, node);\n } else {\n node.remove();\n }\n }\n },\n nest: function nest(mutation) {\n var node = mutation[0];\n var abstract = mutation[1]; // If we already have a replaced node we do not want to continue nesting within it.\n // Short-circuit to the standard replacement\n\n if (~classArray(node).indexOf(config.replacementClass)) {\n return mutators.replace(mutation);\n }\n\n var forSvg = new RegExp(\"\".concat(config.familyPrefix, \"-.*\"));\n delete abstract[0].attributes.id;\n\n if (abstract[0].attributes.class) {\n var splitClasses = abstract[0].attributes.class.split(' ').reduce(function (acc, cls) {\n if (cls === config.replacementClass || cls.match(forSvg)) {\n acc.toSvg.push(cls);\n } else {\n acc.toNode.push(cls);\n }\n\n return acc;\n }, {\n toNode: [],\n toSvg: []\n });\n abstract[0].attributes.class = splitClasses.toSvg.join(' ');\n\n if (splitClasses.toNode.length === 0) {\n node.removeAttribute('class');\n } else {\n node.setAttribute('class', splitClasses.toNode.join(' '));\n }\n }\n\n var newInnerHTML = abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n node.setAttribute(DATA_FA_I2SVG, '');\n node.innerHTML = newInnerHTML;\n }\n};\n\nfunction performOperationSync(op) {\n op();\n}\n\nfunction perform(mutations, callback) {\n var callbackFunction = typeof callback === 'function' ? callback : noop$2;\n\n if (mutations.length === 0) {\n callbackFunction();\n } else {\n var frame = performOperationSync;\n\n if (config.mutateApproach === MUTATION_APPROACH_ASYNC) {\n frame = WINDOW.requestAnimationFrame || performOperationSync;\n }\n\n frame(function () {\n var mutator = getMutator();\n var mark = perf.begin('mutate');\n mutations.map(mutator);\n mark();\n callbackFunction();\n });\n }\n}\nvar disabled = false;\nfunction disableObservation() {\n disabled = true;\n}\nfunction enableObservation() {\n disabled = false;\n}\nvar mo = null;\nfunction observe(options) {\n if (!MUTATION_OBSERVER) {\n return;\n }\n\n if (!config.observeMutations) {\n return;\n }\n\n var _options$treeCallback = options.treeCallback,\n treeCallback = _options$treeCallback === void 0 ? noop$2 : _options$treeCallback,\n _options$nodeCallback = options.nodeCallback,\n nodeCallback = _options$nodeCallback === void 0 ? noop$2 : _options$nodeCallback,\n _options$pseudoElemen = options.pseudoElementsCallback,\n pseudoElementsCallback = _options$pseudoElemen === void 0 ? noop$2 : _options$pseudoElemen,\n _options$observeMutat = options.observeMutationsRoot,\n observeMutationsRoot = _options$observeMutat === void 0 ? DOCUMENT : _options$observeMutat;\n mo = new MUTATION_OBSERVER(function (objects) {\n if (disabled) return;\n var defaultPrefix = getDefaultUsablePrefix();\n toArray(objects).forEach(function (mutationRecord) {\n if (mutationRecord.type === 'childList' && mutationRecord.addedNodes.length > 0 && !isWatched(mutationRecord.addedNodes[0])) {\n if (config.searchPseudoElements) {\n pseudoElementsCallback(mutationRecord.target);\n }\n\n treeCallback(mutationRecord.target);\n }\n\n if (mutationRecord.type === 'attributes' && mutationRecord.target.parentNode && config.searchPseudoElements) {\n pseudoElementsCallback(mutationRecord.target.parentNode);\n }\n\n if (mutationRecord.type === 'attributes' && isWatched(mutationRecord.target) && ~ATTRIBUTES_WATCHED_FOR_MUTATION.indexOf(mutationRecord.attributeName)) {\n if (mutationRecord.attributeName === 'class' && hasPrefixAndIcon(mutationRecord.target)) {\n var _getCanonicalIcon = getCanonicalIcon(classArray(mutationRecord.target)),\n prefix = _getCanonicalIcon.prefix,\n iconName = _getCanonicalIcon.iconName;\n\n mutationRecord.target.setAttribute(DATA_PREFIX, prefix || defaultPrefix);\n if (iconName) mutationRecord.target.setAttribute(DATA_ICON, iconName);\n } else if (hasBeenReplaced(mutationRecord.target)) {\n nodeCallback(mutationRecord.target);\n }\n }\n });\n });\n if (!IS_DOM) return;\n mo.observe(observeMutationsRoot, {\n childList: true,\n attributes: true,\n characterData: true,\n subtree: true\n });\n}\nfunction disconnect() {\n if (!mo) return;\n mo.disconnect();\n}\n\nfunction styleParser (node) {\n var style = node.getAttribute('style');\n var val = [];\n\n if (style) {\n val = style.split(';').reduce(function (acc, style) {\n var styles = style.split(':');\n var prop = styles[0];\n var value = styles.slice(1);\n\n if (prop && value.length > 0) {\n acc[prop] = value.join(':').trim();\n }\n\n return acc;\n }, {});\n }\n\n return val;\n}\n\nfunction classParser (node) {\n var existingPrefix = node.getAttribute('data-prefix');\n var existingIconName = node.getAttribute('data-icon');\n var innerText = node.innerText !== undefined ? node.innerText.trim() : '';\n var val = getCanonicalIcon(classArray(node));\n\n if (!val.prefix) {\n val.prefix = getDefaultUsablePrefix();\n }\n\n if (existingPrefix && existingIconName) {\n val.prefix = existingPrefix;\n val.iconName = existingIconName;\n }\n\n if (val.iconName && val.prefix) {\n return val;\n }\n\n if (val.prefix && innerText.length > 0) {\n val.iconName = byLigature(val.prefix, node.innerText) || byUnicode(val.prefix, toHex(node.innerText));\n }\n\n return val;\n}\n\nfunction attributesParser (node) {\n var extraAttributes = toArray(node.attributes).reduce(function (acc, attr) {\n if (acc.name !== 'class' && acc.name !== 'style') {\n acc[attr.name] = attr.value;\n }\n\n return acc;\n }, {});\n var title = node.getAttribute('title');\n var titleId = node.getAttribute('data-fa-title-id');\n\n if (config.autoA11y) {\n if (title) {\n extraAttributes['aria-labelledby'] = \"\".concat(config.replacementClass, \"-title-\").concat(titleId || nextUniqueId());\n } else {\n extraAttributes['aria-hidden'] = 'true';\n extraAttributes['focusable'] = 'false';\n }\n }\n\n return extraAttributes;\n}\n\nfunction blankMeta() {\n return {\n iconName: null,\n title: null,\n titleId: null,\n prefix: null,\n transform: meaninglessTransform,\n symbol: false,\n mask: {\n iconName: null,\n prefix: null,\n rest: []\n },\n maskId: null,\n extra: {\n classes: [],\n styles: {},\n attributes: {}\n }\n };\n}\nfunction parseMeta(node) {\n var parser = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n styleParser: true\n };\n\n var _classParser = classParser(node),\n iconName = _classParser.iconName,\n prefix = _classParser.prefix,\n extraClasses = _classParser.rest;\n\n var extraAttributes = attributesParser(node);\n var pluginMeta = chainHooks('parseNodeAttributes', {}, node);\n var extraStyles = parser.styleParser ? styleParser(node) : [];\n return _objectSpread2({\n iconName: iconName,\n title: node.getAttribute('title'),\n titleId: node.getAttribute('data-fa-title-id'),\n prefix: prefix,\n transform: meaninglessTransform,\n mask: {\n iconName: null,\n prefix: null,\n rest: []\n },\n maskId: null,\n symbol: false,\n extra: {\n classes: extraClasses,\n styles: extraStyles,\n attributes: extraAttributes\n }\n }, pluginMeta);\n}\n\nvar styles$2 = namespace.styles;\n\nfunction generateMutation(node) {\n var nodeMeta = config.autoReplaceSvg === 'nest' ? parseMeta(node, {\n styleParser: false\n }) : parseMeta(node);\n\n if (~nodeMeta.extra.classes.indexOf(LAYERS_TEXT_CLASSNAME)) {\n return callProvided('generateLayersText', node, nodeMeta);\n } else {\n return callProvided('generateSvgReplacementMutation', node, nodeMeta);\n }\n}\n\nfunction onTree(root) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n if (!IS_DOM) return Promise.resolve();\n var htmlClassList = DOCUMENT.documentElement.classList;\n\n var hclAdd = function hclAdd(suffix) {\n return htmlClassList.add(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n };\n\n var hclRemove = function hclRemove(suffix) {\n return htmlClassList.remove(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n };\n\n var prefixes = config.autoFetchSvg ? Object.keys(PREFIX_TO_STYLE) : Object.keys(styles$2);\n var prefixesDomQuery = [\".\".concat(LAYERS_TEXT_CLASSNAME, \":not([\").concat(DATA_FA_I2SVG, \"])\")].concat(prefixes.map(function (p) {\n return \".\".concat(p, \":not([\").concat(DATA_FA_I2SVG, \"])\");\n })).join(', ');\n\n if (prefixesDomQuery.length === 0) {\n return Promise.resolve();\n }\n\n var candidates = [];\n\n try {\n candidates = toArray(root.querySelectorAll(prefixesDomQuery));\n } catch (e) {// noop\n }\n\n if (candidates.length > 0) {\n hclAdd('pending');\n hclRemove('complete');\n } else {\n return Promise.resolve();\n }\n\n var mark = perf.begin('onTree');\n var mutations = candidates.reduce(function (acc, node) {\n try {\n var mutation = generateMutation(node);\n\n if (mutation) {\n acc.push(mutation);\n }\n } catch (e) {\n if (!PRODUCTION) {\n if (e.name === 'MissingIcon') {\n console.error(e);\n }\n }\n }\n\n return acc;\n }, []);\n return new Promise(function (resolve, reject) {\n Promise.all(mutations).then(function (resolvedMutations) {\n perform(resolvedMutations, function () {\n hclAdd('active');\n hclAdd('complete');\n hclRemove('pending');\n if (typeof callback === 'function') callback();\n mark();\n resolve();\n });\n }).catch(function (e) {\n mark();\n reject(e);\n });\n });\n}\n\nfunction onNode(node) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n generateMutation(node).then(function (mutation) {\n if (mutation) {\n perform([mutation], callback);\n }\n });\n}\n\nfunction resolveIcons(next) {\n return function (maybeIconDefinition) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var iconDefinition = (maybeIconDefinition || {}).icon ? maybeIconDefinition : findIconDefinition(maybeIconDefinition || {});\n var mask = params.mask;\n\n if (mask) {\n mask = (mask || {}).icon ? mask : findIconDefinition(mask || {});\n }\n\n return next(iconDefinition, _objectSpread2(_objectSpread2({}, params), {}, {\n mask: mask\n }));\n };\n}\n\nvar render = function render(iconDefinition) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$transform = params.transform,\n transform = _params$transform === void 0 ? meaninglessTransform : _params$transform,\n _params$symbol = params.symbol,\n symbol = _params$symbol === void 0 ? false : _params$symbol,\n _params$mask = params.mask,\n mask = _params$mask === void 0 ? null : _params$mask,\n _params$maskId = params.maskId,\n maskId = _params$maskId === void 0 ? null : _params$maskId,\n _params$title = params.title,\n title = _params$title === void 0 ? null : _params$title,\n _params$titleId = params.titleId,\n titleId = _params$titleId === void 0 ? null : _params$titleId,\n _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes,\n _params$attributes = params.attributes,\n attributes = _params$attributes === void 0 ? {} : _params$attributes,\n _params$styles = params.styles,\n styles = _params$styles === void 0 ? {} : _params$styles;\n if (!iconDefinition) return;\n var prefix = iconDefinition.prefix,\n iconName = iconDefinition.iconName,\n icon = iconDefinition.icon;\n return domVariants(_objectSpread2({\n type: 'icon'\n }, iconDefinition), function () {\n callHooks('beforeDOMElementCreation', {\n iconDefinition: iconDefinition,\n params: params\n });\n\n if (config.autoA11y) {\n if (title) {\n attributes['aria-labelledby'] = \"\".concat(config.replacementClass, \"-title-\").concat(titleId || nextUniqueId());\n } else {\n attributes['aria-hidden'] = 'true';\n attributes['focusable'] = 'false';\n }\n }\n\n return makeInlineSvgAbstract({\n icons: {\n main: asFoundIcon(icon),\n mask: mask ? asFoundIcon(mask.icon) : {\n found: false,\n width: null,\n height: null,\n icon: {}\n }\n },\n prefix: prefix,\n iconName: iconName,\n transform: _objectSpread2(_objectSpread2({}, meaninglessTransform), transform),\n symbol: symbol,\n title: title,\n maskId: maskId,\n titleId: titleId,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: classes\n }\n });\n });\n};\nvar ReplaceElements = {\n mixout: function mixout() {\n return {\n icon: resolveIcons(render)\n };\n },\n hooks: function hooks() {\n return {\n mutationObserverCallbacks: function mutationObserverCallbacks(accumulator) {\n accumulator.treeCallback = onTree;\n accumulator.nodeCallback = onNode;\n return accumulator;\n }\n };\n },\n provides: function provides(providers$$1) {\n providers$$1.i2svg = function (params) {\n var _params$node = params.node,\n node = _params$node === void 0 ? DOCUMENT : _params$node,\n _params$callback = params.callback,\n callback = _params$callback === void 0 ? function () {} : _params$callback;\n return onTree(node, callback);\n };\n\n providers$$1.generateSvgReplacementMutation = function (node, nodeMeta) {\n var iconName = nodeMeta.iconName,\n title = nodeMeta.title,\n titleId = nodeMeta.titleId,\n prefix = nodeMeta.prefix,\n transform = nodeMeta.transform,\n symbol = nodeMeta.symbol,\n mask = nodeMeta.mask,\n maskId = nodeMeta.maskId,\n extra = nodeMeta.extra;\n return new Promise(function (resolve, reject) {\n Promise.all([findIcon(iconName, prefix), mask.iconName ? findIcon(mask.iconName, mask.prefix) : Promise.resolve({\n found: false,\n width: 512,\n height: 512,\n icon: {}\n })]).then(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n main = _ref2[0],\n mask = _ref2[1];\n\n resolve([node, makeInlineSvgAbstract({\n icons: {\n main: main,\n mask: mask\n },\n prefix: prefix,\n iconName: iconName,\n transform: transform,\n symbol: symbol,\n maskId: maskId,\n title: title,\n titleId: titleId,\n extra: extra,\n watchable: true\n })]);\n }).catch(reject);\n });\n };\n\n providers$$1.generateAbstractIcon = function (_ref3) {\n var children = _ref3.children,\n attributes = _ref3.attributes,\n main = _ref3.main,\n transform = _ref3.transform,\n styles = _ref3.styles;\n var styleString = joinStyles(styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n var nextChild;\n\n if (transformIsMeaningful(transform)) {\n nextChild = callProvided('generateAbstractTransformGrouping', {\n main: main,\n transform: transform,\n containerWidth: main.width,\n iconWidth: main.width\n });\n }\n\n children.push(nextChild || main.icon);\n return {\n children: children,\n attributes: attributes\n };\n };\n }\n};\n\nvar Layers = {\n mixout: function mixout() {\n return {\n layer: function layer(assembler) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes;\n return domVariants({\n type: 'layer'\n }, function () {\n callHooks('beforeDOMElementCreation', {\n assembler: assembler,\n params: params\n });\n var children = [];\n assembler(function (args) {\n Array.isArray(args) ? args.map(function (a) {\n children = children.concat(a.abstract);\n }) : children = children.concat(args.abstract);\n });\n return [{\n tag: 'span',\n attributes: {\n class: [\"\".concat(config.familyPrefix, \"-layers\")].concat(_toConsumableArray(classes)).join(' ')\n },\n children: children\n }];\n });\n }\n };\n }\n};\n\nvar LayersCounter = {\n mixout: function mixout() {\n return {\n counter: function counter(content) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$title = params.title,\n title = _params$title === void 0 ? null : _params$title,\n _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes,\n _params$attributes = params.attributes,\n attributes = _params$attributes === void 0 ? {} : _params$attributes,\n _params$styles = params.styles,\n styles = _params$styles === void 0 ? {} : _params$styles;\n return domVariants({\n type: 'counter',\n content: content\n }, function () {\n callHooks('beforeDOMElementCreation', {\n content: content,\n params: params\n });\n return makeLayersCounterAbstract({\n content: content.toString(),\n title: title,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: [\"\".concat(config.familyPrefix, \"-layers-counter\")].concat(_toConsumableArray(classes))\n }\n });\n });\n }\n };\n }\n};\n\nvar LayersText = {\n mixout: function mixout() {\n return {\n text: function text(content) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$transform = params.transform,\n transform = _params$transform === void 0 ? meaninglessTransform : _params$transform,\n _params$title = params.title,\n title = _params$title === void 0 ? null : _params$title,\n _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes,\n _params$attributes = params.attributes,\n attributes = _params$attributes === void 0 ? {} : _params$attributes,\n _params$styles = params.styles,\n styles = _params$styles === void 0 ? {} : _params$styles;\n return domVariants({\n type: 'text',\n content: content\n }, function () {\n callHooks('beforeDOMElementCreation', {\n content: content,\n params: params\n });\n return makeLayersTextAbstract({\n content: content,\n transform: _objectSpread2(_objectSpread2({}, meaninglessTransform), transform),\n title: title,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: [\"\".concat(config.familyPrefix, \"-layers-text\")].concat(_toConsumableArray(classes))\n }\n });\n });\n }\n };\n },\n provides: function provides(providers$$1) {\n providers$$1.generateLayersText = function (node, nodeMeta) {\n var title = nodeMeta.title,\n transform = nodeMeta.transform,\n extra = nodeMeta.extra;\n var width = null;\n var height = null;\n\n if (IS_IE) {\n var computedFontSize = parseInt(getComputedStyle(node).fontSize, 10);\n var boundingClientRect = node.getBoundingClientRect();\n width = boundingClientRect.width / computedFontSize;\n height = boundingClientRect.height / computedFontSize;\n }\n\n if (config.autoA11y && !title) {\n extra.attributes['aria-hidden'] = 'true';\n }\n\n return Promise.resolve([node, makeLayersTextAbstract({\n content: node.innerHTML,\n width: width,\n height: height,\n transform: transform,\n title: title,\n extra: extra,\n watchable: true\n })]);\n };\n }\n};\n\nvar CLEAN_CONTENT_PATTERN = new RegExp(\"\\\"\", 'ug');\nvar SECONDARY_UNICODE_RANGE = [1105920, 1112319];\nfunction hexValueFromContent(content) {\n var cleaned = content.replace(CLEAN_CONTENT_PATTERN, '');\n var codePoint = codePointAt(cleaned, 0);\n var isPrependTen = codePoint >= SECONDARY_UNICODE_RANGE[0] && codePoint <= SECONDARY_UNICODE_RANGE[1];\n var isDoubled = cleaned.length === 2 ? cleaned[0] === cleaned[1] : false;\n return {\n value: isDoubled ? toHex(cleaned[0]) : toHex(cleaned),\n isSecondary: isPrependTen || isDoubled\n };\n}\n\nfunction replaceForPosition(node, position) {\n var pendingAttribute = \"\".concat(DATA_FA_PSEUDO_ELEMENT_PENDING).concat(position.replace(':', '-'));\n return new Promise(function (resolve, reject) {\n if (node.getAttribute(pendingAttribute) !== null) {\n // This node is already being processed\n return resolve();\n }\n\n var children = toArray(node.children);\n var alreadyProcessedPseudoElement = children.filter(function (c) {\n return c.getAttribute(DATA_FA_PSEUDO_ELEMENT) === position;\n })[0];\n var styles = WINDOW.getComputedStyle(node, position);\n var fontFamily = styles.getPropertyValue('font-family').match(FONT_FAMILY_PATTERN);\n var fontWeight = styles.getPropertyValue('font-weight');\n var content = styles.getPropertyValue('content');\n\n if (alreadyProcessedPseudoElement && !fontFamily) {\n // If we've already processed it but the current computed style does not result in a font-family,\n // that probably means that a class name that was previously present to make the icon has been\n // removed. So we now should delete the icon.\n node.removeChild(alreadyProcessedPseudoElement);\n return resolve();\n } else if (fontFamily && content !== 'none' && content !== '') {\n var _content = styles.getPropertyValue('content');\n\n var prefix = ~['Solid', 'Regular', 'Light', 'Thin', 'Duotone', 'Brands', 'Kit'].indexOf(fontFamily[2]) ? STYLE_TO_PREFIX[fontFamily[2].toLowerCase()] : FONT_WEIGHT_TO_PREFIX[fontWeight];\n\n var _hexValueFromContent = hexValueFromContent(_content),\n hexValue = _hexValueFromContent.value,\n isSecondary = _hexValueFromContent.isSecondary;\n\n var isV4 = fontFamily[0].startsWith('FontAwesome');\n var iconName = byUnicode(prefix, hexValue);\n var iconIdentifier = iconName;\n\n if (isV4) {\n var iconName4 = byOldUnicode(hexValue);\n\n if (iconName4.iconName && iconName4.prefix) {\n iconName = iconName4.iconName;\n prefix = iconName4.prefix;\n }\n } // Only convert the pseudo element in this ::before/::after position into an icon if we haven't\n // already done so with the same prefix and iconName\n\n\n if (iconName && !isSecondary && (!alreadyProcessedPseudoElement || alreadyProcessedPseudoElement.getAttribute(DATA_PREFIX) !== prefix || alreadyProcessedPseudoElement.getAttribute(DATA_ICON) !== iconIdentifier)) {\n node.setAttribute(pendingAttribute, iconIdentifier);\n\n if (alreadyProcessedPseudoElement) {\n // Delete the old one, since we're replacing it with a new one\n node.removeChild(alreadyProcessedPseudoElement);\n }\n\n var meta = blankMeta();\n var extra = meta.extra;\n extra.attributes[DATA_FA_PSEUDO_ELEMENT] = position;\n findIcon(iconName, prefix).then(function (main) {\n var abstract = makeInlineSvgAbstract(_objectSpread2(_objectSpread2({}, meta), {}, {\n icons: {\n main: main,\n mask: emptyCanonicalIcon()\n },\n prefix: prefix,\n iconName: iconIdentifier,\n extra: extra,\n watchable: true\n }));\n var element = DOCUMENT.createElement('svg');\n\n if (position === '::before') {\n node.insertBefore(element, node.firstChild);\n } else {\n node.appendChild(element);\n }\n\n element.outerHTML = abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n node.removeAttribute(pendingAttribute);\n resolve();\n }).catch(reject);\n } else {\n resolve();\n }\n } else {\n resolve();\n }\n });\n}\n\nfunction replace(node) {\n return Promise.all([replaceForPosition(node, '::before'), replaceForPosition(node, '::after')]);\n}\n\nfunction processable(node) {\n return node.parentNode !== document.head && !~TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS.indexOf(node.tagName.toUpperCase()) && !node.getAttribute(DATA_FA_PSEUDO_ELEMENT) && (!node.parentNode || node.parentNode.tagName !== 'svg');\n}\n\nfunction searchPseudoElements(root) {\n if (!IS_DOM) return;\n return new Promise(function (resolve, reject) {\n var operations = toArray(root.querySelectorAll('*')).filter(processable).map(replace);\n var end = perf.begin('searchPseudoElements');\n disableObservation();\n Promise.all(operations).then(function () {\n end();\n enableObservation();\n resolve();\n }).catch(function () {\n end();\n enableObservation();\n reject();\n });\n });\n}\n\nvar PseudoElements = {\n hooks: function hooks() {\n return {\n mutationObserverCallbacks: function mutationObserverCallbacks(accumulator) {\n accumulator.pseudoElementsCallback = searchPseudoElements;\n return accumulator;\n }\n };\n },\n provides: function provides(providers$$1) {\n providers$$1.pseudoElements2svg = function (params) {\n var _params$node = params.node,\n node = _params$node === void 0 ? DOCUMENT : _params$node;\n\n if (config.searchPseudoElements) {\n searchPseudoElements(node);\n }\n };\n }\n};\n\nvar _unwatched = false;\nvar MutationObserver$1 = {\n mixout: function mixout() {\n return {\n dom: {\n unwatch: function unwatch() {\n disableObservation();\n _unwatched = true;\n }\n }\n };\n },\n hooks: function hooks() {\n return {\n bootstrap: function bootstrap() {\n observe(chainHooks('mutationObserverCallbacks', {}));\n },\n noAuto: function noAuto() {\n disconnect();\n },\n watch: function watch(params) {\n var observeMutationsRoot = params.observeMutationsRoot;\n\n if (_unwatched) {\n enableObservation();\n } else {\n observe(chainHooks('mutationObserverCallbacks', {\n observeMutationsRoot: observeMutationsRoot\n }));\n }\n }\n };\n }\n};\n\nvar parseTransformString = function parseTransformString(transformString) {\n var transform = {\n size: 16,\n x: 0,\n y: 0,\n flipX: false,\n flipY: false,\n rotate: 0\n };\n return transformString.toLowerCase().split(' ').reduce(function (acc, n) {\n var parts = n.toLowerCase().split('-');\n var first = parts[0];\n var rest = parts.slice(1).join('-');\n\n if (first && rest === 'h') {\n acc.flipX = true;\n return acc;\n }\n\n if (first && rest === 'v') {\n acc.flipY = true;\n return acc;\n }\n\n rest = parseFloat(rest);\n\n if (isNaN(rest)) {\n return acc;\n }\n\n switch (first) {\n case 'grow':\n acc.size = acc.size + rest;\n break;\n\n case 'shrink':\n acc.size = acc.size - rest;\n break;\n\n case 'left':\n acc.x = acc.x - rest;\n break;\n\n case 'right':\n acc.x = acc.x + rest;\n break;\n\n case 'up':\n acc.y = acc.y - rest;\n break;\n\n case 'down':\n acc.y = acc.y + rest;\n break;\n\n case 'rotate':\n acc.rotate = acc.rotate + rest;\n break;\n }\n\n return acc;\n }, transform);\n};\nvar PowerTransforms = {\n mixout: function mixout() {\n return {\n parse: {\n transform: function transform(transformString) {\n return parseTransformString(transformString);\n }\n }\n };\n },\n hooks: function hooks() {\n return {\n parseNodeAttributes: function parseNodeAttributes(accumulator, node) {\n var transformString = node.getAttribute('data-fa-transform');\n\n if (transformString) {\n accumulator.transform = parseTransformString(transformString);\n }\n\n return accumulator;\n }\n };\n },\n provides: function provides(providers) {\n providers.generateAbstractTransformGrouping = function (_ref) {\n var main = _ref.main,\n transform = _ref.transform,\n containerWidth = _ref.containerWidth,\n iconWidth = _ref.iconWidth;\n var outer = {\n transform: \"translate(\".concat(containerWidth / 2, \" 256)\")\n };\n var innerTranslate = \"translate(\".concat(transform.x * 32, \", \").concat(transform.y * 32, \") \");\n var innerScale = \"scale(\".concat(transform.size / 16 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / 16 * (transform.flipY ? -1 : 1), \") \");\n var innerRotate = \"rotate(\".concat(transform.rotate, \" 0 0)\");\n var inner = {\n transform: \"\".concat(innerTranslate, \" \").concat(innerScale, \" \").concat(innerRotate)\n };\n var path = {\n transform: \"translate(\".concat(iconWidth / 2 * -1, \" -256)\")\n };\n var operations = {\n outer: outer,\n inner: inner,\n path: path\n };\n return {\n tag: 'g',\n attributes: _objectSpread2({}, operations.outer),\n children: [{\n tag: 'g',\n attributes: _objectSpread2({}, operations.inner),\n children: [{\n tag: main.icon.tag,\n children: main.icon.children,\n attributes: _objectSpread2(_objectSpread2({}, main.icon.attributes), operations.path)\n }]\n }]\n };\n };\n }\n};\n\nvar ALL_SPACE = {\n x: 0,\n y: 0,\n width: '100%',\n height: '100%'\n};\n\nfunction fillBlack(abstract) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (abstract.attributes && (abstract.attributes.fill || force)) {\n abstract.attributes.fill = 'black';\n }\n\n return abstract;\n}\n\nfunction deGroup(abstract) {\n if (abstract.tag === 'g') {\n return abstract.children;\n } else {\n return [abstract];\n }\n}\n\nvar Masks = {\n hooks: function hooks() {\n return {\n parseNodeAttributes: function parseNodeAttributes(accumulator, node) {\n var maskData = node.getAttribute('data-fa-mask');\n var mask = !maskData ? emptyCanonicalIcon() : getCanonicalIcon(maskData.split(' ').map(function (i) {\n return i.trim();\n }));\n\n if (!mask.prefix) {\n mask.prefix = getDefaultUsablePrefix();\n }\n\n accumulator.mask = mask;\n accumulator.maskId = node.getAttribute('data-fa-mask-id');\n return accumulator;\n }\n };\n },\n provides: function provides(providers) {\n providers.generateAbstractMask = function (_ref) {\n var children = _ref.children,\n attributes = _ref.attributes,\n main = _ref.main,\n mask = _ref.mask,\n explicitMaskId = _ref.maskId,\n transform = _ref.transform;\n var mainWidth = main.width,\n mainPath = main.icon;\n var maskWidth = mask.width,\n maskPath = mask.icon;\n var trans = transformForSvg({\n transform: transform,\n containerWidth: maskWidth,\n iconWidth: mainWidth\n });\n var maskRect = {\n tag: 'rect',\n attributes: _objectSpread2(_objectSpread2({}, ALL_SPACE), {}, {\n fill: 'white'\n })\n };\n var maskInnerGroupChildrenMixin = mainPath.children ? {\n children: mainPath.children.map(fillBlack)\n } : {};\n var maskInnerGroup = {\n tag: 'g',\n attributes: _objectSpread2({}, trans.inner),\n children: [fillBlack(_objectSpread2({\n tag: mainPath.tag,\n attributes: _objectSpread2(_objectSpread2({}, mainPath.attributes), trans.path)\n }, maskInnerGroupChildrenMixin))]\n };\n var maskOuterGroup = {\n tag: 'g',\n attributes: _objectSpread2({}, trans.outer),\n children: [maskInnerGroup]\n };\n var maskId = \"mask-\".concat(explicitMaskId || nextUniqueId());\n var clipId = \"clip-\".concat(explicitMaskId || nextUniqueId());\n var maskTag = {\n tag: 'mask',\n attributes: _objectSpread2(_objectSpread2({}, ALL_SPACE), {}, {\n id: maskId,\n maskUnits: 'userSpaceOnUse',\n maskContentUnits: 'userSpaceOnUse'\n }),\n children: [maskRect, maskOuterGroup]\n };\n var defs = {\n tag: 'defs',\n children: [{\n tag: 'clipPath',\n attributes: {\n id: clipId\n },\n children: deGroup(maskPath)\n }, maskTag]\n };\n children.push(defs, {\n tag: 'rect',\n attributes: _objectSpread2({\n fill: 'currentColor',\n 'clip-path': \"url(#\".concat(clipId, \")\"),\n mask: \"url(#\".concat(maskId, \")\")\n }, ALL_SPACE)\n });\n return {\n children: children,\n attributes: attributes\n };\n };\n }\n};\n\nvar MissingIconIndicator = {\n provides: function provides(providers) {\n var reduceMotion = false;\n\n if (WINDOW.matchMedia) {\n reduceMotion = WINDOW.matchMedia('(prefers-reduced-motion: reduce)').matches;\n }\n\n providers.missingIconAbstract = function () {\n var gChildren = [];\n var FILL = {\n fill: 'currentColor'\n };\n var ANIMATION_BASE = {\n attributeType: 'XML',\n repeatCount: 'indefinite',\n dur: '2s'\n }; // Ring\n\n gChildren.push({\n tag: 'path',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n d: 'M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z'\n })\n });\n\n var OPACITY_ANIMATE = _objectSpread2(_objectSpread2({}, ANIMATION_BASE), {}, {\n attributeName: 'opacity'\n });\n\n var dot = {\n tag: 'circle',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n cx: '256',\n cy: '364',\n r: '28'\n }),\n children: []\n };\n\n if (!reduceMotion) {\n dot.children.push({\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, ANIMATION_BASE), {}, {\n attributeName: 'r',\n values: '28;14;28;28;14;28;'\n })\n }, {\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, {\n values: '1;0;1;1;0;1;'\n })\n });\n }\n\n gChildren.push(dot);\n gChildren.push({\n tag: 'path',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n opacity: '1',\n d: 'M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z'\n }),\n children: reduceMotion ? [] : [{\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, {\n values: '1;0;0;0;0;1;'\n })\n }]\n });\n\n if (!reduceMotion) {\n // Exclamation\n gChildren.push({\n tag: 'path',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n opacity: '0',\n d: 'M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z'\n }),\n children: [{\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, {\n values: '0;0;1;1;0;0;'\n })\n }]\n });\n }\n\n return {\n tag: 'g',\n attributes: {\n 'class': 'missing'\n },\n children: gChildren\n };\n };\n }\n};\n\nvar SvgSymbols = {\n hooks: function hooks() {\n return {\n parseNodeAttributes: function parseNodeAttributes(accumulator, node) {\n var symbolData = node.getAttribute('data-fa-symbol');\n var symbol = symbolData === null ? false : symbolData === '' ? true : symbolData;\n accumulator['symbol'] = symbol;\n return accumulator;\n }\n };\n }\n};\n\nvar plugins = [InjectCSS, ReplaceElements, Layers, LayersCounter, LayersText, PseudoElements, MutationObserver$1, PowerTransforms, Masks, MissingIconIndicator, SvgSymbols];\n\nregisterPlugins(plugins, {\n mixoutsTo: api\n});\nvar noAuto$1 = api.noAuto;\nvar config$1 = api.config;\nvar library$1 = api.library;\nvar dom$1 = api.dom;\nvar parse$1 = api.parse;\nvar findIconDefinition$1 = api.findIconDefinition;\nvar toHtml$1 = api.toHtml;\nvar icon = api.icon;\nvar layer = api.layer;\nvar text = api.text;\nvar counter = api.counter;\n\nexport { noAuto$1 as noAuto, config$1 as config, library$1 as library, dom$1 as dom, parse$1 as parse, findIconDefinition$1 as findIconDefinition, toHtml$1 as toHtml, icon, layer, text, counter, api };\n","\"use strict\";\n\nexports.__esModule = true;\nexports.applyTrailingSlashOption = void 0;\nconst endsWithSuffixes = (suffixes, input) => {\n for (const suffix of suffixes) {\n if (input.endsWith(suffix)) return true;\n }\n return false;\n};\nconst suffixes = [`.html`, `.json`, `.js`, `.map`, `.txt`, `.xml`, `.pdf`];\nconst applyTrailingSlashOption = (input, option = `always`) => {\n if (input === `/`) return input;\n const hasTrailingSlash = input.endsWith(`/`);\n if (endsWithSuffixes(suffixes, input)) {\n return input;\n }\n if (option === `always`) {\n return hasTrailingSlash ? input : `${input}/`;\n }\n if (option === `never`) {\n return hasTrailingSlash ? input.slice(0, -1) : input;\n }\n return input;\n};\nexports.applyTrailingSlashOption = applyTrailingSlashOption;","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = exports.ScrollContext = void 0;\nvar _scrollHandler = require(\"./scroll-handler\");\nexports.ScrollContext = _scrollHandler.ScrollHandler;\nvar _useScrollRestoration = require(\"./use-scroll-restoration\");\nexports.useScrollRestoration = _useScrollRestoration.useScrollRestoration;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nexports.__esModule = true;\nexports.ScrollHandler = exports.ScrollContext = void 0;\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _sessionStorage = require(\"./session-storage\");\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\nvar ScrollContext = /*#__PURE__*/React.createContext(new _sessionStorage.SessionStorage());\nexports.ScrollContext = ScrollContext;\nScrollContext.displayName = \"GatsbyScrollContext\";\nvar ScrollHandler = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(ScrollHandler, _React$Component);\n function ScrollHandler() {\n var _this;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this._stateStorage = new _sessionStorage.SessionStorage();\n _this._isTicking = false;\n _this._latestKnownScrollY = 0;\n _this.scrollListener = function () {\n _this._latestKnownScrollY = window.scrollY;\n if (!_this._isTicking) {\n _this._isTicking = true;\n requestAnimationFrame(_this._saveScroll.bind((0, _assertThisInitialized2.default)(_this)));\n }\n };\n _this.windowScroll = function (position, prevProps) {\n if (_this.shouldUpdateScroll(prevProps, _this.props)) {\n window.scrollTo(0, position);\n }\n };\n _this.scrollToHash = function (hash, prevProps) {\n var node = document.getElementById(hash.substring(1));\n if (node && _this.shouldUpdateScroll(prevProps, _this.props)) {\n node.scrollIntoView();\n }\n };\n _this.shouldUpdateScroll = function (prevRouterProps, routerProps) {\n var shouldUpdateScroll = _this.props.shouldUpdateScroll;\n if (!shouldUpdateScroll) {\n return true;\n }\n\n // Hack to allow accessing this._stateStorage.\n return shouldUpdateScroll.call((0, _assertThisInitialized2.default)(_this), prevRouterProps, routerProps);\n };\n return _this;\n }\n var _proto = ScrollHandler.prototype;\n _proto._saveScroll = function _saveScroll() {\n var key = this.props.location.key || null;\n if (key) {\n this._stateStorage.save(this.props.location, key, this._latestKnownScrollY);\n }\n this._isTicking = false;\n };\n _proto.componentDidMount = function componentDidMount() {\n window.addEventListener(\"scroll\", this.scrollListener);\n var scrollPosition;\n var _this$props$location = this.props.location,\n key = _this$props$location.key,\n hash = _this$props$location.hash;\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n\n /** If a hash is present in the browser url as the component mounts (i.e. the user is navigating\n * from an external website) then scroll to the hash instead of any previously stored scroll\n * position. */\n if (hash) {\n this.scrollToHash(decodeURI(hash), undefined);\n } else if (scrollPosition) {\n this.windowScroll(scrollPosition, undefined);\n }\n };\n _proto.componentWillUnmount = function componentWillUnmount() {\n window.removeEventListener(\"scroll\", this.scrollListener);\n };\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var _this$props$location2 = this.props.location,\n hash = _this$props$location2.hash,\n key = _this$props$location2.key;\n var scrollPosition;\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n\n /** There are two pieces of state: the browser url and\n * history state which keeps track of scroll position\n * Native behaviour prescribes that we ought to restore scroll position\n * when a user navigates back in their browser (this is the `POP` action)\n * Currently, reach router has a bug that prevents this at https://github.com/reach/router/issues/228\n * So we _always_ stick to the url as a source of truth — if the url\n * contains a hash, we scroll to it\n */\n\n if (hash) {\n this.scrollToHash(decodeURI(hash), prevProps);\n } else {\n this.windowScroll(scrollPosition, prevProps);\n }\n };\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(ScrollContext.Provider, {\n value: this._stateStorage\n }, this.props.children);\n };\n return ScrollHandler;\n}(React.Component);\nexports.ScrollHandler = ScrollHandler;\nScrollHandler.propTypes = {\n shouldUpdateScroll: _propTypes.default.func,\n children: _propTypes.default.element.isRequired,\n location: _propTypes.default.object.isRequired\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.SessionStorage = void 0;\nvar STATE_KEY_PREFIX = \"@@scroll|\";\nvar GATSBY_ROUTER_SCROLL_STATE = \"___GATSBY_REACT_ROUTER_SCROLL\";\nvar SessionStorage = /*#__PURE__*/function () {\n function SessionStorage() {}\n var _proto = SessionStorage.prototype;\n _proto.read = function read(location, key) {\n var stateKey = this.getStateKey(location, key);\n try {\n var value = window.sessionStorage.getItem(stateKey);\n return value ? JSON.parse(value) : 0;\n } catch (e) {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to access sessionStorage; sessionStorage is not available.\");\n }\n if (window && window[GATSBY_ROUTER_SCROLL_STATE] && window[GATSBY_ROUTER_SCROLL_STATE][stateKey]) {\n return window[GATSBY_ROUTER_SCROLL_STATE][stateKey];\n }\n return 0;\n }\n };\n _proto.save = function save(location, key, value) {\n var stateKey = this.getStateKey(location, key);\n var storedValue = JSON.stringify(value);\n try {\n window.sessionStorage.setItem(stateKey, storedValue);\n } catch (e) {\n if (window && window[GATSBY_ROUTER_SCROLL_STATE]) {\n window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n } else {\n window[GATSBY_ROUTER_SCROLL_STATE] = {};\n window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n }\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to save state in sessionStorage; sessionStorage is not available.\");\n }\n }\n };\n _proto.getStateKey = function getStateKey(location, key) {\n var stateKeyBase = \"\" + STATE_KEY_PREFIX + location.pathname;\n return key === null || typeof key === \"undefined\" ? stateKeyBase : stateKeyBase + \"|\" + key;\n };\n return SessionStorage;\n}();\nexports.SessionStorage = SessionStorage;","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = useScrollRestoration;\nvar _scrollHandler = require(\"./scroll-handler\");\nvar _react = require(\"react\");\nvar _reachRouter = require(\"@gatsbyjs/reach-router\");\nfunction useScrollRestoration(identifier) {\n var location = (0, _reachRouter.useLocation)();\n var state = (0, _react.useContext)(_scrollHandler.ScrollContext);\n var ref = (0, _react.useRef)(null);\n (0, _react.useLayoutEffect)(function () {\n if (ref.current) {\n var position = state.read(location, identifier);\n ref.current.scrollTo(0, position || 0);\n }\n }, [location.key]);\n return {\n ref: ref,\n onScroll: function onScroll() {\n if (ref.current) {\n state.save(location, identifier, ref.current.scrollTop);\n }\n }\n };\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.onInitialClientRender = void 0;\nvar _gatsbyScript = require(\"gatsby-script\");\nvar _injectPartytownSnippet = require(\"./utils/inject-partytown-snippet\");\n// Makes sure off-main-thread scripts are loaded in `gatsby develop`\nconst onInitialClientRender = () => {\n if (process.env.NODE_ENV !== `development`) {\n return;\n }\n (0, _injectPartytownSnippet.injectPartytownSnippet)(_gatsbyScript.collectedScriptsByPage.get(window.location.pathname));\n\n // Clear scripts after we've used them to avoid leaky behavior\n _gatsbyScript.collectedScriptsByPage.delete(window.location.pathname);\n};\n\n// Client-side navigation (CSR, e.g. Gatsby Link navigations) are broken upstream in Partytown.\n// We need an official API from Partytown for handling re-configuration and on-demand script loading.\n// Until then, `off-main-thread` scripts load only on server-side navigation (SSR).\n// See https://github.com/BuilderIO/partytown/issues/74 for more details.\nexports.onInitialClientRender = onInitialClientRender;\n//# sourceMappingURL=gatsby-browser.js.map","\"use strict\";\n\nexports.__esModule = true;\nexports.getForwards = getForwards;\nfunction getForwards(collectedScripts) {\n return collectedScripts === null || collectedScripts === void 0 ? void 0 : collectedScripts.flatMap(script => (script === null || script === void 0 ? void 0 : script.forward) || []);\n}\n//# sourceMappingURL=get-forwards.js.map","\"use strict\";\n\nexports.__esModule = true;\nexports.injectPartytownSnippet = injectPartytownSnippet;\nvar _integration = require(\"@builder.io/partytown/integration\");\nvar _getForwards = require(\"./get-forwards\");\n// Adapted from https://github.com/BuilderIO/partytown/blob/main/src/react/snippet.tsx to only include CSR logic\nfunction injectPartytownSnippet(collectedScripts) {\n if (!collectedScripts.length) {\n return;\n }\n const existingSnippet = document.querySelector(`script[data-partytown]`);\n const existingSandbox = document.querySelector(`iframe[src*=\"~partytown/partytown-sandbox-sw\"]`);\n if (existingSnippet) {\n existingSnippet.remove();\n }\n if (existingSandbox) {\n existingSandbox.remove();\n }\n const forwards = (0, _getForwards.getForwards)(collectedScripts);\n const snippet = document.createElement(`script`);\n snippet.dataset.partytown = ``;\n snippet.innerHTML = (0, _integration.partytownSnippet)({\n forward: forwards\n });\n document.head.appendChild(snippet);\n}\n//# sourceMappingURL=inject-partytown-snippet.js.map","exports.components = {\n \"component---src-pages-404-js\": () => import(\"./../../../src/pages/404.js\" /* webpackChunkName: \"component---src-pages-404-js\" */),\n \"component---src-pages-archiv-js\": () => import(\"./../../../src/pages/Archiv.js\" /* webpackChunkName: \"component---src-pages-archiv-js\" */),\n \"component---src-pages-chor-js\": () => import(\"./../../../src/pages/Chor.js\" /* webpackChunkName: \"component---src-pages-chor-js\" */),\n \"component---src-pages-datenschutz-js\": () => import(\"./../../../src/pages/Datenschutz.js\" /* webpackChunkName: \"component---src-pages-datenschutz-js\" */),\n \"component---src-pages-default-page-js\": () => import(\"./../../../src/pages/defaultPage.js\" /* webpackChunkName: \"component---src-pages-default-page-js\" */),\n \"component---src-pages-impressum-js\": () => import(\"./../../../src/pages/Impressum.js\" /* webpackChunkName: \"component---src-pages-impressum-js\" */),\n \"component---src-pages-index-js\": () => import(\"./../../../src/pages/index.js\" /* webpackChunkName: \"component---src-pages-index-js\" */),\n \"component---src-pages-kontakt-js\": () => import(\"./../../../src/pages/Kontakt.js\" /* webpackChunkName: \"component---src-pages-kontakt-js\" */),\n \"component---src-pages-termine-js\": () => import(\"./../../../src/pages/Termine.js\" /* webpackChunkName: \"component---src-pages-termine-js\" */),\n \"component---src-pages-verein-js\": () => import(\"./../../../src/pages/Verein.js\" /* webpackChunkName: \"component---src-pages-verein-js\" */)\n}\n\n","module.exports = [{\n plugin: require('../node_modules/gatsby-plugin-fontawesome-css/gatsby-browser.js'),\n options: {\"plugins\":[]},\n },{\n plugin: require('../node_modules/gatsby-plugin-scroll-reveal-with-new-react/gatsby-browser.js'),\n options: {\"plugins\":[],\"threshold\":0.1,\"once\":true,\"disable\":false,\"selector\":\"[data-sal]\",\"animateClassName\":\"sal-animate\",\"disabledClassName\":\"sal-disabled\",\"rootMargin\":\"0% 70%\",\"enterEventName\":\"sal:in\",\"exitEventName\":\"sal:out\"},\n },{\n plugin: require('../node_modules/gatsby-plugin-manifest/gatsby-browser.js'),\n options: {\"plugins\":[],\"name\":\"Vokalensemble Weißenfels Webseite\",\"short_name\":\"Vokalensemble Weißenfels\",\"start_url\":\"/\",\"background_color\":\"#111827\",\"display\":\"minimal-ui\",\"icon\":\"src/assets/images/Favicon/Favicon.png\",\"legacy\":true,\"theme_color_in_head\":true,\"cache_busting_mode\":\"query\",\"crossOrigin\":\"anonymous\",\"include_favicon\":true,\"cacheDigest\":\"1ec046c33ebc915ea8b13a787a19fa4e\"},\n },{\n plugin: require('../gatsby-browser.js'),\n options: {\"plugins\":[]},\n },{\n plugin: require('../node_modules/gatsby/dist/internal-plugins/partytown/gatsby-browser.js'),\n options: {\"plugins\":[]},\n }]\n","const plugins = require(`./api-runner-browser-plugins`)\nconst { getResourceURLsForPathname, loadPage, loadPageSync } =\n require(`./loader`).publicLoader\n\nexports.apiRunner = (api, args = {}, defaultReturn, argTransform) => {\n // Hooks for gatsby-cypress's API handler\n if (process.env.CYPRESS_SUPPORT) {\n if (window.___apiHandler) {\n window.___apiHandler(api)\n } else if (window.___resolvedAPIs) {\n window.___resolvedAPIs.push(api)\n } else {\n window.___resolvedAPIs = [api]\n }\n }\n\n let results = plugins.map(plugin => {\n if (!plugin.plugin[api]) {\n return undefined\n }\n\n args.getResourceURLsForPathname = getResourceURLsForPathname\n args.loadPage = loadPage\n args.loadPageSync = loadPageSync\n\n const result = plugin.plugin[api](args, plugin.options)\n if (result && argTransform) {\n args = argTransform({ args, result, plugin })\n }\n return result\n })\n\n // Filter out undefined results.\n results = results.filter(result => typeof result !== `undefined`)\n\n if (results.length > 0) {\n return results\n } else if (defaultReturn) {\n return [defaultReturn]\n } else {\n return []\n }\n}\n\nexports.apiRunnerAsync = (api, args, defaultReturn) =>\n plugins.reduce(\n (previous, next) =>\n next.plugin[api]\n ? previous.then(() => next.plugin[api](args, next.options))\n : previous,\n Promise.resolve()\n )\n","exports.createContentDigest = () => ``\n","import mitt from \"mitt\"\n\nconst emitter = mitt()\nexport default emitter\n","// \n// An event handler can take an optional event argument\n// and should not return a value\n \n \n\n// An array of all currently registered event handlers for a type\n \n \n// A map of event types and their corresponding event handlers.\n \n \n \n \n\n/** Mitt: Tiny (~200b) functional event emitter / pubsub.\n * @name mitt\n * @returns {Mitt}\n */\nfunction mitt(all ) {\n\tall = all || Object.create(null);\n\n\treturn {\n\t\t/**\n\t\t * Register an event handler for the given type.\n\t\t *\n\t\t * @param {String} type\tType of event to listen for, or `\"*\"` for all events\n\t\t * @param {Function} handler Function to call in response to given event\n\t\t * @memberOf mitt\n\t\t */\n\t\ton: function on(type , handler ) {\n\t\t\t(all[type] || (all[type] = [])).push(handler);\n\t\t},\n\n\t\t/**\n\t\t * Remove an event handler for the given type.\n\t\t *\n\t\t * @param {String} type\tType of event to unregister `handler` from, or `\"*\"`\n\t\t * @param {Function} handler Handler function to remove\n\t\t * @memberOf mitt\n\t\t */\n\t\toff: function off(type , handler ) {\n\t\t\tif (all[type]) {\n\t\t\t\tall[type].splice(all[type].indexOf(handler) >>> 0, 1);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Invoke all handlers for the given type.\n\t\t * If present, `\"*\"` handlers are invoked after type-matched handlers.\n\t\t *\n\t\t * @param {String} type The event type to invoke\n\t\t * @param {Any} [evt] Any value (object is recommended and powerful), passed to each handler\n\t\t * @memberOf mitt\n\t\t */\n\t\temit: function emit(type , evt ) {\n\t\t\t(all[type] || []).slice().map(function (handler) { handler(evt); });\n\t\t\t(all['*'] || []).slice().map(function (handler) { handler(type, evt); });\n\t\t}\n\t};\n}\n\nexport default mitt;\n//# sourceMappingURL=mitt.es.js.map\n","export default pathAndSearch => {\n if (pathAndSearch === undefined) {\n return pathAndSearch\n }\n let [path, search = ``] = pathAndSearch.split(`?`)\n if (search) {\n search = `?` + search\n }\n\n if (path === `/`) {\n return `/` + search\n }\n if (path.charAt(path.length - 1) === `/`) {\n return path.slice(0, -1) + search\n }\n return path + search\n}\n","import { pick } from \"@gatsbyjs/reach-router\"\nimport stripPrefix from \"./strip-prefix\"\nimport normalizePagePath from \"./normalize-page-path\"\nimport { maybeGetBrowserRedirect } from \"./redirect-utils.js\"\n\nconst pathCache = new Map()\nlet matchPaths = []\n\nconst trimPathname = rawPathname => {\n let newRawPathname = rawPathname\n const queryIndex = rawPathname.indexOf(`?`)\n\n if (queryIndex !== -1) {\n const [path, qs] = rawPathname.split(`?`)\n newRawPathname = `${path}?${encodeURIComponent(qs)}`\n }\n\n const pathname = decodeURIComponent(newRawPathname)\n\n // Remove the pathPrefix from the pathname.\n const trimmedPathname = stripPrefix(\n pathname,\n decodeURIComponent(__BASE_PATH__)\n )\n // Remove any hashfragment\n .split(`#`)[0]\n\n return trimmedPathname\n}\n\nfunction absolutify(path) {\n // If it's already absolute, return as-is\n if (\n path.startsWith(`/`) ||\n path.startsWith(`https://`) ||\n path.startsWith(`http://`)\n ) {\n return path\n }\n // Calculate path relative to current location, adding a trailing slash to\n // match behavior of @reach/router\n return new URL(\n path,\n window.location.href + (window.location.href.endsWith(`/`) ? `` : `/`)\n ).pathname\n}\n\n/**\n * Set list of matchPaths\n *\n * @param {Array<{path: string, matchPath: string}>} value collection of matchPaths\n */\nexport const setMatchPaths = value => {\n matchPaths = value\n}\n\n/**\n * Return a matchpath url\n * if `match-paths.json` contains `{ \"/foo*\": \"/page1\", ...}`, then\n * `/foo?bar=far` => `/page1`\n *\n * @param {string} rawPathname A raw pathname\n * @return {string|null}\n */\nexport const findMatchPath = rawPathname => {\n const trimmedPathname = cleanPath(rawPathname)\n\n const pickPaths = matchPaths.map(({ path, matchPath }) => {\n return {\n path: matchPath,\n originalPath: path,\n }\n })\n\n const path = pick(pickPaths, trimmedPathname)\n\n if (path) {\n return normalizePagePath(path.route.originalPath)\n }\n\n return null\n}\n\n/**\n * Return a matchpath params from reach/router rules\n * if `match-paths.json` contains `{ \":bar/*foo\" }`, and the path is /baz/zaz/zoo\n * then it returns\n * { bar: baz, foo: zaz/zoo }\n *\n * @param {string} rawPathname A raw pathname\n * @return {object}\n */\nexport const grabMatchParams = rawPathname => {\n const trimmedPathname = cleanPath(rawPathname)\n\n const pickPaths = matchPaths.map(({ path, matchPath }) => {\n return {\n path: matchPath,\n originalPath: path,\n }\n })\n\n const path = pick(pickPaths, trimmedPathname)\n\n if (path) {\n return path.params\n }\n\n return {}\n}\n\n// Given a raw URL path, returns the cleaned version of it (trim off\n// `#` and query params), or if it matches an entry in\n// `match-paths.json`, its matched path is returned\n//\n// E.g. `/foo?bar=far` => `/foo`\n//\n// Or if `match-paths.json` contains `{ \"/foo*\": \"/page1\", ...}`, then\n// `/foo?bar=far` => `/page1`\nexport const findPath = rawPathname => {\n const trimmedPathname = trimPathname(absolutify(rawPathname))\n if (pathCache.has(trimmedPathname)) {\n return pathCache.get(trimmedPathname)\n }\n\n const redirect = maybeGetBrowserRedirect(rawPathname)\n if (redirect) {\n return findPath(redirect.toPath)\n }\n\n let foundPath = findMatchPath(trimmedPathname)\n\n if (!foundPath) {\n foundPath = cleanPath(rawPathname)\n }\n\n pathCache.set(trimmedPathname, foundPath)\n\n return foundPath\n}\n\n/**\n * Clean a url and converts /index.html => /\n * E.g. `/foo?bar=far` => `/foo`\n *\n * @param {string} rawPathname A raw pathname\n * @return {string}\n */\nexport const cleanPath = rawPathname => {\n const trimmedPathname = trimPathname(absolutify(rawPathname))\n\n let foundPath = trimmedPathname\n if (foundPath === `/index.html`) {\n foundPath = `/`\n }\n\n foundPath = normalizePagePath(foundPath)\n\n return foundPath\n}\n","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nexport default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct.bind();\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n return _construct.apply(null, arguments);\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n _cache.set(Class, Wrapper);\n }\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n return _wrapNativeSuper(Class);\n}","export default function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}","import React from \"react\"\n\nexport const ServerSliceRenderer = ({ sliceId, children }) => {\n const contents = [\n React.createElement(`slice-start`, {\n id: `${sliceId}-1`,\n }),\n React.createElement(`slice-end`, {\n id: `${sliceId}-1`,\n }),\n ]\n\n if (children) {\n // if children exist, we split the slice into a before and after piece\n // see renderSlices in render-html\n contents.push(children)\n contents.push(\n React.createElement(`slice-start`, {\n id: `${sliceId}-2`,\n }),\n React.createElement(`slice-end`, {\n id: `${sliceId}-2`,\n })\n )\n }\n\n return contents\n}\n","import React, { useContext } from \"react\"\nimport { createContentDigest } from \"gatsby-core-utils/create-content-digest\"\nimport { SlicesMapContext, SlicesPropsContext } from \"./context\"\nimport { ServerSliceRenderer } from \"./server-slice-renderer\"\n\nconst getSliceId = (sliceName, sliceProps) => {\n if (!Object.keys(sliceProps).length) {\n return sliceName\n }\n\n const propsString = createContentDigest(sliceProps)\n return `${sliceName}-${propsString}`\n}\n\nexport const ServerSlice = ({\n sliceName,\n allowEmpty,\n children,\n ...sliceProps\n}) => {\n const slicesMap = useContext(SlicesMapContext)\n const slicesProps = useContext(SlicesPropsContext)\n const concreteSliceName = slicesMap[sliceName]\n\n if (!concreteSliceName) {\n if (allowEmpty) {\n return null\n } else {\n throw new Error(\n `Slice \"${concreteSliceName}\" for \"${sliceName}\" slot not found`\n )\n }\n }\n\n const sliceId = getSliceId(concreteSliceName, sliceProps)\n\n // set props on context object for static-entry to return\n let sliceUsage = slicesProps[sliceId]\n if (!sliceUsage) {\n slicesProps[sliceId] = sliceUsage = {\n props: sliceProps,\n sliceName: concreteSliceName,\n hasChildren: !!children,\n }\n } else {\n if (children) {\n sliceUsage.hasChildren = true\n }\n }\n\n return {children}\n}\n","import React, { useContext } from \"react\"\nimport { SlicesMapContext, SlicesResultsContext } from \"./context\"\n\nexport const InlineSlice = ({\n sliceName,\n allowEmpty,\n children,\n ...sliceProps\n}) => {\n const slicesMap = useContext(SlicesMapContext)\n const slicesResultsMap = useContext(SlicesResultsContext)\n const concreteSliceName = slicesMap[sliceName]\n const slice = slicesResultsMap.get(concreteSliceName)\n\n if (!slice) {\n if (allowEmpty) {\n return null\n } else {\n throw new Error(\n `Slice \"${concreteSliceName}\" for \"${sliceName}\" slot not found`\n )\n }\n }\n\n return (\n \n {children}\n \n )\n}\n","\"use client\"\n\nimport React, { useContext } from \"react\"\nimport { ServerSlice } from \"./slice/server-slice\"\nimport { InlineSlice } from \"./slice/inline-slice\"\nimport { SlicesContext } from \"./slice/context\"\n\nexport function Slice(props) {\n if (process.env.GATSBY_SLICES) {\n // we use sliceName internally, so remap alias to sliceName\n const internalProps = {\n ...props,\n sliceName: props.alias,\n }\n delete internalProps.alias\n delete internalProps.__renderedByLocation\n\n const slicesContext = useContext(SlicesContext)\n\n // validate props\n const propErrors = validateSliceProps(props)\n if (Object.keys(propErrors).length) {\n throw new SlicePropsError(\n slicesContext.renderEnvironment === `browser`,\n internalProps.sliceName,\n propErrors,\n props.__renderedByLocation\n )\n }\n\n if (slicesContext.renderEnvironment === `server`) {\n return \n } else if (slicesContext.renderEnvironment === `browser`) {\n // in the browser, we'll just render the component as is\n return \n } else if (\n slicesContext.renderEnvironment === `engines` ||\n slicesContext.renderEnvironment === `dev-ssr`\n ) {\n // if we're in SSR, we'll just render the component as is\n return \n } else if (slicesContext.renderEnvironment === `slices`) {\n // we are not yet supporting nested slices\n\n let additionalContextMessage = ``\n\n // just in case generating additional contextual information fails, we still want the base message to show\n // and not show another cryptic error message\n try {\n additionalContextMessage = `\\n\\nSlice component \"${slicesContext.sliceRoot.name}\" (${slicesContext.sliceRoot.componentPath}) tried to render `\n } catch {\n // don't need to handle it, we will just skip the additional context message if we fail to generate it\n }\n\n throw new Error(\n `Nested slices are not supported.${additionalContextMessage}\\n\\nSee https://gatsbyjs.com/docs/reference/built-in-components/gatsby-slice#nested-slices`\n )\n } else {\n throw new Error(\n `Slice context \"${slicesContext.renderEnvironment}\" is not supported.`\n )\n }\n } else {\n throw new Error(`Slices are disabled.`)\n }\n}\n\nclass SlicePropsError extends Error {\n constructor(inBrowser, sliceName, propErrors, renderedByLocation) {\n const errors = Object.entries(propErrors)\n .map(\n ([key, value]) =>\n `not serializable \"${value}\" type passed to \"${key}\" prop`\n )\n .join(`, `)\n\n const name = `SlicePropsError`\n let stack = ``\n let message = ``\n\n if (inBrowser) {\n // They're just (kinda) kidding, I promise... You can still work here <3\n // https://www.gatsbyjs.com/careers/\n const fullStack =\n React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactDebugCurrentFrame.getCurrentStack()\n\n // remove the first line of the stack trace\n const stackLines = fullStack.trim().split(`\\n`).slice(1)\n stackLines[0] = stackLines[0].trim()\n stack = `\\n` + stackLines.join(`\\n`)\n\n message = `Slice \"${sliceName}\" was passed props that are not serializable (${errors}).`\n } else {\n // we can't really grab any extra info outside of the browser, so just print what we can\n message = `${name}: Slice \"${sliceName}\" was passed props that are not serializable (${errors}).`\n const stackLines = new Error().stack.trim().split(`\\n`).slice(2)\n stack = `${message}\\n${stackLines.join(`\\n`)}`\n }\n\n super(message)\n this.name = name\n if (stack) {\n this.stack = stack\n } else {\n Error.captureStackTrace(this, SlicePropsError)\n }\n\n if (renderedByLocation) {\n this.forcedLocation = { ...renderedByLocation, functionName: `Slice` }\n }\n }\n}\n\nconst validateSliceProps = (\n props,\n errors = {},\n seenObjects = [],\n path = null\n) => {\n // recursively validate all props\n for (const [name, value] of Object.entries(props)) {\n if (\n value === undefined ||\n value === null ||\n (!path && name === `children`)\n ) {\n continue\n }\n\n const propPath = path ? `${path}.${name}` : name\n\n if (typeof value === `function`) {\n errors[propPath] = typeof value\n } else if (typeof value === `object` && seenObjects.indexOf(value) <= 0) {\n seenObjects.push(value)\n validateSliceProps(value, errors, seenObjects, propPath)\n }\n }\n\n return errors\n}\n","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}","import loader from \"./loader\"\n\nconst prefetchPathname = loader.enqueue\n\nfunction graphql() {\n throw new Error(\n `It appears like Gatsby is misconfigured. Gatsby related \\`graphql\\` calls ` +\n `are supposed to only be evaluated at compile time, and then compiled away. ` +\n `Unfortunately, something went wrong and the query was left in the compiled code.\\n\\n` +\n `Unless your site has a complex or custom babel/Gatsby configuration this is likely a bug in Gatsby.`\n )\n}\n\nexport { default as PageRenderer } from \"./public-page-renderer\"\nexport { useScrollRestoration } from \"gatsby-react-router-scroll\"\nexport {\n Link,\n withPrefix,\n withAssetPrefix,\n navigate,\n parsePath,\n} from \"gatsby-link\"\n\nexport { graphql, prefetchPathname }\nexport { StaticQuery, StaticQueryContext, useStaticQuery } from \"./static-query\"\nexport { Slice } from \"./slice\"\nexport * from \"gatsby-script\"\n","const support = function (feature) {\n if (typeof document === `undefined`) {\n return false\n }\n const fakeLink = document.createElement(`link`)\n try {\n if (fakeLink.relList && typeof fakeLink.relList.supports === `function`) {\n return fakeLink.relList.supports(feature)\n }\n } catch (err) {\n return false\n }\n return false\n}\n\nconst linkPrefetchStrategy = function (url, options) {\n return new Promise((resolve, reject) => {\n if (typeof document === `undefined`) {\n reject()\n return\n }\n\n const link = document.createElement(`link`)\n link.setAttribute(`rel`, `prefetch`)\n link.setAttribute(`href`, url)\n\n Object.keys(options).forEach(key => {\n link.setAttribute(key, options[key])\n })\n\n link.onload = resolve\n link.onerror = reject\n\n const parentElement =\n document.getElementsByTagName(`head`)[0] ||\n document.getElementsByName(`script`)[0].parentNode\n parentElement.appendChild(link)\n })\n}\n\nconst xhrPrefetchStrategy = function (url) {\n return new Promise((resolve, reject) => {\n const req = new XMLHttpRequest()\n req.open(`GET`, url, true)\n\n req.onload = () => {\n if (req.status === 200) {\n resolve()\n } else {\n reject()\n }\n }\n\n req.send(null)\n })\n}\n\nconst supportedPrefetchStrategy = support(`prefetch`)\n ? linkPrefetchStrategy\n : xhrPrefetchStrategy\n\nconst preFetched = {}\n\nconst prefetch = function (url, options) {\n return new Promise(resolve => {\n if (preFetched[url]) {\n resolve()\n return\n }\n\n supportedPrefetchStrategy(url, options)\n .then(() => {\n resolve()\n preFetched[url] = true\n })\n .catch(() => {}) // 404s are logged to the console anyway\n })\n}\n\nexport default prefetch\n","import { createFromReadableStream } from \"react-server-dom-webpack\"\nimport prefetchHelper from \"./prefetch\"\nimport emitter from \"./emitter\"\nimport { setMatchPaths, findPath, findMatchPath } from \"./find-path\"\n\n/**\n * Available resource loading statuses\n */\nexport const PageResourceStatus = {\n /**\n * At least one of critical resources failed to load\n */\n Error: `error`,\n /**\n * Resources loaded successfully\n */\n Success: `success`,\n}\n\nconst preferDefault = m => (m && m.default) || m\n\nconst stripSurroundingSlashes = s => {\n s = s[0] === `/` ? s.slice(1) : s\n s = s.endsWith(`/`) ? s.slice(0, -1) : s\n return s\n}\n\nconst createPageDataUrl = rawPath => {\n const [path, maybeSearch] = rawPath.split(`?`)\n const fixedPath = path === `/` ? `index` : stripSurroundingSlashes(path)\n return `${__PATH_PREFIX__}/page-data/${fixedPath}/page-data.json${\n maybeSearch ? `?${maybeSearch}` : ``\n }`\n}\n\n/**\n * Utility to check the path that goes into doFetch for e.g. potential malicious intentions.\n * It checks for \"//\" because with this you could do a fetch request to a different domain.\n */\nconst shouldAbortFetch = rawPath => rawPath.startsWith(`//`)\n\nfunction doFetch(url, method = `GET`) {\n return new Promise(resolve => {\n const req = new XMLHttpRequest()\n req.open(method, url, true)\n req.onreadystatechange = () => {\n if (req.readyState == 4) {\n resolve(req)\n }\n }\n req.send(null)\n })\n}\n\nconst doesConnectionSupportPrefetch = () => {\n if (\n `connection` in navigator &&\n typeof navigator.connection !== `undefined`\n ) {\n if ((navigator.connection.effectiveType || ``).includes(`2g`)) {\n return false\n }\n if (navigator.connection.saveData) {\n return false\n }\n }\n return true\n}\n\n// Regex that matches common search crawlers\nconst BOT_REGEX = /bot|crawler|spider|crawling/i\n\nconst toPageResources = (pageData, component = null, head) => {\n const page = {\n componentChunkName: pageData.componentChunkName,\n path: pageData.path,\n webpackCompilationHash: pageData.webpackCompilationHash,\n matchPath: pageData.matchPath,\n staticQueryHashes: pageData.staticQueryHashes,\n getServerDataError: pageData.getServerDataError,\n slicesMap: pageData.slicesMap ?? {},\n }\n\n return {\n component,\n head,\n json: pageData.result,\n page,\n }\n}\n\nfunction waitForResponse(response) {\n return new Promise(resolve => {\n try {\n const result = response.readRoot()\n resolve(result)\n } catch (err) {\n if (\n Object.hasOwnProperty.call(err, `_response`) &&\n Object.hasOwnProperty.call(err, `_status`)\n ) {\n setTimeout(() => {\n waitForResponse(response).then(resolve)\n }, 200)\n } else {\n throw err\n }\n }\n })\n}\n\nexport class BaseLoader {\n constructor(loadComponent, matchPaths) {\n // Map of pagePath -> Page. Where Page is an object with: {\n // status: PageResourceStatus.Success || PageResourceStatus.Error,\n // payload: PageResources, // undefined if PageResourceStatus.Error\n // }\n // PageResources is {\n // component,\n // json: pageData.result,\n // page: {\n // componentChunkName,\n // path,\n // webpackCompilationHash,\n // staticQueryHashes\n // },\n // staticQueryResults\n // }\n this.pageDb = new Map()\n this.inFlightDb = new Map()\n this.staticQueryDb = {}\n this.pageDataDb = new Map()\n this.partialHydrationDb = new Map()\n this.slicesDataDb = new Map()\n this.sliceInflightDb = new Map()\n this.slicesDb = new Map()\n this.isPrefetchQueueRunning = false\n this.prefetchQueued = []\n this.prefetchTriggered = new Set()\n this.prefetchCompleted = new Set()\n this.loadComponent = loadComponent\n setMatchPaths(matchPaths)\n }\n\n inFlightNetworkRequests = new Map()\n\n memoizedGet(url) {\n let inFlightPromise = this.inFlightNetworkRequests.get(url)\n\n if (!inFlightPromise) {\n inFlightPromise = doFetch(url, `GET`)\n this.inFlightNetworkRequests.set(url, inFlightPromise)\n }\n\n // Prefer duplication with then + catch over .finally to prevent problems in ie11 + firefox\n return inFlightPromise\n .then(response => {\n this.inFlightNetworkRequests.delete(url)\n return response\n })\n .catch(err => {\n this.inFlightNetworkRequests.delete(url)\n throw err\n })\n }\n\n setApiRunner(apiRunner) {\n this.apiRunner = apiRunner\n this.prefetchDisabled = apiRunner(`disableCorePrefetching`).some(a => a)\n }\n\n fetchPageDataJson(loadObj) {\n const { pagePath, retries = 0 } = loadObj\n const url = createPageDataUrl(pagePath)\n return this.memoizedGet(url).then(req => {\n const { status, responseText } = req\n\n // Handle 200\n if (status === 200) {\n try {\n const jsonPayload = JSON.parse(responseText)\n if (jsonPayload.path === undefined) {\n throw new Error(`not a valid pageData response`)\n }\n\n const maybeSearch = pagePath.split(`?`)[1]\n if (maybeSearch && !jsonPayload.path.includes(maybeSearch)) {\n jsonPayload.path += `?${maybeSearch}`\n }\n\n return Object.assign(loadObj, {\n status: PageResourceStatus.Success,\n payload: jsonPayload,\n })\n } catch (err) {\n // continue regardless of error\n }\n }\n\n // Handle 404\n if (status === 404 || status === 200) {\n // If the request was for a 404/500 page and it doesn't exist, we're done\n if (pagePath === `/404.html` || pagePath === `/500.html`) {\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n }\n\n // Need some code here to cache the 404 request. In case\n // multiple loadPageDataJsons result in 404s\n return this.fetchPageDataJson(\n Object.assign(loadObj, { pagePath: `/404.html`, notFound: true })\n )\n }\n\n // handle 500 response (Unrecoverable)\n if (status === 500) {\n return this.fetchPageDataJson(\n Object.assign(loadObj, {\n pagePath: `/500.html`,\n internalServerError: true,\n })\n )\n }\n\n // Handle everything else, including status === 0, and 503s. Should retry\n if (retries < 3) {\n return this.fetchPageDataJson(\n Object.assign(loadObj, { retries: retries + 1 })\n )\n }\n\n // Retried 3 times already, result is an error.\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n })\n }\n\n fetchPartialHydrationJson(loadObj) {\n const { pagePath, retries = 0 } = loadObj\n const url = createPageDataUrl(pagePath).replace(`.json`, `-rsc.json`)\n return this.memoizedGet(url).then(req => {\n const { status, responseText } = req\n\n // Handle 200\n if (status === 200) {\n try {\n return Object.assign(loadObj, {\n status: PageResourceStatus.Success,\n payload: responseText,\n })\n } catch (err) {\n // continue regardless of error\n }\n }\n\n // Handle 404\n if (status === 404 || status === 200) {\n // If the request was for a 404/500 page and it doesn't exist, we're done\n if (pagePath === `/404.html` || pagePath === `/500.html`) {\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n }\n\n // Need some code here to cache the 404 request. In case\n // multiple loadPageDataJsons result in 404s\n return this.fetchPartialHydrationJson(\n Object.assign(loadObj, { pagePath: `/404.html`, notFound: true })\n )\n }\n\n // handle 500 response (Unrecoverable)\n if (status === 500) {\n return this.fetchPartialHydrationJson(\n Object.assign(loadObj, {\n pagePath: `/500.html`,\n internalServerError: true,\n })\n )\n }\n\n // Handle everything else, including status === 0, and 503s. Should retry\n if (retries < 3) {\n return this.fetchPartialHydrationJson(\n Object.assign(loadObj, { retries: retries + 1 })\n )\n }\n\n // Retried 3 times already, result is an error.\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n })\n }\n\n loadPageDataJson(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.pageDataDb.has(pagePath)) {\n const pageData = this.pageDataDb.get(pagePath)\n if (process.env.BUILD_STAGE !== `develop` || !pageData.stale) {\n return Promise.resolve(pageData)\n }\n }\n\n return this.fetchPageDataJson({ pagePath }).then(pageData => {\n this.pageDataDb.set(pagePath, pageData)\n\n return pageData\n })\n }\n\n loadPartialHydrationJson(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.partialHydrationDb.has(pagePath)) {\n const pageData = this.partialHydrationDb.get(pagePath)\n if (process.env.BUILD_STAGE !== `develop` || !pageData.stale) {\n return Promise.resolve(pageData)\n }\n }\n\n return this.fetchPartialHydrationJson({ pagePath }).then(pageData => {\n this.partialHydrationDb.set(pagePath, pageData)\n\n return pageData\n })\n }\n\n loadSliceDataJson(sliceName) {\n if (this.slicesDataDb.has(sliceName)) {\n const jsonPayload = this.slicesDataDb.get(sliceName)\n return Promise.resolve({ sliceName, jsonPayload })\n }\n\n const url = `${__PATH_PREFIX__}/slice-data/${sliceName}.json`\n return doFetch(url, `GET`).then(res => {\n const jsonPayload = JSON.parse(res.responseText)\n\n this.slicesDataDb.set(sliceName, jsonPayload)\n return { sliceName, jsonPayload }\n })\n }\n\n findMatchPath(rawPath) {\n return findMatchPath(rawPath)\n }\n\n // TODO check all uses of this and whether they use undefined for page resources not exist\n loadPage(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.pageDb.has(pagePath)) {\n const page = this.pageDb.get(pagePath)\n if (process.env.BUILD_STAGE !== `develop` || !page.payload.stale) {\n if (page.error) {\n return Promise.resolve({\n error: page.error,\n status: page.status,\n })\n }\n\n return Promise.resolve(page.payload)\n }\n }\n\n if (this.inFlightDb.has(pagePath)) {\n return this.inFlightDb.get(pagePath)\n }\n\n const loadDataPromises = [\n this.loadAppData(),\n this.loadPageDataJson(pagePath),\n ]\n\n if (global.hasPartialHydration) {\n loadDataPromises.push(this.loadPartialHydrationJson(pagePath))\n }\n\n const inFlightPromise = Promise.all(loadDataPromises).then(allData => {\n const [appDataResponse, pageDataResponse, rscDataResponse] = allData\n\n if (\n pageDataResponse.status === PageResourceStatus.Error ||\n rscDataResponse?.status === PageResourceStatus.Error\n ) {\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n let pageData = pageDataResponse.payload\n\n const {\n componentChunkName,\n staticQueryHashes: pageStaticQueryHashes = [],\n slicesMap = {},\n } = pageData\n\n const finalResult = {}\n\n const dedupedSliceNames = Array.from(new Set(Object.values(slicesMap)))\n\n const loadSlice = slice => {\n if (this.slicesDb.has(slice.name)) {\n return this.slicesDb.get(slice.name)\n } else if (this.sliceInflightDb.has(slice.name)) {\n return this.sliceInflightDb.get(slice.name)\n }\n\n const inFlight = this.loadComponent(slice.componentChunkName).then(\n component => {\n return {\n component: preferDefault(component),\n sliceContext: slice.result.sliceContext,\n data: slice.result.data,\n }\n }\n )\n\n this.sliceInflightDb.set(slice.name, inFlight)\n inFlight.then(results => {\n this.slicesDb.set(slice.name, results)\n this.sliceInflightDb.delete(slice.name)\n })\n\n return inFlight\n }\n\n return Promise.all(\n dedupedSliceNames.map(sliceName => this.loadSliceDataJson(sliceName))\n ).then(slicesData => {\n const slices = []\n const dedupedStaticQueryHashes = [...pageStaticQueryHashes]\n\n for (const { jsonPayload, sliceName } of Object.values(slicesData)) {\n slices.push({ name: sliceName, ...jsonPayload })\n for (const staticQueryHash of jsonPayload.staticQueryHashes) {\n if (!dedupedStaticQueryHashes.includes(staticQueryHash)) {\n dedupedStaticQueryHashes.push(staticQueryHash)\n }\n }\n }\n\n const loadChunkPromises = [\n Promise.all(slices.map(loadSlice)),\n this.loadComponent(componentChunkName, `head`),\n ]\n\n if (!global.hasPartialHydration) {\n loadChunkPromises.push(this.loadComponent(componentChunkName))\n }\n\n // In develop we have separate chunks for template and Head components\n // to enable HMR (fast refresh requires single exports).\n // In production we have shared chunk with both exports. Double loadComponent here\n // will be deduped by webpack runtime resulting in single request and single module\n // being loaded for both `component` and `head`.\n // get list of components to get\n const componentChunkPromises = Promise.all(loadChunkPromises).then(\n components => {\n const [sliceComponents, headComponent, pageComponent] = components\n\n finalResult.createdAt = new Date()\n\n for (const sliceComponent of sliceComponents) {\n if (!sliceComponent || sliceComponent instanceof Error) {\n finalResult.status = PageResourceStatus.Error\n finalResult.error = sliceComponent\n }\n }\n\n if (\n !global.hasPartialHydration &&\n (!pageComponent || pageComponent instanceof Error)\n ) {\n finalResult.status = PageResourceStatus.Error\n finalResult.error = pageComponent\n }\n\n let pageResources\n\n if (finalResult.status !== PageResourceStatus.Error) {\n finalResult.status = PageResourceStatus.Success\n if (\n pageDataResponse.notFound === true ||\n rscDataResponse?.notFound === true\n ) {\n finalResult.notFound = true\n }\n pageData = Object.assign(pageData, {\n webpackCompilationHash: appDataResponse\n ? appDataResponse.webpackCompilationHash\n : ``,\n })\n\n if (typeof rscDataResponse?.payload === `string`) {\n pageResources = toPageResources(pageData, null, headComponent)\n\n pageResources.partialHydration = rscDataResponse.payload\n\n const readableStream = new ReadableStream({\n start(controller) {\n const te = new TextEncoder()\n controller.enqueue(te.encode(rscDataResponse.payload))\n },\n pull(controller) {\n // close on next read when queue is empty\n controller.close()\n },\n cancel() {},\n })\n\n return waitForResponse(\n createFromReadableStream(readableStream)\n ).then(result => {\n pageResources.partialHydration = result\n\n return pageResources\n })\n } else {\n pageResources = toPageResources(\n pageData,\n pageComponent,\n headComponent\n )\n }\n }\n\n // undefined if final result is an error\n return pageResources\n }\n )\n\n // get list of static queries to get\n const staticQueryBatchPromise = Promise.all(\n dedupedStaticQueryHashes.map(staticQueryHash => {\n // Check for cache in case this static query result has already been loaded\n if (this.staticQueryDb[staticQueryHash]) {\n const jsonPayload = this.staticQueryDb[staticQueryHash]\n return { staticQueryHash, jsonPayload }\n }\n\n return this.memoizedGet(\n `${__PATH_PREFIX__}/page-data/sq/d/${staticQueryHash}.json`\n )\n .then(req => {\n const jsonPayload = JSON.parse(req.responseText)\n return { staticQueryHash, jsonPayload }\n })\n .catch(() => {\n throw new Error(\n `We couldn't load \"${__PATH_PREFIX__}/page-data/sq/d/${staticQueryHash}.json\"`\n )\n })\n })\n ).then(staticQueryResults => {\n const staticQueryResultsMap = {}\n\n staticQueryResults.forEach(({ staticQueryHash, jsonPayload }) => {\n staticQueryResultsMap[staticQueryHash] = jsonPayload\n this.staticQueryDb[staticQueryHash] = jsonPayload\n })\n\n return staticQueryResultsMap\n })\n\n return (\n Promise.all([componentChunkPromises, staticQueryBatchPromise])\n .then(([pageResources, staticQueryResults]) => {\n let payload\n if (pageResources) {\n payload = { ...pageResources, staticQueryResults }\n finalResult.payload = payload\n emitter.emit(`onPostLoadPageResources`, {\n page: payload,\n pageResources: payload,\n })\n }\n\n this.pageDb.set(pagePath, finalResult)\n\n if (finalResult.error) {\n return {\n error: finalResult.error,\n status: finalResult.status,\n }\n }\n\n return payload\n })\n // when static-query fail to load we throw a better error\n .catch(err => {\n return {\n error: err,\n status: PageResourceStatus.Error,\n }\n })\n )\n })\n })\n\n inFlightPromise\n .then(() => {\n this.inFlightDb.delete(pagePath)\n })\n .catch(error => {\n this.inFlightDb.delete(pagePath)\n throw error\n })\n\n this.inFlightDb.set(pagePath, inFlightPromise)\n\n return inFlightPromise\n }\n\n // returns undefined if the page does not exists in cache\n loadPageSync(rawPath, options = {}) {\n const pagePath = findPath(rawPath)\n if (this.pageDb.has(pagePath)) {\n const pageData = this.pageDb.get(pagePath)\n\n if (pageData.payload) {\n return pageData.payload\n }\n\n if (options?.withErrorDetails) {\n return {\n error: pageData.error,\n status: pageData.status,\n }\n }\n }\n return undefined\n }\n\n shouldPrefetch(pagePath) {\n // Skip prefetching if we know user is on slow or constrained connection\n if (!doesConnectionSupportPrefetch()) {\n return false\n }\n\n // Don't prefetch if this is a crawler bot\n if (navigator.userAgent && BOT_REGEX.test(navigator.userAgent)) {\n return false\n }\n\n // Check if the page exists.\n if (this.pageDb.has(pagePath)) {\n return false\n }\n\n return true\n }\n\n prefetch(pagePath) {\n if (!this.shouldPrefetch(pagePath)) {\n return {\n then: resolve => resolve(false),\n abort: () => {},\n }\n }\n if (this.prefetchTriggered.has(pagePath)) {\n return {\n then: resolve => resolve(true),\n abort: () => {},\n }\n }\n\n const defer = {\n resolve: null,\n reject: null,\n promise: null,\n }\n defer.promise = new Promise((resolve, reject) => {\n defer.resolve = resolve\n defer.reject = reject\n })\n this.prefetchQueued.push([pagePath, defer])\n const abortC = new AbortController()\n abortC.signal.addEventListener(`abort`, () => {\n const index = this.prefetchQueued.findIndex(([p]) => p === pagePath)\n // remove from the queue\n if (index !== -1) {\n this.prefetchQueued.splice(index, 1)\n }\n })\n\n if (!this.isPrefetchQueueRunning) {\n this.isPrefetchQueueRunning = true\n setTimeout(() => {\n this._processNextPrefetchBatch()\n }, 3000)\n }\n\n return {\n then: (resolve, reject) => defer.promise.then(resolve, reject),\n abort: abortC.abort.bind(abortC),\n }\n }\n\n _processNextPrefetchBatch() {\n const idleCallback = window.requestIdleCallback || (cb => setTimeout(cb, 0))\n\n idleCallback(() => {\n const toPrefetch = this.prefetchQueued.splice(0, 4)\n const prefetches = Promise.all(\n toPrefetch.map(([pagePath, dPromise]) => {\n // Tell plugins with custom prefetching logic that they should start\n // prefetching this path.\n if (!this.prefetchTriggered.has(pagePath)) {\n this.apiRunner(`onPrefetchPathname`, { pathname: pagePath })\n this.prefetchTriggered.add(pagePath)\n }\n\n // If a plugin has disabled core prefetching, stop now.\n if (this.prefetchDisabled) {\n return dPromise.resolve(false)\n }\n\n return this.doPrefetch(findPath(pagePath)).then(() => {\n if (!this.prefetchCompleted.has(pagePath)) {\n this.apiRunner(`onPostPrefetchPathname`, { pathname: pagePath })\n this.prefetchCompleted.add(pagePath)\n }\n\n dPromise.resolve(true)\n })\n })\n )\n\n if (this.prefetchQueued.length) {\n prefetches.then(() => {\n setTimeout(() => {\n this._processNextPrefetchBatch()\n }, 3000)\n })\n } else {\n this.isPrefetchQueueRunning = false\n }\n })\n }\n\n doPrefetch(pagePath) {\n const pageDataUrl = createPageDataUrl(pagePath)\n\n if (global.hasPartialHydration) {\n return Promise.all([\n prefetchHelper(pageDataUrl, {\n crossOrigin: `anonymous`,\n as: `fetch`,\n }).then(() =>\n // This was just prefetched, so will return a response from\n // the cache instead of making another request to the server\n this.loadPageDataJson(pagePath)\n ),\n prefetchHelper(pageDataUrl.replace(`.json`, `-rsc.json`), {\n crossOrigin: `anonymous`,\n as: `fetch`,\n }).then(() =>\n // This was just prefetched, so will return a response from\n // the cache instead of making another request to the server\n this.loadPartialHydrationJson(pagePath)\n ),\n ])\n } else {\n return prefetchHelper(pageDataUrl, {\n crossOrigin: `anonymous`,\n as: `fetch`,\n }).then(() =>\n // This was just prefetched, so will return a response from\n // the cache instead of making another request to the server\n this.loadPageDataJson(pagePath)\n )\n }\n }\n\n hovering(rawPath) {\n this.loadPage(rawPath)\n }\n\n getResourceURLsForPathname(rawPath) {\n const pagePath = findPath(rawPath)\n const page = this.pageDataDb.get(pagePath)\n if (page) {\n const pageResources = toPageResources(page.payload)\n\n return [\n ...createComponentUrls(pageResources.page.componentChunkName),\n createPageDataUrl(pagePath),\n ]\n } else {\n return null\n }\n }\n\n isPageNotFound(rawPath) {\n const pagePath = findPath(rawPath)\n const page = this.pageDb.get(pagePath)\n return !page || page.notFound\n }\n\n loadAppData(retries = 0) {\n return this.memoizedGet(`${__PATH_PREFIX__}/page-data/app-data.json`).then(\n req => {\n const { status, responseText } = req\n\n let appData\n\n if (status !== 200 && retries < 3) {\n // Retry 3 times incase of non-200 responses\n return this.loadAppData(retries + 1)\n }\n\n // Handle 200\n if (status === 200) {\n try {\n const jsonPayload = JSON.parse(responseText)\n if (jsonPayload.webpackCompilationHash === undefined) {\n throw new Error(`not a valid app-data response`)\n }\n\n appData = jsonPayload\n } catch (err) {\n // continue regardless of error\n }\n }\n\n return appData\n }\n )\n }\n}\n\nconst createComponentUrls = componentChunkName =>\n (window.___chunkMapping[componentChunkName] || []).map(\n chunk => __PATH_PREFIX__ + chunk\n )\n\nexport class ProdLoader extends BaseLoader {\n constructor(asyncRequires, matchPaths, pageData) {\n const loadComponent = (chunkName, exportType = `components`) => {\n if (!global.hasPartialHydration) {\n exportType = `components`\n }\n\n if (!asyncRequires[exportType][chunkName]) {\n throw new Error(\n `We couldn't find the correct component chunk with the name \"${chunkName}\"`\n )\n }\n\n return (\n asyncRequires[exportType][chunkName]()\n // loader will handle the case when component is error\n .catch(err => err)\n )\n }\n\n super(loadComponent, matchPaths)\n\n if (pageData) {\n this.pageDataDb.set(findPath(pageData.path), {\n pagePath: pageData.path,\n payload: pageData,\n status: `success`,\n })\n }\n }\n\n doPrefetch(pagePath) {\n return super.doPrefetch(pagePath).then(result => {\n if (result.status !== PageResourceStatus.Success) {\n return Promise.resolve()\n }\n const pageData = result.payload\n const chunkName = pageData.componentChunkName\n const componentUrls = createComponentUrls(chunkName)\n return Promise.all(componentUrls.map(prefetchHelper)).then(() => pageData)\n })\n }\n\n loadPageDataJson(rawPath) {\n return super.loadPageDataJson(rawPath).then(data => {\n if (data.notFound) {\n if (shouldAbortFetch(rawPath)) {\n return data\n }\n // check if html file exist using HEAD request:\n // if it does we should navigate to it instead of showing 404\n return doFetch(rawPath, `HEAD`).then(req => {\n if (req.status === 200) {\n // page (.html file) actually exist (or we asked for 404 )\n // returning page resources status as errored to trigger\n // regular browser navigation to given page\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n // if HEAD request wasn't 200, return notFound result\n // and show 404 page\n return data\n })\n }\n return data\n })\n }\n\n loadPartialHydrationJson(rawPath) {\n return super.loadPartialHydrationJson(rawPath).then(data => {\n if (data.notFound) {\n if (shouldAbortFetch(rawPath)) {\n return data\n }\n // check if html file exist using HEAD request:\n // if it does we should navigate to it instead of showing 404\n return doFetch(rawPath, `HEAD`).then(req => {\n if (req.status === 200) {\n // page (.html file) actually exist (or we asked for 404 )\n // returning page resources status as errored to trigger\n // regular browser navigation to given page\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n // if HEAD request wasn't 200, return notFound result\n // and show 404 page\n return data\n })\n }\n return data\n })\n }\n}\n\nlet instance\n\nexport const setLoader = _loader => {\n instance = _loader\n}\n\nexport const publicLoader = {\n enqueue: rawPath => instance.prefetch(rawPath),\n\n // Real methods\n getResourceURLsForPathname: rawPath =>\n instance.getResourceURLsForPathname(rawPath),\n loadPage: rawPath => instance.loadPage(rawPath),\n // TODO add deprecation to v4 so people use withErrorDetails and then we can remove in v5 and change default behaviour\n loadPageSync: (rawPath, options = {}) =>\n instance.loadPageSync(rawPath, options),\n prefetch: rawPath => instance.prefetch(rawPath),\n isPageNotFound: rawPath => instance.isPageNotFound(rawPath),\n hovering: rawPath => instance.hovering(rawPath),\n loadAppData: () => instance.loadAppData(),\n}\n\nexport default publicLoader\n\nexport function getStaticQueryResults() {\n if (instance) {\n return instance.staticQueryDb\n } else {\n return {}\n }\n}\n\nexport function getSliceResults() {\n if (instance) {\n return instance.slicesDb\n } else {\n return {}\n }\n}\n","import { useEffect } from \"react\"\n\n/*\n * Calls callback in an effect and renders children\n */\nexport function FireCallbackInEffect({ children, callback }) {\n useEffect(() => {\n callback()\n })\n\n return children\n}\n","export const VALID_NODE_NAMES = [\n `link`,\n `meta`,\n `style`,\n `title`,\n `base`,\n `noscript`,\n `script`,\n `html`,\n `body`,\n]\n","import { VALID_NODE_NAMES } from \"./constants\"\n\n/**\n * Filter the props coming from a page down to just the ones that are relevant for head.\n * This e.g. filters out properties that are undefined during SSR.\n */\nexport function filterHeadProps(input) {\n return {\n location: {\n pathname: input.location.pathname,\n },\n params: input.params,\n data: input.data || {},\n serverData: input.serverData,\n pageContext: input.pageContext,\n }\n}\n\n/**\n * Throw error if Head export is not a valid function\n */\nexport function headExportValidator(head) {\n if (typeof head !== `function`)\n throw new Error(\n `Expected \"Head\" export to be a function got \"${typeof head}\".`\n )\n}\n\n/**\n * Warn once for same messsage\n */\nlet warnOnce = _ => {}\nif (process.env.NODE_ENV !== `production`) {\n const warnings = new Set()\n warnOnce = msg => {\n if (!warnings.has(msg)) {\n console.warn(msg)\n }\n warnings.add(msg)\n }\n}\n\n/**\n * Warn for invalid tags in Head which may have been directly added or introduced by `wrapRootElement`\n * @param {string} tagName\n */\nexport function warnForInvalidTag(tagName) {\n if (process.env.NODE_ENV !== `production`) {\n const warning = createWarningForInvalidTag(tagName)\n warnOnce(warning)\n }\n}\n\nfunction createWarningForInvalidTag(tagName) {\n return `<${tagName}> is not a valid head element. Please use one of the following: ${VALID_NODE_NAMES.join(\n `, `\n )}.\\n\\nAlso make sure that wrapRootElement in gatsby-ssr/gatsby-browser doesn't contain UI elements: https://gatsby.dev/invalid-head-elements`\n}\n\n/**\n * When a `nonce` is present on an element, browsers such as Chrome and Firefox strip it out of the\n * actual HTML attributes for security reasons *when the element is added to the document*. Thus,\n * given two equivalent elements that have nonces, `Element,isEqualNode()` will return false if one\n * of those elements gets added to the document. Although the `element.nonce` property will be the\n * same for both elements, the one that was added to the document will return an empty string for\n * its nonce HTML attribute value.\n *\n * This custom `isEqualNode()` function therefore removes the nonce value from the `newTag` before\n * comparing it to `oldTag`, restoring it afterwards.\n *\n * For more information, see:\n * https://bugs.chromium.org/p/chromium/issues/detail?id=1211471#c12\n */\nexport function isEqualNode(oldTag, newTag) {\n if (oldTag instanceof HTMLElement && newTag instanceof HTMLElement) {\n const nonce = newTag.getAttribute(`nonce`)\n // Only strip the nonce if `oldTag` has had it stripped. An element's nonce attribute will not\n // be stripped if there is no content security policy response header that includes a nonce.\n if (nonce && !oldTag.getAttribute(`nonce`)) {\n const cloneTag = newTag.cloneNode(true)\n cloneTag.setAttribute(`nonce`, ``)\n cloneTag.nonce = nonce\n return nonce === oldTag.nonce && oldTag.isEqualNode(cloneTag)\n }\n }\n\n return oldTag.isEqualNode(newTag)\n}\n\nexport function diffNodes({ oldNodes, newNodes, onStale, onNew }) {\n for (const existingHeadElement of oldNodes) {\n const indexInNewNodes = newNodes.findIndex(e =>\n isEqualNode(e, existingHeadElement)\n )\n\n if (indexInNewNodes === -1) {\n onStale(existingHeadElement)\n } else {\n // this node is re-created as-is, so we keep old node, and remove it from list of new nodes (as we handled it already here)\n newNodes.splice(indexInNewNodes, 1)\n }\n }\n\n // remaing new nodes didn't have matching old node, so need to be added\n for (const newNode of newNodes) {\n onNew(newNode)\n }\n}\n\nexport function getValidHeadNodesAndAttributes(\n rootNode,\n htmlAndBodyAttributes = {\n html: {},\n body: {},\n }\n) {\n const seenIds = new Map()\n const validHeadNodes = []\n\n // Filter out non-element nodes before looping since we don't care about them\n for (const node of rootNode.childNodes) {\n const nodeName = node.nodeName.toLowerCase()\n const id = node.attributes?.id?.value\n\n if (!isElementType(node)) continue\n\n if (isValidNodeName(nodeName)) {\n // and tags are treated differently, in that we don't render them, we only extract the attributes and apply them separetely\n if (nodeName === `html` || nodeName === `body`) {\n for (const attribute of node.attributes) {\n const isStyleAttribute = attribute.name === `style`\n\n // Merge attributes for same nodeName from previous loop iteration\n htmlAndBodyAttributes[nodeName] = {\n ...htmlAndBodyAttributes[nodeName],\n }\n\n if (!isStyleAttribute) {\n htmlAndBodyAttributes[nodeName][attribute.name] = attribute.value\n }\n\n // If there is already a style attribute, we need to merge them as otherwise the last one will \"win\"\n if (isStyleAttribute) {\n htmlAndBodyAttributes[nodeName].style = `${\n htmlAndBodyAttributes[nodeName]?.style\n ? htmlAndBodyAttributes[nodeName].style\n : ``\n }${attribute.value} `\n }\n }\n } else {\n let clonedNode = node.cloneNode(true)\n clonedNode.setAttribute(`data-gatsby-head`, true)\n\n // // This is hack to make script tags work\n if (clonedNode.nodeName.toLowerCase() === `script`) {\n clonedNode = massageScript(clonedNode)\n }\n // Duplicate ids are not allowed in the head, so we need to dedupe them\n if (id) {\n if (!seenIds.has(id)) {\n validHeadNodes.push(clonedNode)\n seenIds.set(id, validHeadNodes.length - 1)\n } else {\n const indexOfPreviouslyInsertedNode = seenIds.get(id)\n validHeadNodes[\n indexOfPreviouslyInsertedNode\n ].parentNode?.removeChild(\n validHeadNodes[indexOfPreviouslyInsertedNode]\n )\n validHeadNodes[indexOfPreviouslyInsertedNode] = clonedNode\n }\n } else {\n validHeadNodes.push(clonedNode)\n }\n }\n } else {\n warnForInvalidTag(nodeName)\n }\n\n if (node.childNodes.length) {\n validHeadNodes.push(\n ...getValidHeadNodesAndAttributes(node, htmlAndBodyAttributes)\n .validHeadNodes\n )\n }\n }\n\n return { validHeadNodes, htmlAndBodyAttributes }\n}\n\nfunction massageScript(node) {\n const script = document.createElement(`script`)\n for (const attr of node.attributes) {\n script.setAttribute(attr.name, attr.value)\n }\n script.innerHTML = node.innerHTML\n\n return script\n}\n\nexport function isValidNodeName(nodeName) {\n return VALID_NODE_NAMES.includes(nodeName)\n}\n/*\n * For Head, we only care about element nodes(type = 1), so this util is used to skip over non-element nodes\n * For Node type, see https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType\n */\nexport function isElementType(node) {\n return node.nodeType === 1\n}\n\n/**\n * Removes all the head elements that were added by `Head`\n */\nexport function removePrevHeadElements() {\n const prevHeadNodes = document.querySelectorAll(`[data-gatsby-head]`)\n for (const node of prevHeadNodes) {\n node.parentNode.removeChild(node)\n }\n}\n\nexport function applyHtmlAndBodyAttributes(htmlAndBodyAttributes) {\n if (!htmlAndBodyAttributes) return\n\n const { html, body } = htmlAndBodyAttributes\n\n const htmlElement = document.querySelector(`html`)\n if (htmlElement) {\n Object.entries(html).forEach(([attributeName, attributeValue]) => {\n htmlElement.setAttribute(attributeName, attributeValue)\n })\n }\n\n const bodyElement = document.querySelector(`body`)\n if (bodyElement) {\n Object.entries(body).forEach(([attributeName, attributeValue]) => {\n bodyElement.setAttribute(attributeName, attributeValue)\n })\n }\n}\n\nexport function removeHtmlAndBodyAttributes(htmlAndBodyattributeList) {\n if (!htmlAndBodyattributeList) return\n\n const { html, body } = htmlAndBodyattributeList\n\n if (html) {\n const htmlElement = document.querySelector(`html`)\n html.forEach(attributeName => {\n if (htmlElement) {\n htmlElement.removeAttribute(attributeName)\n }\n })\n }\n\n if (body) {\n const bodyElement = document.querySelector(`body`)\n body.forEach(attributeName => {\n if (bodyElement) {\n bodyElement.removeAttribute(attributeName)\n }\n })\n }\n}\n","import React from \"react\"\nimport { useEffect } from \"react\"\nimport { StaticQueryContext } from \"gatsby\"\nimport { LocationProvider } from \"@gatsbyjs/reach-router\"\nimport { reactDOMUtils } from \"../react-dom-utils\"\nimport { FireCallbackInEffect } from \"./components/fire-callback-in-effect\"\nimport {\n headExportValidator,\n filterHeadProps,\n diffNodes,\n getValidHeadNodesAndAttributes,\n removePrevHeadElements,\n applyHtmlAndBodyAttributes,\n removeHtmlAndBodyAttributes,\n} from \"./utils\"\nimport { apiRunner } from \"../api-runner-browser\"\n\nconst hiddenRoot = document.createElement(`div`)\nconst keysOfHtmlAndBodyAttributes = {\n html: [],\n body: [],\n}\n\nconst onHeadRendered = () => {\n const { validHeadNodes, htmlAndBodyAttributes } =\n getValidHeadNodesAndAttributes(hiddenRoot)\n\n keysOfHtmlAndBodyAttributes.html = Object.keys(htmlAndBodyAttributes.html)\n keysOfHtmlAndBodyAttributes.body = Object.keys(htmlAndBodyAttributes.body)\n\n applyHtmlAndBodyAttributes(htmlAndBodyAttributes)\n\n /**\n * The rest of the code block below is a diffing mechanism to ensure that\n * the head elements aren't duplicted on every re-render.\n */\n const existingHeadElements = document.querySelectorAll(`[data-gatsby-head]`)\n\n if (existingHeadElements.length === 0) {\n document.head.append(...validHeadNodes)\n return\n }\n\n const newHeadNodes = []\n diffNodes({\n oldNodes: existingHeadElements,\n newNodes: validHeadNodes,\n onStale: node => node.parentNode.removeChild(node),\n onNew: node => newHeadNodes.push(node),\n })\n\n document.head.append(...newHeadNodes)\n}\n\nif (process.env.BUILD_STAGE === `develop`) {\n // sigh ... and elements are not valid descedents of
(our hidden element)\n // react-dom in dev mode will warn about this. There doesn't seem to be a way to render arbitrary\n // user Head without hitting this issue (our hidden element could be just \"new Document()\", but\n // this can only have 1 child, and we don't control what is being rendered so that's not an option)\n // instead we continue to render to
, and just silence warnings for and elements\n // https://github.com/facebook/react/blob/e2424f33b3ad727321fc12e75c5e94838e84c2b5/packages/react-dom-bindings/src/client/validateDOMNesting.js#L498-L520\n const originalConsoleError = console.error.bind(console)\n console.error = (...args) => {\n if (\n Array.isArray(args) &&\n args.length >= 2 &&\n args[0]?.includes?.(`validateDOMNesting(...): %s cannot appear as`) &&\n (args[1] === `` || args[1] === ``)\n ) {\n return undefined\n }\n return originalConsoleError(...args)\n }\n\n /* We set up observer to be able to regenerate after react-refresh\n updates our hidden element.\n */\n const observer = new MutationObserver(onHeadRendered)\n observer.observe(hiddenRoot, {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true,\n })\n}\n\nexport function headHandlerForBrowser({\n pageComponent,\n staticQueryResults,\n pageComponentProps,\n}) {\n useEffect(() => {\n if (pageComponent?.Head) {\n headExportValidator(pageComponent.Head)\n\n const { render } = reactDOMUtils()\n\n const HeadElement = (\n \n )\n\n const WrapHeadElement = apiRunner(\n `wrapRootElement`,\n { element: HeadElement },\n HeadElement,\n ({ result }) => {\n return { element: result }\n }\n ).pop()\n\n render(\n // just a hack to call the callback after react has done first render\n // Note: In dev, we call onHeadRendered twice( in FireCallbackInEffect and after mutualution observer dectects initail render into hiddenRoot) this is for hot reloading\n // In Prod we only call onHeadRendered in FireCallbackInEffect to render to head\n \n \n {WrapHeadElement}\n \n ,\n hiddenRoot\n )\n }\n\n return () => {\n removePrevHeadElements()\n removeHtmlAndBodyAttributes(keysOfHtmlAndBodyAttributes)\n }\n })\n}\n","import React, { Suspense, createElement } from \"react\"\nimport PropTypes from \"prop-types\"\nimport { apiRunner } from \"./api-runner-browser\"\nimport { grabMatchParams } from \"./find-path\"\nimport { headHandlerForBrowser } from \"./head/head-export-handler-for-browser\"\n\n// Renders page\nfunction PageRenderer(props) {\n const pageComponentProps = {\n ...props,\n params: {\n ...grabMatchParams(props.location.pathname),\n ...props.pageResources.json.pageContext.__params,\n },\n }\n\n const preferDefault = m => (m && m.default) || m\n\n let pageElement\n if (props.pageResources.partialHydration) {\n pageElement = props.pageResources.partialHydration\n } else {\n pageElement = createElement(preferDefault(props.pageResources.component), {\n ...pageComponentProps,\n key: props.path || props.pageResources.page.path,\n })\n }\n\n const pageComponent = props.pageResources.head\n\n headHandlerForBrowser({\n pageComponent,\n staticQueryResults: props.pageResources.staticQueryResults,\n pageComponentProps,\n })\n\n const wrappedPage = apiRunner(\n `wrapPageElement`,\n {\n element: pageElement,\n props: pageComponentProps,\n },\n pageElement,\n ({ result }) => {\n return { element: result, props: pageComponentProps }\n }\n ).pop()\n\n return wrappedPage\n}\n\nPageRenderer.propTypes = {\n location: PropTypes.object.isRequired,\n pageResources: PropTypes.object.isRequired,\n data: PropTypes.object,\n pageContext: PropTypes.object.isRequired,\n}\n\nexport default PageRenderer\n","// This is extracted to separate module because it's shared\n// between browser and SSR code\nexport const RouteAnnouncerProps = {\n id: `gatsby-announcer`,\n style: {\n position: `absolute`,\n top: 0,\n width: 1,\n height: 1,\n padding: 0,\n overflow: `hidden`,\n clip: `rect(0, 0, 0, 0)`,\n whiteSpace: `nowrap`,\n border: 0,\n },\n \"aria-live\": `assertive`,\n \"aria-atomic\": `true`,\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport loader, { PageResourceStatus } from \"./loader\"\nimport { maybeGetBrowserRedirect } from \"./redirect-utils.js\"\nimport { apiRunner } from \"./api-runner-browser\"\nimport emitter from \"./emitter\"\nimport { RouteAnnouncerProps } from \"./route-announcer-props\"\nimport {\n navigate as reachNavigate,\n globalHistory,\n} from \"@gatsbyjs/reach-router\"\nimport { parsePath } from \"gatsby-link\"\n\nfunction maybeRedirect(pathname) {\n const redirect = maybeGetBrowserRedirect(pathname)\n const { hash, search } = window.location\n\n if (redirect != null) {\n window.___replace(redirect.toPath + search + hash)\n return true\n } else {\n return false\n }\n}\n\n// Catch unhandled chunk loading errors and force a restart of the app.\nlet nextRoute = ``\n\nwindow.addEventListener(`unhandledrejection`, event => {\n if (/loading chunk \\d* failed./i.test(event.reason)) {\n if (nextRoute) {\n window.location.pathname = nextRoute\n }\n }\n})\n\nconst onPreRouteUpdate = (location, prevLocation) => {\n if (!maybeRedirect(location.pathname)) {\n nextRoute = location.pathname\n apiRunner(`onPreRouteUpdate`, { location, prevLocation })\n }\n}\n\nconst onRouteUpdate = (location, prevLocation) => {\n if (!maybeRedirect(location.pathname)) {\n apiRunner(`onRouteUpdate`, { location, prevLocation })\n if (\n process.env.GATSBY_QUERY_ON_DEMAND &&\n process.env.GATSBY_QUERY_ON_DEMAND_LOADING_INDICATOR === `true`\n ) {\n emitter.emit(`onRouteUpdate`, { location, prevLocation })\n }\n }\n}\n\nconst navigate = (to, options = {}) => {\n // Support forward/backward navigation with numbers\n // navigate(-2) (jumps back 2 history steps)\n // navigate(2) (jumps forward 2 history steps)\n if (typeof to === `number`) {\n globalHistory.navigate(to)\n return\n }\n\n const { pathname, search, hash } = parsePath(to)\n const redirect = maybeGetBrowserRedirect(pathname)\n\n // If we're redirecting, just replace the passed in pathname\n // to the one we want to redirect to.\n if (redirect) {\n to = redirect.toPath + search + hash\n }\n\n // If we had a service worker update, no matter the path, reload window and\n // reset the pathname whitelist\n if (window.___swUpdated) {\n window.location = pathname + search + hash\n return\n }\n\n // Start a timer to wait for a second before transitioning and showing a\n // loader in case resources aren't around yet.\n const timeoutId = setTimeout(() => {\n emitter.emit(`onDelayedLoadPageResources`, { pathname })\n apiRunner(`onRouteUpdateDelayed`, {\n location: window.location,\n })\n }, 1000)\n\n loader.loadPage(pathname + search).then(pageResources => {\n // If no page resources, then refresh the page\n // Do this, rather than simply `window.location.reload()`, so that\n // pressing the back/forward buttons work - otherwise when pressing\n // back, the browser will just change the URL and expect JS to handle\n // the change, which won't always work since it might not be a Gatsby\n // page.\n if (!pageResources || pageResources.status === PageResourceStatus.Error) {\n window.history.replaceState({}, ``, location.href)\n window.location = pathname\n clearTimeout(timeoutId)\n return\n }\n\n // If the loaded page has a different compilation hash to the\n // window, then a rebuild has occurred on the server. Reload.\n if (process.env.NODE_ENV === `production` && pageResources) {\n if (\n pageResources.page.webpackCompilationHash !==\n window.___webpackCompilationHash\n ) {\n // Purge plugin-offline cache\n if (\n `serviceWorker` in navigator &&\n navigator.serviceWorker.controller !== null &&\n navigator.serviceWorker.controller.state === `activated`\n ) {\n navigator.serviceWorker.controller.postMessage({\n gatsbyApi: `clearPathResources`,\n })\n }\n\n window.location = pathname + search + hash\n }\n }\n reachNavigate(to, options)\n clearTimeout(timeoutId)\n })\n}\n\nfunction shouldUpdateScroll(prevRouterProps, { location }) {\n const { pathname, hash } = location\n const results = apiRunner(`shouldUpdateScroll`, {\n prevRouterProps,\n // `pathname` for backwards compatibility\n pathname,\n routerProps: { location },\n getSavedScrollPosition: args => [\n 0,\n // FIXME this is actually a big code smell, we should fix this\n // eslint-disable-next-line @babel/no-invalid-this\n this._stateStorage.read(args, args.key),\n ],\n })\n if (results.length > 0) {\n // Use the latest registered shouldUpdateScroll result, this allows users to override plugin's configuration\n // @see https://github.com/gatsbyjs/gatsby/issues/12038\n return results[results.length - 1]\n }\n\n if (prevRouterProps) {\n const {\n location: { pathname: oldPathname },\n } = prevRouterProps\n if (oldPathname === pathname) {\n // Scroll to element if it exists, if it doesn't, or no hash is provided,\n // scroll to top.\n return hash ? decodeURI(hash.slice(1)) : [0, 0]\n }\n }\n return true\n}\n\nfunction init() {\n // The \"scroll-behavior\" package expects the \"action\" to be on the location\n // object so let's copy it over.\n globalHistory.listen(args => {\n args.location.action = args.action\n })\n\n window.___push = to => navigate(to, { replace: false })\n window.___replace = to => navigate(to, { replace: true })\n window.___navigate = (to, options) => navigate(to, options)\n}\n\nclass RouteAnnouncer extends React.Component {\n constructor(props) {\n super(props)\n this.announcementRef = React.createRef()\n }\n\n componentDidUpdate(prevProps, nextProps) {\n requestAnimationFrame(() => {\n let pageName = `new page at ${this.props.location.pathname}`\n if (document.title) {\n pageName = document.title\n }\n const pageHeadings = document.querySelectorAll(`#gatsby-focus-wrapper h1`)\n if (pageHeadings && pageHeadings.length) {\n pageName = pageHeadings[0].textContent\n }\n const newAnnouncement = `Navigated to ${pageName}`\n if (this.announcementRef.current) {\n const oldAnnouncement = this.announcementRef.current.innerText\n if (oldAnnouncement !== newAnnouncement) {\n this.announcementRef.current.innerText = newAnnouncement\n }\n }\n })\n }\n\n render() {\n return \n }\n}\n\nconst compareLocationProps = (prevLocation, nextLocation) => {\n if (prevLocation.href !== nextLocation.href) {\n return true\n }\n\n if (prevLocation?.state?.key !== nextLocation?.state?.key) {\n return true\n }\n\n return false\n}\n\n// Fire on(Pre)RouteUpdate APIs\nclass RouteUpdates extends React.Component {\n constructor(props) {\n super(props)\n onPreRouteUpdate(props.location, null)\n }\n\n componentDidMount() {\n onRouteUpdate(this.props.location, null)\n }\n\n shouldComponentUpdate(nextProps) {\n if (compareLocationProps(this.props.location, nextProps.location)) {\n onPreRouteUpdate(nextProps.location, this.props.location)\n return true\n }\n return false\n }\n\n componentDidUpdate(prevProps) {\n if (compareLocationProps(prevProps.location, this.props.location)) {\n onRouteUpdate(this.props.location, prevProps.location)\n }\n }\n\n render() {\n return (\n \n {this.props.children}\n \n \n )\n }\n}\n\nRouteUpdates.propTypes = {\n location: PropTypes.object.isRequired,\n}\n\nexport { init, shouldUpdateScroll, RouteUpdates, maybeGetBrowserRedirect }\n","// Pulled from react-compat\n// https://github.com/developit/preact-compat/blob/7c5de00e7c85e2ffd011bf3af02899b63f699d3a/src/index.js#L349\nfunction shallowDiffers(a, b) {\n for (var i in a) {\n if (!(i in b)) return true;\n }for (var _i in b) {\n if (a[_i] !== b[_i]) return true;\n }return false;\n}\n\nexport default (function (instance, nextProps, nextState) {\n return shallowDiffers(instance.props, nextProps) || shallowDiffers(instance.state, nextState);\n});","import React from \"react\"\nimport loader, { PageResourceStatus } from \"./loader\"\nimport shallowCompare from \"shallow-compare\"\n\nclass EnsureResources extends React.Component {\n constructor(props) {\n super()\n const { location, pageResources } = props\n this.state = {\n location: { ...location },\n pageResources:\n pageResources ||\n loader.loadPageSync(location.pathname + location.search, {\n withErrorDetails: true,\n }),\n }\n }\n\n static getDerivedStateFromProps({ location }, prevState) {\n if (prevState.location.href !== location.href) {\n const pageResources = loader.loadPageSync(\n location.pathname + location.search,\n {\n withErrorDetails: true,\n }\n )\n\n return {\n pageResources,\n location: { ...location },\n }\n }\n\n return {\n location: { ...location },\n }\n }\n\n loadResources(rawPath) {\n loader.loadPage(rawPath).then(pageResources => {\n if (pageResources && pageResources.status !== PageResourceStatus.Error) {\n this.setState({\n location: { ...window.location },\n pageResources,\n })\n } else {\n window.history.replaceState({}, ``, location.href)\n window.location = rawPath\n }\n })\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n // Always return false if we're missing resources.\n if (!nextState.pageResources) {\n this.loadResources(\n nextProps.location.pathname + nextProps.location.search\n )\n return false\n }\n\n if (\n process.env.BUILD_STAGE === `develop` &&\n nextState.pageResources.stale\n ) {\n this.loadResources(\n nextProps.location.pathname + nextProps.location.search\n )\n return false\n }\n\n // Check if the component or json have changed.\n if (this.state.pageResources !== nextState.pageResources) {\n return true\n }\n if (\n this.state.pageResources.component !== nextState.pageResources.component\n ) {\n return true\n }\n\n if (this.state.pageResources.json !== nextState.pageResources.json) {\n return true\n }\n // Check if location has changed on a page using internal routing\n // via matchPath configuration.\n if (\n this.state.location.key !== nextState.location.key &&\n nextState.pageResources.page &&\n (nextState.pageResources.page.matchPath ||\n nextState.pageResources.page.path)\n ) {\n return true\n }\n return shallowCompare(this, nextProps, nextState)\n }\n\n render() {\n if (\n process.env.NODE_ENV !== `production` &&\n (!this.state.pageResources ||\n this.state.pageResources.status === PageResourceStatus.Error)\n ) {\n const message = `EnsureResources was not able to find resources for path: \"${this.props.location.pathname}\"\nThis typically means that an issue occurred building components for that path.\nRun \\`gatsby clean\\` to remove any cached elements.`\n if (this.state.pageResources?.error) {\n console.error(message)\n throw this.state.pageResources.error\n }\n\n throw new Error(message)\n }\n\n return this.props.children(this.state)\n }\n}\n\nexport default EnsureResources\n","import { apiRunner, apiRunnerAsync } from \"./api-runner-browser\"\nimport React from \"react\"\nimport { Router, navigate, Location, BaseContext } from \"@gatsbyjs/reach-router\"\nimport { ScrollContext } from \"gatsby-react-router-scroll\"\nimport { StaticQueryContext } from \"./static-query\"\nimport {\n SlicesMapContext,\n SlicesContext,\n SlicesResultsContext,\n} from \"./slice/context\"\nimport {\n shouldUpdateScroll,\n init as navigationInit,\n RouteUpdates,\n} from \"./navigation\"\nimport emitter from \"./emitter\"\nimport PageRenderer from \"./page-renderer\"\nimport asyncRequires from \"$virtual/async-requires\"\nimport {\n setLoader,\n ProdLoader,\n publicLoader,\n PageResourceStatus,\n getStaticQueryResults,\n getSliceResults,\n} from \"./loader\"\nimport EnsureResources from \"./ensure-resources\"\nimport stripPrefix from \"./strip-prefix\"\n\n// Generated during bootstrap\nimport matchPaths from \"$virtual/match-paths.json\"\nimport { reactDOMUtils } from \"./react-dom-utils\"\n\nconst loader = new ProdLoader(asyncRequires, matchPaths, window.pageData)\nsetLoader(loader)\nloader.setApiRunner(apiRunner)\n\nconst { render, hydrate } = reactDOMUtils()\n\nwindow.asyncRequires = asyncRequires\nwindow.___emitter = emitter\nwindow.___loader = publicLoader\n\nnavigationInit()\n\nconst reloadStorageKey = `gatsby-reload-compilation-hash-match`\n\napiRunnerAsync(`onClientEntry`).then(() => {\n // Let plugins register a service worker. The plugin just needs\n // to return true.\n if (apiRunner(`registerServiceWorker`).filter(Boolean).length > 0) {\n require(`./register-service-worker`)\n }\n\n // In gatsby v2 if Router is used in page using matchPaths\n // paths need to contain full path.\n // For example:\n // - page have `/app/*` matchPath\n // - inside template user needs to use `/app/xyz` as path\n // Resetting `basepath`/`baseuri` keeps current behaviour\n // to not introduce breaking change.\n // Remove this in v3\n const RouteHandler = props => (\n \n \n \n )\n\n const DataContext = React.createContext({})\n\n const slicesContext = {\n renderEnvironment: `browser`,\n }\n\n class GatsbyRoot extends React.Component {\n render() {\n const { children } = this.props\n return (\n \n {({ location }) => (\n \n {({ pageResources, location }) => {\n const staticQueryResults = getStaticQueryResults()\n const sliceResults = getSliceResults()\n\n return (\n \n \n \n \n \n {children}\n \n \n \n \n \n )\n }}\n \n )}\n \n )\n }\n }\n\n class LocationHandler extends React.Component {\n render() {\n return (\n \n {({ pageResources, location }) => (\n \n \n \n \n \n \n \n )}\n \n )\n }\n }\n\n const { pagePath, location: browserLoc } = window\n\n // Explicitly call navigate if the canonical path (window.pagePath)\n // is different to the browser path (window.location.pathname). SSR\n // page paths might include search params, while SSG and DSG won't.\n // If page path include search params we also compare query params.\n // But only if NONE of the following conditions hold:\n //\n // - The url matches a client side route (page.matchPath)\n // - it's a 404 page\n // - it's the offline plugin shell (/offline-plugin-app-shell-fallback/)\n if (\n pagePath &&\n __BASE_PATH__ + pagePath !==\n browserLoc.pathname + (pagePath.includes(`?`) ? browserLoc.search : ``) &&\n !(\n loader.findMatchPath(stripPrefix(browserLoc.pathname, __BASE_PATH__)) ||\n pagePath.match(/^\\/(404|500)(\\/?|.html)$/) ||\n pagePath.match(/^\\/offline-plugin-app-shell-fallback\\/?$/)\n )\n ) {\n navigate(\n __BASE_PATH__ +\n pagePath +\n (!pagePath.includes(`?`) ? browserLoc.search : ``) +\n browserLoc.hash,\n {\n replace: true,\n }\n )\n }\n\n // It's possible that sessionStorage can throw an exception if access is not granted, see https://github.com/gatsbyjs/gatsby/issues/34512\n const getSessionStorage = () => {\n try {\n return sessionStorage\n } catch {\n return null\n }\n }\n\n publicLoader.loadPage(browserLoc.pathname + browserLoc.search).then(page => {\n const sessionStorage = getSessionStorage()\n\n if (\n page?.page?.webpackCompilationHash &&\n page.page.webpackCompilationHash !== window.___webpackCompilationHash\n ) {\n // Purge plugin-offline cache\n if (\n `serviceWorker` in navigator &&\n navigator.serviceWorker.controller !== null &&\n navigator.serviceWorker.controller.state === `activated`\n ) {\n navigator.serviceWorker.controller.postMessage({\n gatsbyApi: `clearPathResources`,\n })\n }\n\n // We have not matching html + js (inlined `window.___webpackCompilationHash`)\n // with our data (coming from `app-data.json` file). This can cause issues such as\n // errors trying to load static queries (as list of static queries is inside `page-data`\n // which might not match to currently loaded `.js` scripts).\n // We are making attempt to reload if hashes don't match, but we also have to handle case\n // when reload doesn't fix it (possibly broken deploy) so we don't end up in infinite reload loop\n if (sessionStorage) {\n const isReloaded = sessionStorage.getItem(reloadStorageKey) === `1`\n\n if (!isReloaded) {\n sessionStorage.setItem(reloadStorageKey, `1`)\n window.location.reload(true)\n return\n }\n }\n }\n\n if (sessionStorage) {\n sessionStorage.removeItem(reloadStorageKey)\n }\n\n if (!page || page.status === PageResourceStatus.Error) {\n const message = `page resources for ${browserLoc.pathname} not found. Not rendering React`\n\n // if the chunk throws an error we want to capture the real error\n // This should help with https://github.com/gatsbyjs/gatsby/issues/19618\n if (page && page.error) {\n console.error(message)\n throw page.error\n }\n\n throw new Error(message)\n }\n\n const SiteRoot = apiRunner(\n `wrapRootElement`,\n { element: },\n ,\n ({ result }) => {\n return { element: result }\n }\n ).pop()\n\n const App = function App() {\n const onClientEntryRanRef = React.useRef(false)\n\n React.useEffect(() => {\n if (!onClientEntryRanRef.current) {\n onClientEntryRanRef.current = true\n if (performance.mark) {\n performance.mark(`onInitialClientRender`)\n }\n\n apiRunner(`onInitialClientRender`)\n }\n }, [])\n\n return {SiteRoot}\n }\n\n const focusEl = document.getElementById(`gatsby-focus-wrapper`)\n\n // Client only pages have any empty body so we just do a normal\n // render to avoid React complaining about hydration mis-matches.\n let defaultRenderer = render\n if (focusEl && focusEl.children.length) {\n defaultRenderer = hydrate\n }\n\n const renderer = apiRunner(\n `replaceHydrateFunction`,\n undefined,\n defaultRenderer\n )[0]\n\n function runRender() {\n const rootElement =\n typeof window !== `undefined`\n ? document.getElementById(`___gatsby`)\n : null\n\n renderer(, rootElement)\n }\n\n // https://github.com/madrobby/zepto/blob/b5ed8d607f67724788ec9ff492be297f64d47dfc/src/zepto.js#L439-L450\n // TODO remove IE 10 support\n const doc = document\n if (\n doc.readyState === `complete` ||\n (doc.readyState !== `loading` && !doc.documentElement.doScroll)\n ) {\n setTimeout(function () {\n runRender()\n }, 0)\n } else {\n const handler = function () {\n doc.removeEventListener(`DOMContentLoaded`, handler, false)\n window.removeEventListener(`load`, handler, false)\n\n runRender()\n }\n\n doc.addEventListener(`DOMContentLoaded`, handler, false)\n window.addEventListener(`load`, handler, false)\n }\n\n return\n })\n})\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nimport loader from \"./loader\"\nimport InternalPageRenderer from \"./page-renderer\"\n\nconst ProdPageRenderer = ({ location }) => {\n const pageResources = loader.loadPageSync(location.pathname)\n if (!pageResources) {\n return null\n }\n return React.createElement(InternalPageRenderer, {\n location,\n pageResources,\n ...pageResources.json,\n })\n}\n\nProdPageRenderer.propTypes = {\n location: PropTypes.shape({\n pathname: PropTypes.string.isRequired,\n }).isRequired,\n}\n\nexport default ProdPageRenderer\n","const preferDefault = m => (m && m.default) || m\n\nif (process.env.BUILD_STAGE === `develop`) {\n module.exports = preferDefault(require(`./public-page-renderer-dev`))\n} else if (process.env.BUILD_STAGE === `build-javascript`) {\n module.exports = preferDefault(require(`./public-page-renderer-prod`))\n} else {\n module.exports = () => null\n}\n","const map = new WeakMap()\n\nexport function reactDOMUtils() {\n const reactDomClient = require(`react-dom/client`)\n\n const render = (Component, el) => {\n let root = map.get(el)\n if (!root) {\n map.set(el, (root = reactDomClient.createRoot(el)))\n }\n root.render(Component)\n }\n\n const hydrate = (Component, el) => reactDomClient.hydrateRoot(el, Component)\n\n return { render, hydrate }\n}\n","import redirects from \"./redirects.json\"\n\n// Convert to a map for faster lookup in maybeRedirect()\n\nconst redirectMap = new Map()\nconst redirectIgnoreCaseMap = new Map()\n\nredirects.forEach(redirect => {\n if (redirect.ignoreCase) {\n redirectIgnoreCaseMap.set(redirect.fromPath, redirect)\n } else {\n redirectMap.set(redirect.fromPath, redirect)\n }\n})\n\nexport function maybeGetBrowserRedirect(pathname) {\n let redirect = redirectMap.get(pathname)\n if (!redirect) {\n redirect = redirectIgnoreCaseMap.get(pathname.toLowerCase())\n }\n return redirect\n}\n","import { apiRunner } from \"./api-runner-browser\"\n\nif (\n window.location.protocol !== `https:` &&\n window.location.hostname !== `localhost`\n) {\n console.error(\n `Service workers can only be used over HTTPS, or on localhost for development`\n )\n} else if (`serviceWorker` in navigator) {\n navigator.serviceWorker\n .register(`${__BASE_PATH__}/sw.js`)\n .then(function (reg) {\n reg.addEventListener(`updatefound`, () => {\n apiRunner(`onServiceWorkerUpdateFound`, { serviceWorker: reg })\n // The updatefound event implies that reg.installing is set; see\n // https://w3c.github.io/ServiceWorker/#service-worker-registration-updatefound-event\n const installingWorker = reg.installing\n console.log(`installingWorker`, installingWorker)\n installingWorker.addEventListener(`statechange`, () => {\n switch (installingWorker.state) {\n case `installed`:\n if (navigator.serviceWorker.controller) {\n // At this point, the old content will have been purged and the fresh content will\n // have been added to the cache.\n\n // We set a flag so Gatsby Link knows to refresh the page on next navigation attempt\n window.___swUpdated = true\n // We call the onServiceWorkerUpdateReady API so users can show update prompts.\n apiRunner(`onServiceWorkerUpdateReady`, { serviceWorker: reg })\n\n // If resources failed for the current page, reload.\n if (window.___failedResources) {\n console.log(`resources failed, SW updated - reloading`)\n window.location.reload()\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a \"Content is cached for offline use.\" message.\n console.log(`Content is now available offline!`)\n\n // Post to service worker that install is complete.\n // Delay to allow time for the event listener to be added --\n // otherwise fetch is called too soon and resources aren't cached.\n apiRunner(`onServiceWorkerInstalled`, { serviceWorker: reg })\n }\n break\n\n case `redundant`:\n console.error(`The installing service worker became redundant.`)\n apiRunner(`onServiceWorkerRedundant`, { serviceWorker: reg })\n break\n\n case `activated`:\n apiRunner(`onServiceWorkerActive`, { serviceWorker: reg })\n break\n }\n })\n })\n })\n .catch(function (e) {\n console.error(`Error during service worker registration:`, e)\n })\n}\n","import React from \"react\"\n\nconst SlicesResultsContext = React.createContext({})\nconst SlicesContext = React.createContext({})\nconst SlicesMapContext = React.createContext({})\nconst SlicesPropsContext = React.createContext({})\n\nexport {\n SlicesResultsContext,\n SlicesContext,\n SlicesMapContext,\n SlicesPropsContext,\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport { createServerOrClientContext } from \"./context-utils\"\n\nconst StaticQueryContext = createServerOrClientContext(`StaticQuery`, {})\n\nfunction StaticQueryDataRenderer({ staticQueryData, data, query, render }) {\n const finalData = data\n ? data.data\n : staticQueryData[query] && staticQueryData[query].data\n\n return (\n \n {finalData && render(finalData)}\n {!finalData &&
Loading (StaticQuery)
}\n \n )\n}\n\nlet warnedAboutStaticQuery = false\n\n// TODO(v6): Remove completely\nconst StaticQuery = props => {\n const { data, query, render, children } = props\n\n if (process.env.NODE_ENV === `development` && !warnedAboutStaticQuery) {\n console.warn(\n `The component is deprecated and will be removed in Gatsby v6. Use useStaticQuery instead. Refer to the migration guide for more information: https://gatsby.dev/migrating-4-to-5/#staticquery--is-deprecated`\n )\n warnedAboutStaticQuery = true\n }\n\n return (\n \n {staticQueryData => (\n \n )}\n \n )\n}\n\nStaticQuery.propTypes = {\n data: PropTypes.object,\n query: PropTypes.string.isRequired,\n render: PropTypes.func,\n children: PropTypes.func,\n}\n\nconst useStaticQuery = query => {\n if (\n typeof React.useContext !== `function` &&\n process.env.NODE_ENV === `development`\n ) {\n // TODO(v5): Remove since we require React >= 18\n throw new Error(\n `You're likely using a version of React that doesn't support Hooks\\n` +\n `Please update React and ReactDOM to 16.8.0 or later to use the useStaticQuery hook.`\n )\n }\n\n const context = React.useContext(StaticQueryContext)\n\n // query is a stringified number like `3303882` when wrapped with graphql, If a user forgets\n // to wrap the query in a grqphql, then casting it to a Number results in `NaN` allowing us to\n // catch the misuse of the API and give proper direction\n if (isNaN(Number(query))) {\n throw new Error(`useStaticQuery was called with a string but expects to be called using \\`graphql\\`. Try this:\n\nimport { useStaticQuery, graphql } from 'gatsby';\n\nuseStaticQuery(graphql\\`${query}\\`);\n`)\n }\n\n if (context[query]?.data) {\n return context[query].data\n } else {\n throw new Error(\n `The result of this StaticQuery could not be fetched.\\n\\n` +\n `This is likely a bug in Gatsby and if refreshing the page does not fix it, ` +\n `please open an issue in https://github.com/gatsbyjs/gatsby/issues`\n )\n }\n}\n\nexport { StaticQuery, StaticQueryContext, useStaticQuery }\n","import React from \"react\"\n\n// Ensure serverContext is not created more than once as React will throw when creating it more than once\n// https://github.com/facebook/react/blob/dd2d6522754f52c70d02c51db25eb7cbd5d1c8eb/packages/react/src/ReactServerContext.js#L101\nconst createServerContext = (name, defaultValue = null) => {\n /* eslint-disable no-undef */\n if (!globalThis.__SERVER_CONTEXT) {\n globalThis.__SERVER_CONTEXT = {}\n }\n\n if (!globalThis.__SERVER_CONTEXT[name]) {\n globalThis.__SERVER_CONTEXT[name] = React.createServerContext(\n name,\n defaultValue\n )\n }\n\n return globalThis.__SERVER_CONTEXT[name]\n}\n\nfunction createServerOrClientContext(name, defaultValue) {\n if (React.createServerContext) {\n return createServerContext(name, defaultValue)\n }\n\n return React.createContext(defaultValue)\n}\n\nexport { createServerOrClientContext }\n","/**\n * Remove a prefix from a string. Return the input string if the given prefix\n * isn't found.\n */\n\nexport default function stripPrefix(str, prefix = ``) {\n if (!prefix) {\n return str\n }\n\n if (str === prefix) {\n return `/`\n }\n\n if (str.startsWith(`${prefix}/`)) {\n return str.slice(prefix.length)\n }\n\n return str\n}\n","const { config } = require('@fortawesome/fontawesome-svg-core')\n\nexports.onClientEntry = () => {\n /* Prevents fontawesome auto css insertion */\n config.autoAddCss = false\n}\n","/* global __MANIFEST_PLUGIN_HAS_LOCALISATION__ */\nimport { withPrefix } from \"gatsby\";\nimport getManifestForPathname from \"./get-manifest-pathname\";\n\n// when we don't have localisation in our manifest, we tree shake everything away\nexport const onRouteUpdate = function onRouteUpdate({\n location\n}, pluginOptions) {\n if (__MANIFEST_PLUGIN_HAS_LOCALISATION__) {\n const {\n localize\n } = pluginOptions;\n const manifestFilename = getManifestForPathname(location.pathname, localize, true);\n const manifestEl = document.head.querySelector(`link[rel=\"manifest\"]`);\n if (manifestEl) {\n manifestEl.setAttribute(`href`, withPrefix(manifestFilename));\n }\n }\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\nvar _gatsby = require(\"gatsby\");\n/**\n * Get a manifest filename depending on localized pathname\n *\n * @param {string} pathname\n * @param {Array<{start_url: string, lang: string}>} localizedManifests\n * @param {boolean} shouldPrependPathPrefix\n * @return string\n */\nvar _default = (pathname, localizedManifests, shouldPrependPathPrefix = false) => {\n const defaultFilename = `manifest.webmanifest`;\n if (!Array.isArray(localizedManifests)) {\n return defaultFilename;\n }\n const localizedManifest = localizedManifests.find(app => {\n let startUrl = app.start_url;\n if (shouldPrependPathPrefix) {\n startUrl = (0, _gatsby.withPrefix)(startUrl);\n }\n return pathname.startsWith(startUrl);\n });\n if (!localizedManifest) {\n return defaultFilename;\n }\n return `manifest_${localizedManifest.lang}.webmanifest`;\n};\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = Wrapper;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _sal = _interopRequireDefault(require(\"sal.js\"));\n\nfunction Wrapper(_ref) {\n var children = _ref.children,\n path = _ref.path,\n options = _ref.options;\n (0, _react.useEffect)(function () {\n (0, _sal.default)(options);\n }, [path]);\n return children;\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\n\nrequire('sal.js/dist/sal.css');\n\nrequire('intersection-observer');\n\nvar React = require(\"react\");\n\nvar Wrapper = require('./Wrapper').default;\n\nexports.wrapPageElement = function (_ref, _ref2) {\n var element = _ref.element,\n props = _ref.props;\n var plugins = _ref2.plugins,\n options = (0, _objectWithoutPropertiesLoose2.default)(_ref2, [\"plugins\"]);\n return (\n /*#__PURE__*/\n React.createElement(Wrapper, {\n options: options,\n path: props.path\n }, element)\n );\n};","/**\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';\n\n// Exit early if we're not running in a browser.\nif (typeof window !== 'object') {\n return;\n}\n\n// Exit early if all IntersectionObserver and IntersectionObserverEntry\n// features are natively supported.\nif ('IntersectionObserver' in window &&\n 'IntersectionObserverEntry' in window &&\n 'intersectionRatio' in window.IntersectionObserverEntry.prototype) {\n\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,\n 'isIntersecting', {\n get: function () {\n return this.intersectionRatio > 0;\n }\n });\n }\n return;\n}\n\n\n/**\n * A local reference to the document.\n */\nvar document = window.document;\n\n\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 */\nvar registry = [];\n\n\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 */\nfunction IntersectionObserverEntry(entry) {\n this.time = entry.time;\n this.target = entry.target;\n this.rootBounds = entry.rootBounds;\n this.boundingClientRect = entry.boundingClientRect;\n this.intersectionRect = entry.intersectionRect || getEmptyRect();\n this.isIntersecting = !!entry.intersectionRect;\n\n // Calculates the intersection ratio.\n var targetRect = this.boundingClientRect;\n var targetArea = targetRect.width * targetRect.height;\n var intersectionRect = this.intersectionRect;\n var intersectionArea = intersectionRect.width * intersectionRect.height;\n\n // Sets intersection ratio.\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\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 */\nfunction IntersectionObserver(callback, opt_options) {\n\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) {\n throw new Error('root must be an Element');\n }\n\n // Binds and throttles `this._checkForIntersections`.\n this._checkForIntersections = throttle(\n this._checkForIntersections.bind(this), this.THROTTLE_TIMEOUT);\n\n // Private properties.\n this._callback = callback;\n this._observationTargets = [];\n this._queuedEntries = [];\n this._rootMarginValues = this._parseRootMargin(options.rootMargin);\n\n // Public properties.\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}\n\n\n/**\n * The minimum interval within which the document will be checked for\n * intersection changes.\n */\nIntersectionObserver.prototype.THROTTLE_TIMEOUT = 100;\n\n\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 */\nIntersectionObserver.prototype.POLL_INTERVAL = null;\n\n/**\n * Use a mutation observer on the root element\n * to detect intersection changes.\n */\nIntersectionObserver.prototype.USE_MUTATION_OBSERVER = true;\n\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 */\nIntersectionObserver.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 this._observationTargets.push({element: target, entry: null});\n this._monitorIntersections();\n this._checkForIntersections();\n};\n\n\n/**\n * Stops observing a target element for intersection changes.\n * @param {Element} target The DOM element to observe.\n */\nIntersectionObserver.prototype.unobserve = function(target) {\n this._observationTargets =\n this._observationTargets.filter(function(item) {\n\n return item.element != target;\n });\n if (!this._observationTargets.length) {\n this._unmonitorIntersections();\n this._unregisterInstance();\n }\n};\n\n\n/**\n * Stops observing all target elements for intersection changes.\n */\nIntersectionObserver.prototype.disconnect = function() {\n this._observationTargets = [];\n this._unmonitorIntersections();\n this._unregisterInstance();\n};\n\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 */\nIntersectionObserver.prototype.takeRecords = function() {\n var records = this._queuedEntries.slice();\n this._queuedEntries = [];\n return records;\n};\n\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 */\nIntersectionObserver.prototype._initThresholds = function(opt_threshold) {\n var threshold = opt_threshold || [0];\n if (!Array.isArray(threshold)) threshold = [threshold];\n\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 return t !== a[i - 1];\n });\n};\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