-
Notifications
You must be signed in to change notification settings - Fork 0
/
1ebcef1f50f4fd50358800c4a582f61d733aaf94-75f667a4d8abcda5e1e4.js.map
1 lines (1 loc) · 345 KB
/
1ebcef1f50f4fd50358800c4a582f61d733aaf94-75f667a4d8abcda5e1e4.js.map
1
{"version":3,"file":"1ebcef1f50f4fd50358800c4a582f61d733aaf94-75f667a4d8abcda5e1e4.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/./node_modules/camelcase/index.js","webpack://gatsby-starter-default/./node_modules/gatsby/dist/internal-plugins/bundle-optimisations/polyfills/object-assign.js","webpack://gatsby-starter-default/./node_modules/gatsby-plugin-dark-mode/ThemeToggler.js","webpack://gatsby-starter-default/./node_modules/gatsby-plugin-dark-mode/index.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/./src/components/Common/ThemeChanger.tsx","webpack://gatsby-starter-default/./src/components/Common/Header.tsx","webpack://gatsby-starter-default/./src/components/Common/Footer.tsx","webpack://gatsby-starter-default/./node_modules/react-helmet/es/Helmet.js","webpack://gatsby-starter-default/./src/components/Common/Template.tsx","webpack://gatsby-starter-default/./node_modules/react-fast-compare/index.js","webpack://gatsby-starter-default/./node_modules/react-side-effect/lib/index.js","webpack://gatsby-starter-default/./node_modules/@babel/runtime/helpers/defineProperty.js","webpack://gatsby-starter-default/./node_modules/@babel/runtime/helpers/toPrimitive.js","webpack://gatsby-starter-default/./node_modules/@babel/runtime/helpers/toPropertyKey.js","webpack://gatsby-starter-default/./node_modules/@babel/runtime/helpers/typeof.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 'fa-kit': 'kit'\n}), _defineProperty(_familyProxy, FAMILY_SHARP, {\n 'fa': 'solid',\n 'fass': 'solid',\n 'fa-solid': 'solid',\n 'fasr': 'regular',\n 'fa-regular': 'regular'\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}), _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}), _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}), _familyProxy4));\nvar ICON_SELECTION_SYNTAX_PATTERN = /fa(s|r|l|t|d|b|k|ss|sr)?[\\-\\ ]/; // 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}), _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, '<').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-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(''), \"</\").concat(tag, \">\");\n }\n}\n\nfunction iconFromMapping(mapping, prefix, iconName) {\n if (mapping && mapping[prefix] && mapping[prefix][iconName]) {\n return {\n prefix: prefix,\n iconName: iconName,\n icon: mapping[prefix][iconName]\n };\n }\n}\n\n/**\n * Internal helper to bind a function known to have 4 arguments\n * to a given context.\n */\n\nvar bindInternal4 = function bindInternal4(func, thisContext) {\n return function (a, b, c, d) {\n return func.call(thisContext, a, b, c, d);\n };\n};\n\n/**\n * # Reduce\n *\n * A fast object `.reduce()` implementation.\n *\n * @param {Object} subject The object to reduce over.\n * @param {Function} fn The reducer function.\n * @param {mixed} initialValue The initial value for the reducer, defaults to subject[0].\n * @param {Object} thisContext The context for the reducer.\n * @return {mixed} The final result.\n */\n\n\nvar reduce = function fastReduceObject(subject, fn, initialValue, thisContext) {\n var keys = Object.keys(subject),\n length = keys.length,\n iterator = thisContext !== undefined ? bindInternal4(fn, thisContext) : fn,\n i,\n key,\n result;\n\n if (initialValue === undefined) {\n i = 1;\n result = subject[keys[0]];\n } else {\n i = 0;\n result = initialValue;\n }\n\n for (; i < length; i++) {\n key = keys[i];\n result = iterator(result, subject[key], key, subject);\n }\n\n return result;\n};\n\n/**\n * ucs2decode() and codePointAt() are both works of Mathias Bynens and licensed under MIT\n *\n * Copyright Mathias Bynens <https://mathiasbynens.be/>\n\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\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.3.0\\\"\";\n\nvar begin = function begin(name) {\n p.mark(\"\".concat(preamble, \" \").concat(name, \" begins\"));\n return function () {\n return end(name);\n };\n};\n\nvar end = function end(name) {\n p.mark(\"\".concat(preamble, \" \").concat(name, \" ends\"));\n p.measure(\"\".concat(preamble, \" \").concat(name), \"\".concat(preamble, \" \").concat(name, \" begins\"), \"\".concat(preamble, \" \").concat(name, \" ends\"));\n};\n\nvar perf = {\n begin: begin,\n end: end\n};\n\nvar noop$2 = function noop() {};\n\nfunction isWatched(node) {\n var i2svg = node.getAttribute ? node.getAttribute(DATA_FA_I2SVG) : null;\n return typeof i2svg === 'string';\n}\n\nfunction hasPrefixAndIcon(node) {\n var prefix = node.getAttribute ? node.getAttribute(DATA_PREFIX) : null;\n var icon = node.getAttribute ? node.getAttribute(DATA_ICON) : null;\n return prefix && icon;\n}\n\nfunction hasBeenReplaced(node) {\n return node && node.classList && node.classList.contains && node.classList.contains(config.replacementClass);\n}\n\nfunction getMutator() {\n if (config.autoReplaceSvg === true) {\n return mutators.replace;\n }\n\n var mutator = mutators[config.autoReplaceSvg];\n return mutator || mutators.replace;\n}\n\nfunction createElementNS(tag) {\n return DOCUMENT.createElementNS('http://www.w3.org/2000/svg', tag);\n}\n\nfunction createElement(tag) {\n return DOCUMENT.createElement(tag);\n}\n\nfunction convertSVG(abstractObj) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$ceFn = params.ceFn,\n ceFn = _params$ceFn === void 0 ? abstractObj.tag === 'svg' ? createElementNS : createElement : _params$ceFn;\n\n if (typeof abstractObj === 'string') {\n return DOCUMENT.createTextNode(abstractObj);\n }\n\n var tag = ceFn(abstractObj.tag);\n Object.keys(abstractObj.attributes || []).forEach(function (key) {\n tag.setAttribute(key, abstractObj.attributes[key]);\n });\n var children = abstractObj.children || [];\n children.forEach(function (child) {\n tag.appendChild(convertSVG(child, {\n ceFn: ceFn\n }));\n });\n return tag;\n}\n\nfunction nodeAsComment(node) {\n var comment = \" \".concat(node.outerHTML, \" \");\n /* BEGIN.ATTRIBUTION */\n\n comment = \"\".concat(comment, \"Font Awesome fontawesome.com \");\n /* END.ATTRIBUTION */\n\n return comment;\n}\n\nvar mutators = {\n replace: function replace(mutation) {\n var node = mutation[0];\n\n if (node.parentNode) {\n mutation[1].forEach(function (_abstract) {\n node.parentNode.insertBefore(convertSVG(_abstract), node);\n });\n\n if (node.getAttribute(DATA_FA_I2SVG) === null && config.keepOriginalSource) {\n var comment = DOCUMENT.createComment(nodeAsComment(node));\n node.parentNode.replaceChild(comment, node);\n } else {\n node.remove();\n }\n }\n },\n nest: function nest(mutation) {\n var node = mutation[0];\n var _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.createElement('svg');\n\n if (position === '::before') {\n node.insertBefore(element, node.firstChild);\n } else {\n node.appendChild(element);\n }\n\n element.outerHTML = _abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n node.removeAttribute(pendingAttribute);\n resolve();\n }).catch(reject);\n } else {\n resolve();\n }\n } else {\n resolve();\n }\n });\n}\n\nfunction replace(node) {\n return Promise.all([replaceForPosition(node, '::before'), replaceForPosition(node, '::after')]);\n}\n\nfunction processable(node) {\n return node.parentNode !== document.head && !~TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS.indexOf(node.tagName.toUpperCase()) && !node.getAttribute(DATA_FA_PSEUDO_ELEMENT) && (!node.parentNode || node.parentNode.tagName !== 'svg');\n}\n\nfunction searchPseudoElements(root) {\n if (!IS_DOM) return;\n return new Promise(function (resolve, reject) {\n var operations = toArray(root.querySelectorAll('*')).filter(processable).map(replace);\n var end = perf.begin('searchPseudoElements');\n disableObservation();\n Promise.all(operations).then(function () {\n end();\n enableObservation();\n resolve();\n }).catch(function () {\n end();\n enableObservation();\n reject();\n });\n });\n}\n\nvar PseudoElements = {\n hooks: function hooks() {\n return {\n mutationObserverCallbacks: function mutationObserverCallbacks(accumulator) {\n accumulator.pseudoElementsCallback = searchPseudoElements;\n return accumulator;\n }\n };\n },\n provides: function provides(providers$$1) {\n providers$$1.pseudoElements2svg = function (params) {\n var _params$node = params.node,\n node = _params$node === void 0 ? DOCUMENT : _params$node;\n\n if (config.searchPseudoElements) {\n searchPseudoElements(node);\n }\n };\n }\n};\n\nvar _unwatched = false;\nvar MutationObserver$1 = {\n mixout: function mixout() {\n return {\n dom: {\n unwatch: function unwatch() {\n disableObservation();\n _unwatched = true;\n }\n }\n };\n },\n hooks: function hooks() {\n return {\n bootstrap: function bootstrap() {\n observe(chainHooks('mutationObserverCallbacks', {}));\n },\n noAuto: function noAuto() {\n disconnect();\n },\n watch: function watch(params) {\n var observeMutationsRoot = params.observeMutationsRoot;\n\n if (_unwatched) {\n enableObservation();\n } else {\n observe(chainHooks('mutationObserverCallbacks', {\n observeMutationsRoot: observeMutationsRoot\n }));\n }\n }\n };\n }\n};\n\nvar parseTransformString = function parseTransformString(transformString) {\n var transform = {\n size: 16,\n x: 0,\n y: 0,\n flipX: false,\n flipY: false,\n rotate: 0\n };\n return transformString.toLowerCase().split(' ').reduce(function (acc, n) {\n var parts = n.toLowerCase().split('-');\n var first = parts[0];\n var rest = parts.slice(1).join('-');\n\n if (first && rest === 'h') {\n acc.flipX = true;\n return acc;\n }\n\n if (first && rest === 'v') {\n acc.flipY = true;\n return acc;\n }\n\n rest = parseFloat(rest);\n\n if (isNaN(rest)) {\n return acc;\n }\n\n switch (first) {\n case 'grow':\n acc.size = acc.size + rest;\n break;\n\n case 'shrink':\n acc.size = acc.size - rest;\n break;\n\n case 'left':\n acc.x = acc.x - rest;\n break;\n\n case 'right':\n acc.x = acc.x + rest;\n break;\n\n case 'up':\n acc.y = acc.y - rest;\n break;\n\n case 'down':\n acc.y = acc.y + rest;\n break;\n\n case 'rotate':\n acc.rotate = acc.rotate + rest;\n break;\n }\n\n return acc;\n }, transform);\n};\nvar PowerTransforms = {\n mixout: function mixout() {\n return {\n parse: {\n transform: function transform(transformString) {\n return parseTransformString(transformString);\n }\n }\n };\n },\n hooks: function hooks() {\n return {\n parseNodeAttributes: function parseNodeAttributes(accumulator, node) {\n var transformString = node.getAttribute('data-fa-transform');\n\n if (transformString) {\n accumulator.transform = parseTransformString(transformString);\n }\n\n return accumulator;\n }\n };\n },\n provides: function provides(providers) {\n providers.generateAbstractTransformGrouping = function (_ref) {\n var main = _ref.main,\n transform = _ref.transform,\n containerWidth = _ref.containerWidth,\n iconWidth = _ref.iconWidth;\n var outer = {\n transform: \"translate(\".concat(containerWidth / 2, \" 256)\")\n };\n var innerTranslate = \"translate(\".concat(transform.x * 32, \", \").concat(transform.y * 32, \") \");\n var innerScale = \"scale(\".concat(transform.size / 16 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / 16 * (transform.flipY ? -1 : 1), \") \");\n var innerRotate = \"rotate(\".concat(transform.rotate, \" 0 0)\");\n var inner = {\n transform: \"\".concat(innerTranslate, \" \").concat(innerScale, \" \").concat(innerRotate)\n };\n var path = {\n transform: \"translate(\".concat(iconWidth / 2 * -1, \" -256)\")\n };\n var operations = {\n outer: outer,\n inner: inner,\n path: path\n };\n return {\n tag: 'g',\n attributes: _objectSpread2({}, operations.outer),\n children: [{\n tag: 'g',\n attributes: _objectSpread2({}, operations.inner),\n children: [{\n tag: main.icon.tag,\n children: main.icon.children,\n attributes: _objectSpread2(_objectSpread2({}, main.icon.attributes), operations.path)\n }]\n }]\n };\n };\n }\n};\n\nvar ALL_SPACE = {\n x: 0,\n y: 0,\n width: '100%',\n height: '100%'\n};\n\nfunction fillBlack(_abstract) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (_abstract.attributes && (_abstract.attributes.fill || force)) {\n _abstract.attributes.fill = 'black';\n }\n\n return _abstract;\n}\n\nfunction deGroup(_abstract2) {\n if (_abstract2.tag === 'g') {\n return _abstract2.children;\n } else {\n return [_abstract2];\n }\n}\n\nvar Masks = {\n hooks: function hooks() {\n return {\n parseNodeAttributes: function parseNodeAttributes(accumulator, node) {\n var maskData = node.getAttribute('data-fa-mask');\n var mask = !maskData ? emptyCanonicalIcon() : getCanonicalIcon(maskData.split(' ').map(function (i) {\n return i.trim();\n }));\n\n if (!mask.prefix) {\n mask.prefix = getDefaultUsablePrefix();\n }\n\n accumulator.mask = mask;\n accumulator.maskId = node.getAttribute('data-fa-mask-id');\n return accumulator;\n }\n };\n },\n provides: function provides(providers) {\n providers.generateAbstractMask = function (_ref) {\n var children = _ref.children,\n attributes = _ref.attributes,\n main = _ref.main,\n mask = _ref.mask,\n explicitMaskId = _ref.maskId,\n transform = _ref.transform;\n var mainWidth = main.width,\n mainPath = main.icon;\n var maskWidth = mask.width,\n maskPath = mask.icon;\n var trans = transformForSvg({\n transform: transform,\n containerWidth: maskWidth,\n iconWidth: mainWidth\n });\n var maskRect = {\n tag: 'rect',\n attributes: _objectSpread2(_objectSpread2({}, ALL_SPACE), {}, {\n fill: 'white'\n })\n };\n var maskInnerGroupChildrenMixin = mainPath.children ? {\n children: mainPath.children.map(fillBlack)\n } : {};\n var maskInnerGroup = {\n tag: 'g',\n attributes: _objectSpread2({}, trans.inner),\n children: [fillBlack(_objectSpread2({\n tag: mainPath.tag,\n attributes: _objectSpread2(_objectSpread2({}, mainPath.attributes), trans.path)\n }, maskInnerGroupChildrenMixin))]\n };\n var maskOuterGroup = {\n tag: 'g',\n attributes: _objectSpread2({}, trans.outer),\n children: [maskInnerGroup]\n };\n var maskId = \"mask-\".concat(explicitMaskId || nextUniqueId());\n var clipId = \"clip-\".concat(explicitMaskId || nextUniqueId());\n var maskTag = {\n tag: 'mask',\n attributes: _objectSpread2(_objectSpread2({}, ALL_SPACE), {}, {\n id: maskId,\n maskUnits: 'userSpaceOnUse',\n maskContentUnits: 'userSpaceOnUse'\n }),\n children: [maskRect, maskOuterGroup]\n };\n var defs = {\n tag: 'defs',\n children: [{\n tag: 'clipPath',\n attributes: {\n id: clipId\n },\n children: deGroup(maskPath)\n }, maskTag]\n };\n children.push(defs, {\n tag: 'rect',\n attributes: _objectSpread2({\n fill: 'currentColor',\n 'clip-path': \"url(#\".concat(clipId, \")\"),\n mask: \"url(#\".concat(maskId, \")\")\n }, ALL_SPACE)\n });\n return {\n children: children,\n attributes: attributes\n };\n };\n }\n};\n\nvar MissingIconIndicator = {\n provides: function provides(providers) {\n var reduceMotion = false;\n\n if (WINDOW.matchMedia) {\n reduceMotion = WINDOW.matchMedia('(prefers-reduced-motion: reduce)').matches;\n }\n\n providers.missingIconAbstract = function () {\n var gChildren = [];\n var FILL = {\n fill: 'currentColor'\n };\n var ANIMATION_BASE = {\n attributeType: 'XML',\n repeatCount: 'indefinite',\n dur: '2s'\n }; // Ring\n\n gChildren.push({\n tag: 'path',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n d: 'M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z'\n })\n });\n\n var OPACITY_ANIMATE = _objectSpread2(_objectSpread2({}, ANIMATION_BASE), {}, {\n attributeName: 'opacity'\n });\n\n var dot = {\n tag: 'circle',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n cx: '256',\n cy: '364',\n r: '28'\n }),\n children: []\n };\n\n if (!reduceMotion) {\n dot.children.push({\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, ANIMATION_BASE), {}, {\n attributeName: 'r',\n values: '28;14;28;28;14;28;'\n })\n }, {\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, {\n values: '1;0;1;1;0;1;'\n })\n });\n }\n\n gChildren.push(dot);\n gChildren.push({\n tag: 'path',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n opacity: '1',\n d: 'M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z'\n }),\n children: reduceMotion ? [] : [{\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, {\n values: '1;0;0;0;0;1;'\n })\n }]\n });\n\n if (!reduceMotion) {\n // Exclamation\n gChildren.push({\n tag: 'path',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n opacity: '0',\n d: 'M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z'\n }),\n children: [{\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, {\n values: '0;0;1;1;0;0;'\n })\n }]\n });\n }\n\n return {\n tag: 'g',\n attributes: {\n 'class': 'missing'\n },\n children: gChildren\n };\n };\n }\n};\n\nvar SvgSymbols = {\n hooks: function hooks() {\n return {\n parseNodeAttributes: function parseNodeAttributes(accumulator, node) {\n var symbolData = node.getAttribute('data-fa-symbol');\n var symbol = symbolData === null ? false : symbolData === '' ? true : symbolData;\n accumulator['symbol'] = symbol;\n return accumulator;\n }\n };\n }\n};\n\nvar plugins = [InjectCSS, ReplaceElements, Layers, LayersCounter, LayersText, PseudoElements, MutationObserver$1, PowerTransforms, Masks, MissingIconIndicator, SvgSymbols];\n\nregisterPlugins(plugins, {\n mixoutsTo: api\n});\nvar noAuto$1 = api.noAuto;\nvar config$1 = api.config;\nvar library$1 = api.library;\nvar dom$1 = api.dom;\nvar parse$1 = api.parse;\nvar findIconDefinition$1 = api.findIconDefinition;\nvar toHtml$1 = api.toHtml;\nvar icon = api.icon;\nvar layer = api.layer;\nvar text = api.text;\nvar counter = api.counter;\n\nexport { noAuto$1 as noAuto, config$1 as config, library$1 as library, dom$1 as dom, parse$1 as parse, findIconDefinition$1 as findIconDefinition, toHtml$1 as toHtml, icon, layer, text, counter, api };\n","import { parse, icon } from '@fortawesome/fontawesome-svg-core';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\n// Get CSS class list from a props object\nfunction classList(props) {\n var _classes;\n\n var beat = props.beat,\n fade = props.fade,\n beatFade = props.beatFade,\n bounce = props.bounce,\n shake = props.shake,\n flash = props.flash,\n spin = props.spin,\n spinPulse = props.spinPulse,\n spinReverse = props.spinReverse,\n pulse = props.pulse,\n fixedWidth = props.fixedWidth,\n inverse = props.inverse,\n border = props.border,\n listItem = props.listItem,\n flip = props.flip,\n size = props.size,\n rotation = props.rotation,\n pull = props.pull; // map of CSS class names to properties\n\n var classes = (_classes = {\n 'fa-beat': beat,\n 'fa-fade': fade,\n 'fa-beat-fade': beatFade,\n 'fa-bounce': bounce,\n 'fa-shake': shake,\n 'fa-flash': flash,\n 'fa-spin': spin,\n 'fa-spin-reverse': spinReverse,\n 'fa-spin-pulse': spinPulse,\n 'fa-pulse': pulse,\n 'fa-fw': fixedWidth,\n 'fa-inverse': inverse,\n 'fa-border': border,\n 'fa-li': listItem,\n 'fa-flip': flip === true,\n 'fa-flip-horizontal': flip === 'horizontal' || flip === 'both',\n 'fa-flip-vertical': flip === 'vertical' || flip === 'both'\n }, _defineProperty(_classes, \"fa-\".concat(size), typeof size !== 'undefined' && size !== null), _defineProperty(_classes, \"fa-rotate-\".concat(rotation), typeof rotation !== 'undefined' && rotation !== null && rotation !== 0), _defineProperty(_classes, \"fa-pull-\".concat(pull), typeof pull !== 'undefined' && pull !== null), _defineProperty(_classes, 'fa-swap-opacity', props.swapOpacity), _classes); // map over all the keys in the classes object\n // return an array of the keys where the value for the key is not null\n\n return Object.keys(classes).map(function (key) {\n return classes[key] ? key : null;\n }).filter(function (key) {\n return key;\n });\n}\n\n// Camelize taken from humps\n// humps is copyright © 2012+ Dom Christie\n// Released under the MIT license.\n// Performant way to determine if object coerces to a number\nfunction _isNumerical(obj) {\n obj = obj - 0; // eslint-disable-next-line no-self-compare\n\n return obj === obj;\n}\n\nfunction camelize(string) {\n if (_isNumerical(string)) {\n return string;\n } // eslint-disable-next-line no-useless-escape\n\n\n string = string.replace(/[\\-_\\s]+(.)?/g, function (match, chr) {\n return chr ? chr.toUpperCase() : '';\n }); // Ensure 1st char is always lowercase\n\n return string.substr(0, 1).toLowerCase() + string.substr(1);\n}\n\nvar _excluded = [\"style\"];\n\nfunction capitalize(val) {\n return val.charAt(0).toUpperCase() + val.slice(1);\n}\n\nfunction styleToObject(style) {\n return style.split(';').map(function (s) {\n return s.trim();\n }).filter(function (s) {\n return s;\n }).reduce(function (acc, pair) {\n var i = pair.indexOf(':');\n var prop = camelize(pair.slice(0, i));\n var value = pair.slice(i + 1).trim();\n prop.startsWith('webkit') ? acc[capitalize(prop)] = value : acc[prop] = value;\n return acc;\n }, {});\n}\n\nfunction convert(createElement, element) {\n var extraProps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n if (typeof element === 'string') {\n return element;\n }\n\n var children = (element.children || []).map(function (child) {\n return convert(createElement, child);\n });\n /* eslint-disable dot-notation */\n\n var mixins = Object.keys(element.attributes || {}).reduce(function (acc, key) {\n var val = element.attributes[key];\n\n switch (key) {\n case 'class':\n acc.attrs['className'] = val;\n delete element.attributes['class'];\n break;\n\n case 'style':\n acc.attrs['style'] = styleToObject(val);\n break;\n\n default:\n if (key.indexOf('aria-') === 0 || key.indexOf('data-') === 0) {\n acc.attrs[key.toLowerCase()] = val;\n } else {\n acc.attrs[camelize(key)] = val;\n }\n\n }\n\n return acc;\n }, {\n attrs: {}\n });\n\n var _extraProps$style = extraProps.style,\n existingStyle = _extraProps$style === void 0 ? {} : _extraProps$style,\n remaining = _objectWithoutProperties(extraProps, _excluded);\n\n mixins.attrs['style'] = _objectSpread2(_objectSpread2({}, mixins.attrs['style']), existingStyle);\n /* eslint-enable */\n\n return createElement.apply(void 0, [element.tag, _objectSpread2(_objectSpread2({}, mixins.attrs), remaining)].concat(_toConsumableArray(children)));\n}\n\nvar PRODUCTION = false;\n\ntry {\n PRODUCTION = process.env.NODE_ENV === 'production';\n} catch (e) {}\n\nfunction log () {\n if (!PRODUCTION && console && typeof console.error === 'function') {\n var _console;\n\n (_console = console).error.apply(_console, arguments);\n }\n}\n\nfunction normalizeIconArgs(icon) {\n // this has everything that it needs to be rendered which means it was probably imported\n // directly from an icon svg package\n if (icon && _typeof(icon) === 'object' && icon.prefix && icon.iconName && icon.icon) {\n return icon;\n }\n\n if (parse.icon) {\n return parse.icon(icon);\n } // if the icon is null, there's nothing to do\n\n\n if (icon === null) {\n return null;\n } // if the icon is an object and has a prefix and an icon name, return it\n\n\n if (icon && _typeof(icon) === 'object' && icon.prefix && icon.iconName) {\n return icon;\n } // if it's an array with length of two\n\n\n if (Array.isArray(icon) && icon.length === 2) {\n // use the first item as prefix, second as icon name\n return {\n prefix: icon[0],\n iconName: icon[1]\n };\n } // if it's a string, use it as the icon name\n\n\n if (typeof icon === 'string') {\n return {\n prefix: 'fas',\n iconName: icon\n };\n }\n}\n\n// creates an object with a key of key\n// and a value of value\n// if certain conditions are met\nfunction objectWithKey(key, value) {\n // if the value is a non-empty array\n // or it's not an array but it is truthy\n // then create the object with the key and the value\n // if not, return an empty array\n return Array.isArray(value) && value.length > 0 || !Array.isArray(value) && value ? _defineProperty({}, key, value) : {};\n}\n\nvar FontAwesomeIcon = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var iconArgs = props.icon,\n maskArgs = props.mask,\n symbol = props.symbol,\n className = props.className,\n title = props.title,\n titleId = props.titleId,\n maskId = props.maskId;\n var iconLookup = normalizeIconArgs(iconArgs);\n var classes = objectWithKey('classes', [].concat(_toConsumableArray(classList(props)), _toConsumableArray(className.split(' '))));\n var transform = objectWithKey('transform', typeof props.transform === 'string' ? parse.transform(props.transform) : props.transform);\n var mask = objectWithKey('mask', normalizeIconArgs(maskArgs));\n var renderedIcon = icon(iconLookup, _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, classes), transform), mask), {}, {\n symbol: symbol,\n title: title,\n titleId: titleId,\n maskId: maskId\n }));\n\n if (!renderedIcon) {\n log('Could not find icon', iconLookup);\n return null;\n }\n\n var abstract = renderedIcon.abstract;\n var extraProps = {\n ref: ref\n };\n Object.keys(props).forEach(function (key) {\n // eslint-disable-next-line no-prototype-builtins\n if (!FontAwesomeIcon.defaultProps.hasOwnProperty(key)) {\n extraProps[key] = props[key];\n }\n });\n return convertCurry(abstract[0], extraProps);\n});\nFontAwesomeIcon.displayName = 'FontAwesomeIcon';\nFontAwesomeIcon.propTypes = {\n beat: PropTypes.bool,\n border: PropTypes.bool,\n beatFade: PropTypes.bool,\n bounce: PropTypes.bool,\n className: PropTypes.string,\n fade: PropTypes.bool,\n flash: PropTypes.bool,\n mask: PropTypes.oneOfType([PropTypes.object, PropTypes.array, PropTypes.string]),\n maskId: PropTypes.string,\n fixedWidth: PropTypes.bool,\n inverse: PropTypes.bool,\n flip: PropTypes.oneOf([true, false, 'horizontal', 'vertical', 'both']),\n icon: PropTypes.oneOfType([PropTypes.object, PropTypes.array, PropTypes.string]),\n listItem: PropTypes.bool,\n pull: PropTypes.oneOf(['right', 'left']),\n pulse: PropTypes.bool,\n rotation: PropTypes.oneOf([0, 90, 180, 270]),\n shake: PropTypes.bool,\n size: PropTypes.oneOf(['2xs', 'xs', 'sm', 'lg', 'xl', '2xl', '1x', '2x', '3x', '4x', '5x', '6x', '7x', '8x', '9x', '10x']),\n spin: PropTypes.bool,\n spinPulse: PropTypes.bool,\n spinReverse: PropTypes.bool,\n symbol: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n title: PropTypes.string,\n titleId: PropTypes.string,\n transform: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n swapOpacity: PropTypes.bool\n};\nFontAwesomeIcon.defaultProps = {\n border: false,\n className: '',\n mask: null,\n maskId: null,\n fixedWidth: false,\n inverse: false,\n flip: false,\n icon: null,\n listItem: false,\n pull: null,\n pulse: false,\n rotation: null,\n size: null,\n spin: false,\n spinPulse: false,\n spinReverse: false,\n beat: false,\n fade: false,\n beatFade: false,\n bounce: false,\n shake: false,\n symbol: false,\n title: '',\n titleId: null,\n transform: null,\n swapOpacity: false\n};\nvar convertCurry = convert.bind(null, React.createElement);\n\nexport { FontAwesomeIcon };\n","'use strict';\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","\"use strict\";\n\nmodule.exports = Object.assign;\n//# sourceMappingURL=object-assign.js.map","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar ThemeToggler = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(ThemeToggler, _React$Component);\n\n function ThemeToggler() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"state\", {\n theme: typeof window !== 'undefined' ? window.__theme : null\n });\n return _this;\n }\n\n var _proto = ThemeToggler.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n var _this2 = this;\n\n window.__onThemeChange = function () {\n _this2.setState({\n theme: window.__theme\n });\n };\n };\n\n _proto.toggleTheme = function toggleTheme(theme) {\n window.__setPreferredTheme(theme);\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/_react.default.createElement(this.props.children, {\n theme: this.state.theme,\n toggleTheme: this.toggleTheme\n });\n };\n\n return ThemeToggler;\n}(_react.default.Component);\n\nThemeToggler.propTypes = {\n children: _propTypes.default.func.isRequired\n};\nvar _default = ThemeToggler;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\n\nvar _ThemeToggler = _interopRequireDefault(require(\"./ThemeToggler\"));\n\nexports.ThemeToggler = _ThemeToggler.default;","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<ImageFormat>\n placeholder?: \"tracedSVG\" | \"dominantColor\" | \"blurred\" | \"none\"\n tracedSVGOptions?: Record<string, unknown>\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<string, unknown>\n pngOptions?: Record<string, unknown>\n webpOptions?: Record<string, unknown>\n avifOptions?: Record<string, unknown>\n blurredOptions?: { width?: number; toFormat?: ImageFormat }\n breakpoints?: Array<number>\n outputPixelDensities?: Array<number>\n backgroundColor?: string\n}\n\nexport interface IImageSizeArgs {\n width?: number\n height?: number\n layout?: Layout\n filename: string\n outputPixelDensities?: Array<number>\n breakpoints?: Array<number>\n fit?: Fit\n reporter?: IReporter\n sourceMetadata: { width: number; height: number }\n}\n\nexport interface IImageSizes {\n sizes: Array<number>\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<string, unknown>\n ) => IImage\n layout?: Layout\n formats?: Array<ImageFormat>\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<string, unknown>\n breakpoints?: Array<number>\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<IImage>): 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<ImageFormat>(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<IGatsbyImageData> = {\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<number>): Array<number> =>\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 = never> = T & {\n gatsbyImageData: IGatsbyImageData\n}\nexport type IGatsbyImageParent<T = never> = T & {\n gatsbyImage: IGatsbyImageData\n}\nexport type FileNode = Partial<Node> & {\n childImageSharp?: IGatsbyImageDataParent<Partial<Node>>\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 = <T>(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n node: IGatsbyImageDataParent<T> | any\n): node is IGatsbyImageDataParent<T> => Boolean(node?.gatsbyImageData)\n\nconst isGatsbyImageParent = <T>(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n node: IGatsbyImageParent<T> | any\n): node is IGatsbyImageParent<T> => 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<HTMLAttributes<HTMLElement>, \"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<OptionsType> {\n width: number\n height: number\n baseUrl: string\n format: ImageFormat\n options: OptionsType\n}\nexport interface IGetImageDataArgs<OptionsType = Record<string, unknown>> {\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<OptionsType>) => 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<ImageFormat>\n\n breakpoints?: Array<number>\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<OptionsType>({\n baseUrl,\n urlBuilder,\n sourceWidth,\n sourceHeight,\n pluginName = `getImageData`,\n formats = [`auto`],\n breakpoints,\n options,\n ...props\n}: IGetImageDataArgs<OptionsType>): 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<MainImageProps> {\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<HTMLImageElement> &\n Pick<PlaceholderProps, \"sources\" | \"fallback\"> & {\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<IArtDirectedImage>\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 <script\n type=\"module\"\n dangerouslySetInnerHTML={{\n __html: terserMacro`\nconst hasNativeLazyLoadSupport = typeof HTMLImageElement !== \"undefined\" && \"loading\" in HTMLImageElement.prototype;\nif (hasNativeLazyLoadSupport) {\n const gatsbyImages = document.querySelectorAll('img[data-main-image]');\n for (let mainImage of gatsbyImages) {\n if (mainImage.dataset.src) {\n mainImage.setAttribute('src', mainImage.dataset.src)\n mainImage.removeAttribute('data-src')\n }\n if (mainImage.dataset.srcset) {\n mainImage.setAttribute('srcset', mainImage.dataset.srcset)\n mainImage.removeAttribute('data-srcset')\n }\n\n const sources = mainImage.parentNode.querySelectorAll('source[data-srcset]');\n for (let source of sources) {\n source.setAttribute('srcset', source.dataset.srcset)\n source.removeAttribute('data-srcset')\n }\n\n if (mainImage.complete) {\n mainImage.style.opacity = 1;\n\n // also hide the placeholder\n mainImage.parentNode.parentNode.querySelector('[data-placeholder-image]').style.opacity = 0;\n }\n }\n}\n`,\n }}\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 = `<div aria-hidden=\"true\" style=\"padding-top: ${\n (height / width) * 100\n }%;\"></div>`\n }\n\n if (layout === `constrained`) {\n sizer = `<div style=\"max-width: ${width}px; display: block;\"><img alt=\"\" role=\"presentation\" aria-hidden=\"true\" src=\"data:image/svg+xml;charset=utf-8,%3Csvg%20height='${height}'%20width='${width}'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E\" style=\"max-width: 100%; display: block; position: static;\"></div>`\n }\n\n return sizer\n}\n\nconst Sizer: FunctionComponent<ILayoutWrapperProps> = function Sizer({\n layout,\n width,\n height,\n}) {\n if (layout === `fullWidth`) {\n return (\n <div aria-hidden style={{ paddingTop: `${(height / width) * 100}%` }} />\n )\n }\n\n if (layout === `constrained`) {\n return (\n <div style={{ maxWidth: width, display: `block` }}>\n <img\n alt=\"\"\n role=\"presentation\"\n aria-hidden=\"true\"\n src={`data:image/svg+xml;charset=utf-8,%3Csvg%20height='${height}'%20width='${width}'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E`}\n style={{\n maxWidth: `100%`,\n display: `block`,\n position: `static`,\n }}\n />\n </div>\n )\n }\n\n return null\n}\n\nexport const LayoutWrapper: FunctionComponent<\n PropsWithChildren<ILayoutWrapperProps>\n> = function LayoutWrapper({ children, ...props }) {\n return (\n <Fragment>\n <Sizer {...props} />\n {children}\n\n {SERVER ? <NativeScriptLoading /> : null}\n </Fragment>\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<IResponsiveImageProps>\n\ntype ImageProps = ImgHTMLAttributes<HTMLImageElement> & {\n src: string\n alt: string\n shouldLoad: boolean\n}\n\nexport type PictureProps = ImgHTMLAttributes<HTMLImageElement> & {\n fallback?: FallbackProps\n sources?: Array<SourceProps>\n alt: string\n shouldLoad?: boolean\n}\n\nconst Image: FunctionComponent<ImageProps> = function Image({\n src,\n srcSet,\n loading,\n alt = ``,\n shouldLoad,\n ...props\n}) {\n return (\n <img\n {...props}\n decoding=\"async\"\n loading={loading}\n src={shouldLoad ? src : undefined}\n data-src={!shouldLoad ? src : undefined}\n srcSet={shouldLoad ? srcSet : undefined}\n data-srcset={!shouldLoad ? srcSet : undefined}\n alt={alt}\n />\n )\n}\n\nexport const Picture: React.FC<PictureProps> = function Picture({\n fallback,\n sources = [],\n shouldLoad = true,\n ...props\n}) {\n const sizes = props.sizes || fallback?.sizes\n const fallbackImage = (\n <Image {...props} {...fallback} sizes={sizes} shouldLoad={shouldLoad} />\n )\n\n if (!sources.length) {\n return fallbackImage\n }\n\n return (\n <picture>\n {sources.map(({ media, srcSet, type }) => (\n <source\n key={`${media}-${type}-${srcSet}`}\n type={type}\n media={media}\n srcSet={shouldLoad ? srcSet : undefined}\n data-srcset={!shouldLoad ? srcSet : undefined}\n sizes={sizes}\n />\n ))}\n {fallbackImage}\n </picture>\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<HTMLImageElement> & {\n fallback?: string\n sources?: Array<SourceProps>\n}\n\nexport const Placeholder: FunctionComponent<PlaceholderProps> =\n function Placeholder({ fallback, ...props }) {\n if (fallback) {\n return (\n <Picture\n {...props}\n fallback={{\n src: fallback,\n }}\n aria-hidden\n alt=\"\"\n />\n )\n } else {\n return <div {...props}></div>\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<PictureProps> = function MainImage(props) {\n return (\n <>\n <Picture {...props} />\n <noscript>\n <Picture {...props} shouldLoad={true} />\n </noscript>\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<GatsbyImageProps> =\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 <LayoutWrapper layout={layout} width={width} height={height}>\n <Placeholder\n {...getPlaceholderProps(\n placeholder,\n false,\n layout,\n width,\n height,\n placeholderBackgroundColor,\n objectFit,\n objectPosition\n )}\n />\n\n <MainImage\n data-gatsby-image-ssr=\"\"\n className={imgClassName}\n {...(props as Omit<\n MainImageProps,\n \"images\" | \"fallback\" | \"onError\" | \"onLoad\"\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 </LayoutWrapper>\n )\n }\n\nexport const altValidator: PropTypes.Validator<string> = (\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<GatsbyImageProps>\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<string>()\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<HTMLImageElement>,\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<HTMLImageElement>\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<MainImageProps, \"sources\" | \"fallback\">\n placeholder?: Pick<PlaceholderProps, \"sources\" | \"fallback\">\n}\n\nconst GatsbyImageHydrator: FC<GatsbyImageProps> = 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<HTMLElement>()\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<GatsbyImageProps> = 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<GatsbyImageProps, \"image\">,\n Omit<ISharpGatsbyImageArgs, \"backgroundColor\"> {\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<GatsbyImageProps>\n): React.FC<IStaticImageProps & IPrivateProps> {\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 <GatsbyImage image={imageData} {...props} />\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<IStaticImageProps & IPrivateProps> =\n _getStaticImage(GatsbyImageServer)\n\nconst checkDimensionProps: PropTypes.Validator<number> = (\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<IStaticImageProps & IPrivateProps> =\n _getStaticImage(GatsbyImageBrowser)\n\nStaticImage.displayName = `StaticImage`\nStaticImage.propTypes = propTypes\n\nexport { StaticImage }\n","import React from 'react'\nimport { faMoon, faSun } from '@fortawesome/free-solid-svg-icons'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { ThemeToggler } from 'gatsby-plugin-dark-mode'\nimport styled from '@emotion/styled'\n\ninterface ThemeChangerProps {\n theme: string\n toggleTheme: (theme: string) => void\n}\n\nconst IconWrapper = styled(FontAwesomeIcon)`\n color: rgba(255, 255, 255, 0.88);\n cursor: pointer;\n\n &:hover {\n transform: scale(1.1);\n color: rgba(255, 255, 255, 1);\n }\n`\n\nconst ThemeChanger = () => {\n return (\n <div>\n <ThemeToggler>\n {({ theme, toggleTheme }: ThemeChangerProps) => (\n <div\n className=\"light-dark-btn\"\n onClick={() => toggleTheme(theme === 'dark' ? 'light' : 'dark')}\n >\n {theme === 'dark' ? (\n <IconWrapper icon={faSun} />\n ) : (\n <IconWrapper icon={faMoon} />\n )}\n </div>\n )}\n </ThemeToggler>\n </div>\n )\n}\n\nexport default ThemeChanger\n","import React, { FunctionComponent } from 'react'\nimport styled from '@emotion/styled'\nimport { menuLinkType } from 'types/siteData.type'\nimport { Link } from 'gatsby'\nimport ThemeChanger from './ThemeChanger'\n\ntype HeaderProps = {\n menuLinks: menuLinkType[]\n siteTitle: string\n}\n\nconst HeaderWrapper = styled.header`\n // display: grid;\n width: 100%;\n margin: auto;\n // padding-right: 15px;\n font-size: 25px;\n text-align: center;\n line-height: 1.5;\n place-items: center end;\n // background-color: rgba(69, 69, 69, 1);\n // background-color: var(--bg);\n\n @media (max-width: 768px) {\n // font-size: 13px;\n padding-right: 20px;\n }\n`\n\nconst NavWrapper = styled.nav`\n display: flex;\n flex-direction: row;\n width: 768px;\n margin: auto;\n align-items: center;\n font-size: 20px;\n\n @media (max-width: 768px) {\n font-size: 13px;\n width: 100%;\n }\n`\n\nconst SiteTitleText = styled.h1`\n margin: 0;\n flex: 1;\n text-align: justify;\n\n @media (max-width: 768px) {\n flex: 0.6;\n text-align: unset;\n }\n`\n\nconst MenuLinksList = styled.ul`\n display: flex;\n flex: 1;\n flex-direction: row;\n align-items: center;\n margin-right: auto;\n color: rgba(255, 255, 255, 0.88);\n`\n\nconst HeaderMenuLink = styled(Link)`\n color: rgba(255, 255, 255, 0.88);\n\n // underline animation\n position: relative;\n color: #ffffff;\n text-decoration: none;\n width: fit-content;\n\n @media (max-width: 768px) {\n font-size: 14px;\n }\n\n &::after {\n content: '';\n position: absolute;\n width: 100%;\n transform: scaleX(0);\n height: 2px;\n bottom: 0;\n left: 0;\n background-color: rgba(255, 255, 255, 0.88);\n transform-origin: bottom right;\n transition: transform 0.25s ease-out;\n }\n\n &:hover::after {\n transform: scaleX(1);\n transform-origin: bottom left;\n }\n`\n\nconst Header: FunctionComponent<HeaderProps> = ({ menuLinks, siteTitle }) => {\n return (\n <HeaderWrapper>\n <NavWrapper>\n <SiteTitleText>\n <Link\n to=\"/\"\n style={{\n color: 'white',\n textDecoration: 'none',\n }}\n >\n {siteTitle}\n </Link>\n </SiteTitleText>\n <MenuLinksList>\n {menuLinks.map(link => (\n <li\n key={link.name}\n style={{\n listStyleType: `none`,\n padding: `1rem`,\n }}\n >\n <HeaderMenuLink to={link.link}>{link.name}</HeaderMenuLink>\n </li>\n ))}\n <ThemeChanger />\n </MenuLinksList>\n </NavWrapper>\n </HeaderWrapper>\n )\n}\n\nexport default Header\n","import React, { FunctionComponent } from 'react'\nimport styled from '@emotion/styled'\n\nconst FooterWrapper = styled.footer`\n display: grid;\n place-items: center;\n margin-top: auto;\n padding: 50px 0;\n font-size: 15px;\n text-align: center;\n line-height: 1.5;\n color: var(--text-color);\n\n @media (max-width: 768px) {\n font-size: 13px;\n }\n`\n\nconst Footer: FunctionComponent = () => {\n return (\n <FooterWrapper>\n <div>\n Post Thumbnail Photos by{' '}\n <a href=\"https://unsplash.com/@jessbaileydesigns?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText\">\n Jess Bailey{' '}\n </a>\n and{' '}\n <a href=\"https://unsplash.com/@ilyapavlov?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText\">\n Ilya Pavlov{' '}\n </a>\n on <a href=\"https://unsplash.com/\">Unsplash</a>\n </div>\n <br />© 2023 Developer Daeyeon Kim, Powered By Gatsby.\n </FooterWrapper>\n )\n}\n\nexport default Footer\n","import PropTypes from 'prop-types';\nimport withSideEffect from 'react-side-effect';\nimport isEqual from 'react-fast-compare';\nimport React from 'react';\nimport objectAssign from 'object-assign';\n\nvar ATTRIBUTE_NAMES = {\n BODY: \"bodyAttributes\",\n HTML: \"htmlAttributes\",\n TITLE: \"titleAttributes\"\n};\n\nvar TAG_NAMES = {\n BASE: \"base\",\n BODY: \"body\",\n HEAD: \"head\",\n HTML: \"html\",\n LINK: \"link\",\n META: \"meta\",\n NOSCRIPT: \"noscript\",\n SCRIPT: \"script\",\n STYLE: \"style\",\n TITLE: \"title\"\n};\n\nvar VALID_TAG_NAMES = Object.keys(TAG_NAMES).map(function (name) {\n return TAG_NAMES[name];\n});\n\nvar TAG_PROPERTIES = {\n CHARSET: \"charset\",\n CSS_TEXT: \"cssText\",\n HREF: \"href\",\n HTTPEQUIV: \"http-equiv\",\n INNER_HTML: \"innerHTML\",\n ITEM_PROP: \"itemprop\",\n NAME: \"name\",\n PROPERTY: \"property\",\n REL: \"rel\",\n SRC: \"src\",\n TARGET: \"target\"\n};\n\nvar REACT_TAG_MAP = {\n accesskey: \"accessKey\",\n charset: \"charSet\",\n class: \"className\",\n contenteditable: \"contentEditable\",\n contextmenu: \"contextMenu\",\n \"http-equiv\": \"httpEquiv\",\n itemprop: \"itemProp\",\n tabindex: \"tabIndex\"\n};\n\nvar HELMET_PROPS = {\n DEFAULT_TITLE: \"defaultTitle\",\n DEFER: \"defer\",\n ENCODE_SPECIAL_CHARACTERS: \"encodeSpecialCharacters\",\n ON_CHANGE_CLIENT_STATE: \"onChangeClientState\",\n TITLE_TEMPLATE: \"titleTemplate\"\n};\n\nvar HTML_TAG_MAP = Object.keys(REACT_TAG_MAP).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key]] = key;\n return obj;\n}, {});\n\nvar SELF_CLOSING_TAGS = [TAG_NAMES.NOSCRIPT, TAG_NAMES.SCRIPT, TAG_NAMES.STYLE];\n\nvar HELMET_ATTRIBUTE = \"data-react-helmet\";\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar inherits = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\nvar objectWithoutProperties = function (obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};\n\nvar possibleConstructorReturn = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n};\n\nvar encodeSpecialCharacters = function encodeSpecialCharacters(str) {\n var encode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (encode === false) {\n return String(str);\n }\n\n return String(str).replace(/&/g, \"&\").replace(/</g, \"<\").replace(/>/g, \">\").replace(/\"/g, \""\").replace(/'/g, \"'\");\n};\n\nvar getTitleFromPropsList = function getTitleFromPropsList(propsList) {\n var innermostTitle = getInnermostProperty(propsList, TAG_NAMES.TITLE);\n var innermostTemplate = getInnermostProperty(propsList, HELMET_PROPS.TITLE_TEMPLATE);\n\n if (innermostTemplate && innermostTitle) {\n // use function arg to avoid need to escape $ characters\n return innermostTemplate.replace(/%s/g, function () {\n return Array.isArray(innermostTitle) ? innermostTitle.join(\"\") : innermostTitle;\n });\n }\n\n var innermostDefaultTitle = getInnermostProperty(propsList, HELMET_PROPS.DEFAULT_TITLE);\n\n return innermostTitle || innermostDefaultTitle || undefined;\n};\n\nvar getOnChangeClientState = function getOnChangeClientState(propsList) {\n return getInnermostProperty(propsList, HELMET_PROPS.ON_CHANGE_CLIENT_STATE) || function () {};\n};\n\nvar getAttributesFromPropsList = function getAttributesFromPropsList(tagType, propsList) {\n return propsList.filter(function (props) {\n return typeof props[tagType] !== \"undefined\";\n }).map(function (props) {\n return props[tagType];\n }).reduce(function (tagAttrs, current) {\n return _extends({}, tagAttrs, current);\n }, {});\n};\n\nvar getBaseTagFromPropsList = function getBaseTagFromPropsList(primaryAttributes, propsList) {\n return propsList.filter(function (props) {\n return typeof props[TAG_NAMES.BASE] !== \"undefined\";\n }).map(function (props) {\n return props[TAG_NAMES.BASE];\n }).reverse().reduce(function (innermostBaseTag, tag) {\n if (!innermostBaseTag.length) {\n var keys = Object.keys(tag);\n\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && tag[lowerCaseAttributeKey]) {\n return innermostBaseTag.concat(tag);\n }\n }\n }\n\n return innermostBaseTag;\n }, []);\n};\n\nvar getTagsFromPropsList = function getTagsFromPropsList(tagName, primaryAttributes, propsList) {\n // Calculate list of tags, giving priority innermost component (end of the propslist)\n var approvedSeenTags = {};\n\n return propsList.filter(function (props) {\n if (Array.isArray(props[tagName])) {\n return true;\n }\n if (typeof props[tagName] !== \"undefined\") {\n warn(\"Helmet: \" + tagName + \" should be of type \\\"Array\\\". Instead found type \\\"\" + _typeof(props[tagName]) + \"\\\"\");\n }\n return false;\n }).map(function (props) {\n return props[tagName];\n }).reverse().reduce(function (approvedTags, instanceTags) {\n var instanceSeenTags = {};\n\n instanceTags.filter(function (tag) {\n var primaryAttributeKey = void 0;\n var keys = Object.keys(tag);\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n // Special rule with link tags, since rel and href are both primary tags, rel takes priority\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && !(primaryAttributeKey === TAG_PROPERTIES.REL && tag[primaryAttributeKey].toLowerCase() === \"canonical\") && !(lowerCaseAttributeKey === TAG_PROPERTIES.REL && tag[lowerCaseAttributeKey].toLowerCase() === \"stylesheet\")) {\n primaryAttributeKey = lowerCaseAttributeKey;\n }\n // Special case for innerHTML which doesn't work lowercased\n if (primaryAttributes.indexOf(attributeKey) !== -1 && (attributeKey === TAG_PROPERTIES.INNER_HTML || attributeKey === TAG_PROPERTIES.CSS_TEXT || attributeKey === TAG_PROPERTIES.ITEM_PROP)) {\n primaryAttributeKey = attributeKey;\n }\n }\n\n if (!primaryAttributeKey || !tag[primaryAttributeKey]) {\n return false;\n }\n\n var value = tag[primaryAttributeKey].toLowerCase();\n\n if (!approvedSeenTags[primaryAttributeKey]) {\n approvedSeenTags[primaryAttributeKey] = {};\n }\n\n if (!instanceSeenTags[primaryAttributeKey]) {\n instanceSeenTags[primaryAttributeKey] = {};\n }\n\n if (!approvedSeenTags[primaryAttributeKey][value]) {\n instanceSeenTags[primaryAttributeKey][value] = true;\n return true;\n }\n\n return false;\n }).reverse().forEach(function (tag) {\n return approvedTags.push(tag);\n });\n\n // Update seen tags with tags from this instance\n var keys = Object.keys(instanceSeenTags);\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var tagUnion = objectAssign({}, approvedSeenTags[attributeKey], instanceSeenTags[attributeKey]);\n\n approvedSeenTags[attributeKey] = tagUnion;\n }\n\n return approvedTags;\n }, []).reverse();\n};\n\nvar getInnermostProperty = function getInnermostProperty(propsList, property) {\n for (var i = propsList.length - 1; i >= 0; i--) {\n var props = propsList[i];\n\n if (props.hasOwnProperty(property)) {\n return props[property];\n }\n }\n\n return null;\n};\n\nvar reducePropsToState = function reducePropsToState(propsList) {\n return {\n baseTag: getBaseTagFromPropsList([TAG_PROPERTIES.HREF, TAG_PROPERTIES.TARGET], propsList),\n bodyAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.BODY, propsList),\n defer: getInnermostProperty(propsList, HELMET_PROPS.DEFER),\n encode: getInnermostProperty(propsList, HELMET_PROPS.ENCODE_SPECIAL_CHARACTERS),\n htmlAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.HTML, propsList),\n linkTags: getTagsFromPropsList(TAG_NAMES.LINK, [TAG_PROPERTIES.REL, TAG_PROPERTIES.HREF], propsList),\n metaTags: getTagsFromPropsList(TAG_NAMES.META, [TAG_PROPERTIES.NAME, TAG_PROPERTIES.CHARSET, TAG_PROPERTIES.HTTPEQUIV, TAG_PROPERTIES.PROPERTY, TAG_PROPERTIES.ITEM_PROP], propsList),\n noscriptTags: getTagsFromPropsList(TAG_NAMES.NOSCRIPT, [TAG_PROPERTIES.INNER_HTML], propsList),\n onChangeClientState: getOnChangeClientState(propsList),\n scriptTags: getTagsFromPropsList(TAG_NAMES.SCRIPT, [TAG_PROPERTIES.SRC, TAG_PROPERTIES.INNER_HTML], propsList),\n styleTags: getTagsFromPropsList(TAG_NAMES.STYLE, [TAG_PROPERTIES.CSS_TEXT], propsList),\n title: getTitleFromPropsList(propsList),\n titleAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.TITLE, propsList)\n };\n};\n\nvar rafPolyfill = function () {\n var clock = Date.now();\n\n return function (callback) {\n var currentTime = Date.now();\n\n if (currentTime - clock > 16) {\n clock = currentTime;\n callback(currentTime);\n } else {\n setTimeout(function () {\n rafPolyfill(callback);\n }, 0);\n }\n };\n}();\n\nvar cafPolyfill = function cafPolyfill(id) {\n return clearTimeout(id);\n};\n\nvar requestAnimationFrame = typeof window !== \"undefined\" ? window.requestAnimationFrame && window.requestAnimationFrame.bind(window) || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || rafPolyfill : global.requestAnimationFrame || rafPolyfill;\n\nvar cancelAnimationFrame = typeof window !== \"undefined\" ? window.cancelAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || cafPolyfill : global.cancelAnimationFrame || cafPolyfill;\n\nvar warn = function warn(msg) {\n return console && typeof console.warn === \"function\" && console.warn(msg);\n};\n\nvar _helmetCallback = null;\n\nvar handleClientStateChange = function handleClientStateChange(newState) {\n if (_helmetCallback) {\n cancelAnimationFrame(_helmetCallback);\n }\n\n if (newState.defer) {\n _helmetCallback = requestAnimationFrame(function () {\n commitTagChanges(newState, function () {\n _helmetCallback = null;\n });\n });\n } else {\n commitTagChanges(newState);\n _helmetCallback = null;\n }\n};\n\nvar commitTagChanges = function commitTagChanges(newState, cb) {\n var baseTag = newState.baseTag,\n bodyAttributes = newState.bodyAttributes,\n htmlAttributes = newState.htmlAttributes,\n linkTags = newState.linkTags,\n metaTags = newState.metaTags,\n noscriptTags = newState.noscriptTags,\n onChangeClientState = newState.onChangeClientState,\n scriptTags = newState.scriptTags,\n styleTags = newState.styleTags,\n title = newState.title,\n titleAttributes = newState.titleAttributes;\n\n updateAttributes(TAG_NAMES.BODY, bodyAttributes);\n updateAttributes(TAG_NAMES.HTML, htmlAttributes);\n\n updateTitle(title, titleAttributes);\n\n var tagUpdates = {\n baseTag: updateTags(TAG_NAMES.BASE, baseTag),\n linkTags: updateTags(TAG_NAMES.LINK, linkTags),\n metaTags: updateTags(TAG_NAMES.META, metaTags),\n noscriptTags: updateTags(TAG_NAMES.NOSCRIPT, noscriptTags),\n scriptTags: updateTags(TAG_NAMES.SCRIPT, scriptTags),\n styleTags: updateTags(TAG_NAMES.STYLE, styleTags)\n };\n\n var addedTags = {};\n var removedTags = {};\n\n Object.keys(tagUpdates).forEach(function (tagType) {\n var _tagUpdates$tagType = tagUpdates[tagType],\n newTags = _tagUpdates$tagType.newTags,\n oldTags = _tagUpdates$tagType.oldTags;\n\n\n if (newTags.length) {\n addedTags[tagType] = newTags;\n }\n if (oldTags.length) {\n removedTags[tagType] = tagUpdates[tagType].oldTags;\n }\n });\n\n cb && cb();\n\n onChangeClientState(newState, addedTags, removedTags);\n};\n\nvar flattenArray = function flattenArray(possibleArray) {\n return Array.isArray(possibleArray) ? possibleArray.join(\"\") : possibleArray;\n};\n\nvar updateTitle = function updateTitle(title, attributes) {\n if (typeof title !== \"undefined\" && document.title !== title) {\n document.title = flattenArray(title);\n }\n\n updateAttributes(TAG_NAMES.TITLE, attributes);\n};\n\nvar updateAttributes = function updateAttributes(tagName, attributes) {\n var elementTag = document.getElementsByTagName(tagName)[0];\n\n if (!elementTag) {\n return;\n }\n\n var helmetAttributeString = elementTag.getAttribute(HELMET_ATTRIBUTE);\n var helmetAttributes = helmetAttributeString ? helmetAttributeString.split(\",\") : [];\n var attributesToRemove = [].concat(helmetAttributes);\n var attributeKeys = Object.keys(attributes);\n\n for (var i = 0; i < attributeKeys.length; i++) {\n var attribute = attributeKeys[i];\n var value = attributes[attribute] || \"\";\n\n if (elementTag.getAttribute(attribute) !== value) {\n elementTag.setAttribute(attribute, value);\n }\n\n if (helmetAttributes.indexOf(attribute) === -1) {\n helmetAttributes.push(attribute);\n }\n\n var indexToSave = attributesToRemove.indexOf(attribute);\n if (indexToSave !== -1) {\n attributesToRemove.splice(indexToSave, 1);\n }\n }\n\n for (var _i = attributesToRemove.length - 1; _i >= 0; _i--) {\n elementTag.removeAttribute(attributesToRemove[_i]);\n }\n\n if (helmetAttributes.length === attributesToRemove.length) {\n elementTag.removeAttribute(HELMET_ATTRIBUTE);\n } else if (elementTag.getAttribute(HELMET_ATTRIBUTE) !== attributeKeys.join(\",\")) {\n elementTag.setAttribute(HELMET_ATTRIBUTE, attributeKeys.join(\",\"));\n }\n};\n\nvar updateTags = function updateTags(type, tags) {\n var headElement = document.head || document.querySelector(TAG_NAMES.HEAD);\n var tagNodes = headElement.querySelectorAll(type + \"[\" + HELMET_ATTRIBUTE + \"]\");\n var oldTags = Array.prototype.slice.call(tagNodes);\n var newTags = [];\n var indexToDelete = void 0;\n\n if (tags && tags.length) {\n tags.forEach(function (tag) {\n var newElement = document.createElement(type);\n\n for (var attribute in tag) {\n if (tag.hasOwnProperty(attribute)) {\n if (attribute === TAG_PROPERTIES.INNER_HTML) {\n newElement.innerHTML = tag.innerHTML;\n } else if (attribute === TAG_PROPERTIES.CSS_TEXT) {\n if (newElement.styleSheet) {\n newElement.styleSheet.cssText = tag.cssText;\n } else {\n newElement.appendChild(document.createTextNode(tag.cssText));\n }\n } else {\n var value = typeof tag[attribute] === \"undefined\" ? \"\" : tag[attribute];\n newElement.setAttribute(attribute, value);\n }\n }\n }\n\n newElement.setAttribute(HELMET_ATTRIBUTE, \"true\");\n\n // Remove a duplicate tag from domTagstoRemove, so it isn't cleared.\n if (oldTags.some(function (existingTag, index) {\n indexToDelete = index;\n return newElement.isEqualNode(existingTag);\n })) {\n oldTags.splice(indexToDelete, 1);\n } else {\n newTags.push(newElement);\n }\n });\n }\n\n oldTags.forEach(function (tag) {\n return tag.parentNode.removeChild(tag);\n });\n newTags.forEach(function (tag) {\n return headElement.appendChild(tag);\n });\n\n return {\n oldTags: oldTags,\n newTags: newTags\n };\n};\n\nvar generateElementAttributesAsString = function generateElementAttributesAsString(attributes) {\n return Object.keys(attributes).reduce(function (str, key) {\n var attr = typeof attributes[key] !== \"undefined\" ? key + \"=\\\"\" + attributes[key] + \"\\\"\" : \"\" + key;\n return str ? str + \" \" + attr : attr;\n }, \"\");\n};\n\nvar generateTitleAsString = function generateTitleAsString(type, title, attributes, encode) {\n var attributeString = generateElementAttributesAsString(attributes);\n var flattenedTitle = flattenArray(title);\n return attributeString ? \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeString + \">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"</\" + type + \">\" : \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"</\" + type + \">\";\n};\n\nvar generateTagsAsString = function generateTagsAsString(type, tags, encode) {\n return tags.reduce(function (str, tag) {\n var attributeHtml = Object.keys(tag).filter(function (attribute) {\n return !(attribute === TAG_PROPERTIES.INNER_HTML || attribute === TAG_PROPERTIES.CSS_TEXT);\n }).reduce(function (string, attribute) {\n var attr = typeof tag[attribute] === \"undefined\" ? attribute : attribute + \"=\\\"\" + encodeSpecialCharacters(tag[attribute], encode) + \"\\\"\";\n return string ? string + \" \" + attr : attr;\n }, \"\");\n\n var tagContent = tag.innerHTML || tag.cssText || \"\";\n\n var isSelfClosing = SELF_CLOSING_TAGS.indexOf(type) === -1;\n\n return str + \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeHtml + (isSelfClosing ? \"/>\" : \">\" + tagContent + \"</\" + type + \">\");\n }, \"\");\n};\n\nvar convertElementAttributestoReactProps = function convertElementAttributestoReactProps(attributes) {\n var initProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n return Object.keys(attributes).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key] || key] = attributes[key];\n return obj;\n }, initProps);\n};\n\nvar convertReactPropstoHtmlAttributes = function convertReactPropstoHtmlAttributes(props) {\n var initAttributes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n return Object.keys(props).reduce(function (obj, key) {\n obj[HTML_TAG_MAP[key] || key] = props[key];\n return obj;\n }, initAttributes);\n};\n\nvar generateTitleAsReactComponent = function generateTitleAsReactComponent(type, title, attributes) {\n var _initProps;\n\n // assigning into an array to define toString function on it\n var initProps = (_initProps = {\n key: title\n }, _initProps[HELMET_ATTRIBUTE] = true, _initProps);\n var props = convertElementAttributestoReactProps(attributes, initProps);\n\n return [React.createElement(TAG_NAMES.TITLE, props, title)];\n};\n\nvar generateTagsAsReactComponent = function generateTagsAsReactComponent(type, tags) {\n return tags.map(function (tag, i) {\n var _mappedTag;\n\n var mappedTag = (_mappedTag = {\n key: i\n }, _mappedTag[HELMET_ATTRIBUTE] = true, _mappedTag);\n\n Object.keys(tag).forEach(function (attribute) {\n var mappedAttribute = REACT_TAG_MAP[attribute] || attribute;\n\n if (mappedAttribute === TAG_PROPERTIES.INNER_HTML || mappedAttribute === TAG_PROPERTIES.CSS_TEXT) {\n var content = tag.innerHTML || tag.cssText;\n mappedTag.dangerouslySetInnerHTML = { __html: content };\n } else {\n mappedTag[mappedAttribute] = tag[attribute];\n }\n });\n\n return React.createElement(type, mappedTag);\n });\n};\n\nvar getMethodsForTag = function getMethodsForTag(type, tags, encode) {\n switch (type) {\n case TAG_NAMES.TITLE:\n return {\n toComponent: function toComponent() {\n return generateTitleAsReactComponent(type, tags.title, tags.titleAttributes, encode);\n },\n toString: function toString() {\n return generateTitleAsString(type, tags.title, tags.titleAttributes, encode);\n }\n };\n case ATTRIBUTE_NAMES.BODY:\n case ATTRIBUTE_NAMES.HTML:\n return {\n toComponent: function toComponent() {\n return convertElementAttributestoReactProps(tags);\n },\n toString: function toString() {\n return generateElementAttributesAsString(tags);\n }\n };\n default:\n return {\n toComponent: function toComponent() {\n return generateTagsAsReactComponent(type, tags);\n },\n toString: function toString() {\n return generateTagsAsString(type, tags, encode);\n }\n };\n }\n};\n\nvar mapStateOnServer = function mapStateOnServer(_ref) {\n var baseTag = _ref.baseTag,\n bodyAttributes = _ref.bodyAttributes,\n encode = _ref.encode,\n htmlAttributes = _ref.htmlAttributes,\n linkTags = _ref.linkTags,\n metaTags = _ref.metaTags,\n noscriptTags = _ref.noscriptTags,\n scriptTags = _ref.scriptTags,\n styleTags = _ref.styleTags,\n _ref$title = _ref.title,\n title = _ref$title === undefined ? \"\" : _ref$title,\n titleAttributes = _ref.titleAttributes;\n return {\n base: getMethodsForTag(TAG_NAMES.BASE, baseTag, encode),\n bodyAttributes: getMethodsForTag(ATTRIBUTE_NAMES.BODY, bodyAttributes, encode),\n htmlAttributes: getMethodsForTag(ATTRIBUTE_NAMES.HTML, htmlAttributes, encode),\n link: getMethodsForTag(TAG_NAMES.LINK, linkTags, encode),\n meta: getMethodsForTag(TAG_NAMES.META, metaTags, encode),\n noscript: getMethodsForTag(TAG_NAMES.NOSCRIPT, noscriptTags, encode),\n script: getMethodsForTag(TAG_NAMES.SCRIPT, scriptTags, encode),\n style: getMethodsForTag(TAG_NAMES.STYLE, styleTags, encode),\n title: getMethodsForTag(TAG_NAMES.TITLE, { title: title, titleAttributes: titleAttributes }, encode)\n };\n};\n\nvar Helmet = function Helmet(Component) {\n var _class, _temp;\n\n return _temp = _class = function (_React$Component) {\n inherits(HelmetWrapper, _React$Component);\n\n function HelmetWrapper() {\n classCallCheck(this, HelmetWrapper);\n return possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n }\n\n HelmetWrapper.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n return !isEqual(this.props, nextProps);\n };\n\n HelmetWrapper.prototype.mapNestedChildrenToProps = function mapNestedChildrenToProps(child, nestedChildren) {\n if (!nestedChildren) {\n return null;\n }\n\n switch (child.type) {\n case TAG_NAMES.SCRIPT:\n case TAG_NAMES.NOSCRIPT:\n return {\n innerHTML: nestedChildren\n };\n\n case TAG_NAMES.STYLE:\n return {\n cssText: nestedChildren\n };\n }\n\n throw new Error(\"<\" + child.type + \" /> elements are self-closing and can not contain children. Refer to our API for more information.\");\n };\n\n HelmetWrapper.prototype.flattenArrayTypeChildren = function flattenArrayTypeChildren(_ref) {\n var _babelHelpers$extends;\n\n var child = _ref.child,\n arrayTypeChildren = _ref.arrayTypeChildren,\n newChildProps = _ref.newChildProps,\n nestedChildren = _ref.nestedChildren;\n\n return _extends({}, arrayTypeChildren, (_babelHelpers$extends = {}, _babelHelpers$extends[child.type] = [].concat(arrayTypeChildren[child.type] || [], [_extends({}, newChildProps, this.mapNestedChildrenToProps(child, nestedChildren))]), _babelHelpers$extends));\n };\n\n HelmetWrapper.prototype.mapObjectTypeChildren = function mapObjectTypeChildren(_ref2) {\n var _babelHelpers$extends2, _babelHelpers$extends3;\n\n var child = _ref2.child,\n newProps = _ref2.newProps,\n newChildProps = _ref2.newChildProps,\n nestedChildren = _ref2.nestedChildren;\n\n switch (child.type) {\n case TAG_NAMES.TITLE:\n return _extends({}, newProps, (_babelHelpers$extends2 = {}, _babelHelpers$extends2[child.type] = nestedChildren, _babelHelpers$extends2.titleAttributes = _extends({}, newChildProps), _babelHelpers$extends2));\n\n case TAG_NAMES.BODY:\n return _extends({}, newProps, {\n bodyAttributes: _extends({}, newChildProps)\n });\n\n case TAG_NAMES.HTML:\n return _extends({}, newProps, {\n htmlAttributes: _extends({}, newChildProps)\n });\n }\n\n return _extends({}, newProps, (_babelHelpers$extends3 = {}, _babelHelpers$extends3[child.type] = _extends({}, newChildProps), _babelHelpers$extends3));\n };\n\n HelmetWrapper.prototype.mapArrayTypeChildrenToProps = function mapArrayTypeChildrenToProps(arrayTypeChildren, newProps) {\n var newFlattenedProps = _extends({}, newProps);\n\n Object.keys(arrayTypeChildren).forEach(function (arrayChildName) {\n var _babelHelpers$extends4;\n\n newFlattenedProps = _extends({}, newFlattenedProps, (_babelHelpers$extends4 = {}, _babelHelpers$extends4[arrayChildName] = arrayTypeChildren[arrayChildName], _babelHelpers$extends4));\n });\n\n return newFlattenedProps;\n };\n\n HelmetWrapper.prototype.warnOnInvalidChildren = function warnOnInvalidChildren(child, nestedChildren) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!VALID_TAG_NAMES.some(function (name) {\n return child.type === name;\n })) {\n if (typeof child.type === \"function\") {\n return warn(\"You may be attempting to nest <Helmet> components within each other, which is not allowed. Refer to our API for more information.\");\n }\n\n return warn(\"Only elements types \" + VALID_TAG_NAMES.join(\", \") + \" are allowed. Helmet does not support rendering <\" + child.type + \"> elements. Refer to our API for more information.\");\n }\n\n if (nestedChildren && typeof nestedChildren !== \"string\" && (!Array.isArray(nestedChildren) || nestedChildren.some(function (nestedChild) {\n return typeof nestedChild !== \"string\";\n }))) {\n throw new Error(\"Helmet expects a string as a child of <\" + child.type + \">. Did you forget to wrap your children in braces? ( <\" + child.type + \">{``}</\" + child.type + \"> ) Refer to our API for more information.\");\n }\n }\n\n return true;\n };\n\n HelmetWrapper.prototype.mapChildrenToProps = function mapChildrenToProps(children, newProps) {\n var _this2 = this;\n\n var arrayTypeChildren = {};\n\n React.Children.forEach(children, function (child) {\n if (!child || !child.props) {\n return;\n }\n\n var _child$props = child.props,\n nestedChildren = _child$props.children,\n childProps = objectWithoutProperties(_child$props, [\"children\"]);\n\n var newChildProps = convertReactPropstoHtmlAttributes(childProps);\n\n _this2.warnOnInvalidChildren(child, nestedChildren);\n\n switch (child.type) {\n case TAG_NAMES.LINK:\n case TAG_NAMES.META:\n case TAG_NAMES.NOSCRIPT:\n case TAG_NAMES.SCRIPT:\n case TAG_NAMES.STYLE:\n arrayTypeChildren = _this2.flattenArrayTypeChildren({\n child: child,\n arrayTypeChildren: arrayTypeChildren,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n\n default:\n newProps = _this2.mapObjectTypeChildren({\n child: child,\n newProps: newProps,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n }\n });\n\n newProps = this.mapArrayTypeChildrenToProps(arrayTypeChildren, newProps);\n return newProps;\n };\n\n HelmetWrapper.prototype.render = function render() {\n var _props = this.props,\n children = _props.children,\n props = objectWithoutProperties(_props, [\"children\"]);\n\n var newProps = _extends({}, props);\n\n if (children) {\n newProps = this.mapChildrenToProps(children, newProps);\n }\n\n return React.createElement(Component, newProps);\n };\n\n createClass(HelmetWrapper, null, [{\n key: \"canUseDOM\",\n\n\n // Component.peek comes from react-side-effect:\n // For testing, you may use a static peek() method available on the returned component.\n // It lets you get the current state without resetting the mounted instance stack.\n // Don’t use it for anything other than testing.\n\n /**\n * @param {Object} base: {\"target\": \"_blank\", \"href\": \"http://mysite.com/\"}\n * @param {Object} bodyAttributes: {\"className\": \"root\"}\n * @param {String} defaultTitle: \"Default Title\"\n * @param {Boolean} defer: true\n * @param {Boolean} encodeSpecialCharacters: true\n * @param {Object} htmlAttributes: {\"lang\": \"en\", \"amp\": undefined}\n * @param {Array} link: [{\"rel\": \"canonical\", \"href\": \"http://mysite.com/example\"}]\n * @param {Array} meta: [{\"name\": \"description\", \"content\": \"Test description\"}]\n * @param {Array} noscript: [{\"innerHTML\": \"<img src='http://mysite.com/js/test.js'\"}]\n * @param {Function} onChangeClientState: \"(newState) => console.log(newState)\"\n * @param {Array} script: [{\"type\": \"text/javascript\", \"src\": \"http://mysite.com/js/test.js\"}]\n * @param {Array} style: [{\"type\": \"text/css\", \"cssText\": \"div { display: block; color: blue; }\"}]\n * @param {String} title: \"Title\"\n * @param {Object} titleAttributes: {\"itemprop\": \"name\"}\n * @param {String} titleTemplate: \"MySite.com - %s\"\n */\n set: function set$$1(canUseDOM) {\n Component.canUseDOM = canUseDOM;\n }\n }]);\n return HelmetWrapper;\n }(React.Component), _class.propTypes = {\n base: PropTypes.object,\n bodyAttributes: PropTypes.object,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n defaultTitle: PropTypes.string,\n defer: PropTypes.bool,\n encodeSpecialCharacters: PropTypes.bool,\n htmlAttributes: PropTypes.object,\n link: PropTypes.arrayOf(PropTypes.object),\n meta: PropTypes.arrayOf(PropTypes.object),\n noscript: PropTypes.arrayOf(PropTypes.object),\n onChangeClientState: PropTypes.func,\n script: PropTypes.arrayOf(PropTypes.object),\n style: PropTypes.arrayOf(PropTypes.object),\n title: PropTypes.string,\n titleAttributes: PropTypes.object,\n titleTemplate: PropTypes.string\n }, _class.defaultProps = {\n defer: true,\n encodeSpecialCharacters: true\n }, _class.peek = Component.peek, _class.rewind = function () {\n var mappedState = Component.rewind();\n if (!mappedState) {\n // provide fallback if mappedState is undefined\n mappedState = mapStateOnServer({\n baseTag: [],\n bodyAttributes: {},\n encodeSpecialCharacters: true,\n htmlAttributes: {},\n linkTags: [],\n metaTags: [],\n noscriptTags: [],\n scriptTags: [],\n styleTags: [],\n title: \"\",\n titleAttributes: {}\n });\n }\n\n return mappedState;\n }, _temp;\n};\n\nvar NullComponent = function NullComponent() {\n return null;\n};\n\nvar HelmetSideEffects = withSideEffect(reducePropsToState, handleClientStateChange, mapStateOnServer)(NullComponent);\n\nvar HelmetExport = Helmet(HelmetSideEffects);\nHelmetExport.renderStatic = HelmetExport.rewind;\n\nexport default HelmetExport;\nexport { HelmetExport as Helmet };\n","import React, { FunctionComponent, ReactNode } from 'react'\nimport { siteMetadataType } from 'types/siteData.type'\nimport styled from '@emotion/styled'\nimport GlobalStyle from 'components/Common/GlobalStyle'\nimport Header from './Header'\nimport Footer from 'components/Common/Footer'\nimport { Helmet } from 'react-helmet'\n\ntype TemplateProps = {\n title: string\n image: string\n children: ReactNode\n} & siteMetadataType\n\nconst Container = styled.main`\n display: flex;\n flex-direction: column;\n height: 100%;\n`\n\nconst Template: FunctionComponent<TemplateProps> = ({\n siteTitle,\n title,\n description,\n author: { name },\n siteUrl,\n image,\n menuLinks,\n children,\n}) => {\n return (\n <Container>\n <Helmet>\n <title>{title}</title>\n\n <meta name=\"description\" content={description} />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n <meta httpEquiv=\"Content-Type\" content=\"text/html;charset=UTF-8\" />\n\n <meta property=\"og:type\" content=\"website\" />\n <meta property=\"og:author\" content={name} />\n <meta property=\"og:title\" content={title} />\n <meta property=\"og:description\" content={description} />\n <meta property=\"og:image\" content={image} />\n <meta property=\"og:url\" content={siteUrl} />\n <meta property=\"og:site_name\" content={title} />\n\n {/* <meta name=\"twitter:card\" content=\"summary\" />\n <meta name=\"twitter:title\" content={title} />\n <meta name=\"twitter:description\" content={description} />\n <meta name=\"twitter:image\" content={image} />\n <meta name=\"twitter:site\" content=\"@사용자이름\" />\n <meta name=\"twitter:creator\" content=\"@사용자이름\" /> */}\n\n <html lang=\"ko\" />\n </Helmet>\n <GlobalStyle />\n <Header menuLinks={menuLinks} siteTitle={siteTitle} />\n {children}\n <Footer />\n </Container>\n )\n}\n\nexport default Template\n","/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\n\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView;\n\n// Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n // START: fast-deep-equal es6/index.js 3.1.1\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n // START: Modifications:\n // 1. Extra `has<Type> &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","'use strict';\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar React = require('react');\nvar React__default = _interopDefault(React);\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 _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction withSideEffect(reducePropsToState, handleStateChangeOnClient, mapStateOnServer) {\n if (typeof reducePropsToState !== 'function') {\n throw new Error('Expected reducePropsToState to be a function.');\n }\n\n if (typeof handleStateChangeOnClient !== 'function') {\n throw new Error('Expected handleStateChangeOnClient to be a function.');\n }\n\n if (typeof mapStateOnServer !== 'undefined' && typeof mapStateOnServer !== 'function') {\n throw new Error('Expected mapStateOnServer to either be undefined or a function.');\n }\n\n function getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n }\n\n return function wrap(WrappedComponent) {\n if (typeof WrappedComponent !== 'function') {\n throw new Error('Expected WrappedComponent to be a React component.');\n }\n\n var mountedInstances = [];\n var state;\n\n function emitChange() {\n state = reducePropsToState(mountedInstances.map(function (instance) {\n return instance.props;\n }));\n\n if (SideEffect.canUseDOM) {\n handleStateChangeOnClient(state);\n } else if (mapStateOnServer) {\n state = mapStateOnServer(state);\n }\n }\n\n var SideEffect =\n /*#__PURE__*/\n function (_PureComponent) {\n _inheritsLoose(SideEffect, _PureComponent);\n\n function SideEffect() {\n return _PureComponent.apply(this, arguments) || this;\n }\n\n // Try to use displayName of wrapped component\n // Expose canUseDOM so tests can monkeypatch it\n SideEffect.peek = function peek() {\n return state;\n };\n\n SideEffect.rewind = function rewind() {\n if (SideEffect.canUseDOM) {\n throw new Error('You may only call rewind() on the server. Call peek() to read the current state.');\n }\n\n var recordedState = state;\n state = undefined;\n mountedInstances = [];\n return recordedState;\n };\n\n var _proto = SideEffect.prototype;\n\n _proto.UNSAFE_componentWillMount = function UNSAFE_componentWillMount() {\n mountedInstances.push(this);\n emitChange();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n emitChange();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n var index = mountedInstances.indexOf(this);\n mountedInstances.splice(index, 1);\n emitChange();\n };\n\n _proto.render = function render() {\n return React__default.createElement(WrappedComponent, this.props);\n };\n\n return SideEffect;\n }(React.PureComponent);\n\n _defineProperty(SideEffect, \"displayName\", \"SideEffect(\" + getDisplayName(WrappedComponent) + \")\");\n\n _defineProperty(SideEffect, \"canUseDOM\", canUseDOM);\n\n return SideEffect;\n };\n}\n\nmodule.exports = withSideEffect;\n","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nmodule.exports = _toPrimitive, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar toPrimitive = require(\"./toPrimitive.js\");\nfunction _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}\nmodule.exports = _toPropertyKey, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;"],"names":["ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread2","target","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_typeof","obj","Symbol","iterator","constructor","prototype","_defineProperties","props","descriptor","configurable","writable","value","_slicedToArray","arr","Array","isArray","_arrayWithHoles","_i","_s","_e","_arr","_n","_d","call","next","done","err","_iterableToArrayLimit","_unsupportedIterableToArray","TypeError","_nonIterableRest","_toConsumableArray","_arrayLikeToArray","_arrayWithoutHoles","iter","from","_iterableToArray","_nonIterableSpread","o","minLen","n","toString","slice","name","test","len","arr2","noop","_WINDOW","_DOCUMENT","_MUTATION_OBSERVER","_PERFORMANCE","mark","measure","window","document","MutationObserver","performance","e","_familyProxy","_familyProxy2","_familyProxy3","_familyProxy4","_familyProxy5","_ref$userAgent","navigator","userAgent","WINDOW","DOCUMENT","MUTATION_OBSERVER","PERFORMANCE","IS_DOM","documentElement","head","addEventListener","createElement","IS_IE","indexOf","DEFAULT_REPLACEMENT_CLASS","DATA_FA_I2SVG","DATA_FA_PSEUDO_ELEMENT","DATA_PREFIX","DATA_ICON","HTML_CLASS_I2SVG_BASE_CLASS","TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS","PRODUCTION","FAMILY_CLASSIC","FAMILY_SHARP","FAMILIES","familyProxy","Proxy","get","prop","PREFIX_TO_STYLE","STYLE_TO_PREFIX","PREFIX_TO_LONG_STYLE","LONG_STYLE_TO_PREFIX","ICON_SELECTION_SYNTAX_PATTERN","LAYERS_TEXT_CLASSNAME","FONT_FAMILY_PATTERN","FONT_WEIGHT_TO_PREFIX","oneToTen","oneToTwenty","concat","ATTRIBUTES_WATCHED_FOR_MUTATION","DUOTONE_CLASSES","prefixes","Set","map","add","bind","RESERVED_CLASSES","initial","FontAwesomeConfig","querySelector","_ref","_ref2","attr","val","coerce","element","getAttribute","getAttrConfig","_default","styleDefault","familyDefault","cssPrefix","replacementClass","autoReplaceSvg","autoAddCss","autoA11y","searchPseudoElements","observeMutations","mutateApproach","keepOriginalSource","measurePerformance","showMissingIcons","familyPrefix","_config","config","set","_onChangeCb","cb","d","meaninglessTransform","size","x","y","rotate","flipX","flipY","nextUniqueId","id","Math","random","toArray","array","classArray","node","classList","split","htmlEscape","str","replace","joinStyles","styles","reduce","acc","styleName","trim","transformIsMeaningful","transform","css","dcp","drc","fp","rc","s","dPatt","RegExp","customPropPatt","rPatt","_cssInserted","ensureCss","style","setAttribute","innerHTML","headChildren","childNodes","beforeChild","child","tagName","toUpperCase","insertBefore","insertCss","InjectCSS","mixout","dom","hooks","beforeDOMElementCreation","beforeI2svg","w","shims","namespace","functions","loaded","domready","fn","setTimeout","toHtml","abstractNodes","tag","_abstractNodes$attrib","attributes","_abstractNodes$childr","children","attributeName","joinAttributes","join","iconFromMapping","mapping","prefix","iconName","icon","doScroll","readyState","listener","removeEventListener","subject","initialValue","thisContext","result","undefined","func","a","b","c","bindInternal4","toHex","unicode","decoded","string","output","counter","charCodeAt","extra","ucs2decode","normalizeIcons","icons","defineIcons","params","_params$skipHooks","skipHooks","normalized","addPack","_LONG_STYLE","_PREFIXES","_PREFIXES_FOR_FAMILY","LONG_STYLE","values","_defaultUsablePrefix","_byUnicode","_byLigature","_byOldName","_byOldUnicode","_byAlias","PREFIXES","getIconName","cls","parts","build","lookup","reducer","alias","aliases","hasRegular","autoFetchSvg","shimLookups","shim","maybeNameMaybeUnicode","names","unicodes","getCanonicalPrefix","family","byUnicode","byAlias","byOldName","getDefaultUsablePrefix","styleOrPrefix","_params$family","defined","PREFIXES_FOR_FAMILY","getCanonicalIcon","_famProps","_params$skipLookups","skipLookups","famProps","givenPrefix","includes","some","v","canonical","rest","aliasIconName","Library","instance","Constructor","_classCallCheck","this","definitions","protoProps","staticProps","_this","_len","_key","additions","_pullDefinitions","longPrefix","definition","_normalized$key","_plugins","_hooks","providers","defaultProviderKeys","chainHooks","hook","accumulator","args","hookFns","hookFn","callHooks","_len2","_key2","callProvided","findIconDefinition","iconLookup","library","i2svg","Promise","reject","watch","autoReplaceSvgRoot","autoReplace","api","noAuto","parse","_icon","match","canonicalIcon","_prefix","_params$autoReplaceSv","domVariants","abstractCreator","abstract","container","html","makeInlineSvgAbstract","_params$icons","main","mask","symbol","title","maskId","titleId","_params$watchable","watchable","found","width","height","isUploadedIcon","attrClass","classes","content","role","uploadedIconWidthStyle","asSymbol","offset","asIcon","makeLayersTextAbstract","_params$watchable2","_ref2$width","_ref2$height","_ref2$startCentered","startCentered","transformForCss","styleString","class","makeLayersCounterAbstract","styles$1","asFoundIcon","vectorData","fill","missingIconResolutionMixin","findIcon","resolve","console","error","maybeNotifyMissing","noop$1","p","preamble","end","perf","noop$2","isWatched","createElementNS","convertSVG","abstractObj","_params$ceFn","ceFn","createTextNode","appendChild","mutators","mutation","parentNode","_abstract","comment","createComment","outerHTML","nodeAsComment","replaceChild","remove","nest","_abstract2","forSvg","splitClasses","toSvg","toNode","removeAttribute","newInnerHTML","performOperationSync","op","perform","mutations","callback","callbackFunction","frame","requestAnimationFrame","mutator","disabled","disableObservation","enableObservation","mo","observe","options","_options$treeCallback","treeCallback","_options$nodeCallback","nodeCallback","_options$pseudoElemen","pseudoElementsCallback","_options$observeMutat","observeMutationsRoot","objects","defaultPrefix","mutationRecord","type","addedNodes","hasPrefixAndIcon","_getCanonicalIcon","contains","childList","characterData","subtree","styleParser","classParser","ligature","existingPrefix","existingIconName","innerText","firstChild","nodeType","Node","TEXT_NODE","data","attributesParser","extraAttributes","parseMeta","parser","_classParser","extraClasses","pluginMeta","extraStyles","styles$2","generateMutation","nodeMeta","knownPrefixes","onTree","root","htmlClassList","hclAdd","suffix","hclRemove","f","prefixesDomQuery","candidates","querySelectorAll","all","then","resolvedMutations","catch","onNode","render","iconDefinition","_params$transform","_params$symbol","_params$mask","_params$maskId","_params$title","_params$titleId","_params$classes","_params$attributes","_params$styles","ReplaceElements","maybeIconDefinition","mutationObserverCallbacks","provides","providers$$1","_params$node","_params$callback","generateSvgReplacementMutation","generateAbstractIcon","_ref3","nextChild","containerWidth","iconWidth","Layers","layer","assembler","LayersCounter","LayersText","text","generateLayersText","computedFontSize","parseInt","getComputedStyle","fontSize","boundingClientRect","getBoundingClientRect","CLEAN_CONTENT_PATTERN","SECONDARY_UNICODE_RANGE","replaceForPosition","position","pendingAttribute","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","styleToObject","pair","charAt","normalizeIconArgs","objectWithKey","FontAwesomeIcon","ref","iconArgs","maskArgs","className","_classes","beat","fade","beatFade","bounce","shake","flash","spin","spinPulse","spinReverse","pulse","fixedWidth","inverse","border","listItem","flip","rotation","pull","swapOpacity","renderedIcon","_console","log","extraProps","defaultProps","hasOwnProperty","convertCurry","displayName","propTypes","convert","mixins","attrs","_extraProps$style","existingStyle","remaining","UPPERCASE","LOWERCASE","LEADING_CAPITAL","IDENTIFIER","SEPARATORS","LEADING_SEPARATORS","SEPARATORS_AND_IDENTIFIER","NUMBERS_AND_IDENTIFIER","camelCase","input","pascalCase","preserveConsecutiveUppercase","locale","toLocaleLowerCase","toLocaleUpperCase","isLastCharLower","isLastCharUpper","isLastLastCharUpper","character","preserveCamelCase","lastIndex","m1","_","identifier","m","postProcess","module","exports","assign","_interopRequireDefault","require","__esModule","_assertThisInitialized2","_inheritsLoose2","_defineProperty2","_react","_propTypes","ThemeToggler","_React$Component","default","theme","__theme","_proto","componentDidMount","_this2","__onThemeChange","setState","toggleTheme","__setPreferredTheme","state","Component","isRequired","_ThemeToggler","hasNativeLazyLoadSupport","HTMLImageElement","srcSet","layout","wrapperStyle","getMainProps","isLoading","isLoaded","images","loading","shouldLoad","_extends","getPlaceholderProps","placeholder","backgroundColor","objectFit","objectPosition","top","left","bottom","right","transition","Sizer","React","paddingTop","maxWidth","display","alt","src","LayoutWrapper","Fragment","Image","decoding","Picture","fallback","sources","sizes","media","fallbackImage","PropTypes","Placeholder","_Picture$propTypes","propName","componentName","Error","MainImage","removeNewLines","altValidator","image","renderImageToStringPromise","renderImage","GatsbyImageHydrator","as","preactClass","onStartLoad","onLoad","onError","getWrapperProps","wStyle","wClass","wrapperProps","useRef","useMemo","JSON","stringify","sizer","useEffect","import","renderImageToString","swapPlaceholderImage","ssrImage","current","complete","wasCached","onLoadListener","imageCache","cacheKey","has","animationFrame","cleanupCallback","cancelAnimationFrame","useLayoutEffect","dangerouslySetInnerHTML","__html","suppressHydrationWarning","GatsbyImage","memo","_getStaticImage","StaticImage","__imageData","imageData","__error","warn","imgClassName","imgStyle","placeholderBackgroundColor","cleanedImages","checkDimensionProps","validLayouts","GatsbyImageBrowser","IconWrapper","_styled","___EmotionJSX","onClick","faSun","faMoon","HeaderWrapper","NavWrapper","SiteTitleText","MenuLinksList","HeaderMenuLink","Link","menuLinks","siteTitle","to","color","textDecoration","link","listStyleType","padding","ThemeChanger","FooterWrapper","clock","_class","_temp","href","ATTRIBUTE_NAMES","TAG_NAMES","BASE","BODY","HEAD","HTML","LINK","META","NOSCRIPT","SCRIPT","STYLE","TITLE","TAG_PROPERTIES","REACT_TAG_MAP","accesskey","charset","contenteditable","contextmenu","itemprop","tabindex","HELMET_PROPS","HTML_TAG_MAP","SELF_CLOSING_TAGS","HELMET_ATTRIBUTE","classCallCheck","createClass","objectWithoutProperties","possibleConstructorReturn","self","ReferenceError","encodeSpecialCharacters","encode","String","getTitleFromPropsList","propsList","innermostTitle","getInnermostProperty","innermostTemplate","innermostDefaultTitle","getOnChangeClientState","getAttributesFromPropsList","tagType","tagAttrs","getBaseTagFromPropsList","primaryAttributes","reverse","innermostBaseTag","lowerCaseAttributeKey","getTagsFromPropsList","approvedSeenTags","approvedTags","instanceTags","instanceSeenTags","primaryAttributeKey","attributeKey","tagUnion","property","rafPolyfill","Date","now","currentTime","cafPolyfill","clearTimeout","webkitRequestAnimationFrame","mozRequestAnimationFrame","g","webkitCancelAnimationFrame","mozCancelAnimationFrame","msg","_helmetCallback","commitTagChanges","newState","baseTag","bodyAttributes","htmlAttributes","linkTags","metaTags","noscriptTags","onChangeClientState","scriptTags","styleTags","titleAttributes","updateAttributes","updateTitle","tagUpdates","updateTags","addedTags","removedTags","_tagUpdates$tagType","newTags","oldTags","flattenArray","possibleArray","elementTag","getElementsByTagName","helmetAttributeString","helmetAttributes","attributesToRemove","attributeKeys","attribute","indexToSave","splice","tags","headElement","tagNodes","indexToDelete","newElement","styleSheet","cssText","existingTag","isEqualNode","generateElementAttributesAsString","convertElementAttributestoReactProps","initProps","getMethodsForTag","toComponent","_initProps","attributeString","flattenedTitle","generateTitleAsString","_mappedTag","mappedTag","mappedAttribute","generateTagsAsReactComponent","attributeHtml","tagContent","isSelfClosing","generateTagsAsString","mapStateOnServer","_ref$title","base","noscript","script","HelmetSideEffects","defer","HelmetExport","HelmetWrapper","subClass","superClass","create","setPrototypeOf","__proto__","inherits","shouldComponentUpdate","nextProps","mapNestedChildrenToProps","nestedChildren","flattenArrayTypeChildren","_babelHelpers$extends","arrayTypeChildren","newChildProps","mapObjectTypeChildren","_babelHelpers$extends2","_babelHelpers$extends3","newProps","mapArrayTypeChildrenToProps","newFlattenedProps","arrayChildName","_babelHelpers$extends4","warnOnInvalidChildren","mapChildrenToProps","_child$props","initAttributes","convertReactPropstoHtmlAttributes","_props","canUseDOM","defaultTitle","titleTemplate","peek","rewind","mappedState","renderStatic","Container","description","author","siteUrl","Helmet","httpEquiv","lang","GlobalStyle","Header","Footer","hasElementType","Element","hasMap","Map","hasSet","hasArrayBuffer","ArrayBuffer","isView","equal","it","entries","flags","valueOf","$$typeof","message","ex","React__default","reducePropsToState","handleStateChangeOnClient","WrappedComponent","mountedInstances","emitChange","SideEffect","_PureComponent","recordedState","UNSAFE_componentWillMount","componentDidUpdate","componentWillUnmount","PureComponent","getDisplayName","toPropertyKey","hint","prim","toPrimitive","res","Number","arg"],"sourceRoot":""}