{"version":3,"file":"static/chunks/5103-66e78513efcf1f55.js","mappings":"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","sources":["webpack://_N_E/./node_modules/@fortawesome/fontawesome-svg-core/index.mjs","webpack://_N_E/./node_modules/@fortawesome/react-fontawesome/index.es.js","webpack://_N_E/./node_modules/next/dist/client/image.js","webpack://_N_E/./node_modules/next/dist/client/link.js","webpack://_N_E/./node_modules/next/dist/client/use-intersection.js","webpack://_N_E/./node_modules/next/head.js","webpack://_N_E/./node_modules/next/image.js","webpack://_N_E/./node_modules/next/link.js","webpack://_N_E/./node_modules/prop-types/factoryWithThrowingShims.js","webpack://_N_E/./node_modules/prop-types/index.js","webpack://_N_E/./node_modules/prop-types/lib/ReactPropTypesSecret.js"],"sourcesContent":["function 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 _familyProxy, _familyProxy2, _familyProxy3, _familyProxy4, _familyProxy5;\n\nvar NAMESPACE_IDENTIFIER = '___FONT_AWESOME___';\nvar UNITS_IN_GRID = 16;\nvar DEFAULT_CSS_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 FAMILY_CLASSIC = 'classic';\nvar FAMILY_SHARP = 'sharp';\nvar FAMILIES = [FAMILY_CLASSIC, FAMILY_SHARP];\n\nfunction familyProxy(obj) {\n // Defaults to the classic family if family is not available\n return new Proxy(obj, {\n get: function get(target, prop) {\n return prop in target ? target[prop] : target[FAMILY_CLASSIC];\n }\n });\n}\nvar PREFIX_TO_STYLE = familyProxy((_familyProxy = {}, _defineProperty(_familyProxy, FAMILY_CLASSIC, {\n 'fa': 'solid',\n 'fas': 'solid',\n 'fa-solid': 'solid',\n 'far': 'regular',\n 'fa-regular': 'regular',\n 'fal': 'light',\n 'fa-light': 'light',\n 'fat': 'thin',\n 'fa-thin': 'thin',\n 'fad': 'duotone',\n 'fa-duotone': 'duotone',\n 'fab': 'brands',\n 'fa-brands': 'brands',\n 'fak': 'kit',\n 'fakd': 'kit',\n 'fa-kit': 'kit',\n 'fa-kit-duotone': 'kit'\n}), _defineProperty(_familyProxy, FAMILY_SHARP, {\n 'fa': 'solid',\n 'fass': 'solid',\n 'fa-solid': 'solid',\n 'fasr': 'regular',\n 'fa-regular': 'regular',\n 'fasl': 'light',\n 'fa-light': 'light',\n 'fast': 'thin',\n 'fa-thin': 'thin'\n}), _familyProxy));\nvar STYLE_TO_PREFIX = familyProxy((_familyProxy2 = {}, _defineProperty(_familyProxy2, FAMILY_CLASSIC, {\n solid: 'fas',\n regular: 'far',\n light: 'fal',\n thin: 'fat',\n duotone: 'fad',\n brands: 'fab',\n kit: 'fak'\n}), _defineProperty(_familyProxy2, FAMILY_SHARP, {\n solid: 'fass',\n regular: 'fasr',\n light: 'fasl',\n thin: 'fast'\n}), _familyProxy2));\nvar PREFIX_TO_LONG_STYLE = familyProxy((_familyProxy3 = {}, _defineProperty(_familyProxy3, FAMILY_CLASSIC, {\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}), _defineProperty(_familyProxy3, FAMILY_SHARP, {\n fass: 'fa-solid',\n fasr: 'fa-regular',\n fasl: 'fa-light',\n fast: 'fa-thin'\n}), _familyProxy3));\nvar LONG_STYLE_TO_PREFIX = familyProxy((_familyProxy4 = {}, _defineProperty(_familyProxy4, FAMILY_CLASSIC, {\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}), _defineProperty(_familyProxy4, FAMILY_SHARP, {\n 'fa-solid': 'fass',\n 'fa-regular': 'fasr',\n 'fa-light': 'fasl',\n 'fa-thin': 'fast'\n}), _familyProxy4));\nvar ICON_SELECTION_SYNTAX_PATTERN = /fa(s|r|l|t|d|b|k|ss|sr|sl|st)?[\\-\\ ]/; // 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|Sharp|Kit)?.*/i;\nvar FONT_WEIGHT_TO_PREFIX = familyProxy((_familyProxy5 = {}, _defineProperty(_familyProxy5, FAMILY_CLASSIC, {\n 900: 'fas',\n 400: 'far',\n normal: 'far',\n 300: 'fal',\n 100: 'fat'\n}), _defineProperty(_familyProxy5, FAMILY_SHARP, {\n 900: 'fass',\n 400: 'fasr',\n 300: 'fasl',\n 100: 'fast'\n}), _familyProxy5));\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 prefixes = new Set();\nObject.keys(STYLE_TO_PREFIX[FAMILY_CLASSIC]).map(prefixes.add.bind(prefixes));\nObject.keys(STYLE_TO_PREFIX[FAMILY_SHARP]).map(prefixes.add.bind(prefixes));\nvar RESERVED_CLASSES = [].concat(FAMILIES, _toConsumableArray(prefixes), ['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 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-css-prefix', 'cssPrefix'], ['data-family-default', 'familyDefault'], ['data-style-default', 'styleDefault'], ['data-replacement-class', 'replacementClass'], ['data-auto-replace-svg', 'autoReplaceSvg'], ['data-auto-add-css', 'autoAddCss'], ['data-auto-a11y', 'autoA11y'], ['data-search-pseudo-elements', 'searchPseudoElements'], ['data-observe-mutations', 'observeMutations'], ['data-mutate-approach', 'mutateApproach'], ['data-keep-original-source', 'keepOriginalSource'], ['data-measure-performance', 'measurePerformance'], ['data-show-missing-icons', 'showMissingIcons']];\n attrs.forEach(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 styleDefault: 'solid',\n familyDefault: 'classic',\n cssPrefix: DEFAULT_CSS_PREFIX,\n replacementClass: DEFAULT_REPLACEMENT_CLASS,\n autoReplaceSvg: true,\n autoAddCss: true,\n autoA11y: true,\n searchPseudoElements: false,\n observeMutations: true,\n mutateApproach: 'async',\n keepOriginalSource: true,\n measurePerformance: false,\n showMissingIcons: true\n}; // familyPrefix is deprecated but we must still support it if present\n\nif (initial.familyPrefix) {\n initial.cssPrefix = initial.familyPrefix;\n}\n\nvar _config = _objectSpread2(_objectSpread2({}, _default), initial);\n\nif (!_config.autoReplaceSvg) _config.observeMutations = false;\nvar config = {};\nObject.keys(_default).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}); // familyPrefix is deprecated as of 6.2.0 and should be removed in 7.0.0\n\nObject.defineProperty(config, 'familyPrefix', {\n enumerable: true,\n set: function set(val) {\n _config.cssPrefix = val;\n\n _onChangeCb.forEach(function (cb) {\n return cb(config);\n });\n },\n get: function get() {\n return _config.cssPrefix;\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-sharp-solid: normal 900 1em/1 \\\"Font Awesome 6 Sharp\\\";\\n --fa-font-sharp-regular: normal 400 1em/1 \\\"Font Awesome 6 Sharp\\\";\\n --fa-font-sharp-light: normal 300 1em/1 \\\"Font Awesome 6 Sharp\\\";\\n --fa-font-sharp-thin: normal 100 1em/1 \\\"Font Awesome 6 Sharp\\\";\\n --fa-font-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, 0s);\\n animation-delay: var(--fa-animation-delay, 0s);\\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, 0s);\\n animation-delay: var(--fa-animation-delay, 0s);\\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, 0s);\\n animation-delay: var(--fa-animation-delay, 0s);\\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, 0s);\\n animation-delay: var(--fa-animation-delay, 0s);\\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, 0s);\\n animation-delay: var(--fa-animation-delay, 0s);\\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, 0s);\\n animation-delay: var(--fa-animation-delay, 0s);\\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, 0s);\\n animation-delay: var(--fa-animation-delay, 0s);\\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 -webkit-transition-delay: 0s;\\n transition-delay: 0s;\\n -webkit-transition-duration: 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, 0));\\n transform: rotate(var(--fa-rotate-angle, 0));\\n}\\n\\n.fa-stack {\\n display: inline-block;\\n vertical-align: middle;\\n height: 2em;\\n position: relative;\\n width: 2.5em;\\n}\\n\\n.fa-stack-1x,\\n.fa-stack-2x {\\n bottom: 0;\\n left: 0;\\n margin: auto;\\n position: absolute;\\n right: 0;\\n top: 0;\\n z-index: var(--fa-stack-z-index, auto);\\n}\\n\\n.svg-inline--fa.fa-stack-1x {\\n height: 1em;\\n width: 1.25em;\\n}\\n.svg-inline--fa.fa-stack-2x {\\n height: 2em;\\n width: 2.5em;\\n}\\n\\n.fa-inverse {\\n color: var(--fa-inverse, #fff);\\n}\\n\\n.sr-only,\\n.fa-sr-only {\\n position: absolute;\\n width: 1px;\\n height: 1px;\\n padding: 0;\\n margin: -1px;\\n overflow: hidden;\\n clip: rect(0, 0, 0, 0);\\n white-space: nowrap;\\n border-width: 0;\\n}\\n\\n.sr-only-focusable:not(:focus),\\n.fa-sr-only-focusable:not(:focus) {\\n position: absolute;\\n width: 1px;\\n height: 1px;\\n padding: 0;\\n margin: -1px;\\n overflow: hidden;\\n clip: rect(0, 0, 0, 0);\\n white-space: nowrap;\\n border-width: 0;\\n}\\n\\n.svg-inline--fa .fa-primary {\\n fill: var(--fa-primary-color, currentColor);\\n opacity: var(--fa-primary-opacity, 1);\\n}\\n\\n.svg-inline--fa .fa-secondary {\\n fill: var(--fa-secondary-color, currentColor);\\n opacity: var(--fa-secondary-opacity, 0.4);\\n}\\n\\n.svg-inline--fa.fa-swap-opacity .fa-primary {\\n opacity: var(--fa-secondary-opacity, 0.4);\\n}\\n\\n.svg-inline--fa.fa-swap-opacity .fa-secondary {\\n opacity: var(--fa-primary-opacity, 1);\\n}\\n\\n.svg-inline--fa mask .fa-primary,\\n.svg-inline--fa mask .fa-secondary {\\n fill: black;\\n}\\n\\n.fad.fa-inverse,\\n.fa-duotone.fa-inverse {\\n color: var(--fa-inverse, #fff);\\n}\";\n\nfunction css() {\n var dcp = DEFAULT_CSS_PREFIX;\n var drc = DEFAULT_REPLACEMENT_CLASS;\n var fp = config.cssPrefix;\n var rc = config.replacementClass;\n var s = baseStyles;\n\n if (fp !== dcp || rc !== drc) {\n var dPatt = new RegExp(\"\\\\.\".concat(dcp, \"\\\\-\"), 'g');\n var customPropPatt = new RegExp(\"\\\\--\".concat(dcp, \"\\\\-\"), '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 _LONG_STYLE, _PREFIXES, _PREFIXES_FOR_FAMILY;\nvar styles = namespace.styles,\n shims = namespace.shims;\nvar LONG_STYLE = (_LONG_STYLE = {}, _defineProperty(_LONG_STYLE, FAMILY_CLASSIC, Object.values(PREFIX_TO_LONG_STYLE[FAMILY_CLASSIC])), _defineProperty(_LONG_STYLE, FAMILY_SHARP, Object.values(PREFIX_TO_LONG_STYLE[FAMILY_SHARP])), _LONG_STYLE);\nvar _defaultUsablePrefix = null;\nvar _byUnicode = {};\nvar _byLigature = {};\nvar _byOldName = {};\nvar _byOldUnicode = {};\nvar _byAlias = {};\nvar PREFIXES = (_PREFIXES = {}, _defineProperty(_PREFIXES, FAMILY_CLASSIC, Object.keys(PREFIX_TO_STYLE[FAMILY_CLASSIC])), _defineProperty(_PREFIXES, FAMILY_SHARP, Object.keys(PREFIX_TO_STYLE[FAMILY_SHARP])), _PREFIXES);\n\nfunction isReserved(name) {\n return ~RESERVED_CLASSES.indexOf(name);\n}\n\nfunction getIconName(cssPrefix, cls) {\n var parts = cls.split('-');\n var prefix = parts[0];\n var iconName = parts.slice(1).join('-');\n\n if (prefix === cssPrefix && 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 family: config.familyDefault\n });\n};\nonChange(function (c) {\n _defaultUsablePrefix = getCanonicalPrefix(c.styleDefault, {\n family: config.familyDefault\n });\n});\nbuild();\nfunction byUnicode(prefix, unicode) {\n return (_byUnicode[prefix] || {})[unicode];\n}\nfunction byLigature(prefix, ligature) {\n return (_byLigature[prefix] || {})[ligature];\n}\nfunction byAlias(prefix, alias) {\n return (_byAlias[prefix] || {})[alias];\n}\nfunction byOldName(name) {\n return _byOldName[name] || {\n prefix: null,\n iconName: null\n };\n}\nfunction byOldUnicode(unicode) {\n 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 params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$family = params.family,\n family = _params$family === void 0 ? FAMILY_CLASSIC : _params$family;\n var style = PREFIX_TO_STYLE[family][styleOrPrefix];\n var prefix = STYLE_TO_PREFIX[family][styleOrPrefix] || STYLE_TO_PREFIX[family][style];\n var defined = styleOrPrefix in namespace.styles ? styleOrPrefix : null;\n return prefix || defined || null;\n}\nvar PREFIXES_FOR_FAMILY = (_PREFIXES_FOR_FAMILY = {}, _defineProperty(_PREFIXES_FOR_FAMILY, FAMILY_CLASSIC, Object.keys(PREFIX_TO_LONG_STYLE[FAMILY_CLASSIC])), _defineProperty(_PREFIXES_FOR_FAMILY, FAMILY_SHARP, Object.keys(PREFIX_TO_LONG_STYLE[FAMILY_SHARP])), _PREFIXES_FOR_FAMILY);\nfunction getCanonicalIcon(values) {\n var _famProps;\n\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 famProps = (_famProps = {}, _defineProperty(_famProps, FAMILY_CLASSIC, \"\".concat(config.cssPrefix, \"-\").concat(FAMILY_CLASSIC)), _defineProperty(_famProps, FAMILY_SHARP, \"\".concat(config.cssPrefix, \"-\").concat(FAMILY_SHARP)), _famProps);\n var givenPrefix = null;\n var family = FAMILY_CLASSIC;\n\n if (values.includes(famProps[FAMILY_CLASSIC]) || values.some(function (v) {\n return PREFIXES_FOR_FAMILY[FAMILY_CLASSIC].includes(v);\n })) {\n family = FAMILY_CLASSIC;\n }\n\n if (values.includes(famProps[FAMILY_SHARP]) || values.some(function (v) {\n return PREFIXES_FOR_FAMILY[FAMILY_SHARP].includes(v);\n })) {\n family = FAMILY_SHARP;\n }\n\n var canonical = values.reduce(function (acc, cls) {\n var iconName = getIconName(config.cssPrefix, cls);\n\n if (styles[cls]) {\n cls = LONG_STYLE[family].includes(cls) ? LONG_STYLE_TO_PREFIX[family][cls] : cls;\n givenPrefix = cls;\n acc.prefix = cls;\n } else if (PREFIXES[family].indexOf(cls) > -1) {\n givenPrefix = cls;\n acc.prefix = getCanonicalPrefix(cls, {\n family: family\n });\n } else if (iconName) {\n acc.iconName = iconName;\n } else if (cls !== config.replacementClass && cls !== famProps[FAMILY_CLASSIC] && cls !== famProps[FAMILY_SHARP]) {\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 (values.includes('fa-brands') || values.includes('fab')) {\n canonical.prefix = 'fab';\n }\n\n if (values.includes('fa-duotone') || values.includes('fad')) {\n canonical.prefix = 'fad';\n }\n\n if (!canonical.prefix && family === FAMILY_SHARP && (styles['fass'] || config.autoFetchSvg)) {\n canonical.prefix = 'fass';\n canonical.iconName = byAlias(canonical.prefix, canonical.iconName) || canonical.iconName;\n }\n\n if (canonical.prefix === 'fa' || givenPrefix === 'fa') {\n // The fa prefix is not canonical. So if it has made it through until this point\n // we will shift it to the correct prefix.\n canonical.prefix = getDefaultUsablePrefix() || 'fas';\n }\n\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]); // TODO can we stop doing this? We can't get the icons by 'fa-solid' any longer so this probably needs to change\n\n var longPrefix = PREFIX_TO_LONG_STYLE[FAMILY_CLASSIC][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.cssPrefix, \"-\")) > -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.cssPrefix, \"-\").concat(iconName) : symbol;\n return [{\n tag: 'svg',\n attributes: {\n style: 'display: none;'\n },\n children: [{\n tag: 'symbol',\n attributes: _objectSpread2(_objectSpread2({}, attributes), {}, {\n id: 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.cssPrefix, \"-\").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.cssPrefix, \"-\").concat(DUOTONE_CLASSES.GROUP)\n },\n children: [{\n tag: 'path',\n attributes: {\n class: \"\".concat(config.cssPrefix, \"-\").concat(DUOTONE_CLASSES.SECONDARY),\n fill: 'currentColor',\n d: vectorData[0]\n }\n }, {\n tag: 'path',\n attributes: {\n class: \"\".concat(config.cssPrefix, \"-\").concat(DUOTONE_CLASSES.PRIMARY),\n fill: 'currentColor',\n d: vectorData[1]\n }\n }]\n };\n } else {\n element = {\n tag: 'path',\n attributes: {\n fill: 'currentColor',\n d: vectorData\n }\n };\n }\n\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.5.2\\\"\";\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 _abstract2 = 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.cssPrefix, \"-.*\"));\n delete _abstract2[0].attributes.id;\n\n if (_abstract2[0].attributes.class) {\n var splitClasses = _abstract2[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\n _abstract2[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 = _abstract2.map(function (a) {\n return toHtml(a);\n }).join('\\n');\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 if (!val.iconName && config.autoFetchSvg && node.firstChild && node.firstChild.nodeType === Node.TEXT_NODE) {\n val.iconName = node.firstChild.data;\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\nvar knownPrefixes = new Set();\nFAMILIES.map(function (family) {\n knownPrefixes.add(\"fa-\".concat(family));\n});\nObject.keys(PREFIX_TO_STYLE[FAMILY_CLASSIC]).map(knownPrefixes.add.bind(knownPrefixes));\nObject.keys(PREFIX_TO_STYLE[FAMILY_SHARP]).map(knownPrefixes.add.bind(knownPrefixes));\nknownPrefixes = _toConsumableArray(knownPrefixes);\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 ? knownPrefixes : FAMILIES.map(function (f) {\n return \"fa-\".concat(f);\n }).concat(Object.keys(styles$2));\n\n if (!prefixes.includes('fa')) {\n prefixes.push('fa');\n }\n\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.cssPrefix, \"-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.cssPrefix, \"-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.cssPrefix, \"-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 family = ~['Sharp'].indexOf(fontFamily[2]) ? FAMILY_SHARP : FAMILY_CLASSIC;\n var prefix = ~['Solid', 'Regular', 'Light', 'Thin', 'Duotone', 'Brands', 'Kit'].indexOf(fontFamily[2]) ? STYLE_TO_PREFIX[family][fontFamily[2].toLowerCase()] : FONT_WEIGHT_TO_PREFIX[family][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\n var element = DOCUMENT.createElementNS('http://www.w3.org/2000/svg', '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(_abstract2) {\n if (_abstract2.tag === 'g') {\n return _abstract2.children;\n } else {\n return [_abstract2];\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","import { parse, icon } from '@fortawesome/fontawesome-svg-core';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\n// Get CSS class list from a props object\nfunction classList(props) {\n var _classes;\n\n var beat = props.beat,\n fade = props.fade,\n beatFade = props.beatFade,\n bounce = props.bounce,\n shake = props.shake,\n flash = props.flash,\n spin = props.spin,\n spinPulse = props.spinPulse,\n spinReverse = props.spinReverse,\n pulse = props.pulse,\n fixedWidth = props.fixedWidth,\n inverse = props.inverse,\n border = props.border,\n listItem = props.listItem,\n flip = props.flip,\n size = props.size,\n rotation = props.rotation,\n pull = props.pull; // map of CSS class names to properties\n\n var classes = (_classes = {\n 'fa-beat': beat,\n 'fa-fade': fade,\n 'fa-beat-fade': beatFade,\n 'fa-bounce': bounce,\n 'fa-shake': shake,\n 'fa-flash': flash,\n 'fa-spin': spin,\n 'fa-spin-reverse': spinReverse,\n 'fa-spin-pulse': spinPulse,\n 'fa-pulse': pulse,\n 'fa-fw': fixedWidth,\n 'fa-inverse': inverse,\n 'fa-border': border,\n 'fa-li': listItem,\n 'fa-flip': flip === true,\n 'fa-flip-horizontal': flip === 'horizontal' || flip === 'both',\n 'fa-flip-vertical': flip === 'vertical' || flip === 'both'\n }, _defineProperty(_classes, \"fa-\".concat(size), typeof size !== 'undefined' && size !== null), _defineProperty(_classes, \"fa-rotate-\".concat(rotation), typeof rotation !== 'undefined' && rotation !== null && rotation !== 0), _defineProperty(_classes, \"fa-pull-\".concat(pull), typeof pull !== 'undefined' && pull !== null), _defineProperty(_classes, 'fa-swap-opacity', props.swapOpacity), _classes); // map over all the keys in the classes object\n // return an array of the keys where the value for the key is not null\n\n return Object.keys(classes).map(function (key) {\n return classes[key] ? key : null;\n }).filter(function (key) {\n return key;\n });\n}\n\n// Camelize taken from humps\n// humps is copyright © 2012+ Dom Christie\n// Released under the MIT license.\n// Performant way to determine if object coerces to a number\nfunction _isNumerical(obj) {\n obj = obj - 0; // eslint-disable-next-line no-self-compare\n\n return obj === obj;\n}\n\nfunction camelize(string) {\n if (_isNumerical(string)) {\n return string;\n } // eslint-disable-next-line no-useless-escape\n\n\n string = string.replace(/[\\-_\\s]+(.)?/g, function (match, chr) {\n return chr ? chr.toUpperCase() : '';\n }); // Ensure 1st char is always lowercase\n\n return string.substr(0, 1).toLowerCase() + string.substr(1);\n}\n\nvar _excluded = [\"style\"];\n\nfunction capitalize(val) {\n return val.charAt(0).toUpperCase() + val.slice(1);\n}\n\nfunction styleToObject(style) {\n return style.split(';').map(function (s) {\n return s.trim();\n }).filter(function (s) {\n return s;\n }).reduce(function (acc, pair) {\n var i = pair.indexOf(':');\n var prop = camelize(pair.slice(0, i));\n var value = pair.slice(i + 1).trim();\n prop.startsWith('webkit') ? acc[capitalize(prop)] = value : acc[prop] = value;\n return acc;\n }, {});\n}\n\nfunction convert(createElement, element) {\n var extraProps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n if (typeof element === 'string') {\n return element;\n }\n\n var children = (element.children || []).map(function (child) {\n return convert(createElement, child);\n });\n /* eslint-disable dot-notation */\n\n var mixins = Object.keys(element.attributes || {}).reduce(function (acc, key) {\n var val = element.attributes[key];\n\n switch (key) {\n case 'class':\n acc.attrs['className'] = val;\n delete element.attributes['class'];\n break;\n\n case 'style':\n acc.attrs['style'] = styleToObject(val);\n break;\n\n default:\n if (key.indexOf('aria-') === 0 || key.indexOf('data-') === 0) {\n acc.attrs[key.toLowerCase()] = val;\n } else {\n acc.attrs[camelize(key)] = val;\n }\n\n }\n\n return acc;\n }, {\n attrs: {}\n });\n\n var _extraProps$style = extraProps.style,\n existingStyle = _extraProps$style === void 0 ? {} : _extraProps$style,\n remaining = _objectWithoutProperties(extraProps, _excluded);\n\n mixins.attrs['style'] = _objectSpread2(_objectSpread2({}, mixins.attrs['style']), existingStyle);\n /* eslint-enable */\n\n return createElement.apply(void 0, [element.tag, _objectSpread2(_objectSpread2({}, mixins.attrs), remaining)].concat(_toConsumableArray(children)));\n}\n\nvar PRODUCTION = false;\n\ntry {\n PRODUCTION = process.env.NODE_ENV === 'production';\n} catch (e) {}\n\nfunction log () {\n if (!PRODUCTION && console && typeof console.error === 'function') {\n var _console;\n\n (_console = console).error.apply(_console, arguments);\n }\n}\n\nfunction normalizeIconArgs(icon) {\n // this has everything that it needs to be rendered which means it was probably imported\n // directly from an icon svg package\n if (icon && _typeof(icon) === 'object' && icon.prefix && icon.iconName && icon.icon) {\n return icon;\n }\n\n if (parse.icon) {\n return parse.icon(icon);\n } // if the icon is null, there's nothing to do\n\n\n if (icon === null) {\n return null;\n } // if the icon is an object and has a prefix and an icon name, return it\n\n\n if (icon && _typeof(icon) === 'object' && icon.prefix && icon.iconName) {\n return icon;\n } // if it's an array with length of two\n\n\n if (Array.isArray(icon) && icon.length === 2) {\n // use the first item as prefix, second as icon name\n return {\n prefix: icon[0],\n iconName: icon[1]\n };\n } // if it's a string, use it as the icon name\n\n\n if (typeof icon === 'string') {\n return {\n prefix: 'fas',\n iconName: icon\n };\n }\n}\n\n// creates an object with a key of key\n// and a value of value\n// if certain conditions are met\nfunction objectWithKey(key, value) {\n // if the value is a non-empty array\n // or it's not an array but it is truthy\n // then create the object with the key and the value\n // if not, return an empty array\n return Array.isArray(value) && value.length > 0 || !Array.isArray(value) && value ? _defineProperty({}, key, value) : {};\n}\n\nvar FontAwesomeIcon = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var iconArgs = props.icon,\n maskArgs = props.mask,\n symbol = props.symbol,\n className = props.className,\n title = props.title,\n titleId = props.titleId,\n maskId = props.maskId;\n var iconLookup = normalizeIconArgs(iconArgs);\n var classes = objectWithKey('classes', [].concat(_toConsumableArray(classList(props)), _toConsumableArray(className.split(' '))));\n var transform = objectWithKey('transform', typeof props.transform === 'string' ? parse.transform(props.transform) : props.transform);\n var mask = objectWithKey('mask', normalizeIconArgs(maskArgs));\n var renderedIcon = icon(iconLookup, _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, classes), transform), mask), {}, {\n symbol: symbol,\n title: title,\n titleId: titleId,\n maskId: maskId\n }));\n\n if (!renderedIcon) {\n log('Could not find icon', iconLookup);\n return null;\n }\n\n var abstract = renderedIcon.abstract;\n var extraProps = {\n ref: ref\n };\n Object.keys(props).forEach(function (key) {\n // eslint-disable-next-line no-prototype-builtins\n if (!FontAwesomeIcon.defaultProps.hasOwnProperty(key)) {\n extraProps[key] = props[key];\n }\n });\n return convertCurry(abstract[0], extraProps);\n});\nFontAwesomeIcon.displayName = 'FontAwesomeIcon';\nFontAwesomeIcon.propTypes = {\n beat: PropTypes.bool,\n border: PropTypes.bool,\n beatFade: PropTypes.bool,\n bounce: PropTypes.bool,\n className: PropTypes.string,\n fade: PropTypes.bool,\n flash: PropTypes.bool,\n mask: PropTypes.oneOfType([PropTypes.object, PropTypes.array, PropTypes.string]),\n maskId: PropTypes.string,\n fixedWidth: PropTypes.bool,\n inverse: PropTypes.bool,\n flip: PropTypes.oneOf([true, false, 'horizontal', 'vertical', 'both']),\n icon: PropTypes.oneOfType([PropTypes.object, PropTypes.array, PropTypes.string]),\n listItem: PropTypes.bool,\n pull: PropTypes.oneOf(['right', 'left']),\n pulse: PropTypes.bool,\n rotation: PropTypes.oneOf([0, 90, 180, 270]),\n shake: PropTypes.bool,\n size: PropTypes.oneOf(['2xs', 'xs', 'sm', 'lg', 'xl', '2xl', '1x', '2x', '3x', '4x', '5x', '6x', '7x', '8x', '9x', '10x']),\n spin: PropTypes.bool,\n spinPulse: PropTypes.bool,\n spinReverse: PropTypes.bool,\n symbol: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n title: PropTypes.string,\n titleId: PropTypes.string,\n transform: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n swapOpacity: PropTypes.bool\n};\nFontAwesomeIcon.defaultProps = {\n border: false,\n className: '',\n mask: null,\n maskId: null,\n fixedWidth: false,\n inverse: false,\n flip: false,\n icon: null,\n listItem: false,\n pull: null,\n pulse: false,\n rotation: null,\n size: null,\n spin: false,\n spinPulse: false,\n spinReverse: false,\n beat: false,\n fade: false,\n beatFade: false,\n bounce: false,\n shake: false,\n symbol: false,\n title: '',\n titleId: null,\n transform: null,\n swapOpacity: false\n};\nvar convertCurry = convert.bind(null, React.createElement);\n\nexport { FontAwesomeIcon };\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = Image;\nvar _react = _interopRequireWildcard(require(\"react\"));\nvar _head = _interopRequireDefault(require(\"../shared/lib/head\"));\nvar _imageConfig = require(\"../server/image-config\");\nvar _useIntersection = require(\"./use-intersection\");\nvar _imageConfigContext = require(\"../shared/lib/image-config-context\");\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 return obj;\n}\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {\n };\n if (obj != null) {\n for(var key in obj){\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {\n };\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n newObj.default = obj;\n return newObj;\n }\n}\nfunction _objectSpread(target) {\n for(var i = 1; i < arguments.length; i++){\n var source = arguments[i] != null ? arguments[i] : {\n };\n var ownKeys = Object.keys(source);\n if (typeof Object.getOwnPropertySymbols === \"function\") {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n ownKeys.forEach(function(key) {\n _defineProperty(target, key, source[key]);\n });\n }\n return target;\n}\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {\n };\n var target = _objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for(i = 0; i < sourceSymbolKeys.length; i++){\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {\n };\n var target = {\n };\n var sourceKeys = Object.keys(source);\n var key, i;\n for(i = 0; i < sourceKeys.length; i++){\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\nconst configEnv = process.env.__NEXT_IMAGE_OPTS;\nconst loadedImageURLs = new Set();\nconst allImgs = new Map();\nlet perfObserver;\nconst emptyDataURL = 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7';\nif (typeof window === 'undefined') {\n global.__NEXT_IMAGE_IMPORTED = true;\n}\nconst VALID_LOADING_VALUES = [\n 'lazy',\n 'eager',\n undefined\n];\nconst loaders = new Map([\n [\n 'default',\n defaultLoader\n ],\n [\n 'imgix',\n imgixLoader\n ],\n [\n 'cloudinary',\n cloudinaryLoader\n ],\n [\n 'akamai',\n akamaiLoader\n ],\n [\n 'custom',\n customLoader\n ], \n]);\nconst VALID_LAYOUT_VALUES = [\n 'fill',\n 'fixed',\n 'intrinsic',\n 'responsive',\n undefined, \n];\nfunction isStaticRequire(src) {\n return src.default !== undefined;\n}\nfunction isStaticImageData(src) {\n return src.src !== undefined;\n}\nfunction isStaticImport(src) {\n return typeof src === 'object' && (isStaticRequire(src) || isStaticImageData(src));\n}\nfunction getWidths({ deviceSizes , allSizes }, width, layout, sizes) {\n if (sizes && (layout === 'fill' || layout === 'responsive')) {\n // Find all the \"vw\" percent sizes used in the sizes prop\n const viewportWidthRe = /(^|\\s)(1?\\d?\\d)vw/g;\n const percentSizes = [];\n for(let match; match = viewportWidthRe.exec(sizes); match){\n percentSizes.push(parseInt(match[2]));\n }\n if (percentSizes.length) {\n const smallestRatio = Math.min(...percentSizes) * 0.01;\n return {\n widths: allSizes.filter((s)=>s >= deviceSizes[0] * smallestRatio\n ),\n kind: 'w'\n };\n }\n return {\n widths: allSizes,\n kind: 'w'\n };\n }\n if (typeof width !== 'number' || layout === 'fill' || layout === 'responsive') {\n return {\n widths: deviceSizes,\n kind: 'w'\n };\n }\n const widths = [\n ...new Set(// > This means that most OLED screens that say they are 3x resolution,\n // > are actually 3x in the green color, but only 1.5x in the red and\n // > blue colors. Showing a 3x resolution image in the app vs a 2x\n // > resolution image will be visually the same, though the 3x image\n // > takes significantly more data. Even true 3x resolution screens are\n // > wasteful as the human eye cannot see that level of detail without\n // > something like a magnifying glass.\n // https://blog.twitter.com/engineering/en_us/topics/infrastructure/2019/capping-image-fidelity-on-ultra-high-resolution-devices.html\n [\n width,\n width * 2 /*, width * 3*/ \n ].map((w)=>allSizes.find((p)=>p >= w\n ) || allSizes[allSizes.length - 1]\n )), \n ];\n return {\n widths,\n kind: 'x'\n };\n}\nfunction generateImgAttrs({ config , src , unoptimized , layout , width , quality , sizes , loader }) {\n if (unoptimized) {\n return {\n src,\n srcSet: undefined,\n sizes: undefined\n };\n }\n const { widths , kind } = getWidths(config, width, layout, sizes);\n const last = widths.length - 1;\n return {\n sizes: !sizes && kind === 'w' ? '100vw' : sizes,\n srcSet: widths.map((w, i)=>`${loader({\n config,\n src,\n quality,\n width: w\n })} ${kind === 'w' ? w : i + 1}${kind}`\n ).join(', '),\n // It's intended to keep `src` the last attribute because React updates\n // attributes in order. If we keep `src` the first one, Safari will\n // immediately start to fetch `src`, before `sizes` and `srcSet` are even\n // updated by React. That causes multiple unnecessary requests if `srcSet`\n // and `sizes` are defined.\n // This bug cannot be reproduced in Chrome or Firefox.\n src: loader({\n config,\n src,\n quality,\n width: widths[last]\n })\n };\n}\nfunction getInt(x) {\n if (typeof x === 'number') {\n return x;\n }\n if (typeof x === 'string') {\n return parseInt(x, 10);\n }\n return undefined;\n}\nfunction defaultImageLoader(loaderProps) {\n var ref;\n const loaderKey = ((ref = loaderProps.config) === null || ref === void 0 ? void 0 : ref.loader) || 'default';\n const load = loaders.get(loaderKey);\n if (load) {\n return load(loaderProps);\n }\n throw new Error(`Unknown \"loader\" found in \"next.config.js\". Expected: ${_imageConfig.VALID_LOADERS.join(', ')}. Received: ${loaderKey}`);\n}\n// See https://stackoverflow.com/q/39777833/266535 for why we use this ref\n// handler instead of the img's onLoad attribute.\nfunction handleLoading(imgRef, src, layout, placeholder, onLoadingCompleteRef) {\n const handleLoad = ()=>{\n const img = imgRef.current;\n if (!img) {\n return;\n }\n if (img.src !== emptyDataURL) {\n const p = 'decode' in img ? img.decode() : Promise.resolve();\n p.catch(()=>{\n }).then(()=>{\n if (!imgRef.current) {\n return;\n }\n loadedImageURLs.add(src);\n if (placeholder === 'blur') {\n img.style.filter = '';\n img.style.backgroundSize = '';\n img.style.backgroundImage = '';\n img.style.backgroundPosition = '';\n }\n if (onLoadingCompleteRef.current) {\n const { naturalWidth , naturalHeight } = img;\n // Pass back read-only primitive values but not the\n // underlying DOM element because it could be misused.\n onLoadingCompleteRef.current({\n naturalWidth,\n naturalHeight\n });\n }\n if (process.env.NODE_ENV !== 'production') {\n var ref;\n if ((ref = img.parentElement) === null || ref === void 0 ? void 0 : ref.parentElement) {\n const parent = getComputedStyle(img.parentElement.parentElement);\n if (!parent.position) {\n // The parent has not been rendered to the dom yet and therefore it has no position. Skip the warnings for such cases.\n } else if (layout === 'responsive' && parent.display === 'flex') {\n console.warn(`Image with src \"${src}\" may not render properly as a child of a flex container. Consider wrapping the image with a div to configure the width.`);\n } else if (layout === 'fill' && parent.position !== 'relative' && parent.position !== 'fixed') {\n console.warn(`Image with src \"${src}\" may not render properly with a parent using position:\"${parent.position}\". Consider changing the parent style to position:\"relative\" with a width and height.`);\n }\n }\n }\n });\n }\n };\n if (imgRef.current) {\n if (imgRef.current.complete) {\n // If the real image fails to load, this will still remove the placeholder.\n // This is the desired behavior for now, and will be revisited when error\n // handling is worked on for the image component itself.\n handleLoad();\n } else {\n imgRef.current.onload = handleLoad;\n }\n }\n}\nfunction Image(_param) {\n var { src , sizes , unoptimized =false , priority =false , loading , lazyRoot =null , lazyBoundary ='200px' , className , quality , width , height , objectFit , objectPosition , onLoadingComplete , loader =defaultImageLoader , placeholder ='empty' , blurDataURL } = _param, all = _objectWithoutProperties(_param, [\"src\", \"sizes\", \"unoptimized\", \"priority\", \"loading\", \"lazyRoot\", \"lazyBoundary\", \"className\", \"quality\", \"width\", \"height\", \"objectFit\", \"objectPosition\", \"onLoadingComplete\", \"loader\", \"placeholder\", \"blurDataURL\"]);\n const imgRef = (0, _react).useRef(null);\n const configContext = (0, _react).useContext(_imageConfigContext.ImageConfigContext);\n const config = (0, _react).useMemo(()=>{\n const c = configEnv || configContext || _imageConfig.imageConfigDefault;\n const allSizes = [\n ...c.deviceSizes,\n ...c.imageSizes\n ].sort((a, b)=>a - b\n );\n const deviceSizes = c.deviceSizes.sort((a, b)=>a - b\n );\n return _objectSpread({\n }, c, {\n allSizes,\n deviceSizes\n });\n }, [\n configContext\n ]);\n let rest = all;\n let layout = sizes ? 'responsive' : 'intrinsic';\n if ('layout' in rest) {\n // Override default layout if the user specified one:\n if (rest.layout) layout = rest.layout;\n // Remove property so it's not spread into image:\n delete rest['layout'];\n }\n let staticSrc = '';\n if (isStaticImport(src)) {\n const staticImageData = isStaticRequire(src) ? src.default : src;\n if (!staticImageData.src) {\n throw new Error(`An object should only be passed to the image component src parameter if it comes from a static image import. It must include src. Received ${JSON.stringify(staticImageData)}`);\n }\n blurDataURL = blurDataURL || staticImageData.blurDataURL;\n staticSrc = staticImageData.src;\n if (!layout || layout !== 'fill') {\n height = height || staticImageData.height;\n width = width || staticImageData.width;\n if (!staticImageData.height || !staticImageData.width) {\n throw new Error(`An object should only be passed to the image component src parameter if it comes from a static image import. It must include height and width. Received ${JSON.stringify(staticImageData)}`);\n }\n }\n }\n src = typeof src === 'string' ? src : staticSrc;\n const widthInt = getInt(width);\n const heightInt = getInt(height);\n const qualityInt = getInt(quality);\n let isLazy = !priority && (loading === 'lazy' || typeof loading === 'undefined');\n if (src.startsWith('data:') || src.startsWith('blob:')) {\n // https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs\n unoptimized = true;\n isLazy = false;\n }\n if (typeof window !== 'undefined' && loadedImageURLs.has(src)) {\n isLazy = false;\n }\n if (process.env.NODE_ENV !== 'production') {\n if (!src) {\n throw new Error(`Image is missing required \"src\" property. Make sure you pass \"src\" in props to the \\`next/image\\` component. Received: ${JSON.stringify({\n width,\n height,\n quality\n })}`);\n }\n if (!VALID_LAYOUT_VALUES.includes(layout)) {\n throw new Error(`Image with src \"${src}\" has invalid \"layout\" property. Provided \"${layout}\" should be one of ${VALID_LAYOUT_VALUES.map(String).join(',')}.`);\n }\n if (typeof widthInt !== 'undefined' && isNaN(widthInt) || typeof heightInt !== 'undefined' && isNaN(heightInt)) {\n throw new Error(`Image with src \"${src}\" has invalid \"width\" or \"height\" property. These should be numeric values.`);\n }\n if (layout === 'fill' && (width || height)) {\n console.warn(`Image with src \"${src}\" and \"layout='fill'\" has unused properties assigned. Please remove \"width\" and \"height\".`);\n }\n if (!VALID_LOADING_VALUES.includes(loading)) {\n throw new Error(`Image with src \"${src}\" has invalid \"loading\" property. Provided \"${loading}\" should be one of ${VALID_LOADING_VALUES.map(String).join(',')}.`);\n }\n if (priority && loading === 'lazy') {\n throw new Error(`Image with src \"${src}\" has both \"priority\" and \"loading='lazy'\" properties. Only one should be used.`);\n }\n if (sizes && layout !== 'fill' && layout !== 'responsive') {\n console.warn(`Image with src \"${src}\" has \"sizes\" property but it will be ignored. Only use \"sizes\" with \"layout='fill'\" or \"layout='responsive'\".`);\n }\n if (placeholder === 'blur') {\n if (layout !== 'fill' && (widthInt || 0) * (heightInt || 0) < 1600) {\n console.warn(`Image with src \"${src}\" is smaller than 40x40. Consider removing the \"placeholder='blur'\" property to improve performance.`);\n }\n if (!blurDataURL) {\n const VALID_BLUR_EXT = [\n 'jpeg',\n 'png',\n 'webp',\n 'avif'\n ] // should match next-image-loader\n ;\n throw new Error(`Image with src \"${src}\" has \"placeholder='blur'\" property but is missing the \"blurDataURL\" property.\n Possible solutions:\n - Add a \"blurDataURL\" property, the contents should be a small Data URL to represent the image\n - Change the \"src\" property to a static import with one of the supported file types: ${VALID_BLUR_EXT.join(',')}\n - Remove the \"placeholder\" property, effectively no blur effect\n Read more: https://nextjs.org/docs/messages/placeholder-blur-data-url`);\n }\n }\n if ('ref' in rest) {\n console.warn(`Image with src \"${src}\" is using unsupported \"ref\" property. Consider using the \"onLoadingComplete\" property instead.`);\n }\n if ('style' in rest) {\n console.warn(`Image with src \"${src}\" is using unsupported \"style\" property. Please use the \"className\" property instead.`);\n }\n if (!unoptimized && loader !== defaultImageLoader) {\n const urlStr = loader({\n config,\n src,\n width: widthInt || 400,\n quality: qualityInt || 75\n });\n let url;\n try {\n url = new URL(urlStr);\n } catch (err) {\n }\n if (urlStr === src || url && url.pathname === src && !url.search) {\n console.warn(`Image with src \"${src}\" has a \"loader\" property that does not implement width. Please implement it or use the \"unoptimized\" property instead.` + `\\nRead more: https://nextjs.org/docs/messages/next-image-missing-loader-width`);\n }\n }\n if (typeof window !== 'undefined' && !perfObserver && window.PerformanceObserver) {\n perfObserver = new PerformanceObserver((entryList)=>{\n for (const entry of entryList.getEntries()){\n var ref;\n // @ts-ignore - missing \"LargestContentfulPaint\" class with \"element\" prop\n const imgSrc = (entry === null || entry === void 0 ? void 0 : (ref = entry.element) === null || ref === void 0 ? void 0 : ref.src) || '';\n const lcpImage = allImgs.get(imgSrc);\n if (lcpImage && !lcpImage.priority && lcpImage.placeholder !== 'blur' && !lcpImage.src.startsWith('data:') && !lcpImage.src.startsWith('blob:')) {\n // https://web.dev/lcp/#measure-lcp-in-javascript\n console.warn(`Image with src \"${lcpImage.src}\" was detected as the Largest Contentful Paint (LCP). Please add the \"priority\" property if this image is above the fold.` + `\\nRead more: https://nextjs.org/docs/api-reference/next/image#priority`);\n }\n }\n });\n perfObserver.observe({\n type: 'largest-contentful-paint',\n buffered: true\n });\n }\n }\n const [setIntersection, isIntersected] = (0, _useIntersection).useIntersection({\n rootRef: lazyRoot,\n rootMargin: lazyBoundary,\n disabled: !isLazy\n });\n const isVisible = !isLazy || isIntersected;\n const wrapperStyle = {\n boxSizing: 'border-box',\n display: 'block',\n overflow: 'hidden',\n width: 'initial',\n height: 'initial',\n background: 'none',\n opacity: 1,\n border: 0,\n margin: 0,\n padding: 0\n };\n const sizerStyle = {\n boxSizing: 'border-box',\n display: 'block',\n width: 'initial',\n height: 'initial',\n background: 'none',\n opacity: 1,\n border: 0,\n margin: 0,\n padding: 0\n };\n let hasSizer = false;\n let sizerSvgUrl;\n const imgStyle = {\n position: 'absolute',\n top: 0,\n left: 0,\n bottom: 0,\n right: 0,\n boxSizing: 'border-box',\n padding: 0,\n border: 'none',\n margin: 'auto',\n display: 'block',\n width: 0,\n height: 0,\n minWidth: '100%',\n maxWidth: '100%',\n minHeight: '100%',\n maxHeight: '100%',\n objectFit,\n objectPosition\n };\n const blurStyle = placeholder === 'blur' ? {\n filter: 'blur(20px)',\n backgroundSize: objectFit || 'cover',\n backgroundImage: `url(\"${blurDataURL}\")`,\n backgroundPosition: objectPosition || '0% 0%'\n } : {\n };\n if (layout === 'fill') {\n // \n wrapperStyle.display = 'block';\n wrapperStyle.position = 'absolute';\n wrapperStyle.top = 0;\n wrapperStyle.left = 0;\n wrapperStyle.bottom = 0;\n wrapperStyle.right = 0;\n } else if (typeof widthInt !== 'undefined' && typeof heightInt !== 'undefined') {\n // \n const quotient = heightInt / widthInt;\n const paddingTop = isNaN(quotient) ? '100%' : `${quotient * 100}%`;\n if (layout === 'responsive') {\n // \n wrapperStyle.display = 'block';\n wrapperStyle.position = 'relative';\n hasSizer = true;\n sizerStyle.paddingTop = paddingTop;\n } else if (layout === 'intrinsic') {\n // \n wrapperStyle.display = 'inline-block';\n wrapperStyle.position = 'relative';\n wrapperStyle.maxWidth = '100%';\n hasSizer = true;\n sizerStyle.maxWidth = '100%';\n sizerSvgUrl = `data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20version=%271.1%27%20width=%27${widthInt}%27%20height=%27${heightInt}%27/%3e`;\n } else if (layout === 'fixed') {\n // \n wrapperStyle.display = 'inline-block';\n wrapperStyle.position = 'relative';\n wrapperStyle.width = widthInt;\n wrapperStyle.height = heightInt;\n }\n } else {\n // \n if (process.env.NODE_ENV !== 'production') {\n throw new Error(`Image with src \"${src}\" must use \"width\" and \"height\" properties or \"layout='fill'\" property.`);\n }\n }\n let imgAttributes = {\n src: emptyDataURL,\n srcSet: undefined,\n sizes: undefined\n };\n if (isVisible) {\n imgAttributes = generateImgAttrs({\n config,\n src,\n unoptimized,\n layout,\n width: widthInt,\n quality: qualityInt,\n sizes,\n loader\n });\n }\n let srcString = src;\n if (process.env.NODE_ENV !== 'production') {\n if (typeof window !== 'undefined') {\n let fullUrl;\n try {\n fullUrl = new URL(imgAttributes.src);\n } catch (e) {\n fullUrl = new URL(imgAttributes.src, window.location.href);\n }\n allImgs.set(fullUrl.href, {\n src,\n priority,\n placeholder\n });\n }\n }\n let imageSrcSetPropName = 'imagesrcset';\n let imageSizesPropName = 'imagesizes';\n if (process.env.__NEXT_REACT_ROOT) {\n imageSrcSetPropName = 'imageSrcSet';\n imageSizesPropName = 'imageSizes';\n }\n const linkProps = {\n // Note: imagesrcset and imagesizes are not in the link element type with react 17.\n [imageSrcSetPropName]: imgAttributes.srcSet,\n [imageSizesPropName]: imgAttributes.sizes\n };\n const useLayoutEffect = typeof window === 'undefined' ? _react.default.useEffect : _react.default.useLayoutEffect;\n const onLoadingCompleteRef = (0, _react).useRef(onLoadingComplete);\n (0, _react).useEffect(()=>{\n onLoadingCompleteRef.current = onLoadingComplete;\n }, [\n onLoadingComplete\n ]);\n useLayoutEffect(()=>{\n setIntersection(imgRef.current);\n }, [\n setIntersection\n ]);\n (0, _react).useEffect(()=>{\n handleLoading(imgRef, srcString, layout, placeholder, onLoadingCompleteRef);\n }, [\n srcString,\n layout,\n placeholder,\n isVisible\n ]);\n return(/*#__PURE__*/ _react.default.createElement(\"span\", {\n style: wrapperStyle\n }, hasSizer ? /*#__PURE__*/ _react.default.createElement(\"span\", {\n style: sizerStyle\n }, sizerSvgUrl ? /*#__PURE__*/ _react.default.createElement(\"img\", {\n style: {\n display: 'block',\n maxWidth: '100%',\n width: 'initial',\n height: 'initial',\n background: 'none',\n opacity: 1,\n border: 0,\n margin: 0,\n padding: 0\n },\n alt: \"\",\n \"aria-hidden\": true,\n src: sizerSvgUrl\n }) : null) : null, /*#__PURE__*/ _react.default.createElement(\"img\", Object.assign({\n }, rest, imgAttributes, {\n decoding: \"async\",\n \"data-nimg\": layout,\n className: className,\n ref: imgRef,\n style: _objectSpread({\n }, imgStyle, blurStyle)\n })), isLazy && /*#__PURE__*/ _react.default.createElement(\"noscript\", null, /*#__PURE__*/ _react.default.createElement(\"img\", Object.assign({\n }, rest, generateImgAttrs({\n config,\n src,\n unoptimized,\n layout,\n width: widthInt,\n quality: qualityInt,\n sizes,\n loader\n }), {\n decoding: \"async\",\n \"data-nimg\": layout,\n style: imgStyle,\n className: className,\n // @ts-ignore - TODO: upgrade to `@types/react@17`\n loading: loading || 'lazy'\n }))), priority ? // Note how we omit the `href` attribute, as it would only be relevant\n // for browsers that do not support `imagesrcset`, and in those cases\n // it would likely cause the incorrect image to be preloaded.\n //\n // https://html.spec.whatwg.org/multipage/semantics.html#attr-link-imagesrcset\n /*#__PURE__*/ _react.default.createElement(_head.default, null, /*#__PURE__*/ _react.default.createElement(\"link\", Object.assign({\n key: '__nimg-' + imgAttributes.src + imgAttributes.srcSet + imgAttributes.sizes,\n rel: \"preload\",\n as: \"image\",\n href: imgAttributes.srcSet ? undefined : imgAttributes.src\n }, linkProps))) : null));\n}\nfunction normalizeSrc(src) {\n return src[0] === '/' ? src.slice(1) : src;\n}\nfunction imgixLoader({ config , src , width , quality }) {\n // Demo: https://static.imgix.net/daisy.png?auto=format&fit=max&w=300\n const url = new URL(`${config.path}${normalizeSrc(src)}`);\n const params = url.searchParams;\n params.set('auto', params.get('auto') || 'format');\n params.set('fit', params.get('fit') || 'max');\n params.set('w', params.get('w') || width.toString());\n if (quality) {\n params.set('q', quality.toString());\n }\n return url.href;\n}\nfunction akamaiLoader({ config , src , width }) {\n return `${config.path}${normalizeSrc(src)}?imwidth=${width}`;\n}\nfunction cloudinaryLoader({ config , src , width , quality }) {\n // Demo: https://res.cloudinary.com/demo/image/upload/w_300,c_limit,q_auto/turtles.jpg\n const params = [\n 'f_auto',\n 'c_limit',\n 'w_' + width,\n 'q_' + (quality || 'auto')\n ];\n const paramsString = params.join(',') + '/';\n return `${config.path}${paramsString}${normalizeSrc(src)}`;\n}\nfunction customLoader({ src }) {\n throw new Error(`Image with src \"${src}\" is missing \"loader\" prop.` + `\\nRead more: https://nextjs.org/docs/messages/next-image-missing-loader`);\n}\nfunction defaultLoader({ config , src , width , quality }) {\n if (process.env.NODE_ENV !== 'production') {\n const missingValues = [];\n // these should always be provided but make sure they are\n if (!src) missingValues.push('src');\n if (!width) missingValues.push('width');\n if (missingValues.length > 0) {\n throw new Error(`Next Image Optimization requires ${missingValues.join(', ')} to be provided. Make sure you pass them as props to the \\`next/image\\` component. Received: ${JSON.stringify({\n src,\n width,\n quality\n })}`);\n }\n if (src.startsWith('//')) {\n throw new Error(`Failed to parse src \"${src}\" on \\`next/image\\`, protocol-relative URL (//) must be changed to an absolute URL (http:// or https://)`);\n }\n if (!src.startsWith('/') && config.domains) {\n let parsedSrc;\n try {\n parsedSrc = new URL(src);\n } catch (err) {\n console.error(err);\n throw new Error(`Failed to parse src \"${src}\" on \\`next/image\\`, if using relative image it must start with a leading slash \"/\" or be an absolute URL (http:// or https://)`);\n }\n if (process.env.NODE_ENV !== 'test' && !config.domains.includes(parsedSrc.hostname)) {\n throw new Error(`Invalid src prop (${src}) on \\`next/image\\`, hostname \"${parsedSrc.hostname}\" is not configured under images in your \\`next.config.js\\`\\n` + `See more info: https://nextjs.org/docs/messages/next-image-unconfigured-host`);\n }\n }\n }\n if (src.endsWith('.svg') && !config.dangerouslyAllowSVG) {\n // Special case to make svg serve as-is to avoid proxying\n // through the built-in Image Optimization API.\n return src;\n }\n return `${config.path}?url=${encodeURIComponent(src)}&w=${width}&q=${quality || 75}`;\n}\n\n//# sourceMappingURL=image.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _router = require(\"../shared/lib/router/router\");\nvar _router1 = require(\"./router\");\nvar _useIntersection = require(\"./use-intersection\");\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nconst prefetched = {\n};\nfunction prefetch(router, href, as, options) {\n if (typeof window === 'undefined' || !router) return;\n if (!(0, _router).isLocalURL(href)) return;\n // Prefetch the JSON page if asked (only in the client)\n // We need to handle a prefetch error here since we may be\n // loading with priority which can reject but we don't\n // want to force navigation since this is only a prefetch\n router.prefetch(href, as, options).catch((err)=>{\n if (process.env.NODE_ENV !== 'production') {\n // rethrow to show invalid URL errors\n throw err;\n }\n });\n const curLocale = options && typeof options.locale !== 'undefined' ? options.locale : router && router.locale;\n // Join on an invalid URI character\n prefetched[href + '%' + as + (curLocale ? '%' + curLocale : '')] = true;\n}\nfunction isModifiedEvent(event) {\n const { target } = event.currentTarget;\n return target && target !== '_self' || event.metaKey || event.ctrlKey || event.shiftKey || event.altKey || event.nativeEvent && event.nativeEvent.which === 2;\n}\nfunction linkClicked(e, router, href, as, replace, shallow, scroll, locale) {\n const { nodeName } = e.currentTarget;\n // anchors inside an svg have a lowercase nodeName\n const isAnchorNodeName = nodeName.toUpperCase() === 'A';\n if (isAnchorNodeName && (isModifiedEvent(e) || !(0, _router).isLocalURL(href))) {\n // ignore click for browser’s default behavior\n return;\n }\n e.preventDefault();\n // replace state instead of push if prop is present\n router[replace ? 'replace' : 'push'](href, as, {\n shallow,\n locale,\n scroll\n });\n}\nfunction Link(props) {\n if (process.env.NODE_ENV !== 'production') {\n function createPropError(args) {\n return new Error(`Failed prop type: The prop \\`${args.key}\\` expects a ${args.expected} in \\`\\`, but got \\`${args.actual}\\` instead.` + (typeof window !== 'undefined' ? \"\\nOpen your browser's console to view the Component stack trace.\" : ''));\n }\n // TypeScript trick for type-guarding:\n const requiredPropsGuard = {\n href: true\n };\n const requiredProps = Object.keys(requiredPropsGuard);\n requiredProps.forEach((key)=>{\n if (key === 'href') {\n if (props[key] == null || typeof props[key] !== 'string' && typeof props[key] !== 'object') {\n throw createPropError({\n key,\n expected: '`string` or `object`',\n actual: props[key] === null ? 'null' : typeof props[key]\n });\n }\n } else {\n // TypeScript trick for type-guarding:\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const _ = key;\n }\n });\n // TypeScript trick for type-guarding:\n const optionalPropsGuard = {\n as: true,\n replace: true,\n scroll: true,\n shallow: true,\n passHref: true,\n prefetch: true,\n locale: true\n };\n const optionalProps = Object.keys(optionalPropsGuard);\n optionalProps.forEach((key)=>{\n const valType = typeof props[key];\n if (key === 'as') {\n if (props[key] && valType !== 'string' && valType !== 'object') {\n throw createPropError({\n key,\n expected: '`string` or `object`',\n actual: valType\n });\n }\n } else if (key === 'locale') {\n if (props[key] && valType !== 'string') {\n throw createPropError({\n key,\n expected: '`string`',\n actual: valType\n });\n }\n } else if (key === 'replace' || key === 'scroll' || key === 'shallow' || key === 'passHref' || key === 'prefetch') {\n if (props[key] != null && valType !== 'boolean') {\n throw createPropError({\n key,\n expected: '`boolean`',\n actual: valType\n });\n }\n } else {\n // TypeScript trick for type-guarding:\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const _ = key;\n }\n });\n // This hook is in a conditional but that is ok because `process.env.NODE_ENV` never changes\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const hasWarned = _react.default.useRef(false);\n if (props.prefetch && !hasWarned.current) {\n hasWarned.current = true;\n console.warn('Next.js auto-prefetches automatically based on viewport. The prefetch attribute is no longer needed. More: https://nextjs.org/docs/messages/prefetch-true-deprecated');\n }\n }\n const p = props.prefetch !== false;\n const router = (0, _router1).useRouter();\n const { href , as } = _react.default.useMemo(()=>{\n const [resolvedHref, resolvedAs] = (0, _router).resolveHref(router, props.href, true);\n return {\n href: resolvedHref,\n as: props.as ? (0, _router).resolveHref(router, props.as) : resolvedAs || resolvedHref\n };\n }, [\n router,\n props.href,\n props.as\n ]);\n let { children , replace , shallow , scroll , locale } = props;\n if (typeof children === 'string') {\n children = /*#__PURE__*/ _react.default.createElement(\"a\", null, children);\n }\n // This will return the first child, if multiple are provided it will throw an error\n let child;\n if (process.env.NODE_ENV === 'development') {\n try {\n child = _react.default.Children.only(children);\n } catch (err) {\n throw new Error(`Multiple children were passed to with \\`href\\` of \\`${props.href}\\` but only one child is supported https://nextjs.org/docs/messages/link-multiple-children` + (typeof window !== 'undefined' ? \" \\nOpen your browser's console to view the Component stack trace.\" : ''));\n }\n } else {\n child = _react.default.Children.only(children);\n }\n const childRef = child && typeof child === 'object' && child.ref;\n const [setIntersectionRef, isVisible] = (0, _useIntersection).useIntersection({\n rootMargin: '200px'\n });\n const setRef = _react.default.useCallback((el)=>{\n setIntersectionRef(el);\n if (childRef) {\n if (typeof childRef === 'function') childRef(el);\n else if (typeof childRef === 'object') {\n childRef.current = el;\n }\n }\n }, [\n childRef,\n setIntersectionRef\n ]);\n _react.default.useEffect(()=>{\n const shouldPrefetch = isVisible && p && (0, _router).isLocalURL(href);\n const curLocale = typeof locale !== 'undefined' ? locale : router && router.locale;\n const isPrefetched = prefetched[href + '%' + as + (curLocale ? '%' + curLocale : '')];\n if (shouldPrefetch && !isPrefetched) {\n prefetch(router, href, as, {\n locale: curLocale\n });\n }\n }, [\n as,\n href,\n isVisible,\n locale,\n p,\n router\n ]);\n const childProps = {\n ref: setRef,\n onClick: (e)=>{\n if (process.env.NODE_ENV !== 'production') {\n if (!e) {\n throw new Error(`Component rendered inside next/link has to pass click event to \"onClick\" prop.`);\n }\n }\n if (child.props && typeof child.props.onClick === 'function') {\n child.props.onClick(e);\n }\n if (!e.defaultPrevented) {\n linkClicked(e, router, href, as, replace, shallow, scroll, locale);\n }\n }\n };\n childProps.onMouseEnter = (e)=>{\n if (child.props && typeof child.props.onMouseEnter === 'function') {\n child.props.onMouseEnter(e);\n }\n if ((0, _router).isLocalURL(href)) {\n prefetch(router, href, as, {\n priority: true\n });\n }\n };\n // If child is an tag and doesn't have a href attribute, or if the 'passHref' property is\n // defined, we specify the current 'href', so that repetition is not needed by the user\n if (props.passHref || child.type === 'a' && !('href' in child.props)) {\n const curLocale = typeof locale !== 'undefined' ? locale : router && router.locale;\n // we only render domain locales if we are currently on a domain locale\n // so that locale links are still visitable in development/preview envs\n const localeDomain = router && router.isLocaleDomain && (0, _router).getDomainLocale(as, curLocale, router && router.locales, router && router.domainLocales);\n childProps.href = localeDomain || (0, _router).addBasePath((0, _router).addLocale(as, curLocale, router && router.defaultLocale));\n }\n return(/*#__PURE__*/ _react.default.cloneElement(child, childProps));\n}\nvar _default = Link;\nexports.default = _default;\n\n//# sourceMappingURL=link.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.useIntersection = useIntersection;\nvar _react = require(\"react\");\nvar _requestIdleCallback = require(\"./request-idle-callback\");\nconst hasIntersectionObserver = typeof IntersectionObserver !== 'undefined';\nfunction useIntersection({ rootRef , rootMargin , disabled }) {\n const isDisabled = disabled || !hasIntersectionObserver;\n const unobserve = (0, _react).useRef();\n const [visible, setVisible] = (0, _react).useState(false);\n const [root, setRoot] = (0, _react).useState(rootRef ? rootRef.current : null);\n const setRef = (0, _react).useCallback((el)=>{\n if (unobserve.current) {\n unobserve.current();\n unobserve.current = undefined;\n }\n if (isDisabled || visible) return;\n if (el && el.tagName) {\n unobserve.current = observe(el, (isVisible)=>isVisible && setVisible(isVisible)\n , {\n root,\n rootMargin\n });\n }\n }, [\n isDisabled,\n root,\n rootMargin,\n visible\n ]);\n (0, _react).useEffect(()=>{\n if (!hasIntersectionObserver) {\n if (!visible) {\n const idleCallback = (0, _requestIdleCallback).requestIdleCallback(()=>setVisible(true)\n );\n return ()=>(0, _requestIdleCallback).cancelIdleCallback(idleCallback)\n ;\n }\n }\n }, [\n visible\n ]);\n (0, _react).useEffect(()=>{\n if (rootRef) setRoot(rootRef.current);\n }, [\n rootRef\n ]);\n return [\n setRef,\n visible\n ];\n}\nfunction observe(element, callback, options) {\n const { id , observer , elements } = createObserver(options);\n elements.set(element, callback);\n observer.observe(element);\n return function unobserve() {\n elements.delete(element);\n observer.unobserve(element);\n // Destroy observer when there's nothing left to watch:\n if (elements.size === 0) {\n observer.disconnect();\n observers.delete(id);\n let index = idList.findIndex((obj)=>obj.root === id.root && obj.margin === id.margin\n );\n if (index > -1) {\n idList.splice(index, 1);\n }\n }\n };\n}\nconst observers = new Map();\nconst idList = [];\nfunction createObserver(options) {\n const id = {\n root: options.root || null,\n margin: options.rootMargin || ''\n };\n let existing = idList.find((obj)=>obj.root === id.root && obj.margin === id.margin\n );\n let instance;\n if (existing) {\n instance = observers.get(existing);\n } else {\n instance = observers.get(id);\n idList.push(id);\n }\n if (instance) {\n return instance;\n }\n const elements = new Map();\n const observer = new IntersectionObserver((entries)=>{\n entries.forEach((entry)=>{\n const callback = elements.get(entry.target);\n const isVisible = entry.isIntersecting || entry.intersectionRatio > 0;\n if (callback && isVisible) {\n callback(isVisible);\n }\n });\n }, options);\n observers.set(id, instance = {\n id,\n observer,\n elements\n });\n return instance;\n}\n\n//# sourceMappingURL=use-intersection.js.map","module.exports = require('./dist/shared/lib/head')\n","module.exports = require('./dist/client/image')\n","module.exports = require('./dist/client/link')\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n"],"names":["ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread2","target","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_typeof","obj","Symbol","iterator","constructor","prototype","_defineProperties","props","descriptor","configurable","writable","value","_slicedToArray","arr","Array","isArray","_arrayWithHoles","_i","_s","_e","_arr","_n","_d","call","next","done","err","_iterableToArrayLimit","_unsupportedIterableToArray","TypeError","_nonIterableRest","_toConsumableArray","_arrayLikeToArray","_arrayWithoutHoles","iter","from","_iterableToArray","_nonIterableSpread","o","minLen","n","toString","slice","name","test","len","arr2","noop","_WINDOW","_DOCUMENT","_MUTATION_OBSERVER","_PERFORMANCE","mark","measure","window","document","MutationObserver","performance","e","_familyProxy","_familyProxy2","_familyProxy3","_familyProxy4","_familyProxy5","_ref$userAgent","navigator","userAgent","WINDOW","DOCUMENT","MUTATION_OBSERVER","PERFORMANCE","IS_DOM","documentElement","head","addEventListener","createElement","IS_IE","indexOf","DEFAULT_REPLACEMENT_CLASS","DATA_FA_I2SVG","DATA_FA_PSEUDO_ELEMENT","DATA_PREFIX","DATA_ICON","HTML_CLASS_I2SVG_BASE_CLASS","TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS","PRODUCTION","FAMILY_CLASSIC","FAMILY_SHARP","FAMILIES","familyProxy","Proxy","get","prop","PREFIX_TO_STYLE","STYLE_TO_PREFIX","solid","regular","light","thin","duotone","brands","kit","PREFIX_TO_LONG_STYLE","fab","fad","fak","fal","far","fas","fat","fass","fasr","fasl","fast","LONG_STYLE_TO_PREFIX","ICON_SELECTION_SYNTAX_PATTERN","LAYERS_TEXT_CLASSNAME","FONT_FAMILY_PATTERN","FONT_WEIGHT_TO_PREFIX","normal","oneToTen","oneToTwenty","concat","ATTRIBUTES_WATCHED_FOR_MUTATION","DUOTONE_CLASSES","prefixes","Set","map","add","bind","RESERVED_CLASSES","initial","FontAwesomeConfig","querySelector","_ref","_ref2","attr","val","coerce","element","getAttribute","getAttrConfig","undefined","_default","styleDefault","familyDefault","cssPrefix","replacementClass","autoReplaceSvg","autoAddCss","autoA11y","searchPseudoElements","observeMutations","mutateApproach","keepOriginalSource","measurePerformance","showMissingIcons","familyPrefix","_config","config","set","_onChangeCb","cb","d","meaninglessTransform","size","x","y","rotate","flipX","flipY","nextUniqueId","id","Math","random","toArray","array","classArray","node","classList","split","htmlEscape","str","replace","joinStyles","styles","reduce","acc","styleName","trim","transformIsMeaningful","transform","css","dcp","drc","fp","rc","s","dPatt","RegExp","customPropPatt","rPatt","_cssInserted","ensureCss","style","setAttribute","innerHTML","headChildren","childNodes","beforeChild","child","tagName","toUpperCase","insertBefore","insertCss","InjectCSS","mixout","dom","hooks","beforeDOMElementCreation","beforeI2svg","w","shims","namespace","functions","loaded","domready","fn","setTimeout","toHtml","abstractNodes","tag","_abstractNodes$attrib","attributes","_abstractNodes$childr","children","attributeName","joinAttributes","join","iconFromMapping","mapping","prefix","iconName","icon","doScroll","readyState","listener","removeEventListener","subject","initialValue","thisContext","result","func","a","b","c","bindInternal4","toHex","unicode","decoded","string","output","counter","charCodeAt","extra","ucs2decode","normalizeIcons","icons","defineIcons","params","_params$skipHooks","skipHooks","normalized","addPack","_LONG_STYLE","_PREFIXES","_PREFIXES_FOR_FAMILY","LONG_STYLE","values","_defaultUsablePrefix","_byUnicode","_byLigature","_byOldName","_byOldUnicode","_byAlias","PREFIXES","getIconName","cls","parts","build","lookup","reducer","alias","aliases","hasRegular","autoFetchSvg","shimLookups","shim","maybeNameMaybeUnicode","names","unicodes","getCanonicalPrefix","family","byUnicode","byAlias","byOldName","getDefaultUsablePrefix","styleOrPrefix","_params$family","defined","PREFIXES_FOR_FAMILY","getCanonicalIcon","_famProps","_params$skipLookups","skipLookups","famProps","givenPrefix","includes","some","v","canonical","rest","aliasIconName","Library","instance","Constructor","_classCallCheck","this","definitions","protoProps","staticProps","_this","_len","_key","additions","_pullDefinitions","longPrefix","definition","_normalized$key","_plugins","_hooks","providers","defaultProviderKeys","chainHooks","hook","accumulator","args","hookFns","hookFn","callHooks","_len2","_key2","callProvided","findIconDefinition","iconLookup","library","i2svg","Promise","reject","watch","autoReplaceSvgRoot","autoReplace","api","noAuto","parse","_icon","match","canonicalIcon","_prefix","_params$autoReplaceSv","domVariants","abstractCreator","abstract","container","html","makeInlineSvgAbstract","_params$icons","main","mask","symbol","title","maskId","titleId","_params$watchable","watchable","found","width","height","isUploadedIcon","attrClass","classes","content","role","uploadedIconWidthStyle","asSymbol","offset","asIcon","makeLayersTextAbstract","_params$watchable2","_ref2$width","_ref2$height","_ref2$startCentered","startCentered","transformForCss","styleString","class","makeLayersCounterAbstract","styles$1","asFoundIcon","vectorData","fill","missingIconResolutionMixin","findIcon","resolve","console","error","maybeNotifyMissing","noop$1","p","preamble","end","perf","noop$2","isWatched","createElementNS","convertSVG","abstractObj","_params$ceFn","ceFn","createTextNode","appendChild","mutators","mutation","parentNode","_abstract","comment","createComment","outerHTML","nodeAsComment","replaceChild","remove","nest","_abstract2","forSvg","splitClasses","toSvg","toNode","removeAttribute","newInnerHTML","performOperationSync","op","perform","mutations","callback","callbackFunction","frame","requestAnimationFrame","mutator","disabled","disableObservation","enableObservation","mo","observe","options","_options$treeCallback","treeCallback","_options$nodeCallback","nodeCallback","_options$pseudoElemen","pseudoElementsCallback","_options$observeMutat","observeMutationsRoot","objects","defaultPrefix","mutationRecord","type","addedNodes","hasPrefixAndIcon","_getCanonicalIcon","contains","childList","characterData","subtree","styleParser","classParser","ligature","existingPrefix","existingIconName","innerText","firstChild","nodeType","Node","TEXT_NODE","data","attributesParser","extraAttributes","parseMeta","parser","_classParser","extraClasses","pluginMeta","extraStyles","styles$2","generateMutation","nodeMeta","knownPrefixes","onTree","root","htmlClassList","hclAdd","suffix","hclRemove","f","prefixesDomQuery","candidates","querySelectorAll","all","then","resolvedMutations","catch","onNode","render","iconDefinition","_params$transform","_params$symbol","_params$mask","_params$maskId","_params$title","_params$titleId","_params$classes","_params$attributes","_params$styles","ReplaceElements","maybeIconDefinition","mutationObserverCallbacks","provides","providers$$1","_params$node","_params$callback","generateSvgReplacementMutation","generateAbstractIcon","_ref3","nextChild","containerWidth","iconWidth","Layers","layer","assembler","LayersCounter","LayersText","text","generateLayersText","computedFontSize","parseInt","getComputedStyle","fontSize","boundingClientRect","getBoundingClientRect","CLEAN_CONTENT_PATTERN","SECONDARY_UNICODE_RANGE","replaceForPosition","position","pendingAttribute","alreadyProcessedPseudoElement","fontFamily","getPropertyValue","fontWeight","removeChild","_content","toLowerCase","_hexValueFromContent","cleaned","codePoint","index","second","first","codePointAt","isPrependTen","isDoubled","isSecondary","hexValueFromContent","hexValue","isV4","startsWith","iconIdentifier","iconName4","oldUnicode","newUnicode","byOldUnicode","meta","processable","operations","_unwatched","parseTransformString","transformString","parseFloat","isNaN","PowerTransforms","parseNodeAttributes","generateAbstractTransformGrouping","outer","innerTranslate","innerScale","innerRotate","inner","path","ALL_SPACE","fillBlack","force","Masks","maskData","generateAbstractMask","explicitMaskId","mainWidth","mainPath","maskWidth","maskPath","trans","transformForSvg","maskRect","maskInnerGroupChildrenMixin","maskInnerGroup","maskOuterGroup","clipId","maskTag","maskUnits","maskContentUnits","defs","MissingIconIndicator","reduceMotion","matchMedia","matches","missingIconAbstract","gChildren","FILL","ANIMATION_BASE","attributeType","repeatCount","dur","OPACITY_ANIMATE","dot","cx","cy","r","opacity","nextPlugins","mixoutsTo","k","plugin","tk","sk","registerPlugins","pseudoElements2svg","unwatch","bootstrap","disconnect","symbolData","parse$1","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","camelize","chr","substr","_excluded","styleToObject","pair","charAt","normalizeIconArgs","objectWithKey","FontAwesomeIcon","ref","iconArgs","maskArgs","className","_classes","beat","fade","beatFade","bounce","shake","flash","spin","spinPulse","spinReverse","pulse","fixedWidth","inverse","border","listItem","flip","rotation","pull","swapOpacity","renderedIcon","_console","log","extraProps","defaultProps","hasOwnProperty","convertCurry","displayName","propTypes","convert","mixins","attrs","_extraProps$style","existingStyle","remaining","exports","_param","src","sizes","unoptimized","priority","loading","lazyRoot","lazyBoundary","quality","objectFit","objectPosition","onLoadingComplete","loader","defaultImageLoader","placeholder","blurDataURL","imgRef","_react","useRef","configContext","useContext","_imageConfigContext","ImageConfigContext","useMemo","configEnv","_imageConfig","imageConfigDefault","allSizes","deviceSizes","imageSizes","sort","_objectSpread","layout","staticSrc","isStaticRequire","isStaticImageData","isStaticImport","staticImageData","default","Error","JSON","stringify","widthInt","getInt","heightInt","qualityInt","isLazy","loadedImageURLs","has","sizerSvgUrl","_useIntersection","useIntersection","rootRef","rootMargin","setIntersection","isIntersected","isVisible","wrapperStyle","boxSizing","display","overflow","background","margin","padding","sizerStyle","hasSizer","imgStyle","top","left","bottom","right","minWidth","maxWidth","minHeight","maxHeight","blurStyle","backgroundSize","backgroundImage","backgroundPosition","quotient","paddingTop","imgAttributes","emptyDataURL","srcSet","generateImgAttrs","srcString","process","linkProps","useLayoutEffect","onLoadingCompleteRef","useEffect","current","handleLoad","img","decode","naturalWidth","naturalHeight","complete","onload","handleLoading","alt","assign","decoding","_head","rel","as","href","__esModule","newObj","desc","_interopRequireWildcard","require","Map","loaders","endsWith","dangerouslyAllowSVG","encodeURIComponent","url","URL","normalizeSrc","searchParams","paramsString","getWidths","viewportWidthRe","percentSizes","exec","smallestRatio","min","widths","kind","find","last","loaderProps","loaderKey","load","VALID_LOADERS","_router","_router1","prefetched","prefetch","router","isLocalURL","curLocale","locale","useRouter","resolveHref","resolvedHref","resolvedAs","shallow","scroll","childRef","Children","only","setIntersectionRef","setRef","useCallback","el","shouldPrefetch","isPrefetched","childProps","onClick","defaultPrevented","currentTarget","nodeName","event","metaKey","ctrlKey","shiftKey","altKey","nativeEvent","which","isModifiedEvent","preventDefault","linkClicked","onMouseEnter","passHref","localeDomain","isLocaleDomain","getDomainLocale","locales","domainLocales","addBasePath","addLocale","defaultLocale","cloneElement","isDisabled","hasIntersectionObserver","unobserve","useState","visible","setVisible","setRoot","createObserver","existing","idList","observers","elements","observer","IntersectionObserver","entries","entry","isIntersecting","intersectionRatio","delete","findIndex","splice","idleCallback","_requestIdleCallback","requestIdleCallback","cancelIdleCallback","module","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","propName","componentName","location","propFullName","secret","getShim","isRequired","ReactPropTypes","bigint","bool","number","any","arrayOf","elementType","instanceOf","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes"],"sourceRoot":""}