{"version":3,"sources":["webpack:///./node_modules/@fortawesome/react-fontawesome/index.es.js","webpack:///./src/components/bio.js","webpack:///./node_modules/gatsby-image/index.js","webpack:///./node_modules/@babel/runtime/helpers/nonIterableSpread.js","webpack:///./node_modules/@babel/runtime/helpers/iterableToArray.js","webpack:///./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","webpack:///./node_modules/@babel/runtime/helpers/toConsumableArray.js","webpack:///./node_modules/@babel/runtime/helpers/arrayLikeToArray.js","webpack:///./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js"],"names":["_typeof","obj","Symbol","iterator","constructor","prototype","_defineProperty","key","value","Object","defineProperty","enumerable","configurable","writable","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","push","apply","_objectSpread2","target","i","arguments","length","source","forEach","getOwnPropertyDescriptors","defineProperties","_objectWithoutProperties","excluded","sourceKeys","indexOf","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","call","_toConsumableArray","arr","Array","isArray","arr2","_arrayWithoutHoles","iter","toString","from","_iterableToArray","TypeError","_nonIterableSpread","camelize","string","replace","match","chr","toUpperCase","substr","toLowerCase","styleToObject","style","split","map","s","trim","reduce","acc","pair","val","prop","slice","startsWith","charAt","PRODUCTION","e","normalizeIconArgs","icon","prefix","iconName","objectWithKey","FontAwesomeIcon","_ref","forwardedRef","props","iconArgs","maskArgs","mask","symbol","className","title","titleId","iconLookup","classes","concat","_classes","spin","pulse","fixedWidth","inverse","border","listItem","flip","size","rotation","pull","swapOpacity","classList","transform","renderedIcon","_console","console","error","log","abstract","extraProps","ref","defaultProps","hasOwnProperty","convertCurry","displayName","propTypes","bool","oneOfType","array","oneOf","convert","createElement","element","undefined","children","child","mixins","attributes","attrs","_extraProps$style","existingStyle","remaining","tag","bind","bioQuery","Container","styled","div","Bio","query","render","data","site","siteMetadata","author","social","fixed","avatar","childImageSharp","alt","marginRight","rhythm","marginBottom","minWidth","borderRadius","imgStyle","faTwitter","href","twitter","_interopRequireDefault","require","exports","__esModule","default","io","_assertThisInitialized2","_inheritsLoose2","_objectWithoutPropertiesLoose2","_extends2","_react","_propTypes","convertProps","convertedProps","resolutions","sizes","critical","fluid","loading","groupByMedia","matchesMedia","media","isBrowser","window","matchMedia","matches","getImageCacheKey","_ref2","srcData","getCurrentSrcData","src","currentData","some","image","hasArtDirectionSupport","foundMedia","findIndex","noMedia","imageCache","create","inImageCache","cacheKey","hasNativeLazyLoadSupport","HTMLImageElement","hasIOSupport","IntersectionObserver","listeners","WeakMap","generateImageSources","imageVariants","_ref3","srcSet","srcSetWebp","Fragment","type","withMedia","without","variant","generateTracedSVGSources","_ref4","tracedSVG","generateBase64Sources","_ref5","base64","generateNoscriptSource","_ref6","isWebp","listenToIntersections","el","cb","observer","entries","entry","has","get","isIntersecting","intersectionRatio","unobserve","delete","rootMargin","observe","set","noscriptImg","width","height","crossOrigin","draggable","join","Placeholder","forwardRef","generateSources","spreadProps","ariaHidden","baseImage","Img","onLoad","onError","otherProps","position","top","left","objectFit","objectPosition","func","Image","_React$Component","_this","this","seenBefore","isCritical","addNoScript","fadeIn","useIOSupport","isVisible","state","imgLoaded","imgCached","isHydrated","imageRef","createRef","placeholderRef","handleImageLoaded","handleRef","_proto","componentDidMount","setState","onStartLoad","wasCached","img","current","complete","componentWillUnmount","cleanUpListeners","_this2","imageInCache","currentSrc","_convertProps","_convertProps$style","_convertProps$imgStyl","_convertProps$placeho","placeholderStyle","placeholderClassName","backgroundColor","durationFadeIn","Tag","itemProp","shouldReveal","shouldFadeIn","imageStyle","opacity","transition","bgColor","delayHideStyle","transitionDelay","imagePlaceholderStyle","placeholderImageProps","overflow","maxWidth","maxHeight","JSON","stringify","paddingBottom","aspectRatio","bottom","right","dangerouslySetInnerHTML","__html","divStyle","display","Component","fixedObject","shape","number","isRequired","srcWebp","fluidObject","requireFixedOrFluid","originalPropTypes","propName","componentName","_PropTypes$checkPropT","Error","checkPropTypes","arrayOf","_default","module","arrayLikeToArray","arrayWithoutHoles","iterableToArray","unsupportedIterableToArray","nonIterableSpread","len","o","minLen","n","name","test"],"mappings":"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","file":"cd7d5f864fc9e15ed8adef086269b0aeff617554-f87a25460d2f6d77879c.js","sourcesContent":["import { parse, icon } from '@fortawesome/fontawesome-svg-core';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _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 ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _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) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n} // Get CSS class list from a props object\n\n\nfunction classList(props) {\n var _classes;\n\n var spin = props.spin,\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-spin': spin,\n 'fa-pulse': pulse,\n 'fa-fw': fixedWidth,\n 'fa-inverse': inverse,\n 'fa-border': border,\n 'fa-li': listItem,\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} // 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\n\n\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\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, [\"style\"]);\n\n mixins.attrs['style'] = _objectSpread2({}, mixins.attrs['style'], {}, existingStyle);\n /* eslint-enable */\n\n return createElement.apply(void 0, [element.tag, _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 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 (_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} // creates an object with a key of key\n// and a value of value\n// if certain conditions are met\n\n\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\nfunction FontAwesomeIcon(_ref) {\n var forwardedRef = _ref.forwardedRef,\n props = _objectWithoutProperties(_ref, [\"forwardedRef\"]);\n\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 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({}, classes, {}, transform, {}, mask, {\n symbol: symbol,\n title: title,\n titleId: titleId\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: forwardedRef\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}\n\nFontAwesomeIcon.displayName = 'FontAwesomeIcon';\nFontAwesomeIcon.propTypes = {\n border: PropTypes.bool,\n className: PropTypes.string,\n mask: PropTypes.oneOfType([PropTypes.object, PropTypes.array, PropTypes.string]),\n fixedWidth: PropTypes.bool,\n inverse: PropTypes.bool,\n flip: PropTypes.oneOf(['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 size: PropTypes.oneOf(['lg', 'xs', 'sm', '1x', '2x', '3x', '4x', '5x', '6x', '7x', '8x', '9x', '10x']),\n spin: PropTypes.bool,\n symbol: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n title: 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 fixedWidth: false,\n inverse: false,\n flip: null,\n icon: null,\n listItem: false,\n pull: null,\n pulse: false,\n rotation: null,\n size: null,\n spin: false,\n symbol: false,\n title: '',\n transform: null,\n swapOpacity: false\n};\nvar convertCurry = convert.bind(null, React.createElement);\nexport { FontAwesomeIcon };","/**\r\n * Bio component that queries for data\r\n * with Gatsby's StaticQuery component\r\n *\r\n * See: https://www.gatsbyjs.org/docs/static-query/\r\n */\r\n\r\nimport React from \"react\"\r\nimport { StaticQuery, graphql } from \"gatsby\"\r\nimport Image from \"gatsby-image\"\r\nimport styled from \"styled-components\"\r\n\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\"\r\nimport {\r\n faTwitter\r\n} from \"@fortawesome/free-solid-svg-icons\"\r\n\r\n\r\nimport { rhythm } from \"../utils/typography\"\r\n\r\nfunction Bio() {\r\n return (\r\n {\r\n const { author, social } = data.site.siteMetadata\r\n return (\r\n \r\n \r\n

\r\n

Gareth Evans
\r\n
Presser of keys, creator of dreams
\r\n {` `}\r\n \r\n \r\n {`@${social.twitter}`}\r\n \r\n

\r\n
\r\n )\r\n }}\r\n />\r\n )\r\n}\r\n\r\nconst bioQuery = graphql`\r\n query BioQuery {\r\n avatar: file(absolutePath: { regex: \"/profile-circle2.png/\" }) {\r\n childImageSharp {\r\n fixed(width: 100, height: 100) {\r\n ...GatsbyImageSharpFixed\r\n }\r\n }\r\n }\r\n site {\r\n siteMetadata {\r\n author\r\n social {\r\n twitter\r\n }\r\n }\r\n }\r\n }\r\n`\r\n\r\nconst Container = styled.div`\r\n display: flex;\r\n`\r\n\r\nexport default Bio\r\n","\"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 _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar logDeprecationNotice = function logDeprecationNotice(prop, replacement) {\n if (process.env.NODE_ENV === \"production\") {\n return;\n }\n\n console.log(\"\\n The \\\"\" + prop + \"\\\" prop is now deprecated and will be removed in the next major version\\n of \\\"gatsby-image\\\".\\n \");\n\n if (replacement) {\n console.log(\"Please use \" + replacement + \" instead of \\\"\" + prop + \"\\\".\");\n }\n}; // Handle legacy props during their deprecation phase\n\n\nvar convertProps = function convertProps(props) {\n var convertedProps = (0, _extends2.default)({}, props);\n var resolutions = convertedProps.resolutions,\n sizes = convertedProps.sizes,\n critical = convertedProps.critical;\n\n if (resolutions) {\n convertedProps.fixed = resolutions;\n logDeprecationNotice(\"resolutions\", \"the gatsby-image v2 prop \\\"fixed\\\"\");\n delete convertedProps.resolutions;\n }\n\n if (sizes) {\n convertedProps.fluid = sizes;\n logDeprecationNotice(\"sizes\", \"the gatsby-image v2 prop \\\"fluid\\\"\");\n delete convertedProps.sizes;\n }\n\n if (critical) {\n logDeprecationNotice(\"critical\", \"the native \\\"loading\\\" attribute\");\n convertedProps.loading = \"eager\";\n } // convert fluid & fixed to arrays so we only have to work with arrays\n\n\n if (convertedProps.fluid) {\n convertedProps.fluid = groupByMedia([].concat(convertedProps.fluid));\n }\n\n if (convertedProps.fixed) {\n convertedProps.fixed = groupByMedia([].concat(convertedProps.fixed));\n }\n\n return convertedProps;\n};\n/**\n * Checks if fluid or fixed are art-direction arrays.\n *\n * @param currentData {{media?: string}[]} The props to check for images.\n * @return {boolean}\n */\n\n\nvar hasArtDirectionSupport = function hasArtDirectionSupport(currentData) {\n return !!currentData && Array.isArray(currentData) && currentData.some(function (image) {\n return typeof image.media !== \"undefined\";\n });\n};\n/**\n * Tries to detect if a media query matches the current viewport.\n * @property media {{media?: string}} A media query string.\n * @return {boolean}\n */\n\n\nvar matchesMedia = function matchesMedia(_ref) {\n var media = _ref.media;\n return media ? isBrowser && !!window.matchMedia(media).matches : false;\n};\n/**\n * Find the source of an image to use as a key in the image cache.\n * Use `the first image in either `fixed` or `fluid`\n * @param {{fluid: {src: string, media?: string}[], fixed: {src: string, media?: string}[]}} args\n * @return {string?} Returns image src or undefined it not given.\n */\n\n\nvar getImageCacheKey = function getImageCacheKey(_ref2) {\n var fluid = _ref2.fluid,\n fixed = _ref2.fixed;\n var srcData = getCurrentSrcData(fluid || fixed || []);\n return srcData && srcData.src;\n};\n/**\n * Returns the current src - Preferably with art-direction support.\n * @param currentData {{media?: string}[], maxWidth?: Number, maxHeight?: Number} The fluid or fixed image array.\n * @return {{src: string, media?: string, maxWidth?: Number, maxHeight?: Number}}\n */\n\n\nvar getCurrentSrcData = function getCurrentSrcData(currentData) {\n if (isBrowser && hasArtDirectionSupport(currentData)) {\n // Do we have an image for the current Viewport?\n var foundMedia = currentData.findIndex(matchesMedia);\n\n if (foundMedia !== -1) {\n return currentData[foundMedia];\n } // No media matches, select first element without a media condition\n\n\n var noMedia = currentData.findIndex(function (image) {\n return typeof image.media === \"undefined\";\n });\n\n if (noMedia !== -1) {\n return currentData[noMedia];\n }\n } // Else return the first image.\n\n\n return currentData[0];\n}; // Cache if we've seen an image before so we don't bother with\n// lazy-loading & fading in on subsequent mounts.\n\n\nvar imageCache = Object.create({});\n\nvar inImageCache = function inImageCache(props) {\n var convertedProps = convertProps(props);\n var cacheKey = getImageCacheKey(convertedProps);\n return imageCache[cacheKey] || false;\n};\n\nvar activateCacheForImage = function activateCacheForImage(props) {\n var convertedProps = convertProps(props);\n var cacheKey = getImageCacheKey(convertedProps);\n\n if (cacheKey) {\n imageCache[cacheKey] = true;\n }\n}; // Native lazy-loading support: https://addyosmani.com/blog/lazy-loading/\n\n\nvar hasNativeLazyLoadSupport = typeof HTMLImageElement !== \"undefined\" && \"loading\" in HTMLImageElement.prototype;\nvar isBrowser = typeof window !== \"undefined\";\nvar hasIOSupport = isBrowser && window.IntersectionObserver;\nvar io;\nvar listeners = new WeakMap();\n\nfunction getIO() {\n if (typeof io === \"undefined\" && typeof window !== \"undefined\" && window.IntersectionObserver) {\n io = new window.IntersectionObserver(function (entries) {\n entries.forEach(function (entry) {\n if (listeners.has(entry.target)) {\n var cb = listeners.get(entry.target); // Edge doesn't currently support isIntersecting, so also test for an intersectionRatio > 0\n\n if (entry.isIntersecting || entry.intersectionRatio > 0) {\n io.unobserve(entry.target);\n listeners.delete(entry.target);\n cb();\n }\n }\n });\n }, {\n rootMargin: \"200px\"\n });\n }\n\n return io;\n}\n\nfunction generateImageSources(imageVariants) {\n return imageVariants.map(function (_ref3) {\n var src = _ref3.src,\n srcSet = _ref3.srcSet,\n srcSetWebp = _ref3.srcSetWebp,\n media = _ref3.media,\n sizes = _ref3.sizes;\n return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, {\n key: src\n }, srcSetWebp && /*#__PURE__*/_react.default.createElement(\"source\", {\n type: \"image/webp\",\n media: media,\n srcSet: srcSetWebp,\n sizes: sizes\n }), srcSet && /*#__PURE__*/_react.default.createElement(\"source\", {\n media: media,\n srcSet: srcSet,\n sizes: sizes\n }));\n });\n} // Return an array ordered by elements having a media prop, does not use\n// native sort, as a stable sort is not guaranteed by all browsers/versions\n\n\nfunction groupByMedia(imageVariants) {\n var withMedia = [];\n var without = [];\n imageVariants.forEach(function (variant) {\n return (variant.media ? withMedia : without).push(variant);\n });\n\n if (without.length > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"We've found \" + without.length + \" sources without a media property. They might be ignored by the browser, see: https://www.gatsbyjs.org/packages/gatsby-image/#art-directing-multiple-images\");\n }\n\n return [].concat(withMedia, without);\n}\n\nfunction generateTracedSVGSources(imageVariants) {\n return imageVariants.map(function (_ref4) {\n var src = _ref4.src,\n media = _ref4.media,\n tracedSVG = _ref4.tracedSVG;\n return /*#__PURE__*/_react.default.createElement(\"source\", {\n key: src,\n media: media,\n srcSet: tracedSVG\n });\n });\n}\n\nfunction generateBase64Sources(imageVariants) {\n return imageVariants.map(function (_ref5) {\n var src = _ref5.src,\n media = _ref5.media,\n base64 = _ref5.base64;\n return /*#__PURE__*/_react.default.createElement(\"source\", {\n key: src,\n media: media,\n srcSet: base64\n });\n });\n}\n\nfunction generateNoscriptSource(_ref6, isWebp) {\n var srcSet = _ref6.srcSet,\n srcSetWebp = _ref6.srcSetWebp,\n media = _ref6.media,\n sizes = _ref6.sizes;\n var src = isWebp ? srcSetWebp : srcSet;\n var mediaAttr = media ? \"media=\\\"\" + media + \"\\\" \" : \"\";\n var typeAttr = isWebp ? \"type='image/webp' \" : \"\";\n var sizesAttr = sizes ? \"sizes=\\\"\" + sizes + \"\\\" \" : \"\";\n return \"\";\n}\n\nfunction generateNoscriptSources(imageVariants) {\n return imageVariants.map(function (variant) {\n return (variant.srcSetWebp ? generateNoscriptSource(variant, true) : \"\") + generateNoscriptSource(variant);\n }).join(\"\");\n}\n\nvar listenToIntersections = function listenToIntersections(el, cb) {\n var observer = getIO();\n\n if (observer) {\n observer.observe(el);\n listeners.set(el, cb);\n }\n\n return function () {\n observer.unobserve(el);\n listeners.delete(el);\n };\n};\n\nvar noscriptImg = function noscriptImg(props) {\n // Check if prop exists before adding each attribute to the string output below to prevent\n // HTML validation issues caused by empty values like width=\"\" and height=\"\"\n var src = props.src ? \"src=\\\"\" + props.src + \"\\\" \" : \"src=\\\"\\\" \"; // required attribute\n\n var sizes = props.sizes ? \"sizes=\\\"\" + props.sizes + \"\\\" \" : \"\";\n var srcSet = props.srcSet ? \"srcset=\\\"\" + props.srcSet + \"\\\" \" : \"\";\n var title = props.title ? \"title=\\\"\" + props.title + \"\\\" \" : \"\";\n var alt = props.alt ? \"alt=\\\"\" + props.alt + \"\\\" \" : \"alt=\\\"\\\" \"; // required attribute\n\n var width = props.width ? \"width=\\\"\" + props.width + \"\\\" \" : \"\";\n var height = props.height ? \"height=\\\"\" + props.height + \"\\\" \" : \"\";\n var crossOrigin = props.crossOrigin ? \"crossorigin=\\\"\" + props.crossOrigin + \"\\\" \" : \"\";\n var loading = props.loading ? \"loading=\\\"\" + props.loading + \"\\\" \" : \"\";\n var draggable = props.draggable ? \"draggable=\\\"\" + props.draggable + \"\\\" \" : \"\";\n var sources = generateNoscriptSources(props.imageVariants);\n return \"\" + sources + \"\";\n}; // Earlier versions of gatsby-image during the 2.x cycle did not wrap\n// the `Img` component in a `picture` element. This maintains compatibility\n// until a breaking change can be introduced in the next major release\n\n\nvar Placeholder = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {\n var src = props.src,\n imageVariants = props.imageVariants,\n generateSources = props.generateSources,\n spreadProps = props.spreadProps,\n ariaHidden = props.ariaHidden;\n\n var baseImage = /*#__PURE__*/_react.default.createElement(Img, (0, _extends2.default)({\n ref: ref,\n src: src\n }, spreadProps, {\n ariaHidden: ariaHidden\n }));\n\n return imageVariants.length > 1 ? /*#__PURE__*/_react.default.createElement(\"picture\", null, generateSources(imageVariants), baseImage) : baseImage;\n});\n\nvar Img = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {\n var sizes = props.sizes,\n srcSet = props.srcSet,\n src = props.src,\n style = props.style,\n onLoad = props.onLoad,\n onError = props.onError,\n loading = props.loading,\n draggable = props.draggable,\n ariaHidden = props.ariaHidden,\n otherProps = (0, _objectWithoutPropertiesLoose2.default)(props, [\"sizes\", \"srcSet\", \"src\", \"style\", \"onLoad\", \"onError\", \"loading\", \"draggable\", \"ariaHidden\"]);\n return /*#__PURE__*/_react.default.createElement(\"img\", (0, _extends2.default)({\n \"aria-hidden\": ariaHidden,\n sizes: sizes,\n srcSet: srcSet,\n src: src\n }, otherProps, {\n onLoad: onLoad,\n onError: onError,\n ref: ref,\n loading: loading,\n draggable: draggable,\n style: (0, _extends2.default)({\n position: \"absolute\",\n top: 0,\n left: 0,\n width: \"100%\",\n height: \"100%\",\n objectFit: \"cover\",\n objectPosition: \"center\"\n }, style)\n }));\n});\n\nImg.propTypes = {\n style: _propTypes.default.object,\n onError: _propTypes.default.func,\n onLoad: _propTypes.default.func\n};\n\nvar Image = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(Image, _React$Component);\n\n function Image(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this; // If this image has already been loaded before then we can assume it's\n // already in the browser cache so it's cheap to just show directly.\n\n _this.seenBefore = isBrowser && inImageCache(props);\n _this.isCritical = props.loading === \"eager\" || props.critical;\n _this.addNoScript = !(_this.isCritical && !props.fadeIn);\n _this.useIOSupport = !hasNativeLazyLoadSupport && hasIOSupport && !_this.isCritical && !_this.seenBefore;\n var isVisible = _this.isCritical || isBrowser && (hasNativeLazyLoadSupport || !_this.useIOSupport);\n _this.state = {\n isVisible: isVisible,\n imgLoaded: false,\n imgCached: false,\n fadeIn: !_this.seenBefore && props.fadeIn,\n isHydrated: false\n };\n _this.imageRef = /*#__PURE__*/_react.default.createRef();\n _this.placeholderRef = props.placeholderRef || /*#__PURE__*/_react.default.createRef();\n _this.handleImageLoaded = _this.handleImageLoaded.bind((0, _assertThisInitialized2.default)(_this));\n _this.handleRef = _this.handleRef.bind((0, _assertThisInitialized2.default)(_this));\n return _this;\n }\n\n var _proto = Image.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.setState({\n isHydrated: isBrowser\n });\n\n if (this.state.isVisible && typeof this.props.onStartLoad === \"function\") {\n this.props.onStartLoad({\n wasCached: inImageCache(this.props)\n });\n }\n\n if (this.isCritical) {\n var img = this.imageRef.current;\n\n if (img && img.complete) {\n this.handleImageLoaded();\n }\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.cleanUpListeners) {\n this.cleanUpListeners();\n }\n } // Specific to IntersectionObserver based lazy-load support\n ;\n\n _proto.handleRef = function handleRef(ref) {\n var _this2 = this;\n\n if (this.useIOSupport && ref) {\n this.cleanUpListeners = listenToIntersections(ref, function () {\n var imageInCache = inImageCache(_this2.props);\n\n if (!_this2.state.isVisible && typeof _this2.props.onStartLoad === \"function\") {\n _this2.props.onStartLoad({\n wasCached: imageInCache\n });\n } // imgCached and imgLoaded must update after isVisible,\n // Once isVisible is true, imageRef becomes accessible, which imgCached needs access to.\n // imgLoaded and imgCached are in a 2nd setState call to be changed together,\n // avoiding initiating unnecessary animation frames from style changes.\n\n\n _this2.setState({\n isVisible: true\n }, function () {\n _this2.setState({\n imgLoaded: imageInCache,\n // `currentSrc` should be a string, but can be `undefined` in IE,\n // !! operator validates the value is not undefined/null/\"\"\n // for lazyloaded components this might be null\n // TODO fix imgCached behaviour as it's now false when it's lazyloaded\n imgCached: !!(_this2.imageRef.current && _this2.imageRef.current.currentSrc)\n });\n });\n });\n }\n };\n\n _proto.handleImageLoaded = function handleImageLoaded() {\n activateCacheForImage(this.props);\n this.setState({\n imgLoaded: true\n });\n\n if (this.props.onLoad) {\n this.props.onLoad();\n }\n };\n\n _proto.render = function render() {\n var _convertProps = convertProps(this.props),\n title = _convertProps.title,\n alt = _convertProps.alt,\n className = _convertProps.className,\n _convertProps$style = _convertProps.style,\n style = _convertProps$style === void 0 ? {} : _convertProps$style,\n _convertProps$imgStyl = _convertProps.imgStyle,\n imgStyle = _convertProps$imgStyl === void 0 ? {} : _convertProps$imgStyl,\n _convertProps$placeho = _convertProps.placeholderStyle,\n placeholderStyle = _convertProps$placeho === void 0 ? {} : _convertProps$placeho,\n placeholderClassName = _convertProps.placeholderClassName,\n fluid = _convertProps.fluid,\n fixed = _convertProps.fixed,\n backgroundColor = _convertProps.backgroundColor,\n durationFadeIn = _convertProps.durationFadeIn,\n Tag = _convertProps.Tag,\n itemProp = _convertProps.itemProp,\n loading = _convertProps.loading,\n draggable = _convertProps.draggable;\n\n var imageVariants = fluid || fixed; // Abort early if missing image data (#25371)\n\n if (!imageVariants) {\n return null;\n }\n\n var shouldReveal = this.state.fadeIn === false || this.state.imgLoaded;\n var shouldFadeIn = this.state.fadeIn === true && !this.state.imgCached;\n var imageStyle = (0, _extends2.default)({\n opacity: shouldReveal ? 1 : 0,\n transition: shouldFadeIn ? \"opacity \" + durationFadeIn + \"ms\" : \"none\"\n }, imgStyle);\n var bgColor = typeof backgroundColor === \"boolean\" ? \"lightgray\" : backgroundColor;\n var delayHideStyle = {\n transitionDelay: durationFadeIn + \"ms\"\n };\n var imagePlaceholderStyle = (0, _extends2.default)({\n opacity: this.state.imgLoaded ? 0 : 1\n }, shouldFadeIn && delayHideStyle, imgStyle, placeholderStyle);\n var placeholderImageProps = {\n title: title,\n alt: !this.state.isVisible ? alt : \"\",\n style: imagePlaceholderStyle,\n className: placeholderClassName,\n itemProp: itemProp\n }; // Initial client render state needs to match SSR until hydration finishes.\n // Once hydration completes, render again to update to the correct image.\n // `imageVariants` is always an Array type at this point due to `convertProps()`\n\n var image = !this.state.isHydrated ? imageVariants[0] : getCurrentSrcData(imageVariants);\n\n if (fluid) {\n return /*#__PURE__*/_react.default.createElement(Tag, {\n className: (className ? className : \"\") + \" gatsby-image-wrapper\",\n style: (0, _extends2.default)({\n position: \"relative\",\n overflow: \"hidden\",\n maxWidth: image.maxWidth ? image.maxWidth + \"px\" : null,\n maxHeight: image.maxHeight ? image.maxHeight + \"px\" : null\n }, style),\n ref: this.handleRef,\n key: \"fluid-\" + JSON.stringify(image.srcSet)\n }, /*#__PURE__*/_react.default.createElement(Tag, {\n \"aria-hidden\": true,\n style: {\n width: \"100%\",\n paddingBottom: 100 / image.aspectRatio + \"%\"\n }\n }), bgColor && /*#__PURE__*/_react.default.createElement(Tag, {\n \"aria-hidden\": true,\n title: title,\n style: (0, _extends2.default)({\n backgroundColor: bgColor,\n position: \"absolute\",\n top: 0,\n bottom: 0,\n opacity: !this.state.imgLoaded ? 1 : 0,\n right: 0,\n left: 0\n }, shouldFadeIn && delayHideStyle)\n }), image.base64 && /*#__PURE__*/_react.default.createElement(Placeholder, {\n ariaHidden: true,\n ref: this.placeholderRef,\n src: image.base64,\n spreadProps: placeholderImageProps,\n imageVariants: imageVariants,\n generateSources: generateBase64Sources\n }), image.tracedSVG && /*#__PURE__*/_react.default.createElement(Placeholder, {\n ariaHidden: true,\n ref: this.placeholderRef,\n src: image.tracedSVG,\n spreadProps: placeholderImageProps,\n imageVariants: imageVariants,\n generateSources: generateTracedSVGSources\n }), this.state.isVisible && /*#__PURE__*/_react.default.createElement(\"picture\", null, generateImageSources(imageVariants), /*#__PURE__*/_react.default.createElement(Img, {\n alt: alt,\n title: title,\n sizes: image.sizes,\n src: image.src,\n crossOrigin: this.props.crossOrigin,\n srcSet: image.srcSet,\n style: imageStyle,\n ref: this.imageRef,\n onLoad: this.handleImageLoaded,\n onError: this.props.onError,\n itemProp: itemProp,\n loading: loading,\n draggable: draggable\n })), this.addNoScript && /*#__PURE__*/_react.default.createElement(\"noscript\", {\n dangerouslySetInnerHTML: {\n __html: noscriptImg((0, _extends2.default)({\n alt: alt,\n title: title,\n loading: loading\n }, image, {\n imageVariants: imageVariants\n }))\n }\n }));\n }\n\n if (fixed) {\n var divStyle = (0, _extends2.default)({\n position: \"relative\",\n overflow: \"hidden\",\n display: \"inline-block\",\n width: image.width,\n height: image.height\n }, style);\n\n if (style.display === \"inherit\") {\n delete divStyle.display;\n }\n\n return /*#__PURE__*/_react.default.createElement(Tag, {\n className: (className ? className : \"\") + \" gatsby-image-wrapper\",\n style: divStyle,\n ref: this.handleRef,\n key: \"fixed-\" + JSON.stringify(image.srcSet)\n }, bgColor && /*#__PURE__*/_react.default.createElement(Tag, {\n \"aria-hidden\": true,\n title: title,\n style: (0, _extends2.default)({\n backgroundColor: bgColor,\n width: image.width,\n opacity: !this.state.imgLoaded ? 1 : 0,\n height: image.height\n }, shouldFadeIn && delayHideStyle)\n }), image.base64 && /*#__PURE__*/_react.default.createElement(Placeholder, {\n ariaHidden: true,\n ref: this.placeholderRef,\n src: image.base64,\n spreadProps: placeholderImageProps,\n imageVariants: imageVariants,\n generateSources: generateBase64Sources\n }), image.tracedSVG && /*#__PURE__*/_react.default.createElement(Placeholder, {\n ariaHidden: true,\n ref: this.placeholderRef,\n src: image.tracedSVG,\n spreadProps: placeholderImageProps,\n imageVariants: imageVariants,\n generateSources: generateTracedSVGSources\n }), this.state.isVisible && /*#__PURE__*/_react.default.createElement(\"picture\", null, generateImageSources(imageVariants), /*#__PURE__*/_react.default.createElement(Img, {\n alt: alt,\n title: title,\n width: image.width,\n height: image.height,\n sizes: image.sizes,\n src: image.src,\n crossOrigin: this.props.crossOrigin,\n srcSet: image.srcSet,\n style: imageStyle,\n ref: this.imageRef,\n onLoad: this.handleImageLoaded,\n onError: this.props.onError,\n itemProp: itemProp,\n loading: loading,\n draggable: draggable\n })), this.addNoScript && /*#__PURE__*/_react.default.createElement(\"noscript\", {\n dangerouslySetInnerHTML: {\n __html: noscriptImg((0, _extends2.default)({\n alt: alt,\n title: title,\n loading: loading\n }, image, {\n imageVariants: imageVariants\n }))\n }\n }));\n }\n\n return null;\n };\n\n return Image;\n}(_react.default.Component);\n\nImage.defaultProps = {\n fadeIn: true,\n durationFadeIn: 500,\n alt: \"\",\n Tag: \"div\",\n // We set it to `lazy` by default because it's best to default to a performant\n // setting and let the user \"opt out\" to `eager`\n loading: \"lazy\"\n};\n\nvar fixedObject = _propTypes.default.shape({\n width: _propTypes.default.number.isRequired,\n height: _propTypes.default.number.isRequired,\n src: _propTypes.default.string.isRequired,\n srcSet: _propTypes.default.string.isRequired,\n base64: _propTypes.default.string,\n tracedSVG: _propTypes.default.string,\n srcWebp: _propTypes.default.string,\n srcSetWebp: _propTypes.default.string,\n media: _propTypes.default.string\n});\n\nvar fluidObject = _propTypes.default.shape({\n aspectRatio: _propTypes.default.number.isRequired,\n src: _propTypes.default.string.isRequired,\n srcSet: _propTypes.default.string.isRequired,\n sizes: _propTypes.default.string.isRequired,\n base64: _propTypes.default.string,\n tracedSVG: _propTypes.default.string,\n srcWebp: _propTypes.default.string,\n srcSetWebp: _propTypes.default.string,\n media: _propTypes.default.string,\n maxWidth: _propTypes.default.number,\n maxHeight: _propTypes.default.number\n});\n\nfunction requireFixedOrFluid(originalPropTypes) {\n return function (props, propName, componentName) {\n var _PropTypes$checkPropT;\n\n if (!props.fixed && !props.fluid) {\n throw new Error(\"The prop `fluid` or `fixed` is marked as required in `\" + componentName + \"`, but their values are both `undefined`.\");\n }\n\n _propTypes.default.checkPropTypes((_PropTypes$checkPropT = {}, _PropTypes$checkPropT[propName] = originalPropTypes, _PropTypes$checkPropT), props, \"prop\", componentName);\n };\n} // If you modify these propTypes, please don't forget to update following files as well:\n// https://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby-image/index.d.ts\n// https://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby-image/README.md#gatsby-image-props\n// https://github.com/gatsbyjs/gatsby/blob/master/docs/docs/gatsby-image.md#gatsby-image-props\n\n\nImage.propTypes = {\n resolutions: fixedObject,\n sizes: fluidObject,\n fixed: requireFixedOrFluid(_propTypes.default.oneOfType([fixedObject, _propTypes.default.arrayOf(fixedObject)])),\n fluid: requireFixedOrFluid(_propTypes.default.oneOfType([fluidObject, _propTypes.default.arrayOf(fluidObject)])),\n fadeIn: _propTypes.default.bool,\n durationFadeIn: _propTypes.default.number,\n title: _propTypes.default.string,\n alt: _propTypes.default.string,\n className: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.object]),\n // Support Glamor's css prop.\n critical: _propTypes.default.bool,\n crossOrigin: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.bool]),\n style: _propTypes.default.object,\n imgStyle: _propTypes.default.object,\n placeholderStyle: _propTypes.default.object,\n placeholderClassName: _propTypes.default.string,\n backgroundColor: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.bool]),\n onLoad: _propTypes.default.func,\n onError: _propTypes.default.func,\n onStartLoad: _propTypes.default.func,\n Tag: _propTypes.default.string,\n itemProp: _propTypes.default.string,\n loading: _propTypes.default.oneOf([\"auto\", \"lazy\", \"eager\"]),\n draggable: _propTypes.default.bool\n};\nvar _default = Image;\nexports.default = _default;","function _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\nmodule.exports = _nonIterableSpread;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\n\nmodule.exports = _arrayWithoutHoles;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var arrayWithoutHoles = require(\"./arrayWithoutHoles.js\");\n\nvar iterableToArray = require(\"./iterableToArray.js\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread.js\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nmodule.exports = _arrayLikeToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\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\nmodule.exports = _unsupportedIterableToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;"],"sourceRoot":""}