{"version":3,"file":"commons-cff3b1d1b08c1fe14fc5.js","mappings":"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","sources":["webpack://gatsby-starter-default/./node_modules/@fortawesome/fontawesome-svg-core/index.mjs","webpack://gatsby-starter-default/./node_modules/@fortawesome/react-fontawesome/index.es.js","webpack://gatsby-starter-default/../src/image-utils.ts","webpack://gatsby-starter-default/../src/components/hooks.ts","webpack://gatsby-starter-default/../src/components/layout-wrapper.tsx","webpack://gatsby-starter-default/../src/components/picture.tsx","webpack://gatsby-starter-default/../src/components/placeholder.tsx","webpack://gatsby-starter-default/../src/components/main-image.tsx","webpack://gatsby-starter-default/../src/components/gatsby-image.server.tsx","webpack://gatsby-starter-default/../src/components/gatsby-image.browser.tsx","webpack://gatsby-starter-default/../src/components/static-image.server.tsx","webpack://gatsby-starter-default/../src/components/static-image.tsx","webpack://gatsby-starter-default/./node_modules/gatsby-plugin-image/node_modules/camelcase/index.js","webpack://gatsby-starter-default/./src/components/navigation.js","webpack://gatsby-starter-default/./src/components/header.js","webpack://gatsby-starter-default/./src/components/backgroundDots.js","webpack://gatsby-starter-default/./src/components/socials.js","webpack://gatsby-starter-default/./src/components/footer.js","webpack://gatsby-starter-default/./src/components/layout.js","webpack://gatsby-starter-default/./src/components/logo.js","webpack://gatsby-starter-default/./src/components/seo.js","webpack://gatsby-starter-default/./src/images/iconMmm.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, none));\\n transform: rotate(var(--fa-rotate-angle, none));\\n}\\n\\n.fa-stack {\\n display: inline-block;\\n vertical-align: middle;\\n height: 2em;\\n position: relative;\\n width: 2.5em;\\n}\\n\\n.fa-stack-1x,\\n.fa-stack-2x {\\n bottom: 0;\\n left: 0;\\n margin: auto;\\n position: absolute;\\n right: 0;\\n top: 0;\\n z-index: var(--fa-stack-z-index, auto);\\n}\\n\\n.svg-inline--fa.fa-stack-1x {\\n height: 1em;\\n width: 1.25em;\\n}\\n.svg-inline--fa.fa-stack-2x {\\n height: 2em;\\n width: 2.5em;\\n}\\n\\n.fa-inverse {\\n color: var(--fa-inverse, #fff);\\n}\\n\\n.sr-only,\\n.fa-sr-only {\\n position: absolute;\\n width: 1px;\\n height: 1px;\\n padding: 0;\\n margin: -1px;\\n overflow: hidden;\\n clip: rect(0, 0, 0, 0);\\n white-space: nowrap;\\n border-width: 0;\\n}\\n\\n.sr-only-focusable:not(:focus),\\n.fa-sr-only-focusable:not(:focus) {\\n position: absolute;\\n width: 1px;\\n height: 1px;\\n padding: 0;\\n margin: -1px;\\n overflow: hidden;\\n clip: rect(0, 0, 0, 0);\\n white-space: nowrap;\\n border-width: 0;\\n}\\n\\n.svg-inline--fa .fa-primary {\\n fill: var(--fa-primary-color, currentColor);\\n opacity: var(--fa-primary-opacity, 1);\\n}\\n\\n.svg-inline--fa .fa-secondary {\\n fill: var(--fa-secondary-color, currentColor);\\n opacity: var(--fa-secondary-opacity, 0.4);\\n}\\n\\n.svg-inline--fa.fa-swap-opacity .fa-primary {\\n opacity: var(--fa-secondary-opacity, 0.4);\\n}\\n\\n.svg-inline--fa.fa-swap-opacity .fa-secondary {\\n opacity: var(--fa-primary-opacity, 1);\\n}\\n\\n.svg-inline--fa mask .fa-primary,\\n.svg-inline--fa mask .fa-secondary {\\n fill: black;\\n}\\n\\n.fad.fa-inverse,\\n.fa-duotone.fa-inverse {\\n color: var(--fa-inverse, #fff);\\n}\";\n\nfunction css() {\n var 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(''), \"\");\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.1\\\"\";\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","import camelCase from \"camelcase\"\nimport type { IGatsbyImageData } from \"./index\"\n\nconst DEFAULT_PIXEL_DENSITIES = [0.25, 0.5, 1, 2]\nexport const DEFAULT_BREAKPOINTS = [750, 1080, 1366, 1920]\nexport const EVERY_BREAKPOINT = [\n 320, 654, 768, 1024, 1366, 1600, 1920, 2048, 2560, 3440, 3840, 4096,\n]\nconst DEFAULT_FLUID_WIDTH = 800\nconst DEFAULT_FIXED_WIDTH = 800\nconst DEFAULT_ASPECT_RATIO = 4 / 3\n\nexport type Fit = \"cover\" | \"fill\" | \"inside\" | \"outside\" | \"contain\"\n\nexport type Layout = \"fixed\" | \"fullWidth\" | \"constrained\"\nexport type ImageFormat = \"jpg\" | \"png\" | \"webp\" | \"avif\" | \"auto\" | \"\"\n\n/**\n * The minimal required reporter, as we don't want to import it from gatsby-cli\n */\nexport interface IReporter {\n warn(message: string): void\n}\n\nexport interface ISharpGatsbyImageArgs {\n layout?: Layout\n formats?: Array\n placeholder?: \"tracedSVG\" | \"dominantColor\" | \"blurred\" | \"none\"\n tracedSVGOptions?: Record\n width?: number\n height?: number\n aspectRatio?: number\n sizes?: string\n quality?: number\n transformOptions?: {\n fit?: Fit\n cropFocus?: number | string\n duotone?: {\n highlight: string\n shadow: string\n opacity?: number\n }\n grayscale?: boolean\n rotate?: number\n trim?: number\n }\n jpgOptions?: Record\n pngOptions?: Record\n webpOptions?: Record\n avifOptions?: Record\n blurredOptions?: { width?: number; toFormat?: ImageFormat }\n breakpoints?: Array\n outputPixelDensities?: Array\n backgroundColor?: string\n}\n\nexport interface IImageSizeArgs {\n width?: number\n height?: number\n layout?: Layout\n filename: string\n outputPixelDensities?: Array\n breakpoints?: Array\n fit?: Fit\n reporter?: IReporter\n sourceMetadata: { width: number; height: number }\n}\n\nexport interface IImageSizes {\n sizes: Array\n presentationWidth: number\n presentationHeight: number\n aspectRatio: number\n unscaledWidth: number\n}\n\nexport interface IImage {\n src: string\n width: number\n height: number\n format: ImageFormat\n}\n\nexport interface IGatsbyImageHelperArgs {\n pluginName: string\n generateImageSource: (\n filename: string,\n width: number,\n height: number,\n format: ImageFormat,\n fit?: Fit,\n options?: Record\n ) => IImage\n layout?: Layout\n formats?: Array\n filename: string\n placeholderURL?: string\n width?: number\n height?: number\n sizes?: string\n reporter?: IReporter\n sourceMetadata?: { width: number; height: number; format: ImageFormat }\n fit?: Fit\n options?: Record\n breakpoints?: Array\n backgroundColor?: string\n aspectRatio?: number\n}\n\nconst warn = (message: string): void => console.warn(message)\n\nconst sortNumeric = (a: number, b: number): number => a - b\n\nexport const getSizes = (width: number, layout: Layout): string | undefined => {\n switch (layout) {\n // If screen is wider than the max size, image width is the max size,\n // otherwise it's the width of the screen\n case `constrained`:\n return `(min-width: ${width}px) ${width}px, 100vw`\n\n // Image is always the same width, whatever the size of the screen\n case `fixed`:\n return `${width}px`\n\n // Image is always the width of the screen\n case `fullWidth`:\n return `100vw`\n\n default:\n return undefined\n }\n}\n\nexport const getSrcSet = (images: Array): string =>\n images.map(image => `${image.src} ${image.width}w`).join(`,\\n`)\n\nexport function formatFromFilename(filename: string): ImageFormat | undefined {\n const dot = filename.lastIndexOf(`.`)\n if (dot !== -1) {\n const ext = filename.slice(dot + 1)\n if (ext === `jpeg`) {\n return `jpg`\n }\n if (ext.length === 3 || ext.length === 4) {\n return ext as ImageFormat\n }\n }\n return undefined\n}\n\nexport function setDefaultDimensions(\n args: IGatsbyImageHelperArgs\n): IGatsbyImageHelperArgs {\n let {\n layout = `constrained`,\n width,\n height,\n sourceMetadata,\n breakpoints,\n aspectRatio,\n formats = [`auto`, `webp`],\n } = args\n formats = formats.map(format => format.toLowerCase() as ImageFormat)\n layout = camelCase(layout) as Layout\n\n if (width && height) {\n return { ...args, formats, layout, aspectRatio: width / height }\n }\n if (sourceMetadata.width && sourceMetadata.height && !aspectRatio) {\n aspectRatio = sourceMetadata.width / sourceMetadata.height\n }\n\n if (layout === `fullWidth`) {\n width = width || sourceMetadata.width || breakpoints[breakpoints.length - 1]\n height = height || Math.round(width / (aspectRatio || DEFAULT_ASPECT_RATIO))\n } else {\n if (!width) {\n if (height && aspectRatio) {\n width = height * aspectRatio\n } else if (sourceMetadata.width) {\n width = sourceMetadata.width\n } else if (height) {\n width = Math.round(height / DEFAULT_ASPECT_RATIO)\n } else {\n width = DEFAULT_FIXED_WIDTH\n }\n }\n\n if (aspectRatio && !height) {\n height = Math.round(width / aspectRatio)\n } else if (!aspectRatio) {\n aspectRatio = width / height\n }\n }\n return { ...args, width, height, aspectRatio, layout, formats }\n}\n\n/**\n * Use this for getting an image for the blurred placeholder. This ensures the\n * aspect ratio and crop match the main image\n */\nexport function getLowResolutionImageURL(\n args: IGatsbyImageHelperArgs,\n width = 20\n): string {\n args = setDefaultDimensions(args)\n const { generateImageSource, filename, aspectRatio } = args\n return generateImageSource(\n filename,\n width,\n Math.round(width / aspectRatio),\n args.sourceMetadata.format || `jpg`,\n args.fit,\n args.options\n )?.src\n}\n\nexport function generateImageData(\n args: IGatsbyImageHelperArgs\n): IGatsbyImageData {\n args = setDefaultDimensions(args)\n\n let {\n pluginName,\n sourceMetadata,\n generateImageSource,\n layout,\n fit,\n options,\n width,\n height,\n filename,\n reporter = { warn },\n backgroundColor,\n placeholderURL,\n } = args\n\n if (!pluginName) {\n reporter.warn(\n `[gatsby-plugin-image] \"generateImageData\" was not passed a plugin name`\n )\n }\n\n if (typeof generateImageSource !== `function`) {\n throw new Error(`generateImageSource must be a function`)\n }\n\n if (!sourceMetadata || (!sourceMetadata.width && !sourceMetadata.height)) {\n // No metadata means we let the CDN handle max size etc, aspect ratio etc\n sourceMetadata = {\n width,\n height,\n format: sourceMetadata?.format || formatFromFilename(filename) || `auto`,\n }\n } else if (!sourceMetadata.format) {\n sourceMetadata.format = formatFromFilename(filename)\n }\n\n const formats = new Set(args.formats)\n\n if (formats.size === 0 || formats.has(`auto`) || formats.has(``)) {\n formats.delete(`auto`)\n formats.delete(``)\n formats.add(sourceMetadata.format)\n }\n\n if (formats.has(`jpg`) && formats.has(`png`)) {\n reporter.warn(\n `[${pluginName}] Specifying both 'jpg' and 'png' formats is not supported. Using 'auto' instead`\n )\n if (sourceMetadata.format === `jpg`) {\n formats.delete(`png`)\n } else {\n formats.delete(`jpg`)\n }\n }\n\n const imageSizes = calculateImageSizes({ ...args, sourceMetadata })\n\n const result: IGatsbyImageData[\"images\"] = {\n sources: [],\n }\n\n let sizes = args.sizes\n if (!sizes) {\n sizes = getSizes(imageSizes.presentationWidth, layout)\n }\n\n formats.forEach(format => {\n const images = imageSizes.sizes\n .map(size => {\n const imageSrc = generateImageSource(\n filename,\n size,\n Math.round(size / imageSizes.aspectRatio),\n format,\n fit,\n options\n )\n if (\n !imageSrc?.width ||\n !imageSrc.height ||\n !imageSrc.src ||\n !imageSrc.format\n ) {\n reporter.warn(\n `[${pluginName}] The resolver for image ${filename} returned an invalid value.`\n )\n return undefined\n }\n return imageSrc\n })\n .filter(Boolean)\n\n if (format === `jpg` || format === `png` || format === `auto`) {\n const unscaled =\n images.find(img => img.width === imageSizes.unscaledWidth) || images[0]\n\n if (unscaled) {\n result.fallback = {\n src: unscaled.src,\n srcSet: getSrcSet(images),\n sizes,\n }\n }\n } else {\n result.sources?.push({\n srcSet: getSrcSet(images),\n sizes,\n type: `image/${format}`,\n })\n }\n })\n\n const imageProps: Partial = {\n images: result,\n layout,\n backgroundColor,\n }\n\n if (placeholderURL) {\n imageProps.placeholder = { fallback: placeholderURL }\n }\n\n switch (layout) {\n case `fixed`:\n imageProps.width = imageSizes.presentationWidth\n imageProps.height = imageSizes.presentationHeight\n break\n\n case `fullWidth`:\n imageProps.width = 1\n imageProps.height = 1 / imageSizes.aspectRatio\n break\n\n case `constrained`:\n imageProps.width = args.width || imageSizes.presentationWidth || 1\n imageProps.height = (imageProps.width || 1) / imageSizes.aspectRatio\n }\n\n return imageProps as IGatsbyImageData\n}\n\nconst dedupeAndSortDensities = (values: Array): Array =>\n Array.from(new Set([1, ...values])).sort(sortNumeric)\n\nexport function calculateImageSizes(args: IImageSizeArgs): IImageSizes {\n const {\n width,\n height,\n filename,\n layout = `constrained`,\n sourceMetadata: imgDimensions,\n reporter = { warn },\n breakpoints = DEFAULT_BREAKPOINTS,\n } = args\n\n // check that all dimensions provided are positive\n const userDimensions = { width, height }\n const erroneousUserDimensions = Object.entries(userDimensions).filter(\n ([_, size]) => typeof size === `number` && size < 1\n )\n if (erroneousUserDimensions.length) {\n throw new Error(\n `Specified dimensions for images must be positive numbers (> 0). Problem dimensions you have are ${erroneousUserDimensions\n .map(dim => dim.join(`: `))\n .join(`, `)}`\n )\n }\n\n if (layout === `fixed`) {\n return fixedImageSizes(args)\n } else if (layout === `constrained`) {\n return responsiveImageSizes(args)\n } else if (layout === `fullWidth`) {\n return responsiveImageSizes({ breakpoints, ...args })\n } else {\n reporter.warn(\n `No valid layout was provided for the image at ${filename}. Valid image layouts are fixed, fullWidth, and constrained. Found ${layout}`\n )\n return {\n sizes: [imgDimensions.width],\n presentationWidth: imgDimensions.width,\n presentationHeight: imgDimensions.height,\n aspectRatio: imgDimensions.width / imgDimensions.height,\n unscaledWidth: imgDimensions.width,\n }\n }\n}\nexport function fixedImageSizes({\n filename,\n sourceMetadata: imgDimensions,\n width,\n height,\n fit = `cover`,\n outputPixelDensities = DEFAULT_PIXEL_DENSITIES,\n reporter = { warn },\n}: IImageSizeArgs): IImageSizes {\n let aspectRatio = imgDimensions.width / imgDimensions.height\n // Sort, dedupe and ensure there's a 1\n const densities = dedupeAndSortDensities(outputPixelDensities)\n\n // If both are provided then we need to check the fit\n if (width && height) {\n const calculated = getDimensionsAndAspectRatio(imgDimensions, {\n width,\n height,\n fit,\n })\n width = calculated.width\n height = calculated.height\n aspectRatio = calculated.aspectRatio\n }\n\n if (!width) {\n if (!height) {\n width = DEFAULT_FIXED_WIDTH\n } else {\n width = Math.round(height * aspectRatio)\n }\n } else if (!height) {\n height = Math.round(width / aspectRatio)\n }\n\n const originalWidth = width // will use this for presentationWidth, don't want to lose it\n const isTopSizeOverriden =\n imgDimensions.width < width || imgDimensions.height < (height as number)\n\n // If the image is smaller than requested, warn the user that it's being processed as such\n // print out this message with the necessary information before we overwrite it for sizing\n if (isTopSizeOverriden) {\n const fixedDimension = imgDimensions.width < width ? `width` : `height`\n reporter.warn(`\nThe requested ${fixedDimension} \"${\n fixedDimension === `width` ? width : height\n }px\" for the image ${filename} was larger than the actual image ${fixedDimension} of ${\n imgDimensions[fixedDimension]\n }px. If possible, replace the current image with a larger one.`)\n\n if (fixedDimension === `width`) {\n width = imgDimensions.width\n height = Math.round(width / aspectRatio)\n } else {\n height = imgDimensions.height\n width = height * aspectRatio\n }\n }\n\n const sizes = densities\n .filter(size => size >= 1) // remove smaller densities because fixed images don't need them\n .map(density => Math.round(density * (width as number)))\n .filter(size => size <= imgDimensions.width)\n\n return {\n sizes,\n aspectRatio,\n presentationWidth: originalWidth,\n presentationHeight: Math.round(originalWidth / aspectRatio),\n unscaledWidth: width,\n }\n}\n\nexport function responsiveImageSizes({\n sourceMetadata: imgDimensions,\n width,\n height,\n fit = `cover`,\n outputPixelDensities = DEFAULT_PIXEL_DENSITIES,\n breakpoints,\n layout,\n}: IImageSizeArgs): IImageSizes {\n let sizes\n let aspectRatio = imgDimensions.width / imgDimensions.height\n // Sort, dedupe and ensure there's a 1\n const densities = dedupeAndSortDensities(outputPixelDensities)\n\n // If both are provided then we need to check the fit\n if (width && height) {\n const calculated = getDimensionsAndAspectRatio(imgDimensions, {\n width,\n height,\n fit,\n })\n width = calculated.width\n height = calculated.height\n aspectRatio = calculated.aspectRatio\n }\n\n // Case 1: width of height were passed in, make sure it isn't larger than the actual image\n width = width && Math.min(width, imgDimensions.width)\n height = height && Math.min(height, imgDimensions.height)\n\n // Case 2: neither width or height were passed in, use default size\n if (!width && !height) {\n width = Math.min(DEFAULT_FLUID_WIDTH, imgDimensions.width)\n height = width / aspectRatio\n }\n\n // if it still hasn't been found, calculate width from the derived height.\n // TS isn't smart enough to realise the type for height has been narrowed here\n if (!width) {\n width = (height as number) * aspectRatio\n }\n\n const originalWidth = width\n const isTopSizeOverriden =\n imgDimensions.width < width || imgDimensions.height < (height as number)\n if (isTopSizeOverriden) {\n width = imgDimensions.width\n height = imgDimensions.height\n }\n\n width = Math.round(width)\n\n if (breakpoints?.length > 0) {\n sizes = breakpoints.filter(size => size <= imgDimensions.width)\n\n // If a larger breakpoint has been filtered-out, add the actual image width instead\n if (\n sizes.length < breakpoints.length &&\n !sizes.includes(imgDimensions.width)\n ) {\n sizes.push(imgDimensions.width)\n }\n } else {\n sizes = densities.map(density => Math.round(density * (width as number)))\n sizes = sizes.filter(size => size <= imgDimensions.width)\n }\n\n // ensure that the size passed in is included in the final output\n if (layout === `constrained` && !sizes.includes(width)) {\n sizes.push(width)\n }\n sizes = sizes.sort(sortNumeric)\n return {\n sizes,\n aspectRatio,\n presentationWidth: originalWidth,\n presentationHeight: Math.round(originalWidth / aspectRatio),\n unscaledWidth: width,\n }\n}\n\nexport function getDimensionsAndAspectRatio(\n dimensions,\n options\n): { width: number; height: number; aspectRatio: number } {\n // Calculate the eventual width/height of the image.\n const imageAspectRatio = dimensions.width / dimensions.height\n\n let width = options.width\n let height = options.height\n\n switch (options.fit) {\n case `fill`: {\n width = options.width ? options.width : dimensions.width\n height = options.height ? options.height : dimensions.height\n break\n }\n case `inside`: {\n const widthOption = options.width\n ? options.width\n : Number.MAX_SAFE_INTEGER\n const heightOption = options.height\n ? options.height\n : Number.MAX_SAFE_INTEGER\n\n width = Math.min(widthOption, Math.round(heightOption * imageAspectRatio))\n height = Math.min(\n heightOption,\n Math.round(widthOption / imageAspectRatio)\n )\n break\n }\n case `outside`: {\n const widthOption = options.width ? options.width : 0\n const heightOption = options.height ? options.height : 0\n\n width = Math.max(widthOption, Math.round(heightOption * imageAspectRatio))\n height = Math.max(\n heightOption,\n Math.round(widthOption / imageAspectRatio)\n )\n break\n }\n\n default: {\n if (options.width && !options.height) {\n width = options.width\n height = Math.round(options.width / imageAspectRatio)\n }\n\n if (options.height && !options.width) {\n width = Math.round(options.height * imageAspectRatio)\n height = options.height\n }\n }\n }\n\n return {\n width,\n height,\n aspectRatio: width / height,\n }\n}\n","/* global GATSBY___IMAGE */\nimport { generateImageData, EVERY_BREAKPOINT } from \"../image-utils\"\nimport type { CSSProperties, HTMLAttributes, ImgHTMLAttributes } from \"react\"\nimport type { Node } from \"gatsby\"\nimport type { PlaceholderProps } from \"./placeholder\"\nimport type { MainImageProps } from \"./main-image\"\nimport type { IGatsbyImageData } from \"./gatsby-image.browser\"\nimport type {\n IGatsbyImageHelperArgs,\n Layout,\n IImage,\n ImageFormat,\n} from \"../image-utils\"\n\n// Native lazy-loading support: https://addyosmani.com/blog/lazy-loading/\nexport const hasNativeLazyLoadSupport = (): boolean =>\n typeof HTMLImageElement !== `undefined` &&\n `loading` in HTMLImageElement.prototype\n\nexport function gatsbyImageIsInstalled(): boolean {\n return typeof GATSBY___IMAGE !== `undefined` && GATSBY___IMAGE\n}\n\nexport type IGatsbyImageDataParent = T & {\n gatsbyImageData: IGatsbyImageData\n}\nexport type IGatsbyImageParent = T & {\n gatsbyImage: IGatsbyImageData\n}\nexport type FileNode = Partial & {\n childImageSharp?: IGatsbyImageDataParent>\n}\n\nconst isGatsbyImageData = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n node: IGatsbyImageData | any\n): node is IGatsbyImageData =>\n // 🦆 check for a deep prop to be sure this is a valid gatsbyImageData object\n Boolean(node?.images?.fallback?.src)\n\nconst isGatsbyImageDataParent = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n node: IGatsbyImageDataParent | any\n): node is IGatsbyImageDataParent => Boolean(node?.gatsbyImageData)\n\nconst isGatsbyImageParent = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n node: IGatsbyImageParent | any\n): node is IGatsbyImageParent => Boolean(node?.gatsbyImage)\n\nexport type ImageDataLike =\n | FileNode\n | IGatsbyImageDataParent\n | IGatsbyImageParent\n | IGatsbyImageData\n\nexport const getImage = (\n node: ImageDataLike | null\n): IGatsbyImageData | undefined => {\n // This checks both for gatsbyImageData and gatsbyImage\n if (isGatsbyImageData(node)) {\n return node\n }\n // gatsbyImageData GraphQL field\n if (isGatsbyImageDataParent(node)) {\n return node.gatsbyImageData\n }\n // gatsbyImage GraphQL field for Gatsby's Image CDN service\n if (isGatsbyImageParent(node)) {\n return node.gatsbyImage\n }\n return node?.childImageSharp?.gatsbyImageData\n}\n\nexport const getSrc = (node: ImageDataLike): string | undefined =>\n getImage(node)?.images?.fallback?.src\n\nexport const getSrcSet = (node: ImageDataLike): string | undefined =>\n getImage(node)?.images?.fallback?.srcSet\n\nexport function getWrapperProps(\n width: number,\n height: number,\n layout: Layout\n): Pick, \"className\" | \"style\"> & {\n \"data-gatsby-image-wrapper\": string\n} {\n const wrapperStyle: CSSProperties = {}\n\n let className = `gatsby-image-wrapper`\n\n // If the plugin isn't installed we need to apply the styles inline\n if (!gatsbyImageIsInstalled()) {\n wrapperStyle.position = `relative`\n wrapperStyle.overflow = `hidden`\n }\n\n if (layout === `fixed`) {\n wrapperStyle.width = width\n wrapperStyle.height = height\n } else if (layout === `constrained`) {\n if (!gatsbyImageIsInstalled()) {\n wrapperStyle.display = `inline-block`\n wrapperStyle.verticalAlign = `top`\n }\n className = `gatsby-image-wrapper gatsby-image-wrapper-constrained`\n }\n\n return {\n className,\n \"data-gatsby-image-wrapper\": ``,\n style: wrapperStyle,\n }\n}\n\nexport interface IUrlBuilderArgs {\n width: number\n height: number\n baseUrl: string\n format: ImageFormat\n options: OptionsType\n}\nexport interface IGetImageDataArgs> {\n baseUrl: string\n /**\n * For constrained and fixed images, the size of the image element\n */\n width?: number\n height?: number\n /**\n * If available, pass the source image width and height\n */\n sourceWidth?: number\n sourceHeight?: number\n /**\n * If only one dimension is passed, then this will be used to calculate the other.\n */\n aspectRatio?: number\n layout?: Layout\n /**\n * Returns a URL based on the passed arguments. Should be a pure function\n */\n urlBuilder: (args: IUrlBuilderArgs) => string\n\n /**\n * Should be a data URI\n */\n placeholderURL?: string\n backgroundColor?: string\n /**\n * Used in error messages etc\n */\n pluginName?: string\n\n /**\n * If you do not support auto-format, pass an array of image types here\n */\n formats?: Array\n\n breakpoints?: Array\n\n /**\n * Passed to the urlBuilder function\n */\n options?: OptionsType\n}\n\n/**\n * Use this hook to generate gatsby-plugin-image data in the browser.\n */\nexport function getImageData({\n baseUrl,\n urlBuilder,\n sourceWidth,\n sourceHeight,\n pluginName = `getImageData`,\n formats = [`auto`],\n breakpoints,\n options,\n ...props\n}: IGetImageDataArgs): IGatsbyImageData {\n if (\n !breakpoints?.length &&\n (props.layout === `fullWidth` || (props.layout as string) === `FULL_WIDTH`)\n ) {\n breakpoints = EVERY_BREAKPOINT\n }\n const generateImageSource = (\n baseUrl: string,\n width: number,\n height?: number,\n format?: ImageFormat\n ): IImage => {\n return {\n width,\n height,\n format,\n src: urlBuilder({ baseUrl, width, height, options, format }),\n }\n }\n\n const sourceMetadata: IGatsbyImageHelperArgs[\"sourceMetadata\"] = {\n width: sourceWidth,\n height: sourceHeight,\n format: `auto`,\n }\n\n const args: IGatsbyImageHelperArgs = {\n ...props,\n pluginName,\n generateImageSource,\n filename: baseUrl,\n formats,\n breakpoints,\n sourceMetadata,\n }\n return generateImageData(args)\n}\n\nexport function getMainProps(\n isLoading: boolean,\n isLoaded: boolean,\n images: IGatsbyImageData[\"images\"],\n loading?: \"eager\" | \"lazy\",\n style: CSSProperties = {}\n): Partial {\n // fallback when it's not configured in gatsby-config.\n if (!gatsbyImageIsInstalled()) {\n style = {\n height: `100%`,\n left: 0,\n position: `absolute`,\n top: 0,\n transform: `translateZ(0)`,\n transition: `opacity 250ms linear`,\n width: `100%`,\n willChange: `opacity`,\n ...style,\n }\n }\n\n const result = {\n ...images,\n loading,\n shouldLoad: isLoading,\n \"data-main-image\": ``,\n style: {\n ...style,\n opacity: isLoaded ? 1 : 0,\n },\n }\n\n return result\n}\n\nexport type PlaceholderImageAttrs = ImgHTMLAttributes &\n Pick & {\n \"data-placeholder-image\"?: string\n }\n\nexport function getPlaceholderProps(\n placeholder: PlaceholderImageAttrs | undefined,\n isLoaded: boolean,\n layout: Layout,\n width?: number,\n height?: number,\n backgroundColor?: string,\n objectFit?: CSSProperties[\"objectFit\"],\n objectPosition?: CSSProperties[\"objectPosition\"]\n): PlaceholderImageAttrs {\n const wrapperStyle: CSSProperties = {}\n\n if (backgroundColor) {\n wrapperStyle.backgroundColor = backgroundColor\n\n if (layout === `fixed`) {\n wrapperStyle.width = width\n wrapperStyle.height = height\n wrapperStyle.backgroundColor = backgroundColor\n wrapperStyle.position = `relative`\n } else if (layout === `constrained`) {\n wrapperStyle.position = `absolute`\n wrapperStyle.top = 0\n wrapperStyle.left = 0\n wrapperStyle.bottom = 0\n wrapperStyle.right = 0\n } else if (layout === `fullWidth`) {\n wrapperStyle.position = `absolute`\n wrapperStyle.top = 0\n wrapperStyle.left = 0\n wrapperStyle.bottom = 0\n wrapperStyle.right = 0\n }\n }\n\n if (objectFit) {\n wrapperStyle.objectFit = objectFit\n }\n\n if (objectPosition) {\n wrapperStyle.objectPosition = objectPosition\n }\n const result: PlaceholderImageAttrs = {\n ...placeholder,\n \"aria-hidden\": true,\n \"data-placeholder-image\": ``,\n style: {\n opacity: isLoaded ? 0 : 1,\n transition: `opacity 500ms linear`,\n ...wrapperStyle,\n },\n }\n\n // fallback when it's not configured in gatsby-config.\n if (!gatsbyImageIsInstalled()) {\n result.style = {\n height: `100%`,\n left: 0,\n position: `absolute`,\n top: 0,\n width: `100%`,\n }\n }\n\n return result\n}\n\nexport interface IArtDirectedImage {\n media: string\n image: IGatsbyImageData\n}\n\n/**\n * Generate a Gatsby image data object with multiple, art-directed images that display at different\n * resolutions.\n *\n * @param defaultImage The image displayed when no media query matches.\n * It is also used for all other settings applied to the image, such as width, height and layout.\n * You should pass a className to the component with media queries to adjust the size of the container,\n * as this cannot be adjusted automatically.\n * @param artDirected Array of objects which each contains a `media` string which is a media query\n * such as `(min-width: 320px)`, and the image object to use when that query matches.\n */\nexport function withArtDirection(\n defaultImage: IGatsbyImageData,\n artDirected: Array\n): IGatsbyImageData {\n const { images, placeholder, ...props } = defaultImage\n const output: IGatsbyImageData = {\n ...props,\n images: {\n ...images,\n sources: [],\n },\n placeholder: placeholder && {\n ...placeholder,\n sources: [],\n },\n }\n\n artDirected.forEach(({ media, image }) => {\n if (!media) {\n if (process.env.NODE_ENV === `development`) {\n console.warn(\n \"[gatsby-plugin-image] All art-directed images passed to must have a value set for `media`. Skipping.\"\n )\n }\n return\n }\n\n if (\n image.layout !== defaultImage.layout &&\n process.env.NODE_ENV === `development`\n ) {\n console.warn(\n `[gatsby-plugin-image] Mismatched image layout: expected \"${defaultImage.layout}\" but received \"${image.layout}\". All art-directed images use the same layout as the default image`\n )\n }\n\n output.images.sources.push(\n ...image.images.sources.map(source => {\n return { ...source, media }\n }),\n {\n media,\n srcSet: image.images.fallback.srcSet,\n }\n )\n\n if (!output.placeholder) {\n return\n }\n\n output.placeholder.sources.push({\n media,\n srcSet: image.placeholder.fallback,\n })\n })\n output.images.sources.push(...images.sources)\n if (placeholder?.sources) {\n output.placeholder?.sources.push(...placeholder.sources)\n }\n return output\n}\n","import React, { Fragment, FunctionComponent, PropsWithChildren } from \"react\"\nimport terserMacro from \"../../macros/terser.macro\"\nimport { Layout } from \"../image-utils\"\n\nexport interface ILayoutWrapperProps {\n layout: Layout\n width: number\n height: number\n}\n\nconst NativeScriptLoading: FunctionComponent = () => (\n \n)\n\nexport function getSizer(\n layout: Layout,\n width: number,\n height: number\n): string {\n let sizer = ``\n if (layout === `fullWidth`) {\n sizer = `
`\n }\n\n if (layout === `constrained`) {\n sizer = `
\"\"
`\n }\n\n return sizer\n}\n\nconst Sizer: FunctionComponent = function Sizer({\n layout,\n width,\n height,\n}) {\n if (layout === `fullWidth`) {\n return (\n
\n )\n }\n\n if (layout === `constrained`) {\n return (\n
\n \n
\n )\n }\n\n return null\n}\n\nexport const LayoutWrapper: FunctionComponent<\n PropsWithChildren\n> = function LayoutWrapper({ children, ...props }) {\n return (\n \n \n {children}\n\n {SERVER ? : null}\n \n )\n}\n","import React, { FunctionComponent, ImgHTMLAttributes } from \"react\"\nimport * as PropTypes from \"prop-types\"\n\nexport interface IResponsiveImageProps {\n sizes?: string\n srcSet: string\n}\n\nexport type SourceProps = IResponsiveImageProps &\n (\n | {\n media: string\n type?: string\n }\n | {\n media?: string\n type: string\n }\n )\n\ntype FallbackProps = { src: string } & Partial\n\ntype ImageProps = ImgHTMLAttributes & {\n src: string\n alt: string\n shouldLoad: boolean\n}\n\nexport type PictureProps = ImgHTMLAttributes & {\n fallback?: FallbackProps\n sources?: Array\n alt: string\n shouldLoad?: boolean\n}\n\nconst Image: FunctionComponent = function Image({\n src,\n srcSet,\n loading,\n alt = ``,\n shouldLoad,\n ...props\n}) {\n return (\n \n )\n}\n\nexport const Picture: React.FC = function Picture({\n fallback,\n sources = [],\n shouldLoad = true,\n ...props\n}) {\n const sizes = props.sizes || fallback?.sizes\n const fallbackImage = (\n \n )\n\n if (!sources.length) {\n return fallbackImage\n }\n\n return (\n \n {sources.map(({ media, srcSet, type }) => (\n \n ))}\n {fallbackImage}\n \n )\n}\n\nImage.propTypes = {\n src: PropTypes.string.isRequired,\n alt: PropTypes.string.isRequired,\n sizes: PropTypes.string,\n srcSet: PropTypes.string,\n shouldLoad: PropTypes.bool,\n}\n\nPicture.displayName = `Picture`\nPicture.propTypes = {\n alt: PropTypes.string.isRequired,\n shouldLoad: PropTypes.bool,\n fallback: PropTypes.exact({\n src: PropTypes.string.isRequired,\n srcSet: PropTypes.string,\n sizes: PropTypes.string,\n }),\n sources: PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.exact({\n media: PropTypes.string.isRequired,\n type: PropTypes.string,\n sizes: PropTypes.string,\n srcSet: PropTypes.string.isRequired,\n }),\n PropTypes.exact({\n media: PropTypes.string,\n type: PropTypes.string.isRequired,\n sizes: PropTypes.string,\n srcSet: PropTypes.string.isRequired,\n }),\n ])\n ),\n}\n","import React, { FunctionComponent, ImgHTMLAttributes } from \"react\"\nimport * as PropTypes from \"prop-types\"\nimport { Picture, SourceProps } from \"./picture\"\n\nexport type PlaceholderProps = ImgHTMLAttributes & {\n fallback?: string\n sources?: Array\n}\n\nexport const Placeholder: FunctionComponent =\n function Placeholder({ fallback, ...props }) {\n if (fallback) {\n return (\n \n )\n } else {\n return
\n }\n }\n\nPlaceholder.displayName = `Placeholder`\nPlaceholder.propTypes = {\n fallback: PropTypes.string,\n sources: Picture.propTypes?.sources,\n alt: function (props, propName, componentName): Error | null {\n if (!props[propName]) {\n return null\n }\n\n return new Error(\n `Invalid prop \\`${propName}\\` supplied to \\`${componentName}\\`. Validation failed.`\n )\n },\n}\n","import React from \"react\"\nimport { Picture, PictureProps } from \"./picture\"\n\nexport type MainImageProps = PictureProps\n\nexport const MainImage: React.FC = function MainImage(props) {\n return (\n <>\n \n \n \n )\n}\n\nMainImage.displayName = `MainImage`\nMainImage.propTypes = Picture.propTypes\n","import React from \"react\"\nimport { getWrapperProps, getMainProps, getPlaceholderProps } from \"./hooks\"\nimport { Placeholder } from \"./placeholder\"\nimport { MainImage, MainImageProps } from \"./main-image\"\nimport { LayoutWrapper } from \"./layout-wrapper\"\nimport PropTypes from \"prop-types\"\nimport type { FunctionComponent, WeakValidationMap } from \"react\"\nimport type { GatsbyImageProps, IGatsbyImageData } from \"./gatsby-image.browser\"\n\nconst removeNewLines = (str: string): string => str.replace(/\\n/g, ``)\n\nexport const GatsbyImage: FunctionComponent =\n function GatsbyImage({\n as = `div`,\n className,\n class: preactClass,\n style,\n image,\n loading = `lazy`,\n imgClassName,\n imgStyle,\n backgroundColor,\n objectFit,\n objectPosition,\n ...props\n }) {\n if (!image) {\n console.warn(`[gatsby-plugin-image] Missing image prop`)\n return null\n }\n\n if (preactClass) {\n className = preactClass\n }\n\n imgStyle = {\n objectFit,\n objectPosition,\n backgroundColor,\n ...imgStyle,\n }\n\n const {\n width,\n height,\n layout,\n images,\n placeholder,\n backgroundColor: placeholderBackgroundColor,\n } = image\n\n const {\n style: wStyle,\n className: wClass,\n ...wrapperProps\n } = getWrapperProps(width, height, layout)\n\n const cleanedImages: IGatsbyImageData[\"images\"] = {\n fallback: undefined,\n sources: [],\n }\n if (images.fallback) {\n cleanedImages.fallback = {\n ...images.fallback,\n srcSet: images.fallback.srcSet\n ? removeNewLines(images.fallback.srcSet)\n : undefined,\n }\n }\n\n if (images.sources) {\n cleanedImages.sources = images.sources.map(source => {\n return {\n ...source,\n srcSet: removeNewLines(source.srcSet),\n }\n })\n }\n\n return React.createElement(\n as,\n {\n ...wrapperProps,\n style: {\n ...wStyle,\n ...style,\n backgroundColor,\n },\n className: `${wClass}${className ? ` ${className}` : ``}`,\n },\n \n \n\n )}\n // When eager is set we want to start the isLoading state on true (we want to load the img without react)\n {...getMainProps(\n loading === `eager`,\n false,\n cleanedImages,\n loading,\n imgStyle\n )}\n />\n \n )\n }\n\nexport const altValidator: PropTypes.Validator = (\n props: GatsbyImageProps,\n propName,\n componentName,\n ...rest\n): Error | undefined => {\n if (!props.alt && props.alt !== ``) {\n return new Error(\n `The \"alt\" prop is required in ${componentName}. If the image is purely presentational then pass an empty string: e.g. alt=\"\". Learn more: https://a11y-style-guide.com/style-guide/section-media.html`\n )\n }\n\n return PropTypes.string(props, propName, componentName, ...rest)\n}\n\nexport const propTypes = {\n image: PropTypes.object.isRequired,\n alt: altValidator,\n} as WeakValidationMap\n","import {\n createElement,\n memo,\n useMemo,\n useEffect,\n useLayoutEffect,\n useRef,\n} from \"react\"\nimport {\n getWrapperProps,\n gatsbyImageIsInstalled,\n hasNativeLazyLoadSupport,\n} from \"./hooks\"\nimport { getSizer } from \"./layout-wrapper\"\nimport { propTypes } from \"./gatsby-image.server\"\nimport type {\n FC,\n ElementType,\n FunctionComponent,\n ImgHTMLAttributes,\n CSSProperties,\n ReactEventHandler,\n} from \"react\"\nimport type { renderImageToString } from \"./lazy-hydrate\"\nimport type { PlaceholderProps } from \"./placeholder\"\nimport type { MainImageProps } from \"./main-image\"\nimport type { Layout } from \"../image-utils\"\n\nconst imageCache = new Set()\nlet renderImageToStringPromise\nlet renderImage: typeof renderImageToString | undefined\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport interface GatsbyImageProps\n extends Omit<\n ImgHTMLAttributes,\n \"placeholder\" | \"onLoad\" | \"src\" | \"srcSet\" | \"width\" | \"height\"\n > {\n alt: string\n as?: ElementType\n className?: string\n class?: string\n imgClassName?: string\n image: IGatsbyImageData\n imgStyle?: CSSProperties\n backgroundColor?: string\n objectFit?: CSSProperties[\"objectFit\"]\n objectPosition?: CSSProperties[\"objectPosition\"]\n onLoad?: (props: { wasCached: boolean }) => void\n onError?: ReactEventHandler\n onStartLoad?: (props: { wasCached: boolean }) => void\n}\n\nexport interface IGatsbyImageData {\n layout: Layout\n width: number\n height: number\n backgroundColor?: string\n images: Pick\n placeholder?: Pick\n}\n\nconst GatsbyImageHydrator: FC = function GatsbyImageHydrator({\n as = `div`,\n image,\n style,\n backgroundColor,\n className,\n class: preactClass,\n onStartLoad,\n onLoad,\n onError,\n ...props\n}) {\n const { width, height, layout } = image\n const {\n style: wStyle,\n className: wClass,\n ...wrapperProps\n } = getWrapperProps(width, height, layout)\n const root = useRef()\n const cacheKey = useMemo(() => JSON.stringify(image.images), [image.images])\n\n // Preact uses class instead of className so we need to check for both\n if (preactClass) {\n className = preactClass\n }\n\n const sizer = getSizer(layout, width, height)\n\n useEffect(() => {\n if (!renderImageToStringPromise) {\n renderImageToStringPromise = import(`./lazy-hydrate`).then(\n ({ renderImageToString, swapPlaceholderImage }) => {\n renderImage = renderImageToString\n\n return {\n renderImageToString,\n swapPlaceholderImage,\n }\n }\n )\n }\n\n // The plugin image component is a bit special where if it's server-side rendered, we add extra script tags to support lazy-loading without\n // In this case we stop hydration but fire the correct events.\n const ssrImage = root.current.querySelector(\n `[data-gatsby-image-ssr]`\n ) as HTMLImageElement\n if (ssrImage && hasNativeLazyLoadSupport()) {\n if (ssrImage.complete) {\n // Trigger onStartload and onLoad events\n onStartLoad?.({\n wasCached: true,\n })\n onLoad?.({\n wasCached: true,\n })\n\n // remove ssr key for state updates but add delay to not fight with native code snippt of gatsby-ssr\n setTimeout(() => {\n ssrImage.removeAttribute(`data-gatsby-image-ssr`)\n }, 0)\n } else {\n onStartLoad?.({\n wasCached: true,\n })\n\n ssrImage.addEventListener(`load`, function onLoadListener() {\n ssrImage.removeEventListener(`load`, onLoadListener)\n\n onLoad?.({\n wasCached: true,\n })\n // remove ssr key for state updates but add delay to not fight with native code snippt of gatsby-ssr\n setTimeout(() => {\n ssrImage.removeAttribute(`data-gatsby-image-ssr`)\n }, 0)\n })\n }\n\n imageCache.add(cacheKey)\n\n return\n }\n\n if (renderImage && imageCache.has(cacheKey)) {\n return\n }\n\n let animationFrame\n let cleanupCallback\n renderImageToStringPromise.then(\n ({ renderImageToString, swapPlaceholderImage }) => {\n if (!root.current) {\n return\n }\n\n root.current.innerHTML = renderImageToString({\n isLoading: true,\n isLoaded: imageCache.has(cacheKey),\n image,\n ...props,\n })\n\n if (!imageCache.has(cacheKey)) {\n animationFrame = requestAnimationFrame(() => {\n if (root.current) {\n cleanupCallback = swapPlaceholderImage(\n root.current,\n cacheKey,\n imageCache,\n style,\n onStartLoad,\n onLoad,\n onError\n )\n }\n })\n }\n }\n )\n\n // eslint-disable-next-line consistent-return\n return (): void => {\n if (animationFrame) {\n cancelAnimationFrame(animationFrame)\n }\n if (cleanupCallback) {\n cleanupCallback()\n }\n }\n }, [image])\n\n // useLayoutEffect is ran before React commits to the DOM. This allows us to make sure our HTML is using our cached image version\n useLayoutEffect(() => {\n if (imageCache.has(cacheKey) && renderImage) {\n root.current.innerHTML = renderImage({\n isLoading: imageCache.has(cacheKey),\n isLoaded: imageCache.has(cacheKey),\n image,\n ...props,\n })\n\n // Trigger onStartload and onLoad events\n onStartLoad?.({\n wasCached: true,\n })\n onLoad?.({\n wasCached: true,\n })\n }\n }, [image])\n\n // By keeping all props equal React will keep the component in the DOM\n return createElement(as, {\n ...wrapperProps,\n style: {\n ...wStyle,\n ...style,\n backgroundColor,\n },\n className: `${wClass}${className ? ` ${className}` : ``}`,\n ref: root,\n dangerouslySetInnerHTML: {\n __html: sizer,\n },\n suppressHydrationWarning: true,\n })\n}\n\nexport const GatsbyImage: FunctionComponent = memo(\n function GatsbyImage(props) {\n if (!props.image) {\n if (process.env.NODE_ENV === `development`) {\n console.warn(`[gatsby-plugin-image] Missing image prop`)\n }\n\n return null\n }\n\n if (!gatsbyImageIsInstalled() && process.env.NODE_ENV === `development`) {\n console.warn(\n `[gatsby-plugin-image] You're missing out on some cool performance features. Please add \"gatsby-plugin-image\" to your gatsby-config.js`\n )\n }\n\n return createElement(GatsbyImageHydrator, props)\n }\n)\n\nGatsbyImage.propTypes = propTypes\nGatsbyImage.displayName = `GatsbyImage`\n","import React, { FunctionComponent, ReactElement } from \"react\"\nimport {\n altValidator,\n GatsbyImage as GatsbyImageServer,\n} from \"./gatsby-image.server\"\nimport { GatsbyImageProps, IGatsbyImageData } from \"./gatsby-image.browser\"\nimport PropTypes from \"prop-types\"\nimport { ISharpGatsbyImageArgs } from \"../image-utils\"\n\nexport interface IStaticImageProps\n extends Omit,\n Omit {\n src: string\n filename?: string\n}\n\n// These values are added by Babel. Do not add them manually\ninterface IPrivateProps {\n __imageData?: IGatsbyImageData\n __error?: string\n}\n\nexport function _getStaticImage(\n GatsbyImage: FunctionComponent\n): React.FC {\n return function StaticImage({\n src,\n __imageData: imageData,\n __error,\n // We extract these because they're not meant to be passed-down to GatsbyImage\n /* eslint-disable @typescript-eslint/no-unused-vars */\n width,\n height,\n aspectRatio,\n tracedSVGOptions,\n placeholder,\n formats,\n quality,\n transformOptions,\n jpgOptions,\n pngOptions,\n webpOptions,\n avifOptions,\n blurredOptions,\n breakpoints,\n outputPixelDensities,\n /* eslint-enable @typescript-eslint/no-unused-vars */\n ...props\n }): ReactElement {\n if (__error) {\n console.warn(__error)\n }\n\n if (imageData) {\n return \n }\n console.warn(`Image not loaded`, src)\n if (!__error && process.env.NODE_ENV === `development`) {\n console.warn(\n `Please ensure that \"gatsby-plugin-image\" is included in the plugins array in gatsby-config.js, and that your version of gatsby is at least 2.24.78`\n )\n }\n return null\n }\n}\n\nconst StaticImage: React.FC =\n _getStaticImage(GatsbyImageServer)\n\nconst checkDimensionProps: PropTypes.Validator = (\n props: IStaticImageProps & IPrivateProps,\n propName: keyof IStaticImageProps & IPrivateProps,\n ...rest\n) => {\n if (\n props.layout === `fullWidth` &&\n (propName === `width` || propName === `height`) &&\n props[propName]\n ) {\n return new Error(\n `\"${propName}\" ${props[propName]} may not be passed when layout is fullWidth.`\n )\n }\n return PropTypes.number(props, propName, ...rest)\n}\n\nconst validLayouts = new Set([`fixed`, `fullWidth`, `constrained`])\n\nexport const propTypes = {\n src: PropTypes.string.isRequired,\n alt: altValidator,\n width: checkDimensionProps,\n height: checkDimensionProps,\n sizes: PropTypes.string,\n layout: (props: IStaticImageProps & IPrivateProps): Error | undefined => {\n if (props.layout === undefined) {\n return undefined\n }\n if (validLayouts.has(props.layout)) {\n return undefined\n }\n\n return new Error(\n `Invalid value ${props.layout}\" provided for prop \"layout\". Defaulting to \"constrained\". Valid values are \"fixed\", \"fullWidth\" or \"constrained\".`\n )\n },\n}\n\nStaticImage.displayName = `StaticImage`\nStaticImage.propTypes = propTypes\n\nexport { StaticImage }\n","import {\n GatsbyImage as GatsbyImageBrowser,\n IGatsbyImageData,\n} from \"./gatsby-image.browser\"\nimport React from \"react\"\nimport {\n _getStaticImage,\n propTypes,\n IStaticImageProps,\n} from \"./static-image.server\"\n// These values are added by Babel. Do not add them manually\ninterface IPrivateProps {\n __imageData?: IGatsbyImageData\n __error?: string\n}\n\nconst StaticImage: React.FC =\n _getStaticImage(GatsbyImageBrowser)\n\nStaticImage.displayName = `StaticImage`\nStaticImage.propTypes = propTypes\n\nexport { StaticImage }\n","'use strict';\n\nconst UPPERCASE = /[\\p{Lu}]/u;\nconst LOWERCASE = /[\\p{Ll}]/u;\nconst LEADING_CAPITAL = /^[\\p{Lu}](?![\\p{Lu}])/gu;\nconst IDENTIFIER = /([\\p{Alpha}\\p{N}_]|$)/u;\nconst SEPARATORS = /[_.\\- ]+/;\n\nconst LEADING_SEPARATORS = new RegExp('^' + SEPARATORS.source);\nconst SEPARATORS_AND_IDENTIFIER = new RegExp(SEPARATORS.source + IDENTIFIER.source, 'gu');\nconst NUMBERS_AND_IDENTIFIER = new RegExp('\\\\d+' + IDENTIFIER.source, 'gu');\n\nconst preserveCamelCase = (string, toLowerCase, toUpperCase) => {\n\tlet isLastCharLower = false;\n\tlet isLastCharUpper = false;\n\tlet isLastLastCharUpper = false;\n\n\tfor (let i = 0; i < string.length; i++) {\n\t\tconst character = string[i];\n\n\t\tif (isLastCharLower && UPPERCASE.test(character)) {\n\t\t\tstring = string.slice(0, i) + '-' + string.slice(i);\n\t\t\tisLastCharLower = false;\n\t\t\tisLastLastCharUpper = isLastCharUpper;\n\t\t\tisLastCharUpper = true;\n\t\t\ti++;\n\t\t} else if (isLastCharUpper && isLastLastCharUpper && LOWERCASE.test(character)) {\n\t\t\tstring = string.slice(0, i - 1) + '-' + string.slice(i - 1);\n\t\t\tisLastLastCharUpper = isLastCharUpper;\n\t\t\tisLastCharUpper = false;\n\t\t\tisLastCharLower = true;\n\t\t} else {\n\t\t\tisLastCharLower = toLowerCase(character) === character && toUpperCase(character) !== character;\n\t\t\tisLastLastCharUpper = isLastCharUpper;\n\t\t\tisLastCharUpper = toUpperCase(character) === character && toLowerCase(character) !== character;\n\t\t}\n\t}\n\n\treturn string;\n};\n\nconst preserveConsecutiveUppercase = (input, toLowerCase) => {\n\tLEADING_CAPITAL.lastIndex = 0;\n\n\treturn input.replace(LEADING_CAPITAL, m1 => toLowerCase(m1));\n};\n\nconst postProcess = (input, toUpperCase) => {\n\tSEPARATORS_AND_IDENTIFIER.lastIndex = 0;\n\tNUMBERS_AND_IDENTIFIER.lastIndex = 0;\n\n\treturn input.replace(SEPARATORS_AND_IDENTIFIER, (_, identifier) => toUpperCase(identifier))\n\t\t.replace(NUMBERS_AND_IDENTIFIER, m => toUpperCase(m));\n};\n\nconst camelCase = (input, options) => {\n\tif (!(typeof input === 'string' || Array.isArray(input))) {\n\t\tthrow new TypeError('Expected the input to be `string | string[]`');\n\t}\n\n\toptions = {\n\t\tpascalCase: false,\n\t\tpreserveConsecutiveUppercase: false,\n\t\t...options\n\t};\n\n\tif (Array.isArray(input)) {\n\t\tinput = input.map(x => x.trim())\n\t\t\t.filter(x => x.length)\n\t\t\t.join('-');\n\t} else {\n\t\tinput = input.trim();\n\t}\n\n\tif (input.length === 0) {\n\t\treturn '';\n\t}\n\n\tconst toLowerCase = options.locale === false ?\n\t\tstring => string.toLowerCase() :\n\t\tstring => string.toLocaleLowerCase(options.locale);\n\tconst toUpperCase = options.locale === false ?\n\t\tstring => string.toUpperCase() :\n\t\tstring => string.toLocaleUpperCase(options.locale);\n\n\tif (input.length === 1) {\n\t\treturn options.pascalCase ? toUpperCase(input) : toLowerCase(input);\n\t}\n\n\tconst hasUpperCase = input !== toLowerCase(input);\n\n\tif (hasUpperCase) {\n\t\tinput = preserveCamelCase(input, toLowerCase, toUpperCase);\n\t}\n\n\tinput = input.replace(LEADING_SEPARATORS, '');\n\n\tif (options.preserveConsecutiveUppercase) {\n\t\tinput = preserveConsecutiveUppercase(input, toLowerCase);\n\t} else {\n\t\tinput = toLowerCase(input);\n\t}\n\n\tif (options.pascalCase) {\n\t\tinput = toUpperCase(input.charAt(0)) + input.slice(1);\n\t}\n\n\treturn postProcess(input, toUpperCase);\n};\n\nmodule.exports = camelCase;\n// TODO: Remove this for the next major release\nmodule.exports.default = camelCase;\n","import React, {useState} from \"react\";\nimport { Link } from \"gatsby\"\n\nimport \"./navigation.scss\"\n\nconst pageLinks = [\n { text: \"Collection\", url: \"/collection\" },\n { text: \"Prelaunch\", url: \"/prelaunch\" },\n { text: \"Prizes\", url: \"/prizes\" },\n { text: \"Staking\", url: \"/staking\" },\n { text: \"ERC-404\", url: \"/erc404\" },\n ]\n\nconst Navigation = () => {\n const [open, setOpen] = useState(false)\n\n return \n}\nexport default Navigation","import * as React from \"react\"\nimport { Link } from \"gatsby\"\nimport Logo from \"./logo\"\nimport Navigation from \"./navigation\"\n\nimport \"./header.scss\"\n\nconst Header = ({title}) => {\n\n\n console.log(title)\n\n return (\n
\n \n \n \n
\n \n
\n
\n)}\n\nexport default Header\n","import React from \"react\";\nimport \"./backgroundDots.scss\"\n\nconst BackgroundDots = () => {\n let render = []\n for (let i = 0; i < 25; i++) {\n const width = Math.floor(Math.random() * 90)\n render.push(
  • \n
  • )\n }\n\n return
      {render}
    \n}\nexport default BackgroundDots;","import React from \"react\";\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faTelegram, faXTwitter, faDiscord } from '@fortawesome/free-brands-svg-icons'\n\nconst Socials = () => <>\n \n \n \n\n\nexport default Socials","import React from \"react\";\nimport \"./footer.scss\"\nimport { Link } from \"gatsby\";\nimport Socials from \"./socials\";\nimport IconMmm from \"../images/iconMmm\";\n\nconst footerLinks1 = [\n { text: \"Home\", url: \"/\" },\n { text: \"Collection\", url: \"/collection\" },\n { text: \"Prizes\", url: \"/prizes\" },\n { text: \"Crafting\", url: \"/crafting\" },\n { text: \"Merging\", url: \"/merging\" },\n { text: \"Staking\", url: \"/staking\" },\n ]\nconst footerLinks2 = [\n { text: \"FAQ\", url: \"/faq\" },\n { text: \"ERC-404\", url: \"/erc404\" },\n { text: \"MetFi\", url: \"/metfi\" },\n { text: \"MetBot\", url: \"/metbot\" },\n ]\n\nconst Footer = () => {\n return
    \n
    \n
    \n \n Join the MetFi and Marine Moguls Community\n
    \n
    \n \n
    \n
    \n
    \n
    \n Marine Moguls
    \n Dive into ownership, anchor your stakes, navigate the swaps, and sail through trades. Get hooked on the NFT that keeps you afloat in the sea of possibilities! (Pun fully intended!)\n
    \n
    \n
    \n {footerLinks1.map((link) => (\n \n {link.text}\n \n ))}\n
    \n
    \n {footerLinks2.map((link) => (\n \n {link.text}\n \n ))}\n
    \n Airdrop\n Claims\n
    \n
    \n
    \n}\n\nexport default Footer","import * as React from \"react\"\n\nimport Header from \"./header\"\nimport \"./layout.scss\"\nimport BackgroundDots from \"./backgroundDots\"\nimport Footer from \"./footer\"\nimport IconMmm from \"../images/iconMmm\"\n\nconst Layout = ({ children, className }) => {\n\n return (\n
    \n
    \n
    \n
    {children}
    \n
    \n
    \n \n \n
    \n )\n}\n\nexport default Layout\n","import React from \"react\";\nimport { StaticImage } from \"gatsby-plugin-image\";\n\nimport \"./logo.scss\"\n\nconst Logo = ( {title = false} ) => {\n return
    \n \n \n \n \n \n {!title &&\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n Powered By\n \n \n \n \n \n \n \n \n \n
    \n \n }\n
    \n}\nexport default Logo","/**\n * SEO component that queries for data with\n * Gatsby's useStaticQuery React hook\n *\n * See: https://www.gatsbyjs.com/docs/how-to/querying-data/use-static-query/\n */\n\nimport * as React from \"react\"\nimport { useStaticQuery, graphql } from \"gatsby\"\n\nfunction Seo({ description, title, children }) {\n const { site } = useStaticQuery(\n graphql`\n query {\n site {\n siteMetadata {\n title\n description\n author\n }\n }\n }\n `\n )\n\n const metaDescription = description || site.siteMetadata.description\n const defaultTitle = site.siteMetadata?.title\n\n return (\n <>\n {defaultTitle ? `${title} | ${defaultTitle}` : title}\n \n \n \n \n \n \n \n \n\n \n \n \n \n \n\n {children}\n \n )\n}\n\nexport default Seo\n","import React from \"react\";\n\nconst IconMmm = () => \n\n\n\n\nexport default IconMmm"],"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","NAMESPACE_IDENTIFIER","UNITS_IN_GRID","DEFAULT_CSS_PREFIX","DEFAULT_REPLACEMENT_CLASS","DATA_FA_I2SVG","DATA_FA_PSEUDO_ELEMENT","DATA_FA_PSEUDO_ELEMENT_PENDING","DATA_PREFIX","DATA_ICON","HTML_CLASS_I2SVG_BASE_CLASS","MUTATION_APPROACH_ASYNC","TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS","PRODUCTION","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","GROUP","SWAP_OPACITY","PRIMARY","SECONDARY","prefixes","Set","map","add","bind","RESERVED_CLASSES","initial","FontAwesomeConfig","querySelector","_ref","_ref2","attr","val","coerce","element","getAttribute","getAttrConfig","_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","idPool","nextUniqueId","id","Math","random","toArray","array","classArray","node","classList","split","htmlEscape","str","replace","joinStyles","styles","reduce","acc","styleName","trim","transformIsMeaningful","transform","baseStyles","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","toHtml","abstractNodes","tag","_abstractNodes$attrib","attributes","_abstractNodes$childr","children","attributeName","joinAttributes","join","iconFromMapping","mapping","prefix","iconName","icon","doScroll","readyState","listener","removeEventListener","fn","subject","initialValue","thisContext","result","undefined","func","a","b","c","bindInternal4","toHex","unicode","decoded","string","output","counter","charCodeAt","extra","ucs2decode","normalizeIcons","icons","defineIcons","_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","emptyCanonicalIcon","rest","styleOrPrefix","_params$family","defined","PREFIXES_FOR_FAMILY","getCanonicalIcon","_famProps","_params$skipLookups","skipLookups","famProps","givenPrefix","includes","some","v","canonical","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","hookFn","callHooks","_len2","_key2","callProvided","findIconDefinition","iconLookup","library","i2svg","params","Promise","reject","watch","autoReplaceSvgRoot","autoReplace","setTimeout","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","styles$1","asFoundIcon","vectorData","fill","missingIconResolutionMixin","findIcon","resolve","console","error","maybeNotifyMissing","noop$1","p","preamble","end","perf","begin","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","classParser","ligature","existingPrefix","existingIconName","innerText","firstChild","nodeType","Node","TEXT_NODE","data","parseMeta","parser","styleParser","_classParser","extraClasses","extraAttributes","attributesParser","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","makeLayersCounterAbstract","LayersText","text","generateLayersText","computedFontSize","parseInt","getComputedStyle","fontSize","boundingClientRect","getBoundingClientRect","CLEAN_CONTENT_PATTERN","SECONDARY_UNICODE_RANGE","replaceForPosition","position","pendingAttribute","oldUnicode","newUnicode","alreadyProcessedPseudoElement","fontFamily","getPropertyValue","fontWeight","removeChild","_content","toLowerCase","_hexValueFromContent","index","second","first","cleaned","codePoint","isPrependTen","isDoubled","isSecondary","hexValueFromContent","hexValue","isV4","startsWith","iconIdentifier","iconName4","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","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","pair","charAt","_extraProps$style","existingStyle","remaining","W","hasNativeLazyLoadSupport","HTMLImageElement","z","t","P","h","loading","shouldLoad","A","l","backgroundColor","top","left","bottom","right","objectFit","objectPosition","transition","H","F","_ref5","layout","paddingTop","maxWidth","display","alt","src","G","u","V","B","U","srcSet","decoding","Y","fallback","sources","sizes","_ref6","media","X","isRequired","J","Z","Error","K","Q","ee","te","ae","ie","image","se","re","ne","oe","le","de","as","g","onStartLoad","onLoad","m","onError","E","S","M","N","$","JSON","stringify","images","I","_ref7","renderImageToString","swapPlaceholderImage","current","complete","wasCached","has","_ref8","isLoading","isLoaded","cancelAnimationFrame","dangerouslySetInnerHTML","__html","suppressHydrationWarning","ce","he","ue","__imageData","__error","warn","ge","imgClassName","imgStyle","placeholder","pe","me","fe","we","UPPERCASE","LOWERCASE","LEADING_CAPITAL","IDENTIFIER","SEPARATORS","LEADING_SEPARATORS","SEPARATORS_AND_IDENTIFIER","NUMBERS_AND_IDENTIFIER","camelCase","input","pascalCase","preserveConsecutiveUppercase","locale","toLocaleLowerCase","toLocaleUpperCase","preserveCamelCase","isLastCharLower","isLastCharUpper","isLastLastCharUpper","character","lastIndex","m1","postProcess","_","identifier","module","exports","pageLinks","url","Navigation","open","setOpen","useState","React","Link","activeClassName","to","xmlns","viewBox","points","link","href","onClick","Logo","BackgroundDots","floor","Socials","rel","faTelegram","faDiscord","faXTwitter","footerLinks1","footerLinks2","Footer","IconMmm","Header","StaticImage","quality","formats","require","_site$siteMetadata","_site$siteMetadata2","description","site","useStaticQuery","metaDescription","siteMetadata","defaultTitle","property","author"],"sourceRoot":""}