{"version":3,"sources":["webpack:///./node_modules/core-js/modules/es6.string.fixed.js","webpack:///./node_modules/react-safe/index.js","webpack:///./node_modules/@babel/runtime/helpers/inherits.js","webpack:///./node_modules/react-side-effect/lib/index.js","webpack:///./node_modules/core-js/modules/_bind.js","webpack:///./node_modules/gatsby-image/index.js","webpack:///./src/components/svg/logo.js","webpack:///./src/components/homepage-logo-link.js","webpack:///./src/components/site-header.js","webpack:///./src/components/cta.js","webpack:///./src/helpers/arrays.js","webpack:///./src/components/site-footer-twitter.js","webpack:///./src/components/site-footer-instagram.js","webpack:///./src/components/download-full-report.js","webpack:///./src/components/site-footer.js","webpack:///./src/components/page-metadata.js","webpack:///./src/hooks/use-site-metadata.js","webpack:///./src/components/layout.js","webpack:///./node_modules/object-fit-images/dist/ofi.common-js.js","webpack:///./node_modules/@babel/runtime/helpers/esm/extends.js","webpack:///./node_modules/use-callback-ref/dist/es2015/useMergeRef.js","webpack:///./node_modules/use-callback-ref/dist/es2015/useRef.js","webpack:///./node_modules/use-callback-ref/dist/es2015/assignRef.js","webpack:///./node_modules/react-focus-lock/dist/es2015/FocusGuard.js","webpack:///./node_modules/tslib/tslib.es6.js","webpack:///./node_modules/use-sidecar/dist/es2015/medium.js","webpack:///./node_modules/react-focus-lock/dist/es2015/medium.js","webpack:///./node_modules/react-focus-lock/dist/es2015/Lock.js","webpack:///./node_modules/focus-lock/dist/es2015/constants.js","webpack:///./node_modules/react-clientside-effect/lib/index.es.js","webpack:///./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack:///./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack:///./node_modules/focus-lock/dist/es2015/utils/array.js","webpack:///./node_modules/focus-lock/dist/es2015/focusIsHidden.js","webpack:///./node_modules/focus-lock/dist/es2015/utils/all-affected.js","webpack:///./node_modules/focus-lock/dist/es2015/focusInside.js","webpack:///./node_modules/focus-lock/dist/es2015/utils/tabOrder.js","webpack:///./node_modules/focus-lock/dist/es2015/utils/tabbables.js","webpack:///./node_modules/focus-lock/dist/es2015/utils/tabUtils.js","webpack:///./node_modules/focus-lock/dist/es2015/utils/DOMutils.js","webpack:///./node_modules/focus-lock/dist/es2015/utils/correctFocus.js","webpack:///./node_modules/focus-lock/dist/es2015/utils/firstFocus.js","webpack:///./node_modules/focus-lock/dist/es2015/focusMerge.js","webpack:///./node_modules/focus-lock/dist/es2015/setFocus.js","webpack:///./node_modules/focus-lock/dist/es2015/index.js","webpack:///./node_modules/react-focus-lock/dist/es2015/util.js","webpack:///./node_modules/react-focus-lock/dist/es2015/Trap.js","webpack:///./node_modules/react-focus-lock/dist/es2015/Combination.js","webpack:///./node_modules/react-focus-lock/dist/es2015/index.js","webpack:///./node_modules/core-js/modules/es6.weak-map.js","webpack:///./node_modules/core-js/modules/es6.reflect.construct.js","webpack:///./node_modules/core-js/modules/es6.array.find-index.js","webpack:///./node_modules/@babel/runtime/helpers/getPrototypeOf.js","webpack:///./node_modules/core-js/modules/_string-html.js","webpack:///./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack:///./src/helpers/strings.js","webpack:///./node_modules/@babel/runtime/helpers/createClass.js","webpack:///./node_modules/core-js/modules/_collection-weak.js","webpack:///./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","webpack:///./node_modules/react-fast-compare/index.js","webpack:///./node_modules/gatsby-image/withIEPolyfill/index.js","webpack:///./node_modules/@babel/runtime/helpers/classCallCheck.js","webpack:///./node_modules/react-helmet/es/Helmet.js","webpack:///./src/components/image.js","webpack:///./node_modules/html-tags/index.js","webpack:///(webpack)/buildin/global.js"],"names":["createHTML","this","_classCallCheck","_createClass","_inherits","_possibleConstructorReturn","_getPrototypeOf","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Date","prototype","toString","call","e","_isNativeReflectConstruct","result","Super","NewTarget","constructor","arguments","apply","Object","defineProperty","exports","value","default","_react","_interopRequireDefault","_htmlTags","obj","__esModule","_default","reduce","tags","tag","_react$default$Compon","Tag","_super","key","props","createElement","assign","keys","obj2","_i","_Object$keys","length","includes","omit","dangerouslySetInnerHTML","__html","children","Component","setPrototypeOf","module","subClass","superClass","TypeError","create","writable","configurable","ex","React","React__default","_defineProperty","enumerable","canUseDOM","window","document","reducePropsToState","handleStateChangeOnClient","mapStateOnServer","Error","WrappedComponent","state","mountedInstances","emitChange","map","instance","SideEffect","_PureComponent","__proto__","peek","rewind","recordedState","undefined","_proto","UNSAFE_componentWillMount","push","componentDidUpdate","componentWillUnmount","index","indexOf","splice","render","PureComponent","displayName","name","getDisplayName","aFunction","isObject","invoke","arraySlice","slice","factories","F","len","args","n","i","Function","join","bind","that","fn","partArgs","bound","concat","require","io","_assertThisInitialized2","_inheritsLoose2","_objectWithoutPropertiesLoose2","_extends2","_propTypes","convertProps","convertedProps","resolutions","sizes","critical","fixed","fluid","loading","groupByMedia","matchesMedia","_ref","media","isBrowser","matchMedia","matches","getImageCacheKey","_ref2","srcData","getCurrentSrcData","src","currentData","Array","isArray","some","image","hasArtDirectionSupport","foundMedia","findIndex","noMedia","imageCache","inImageCache","cacheKey","hasNativeLazyLoadSupport","HTMLImageElement","hasIOSupport","IntersectionObserver","listeners","WeakMap","generateImageSources","imageVariants","_ref3","srcSet","srcSetWebp","Fragment","type","withMedia","without","forEach","variant","generateTracedSVGSources","_ref4","tracedSVG","generateBase64Sources","_ref5","base64","generateNoscriptSource","_ref6","isWebp","listenToIntersections","el","cb","observer","entries","entry","has","target","get","isIntersecting","intersectionRatio","unobserve","delete","rootMargin","observe","set","noscriptImg","title","alt","width","height","crossOrigin","draggable","Placeholder","forwardRef","ref","generateSources","spreadProps","ariaHidden","baseImage","Img","style","onLoad","onError","otherProps","position","top","left","objectFit","objectPosition","propTypes","object","func","Image","_React$Component","_this","seenBefore","isCritical","addNoScript","fadeIn","useIOSupport","isVisible","imgLoaded","imgCached","imageRef","createRef","placeholderRef","handleImageLoaded","handleRef","componentDidMount","onStartLoad","wasCached","img","current","complete","cleanUpListeners","_this2","imageInCache","setState","currentSrc","_convertProps","className","_convertProps$style","_convertProps$imgStyl","imgStyle","_convertProps$placeho","placeholderStyle","placeholderClassName","backgroundColor","durationFadeIn","itemProp","shouldReveal","shouldFadeIn","imageStyle","opacity","transition","bgColor","delayHideStyle","transitionDelay","imagePlaceholderStyle","placeholderImageProps","overflow","maxWidth","maxHeight","JSON","stringify","paddingBottom","aspectRatio","bottom","right","_imageVariants","_image","divStyle","display","defaultProps","fixedObject","shape","number","isRequired","string","srcWebp","fluidObject","requireFixedOrFluid","originalPropTypes","propName","componentName","_PropTypes$checkPropT","checkPropTypes","oneOfType","arrayOf","bool","oneOf","Logo","xmlns","viewBox","fill","d","HomepageLogoLink","passedRef","path","classes","to","aria-current","aria-label","SiteHeader","hash","homepageLogoLink","useRef","mobileNavButton","useState","mobileNavIsActive","setMobileNavIsActive","normalizePath","replace","toggleMobileNav","body","classList","remove","add","isNavItemActive","item","toggleNavItemOnFocus","contains","focusClass","focusedItemParent","closest","handleKeydown","keyCode","useEffect","addEventListener","removeEventListener","menu","itemSlug","slugify","hideDesktop","id","aria-haspopup","aria-controls","href","onFocus","onBlur","child","withPrefix","subchild","disabled","shards","returnFocus","noFocusGuards","aria-hidden","tabIndex","onClick","aria-owns","CTA","text","targetBlank","getRandom","array","Math","floor","random","shuffle","j","SiteFooterTwitter","tweets","tweetData","filter","tweet","account","rel","date","content","url","SiteFooterInstagram","pagePosts","instagramData","paths","otherPosts","posts","post","image_path","DownloadFullReport","downloads","find","downloadLink","reports","SiteFooter","pathArray","split","lastPathSegment","pop","script","PageMetadata","template","twitterCard","timeToRead","site","siteMetadata","siteUrl","description","pageTitle","pageFeaturedImagePath","featured_image","data","pageFeaturedImage","images","edges","node","relativePath","childImageSharp","Helmet","lang","property","getPage","pathname","base","lastSegment","Layout","event","handleClick","location","OFI","propRegex","testImg","supportsObjectFit","supportsObjectPosition","supportsOFI","supportsCurrentSrc","nativeGetAttribute","getAttribute","nativeSetAttribute","setAttribute","autoModeEnabled","setPlaceholder","placeholder","onImageReady","callback","naturalWidth","setTimeout","fixOne","parsed","getComputedStyle","fontFamily","exec","getStyle","ofi","skipTest","srcset","naturalHeight","descriptors","prop","ss","keepSrcUsable","err","console","warn","picturefill","pf","_","ns","evaled","fillImg","reselect","curSrc","supported","polyfillCurrentSrc","backgroundImage","backgroundPosition","backgroundRepeat","backgroundOrigin","test","backgroundSize","fix","imgs","opts","startAutoMode","getElementsByTagName","querySelectorAll","tagName","watchMQ","getOfiImageMaybe","String","hijackAttributes","_extends","source","hasOwnProperty","useMergeRefs","refs","defaultValue","initialValue","newValue","assignRef","facade","last","hiddenGuard","padding","_assign","t","s","p","ItoI","a","innerCreateMedium","defaults","middleware","buffer","assigned","read","useMedium","x","assignSyncMedium","cbs","assignMedium","pendingQueue","executeQueue","cycle","Promise","resolve","then","_filter","createMedium","mediumFocus","currentTarget","mediumBlur","mediumEffect","mediumSidecar","options","medium","async","ssr","createSidecarMedium","emptyArray","FocusLock","parentRef","_React$useState","realObserved","setObserved","observed","isActive","originalFocusedElement","persistentFocus","crossFrame","autoFocus","group","allowTextSelection","whiteList","_props$shards","_props$as","as","Container","_props$lockProps","lockProps","containerProps","SideCar","sideCar","shouldReturnFocus","onActivationCallback","onActivation","onDeactivationCallback","onDeactivation","activeElement","allowDefer","Boolean","focus","focusOptions","setObserveNode","newObserved","hasLeadingGuards","hasTailingGuards","mergedRef","toArray","ret","asArray","_typeof","Symbol","iterator","acc","currentNode","filterNested","nodes","l","_loop","v","_ret","getTopParent","parentNode","focusInFrame","frame","topNode","dataset","focusGuard","search","tabSort","b","tabDiff","indexDiff","filterNegative","keepGuards","sort","queryTabbables","tabbables","queryGuardTabbables","parents","withGuards","parent","getParents","getCommonParent","nodea","nodeb","parentsA","parentsB","currentParent","nodeType","Node","DOCUMENT_NODE","computedStyle","getPropertyValue","DOCUMENT_FRAGMENT_NODE","host","notHiddenInput","topNodes","parentFocus","isRadio","correctNode","checked","findSelectedRadio","isGuard","notAGuard","innerNodes","outerNodes","lastNode","cnt","firstFocus","lastFocus","isOnGuard","resultSet","activeIndex","lastIndex","lastNodeInside","firstNodeIndex","lastNodeIndex","correctedNodes","Set","correctedIndexDiff","returnFirstNode","returnLastNode","abs","baseActiveElement","leftEntry","rightEntries","activeElements","leftEntries","topCommon","subEntry","common","commonParent","anyFocusable","innerElements","srcNodes","dstNodes","remap","autoFocusables","orderedInnerElements","Map","entity","newId","autoFocusable","_ref7","autofocus","guardCount","lockDisabled","focusable","error","contentWindow","deferAction","action","setImmediate","lastActiveTrap","lastActiveFocus","lastPortaledElement","focusWasOutsideWindow","defaultWhitelist","autoGuard","startIndex","end","step","allNodes","lastGuard","guard","focusAutoGuard","lockItem","extractRef","element","_lastActiveTrap","workingNode","portaledElement","workingArea","focusWhitelisted","blur","newActiveElement","focusedIndex","removeAttribute","onTrap","stopPropagation","preventDefault","observerNode","onWindowBlur","moveFocusInside","focusInside","propsList","traps","trap","lastTrap","sameTrap","FocusLockCombination","InternalMap","global","each","redefine","meta","weak","validate","NATIVE_WEAK_MAP","IS_IE11","ActiveXObject","getWeak","isExtensible","uncaughtFrozenStore","ufstore","wrapper","methods","def","$WeakMap","getConstructor","NEED","proto","method","_f","$export","anObject","fails","rConstruct","NEW_TARGET_BUG","ARGS_BUG","S","Target","newTarget","$args","$find","KEY","forced","P","callbackfn","o","getPrototypeOf","defined","quot","attribute","p1","NAME","O","toLowerCase","_setPrototypeOf","RegExp","c","charAt","capitalizeFirstLetter","toUpperCase","_defineProperties","descriptor","Constructor","protoProps","staticProps","redefineAll","anInstance","forOf","createArrayMethod","$has","arrayFind","arrayFindIndex","_l","UncaughtFrozenStore","findUncaughtFrozen","store","it","IS_MAP","ADDER","C","iterable","_t","assertThisInitialized","self","hasElementType","Element","hasMap","hasSet","hasArrayBuffer","ArrayBuffer","isView","equal","size","next","done","flags","valueOf","$$typeof","message","match","_interopRequireWildcard3","_interopRequireWildcard2","_index","ImageWithIEPolyfill","_Component","_len","_key","innerRef","ObjectFitImages","_this$props","polyfillStyle","clock","_class","_temp","ATTRIBUTE_NAMES","TAG_NAMES","BASE","BODY","HEAD","HTML","LINK","META","NOSCRIPT","SCRIPT","STYLE","TITLE","TAG_PROPERTIES","REACT_TAG_MAP","accesskey","charset","class","contenteditable","contextmenu","itemprop","tabindex","HELMET_PROPS","HTML_TAG_MAP","SELF_CLOSING_TAGS","classCallCheck","createClass","defineProperties","objectWithoutProperties","possibleConstructorReturn","ReferenceError","encodeSpecialCharacters","str","encode","getTitleFromPropsList","innermostTitle","getInnermostProperty","innermostTemplate","innermostDefaultTitle","getOnChangeClientState","getAttributesFromPropsList","tagType","tagAttrs","getBaseTagFromPropsList","primaryAttributes","reverse","innermostBaseTag","lowerCaseAttributeKey","getTagsFromPropsList","approvedSeenTags","approvedTags","instanceTags","instanceSeenTags","primaryAttributeKey","attributeKey","tagUnion","rafPolyfill","now","currentTime","cafPolyfill","clearTimeout","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","cancelAnimationFrame","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","attributes","elementTag","helmetAttributeString","helmetAttributes","attributesToRemove","attributeKeys","indexToSave","headElement","head","querySelector","tagNodes","indexToDelete","newElement","innerHTML","styleSheet","cssText","appendChild","createTextNode","existingTag","isEqualNode","removeChild","generateElementAttributesAsString","attr","convertElementAttributestoReactProps","initProps","getMethodsForTag","toComponent","_initProps","attributeString","flattenedTitle","generateTitleAsString","_mappedTag","mappedTag","mappedAttribute","generateTagsAsReactComponent","attributeHtml","tagContent","isSelfClosing","generateTagsAsString","_ref$title","link","noscript","HelmetSideEffects","defer","HelmetExport","HelmetWrapper","inherits","shouldComponentUpdate","nextProps","mapNestedChildrenToProps","nestedChildren","flattenArrayTypeChildren","_babelHelpers$extends","arrayTypeChildren","newChildProps","mapObjectTypeChildren","_babelHelpers$extends2","_babelHelpers$extends3","newProps","mapArrayTypeChildrenToProps","newFlattenedProps","arrayChildName","_babelHelpers$extends4","warnOnInvalidChildren","mapChildrenToProps","Children","_child$props","initAttributes","convertReactPropstoHtmlAttributes","_props","defaultTitle","titleTemplate","mappedState","renderStatic","caption","g"],"mappings":"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","file":"commons-274c75e55076b91a35e3.js","sourcesContent":["'use strict';\n// B.2.3.6 String.prototype.fixed()\nrequire('./_string-html')('fixed', function (createHTML) {\n return function fixed() {\n return createHTML(this, 'tt', '', '');\n };\n});\n","\"use strict\";\n\nrequire(\"core-js/modules/es6.regexp.to-string\");\n\nrequire(\"core-js/modules/es6.reflect.construct\");\n\nrequire(\"core-js/modules/es6.object.assign\");\n\nvar _classCallCheck = require(\"/home/forge/imf-2020.cantilever.co/node_modules/@babel/runtime/helpers/classCallCheck\");\n\nvar _createClass = require(\"/home/forge/imf-2020.cantilever.co/node_modules/@babel/runtime/helpers/createClass\");\n\nvar _inherits = require(\"/home/forge/imf-2020.cantilever.co/node_modules/@babel/runtime/helpers/inherits\");\n\nvar _possibleConstructorReturn = require(\"/home/forge/imf-2020.cantilever.co/node_modules/@babel/runtime/helpers/possibleConstructorReturn\");\n\nvar _getPrototypeOf = require(\"/home/forge/imf-2020.cantilever.co/node_modules/@babel/runtime/helpers/getPrototypeOf\");\n\nrequire(\"core-js/modules/es7.array.includes\");\n\nrequire(\"core-js/modules/es6.string.includes\");\n\nrequire(\"core-js/modules/web.dom.iterable\");\n\nrequire(\"core-js/modules/es6.array.iterator\");\n\nrequire(\"core-js/modules/es6.object.to-string\");\n\nrequire(\"core-js/modules/es6.object.keys\");\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _htmlTags = _interopRequireDefault(require(\"html-tags\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nvar omit = function omit(keys, obj) {\n var obj2 = {};\n\n for (var _i = 0, _Object$keys = Object.keys(obj); _i < _Object$keys.length; _i++) {\n var key = _Object$keys[_i];\n\n if (!keys.includes(key)) {\n obj2[key] = obj[key];\n }\n }\n\n return obj2;\n};\n\nvar Safe = _htmlTags.default.reduce(function (tags, tag) {\n tags[tag] = /*#__PURE__*/function (_react$default$Compon) {\n _inherits(Tag, _react$default$Compon);\n\n var _super = _createSuper(Tag);\n\n function Tag() {\n _classCallCheck(this, Tag);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Tag, [{\n key: \"render\",\n value: function render() {\n var props = this.props;\n return _react.default.createElement(tag, Object.assign(omit([\"children\"], props), {\n dangerouslySetInnerHTML: {\n __html: props.children\n }\n }));\n }\n }]);\n\n return Tag;\n }(_react.default.Component);\n\n return tags;\n}, {});\n\nvar _default = Safe;\nexports.default = _default;","var setPrototypeOf = require(\"./setPrototypeOf\");\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 if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;","'use strict';\n\nrequire(\"core-js/modules/es6.function.name\");\n\nfunction _interopDefault(ex) {\n return ex && typeof ex === 'object' && 'default' in ex ? ex['default'] : ex;\n}\n\nvar React = require('react');\n\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);\n\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 = /*#__PURE__*/function (_PureComponent) {\n _inheritsLoose(SideEffect, _PureComponent);\n\n function SideEffect() {\n return _PureComponent.apply(this, arguments) || this;\n } // Try to use displayName of wrapped component\n // Expose canUseDOM so tests can monkeypatch it\n\n\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;","'use strict';\nvar aFunction = require('./_a-function');\nvar isObject = require('./_is-object');\nvar invoke = require('./_invoke');\nvar arraySlice = [].slice;\nvar factories = {};\n\nvar construct = function (F, len, args) {\n if (!(len in factories)) {\n for (var n = [], i = 0; i < len; i++) n[i] = 'a[' + i + ']';\n // eslint-disable-next-line no-new-func\n factories[len] = Function('F,a', 'return new F(' + n.join(',') + ')');\n } return factories[len](F, args);\n};\n\nmodule.exports = Function.bind || function bind(that /* , ...args */) {\n var fn = aFunction(this);\n var partArgs = arraySlice.call(arguments, 1);\n var bound = function (/* args... */) {\n var args = partArgs.concat(arraySlice.call(arguments));\n return this instanceof bound ? construct(fn, args.length, args) : invoke(fn, args, that);\n };\n if (isObject(fn.prototype)) bound.prototype = fn.prototype;\n return bound;\n};\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 delete convertedProps.resolutions;\n }\n\n if (sizes) {\n convertedProps.fluid = sizes;\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 }), /*#__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 \"<source \" + typeAttr + mediaAttr + \"srcset=\\\"\" + src + \"\\\" \" + sizesAttr + \"/>\";\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 \"<picture>\" + sources + \"<img \" + loading + width + height + sizes + srcSet + src + alt + title + crossOrigin + draggable + \"style=\\\"position:absolute;top:0;left:0;opacity:1;width:100%;height:100%;object-fit:cover;object-position:center\\\"/></picture>\";\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 };\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 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 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 };\n\n if (fluid) {\n var imageVariants = fluid;\n var image = getCurrentSrcData(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 _imageVariants = fixed;\n\n var _image = getCurrentSrcData(fixed);\n\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;","import React from \"react\"\n\nexport default function Logo() {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 47 47\"\n height=\"47\"\n width=\"47\"\n >\n <g fill=\"currentColor\">\n <path d=\"M5.4 31.1l.2-.1-.5-1.9c-.8-.1-1.5-.1-2.2-.2.6-.5 1.3-1 1.8-1.5l-.5-1.8-.2.2c.1.4.1.4-.2.5l-1.3.4c-.4 0-1.2.3-1.4.3s-.3-.1-.3-.2l-.1-.2-.2.1.4 1.5.1-.2v-.2c-.1-.2.1-.3.2-.4.5-.2.9-.3 1.4-.4l.8-.2v.1L1 28.6l.2.6 3 .2v.1l-2.3.5c-.3.1-.3.1-.4-.3l-.2.1.6 2.2H2c-.1-.4-.1-.4.2-.5l2.7-.7c.3 0 .3 0 .5.3M6 35.9c1-.6 1.4-1.6.6-3-.8-1.4-1.8-1.6-2.9-1s-1.4 1.6-.6 3c.7 1.4 1.9 1.6 2.9 1m-2.7-1.2c-.2-.4.1-.8 1.2-1.5 1.3-.7 1.7-.6 1.9-.3.3.6-.5 1-1.2 1.5-1.1.7-1.6.8-1.9.3M15.2 44.6l1.2-2.8.2.1c.4.2.4.2.3 1.2l.3.1.5-1-3.7-1.7-.5 1 .3.1c.6-.7.7-.7 1-.5l.2.1-1.2 2.8c-.1.3-.2.3-.7.1l-.1.1 2.5 1.1.1-.2c-.4-.2-.5-.3-.4-.5M20.7 46.1c-.3-1.2-.6-2.4-.7-3.6l-1.3-.3c-.7 1-1.4 2-2.2 2.9-.2.2-.2.2-.6.1l-.1.2 1.6.4.1-.2H17c-.2-.1-.2-.1-.1-.3.1-.2.3-.5.5-.7l1.3.3c.1.3.1.6.1.9 0 .3 0 .2-.2.2l-.4-.1-.1.2 2.9.7.1-.2c-.3-.2-.3-.2-.4-.5m-3.2-1.8c.2-.4.6-.9.8-1.2h.1c.1.5.2 1.1.3 1.5l-1.2-.3zM30.7 42.2c.1-.2.2-.3.5-.4l-.1-.2-1.5.4.1.2.4-.1c.2 0 .2.1.2.2s-.2 1-.3 1.6c-.4-.4-1-1-1.3-1.2-.1-.1-.1-.2 0-.2l.4-.1-.1-.1-2.9.7.1.2c.3-.1.4-.1.5.1.3.3 1.2 1 1.6 1.5.1.1.1.2.2.3l.2.8c.1.3.1.3-.5.5l.1.2 2.9-.7-.1-.2c-.6.1-.6.1-.7-.2l-.2-.8c-.1-.1-.1-.2 0-.3.1-.9.4-1.9.5-2.2M36.6 42.2l-.7-.9.3-.2c.3-.2.4-.2.8.2l.2-.2-.8-1.2-.2.1c.1.6.1.6-.2.8l-.2.2-.8-1.2c-.1-.1-.1-.2.1-.3l.2-.1c.5-.3.7-.1 1.3.2l.2-.2-.6-.9-3 2 .1.2c.3-.2.4-.2.5.1l1.6 2.2c.2.2.2.3-.2.5l.1.2 2-1.4-.1-.2c-.4.3-.4.3-.6.1M40.9 37l-1.4-1.3c-.2-.2-.2-.3 0-.5l-.1-.1-1.4 1.5.1.1c.2-.3.3-.2.5-.1l1.6 1.5c.5.5.6.7.4 1-.2.3-.5.2-1-.3L38 37.3c-.2-.2-.2-.3 0-.5l-.1-.1-1.4 1.5.1.1c.3-.3.3-.3.5-.1l1.4 1.4c.7.6 1.3.7 2.2-.4 1-1 1-1.6.2-2.2M44.8 26.8c-.5-.2-1-.2-1.5.2s-.8.9-.8 1.6l-.6 2.4.2.1c.1-.4.2-.4.4-.3l2.7.7c.3.1.3.1.2.5l.2.1.5-2c.2-.5.2-1.1.2-1.7-.3-.9-.8-1.4-1.5-1.6m1 2.8c-.1.2-.2.3-.3.2l-2.8-.8c-.1-.1-.1-.1-.1-.3.2-.6.7-.7 1.8-.4 1.4.4 1.6 1 1.4 1.3M1.5 18.6l2.6.7c.3.1.3.1.2.5l.2.1.6-2.2-.2-.1c-.1.4-.2.4-.4.3l-2.7-.7c-.3-.1-.3-.1-.2-.5l-.2-.1-.6 2.2.2.1c.2-.4.2-.4.5-.3M5.3 11.2c-.5-.8-.5-.8-.3-1.2l.1-.2 2.4 1.8c.2.2.2.3-.1.6l.2.1 1-1.3v-.6l-.1-.1-2.4-1.6.1-.2c.3-.3.3-.3 1.2-.1l.2-.2-1-.6-2.5 3.1.9.7.3-.2zM23.4 3.8H23c-.2 0-.2-.1-.2-.2.1-.1.2-.5.3-.8l1.3.1c.1.3.2.6.3.8.1.2.1.2-.1.3l-.3.1v.2H27v-.2c-.4-.1-.4-.1-.5-.4-.5-1.1-.9-2.2-1.3-3.3L23.9.3c-.4 1.1-.9 2.2-1.5 3.3-.1.2-.2.2-.5.3v.2l1.6.1-.1-.4zm.3-2.7c.2.4.4 1 .5 1.4l-1-.1c.2-.3.4-.9.5-1.3M28.5 1l.2.1L28 4c-.1.3-.2.3-.6.2l-.1.2 2.6.6.1-.2c-.5-.1-.6-.2-.5-.5l.7-2.9.2.1c.4.1.4.2.5 1l.3.1.3-1.1-3.9-1-.3 1.1.3.1c.5-.8.5-.8.9-.7M32.7 5.6l1.2-2.5c0-.2.1-.2.4-.1l.1-.2-2.1-1-.1.2c.4.2.4.2.2.5L31.2 5c-.1.3-.2.3-.5.1l-.1.2 2.1 1 .1-.2c-.3-.2-.3-.2-.1-.5M34 4.6c-.7 1-.5 2 .9 3s2.5.8 3.2-.2.5-2-.9-3c-1.4-.9-2.5-.8-3.2.2m1.4 1c.8-1.2 1.3-1.3 1.6-1 .6.4.1 1.2-.4 1.9-.7 1-1.2 1.3-1.6 1s-.3-.8.4-1.9M40.5 12.6c-.2 0-.3-.1-.5-.4l-.2.1.7 1.4.2-.1-.2-.4c-.1-.2 0-.2.1-.3.1-.1.5-.1.9-.2l.6 1.1c-.2.2-.4.5-.6.6-.2.2-.2.2-.3 0l-.2-.3-.2.1 1.3 2.5.2-.1c-.2-.4-.1-.4 0-.6.7-.9 1.5-1.9 2.3-2.8l-.6-1.1c-1.1.4-2.3.5-3.5.5m2.7 0c-.3.4-.7.8-1 1.1l-.5-.9c.5-.1 1.1-.2 1.5-.2M45.9 16.4l-.2.1c.1.4.1.4-.2.5l-2.7.6c-.3.1-.3.1-.4-.3l-.2.1.8 3.5 1.2-.2-.1-.3c-.9-.2-1.1-.4-1.2-.7s-.1-.5.2-.5l2.6-.6c.3-.1.3 0 .4.4l.2-.1-.4-2.5zM13.2 41.1l.6-.8-2.9-2.1-.1.2c.3.2.3.3.1.5l-1.6 2.2c-.2.2-.2.2-.5 0l-.2.2 3 2.2.6-.8-.2-.2c-.8.3-.9.2-1.3-.1s-.4-.3-.2-.6l.7-1c.3.3.4.3.3.7l.2.2.6-.8-.2-.2c-.3.2-.4.1-.7-.1l.8-1c.1-.2.1-.2.3-.1l.2.2c.4.3.4.4.4 1.2l.1.2zM12.5 7.4l-.5-.7-.2.2c.1.8 0 .9-.4 1.3-.4.2-.4.2-.6-.1l-.8-.9c.3-.3.4-.3.7-.2l.3-.1-.6-.7-.2.2c.1.3 0 .4-.3.7L9 6c-.1-.1-.1-.2 0-.3l.2-.2c.4-.4.5-.4 1.2-.1l.2-.2-.6-.6-2.7 2.3.1.2c.3-.3.4-.2.5 0L9.5 9h1.2l1.8-1.6zM11.8 4.1l1.3 2.5c.1.3.1.3-.3.5l.1.2L15.2 6l-.1-.2c-.4.2-.4.2-.5-.1l-.5-1 .1-.1c.2-.1.6-.3.7-.1.2.4.4.7.6 1 .3.3.4.1 1.1-.2l.8-.4-.1-.2c-.3.1-.4.1-.9-.4-.3-.3-.5-.6-1.5-.3.9-.5.9-.9.7-1.4-.4-.7-1-.5-1.8-.1l-2.6 1.3.1.2c.4-.2.4-.2.5.1m1.6-1.2c.3-.2.7-.2.9.2.1.1.1.1.1.2.2.4.2.7-.5 1l-.1.1-.6-1.1c0-.2 0-.3.2-.4M25.9 45.7c-.1-.4-.2-.8-1.2-1v-.1c1-.1 1.2-.4 1.2-.9 0-.8-.7-.9-1.6-.9h-2.9v.2c.4 0 .5.1.5.4v2.7c0 .3-.1.3-.5.3v.2H24v-.2c-.4 0-.5-.1-.5-.3v-1.2h.1c.2 0 .6 0 .7.2 0 .4 0 .8.1 1.2.2.4.3.3 1 .3h.9v-.2c-.2 0-.3 0-.4-.7m-2.2-1.1h-.1v-1.3c0-.2.1-.2.3-.2.4-.1.7.2.8.6v.2c-.1.4-.3.7-1 .7M17.6 1.5l.3 1.3c0 .5.1 1.2.1 1.4 0 .3-.2.3-.4.4l-.1.1.1.2 1.8-.4v-.2l-.4.1c-.2.1-.3-.1-.3-.2-.1-.2-.2-.9-.3-1.4l-.2-.9c.9.8 1.6 1.6 2.4 2.5l1.2-.2-.6-2.2c-.1-.4-.2-.8-.2-1.2 0-.3.2-.3.4-.4l.2-.1-.1-.2-1.7.3.1.2.4-.1c.2-.1.3.1.3.2v.1l.3 1.2.1.6c-.7-.6-1.5-1.3-2.1-1.9L17 1l.1.2c.4 0 .4 0 .5.3M37.2 8.9l-.1-.1-.2.1.1.1h.3c-.1 0-.1-.1-.1-.1M39.8 7.2l-1 .9c-.4.3-.8.7-1 .9h.7l.6-.6.7-.7c-.3 1.2-.6 2.1-.9 3.3l.8.9 1.6-1.4c.3-.3.6-.5.9-.7.3-.2.4.1.5.2l.1.1.2-.1-1.2-1.3-.2.1.2.3c.1.1.1.3 0 .4-.3.3-.5.6-.8.8l-.5.4c.2-.9.4-1.9.6-2.8l-1.2-1.4-.1.2c.2.3.2.3 0 .5\" />\n <path d=\"M41.9 31.7c-.2-.2-.1-.4 0-.5l.1-.2-.2-.1-.9 1.6.2.1.2-.3c.1-.1.2-.2.3-.1.4.2.7.3 1 .5l.5.3c-.9.2-2 .3-2.8.4l-.9 1.6.2.1c.2-.3.3-.3.5-.2l1.2.7c.4.3 1 .6 1.2.7.2.1.1.4.1.5l-.1.2.2.1.9-1.6-.2-.1-.2.3c-.1.2-.3.2-.4.1-.2-.1-.8-.4-1.3-.6l-.8-.5c1.2-.2 2.2-.1 3.5-.3l.6-1-1.9-1c-.3-.3-.7-.5-1-.7M10 38c.3-.2.4.1.5.2l.1.1.1-.1-1.2-1.3-.1.1.3.3c.1.1.1.3 0 .4-.3.3-.5.6-.8.8l-.5.4c.2-.9.4-1.9.5-2.8l-1.3-1.4-.1.1c.3.3.3.3.1.5l-1 .9c-.4.3-.9.8-1 .9-.2.2-.4-.1-.5-.2l-.3.1-.2.1 1.3 1.3.2-.1-.3-.3c-.1-.1-.1-.3 0-.4.1-.2.6-.6 1-1l.7-.6c-.3 1.2-.6 2.2-.8 3.3l.8.8 1.6-1.5c.3-.1.6-.4.9-.6M2.7 15.2l1.3.6 1.2.6c.2.1.1.4.1.5l-.1.1.2.1.7-1.6-.2-.1-.2.3c-.1.2-.2.2-.4.2-.2-.1-.8-.3-1.3-.5l-.9-.4c1.2-.3 2.2-.3 3.4-.6l.5-1.1-1.9-.8c-.4-.2-.7-.3-1-.5-.2-.2-.1-.4-.1-.6l.1-.2-.2-.1-.7 1.6.2.1.2-.3c.1-.2.2-.2.3-.2.4.1.7.3 1.1.4l.6.3c-.9.2-1.9.4-2.7.6L2 15.3l.2.1c.2-.3.2-.4.5-.2\" />\n <path d=\"M38.7 14.3v-3.5-1.7h-4.8c-6.1-4.3-14.3-4.3-20.3 0H8.7v5.1c-5.1 8.3-2.6 19.1 5.7 24.2s19.1 2.6 24.2-5.8c3.5-5.5 3.5-12.6.1-18.3m-.4 6.5c.6 4.8-2.9 9.2-7.7 9.8-2.1.3-4.2-.3-6-1.5-.2-.1-.4-.3-.5-.4l-.2-.2c3.7-3.2 4.1-8.9.8-12.6l-.8-.8.1-.1.3-.2c3.9-3 9.4-2.2 12.3 1.6.9 1.3 1.5 2.8 1.7 4.4m-10.1 14H28c-.1 0-.2.1-.2.1s-.2-.1-.3-.1l-.2.1-.5.1h-1.3c-.2 0-.4.1-.5-.1.2-.1.3-.1.5-.2.2 0 .4-.1.5-.1.4-.1.7-.2 1-.4.3-.2.7-.3 1-.4h1.2c.4-.1.7-.2 1.1-.3.2-.1.4-.1.6-.2h.3c.1 0 .1 0 .2.1.1 0 .2.2.1.2-.1.1-.1.1-.2.1h-.2c-.1 0-.1.1-.2.1l-.5.4c-.2.2-.5.4-.7.6-.2.1-.3.2-.4.3-.2.1-.3.2-.5.3-.4.1-.7.2-1.1.3-.4.1-.7.1-1 0-.3-.1-.5-.1-.7-.2-.3-.1-.6-.2-.8-.3-.3-.1-.5-.3-.8-.4.3.1.7.1 1 .1h1.2c.2 0 .3 0 .5-.1.2 0 .4-.1.5-.1.4-.1.7-.2 1-.4-.1.4-.2.5-.4.5m-4.5-6.5c-3.6 3.2-9.1 2.8-12.3-.8s-2.8-9.1.8-12.3 9.1-2.8 12.3.8c1.4 1.6 2.1 3.6 2.1 5.8 0 2.5-1.1 4.8-2.9 6.5m0-21.9c3.3 0 6.6.9 9.4 2.8H14.3c2.8-1.9 6-2.8 9.4-2.8M6.5 23.5c0-2.9.7-5.8 2.1-8.3v10.6c0 1.2.2 2.4.5 3.5.6 2.2 1.8 4.2 3.5 5.8 1.5 1.4 3.2 2.6 5 3.6 1.4.7 2.8 1.3 4.3 1.8l.9.3c-9-.6-16.3-8.2-16.3-17.3m16.2 13.1c-.2-.1-.3-.3-.5-.5l-.3-.3c-.1-.1-.2-.2-.4-.2h-.4c-.1 0-.1-.1-.1-.1-.1-.1-.1-.1-.2-.1l-.2-.1c-.1-.1-.1-.1-.2 0l.4.4c.1.1 0 .2.1.2h.4c.4.1.6.5.8.8.1.2.1.4.1.6v.3c-.1.1-.1.2-.1.3 0 .1-.1.2-.1.2l-.3.1c-.2 0-.4 0-.5-.1-.2-.1-.4-.2-.5-.3-.1-.1-.2-.1-.2-.2l-.2-.4c-.1-.1-.1-.2-.1-.3v-.3l.3-.6c.1.1.1.2.1.3.1.1.2.2.3.1.1-.1-.1-.2-.1-.3-.1-.1-.1-.1-.1-.2s0-.1-.1-.2l-.3-.3-.2-.2s-.1-.3-.2-.2c-.1.2 0 .2.1.3-.2 0-.4-.1-.6-.1-.2-.1-.4-.1-.5-.2-.3-.1-.6-.3-.9-.4-.4-.2-.7-.3-1.1-.4-.1 0-.2-.1-.2-.1-.1 0-.3-.1-.3 0-.1.1-.2.1-.3.1-.1 0-.2-.1-.3-.1-.3-.2-.3-.6-.5-.9-.2-.3-.5-.6-.8-.7-.1-.1-.4-.2-.4-.3 0-.1-.1-.2.1-.2s.2 0 .3.1c.1.1.3.1.4.1l.5.3.9.6c.3.2.6.4.9.5.3.2.6.3.9.4.2 0 .4.1.5.2.1.1.2.1.2 0 .1-.1.1-.2.2-.2 0-.1.1-.1.1-.1l.1.1c-.1-.1-.1-.2-.1-.3.1-.1.1-.2.2-.3.1-.1.1-.2.2-.2.1-.1.2-.2.4-.3.2-.1.4-.1.5-.1.2-.1.4-.1.5 0 .1.1.1.2.2.2h.3c.1.1.2.3.1.5s-.2.4-.3.5c-.1.1-.1.2-.2.2-.1.1-.2.1-.3.2-.2.1-.4.2-.6.2-.1 0-.2 0-.3-.1-.1 0-.3 0-.3-.1s.1-.2.2-.3c.1-.1-.1-.2-.1-.3l-.1.1v.1l-.2.2-.1.1v.1l-.2.2c.2.1.3 0 .5.1.1 0 .2.1.2.1h.7c.1 0 .2-.1.2-.1.2-.1.3-.1.5-.2.1 0 .2-.1.2-.1l.2-.2c.1-.2.2-.3.4-.4.3-.2.6-.4.8-.6.3-.2.7-.4 1-.5.2-.1.4-.1.5-.1.2 0 .4 0 .6-.1.3-.1.7-.1 1 0 .2.1.4.1.6.1.2.1.4.1.6.1h.5c.1 0 .4-.1.5-.1.2 0 .3 0 .5.1.1.1.5.2.3.3h-.5c-.2.1-.3.1-.5.2s-.3.2-.4.3c-.2.1-.3.2-.5.2-.3.1-.7.2-1 .3-.2.1-.4.1-.5.2h-.3c-.1 0-.2 0-.3.1-.1 0-.2.1-.3.1-.1 0-.2.1-.3.1-.2.1-.4.1-.5.1-.4.1-.7.1-1 .1h-1.1c-.2-.1-.3.1-.5.1-.1.1-.2.1-.3.1-.1.1.2.2.2.2.2.1.4.1.6.1.1 0 .2 0 .2-.1s.2-.1.3-.1c.3-.1.7-.1 1 0 .2 0 .4.1.6.1l.5.2c.3.1.6.3.9.4.2.1.4.1.5.2.2 0 .3.1.4.2.3.1.7.2 1 .2h.4c.1 0 .3-.1.4-.1.1.1.2 0 .3 0 .1 0 .2.1.2.1.2.1.2.1.2.2-.1.1-.2.1-.2.1H28c-.3.1-.5.2-.7.3-.2.1-.4.2-.5.3l-.5-.2c-.3.1-.7.2-1 .2-.4 0-.8-.1-1.2-.2l-.5-.3c-.2.2-.5 0-.9-.1m1.3 3.9c.6-.1 1.3-.3 1.9-.5 1.6-.5 3.1-1.2 4.7-1.9 1.6-.8 3-1.8 4.3-3.2 1.5-1.7 2.8-3.5 3.3-5.6.4-1.2.5-2.4.5-3.6 0-.5.1-.9.1-1.4v-5.8-3.3c4.5 8.3 1.5 18.7-6.8 23.2-2.4 1.3-5.1 2-7.8 2.1\" />\n <path d=\"M25.1 36.9c.2.1.4.1.5.1.2.1.5.1.7 0 .2-.1.4-.1.6-.1 0 0 0-.1.1-.1h-.5c-.2-.1-.5-.1-.7-.1s-.5-.2-.7-.2c-.4-.2-.8-.3-1.3-.5-.3-.1-.7-.2-1-.2.1.1.4.2.5.2.2.1.3.1.4.2.3.2.6.4.9.5.2.1.3.2.5.2M15.8 33.2l-.3-.3c0 .2.2.3.3.3 0 .2.3.4.2.5-.1-.1-.1-.1-.1 0s0 .1.1.2c0 .1.1.2.1.2.1.1.2.1.2 0l.1-.1c0-.2-.1-.4-.1-.5-.2-.1-.4-.2-.5-.3M22.2 34.5c.3-.1.7-.2 1-.3.3-.1.7-.2 1-.2.4-.1.7-.2 1.1-.2.2 0 .4-.1.5-.1.2-.1.3-.1.4-.2.2-.1.4-.2.6-.2.2 0 .3 0 .5-.1l.1-.1s0-.1-.1-.1H27c-.2 0-.3.1-.5.1-.4.1-.7 0-1.1.1-.3.1-.7.1-1 .2-.4.1-.8.2-1.2.4-.4.2-.8.4-1.2.5.1.2.2.2.2.2M13.8 15.7c.1-.1.2-.2.3-.2.1 0 .1.1.1.1s-.1.1-.1.2-.1.2-.1.3c-.1.1.1.1-.1.1-.1 0-.1.1-.2.1-.1.1-.1.1-.2.1s-.1-.1-.2-.1-.2 0-.2-.1.1-.1.1-.2c.1-.1.2 0 .4-.1.3.1.2-.1.2-.2M13.1 16.3s.1 0 0 0c0 0-.1 0 0 0\" />\n <path d=\"M23.7 15.5c-.2-.1-.3-.2-.4-.3-.2-.1-.3-.3-.4-.4-.1-.1-.2-.1-.2-.2-.1-.1-.2-.1-.2-.1-.1-.1-.3-.2-.5-.2h-.2c-.1 0-.2 0-.3.1h-.1l-.1.1c0 .1-.1.2-.1.3-.1.1-.1.1-.2.1h-.3c-.1 0-.2 0-.3.1-.1 0-.2.1-.2.1-.1.1-.2.1-.3.1-.1 0-.2-.1-.3-.1-.1 0-.2 0-.2.1-.1.1-.1.2-.2.2-.2.1-.4.2-.5.3-.1 0-.2.1-.3.1-.1.1 0 .1 0 .2-.1 0-.1-.1-.2-.1l-.2-.2s-.1.1-.2.1c-.1.1-.1.1-.2.1h-.4c-.1 0-.3-.1-.3 0-.1.1-.1.1-.2.1v-.2l-.2-.2c-.1-.2-.2-.3-.4-.3-.1 0-.2 0-.2-.1-.1-.1-.2-.1-.3 0l-.2.2c-.1 0-.1.1-.1.1h-.1s-.1.1-.2.1-.2 0-.3.1h-.2c-.1 0-.2.1-.2.2-.1.1-.1.1-.1.2s.1.1.2.1.1 0 .1.1v.1c0 .1-.1.1-.1.2s.4.1.5 0c.1-.1 0-.1.1-.1l.1-.1c.1-.1.1-.2.2-.2.1-.1.3-.2.4-.3.1 0 .2 0 .2.1s-.1.2-.1.2c-.1 0-.2-.1-.2 0-.1.1-.1 0-.2.1s-.1.1 0 .1l.1.1h.5c.1 0 .2 0 .1.1s-.3.1-.5.1c-.1.1-.2.1-.3.1-.1 0-.2 0-.2.1l-.2.2c-.1.1-.2-.1-.3-.1-.2-.1 0-.3-.1-.4s-.2 0-.3 0-.2 0-.3.1c-.2.1-.3.2-.5.3-.1 0-.2.1-.2.1h-.5c-.1 0-.1.1-.2.2l-.2.2c-.1.1-.1.2-.2.2-.1.1-.2-.3-.2-.3s-.2.1-.3 0c-.1-.1-.1-.1-.2 0l-.2.2c0 .1-.1.2-.1.2-.1.1-.2.1-.1.2s.1.2.1.3c0 .1.2.1.2.1.1 0 .3 0 .4.1.2 0 .1-.1.2-.1l.1-.1c.1-.1-.1-.1.1-.1.1-.1.2 0 .3.1.1.1.2.1.2.1.1-.1.2-.1.3 0 .1.1.1.2.2.2.1.1 0 .2 0 .3 0 .1.1.1.1.2.1.1.1.1.1.2s0 .1-.1.2 0 .1 0 .1c.1 0 .2-.1.3-.1l.1.1c.2-.2.1-.3.1-.4 0-.1-.1-.1-.1-.2v-.1c0-.1 0-.1.1-.1.2 0 .2.3.2.4 0 .2 0 .3-.1.5.1 0 .3 0 .4-.1 0-.1-.1-.2-.1-.2s.1-.1.2-.1c-.1.1-.1.2-.1.3 0 .1-.1.1-.1.1v.2c.1.1.2.1.2.1l.1.1s.1 0 .1.1c.1.1.2.1.1.2s-.1.2-.2.2-.2 0-.3-.1c-.1 0-.2-.1-.3-.1l-.2-.2h-.4c-.1-.1-.1-.2-.1-.2-.1-.1-.4-.1-.4-.3v-.3h.1c.1.1.1.2.2.2.1-.1.1-.1 0-.2 0-.1-.1-.1-.1-.1l-.1-.1c-.1 0 0 .1-.1 0-.1 0-.1-.1-.1-.1 0-.1 0-.1-.1-.1l-.1-.1h-.7l-.3-.2c-.1 0-.1-.1-.2-.1l-.2.1v-.2c-.3.2-.5.4-.8.6l-.5.5c-.1.1-.1.3-.1.4l-.1.6c0 .1-.1.2-.1.3 0 .1.1.2.1.2.1.2.1.4.2.5l.1.3v.3c0 .1 0 .1.1.2s.1.1.3 0c.2-.1.1-.1.2.1.1.1.1.1.3.1h.5l.2.2c.1.1.2.1.3.2.1.1 0 .2 0 .3s0 .2.1.2c.1.2.2.4.2.5.1.2.2.3.2.4v.3c0 .1-.1.2-.1.3 0 .1 0 .1.1.2l.2.3c.1.1.1.3.2.4.2.4.3.7.5 1.1l.3.5c.1.1.1.1.2.1s.2-.1.2-.2l.5-.3c.2-.1.2-.3.2-.5s.1-.1.1-.1c.2-.1.2-.2.2-.3V26c0-.1-.1-.1-.1-.1v-.2c0-.2.1-.2.2-.3.1-.1.2-.3.2-.4v-.7c0-.1-.3-.3-.2-.4l.3-.3c.3-.3.6-.6.8-.9.1-.2.2-.3.2-.5 0-.1.1-.2.1-.3 0-.1.2-.2.1-.2-.2 0-.4.1-.6.2-.1 0-.2 0-.3-.1-.2-.1-.2-.3-.3-.4-.1-.1-.1-.2-.2-.2-.1-.1-.1 0-.1 0V21c-.1-.2-.1-.3-.2-.5 0-.1-.1-.2-.1-.2v-.6c0-.1.1-.2.2-.1s.1.4.2.5c.1.2.1.4.2.5l.2.2c.1.1.1.1.1.2s.1.3.1.4l.2.2c.1.1.2-.1.3-.1l.3-.1c.2-.1.3-.2.4-.3.1-.1.2-.1.3-.1.1 0 .2-.2.2-.2l.2-.2c.1-.1.1-.2 0-.2h-.1c0-.1-.1-.1-.1-.2-.1-.1-.3-.1-.4-.1-.2 0-.1 0-.2-.1s-.1-.2-.1-.3c0-.1-.1-.1-.1-.2.1 0 .2.1.2.1 0 .1.1.2.1.2h.2s.1 0 .2.1l.2.2.3.1c.2 0 .3-.1.4 0 .1 0 .2.1.2.1.1.1.1.1.1.2.1.1.1.1.2.1.2 0 .1 0 .1.1 0 .2.1.3.1.5.1.2.2.3.3.4.1.1.2.3.3.4.1-.1.2-.3.2-.4 0-.1.1-.1.1-.2.1-.1.1-.1.1-.2 0-.2.1-.3.2-.4l.3-.3c.1-.1.2-.2.4-.2.1 0 .2 0 .2.1s0 .2.1.2l.1.1c.1 0 .1 0 .1.1.1.1.1.2.1.2.1.2.2.2.3.1 0 .2.1.3.2.4.1.2.1.3.1.4.1.2.1.3.2.4.1.1.2.3.3.4.1 0 .1 0 .1-.1s-.1-.1-.1-.1v-.2c0-.2-.1-.3-.2-.4l-.2-.2c-.1-.1-.1-.1-.1-.2-.1-.2 0-.3.1-.4.1.1.3.4.4.4s.2-.1.2-.2.1 0 .1-.1l.1-.1c.1-.2 0-.4-.1-.6-.1-.1-.1-.2-.1-.3 0-.1.2-.2.2-.2l.1.1c-.1.1-.1.1 0 .2s.1-.1.2-.1 0-.2 0-.2c0-.1.1-.2.2-.3.1 0 .2-.2.3-.3.1-.1.1-.2.1-.3v-.4c0-.3-.1-.5-.3-.7.1-.1.1-.1.1-.2s-.2.1-.2.1c0-.1-.1-.2-.1-.2.1 0 .1-.1.1-.1.1-.1.1-.1.1 0l.2.2c.1.1.1.2.1.3l.1.1c0 .1.1 0 .1-.1.1-.1.2-.1.2-.2s.1-.2 0-.3c-.1-.1-.2-.2-.2-.3-.1-.2 0-.3.1-.5.1-.1.1-.1.1-.2l-.1-.1c0-.1.1-.1.1-.2 0-.2.1-.3.1-.5-.1-.2-.2-.3-.3-.5l-.3-.2c-.1-.1-.2-.1-.2-.2v-.1l-.1-.1c-.1-.1-.2.1-.2.1-.1 0 0-.2 0-.3 0-.1.1-.2.2-.2s.2 0 .3-.1c.1-.1.1-.2.1-.2.1.1.2.2.2.3l.1.1h.1s.1.1.2.1.3.1.4.1c.1 0 .2.1.2-.1-1.1 1.1-1.2 1.1-1.2 1m-8.3 1.1c.1 0 .1.1 0 0 0 .1-.1 0 0 0m.4 2c-.1.1-.3-.1-.4-.1-.1 0-.2 0-.2-.1s.1-.2.1-.2l.2-.1c.1 0 .1.1.1.1 0 .1.1.1.1.1.1 0 .1 0 .2.1 0 .1 0 .1-.1.2m.9-.1c-.1.1-.1.2-.1.2s.1.2 0 .3c-.1.1-.1.2-.2.2s-.1.1-.2-.1c-.1-.1 0-.1.1-.1s.1-.2.1-.2v-.2c0-.1.1-.1.2-.2.1 0 .2 0 .1.1M13.3 15.7c.1 0 .1-.1.1-.1l.1.1c.1 0 .1.1.1.2s0 .1-.1.2c0-.1-.1-.1-.2-.1s-.2 0-.2.1c-.1 0-.1 0-.1-.1-.1-.1.1-.1.1-.2.1 0 .1-.1.2-.1\" />\n <path d=\"M15.6 24.6c0-.1 0-.1.1-.2s.2.1.2.2c.1.2.1.4.1.5 0 .1-.1.2-.1.2-.1.1-.1.1-.1.2-.1.1-.1.2-.1.3 0 .1.1.2.1.2s-.1.2-.2.1-.2-.1-.2-.2c-.1-.1-.1-.3-.1-.5v-.3-.2c0-.1.1-.2.1-.2.1.1.1 0 .2-.1M19 22.2l.2-.2s.1.2.1.3c0 .1-.1.2-.2.2-.2-.1-.1-.2-.1-.3M20.5 22.5c.2 0 .3 0 .4.1l.3.3.3.3c.1.1 0 .3-.1.4-.1.1-.2-.2-.3-.3.1-.1-.1-.1-.1-.3 0-.1-.2-.3-.3-.3h-.2s-.1-.1 0-.2M21.6 23.3c.1.1.1.2.1.3 0 .1.2.1.3.1.1.1.2 0 .3.1.1.1 0 .2-.1.2-.1-.1-.1-.1-.2-.1s-.2-.1-.3-.1c-.1-.1-.2-.1-.1-.2s0-.2 0-.3M22.4 24c.1 0 .2 0 .2.1h.2c.1 0 .2 0 .2.1.1.1.1.1 0 .1-.1.1-.3-.1-.4-.1-.1 0-.1-.1-.2-.1 0 0-.1-.1 0-.1\" />\n <path d=\"M23.3 24.2h.2c.1 0 .1.1-.1.2-.1.1-.1 0-.2 0s-.1.1-.2.1h-.2c-.1 0-.1-.1 0-.1.3-.2.4-.2.5-.2M21.9 22.6c.2 0 .3-.1.4-.2l.2-.2c.1-.1.1-.2.2-.1s.2.1.2.1l-.2.2c-.1.1-.1.1 0 .2s.1.1 0 .2-.1.2-.1.2c0 .1-.1.1-.1.2s-.1.1-.2.1-.1-.1-.2-.1-.2.1-.2.1c-.1-.1-.1-.2-.1-.2-.1-.1-.1-.2-.1-.2 0-.2 0-.2.2-.3M23.4 22.9c-.2-.1-.3 0-.5.1-.1.1-.2.2-.2.4v.2c0 .1.2.2.2.2.2-.1-.1-.3-.1-.4.1 0 .1.1.1.1l.1.1c.1 0 .2 0 .1-.1l-.1-.1c-.2-.1.1-.1.2-.1.1-.1-.2-.1-.2-.1-.1 0 .1-.1.2-.2.1 0 .2-.1.2-.1M23.5 22.5c.1-.1.2 0 .2.1v.2c0 .1.1 0 .1.1.1.1-.1.1-.1.2s-.3-.1-.3-.1c0-.2.1-.4.1-.5M23.2 21.8c0-.1.1-.2.2-.2s.1.2.1.2.1.1.1.2.1.2 0 .2-.1-.1-.2-.1h-.1l-.1.1c-.1 0-.1-.1-.1-.2s.2-.1.2 0c0-.1.1-.1.1-.2-.2.1-.2.1-.2 0M23 21.5c.1 0 .2.2.1.2s-.3-.1-.1-.2\" />\n <path d=\"M23.2 21.4l.1.1s-.1.1-.2.1 0-.3.1-.2M22.8 20.7c.1 0 .2.1.2.1.1.1 0 .1-.1.2l.1.1c0 .1.1.2 0 .2s-.2-.1-.2-.1c-.1-.1 0-.1 0-.2s-.1-.3 0-.3M23 19.9c0-.1 0-.1.1-.2s.1.1.1.1c.1.1.1.2.1.3-.1.2-.2.2-.3.1-.1 0 0-.2 0-.3M23.8 22.8c-.2-.2.1-.2.3-.2.1 0 .1.1.1.2s0 .1-.1.1 0 .1.1.1c.2.1.3-.2.4-.1.1.1.2.3.4.4.1.1.2.1.2.2l.1.1c0 .1.1 0 .1.1.1.2.2.3.3.5.1.1.2.4.1.5-.1.1-.2-.2-.2-.2 0-.1-.2 0-.2-.1s-.2-.2-.3-.2c-.1 0-.2.2-.3.1-.1-.1-.2-.2-.3-.2-.1-.1-.3-.1-.2-.2.1-.1.1-.1 0-.2 0-.1-.1-.1-.1-.2-.1-.1-.2-.2-.3-.2-.1 0-.1 0-.2-.1-.1 0-.1-.1-.1-.2s-.1-.1 0-.1c.2 0 .2 0 .2-.1.1 0 .1 0 0 0M25.8 23c.2-.1.4.1.3.3 0 .1-.1.1-.1.1-.1 0-.1-.1-.1-.1 0-.1 0-.1-.1-.1V23M25.8 23.4c.1-.1.1.1.1.1v.1l-.1.1s-.2.1-.1-.1c0-.1.1-.1.1-.2\" />\n <path d=\"M26.1 23.4c.2-.1.2.3.1.3-.1.1-.2-.3-.1-.3M26.2 23.9l.1-.1v.2c0 .1-.1.2-.1.2s-.1-.1-.1-.2l-.1-.1h.2M23.6 24.4l.2.1h.3c.1 0 .1.1.1.2s-.1.1-.1.2c-.1.1.1.3.2.4.1.1.1.1.2 0s.1-.2.2-.3c0-.1.1-.1.1-.2.1-.1.1-.2.1-.3.2-.1.2.3.2.4 0 .1 0 .2.1.2.1.1.1.2.1.3 0 .2 0 .3.1.5s.1.4.1.5c0 .1-.1.2-.1.3-.1.1-.1.2-.1.2l-.3.2-.2.2c-.1.1-.1.2-.1.2-.1.1-.1.2-.2.2-.1.1-.3.2-.4.3h-.5c-.1 0-.2 0-.3.1-.1 0-.2 0-.2-.1-.1-.1-.1-.2-.1-.2v-.5c-.1 0-.1.1-.2.1-.1-.1-.1-.1-.1-.2-.1-.2-.2-.3-.4-.4-.4 0-.7 0-1 .1-.1 0-.2-.1-.2-.1-.1-.1-.1-.2-.1-.2.1-.1.1-.2.1-.2 0-.1 0-.2.1-.3.1-.1.1-.1.1-.2s.1-.2.1-.3c.1-.2.2-.3.3-.3.2-.1.3-.1.5-.2h.1c.1 0 .1-.1.1-.1s.2-.1.2-.2c.1-.1.3-.2.5-.2s.3-.1.5-.2M23 28.3c.1 0 .1-.1.2.1.1.1 0 .1 0 .1.1 0 .1 0 .1-.1.1 0 .1-.1.2-.1s.1.1.1.1l-.1.1-.2.2c-.1.1-.1.2-.1.2s-.2-.1-.2-.3c-.1.1-.2 0-.2-.1v-.1c0-.1.1-.2.2-.2M14.4 14.3c.1 0 .2 0 .2.1.1.1.1 0 .2-.1.1.1.1.2 0 .2-.1.1-.2.1-.4.1-.1 0-.2 0-.2-.1s.1-.1.2-.2M22.7 15.8c.2.1.4.3.6.4.1.1.1.1.1.2s.1.1.1.2c.1.1.3.2.2.3-.2.1-.3-.1-.3-.1-.1-.1-.1-.3-.1-.3-.2-.3-.5-.4-.6-.7-.1 0-.1 0 0 0M23.8 15.9c.1 0 .3.1.1.2-.2.1-.2.1-.3 0l.2-.2\" />\n <path d=\"M23.9 16.1c.1 0 .1.1 0 .1-.1.1-.1 0-.2 0s-.1-.1 0-.1h.2M23.5 16.9c.1.1.1.1.2.1s.2-.1.3 0 .1.1 0 .2-.2.1-.2.2c-.1.1-.1.2-.1.2-.1 0-.1-.2-.1-.3-.1-.2-.3-.4-.1-.4\" />\n <path d=\"M23.9 17.3c.1.1 0 .2.1.2l.1.1s-.1.2 0 .3v.3l-.1.1v.1c0 .1-.1 0-.1.1s-.1.1-.1.1c0 .1-.1.1-.2.1-.1.1-.2.1-.3.2.1.1-.1.2-.1.2-.1-.1 0-.2 0-.2 0-.1.1-.2.2-.2.1-.1.1-.1.2-.1 0-.1-.2-.2-.2-.2s.2-.2.2-.3c0-.1-.1-.3 0-.3s.2-.5.3-.5\" />\n <path d=\"M23.8 18.7c-.1-.1-.3.1-.3.2s.3-.1.3-.2M23.5 19c-.1 0-.3.2-.2.2s.1-.1.1-.1l.1-.1M24.9 14.6c.2 0 .3-.1.4-.2.1-.1.1-.1.2-.1s.2-.1.2-.1c.1 0 .2-.1.3-.1 0-.1.1-.1.1-.1.2-.1.3 0 .5.1.1.1.3.1.4.2s0 .1.1.2.1.2.1.3l-.1.1v.1c0 .1-.1.2-.2.2-.1.1-.1.1-.2.1s-.1-.3-.1-.3c0-.1-.1 0-.1.1-.1 0-.1-.1-.1-.1-.1.1-.2.1-.2.1h-.8c-.1 0-.2 0-.2-.1-.1 0-.1-.1-.1 0h-.6c0-.2.3-.2.4-.4M25.9 16.3c.1 0 .2.1.2.1 0 .1-.2.1-.2.1l-.2-.1c0-.1.1-.1.2-.1M25.5 16.5c.1 0 .1 0 .2.1s-.1.1-.1.1-.2 0-.2-.1c-.1-.1.1-.1.1-.1M28.1 17.6c.1.1.1.1.2.1s.1.2.1.2l-.2-.2c-.1 0-.2 0-.1-.1M28.9 15c.1-.1 0-.1.1-.1.1.1.1 0 .1.1s.1.2.1.3c-.1.1-.1.1-.2 0-.1-.2-.1-.3-.1-.3M29.7 13.9c.1-.1.2-.2.2-.3.1-.1.3-.1.3.1 0 0-.2 0-.2.1s-.1.1-.1.1l-.1.1c-.1 0-.2 0-.1-.1M30.1 13.9c.1-.1.2-.1.3-.1.1 0 .1-.2.1-.2s.1-.2.2-.2c.1-.1.2-.1.3-.1.2 0 .4-.1.5.1.1.1.1.1.2 0 .1 0 .2 0 .3.1l.2.2c.1.1.2.1.2.2.1.1.2 0 .2.1.1 0 .2.1.3.1.1.1.1.1.1.2s.1.2.1.3c.1.1 0 .2.1.2.1.1.1.2.1.3 0 .1.1.2.1.2.1.1.1.1.1.2 0 .2-.1.3-.3.3-.2 0-.3-.1-.5-.1-.2-.1-.3-.2-.5-.3l-.2-.2c-.1-.1-.2-.1-.2-.2s.1-.2 0-.2l-.2-.1c-.2 0-.3-.1-.5-.1-.1 0-.2 0-.3.1-.1.1 0 .1 0 .1 0 .1-.1 0-.1 0 .1.3.3.1.5.2s.3.1.5.2c.1 0 .2.1.2.1.1.1.1.2.2.2l.3.1c.1.1.1.1 0 .2s-.2 0-.2.1.1.2.1.3 0 .2-.1.2-.2-.1-.3-.1c-.1-.1-.5.1-.5-.1 0-.1.1-.1.1-.2s-.1-.1-.1-.2c-.1-.1-.2-.1-.3-.1-.1-.1-.2-.1-.3-.2-.1 0-.1-.1-.1-.1s-.1-.1-.1-.2c-.1-.2-.1-.2-.3-.2s-.1-.2-.2-.2c0-.1-.1-.1-.1-.2s0-.1-.1-.1-.1-.1-.1-.1c0-.1-.1-.1-.1-.2.1-.1.2 0 .2.1.1 0 .1-.1.1-.2.1-.1.1-.2.1-.2\" />\n <path d=\"M33.5 14.4c.1-.1.2-.1.2 0 .1.1.2.1.3.2l.2.2c.1.1.1.1 0 .1s-.1.1-.2 0c-.1 0-.2-.1-.3-.1l-.1-.1h-.2c-.1.1-.2.1-.3-.1 0 0-.1-.1 0-.1s.4 0 .4-.1M29.5 14.5c.1-.1.1-.2.2-.1s0 .2 0 .2l-.2-.1\" />\n <path d=\"M29.3 14.8l.2-.2c.1-.1.2-.1.2.1-.1.1-.1.2-.1.2-.2 0-.3-.1-.3-.1\" />\n <path d=\"M29.7 14.7c.1-.1.2 0 .2.1s-.1.2-.1.3c-.1 0-.2-.1-.2-.2-.1-.1.1-.1.1-.1v-.1\" />\n <path d=\"M29.4 15c.1-.1.2-.1.2 0 .1.1.1.1.1.2v.1c0 .1.1.1.1.1.1 0 .1 0 .1.1s.1.1.1.1c.1.1 0 .1-.1.1-.1.1-.2 0-.3 0-.1 0-.2-.1-.3-.1 0 0 .1-.2 0-.3 0-.1 0-.3.1-.3\" />\n <path d=\"M37.3 24c-.1-.1-.2-.3-.2-.4 0-.1-.2-.1-.2-.1-.1-.1-.2-.1-.2-.1-.2-.1-.3-.1-.4-.1-.1-.1-.1-.1-.2-.1h-.2c.1-.1.1-.3-.1-.4-.1-.1-.1-.3-.3-.3s-.3-.1-.4-.2c-.1-.1-.1-.1-.1-.2-.1-.1-.1-.1-.2-.1l-.3-.3c-.1-.1-.2-.2-.3-.2-.1 0-.1-.1-.2-.1-.1-.1-.1-.1-.2-.1s-.2.2-.3.2l.2-.2.1-.1c0-.1-.1-.1-.1-.1-.2.1-.4.1-.5.1-.1 0-.1.1-.2.2s-.1 0-.1 0l.1.5c-.1 0-.1.1-.1.1-.1-.1-.2-.1-.3-.1s-.1.1-.1.1l-.2-.1v-.3c.1-.2.1-.4-.2-.4-.2 0-.4.2-.5 0-.1-.2.3-.3.1-.4-.2-.1-.3.1-.5.2-.1.1-.2.1-.3 0-.1-.1-.1-.2-.2-.2-.1-.1-.1-.2-.1-.3 0-.1.1-.1.1-.2s.1-.2.1-.3c.1-.1.2-.1.3 0 .1.1.2-.1.2-.1.1-.1.2-.1.3-.1.1 0 .1-.1.2-.1.1.1.2.1.2.2.1.1 0 .2 0 .2 0 .1.1.2.2.1.2-.1.2-.3.1-.5-.1-.1-.1-.1-.1-.2s.1-.2.1-.2c.1-.1.2-.3.3-.4.1-.2.1-.3.1-.4 0-.1.1-.3.2-.4.1-.1.1-.3.2-.4.1-.1.2-.3.3-.4.1-.1.1-.1.1-.2s-.2-.1-.1-.2.1 0 .1-.1 0-.1-.1-.1-.2 0-.2.1l.1.1c-.1.1-.1.2-.1.1-.1-.1 0-.1-.1-.1h-.2c.1-.1.1-.2.2-.2s-.2.3-.1.3.4-.1.4-.3-.1-.2-.1-.2l-.1-.1s0 .2-.1.2c-.2 0-.3-.1-.5-.1-.2-.1-.3-.2-.4-.3-.1-.1-.1-.2-.2-.1s-.2.1-.2 0c-.2-.1-.3-.1-.5-.1-.1 0-.2.1-.2.2s.1.1.1.2c.1.1 0 .1.1.2s.1.1.1.2c.1.2.1.3.1.5-.1-.1-.2-.2-.3-.2-.1 0-.2 0-.3-.1l-.3-.3h-.2l-.1-.1c-.1-.1-.1-.1 0-.2s.2-.2.2-.3c.1-.1-.1-.3-.1-.3.1-.1.2-.1.3-.1-.1-.2-.3-.2-.4-.3-.1-.1-.2-.1-.2-.2-.1-.1-.1-.2-.2-.2s-.2-.1-.2.1c0 .1 0 .2.1.3s.1.2.1.3-.2.1-.3.1c-.2.1-.3 0-.5-.1l-.2-.2-.2-.2c-.1-.1-.3 0-.5-.1s-.3-.2-.5-.3l-.2-.1c-.1 0-.1-.1-.1-.1-.1-.1-.3.1-.4.1-.1 0-.3.1-.4.1.4.3.4.4.4.4 0 .1-.1.1-.2.1s-.1 0-.1.1l-.1.1c-.1.1-.1.3-.1.4.1.1.1.1 0 .2s-.1.1-.2.1-.3-.1-.4.1c0 .1.1.1.1.1h.1c.1.1.2.1.3.1.1-.1.1-.1.2-.1.1.1.2 0 .2-.1.2-.1.4-.1.5 0 .2 0 .3.2.4.4.2.3.3.6.4.9 0 .1.1.1.1.1V19s.1.2.2.2l.1.3c.1.1.1.2.2.2.1.2.2.3.2.5.1.2.2.3.3.4.2.1 0-.2 0-.2s-.1-.1-.1-.2 0-.1-.1-.2-.1-.2-.2-.2c-.1-.1-.1-.2.1-.1l.2.2c.1.1.1.2.1.2.1.1.1.2.1.2l.2.2c.1.1.1.2.1.3.1.1.2 0 .2.1.1.1.1.2.1.3.1.3.4.6.8.6h.3c.1.1.2.1.2.1.1.1.3.2.4.3.1 0 .2-.1.2 0 .1.1.1.2.2.2.1.1.2.1.2.1h.1c.1.1 0 .1.1.1s.1-.1.1-.1c0-.1.1-.1.2-.1.2.1.2.3.2.4 0 .1-.1.1-.1.2l-.1.2c-.1.2-.1.3 0 .5.1.1.1.2.1.3 0 .1 0 .2.1.3.1.2.1.3.1.5v.3c.1.1.1.2.2.2.1.1.1.2.2.2.1.1 0 .2 0 .3v.2c0 .1-.1.1-.1.2s-.1.2-.1.4c0 .1-.1.1-.1.2s-.1.1-.1.1c0 .1-.1.1-.1.2s-.1.1-.1.2v.2c0 .1 0 .1-.1.2l-.2.3c-.1.1-.1.2-.2.4-.1.1-.1.2-.2.3.1 0 .1.1.1.1 0 .1-.1.1-.2.1s-.2.2-.2.2.1.3 0 .4c-.1.1-.2.2-.1.3-.1.1-.2.2-.1.4l.2.2v.2c.1 0 .1-.1.2-.1l.1.1h.1c.1-.1.1-.1 0-.1s-.1-.1 0-.1v-.1c-.1-.2-.1.1-.2-.1 0-.1.1-.1.1-.1l.1-.1.2-.2c.1-.2.2-.3.3-.4.1-.2.2-.3.4-.4.1-.1.2-.2.4-.3s.3-.1.5-.2l.4-.4c.1-.1.3-.2.5-.3.1-.1.2-.1.3-.1.1-.1.2-.1.2-.1.1-.1.3-.2.4-.3.1-.1.2-.3.4-.3.2-.1.3-.1.4-.2.2-.1.3-.2.3-.4 0-.1.1-.2.1-.2.1-.1.1-.1.1-.2.1-.2.2-.3.3-.4.1-.1.2-.3.3-.4.1-.1.1-.2.1-.2-.5-.9-.5-.9-.5-1m-5-6.1c.1-.1.1-.1.2-.1s.1 0 .1.1-.3.1-.3 0m-.5-.1c.1 0 .2.1.2.1s.3.1.1.1c-.2 0-.2-.1-.2-.1s-.3 0-.1-.1m-.2.1c-.1.1-.2.4-.3.3 0-.1.1-.1.1-.1l.1-.2c-.1 0 .1-.2.1 0m-.5-.3c.1 0 .2 0 .3-.1.1-.1-.2-.1-.1-.2s.2.1.2.1c.1.1.1.2.1.3-.1 0-.2-.1-.3-.1s-.2.1-.2 0\" />\n <path d=\"M33.5 17.5c-.1.1-.1.2-.1.2s-.1-.1 0-.2.1-.2.2-.2 0 .2-.1.2M33.6 16.9c0-.1.1-.2.1-.1s0 .1-.1.1c.1.1.3.1.4.2 0 .1 0 .1-.1.2-.1 0-.1-.1-.1-.1 0-.1-.3.1-.3 0-.1-.2 0-.2.1-.3M32.4 20.6c.2.1.3.1.4.2.1 0 .2.1.2.1 0 .1-.2.1-.2.1-.2-.1-.3-.1-.4-.2-.1-.1-.1-.1-.1-.2-.1-.1 0 0 .1 0M33.4 20.8c.1 0 .3 0 .3.1.1.1-.1 0-.1 0h-.2c-.1 0-.1 0-.2-.1-.1 0-.1-.1-.1-.1l.1-.1s.2.1.2.2M33.9 21h.1l.1.1c0 .1-.1 0-.2-.1M30.9 15.9c.1 0 .2.1.2.1.1.1 0 .2-.1.1s-.2-.1-.2-.1c-.1-.1-.1-.1 0-.1h.1\" />\n </g>\n </svg>\n )\n}\n","import React from \"react\"\nimport Logo from \"../components/svg/logo\"\nimport { Link } from \"gatsby\"\n\nexport default function HomepageLogoLink({ passedRef, path, classes }) {\n return (\n <Link\n className={\"homepage-logo-link\" + (classes ? \" \" + classes : \"\")}\n to=\"/\"\n aria-current={path === \"/\" ? \"page\" : null}\n aria-label=\"Go to the homepage\"\n ref={passedRef ? passedRef : null}\n >\n <Logo />\n <div className=\"homepage-logo-link__text\">\n <div className=\"title--quaternary title--uppercase\">\n Annual Report 2020\n </div>\n <div className=\"title--meta title--uppercase title--light util__desktop-only\">\n A Year Like No Other\n </div>\n </div>\n </Link>\n )\n}\n","import React, { useState, useEffect, useRef } from \"react\"\nimport HomepageLogoLink from \"../components/homepage-logo-link\"\nimport { Link, withPrefix } from \"gatsby\"\nimport { slugify } from \"../helpers/strings\"\nimport menu from \"../data/menu.json\"\nimport FocusLock from \"react-focus-lock\"\n\nexport default function SiteHeader({ path, hash }) {\n const homepageLogoLink = useRef()\n const mobileNavButton = useRef()\n const [mobileNavIsActive, setMobileNavIsActive] = useState(false)\n\n // Helper for normalizing paths for correct mobile nav active page underlining, regardless of env\n function normalizePath(path) {\n return path.replace(\"/external/pubs/ft/ar/2020/eng/\", \"/\")\n }\n\n function toggleMobileNav() {\n const BODY_LOCK = \"util__body-lock\"\n\n if (mobileNavIsActive) {\n setMobileNavIsActive(false)\n document.body.classList.remove(BODY_LOCK)\n } else {\n setMobileNavIsActive(true)\n document.body.classList.add(BODY_LOCK)\n }\n }\n\n function isNavItemActive(item) {\n if (path.includes(\"spotlight\") && item.name === \"A Crisis Like No Other\") {\n return true\n } else if (path.includes(\"what-we-do\") && item.name === \"What We Do\") {\n return true\n } else if (path.includes(\"who-we-are\") && item.name === \"Who We Are\") {\n return true\n } else {\n return false\n }\n }\n\n function toggleNavItemOnFocus(e) {\n // If the user is clicking, ignore this focus/blur toggle behavior and allow hover behavior to persist\n if (!document.body.classList.contains(\"user-is-tabbing\")) {\n return\n }\n\n const focusClass = \"site-header__nav__main__item--focus\"\n\n let focusedItemParent = e.target.closest(\"li.site-header__nav__main__item\")\n\n focusedItemParent.classList.contains(focusClass)\n ? focusedItemParent.classList.remove(focusClass)\n : focusedItemParent.classList.add(focusClass)\n }\n\n // Simple listener to close overlay on escape key hit\n function handleKeydown(e) {\n if (mobileNavIsActive && e.keyCode === 27) {\n toggleMobileNav()\n }\n }\n\n useEffect(() => {\n document.addEventListener(\"keydown\", handleKeydown)\n return () => {\n document.removeEventListener(\"keydown\", handleKeydown)\n }\n })\n\n return (\n <header className=\"site-header\">\n <HomepageLogoLink\n passedRef={homepageLogoLink}\n classes=\"site-header__logo\"\n path={path}\n />\n <nav className=\"site-header__nav util__desktop-only\">\n <ul className=\"site-header__nav__main\">\n {menu.map((item, index) => {\n let itemSlug = slugify(item.name)\n\n return item.hideDesktop ? null : (\n <li\n key={\"nav-item-\" + itemSlug}\n id={\"nav-item-\" + itemSlug}\n className={\n \"site-header__nav__main__item\" +\n (isNavItemActive(item)\n ? \" site-header__nav__main__item--active\"\n : \"\")\n }\n aria-haspopup=\"true\"\n aria-controls={\"child-item-\" + itemSlug}\n >\n {item.href ? (\n <Link\n className=\"icon--chevron\"\n to={item.href}\n aria-current={path.includes(item.href) ? \"page\" : null}\n onFocus={toggleNavItemOnFocus}\n onBlur={toggleNavItemOnFocus}\n >\n {item.name}\n </Link>\n ) : (\n <button\n className=\"icon--chevron\"\n type=\"button\"\n onFocus={toggleNavItemOnFocus}\n onBlur={toggleNavItemOnFocus}\n >\n {item.name}\n </button>\n )}\n <ul\n id={\"child-item-\" + itemSlug}\n className=\"site-header__nav__sub\"\n >\n {item.children.map((child, index) => (\n <li key={\"child-item-\" + child.name}>\n {child.href.includes(\".pdf\") ? (\n <a\n href={withPrefix(\"/\") + child.href}\n aria-current={\n path.includes(child.href) ? \"page\" : null\n }\n onFocus={toggleNavItemOnFocus}\n onBlur={toggleNavItemOnFocus}\n >\n {child.name}\n </a>\n ) : (\n <Link\n to={child.href}\n aria-current={\n path.includes(child.href) ? \"page\" : null\n }\n onFocus={toggleNavItemOnFocus}\n onBlur={toggleNavItemOnFocus}\n >\n {child.name}\n </Link>\n )}\n {child.children ? (\n <ul className=\"site-header__nav__super-sub\">\n {child.children.map((subchild, index) => (\n <li key={\"subchild-item-\" + subchild.name}>\n {subchild.href.includes(\".pdf\") ? (\n <a\n href={withPrefix(\"/\") + subchild.href}\n aria-current={\n path.includes(subchild.href) ? \"page\" : null\n }\n onFocus={toggleNavItemOnFocus}\n onBlur={toggleNavItemOnFocus}\n >\n {subchild.name}\n </a>\n ) : (\n <Link\n to={subchild.href}\n aria-current={\n path.includes(subchild.href) ? \"page\" : null\n }\n onFocus={toggleNavItemOnFocus}\n onBlur={toggleNavItemOnFocus}\n >\n {subchild.name}\n </Link>\n )}\n </li>\n ))}\n </ul>\n ) : null}\n </li>\n ))}\n </ul>\n </li>\n )\n })}\n </ul>\n </nav>\n <FocusLock\n disabled={mobileNavIsActive ? false : true}\n shards={mobileNavIsActive ? [homepageLogoLink, mobileNavButton] : null}\n returnFocus={true}\n noFocusGuards={true}\n >\n <nav\n id=\"site-mobile-nav\"\n className=\"site-mobile-nav util__mobile-only\"\n aria-hidden={mobileNavIsActive ? \"false\" : \"true\"}\n tabIndex=\"-1\"\n >\n <ul className=\"site-mobile-nav__main\">\n {menu.map((item, index) => {\n return (\n <li key={\"nav-item-\" + item.name}>\n {item.href ? (\n <Link\n className={\n normalizePath(path + hash) ===\n normalizePath(item.href) &&\n (path.includes(\"spotlight\") ||\n path.includes(\"what-we-do\") ||\n normalizePath(path + hash) === \"/\")\n ? \"no-underline\"\n : null\n }\n to={item.href}\n aria-current={\n normalizePath(path + hash) === normalizePath(item.href)\n ? \"page\"\n : null\n }\n onClick={toggleMobileNav}\n >\n {item.name}\n </Link>\n ) : (\n <div>{item.name}</div>\n )}\n <ul>\n {item.children.map((child, index) => (\n <li key={\"child-item-\" + child.name}>\n {child.href.includes(\".pdf\") ? (\n <a\n href={withPrefix(\"/\") + child.href}\n onClick={toggleMobileNav}\n >\n {child.name}\n </a>\n ) : (\n <Link\n to={child.href}\n aria-current={\n normalizePath(path + hash) ===\n normalizePath(child.href)\n ? \"page\"\n : null\n }\n onClick={toggleMobileNav}\n >\n {child.name}\n </Link>\n )}\n {child.children ? (\n <ul className=\"site-mobile-nav__main__super-sub\">\n {child.children.map((subchild, index) => (\n <li key={\"subchild-item-\" + subchild.name}>\n {subchild.href.includes(\".pdf\") ? (\n <a\n href={withPrefix(\"/\") + subchild.href}\n onClick={toggleMobileNav}\n >\n {subchild.name}\n </a>\n ) : (\n <Link\n to={subchild.href}\n aria-current={\n normalizePath(path + hash) ===\n normalizePath(subchild.href)\n ? \"page\"\n : null\n }\n onClick={toggleMobileNav}\n >\n {subchild.name}\n </Link>\n )}\n </li>\n ))}\n </ul>\n ) : null}\n </li>\n ))}\n </ul>\n </li>\n )\n })}\n </ul>\n </nav>\n </FocusLock>\n <button\n className=\"site-nav__menu-button util__mobile-only\"\n type=\"button\"\n aria-label=\"Toggle mobile navigation\"\n aria-owns=\"site-mobile-nav\"\n onClick={toggleMobileNav}\n ref={mobileNavButton}\n >\n <span\n className={\n \"site-nav__menu-button__icon\" +\n (mobileNavIsActive ? \" site-nav__menu-button__icon--active\" : \"\")\n }\n ></span>\n </button>\n </header>\n )\n}\n","import React from \"react\"\n\nexport default function CTA({ href, text, type, targetBlank }) {\n return (\n <a href={href} className={`cta cta--${type}`} target={targetBlank ? \"_blank\": null}>\n {text}\n {type === \"secondary\" ? (\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M15.0378 6.34317L13.6269 7.76069L16.8972 11.0157L3.29211 11.0293L3.29413 13.0293L16.8619 13.0157L13.6467 16.2459L15.0643 17.6568L20.7079 11.9868L15.0378 6.34317Z\"\n fill=\"currentColor\"\n />\n </svg>\n ) : null}\n </a>\n )\n}\n","function getRandom(array) {\n const randomIndex = Math.floor(Math.random() * array.length)\n const item = array[randomIndex]\n return item\n}\n\nfunction shuffle(array) {\n for (let i = array.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n\n [array[i], array[j]] = [array[j], array[i]]\n }\n return array\n}\n\nexport { getRandom, shuffle }\n","import React from \"react\"\nimport CTA from \"../components/cta\"\nimport tweetData from \"../data/tweets.json\"\nimport { getRandom } from \"../helpers/arrays\"\n\nexport default function SiteFooterTwitter({ path }) {\n const tweets = tweetData.filter(obj => {\n return obj.path === path\n })\n\n const tweet = tweets.length >= 1 ? getRandom(tweets) : getRandom(tweetData)\n\n return (\n <li className=\"site-footer__twitter\">\n <header>\n <h3 className=\"title--quaternary\">Twitter Highlights</h3>\n <div className=\"title--micro title--light title--uppercase\">\n <a\n href={`https://twitter.com/${tweet.account}`}\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n @{tweet.account}\n <span className=\"site-footer__twitter__date\">{tweet.date}</span>\n </a>\n </div>\n </header>\n <p dangerouslySetInnerHTML={{ __html: tweet.content }} />\n <CTA\n type=\"secondary\"\n href={tweet.url}\n text=\"Follow Us\"\n targetBlank=\"true\"\n />\n </li>\n )\n}\n","import React from \"react\"\nimport CTA from \"../components/cta\"\nimport instagramData from \"../data/instagram.json\"\nimport { shuffle } from \"../helpers/arrays\"\nimport Image from \"../components/image\"\n\nexport default function SiteFooterInstagram({ path }) {\n const totalPosts = 3\n\n var pagePosts = shuffle(\n instagramData.filter(obj => {\n return obj.paths.includes(path)\n })\n )\n\n if (pagePosts.length < totalPosts) {\n var otherPosts = shuffle(\n instagramData.filter(obj => {\n return !obj.paths.includes(path)\n })\n )\n }\n\n const posts = pagePosts.concat(otherPosts).slice(0, totalPosts)\n\n return (\n <li className=\"site-footer__instagram\">\n <header>\n <h3 className=\"title--quaternary\">Instagram Highlights</h3>\n <div className=\"title--micro title--light title--uppercase\">\n <a\n href=\"https://www.instagram.com/the_imf/\"\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n @the_imf\n </a>\n </div>\n </header>\n <ul>\n {posts.map((post, index) => (\n <li key={`${post.paths}-${post.id}-${index}`}>\n <a href={post.url} target=\"_blank\" rel=\"noreferrer\">\n <Image path={post.image_path} alt={post.alt} />\n </a>\n </li>\n ))}\n </ul>\n <CTA\n type=\"secondary\"\n href=\"https://www.instagram.com/the_imf/\"\n text=\"Follow Us\"\n targetBlank=\"true\"\n />\n </li>\n )\n}\n","import React from \"react\"\nimport menu from \"../data/menu.json\"\nimport { withPrefix } from \"gatsby\"\n\nexport default function DownloadFullReport({ className }) {\n const downloads = menu.find(item => {\n return item.name === \"Downloads\"\n }).children\n const downloadLink = downloads.find(item => {\n return item.name === \"Download Full Report\"\n })\n const reports = downloads.find(item => {\n return item.name === \"Download Full Report\"\n }).children\n\n return reports ? (\n <div className=\"download-full-report\">\n <h4 className=\"title--quaternary\">Download Full Report</h4>\n <ul className={className}>\n {reports.map((item, index) => (\n <li key={index}>\n <a href={withPrefix(\"/\") + item.href}>{item.name}</a>\n </li>\n ))}\n </ul>\n </div>\n ) : (\n <a href={withPrefix(\"/\") + downloadLink.href} className=\"title--quaternary\">\n {downloadLink.name}\n </a>\n )\n}\n","import React from \"react\"\nimport { withPrefix } from \"gatsby\"\nimport HomepageLogoLink from \"../components/homepage-logo-link\"\nimport SiteFooterTwitter from \"../components/site-footer-twitter\"\nimport SiteFooterInstagram from \"../components/site-footer-instagram\"\nimport CTA from \"../components/cta\"\nimport DownloadFullReport from \"../components/download-full-report\"\nimport Safe from \"react-safe\"\n\nexport default function SiteFooter({ path }) {\n const description =\n \"The International Monetary Fund (IMF) is a global organization of 190 member countries set up to promote the health of the world economy.\"\n const pathArray = path.split(\"/\")\n\n const lastPathSegment =\n (pathArray !== \"\" ? pathArray.pop() || pathArray.pop() : pathArray) ||\n \"home\"\n\n return (\n <footer className=\"site-footer\">\n <ul className=\"site-footer__main container\">\n <li className=\"site-footer__about\">\n <header>\n <HomepageLogoLink classes=\"site-footer__about__logo\" path={path} />\n </header>\n <p>{description}</p>\n <CTA\n type=\"secondary\"\n href=\"https://www.imf.org/\"\n text=\"Visit IMF.org\"\n />\n </li>\n <SiteFooterTwitter path={lastPathSegment} />\n <SiteFooterInstagram path={lastPathSegment} />\n </ul>\n <div className=\"site-footer__bottom\">\n <div className=\"container site-footer__bottom__inner\">\n <DownloadFullReport />\n <p className=\"title--micro title--light\">\n Credits for images found in this website can be found{\" \"}\n <u>\n <a href={withPrefix(\"/\") + \"downloads/photo-credits.pdf\"}>\n here.\n </a>\n </u>\n </p>\n </div>\n </div>\n\n <Safe.script type=\"text/javascript\">_satellite.pageBottom();</Safe.script>\n </footer>\n )\n}\n","import React from \"react\"\nimport { Helmet } from \"react-helmet\"\nimport useSiteMetadata from \"../hooks/use-site-metadata\"\nimport menu from \"../data/menu.json\"\nimport { useStaticQuery, graphql } from \"gatsby\"\n\n/**\n * Component representing common metadata of a page.\n *\n * Different crawlers such as Twitter Cards and Facebook's Open Graph Protocol (OGP)\n * use different meta tags to annotate web pages for things like smart previews.\n * This component abstracts out the specific meta tags and attributes necessary and defines\n * valid properties that can be attached to metadata for Gatsby site pages.\n *\n * Props:\n *\n * @param title The title of the page used in the `<title>` tag.\n * @param description A longer description of the page, used in the \"description\" tag\n * as well as OGP.\n *\n * @param type The type of the page, used by OGP: https://ogp.me/#types\n *\n * @param image An image to be attached to the Facebook preview and Twitter Card. Consists of:\n *\n * - `src` the source the image\n * - `width` the width of the image\n * - `height` the height of the image\n *\n * @param twitterCard The Twitter card type, which will be one of\n * “summaryâ€, “summary_large_imageâ€, “appâ€, or “playerâ€.\n *\n * @param timeToRead The amount of time it takes to read the article, in minutes.\n * Used by Slack rich previews:\n * https://api.slack.com/legacy/message-link-unfurling#classic_unfurling\n *\n * @param children You can specify additional meta properties or override them by\n * adding children to this component. For example:\n *\n * ```\n * <PageMetadata>\n * <meta name=\"author\" content={author.id} />\n * </PageMetadata>\n * ```\n *\n * Additional References:\n *\n * - Open Graph Protocol: https://ogp.me/\n * - Facebook Sharing Debugger: https://developers.facebook.com/tools/debug/\n * - Twitter Card Docs: https://developer.twitter.com/en/docs/tweets/optimize-with-cards/overview/markup\n * - Twitter Card validator: https://cards-dev.twitter.com/validator\n */\nexport default function PageMetadata({\n template,\n type,\n twitterCard,\n timeToRead,\n children,\n}) {\n const { siteUrl, title, description, image } = useSiteMetadata()\n // <Helmet> doesn't support JSX fragments so we can't bundle the tags based on\n // the property they match up with\n\n // title is read-only, so instantiate a new var for the page title (and page featured image)\n var pageTitle = \"\"\n var pageFeaturedImagePath = \"\"\n\n menu.forEach(item => {\n if (template === item.id) {\n pageTitle = item.name\n\n pageFeaturedImagePath = item.featured_image && item.featured_image\n } else if (item.children) {\n item.children.forEach(child => {\n if (template === child.id) {\n pageTitle = `${item.id === \"spotlights\" ? \"\" : `${item.name} | `}${\n child.name\n }`\n pageFeaturedImagePath = child.featured_image && child.featured_image\n }\n })\n }\n })\n\n // Static image method modified from Image.js\n const data = useStaticQuery(\n graphql`\n query {\n images: allFile {\n edges {\n node {\n relativePath\n name\n childImageSharp {\n fluid(maxWidth: 3000, quality: 100) {\n ...GatsbyImageSharpFluid\n ...GatsbyImageSharpFluid_withWebp\n }\n }\n }\n }\n }\n }\n `\n )\n\n const pageFeaturedImage =\n pageFeaturedImagePath &&\n data.images.edges.find(item =>\n item.node.relativePath.includes(pageFeaturedImagePath)\n )?.node.childImageSharp.fluid.src\n\n return (\n <Helmet>\n <html lang=\"en\" />\n <meta\n name=\"viewport\"\n content=\"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0, shrink-to-fit=no\"\n />\n {title && <title>{`${title}${pageTitle && ` | ${pageTitle}`}`}</title>}\n {title && (\n <meta\n property=\"og:title\"\n content={`${title}${pageTitle && ` | ${pageTitle}`}`}\n />\n )}\n {description && <meta name=\"description\" content={description} />}\n {description && <meta property=\"og:description\" content={description} />}\n {type && <meta property=\"og:type\" content={type} />}\n {twitterCard && <meta name=\"twitter:card\" content={twitterCard} />}\n {timeToRead && <meta name=\"twitter:label1\" content=\"Reading time\" />}\n {timeToRead && (\n <meta name=\"twitter:data1\" content={`${timeToRead} min read`} />\n )}\n <meta\n property=\"og:image\"\n content={\n siteUrl +\n (pageFeaturedImage ? pageFeaturedImage : \"/images/og_image.jpg\")\n }\n />\n {children}\n </Helmet>\n )\n}\n","import { graphql, useStaticQuery } from \"gatsby\"\n\nexport default function useSiteMetadata() {\n const { site } = useStaticQuery(graphql`\n query SiteMetadata {\n site {\n siteMetadata {\n siteUrl\n title\n twitter\n description\n }\n }\n }\n `)\n return site.siteMetadata\n}\n","import React, { useEffect } from \"react\"\nimport \"../styles/app.scss\"\nimport SiteHeader from \"../components/site-header\"\nimport SiteFooter from \"./site-footer\"\nimport PageMetadata from \"../components/page-metadata\"\nimport { Location } from \"@reach/router\"\n\nconst Layout = ({ children }) => {\n const handleKeydown = event => {\n if (event.keyCode === 9) {\n document.body.classList.add(\"user-is-tabbing\")\n }\n }\n\n const handleClick = () => {\n document.body.classList.remove(\"user-is-tabbing\")\n }\n\n useEffect(() => {\n window.addEventListener(\"keydown\", handleKeydown)\n return () => {\n window.removeEventListener(\"keydown\", handleKeydown)\n }\n })\n\n useEffect(() => {\n window.addEventListener(\"click\", handleClick)\n return () => {\n window.removeEventListener(\"click\", handleClick)\n }\n })\n\n return (\n <Location>\n {({ location }) => (\n <>\n <PageMetadata template={getPage(location.pathname)} />\n <a className=\"skip-main\" href=\"#main\">\n Skip to main content\n </a>\n <SiteHeader path={location.pathname} hash={location.hash} />\n <span className=\"anchor\" id=\"main\" tabIndex=\"-1\" />\n <main className={`page t__${getPage(location.pathname)}`}>\n {children}\n </main>\n <SiteFooter path={location.pathname} />\n </>\n )}\n </Location>\n )\n}\n\nfunction getPage(pathname) {\n let base = pathname.split(\"/\")\n let lastSegment = base.pop() || base.pop()\n if ((lastSegment === \"\") | (lastSegment === \"eng\")) {\n return \"home\"\n } else {\n return lastSegment\n }\n}\n\nexport default Layout\n","/*! npm.im/object-fit-images 3.2.4 */\n'use strict';\n\nrequire(\"core-js/modules/es6.regexp.replace\");\n\nvar OFI = 'bfred-it:object-fit-images';\nvar propRegex = /(object-fit|object-position)\\s*:\\s*([-.\\w\\s%]+)/g;\nvar testImg = typeof Image === 'undefined' ? {\n style: {\n 'object-position': 1\n }\n} : new Image();\nvar supportsObjectFit = ('object-fit' in testImg.style);\nvar supportsObjectPosition = ('object-position' in testImg.style);\nvar supportsOFI = ('background-size' in testImg.style);\nvar supportsCurrentSrc = typeof testImg.currentSrc === 'string';\nvar nativeGetAttribute = testImg.getAttribute;\nvar nativeSetAttribute = testImg.setAttribute;\nvar autoModeEnabled = false;\n\nfunction createPlaceholder(w, h) {\n return \"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='\" + w + \"' height='\" + h + \"'%3E%3C/svg%3E\";\n}\n\nfunction polyfillCurrentSrc(el) {\n if (el.srcset && !supportsCurrentSrc && window.picturefill) {\n var pf = window.picturefill._; // parse srcset with picturefill where currentSrc isn't available\n\n if (!el[pf.ns] || !el[pf.ns].evaled) {\n // force synchronous srcset parsing\n pf.fillImg(el, {\n reselect: true\n });\n }\n\n if (!el[pf.ns].curSrc) {\n // force picturefill to parse srcset\n el[pf.ns].supported = false;\n pf.fillImg(el, {\n reselect: true\n });\n } // retrieve parsed currentSrc, if any\n\n\n el.currentSrc = el[pf.ns].curSrc || el.src;\n }\n}\n\nfunction getStyle(el) {\n var style = getComputedStyle(el).fontFamily;\n var parsed;\n var props = {};\n\n while ((parsed = propRegex.exec(style)) !== null) {\n props[parsed[1]] = parsed[2];\n }\n\n return props;\n}\n\nfunction setPlaceholder(img, width, height) {\n // Default: fill width, no height\n var placeholder = createPlaceholder(width || 1, height || 0); // Only set placeholder if it's different\n\n if (nativeGetAttribute.call(img, 'src') !== placeholder) {\n nativeSetAttribute.call(img, 'src', placeholder);\n }\n}\n\nfunction onImageReady(img, callback) {\n // naturalWidth is only available when the image headers are loaded,\n // this loop will poll it every 100ms.\n if (img.naturalWidth) {\n callback(img);\n } else {\n setTimeout(onImageReady, 100, img, callback);\n }\n}\n\nfunction fixOne(el) {\n var style = getStyle(el);\n var ofi = el[OFI];\n style['object-fit'] = style['object-fit'] || 'fill'; // default value\n // Avoid running where unnecessary, unless OFI had already done its deed\n\n if (!ofi.img) {\n // fill is the default behavior so no action is necessary\n if (style['object-fit'] === 'fill') {\n return;\n } // Where object-fit is supported and object-position isn't (Safari < 10)\n\n\n if (!ofi.skipTest && // unless user wants to apply regardless of browser support\n supportsObjectFit && // if browser already supports object-fit\n !style['object-position'] // unless object-position is used\n ) {\n return;\n }\n } // keep a clone in memory while resetting the original to a blank\n\n\n if (!ofi.img) {\n ofi.img = new Image(el.width, el.height);\n ofi.img.srcset = nativeGetAttribute.call(el, \"data-ofi-srcset\") || el.srcset;\n ofi.img.src = nativeGetAttribute.call(el, \"data-ofi-src\") || el.src; // preserve for any future cloneNode calls\n // https://github.com/bfred-it/object-fit-images/issues/53\n\n nativeSetAttribute.call(el, \"data-ofi-src\", el.src);\n\n if (el.srcset) {\n nativeSetAttribute.call(el, \"data-ofi-srcset\", el.srcset);\n }\n\n setPlaceholder(el, el.naturalWidth || el.width, el.naturalHeight || el.height); // remove srcset because it overrides src\n\n if (el.srcset) {\n el.srcset = '';\n }\n\n try {\n keepSrcUsable(el);\n } catch (err) {\n if (window.console) {\n console.warn('https://bit.ly/ofi-old-browser');\n }\n }\n }\n\n polyfillCurrentSrc(ofi.img);\n el.style.backgroundImage = \"url(\\\"\" + (ofi.img.currentSrc || ofi.img.src).replace(/\"/g, '\\\\\"') + \"\\\")\";\n el.style.backgroundPosition = style['object-position'] || 'center';\n el.style.backgroundRepeat = 'no-repeat';\n el.style.backgroundOrigin = 'content-box';\n\n if (/scale-down/.test(style['object-fit'])) {\n onImageReady(ofi.img, function () {\n if (ofi.img.naturalWidth > el.width || ofi.img.naturalHeight > el.height) {\n el.style.backgroundSize = 'contain';\n } else {\n el.style.backgroundSize = 'auto';\n }\n });\n } else {\n el.style.backgroundSize = style['object-fit'].replace('none', 'auto').replace('fill', '100% 100%');\n }\n\n onImageReady(ofi.img, function (img) {\n setPlaceholder(el, img.naturalWidth, img.naturalHeight);\n });\n}\n\nfunction keepSrcUsable(el) {\n var descriptors = {\n get: function get(prop) {\n return el[OFI].img[prop ? prop : 'src'];\n },\n set: function set(value, prop) {\n el[OFI].img[prop ? prop : 'src'] = value;\n nativeSetAttribute.call(el, \"data-ofi-\" + prop, value); // preserve for any future cloneNode\n\n fixOne(el);\n return value;\n }\n };\n Object.defineProperty(el, 'src', descriptors);\n Object.defineProperty(el, 'currentSrc', {\n get: function get() {\n return descriptors.get('currentSrc');\n }\n });\n Object.defineProperty(el, 'srcset', {\n get: function get() {\n return descriptors.get('srcset');\n },\n set: function set(ss) {\n return descriptors.set(ss, 'srcset');\n }\n });\n}\n\nfunction hijackAttributes() {\n function getOfiImageMaybe(el, name) {\n return el[OFI] && el[OFI].img && (name === 'src' || name === 'srcset') ? el[OFI].img : el;\n }\n\n if (!supportsObjectPosition) {\n HTMLImageElement.prototype.getAttribute = function (name) {\n return nativeGetAttribute.call(getOfiImageMaybe(this, name), name);\n };\n\n HTMLImageElement.prototype.setAttribute = function (name, value) {\n return nativeSetAttribute.call(getOfiImageMaybe(this, name), name, String(value));\n };\n }\n}\n\nfunction fix(imgs, opts) {\n var startAutoMode = !autoModeEnabled && !imgs;\n opts = opts || {};\n imgs = imgs || 'img';\n\n if (supportsObjectPosition && !opts.skipTest || !supportsOFI) {\n return false;\n } // use imgs as a selector or just select all images\n\n\n if (imgs === 'img') {\n imgs = document.getElementsByTagName('img');\n } else if (typeof imgs === 'string') {\n imgs = document.querySelectorAll(imgs);\n } else if (!('length' in imgs)) {\n imgs = [imgs];\n } // apply fix to all\n\n\n for (var i = 0; i < imgs.length; i++) {\n imgs[i][OFI] = imgs[i][OFI] || {\n skipTest: opts.skipTest\n };\n fixOne(imgs[i]);\n }\n\n if (startAutoMode) {\n document.body.addEventListener('load', function (e) {\n if (e.target.tagName === 'IMG') {\n fix(e.target, {\n skipTest: opts.skipTest\n });\n }\n }, true);\n autoModeEnabled = true;\n imgs = 'img'; // reset to a generic selector for watchMQ\n } // if requested, watch media queries for object-fit change\n\n\n if (opts.watchMQ) {\n window.addEventListener('resize', fix.bind(null, imgs, {\n skipTest: opts.skipTest\n }));\n }\n}\n\nfix.supportsObjectFit = supportsObjectFit;\nfix.supportsObjectPosition = supportsObjectPosition;\nhijackAttributes();\nmodule.exports = fix;","export default function _extends() {\n _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\n return _extends.apply(this, arguments);\n}","import { useCallbackRef } from './useRef';\nimport { assignRef } from './assignRef';\n/**\n * Merges two or more refs together providing a single interface to set their value\n * @param {RefObject|Ref} refs\n * @returns {MutableRefObject} - a new ref, which translates all changes to {refs}\n *\n * @see {@link mergeRefs} a version without buit-in memoization\n * @see https://github.com/theKashey/use-callback-ref#usemergerefs\n * @example\n * const Component = React.forwardRef((props, ref) => {\n * const ownRef = useRef();\n * const domRef = useMergeRefs([ref, ownRef]); // 👈 merge together\n * return <div ref={domRef}>...</div>\n * }\n */\n\nexport function useMergeRefs(refs, defaultValue) {\n return useCallbackRef(defaultValue, function (newValue) {\n return refs.forEach(function (ref) {\n return assignRef(ref, newValue);\n });\n });\n}","import { useState } from 'react';\n/**\n * creates a MutableRef with ref change callback\n * @param initialValue - initial ref value\n * @param {Function} callback - a callback to run when value changes\n *\n * @example\n * const ref = useCallbackRef(0, (newValue, oldValue) => console.log(oldValue, '->', newValue);\n * ref.current = 1;\n * // prints 0 -> 1\n *\n * @see https://reactjs.org/docs/hooks-reference.html#useref\n * @see https://github.com/theKashey/use-callback-ref#usecallbackref---to-replace-reactuseref\n * @returns {MutableRefObject}\n */\n\nexport function useCallbackRef(initialValue, callback) {\n var ref = useState(function () {\n return {\n // value\n value: initialValue,\n // last callback\n callback: callback,\n // \"memoized\" public interface\n facade: {\n get current() {\n return ref.value;\n },\n\n set current(value) {\n var last = ref.value;\n\n if (last !== value) {\n ref.value = value;\n ref.callback(value, last);\n }\n }\n\n }\n };\n })[0]; // update callback\n\n ref.callback = callback;\n return ref.facade;\n}","/**\n * Assigns a value for a given ref, no matter of the ref format\n * @param {RefObject} ref - a callback function or ref object\n * @param value - a new value\n *\n * @see https://github.com/theKashey/use-callback-ref#assignref\n * @example\n * const refObject = useRef();\n * const refFn = (ref) => {....}\n *\n * assignRef(refObject, \"refValue\");\n * assignRef(refFn, \"refValue\");\n */\nexport function assignRef(ref, value) {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref) {\n ref.current = value;\n }\n\n return ref;\n}","import * as React from 'react';\nexport var hiddenGuard = {\n width: '1px',\n height: '0px',\n padding: 0,\n overflow: 'hidden',\n position: 'fixed',\n top: '1px',\n left: '1px'\n};\n\nvar InFocusGuard = function InFocusGuard(_ref) {\n var children = _ref.children;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n key: \"guard-first\",\n \"data-focus-guard\": true,\n \"data-focus-auto-guard\": true,\n style: hiddenGuard\n }), children, children && /*#__PURE__*/React.createElement(\"div\", {\n key: \"guard-last\",\n \"data-focus-guard\": true,\n \"data-focus-auto-guard\": true,\n style: hiddenGuard\n }));\n};\n\nInFocusGuard.defaultProps = {\n children: null\n};\nexport default InFocusGuard;","import \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.promise\";\nimport \"core-js/modules/es6.object.to-string\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.object.assign\";\nimport \"core-js/modules/es6.object.set-prototype-of\";\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\n/* global Reflect, Promise */\nvar _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nvar _assign = function __assign() {\n _assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return _assign.apply(this, arguments);\n};\n\nexport { _assign as __assign };\nexport function __rest(s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length,\n r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,\n d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) {\n if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n }\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\nexport function __param(paramIndex, decorator) {\n return function (target, key) {\n decorator(target, key, paramIndex);\n };\n}\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\nexport function __generator(thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n}\nexport function __createBinding(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}\nexport function __exportStar(m, exports) {\n for (var p in m) {\n if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\n }\n}\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator,\n m = s && o[s],\n i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function next() {\n if (o && i >= o.length) o = void 0;\n return {\n value: o && o[i++],\n done: !o\n };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n}\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }\n\n return ar;\n}\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) {\n r[k] = a[j];\n }\n }\n\n return r;\n}\n;\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []),\n i,\n q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i;\n\n function verb(n) {\n if (g[n]) i[n] = function (v) {\n return new Promise(function (a, b) {\n q.push([n, v, a, b]) > 1 || resume(n, v);\n });\n };\n }\n\n function resume(n, v) {\n try {\n step(g[n](v));\n } catch (e) {\n settle(q[0][3], e);\n }\n }\n\n function step(r) {\n r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);\n }\n\n function fulfill(value) {\n resume(\"next\", value);\n }\n\n function reject(value) {\n resume(\"throw\", value);\n }\n\n function settle(f, v) {\n if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);\n }\n}\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) {\n throw e;\n }), verb(\"return\"), i[Symbol.iterator] = function () {\n return this;\n }, i;\n\n function verb(n, f) {\n i[n] = o[n] ? function (v) {\n return (p = !p) ? {\n value: __await(o[n](v)),\n done: n === \"return\"\n } : f ? f(v) : v;\n } : f;\n }\n}\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator],\n i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i);\n\n function verb(n) {\n i[n] = o[n] && function (v) {\n return new Promise(function (resolve, reject) {\n v = o[n](v), settle(resolve, reject, v.done, v.value);\n });\n };\n }\n\n function settle(resolve, reject, d, v) {\n Promise.resolve(v).then(function (v) {\n resolve({\n value: v,\n done: d\n });\n }, reject);\n }\n}\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) {\n Object.defineProperty(cooked, \"raw\", {\n value: raw\n });\n } else {\n cooked.raw = raw;\n }\n\n return cooked;\n}\n;\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) {\n if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\n }\n result.default = mod;\n return result;\n}\nexport function __importDefault(mod) {\n return mod && mod.__esModule ? mod : {\n default: mod\n };\n}\nexport function __classPrivateFieldGet(receiver, privateMap) {\n if (!privateMap.has(receiver)) {\n throw new TypeError(\"attempted to get private field on non-instance\");\n }\n\n return privateMap.get(receiver);\n}\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\n if (!privateMap.has(receiver)) {\n throw new TypeError(\"attempted to set private field on non-instance\");\n }\n\n privateMap.set(receiver, value);\n return value;\n}","import \"core-js/modules/es6.promise\";\nimport \"core-js/modules/es6.object.to-string\";\nimport * as tslib_1 from \"tslib\";\n\nfunction ItoI(a) {\n return a;\n}\n\nfunction innerCreateMedium(defaults, middleware) {\n if (middleware === void 0) {\n middleware = ItoI;\n }\n\n var buffer = [];\n var assigned = false;\n var medium = {\n read: function read() {\n if (assigned) {\n throw new Error('Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.');\n }\n\n if (buffer.length) {\n return buffer[buffer.length - 1];\n }\n\n return defaults;\n },\n useMedium: function useMedium(data) {\n var item = middleware(data, assigned);\n buffer.push(item);\n return function () {\n buffer = buffer.filter(function (x) {\n return x !== item;\n });\n };\n },\n assignSyncMedium: function assignSyncMedium(cb) {\n assigned = true;\n\n while (buffer.length) {\n var cbs = buffer;\n buffer = [];\n cbs.forEach(cb);\n }\n\n buffer = {\n push: function push(x) {\n return cb(x);\n },\n filter: function filter() {\n return buffer;\n }\n };\n },\n assignMedium: function assignMedium(cb) {\n assigned = true;\n var pendingQueue = [];\n\n if (buffer.length) {\n var cbs = buffer;\n buffer = [];\n cbs.forEach(cb);\n pendingQueue = buffer;\n }\n\n var executeQueue = function executeQueue() {\n var cbs = pendingQueue;\n pendingQueue = [];\n cbs.forEach(cb);\n };\n\n var cycle = function cycle() {\n return Promise.resolve().then(executeQueue);\n };\n\n cycle();\n buffer = {\n push: function push(x) {\n pendingQueue.push(x);\n cycle();\n },\n filter: function filter(_filter) {\n pendingQueue = pendingQueue.filter(_filter);\n return buffer;\n }\n };\n }\n };\n return medium;\n}\n\nexport function createMedium(defaults, middleware) {\n if (middleware === void 0) {\n middleware = ItoI;\n }\n\n return innerCreateMedium(defaults, middleware);\n}\nexport function createSidecarMedium(options) {\n if (options === void 0) {\n options = {};\n }\n\n var medium = innerCreateMedium(null);\n medium.options = tslib_1.__assign({\n async: true,\n ssr: false\n }, options);\n return medium;\n}","import { createMedium, createSidecarMedium } from 'use-sidecar';\nexport var mediumFocus = createMedium({}, function (_ref) {\n var target = _ref.target,\n currentTarget = _ref.currentTarget;\n return {\n target: target,\n currentTarget: currentTarget\n };\n});\nexport var mediumBlur = createMedium();\nexport var mediumEffect = createMedium();\nexport var mediumSidecar = createSidecarMedium({\n async: true\n});","import \"core-js/modules/es6.promise\";\nimport \"core-js/modules/es6.object.to-string\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport * as constants from 'focus-lock/constants';\nimport { useMergeRefs } from 'use-callback-ref';\nimport { hiddenGuard } from './FocusGuard';\nimport { mediumFocus, mediumBlur, mediumSidecar } from './medium';\nvar emptyArray = [];\nvar FocusLock = /*#__PURE__*/React.forwardRef(function (props, parentRef) {\n var _extends2;\n\n var _React$useState = React.useState(),\n realObserved = _React$useState[0],\n setObserved = _React$useState[1];\n\n var observed = React.useRef();\n var isActive = React.useRef(false);\n var originalFocusedElement = React.useRef(null);\n var children = props.children,\n disabled = props.disabled,\n noFocusGuards = props.noFocusGuards,\n persistentFocus = props.persistentFocus,\n crossFrame = props.crossFrame,\n autoFocus = props.autoFocus,\n allowTextSelection = props.allowTextSelection,\n group = props.group,\n className = props.className,\n whiteList = props.whiteList,\n _props$shards = props.shards,\n shards = _props$shards === void 0 ? emptyArray : _props$shards,\n _props$as = props.as,\n Container = _props$as === void 0 ? 'div' : _props$as,\n _props$lockProps = props.lockProps,\n containerProps = _props$lockProps === void 0 ? {} : _props$lockProps,\n SideCar = props.sideCar,\n shouldReturnFocus = props.returnFocus,\n onActivationCallback = props.onActivation,\n onDeactivationCallback = props.onDeactivation;\n\n var _React$useState2 = React.useState({}),\n id = _React$useState2[0]; // SIDE EFFECT CALLBACKS\n\n\n var onActivation = React.useCallback(function () {\n originalFocusedElement.current = originalFocusedElement.current || document && document.activeElement;\n\n if (observed.current && onActivationCallback) {\n onActivationCallback(observed.current);\n }\n\n isActive.current = true;\n }, [onActivationCallback]);\n var onDeactivation = React.useCallback(function () {\n isActive.current = false;\n\n if (onDeactivationCallback) {\n onDeactivationCallback(observed.current);\n }\n }, [onDeactivationCallback]);\n var returnFocus = React.useCallback(function (allowDefer) {\n var current = originalFocusedElement.current;\n\n if (Boolean(shouldReturnFocus) && current && current.focus) {\n var focusOptions = typeof shouldReturnFocus === 'object' ? shouldReturnFocus : undefined;\n originalFocusedElement.current = null;\n\n if (allowDefer) {\n // React might return focus after update\n // it's safer to defer the action\n Promise.resolve().then(function () {\n return current.focus(focusOptions);\n });\n } else {\n current.focus(focusOptions);\n }\n }\n }, [shouldReturnFocus]); // MEDIUM CALLBACKS\n\n var onFocus = React.useCallback(function (event) {\n if (isActive.current) {\n mediumFocus.useMedium(event);\n }\n }, []);\n var onBlur = mediumBlur.useMedium; // REF PROPAGATION\n // not using real refs due to race conditions\n\n var setObserveNode = React.useCallback(function (newObserved) {\n if (observed.current !== newObserved) {\n observed.current = newObserved;\n setObserved(newObserved);\n }\n }, []);\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof allowTextSelection !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn('React-Focus-Lock: allowTextSelection is deprecated and enabled by default');\n }\n\n React.useEffect(function () {\n if (!observed.current) {\n // eslint-disable-next-line no-console\n console.error('FocusLock: could not obtain ref to internal node');\n }\n }, []);\n }\n\n var lockProps = _extends((_extends2 = {}, _extends2[constants.FOCUS_DISABLED] = disabled && 'disabled', _extends2[constants.FOCUS_GROUP] = group, _extends2), containerProps);\n\n var hasLeadingGuards = noFocusGuards !== true;\n var hasTailingGuards = hasLeadingGuards && noFocusGuards !== 'tail';\n var mergedRef = useMergeRefs([parentRef, setObserveNode]);\n return /*#__PURE__*/React.createElement(React.Fragment, null, hasLeadingGuards && [/*#__PURE__*/React.createElement(\"div\", {\n key: \"guard-first\",\n \"data-focus-guard\": true,\n tabIndex: disabled ? -1 : 0,\n style: hiddenGuard\n }),\n /*#__PURE__*/\n // nearest focus guard\n React.createElement(\"div\", {\n key: \"guard-nearest\",\n \"data-focus-guard\": true,\n tabIndex: disabled ? -1 : 1,\n style: hiddenGuard\n }) // first tabbed element guard\n ], !disabled && /*#__PURE__*/React.createElement(SideCar, {\n id: id,\n sideCar: mediumSidecar,\n observed: realObserved,\n disabled: disabled,\n persistentFocus: persistentFocus,\n crossFrame: crossFrame,\n autoFocus: autoFocus,\n whiteList: whiteList,\n shards: shards,\n onActivation: onActivation,\n onDeactivation: onDeactivation,\n returnFocus: returnFocus\n }), /*#__PURE__*/React.createElement(Container, _extends({\n ref: mergedRef\n }, lockProps, {\n className: className,\n onBlur: onBlur,\n onFocus: onFocus\n }), children), hasTailingGuards && /*#__PURE__*/React.createElement(\"div\", {\n \"data-focus-guard\": true,\n tabIndex: disabled ? -1 : 0,\n style: hiddenGuard\n }));\n});\nFocusLock.defaultProps = {\n children: undefined,\n disabled: false,\n returnFocus: false,\n noFocusGuards: false,\n autoFocus: true,\n persistentFocus: false,\n crossFrame: true,\n allowTextSelection: undefined,\n group: undefined,\n className: undefined,\n whiteList: undefined,\n shards: undefined,\n as: 'div',\n lockProps: {},\n onActivation: undefined,\n onDeactivation: undefined\n};\nexport default FocusLock;","export var FOCUS_GROUP = 'data-focus-lock';\nexport var FOCUS_DISABLED = 'data-focus-lock-disabled';\nexport var FOCUS_ALLOW = 'data-no-focus-lock';\nexport var FOCUS_AUTO = 'data-autofocus-inside';","import \"core-js/modules/es6.function.name\";\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport React, { PureComponent } from 'react';\n\nfunction withSideEffect(reducePropsToState, handleStateChangeOnClient) {\n if (process.env.NODE_ENV !== \"production\") {\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\n function getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n }\n\n return function wrap(WrappedComponent) {\n if (process.env.NODE_ENV !== \"production\") {\n if (typeof WrappedComponent !== 'function') {\n throw new Error('Expected WrappedComponent to be a React component.');\n }\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 handleStateChangeOnClient(state);\n }\n\n var SideEffect = /*#__PURE__*/function (_PureComponent) {\n _inheritsLoose(SideEffect, _PureComponent);\n\n function SideEffect() {\n return _PureComponent.apply(this, arguments) || this;\n } // Try to use displayName of wrapped component\n\n\n SideEffect.peek = function peek() {\n return state;\n };\n\n var _proto = SideEffect.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\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.createElement(WrappedComponent, this.props);\n };\n\n return SideEffect;\n }(PureComponent);\n\n _defineProperty(SideEffect, \"displayName\", \"SideEffect(\" + getDisplayName(WrappedComponent) + \")\");\n\n return SideEffect;\n };\n}\n\nexport default withSideEffect;","export default function _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}","export default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}","export var toArray = function toArray(a) {\n var ret = Array(a.length);\n\n for (var i = 0; i < a.length; ++i) {\n ret[i] = a[i];\n }\n\n return ret;\n};\nexport var arrayFind = function arrayFind(array, search) {\n return array.filter(function (a) {\n return a === search;\n })[0];\n};\nexport var asArray = function asArray(a) {\n return Array.isArray(a) ? a : [a];\n};","import { toArray } from './utils/array';\nimport { FOCUS_ALLOW } from './constants';\n\nvar focusIsHidden = function focusIsHidden() {\n return document && toArray(document.querySelectorAll('[' + FOCUS_ALLOW + ']')).some(function (node) {\n return node.contains(document.activeElement);\n });\n};\n\nexport default focusIsHidden;","import \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\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\nimport { FOCUS_DISABLED, FOCUS_GROUP } from '../constants';\nimport { asArray, toArray } from './array';\n\nvar filterNested = function filterNested(nodes) {\n var l = nodes.length;\n\n for (var i = 0; i < l; i += 1) {\n var _loop = function _loop(j) {\n if (i !== j) {\n if (nodes[i].contains(nodes[j])) {\n return {\n v: filterNested(nodes.filter(function (x) {\n return x !== nodes[j];\n }))\n };\n }\n }\n };\n\n for (var j = 0; j < l; j += 1) {\n var _ret = _loop(j);\n\n if ((typeof _ret === 'undefined' ? 'undefined' : _typeof(_ret)) === \"object\") return _ret.v;\n }\n }\n\n return nodes;\n};\n\nvar getTopParent = function getTopParent(node) {\n return node.parentNode ? getTopParent(node.parentNode) : node;\n};\n\nvar getAllAffectedNodes = function getAllAffectedNodes(node) {\n var nodes = asArray(node);\n return nodes.filter(Boolean).reduce(function (acc, currentNode) {\n var group = currentNode.getAttribute(FOCUS_GROUP);\n acc.push.apply(acc, group ? filterNested(toArray(getTopParent(currentNode).querySelectorAll('[' + FOCUS_GROUP + '=\"' + group + '\"]:not([' + FOCUS_DISABLED + '=\"disabled\"])'))) : [currentNode]);\n return acc;\n }, []);\n};\n\nexport default getAllAffectedNodes;","import getAllAffectedNodes from './utils/all-affected';\nimport { arrayFind, toArray } from './utils/array';\n\nvar focusInFrame = function focusInFrame(frame) {\n return frame === document.activeElement;\n};\n\nvar focusInsideIframe = function focusInsideIframe(topNode) {\n return !!arrayFind(toArray(topNode.querySelectorAll('iframe')), focusInFrame);\n};\n\nvar focusInside = function focusInside(topNode) {\n var activeElement = document && document.activeElement;\n\n if (!activeElement || activeElement.dataset && activeElement.dataset.focusGuard) {\n return false;\n }\n\n return getAllAffectedNodes(topNode).reduce(function (result, node) {\n return result || node.contains(activeElement) || focusInsideIframe(node);\n }, false);\n};\n\nexport default focusInside;","import { toArray } from './array';\nexport var tabSort = function tabSort(a, b) {\n var tabDiff = a.tabIndex - b.tabIndex;\n var indexDiff = a.index - b.index;\n\n if (tabDiff) {\n if (!a.tabIndex) return 1;\n if (!b.tabIndex) return -1;\n }\n\n return tabDiff || indexDiff;\n};\nexport var orderByTabIndex = function orderByTabIndex(nodes, filterNegative, keepGuards) {\n return toArray(nodes).map(function (node, index) {\n return {\n node: node,\n index: index,\n tabIndex: keepGuards && node.tabIndex === -1 ? (node.dataset || {}).focusGuard ? 0 : -1 : node.tabIndex\n };\n }).filter(function (data) {\n return !filterNegative || data.tabIndex >= 0;\n }).sort(tabSort);\n};","export default ['button:enabled:not([readonly])', 'select:enabled:not([readonly])', 'textarea:enabled:not([readonly])', 'input:enabled:not([readonly])', 'a[href]', 'area[href]', 'iframe', 'object', 'embed', '[tabindex]', '[contenteditable]', '[autofocus]'];","import tabbables from './tabbables';\nimport { toArray } from './array';\nimport { FOCUS_AUTO } from '../constants';\nvar queryTabbables = tabbables.join(',');\nvar queryGuardTabbables = queryTabbables + ', [data-focus-guard]';\nexport var getFocusables = function getFocusables(parents, withGuards) {\n return parents.reduce(function (acc, parent) {\n return acc.concat( // add all tabbables inside\n toArray(parent.querySelectorAll(withGuards ? queryGuardTabbables : queryTabbables)), // add if node is tabble itself\n parent.parentNode ? toArray(parent.parentNode.querySelectorAll(tabbables.join(','))).filter(function (node) {\n return node === parent;\n }) : []);\n }, []);\n};\nexport var getParentAutofocusables = function getParentAutofocusables(parent) {\n var parentFocus = parent.querySelectorAll('[' + FOCUS_AUTO + ']');\n return toArray(parentFocus).map(function (node) {\n return getFocusables([node]);\n }).reduce(function (acc, nodes) {\n return acc.concat(nodes);\n }, []);\n};","import { orderByTabIndex } from './tabOrder';\nimport { getFocusables, getParentAutofocusables } from './tabUtils';\nimport { toArray } from './array';\n\nvar isElementHidden = function isElementHidden(computedStyle) {\n if (!computedStyle || !computedStyle.getPropertyValue) {\n return false;\n }\n\n return computedStyle.getPropertyValue('display') === 'none' || computedStyle.getPropertyValue('visibility') === 'hidden';\n};\n\nexport var isVisible = function isVisible(node) {\n return !node || node === document || node.nodeType === Node.DOCUMENT_NODE || !isElementHidden(window.getComputedStyle(node, null)) && isVisible(node.parentNode && node.parentNode.nodeType === node.DOCUMENT_FRAGMENT_NODE ? node.parentNode.host : node.parentNode);\n};\nexport var notHiddenInput = function notHiddenInput(node) {\n return !((node.tagName === 'INPUT' || node.tagName === 'BUTTON') && (node.type === 'hidden' || node.disabled));\n};\n\nvar getParents = function getParents(node) {\n var parents = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n parents.push(node);\n\n if (node.parentNode) {\n getParents(node.parentNode, parents);\n }\n\n return parents;\n};\n\nexport var getCommonParent = function getCommonParent(nodea, nodeb) {\n var parentsA = getParents(nodea);\n var parentsB = getParents(nodeb);\n\n for (var i = 0; i < parentsA.length; i += 1) {\n var currentParent = parentsA[i];\n\n if (parentsB.indexOf(currentParent) >= 0) {\n return currentParent;\n }\n }\n\n return false;\n};\nexport var filterFocusable = function filterFocusable(nodes) {\n return toArray(nodes).filter(function (node) {\n return isVisible(node);\n }).filter(function (node) {\n return notHiddenInput(node);\n });\n};\nexport var getTabbableNodes = function getTabbableNodes(topNodes, withGuards) {\n return orderByTabIndex(filterFocusable(getFocusables(topNodes, withGuards)), true, withGuards);\n};\n/**\n * actually anything focusable\n */\n\nexport var getAllTabbableNodes = function getAllTabbableNodes(topNodes) {\n return orderByTabIndex(filterFocusable(getFocusables(topNodes)), false);\n};\nexport var parentAutofocusables = function parentAutofocusables(topNode) {\n return filterFocusable(getParentAutofocusables(topNode));\n};","import \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.array.iterator\";\nimport \"core-js/modules/es6.object.to-string\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.set\";\nimport \"core-js/modules/es6.function.name\";\n\nvar isRadio = function isRadio(node) {\n return node.tagName === 'INPUT' && node.type === 'radio';\n};\n\nvar findSelectedRadio = function findSelectedRadio(node, nodes) {\n return nodes.filter(isRadio).filter(function (el) {\n return el.name === node.name;\n }).filter(function (el) {\n return el.checked;\n })[0] || node;\n};\n\nexport var correctNode = function correctNode(node, nodes) {\n if (isRadio(node) && node.name) {\n return findSelectedRadio(node, nodes);\n }\n\n return node;\n};\nexport var correctNodes = function correctNodes(nodes) {\n // IE11 has no Set constructor\n var resultSet = new Set();\n nodes.forEach(function (node) {\n return resultSet.add(correctNode(node, nodes));\n }); // using filter to support IE11\n\n return nodes.filter(function (node) {\n return resultSet.has(node);\n });\n};","import { correctNode } from './correctFocus';\n\nvar pickFirstFocus = function pickFirstFocus(nodes) {\n if (nodes[0] && nodes.length > 1) {\n return correctNode(nodes[0], nodes);\n }\n\n return nodes[0];\n};\n\nexport var pickFocusable = function pickFocusable(nodes, index) {\n if (nodes.length > 1) {\n return nodes.indexOf(correctNode(nodes[index], nodes));\n }\n\n return index;\n};\nexport default pickFirstFocus;","import \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.array.iterator\";\nimport \"core-js/modules/es6.object.to-string\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.map\";\nimport { getCommonParent, getTabbableNodes, getAllTabbableNodes, parentAutofocusables } from './utils/DOMutils';\nimport pickFirstFocus, { pickFocusable } from './utils/firstFocus';\nimport getAllAffectedNodes from './utils/all-affected';\nimport { asArray } from './utils/array';\nimport { correctNodes } from './utils/correctFocus';\n\nvar findAutoFocused = function findAutoFocused(autoFocusables) {\n return function (node) {\n return !!node.autofocus || node.dataset && !!node.dataset.autofocus || autoFocusables.indexOf(node) >= 0;\n };\n};\n\nvar isGuard = function isGuard(node) {\n return node && node.dataset && node.dataset.focusGuard;\n};\n\nvar notAGuard = function notAGuard(node) {\n return !isGuard(node);\n};\n\nexport var NEW_FOCUS = 'NEW_FOCUS';\nexport var newFocus = function newFocus(innerNodes, outerNodes, activeElement, lastNode) {\n var cnt = innerNodes.length;\n var firstFocus = innerNodes[0];\n var lastFocus = innerNodes[cnt - 1];\n var isOnGuard = isGuard(activeElement); // focus is inside\n\n if (innerNodes.indexOf(activeElement) >= 0) {\n return undefined;\n }\n\n var activeIndex = outerNodes.indexOf(activeElement);\n var lastIndex = outerNodes.indexOf(lastNode || activeIndex);\n var lastNodeInside = innerNodes.indexOf(lastNode);\n var indexDiff = activeIndex - lastIndex;\n var firstNodeIndex = outerNodes.indexOf(firstFocus);\n var lastNodeIndex = outerNodes.indexOf(lastFocus);\n var correctedNodes = correctNodes(outerNodes);\n var correctedIndexDiff = correctedNodes.indexOf(activeElement) - correctedNodes.indexOf(lastNode || activeIndex);\n var returnFirstNode = pickFocusable(innerNodes, 0);\n var returnLastNode = pickFocusable(innerNodes, cnt - 1); // new focus\n\n if (activeIndex === -1 || lastNodeInside === -1) {\n return NEW_FOCUS;\n } // old focus\n\n\n if (!indexDiff && lastNodeInside >= 0) {\n return lastNodeInside;\n } // first element\n\n\n if (activeIndex <= firstNodeIndex && isOnGuard && Math.abs(indexDiff) > 1) {\n return returnLastNode;\n } // last element\n\n\n if (activeIndex >= lastNodeIndex && isOnGuard && Math.abs(indexDiff) > 1) {\n return returnFirstNode;\n } // jump out, but not on the guard\n\n\n if (indexDiff && Math.abs(correctedIndexDiff) > 1) {\n return lastNodeInside;\n } // focus above lock\n\n\n if (activeIndex <= firstNodeIndex) {\n return returnLastNode;\n } // focus below lock\n\n\n if (activeIndex > lastNodeIndex) {\n return returnFirstNode;\n } // index is inside tab order, but outside Lock\n\n\n if (indexDiff) {\n if (Math.abs(indexDiff) > 1) {\n return lastNodeInside;\n }\n\n return (cnt + lastNodeInside + indexDiff) % cnt;\n } // do nothing\n\n\n return undefined;\n};\n\nvar getTopCommonParent = function getTopCommonParent(baseActiveElement, leftEntry, rightEntries) {\n var activeElements = asArray(baseActiveElement);\n var leftEntries = asArray(leftEntry);\n var activeElement = activeElements[0];\n var topCommon = null;\n leftEntries.filter(Boolean).forEach(function (entry) {\n topCommon = getCommonParent(topCommon || entry, entry) || topCommon;\n rightEntries.filter(Boolean).forEach(function (subEntry) {\n var common = getCommonParent(activeElement, subEntry);\n\n if (common) {\n if (!topCommon || common.contains(topCommon)) {\n topCommon = common;\n } else {\n topCommon = getCommonParent(common, topCommon);\n }\n }\n });\n });\n return topCommon;\n};\n\nvar allParentAutofocusables = function allParentAutofocusables(entries) {\n return entries.reduce(function (acc, node) {\n return acc.concat(parentAutofocusables(node));\n }, []);\n};\n\nvar reorderNodes = function reorderNodes(srcNodes, dstNodes) {\n var remap = new Map(); // no Set(dstNodes) for IE11 :(\n\n dstNodes.forEach(function (entity) {\n return remap.set(entity.node, entity);\n }); // remap to dstNodes\n\n return srcNodes.map(function (node) {\n return remap.get(node);\n }).filter(Boolean);\n};\n\nexport var getFocusabledIn = function getFocusabledIn(topNode) {\n var entries = getAllAffectedNodes(topNode).filter(notAGuard);\n var commonParent = getTopCommonParent(topNode, topNode, entries);\n var outerNodes = getTabbableNodes([commonParent], true);\n var innerElements = getTabbableNodes(entries).filter(function (_ref) {\n var node = _ref.node;\n return notAGuard(node);\n }).map(function (_ref2) {\n var node = _ref2.node;\n return node;\n });\n return outerNodes.map(function (_ref3) {\n var node = _ref3.node,\n index = _ref3.index;\n return {\n node: node,\n index: index,\n lockItem: innerElements.indexOf(node) >= 0,\n guard: isGuard(node)\n };\n });\n};\n\nvar getFocusMerge = function getFocusMerge(topNode, lastNode) {\n var activeElement = document && document.activeElement;\n var entries = getAllAffectedNodes(topNode).filter(notAGuard);\n var commonParent = getTopCommonParent(activeElement || topNode, topNode, entries);\n var anyFocusable = getAllTabbableNodes(entries);\n var innerElements = getTabbableNodes(entries).filter(function (_ref4) {\n var node = _ref4.node;\n return notAGuard(node);\n });\n\n if (!innerElements[0]) {\n innerElements = anyFocusable;\n\n if (!innerElements[0]) {\n return undefined;\n }\n }\n\n var outerNodes = getAllTabbableNodes([commonParent]).map(function (_ref5) {\n var node = _ref5.node;\n return node;\n });\n var orderedInnerElements = reorderNodes(outerNodes, innerElements);\n var innerNodes = orderedInnerElements.map(function (_ref6) {\n var node = _ref6.node;\n return node;\n });\n var newId = newFocus(innerNodes, outerNodes, activeElement, lastNode);\n\n if (newId === \"NEW_FOCUS\") {\n var autoFocusable = anyFocusable.map(function (_ref7) {\n var node = _ref7.node;\n return node;\n }).filter(findAutoFocused(allParentAutofocusables(entries)));\n return {\n node: autoFocusable && autoFocusable.length ? pickFirstFocus(autoFocusable) : pickFirstFocus(innerNodes)\n };\n }\n\n if (newId === undefined) {\n return newId;\n }\n\n return orderedInnerElements[newId];\n};\n\nexport default getFocusMerge;","import getFocusMerge from './focusMerge';\nexport var focusOn = function focusOn(target) {\n target.focus();\n\n if (target.contentWindow) {\n target.contentWindow.focus();\n }\n};\nvar guardCount = 0;\nvar lockDisabled = false;\nexport default (function (topNode, lastNode) {\n var focusable = getFocusMerge(topNode, lastNode);\n\n if (lockDisabled) {\n return;\n }\n\n if (focusable) {\n if (guardCount > 2) {\n // eslint-disable-next-line no-console\n console.error('FocusLock: focus-fighting detected. Only one focus management system could be active. ' + 'See https://github.com/theKashey/focus-lock/#focus-fighting');\n lockDisabled = true;\n setTimeout(function () {\n lockDisabled = false;\n }, 1);\n return;\n }\n\n guardCount++;\n focusOn(focusable.node);\n guardCount--;\n }\n});","import tabHook from './tabHook';\nimport focusMerge, { getFocusabledIn } from './focusMerge';\nimport focusInside from './focusInside';\nimport focusIsHidden from './focusIsHidden';\nimport setFocus from './setFocus';\nimport * as constants from './constants';\nimport getAllAffectedNodes from './utils/all-affected';\nexport { tabHook, focusInside, focusIsHidden, focusMerge, getFocusabledIn, constants, getAllAffectedNodes };\nexport default setFocus;","export function deferAction(action) {\n // Hidding setImmediate from Webpack to avoid inserting polyfill\n var _window = window,\n setImmediate = _window.setImmediate;\n\n if (typeof setImmediate !== 'undefined') {\n setImmediate(action);\n } else {\n setTimeout(action, 1);\n }\n}\nexport var inlineProp = function inlineProp(name, value) {\n var obj = {};\n obj[name] = value;\n return obj;\n};","import * as React from 'react';\nimport withSideEffect from 'react-clientside-effect';\nimport moveFocusInside, { focusInside, focusIsHidden, getFocusabledIn } from 'focus-lock';\nimport { deferAction } from './util';\nimport { mediumFocus, mediumBlur, mediumEffect } from './medium';\n\nvar focusOnBody = function focusOnBody() {\n return document && document.activeElement === document.body;\n};\n\nvar isFreeFocus = function isFreeFocus() {\n return focusOnBody() || focusIsHidden();\n};\n\nvar lastActiveTrap = null;\nvar lastActiveFocus = null;\nvar lastPortaledElement = null;\nvar focusWasOutsideWindow = false;\n\nvar defaultWhitelist = function defaultWhitelist() {\n return true;\n};\n\nvar focusWhitelisted = function focusWhitelisted(activeElement) {\n return (lastActiveTrap.whiteList || defaultWhitelist)(activeElement);\n};\n\nvar recordPortal = function recordPortal(observerNode, portaledElement) {\n lastPortaledElement = {\n observerNode: observerNode,\n portaledElement: portaledElement\n };\n};\n\nvar focusIsPortaledPair = function focusIsPortaledPair(element) {\n return lastPortaledElement && lastPortaledElement.portaledElement === element;\n};\n\nfunction autoGuard(startIndex, end, step, allNodes) {\n var lastGuard = null;\n var i = startIndex;\n\n do {\n var item = allNodes[i];\n\n if (item.guard) {\n if (item.node.dataset.focusAutoGuard) {\n lastGuard = item;\n }\n } else if (item.lockItem) {\n if (i !== startIndex) {\n // we will tab to the next element\n return;\n }\n\n lastGuard = null;\n } else {\n break;\n }\n } while ((i += step) !== end);\n\n if (lastGuard) {\n lastGuard.node.tabIndex = 0;\n }\n}\n\nvar extractRef = function extractRef(ref) {\n return ref && 'current' in ref ? ref.current : ref;\n};\n\nvar focusWasOutside = function focusWasOutside(crossFrameOption) {\n if (crossFrameOption) {\n // with cross frame return true for any value\n return Boolean(focusWasOutsideWindow);\n } // in other case return only of focus went a while aho\n\n\n return focusWasOutsideWindow === 'meanwhile';\n};\n\nvar activateTrap = function activateTrap() {\n var result = false;\n\n if (lastActiveTrap) {\n var _lastActiveTrap = lastActiveTrap,\n observed = _lastActiveTrap.observed,\n persistentFocus = _lastActiveTrap.persistentFocus,\n autoFocus = _lastActiveTrap.autoFocus,\n shards = _lastActiveTrap.shards,\n crossFrame = _lastActiveTrap.crossFrame;\n var workingNode = observed || lastPortaledElement && lastPortaledElement.portaledElement;\n var activeElement = document && document.activeElement;\n\n if (workingNode) {\n var workingArea = [workingNode].concat(shards.map(extractRef).filter(Boolean));\n\n if (!activeElement || focusWhitelisted(activeElement)) {\n if (persistentFocus || focusWasOutside(crossFrame) || !isFreeFocus() || !lastActiveFocus && autoFocus) {\n if (workingNode && !(focusInside(workingArea) || focusIsPortaledPair(activeElement, workingNode))) {\n if (document && !lastActiveFocus && activeElement && !autoFocus) {\n // Check if blur() exists, which is missing on certain elements on IE\n if (activeElement.blur) {\n activeElement.blur();\n }\n\n document.body.focus();\n } else {\n result = moveFocusInside(workingArea, lastActiveFocus);\n lastPortaledElement = {};\n }\n }\n\n focusWasOutsideWindow = false;\n lastActiveFocus = document && document.activeElement;\n }\n }\n\n if (document) {\n var newActiveElement = document && document.activeElement;\n var allNodes = getFocusabledIn(workingArea);\n var focusedIndex = allNodes.map(function (_ref) {\n var node = _ref.node;\n return node;\n }).indexOf(newActiveElement);\n\n if (focusedIndex > -1) {\n // remove old focus\n allNodes.filter(function (_ref2) {\n var guard = _ref2.guard,\n node = _ref2.node;\n return guard && node.dataset.focusAutoGuard;\n }).forEach(function (_ref3) {\n var node = _ref3.node;\n return node.removeAttribute('tabIndex');\n });\n autoGuard(focusedIndex, allNodes.length, +1, allNodes);\n autoGuard(focusedIndex, -1, -1, allNodes);\n }\n }\n }\n }\n\n return result;\n};\n\nvar onTrap = function onTrap(event) {\n if (activateTrap() && event) {\n // prevent scroll jump\n event.stopPropagation();\n event.preventDefault();\n }\n};\n\nvar onBlur = function onBlur() {\n return deferAction(activateTrap);\n};\n\nvar onFocus = function onFocus(event) {\n // detect portal\n var source = event.target;\n var currentNode = event.currentTarget;\n\n if (!currentNode.contains(source)) {\n recordPortal(currentNode, source);\n }\n};\n\nvar FocusWatcher = function FocusWatcher() {\n return null;\n};\n\nvar FocusTrap = function FocusTrap(_ref4) {\n var children = _ref4.children;\n return /*#__PURE__*/React.createElement(\"div\", {\n onBlur: onBlur,\n onFocus: onFocus\n }, children);\n};\n\nvar onWindowBlur = function onWindowBlur() {\n focusWasOutsideWindow = 'just'; // using setTimeout to set this variable after React/sidecar reaction\n\n setTimeout(function () {\n focusWasOutsideWindow = 'meanwhile';\n }, 0);\n};\n\nvar attachHandler = function attachHandler() {\n document.addEventListener('focusin', onTrap, true);\n document.addEventListener('focusout', onBlur);\n window.addEventListener('blur', onWindowBlur);\n};\n\nvar detachHandler = function detachHandler() {\n document.removeEventListener('focusin', onTrap, true);\n document.removeEventListener('focusout', onBlur);\n window.removeEventListener('blur', onWindowBlur);\n};\n\nfunction reducePropsToState(propsList) {\n return propsList.filter(function (_ref5) {\n var disabled = _ref5.disabled;\n return !disabled;\n });\n}\n\nfunction handleStateChangeOnClient(traps) {\n var trap = traps.slice(-1)[0];\n\n if (trap && !lastActiveTrap) {\n attachHandler();\n }\n\n var lastTrap = lastActiveTrap;\n var sameTrap = lastTrap && trap && trap.id === lastTrap.id;\n lastActiveTrap = trap;\n\n if (lastTrap && !sameTrap) {\n lastTrap.onDeactivation(); // return focus only of last trap was removed\n\n if (!traps.filter(function (_ref6) {\n var id = _ref6.id;\n return id === lastTrap.id;\n }).length) {\n // allow defer is no other trap is awaiting restore\n lastTrap.returnFocus(!trap);\n }\n }\n\n if (trap) {\n lastActiveFocus = null;\n\n if (!sameTrap || lastTrap.observed !== trap.observed) {\n trap.onActivation();\n }\n\n activateTrap(true);\n deferAction(activateTrap);\n } else {\n detachHandler();\n lastActiveFocus = null;\n }\n} // bind medium\n\n\nmediumFocus.assignSyncMedium(onFocus);\nmediumBlur.assignMedium(onBlur);\nmediumEffect.assignMedium(function (cb) {\n return cb({\n moveFocusInside: moveFocusInside,\n focusInside: focusInside\n });\n});\nexport default withSideEffect(reducePropsToState, handleStateChangeOnClient)(FocusWatcher);","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport FocusLockUI from './Lock';\nimport FocusTrap from './Trap';\n/* that would be a BREAKING CHANGE!\n// delaying sidecar execution till the first usage\nconst RequireSideCar = (props) => {\n // eslint-disable-next-line global-require\n const SideCar = require('./Trap').default;\n return <SideCar {...props} />;\n};\n*/\n\nvar FocusLockCombination = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(FocusLockUI, _extends({\n sideCar: FocusTrap,\n ref: ref\n }, props));\n});\n\nvar _ref = FocusLockUI.propTypes || {},\n sideCar = _ref.sideCar;\n\nexport default FocusLockCombination;","import FocusLock from './Combination';\nexport * from './UI';\nexport default FocusLock;","'use strict';\nvar global = require('./_global');\nvar each = require('./_array-methods')(0);\nvar redefine = require('./_redefine');\nvar meta = require('./_meta');\nvar assign = require('./_object-assign');\nvar weak = require('./_collection-weak');\nvar isObject = require('./_is-object');\nvar validate = require('./_validate-collection');\nvar NATIVE_WEAK_MAP = require('./_validate-collection');\nvar IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global;\nvar WEAK_MAP = 'WeakMap';\nvar getWeak = meta.getWeak;\nvar isExtensible = Object.isExtensible;\nvar uncaughtFrozenStore = weak.ufstore;\nvar InternalMap;\n\nvar wrapper = function (get) {\n return function WeakMap() {\n return get(this, arguments.length > 0 ? arguments[0] : undefined);\n };\n};\n\nvar methods = {\n // 23.3.3.3 WeakMap.prototype.get(key)\n get: function get(key) {\n if (isObject(key)) {\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, WEAK_MAP)).get(key);\n return data ? data[this._i] : undefined;\n }\n },\n // 23.3.3.5 WeakMap.prototype.set(key, value)\n set: function set(key, value) {\n return weak.def(validate(this, WEAK_MAP), key, value);\n }\n};\n\n// 23.3 WeakMap Objects\nvar $WeakMap = module.exports = require('./_collection')(WEAK_MAP, wrapper, methods, weak, true, true);\n\n// IE11 WeakMap frozen keys fix\nif (NATIVE_WEAK_MAP && IS_IE11) {\n InternalMap = weak.getConstructor(wrapper, WEAK_MAP);\n assign(InternalMap.prototype, methods);\n meta.NEED = true;\n each(['delete', 'has', 'get', 'set'], function (key) {\n var proto = $WeakMap.prototype;\n var method = proto[key];\n redefine(proto, key, function (a, b) {\n // store frozen objects on internal weakmap shim\n if (isObject(a) && !isExtensible(a)) {\n if (!this._f) this._f = new InternalMap();\n var result = this._f[key](a, b);\n return key == 'set' ? this : result;\n // store all the rest on native weakmap\n } return method.call(this, a, b);\n });\n });\n}\n","// 26.1.2 Reflect.construct(target, argumentsList [, newTarget])\nvar $export = require('./_export');\nvar create = require('./_object-create');\nvar aFunction = require('./_a-function');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar fails = require('./_fails');\nvar bind = require('./_bind');\nvar rConstruct = (require('./_global').Reflect || {}).construct;\n\n// MS Edge supports only 2 arguments and argumentsList argument is optional\n// FF Nightly sets third argument as `new.target`, but does not create `this` from it\nvar NEW_TARGET_BUG = fails(function () {\n function F() { /* empty */ }\n return !(rConstruct(function () { /* empty */ }, [], F) instanceof F);\n});\nvar ARGS_BUG = !fails(function () {\n rConstruct(function () { /* empty */ });\n});\n\n$export($export.S + $export.F * (NEW_TARGET_BUG || ARGS_BUG), 'Reflect', {\n construct: function construct(Target, args /* , newTarget */) {\n aFunction(Target);\n anObject(args);\n var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);\n if (ARGS_BUG && !NEW_TARGET_BUG) return rConstruct(Target, args, newTarget);\n if (Target == newTarget) {\n // w/o altered newTarget, optimization for 0-4 arguments\n switch (args.length) {\n case 0: return new Target();\n case 1: return new Target(args[0]);\n case 2: return new Target(args[0], args[1]);\n case 3: return new Target(args[0], args[1], args[2]);\n case 4: return new Target(args[0], args[1], args[2], args[3]);\n }\n // w/o altered newTarget, lot of arguments case\n var $args = [null];\n $args.push.apply($args, args);\n return new (bind.apply(Target, $args))();\n }\n // with altered newTarget, not support built-in constructors\n var proto = newTarget.prototype;\n var instance = create(isObject(proto) ? proto : Object.prototype);\n var result = Function.apply.call(Target, instance, args);\n return isObject(result) ? result : instance;\n }\n});\n","'use strict';\n// 22.1.3.9 Array.prototype.findIndex(predicate, thisArg = undefined)\nvar $export = require('./_export');\nvar $find = require('./_array-methods')(6);\nvar KEY = 'findIndex';\nvar forced = true;\n// Shouldn't skip holes\nif (KEY in []) Array(1)[KEY](function () { forced = false; });\n$export($export.P + $export.F * forced, 'Array', {\n findIndex: function findIndex(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\nrequire('./_add-to-unscopables')(KEY);\n","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;","var $export = require('./_export');\nvar fails = require('./_fails');\nvar defined = require('./_defined');\nvar quot = /\"/g;\n// B.2.3.2.1 CreateHTML(string, tag, attribute, value)\nvar createHTML = function (string, tag, attribute, value) {\n var S = String(defined(string));\n var p1 = '<' + tag;\n if (attribute !== '') p1 += ' ' + attribute + '=\"' + String(value).replace(quot, '"') + '\"';\n return p1 + '>' + S + '</' + tag + '>';\n};\nmodule.exports = function (NAME, exec) {\n var O = {};\n O[NAME] = exec(createHTML);\n $export($export.P + $export.F * fails(function () {\n var test = ''[NAME]('\"');\n return test !== test.toLowerCase() || test.split('\"').length > 3;\n }), 'String', O);\n};\n","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;","// H/T https://gist.github.com/hagemann/382adfc57adbd5af078dc93feef01fe1\nfunction slugify(string) {\n const a =\n \"à áâäæãåÄăąçćÄÄ‘ÄèéêëēėęěğǵḧîïÃīįìłḿñńǹňôöòóœøÅõőṕŕřßśšşșťțûüùúūǘůűųẃáºÃ¿Ã½Å¾ÅºÅ¼Â·/_,:;\"\n const b =\n \"aaaaaaaaaacccddeeeeeeeegghiiiiiilmnnnnoooooooooprrsssssttuuuuuuuuuwxyyzzz------\"\n const p = new RegExp(a.split(\"\").join(\"|\"), \"g\")\n\n return string\n .toString()\n .toLowerCase()\n .replace(/\\s+/g, \"-\") // Replace spaces with -\n .replace(p, c => b.charAt(a.indexOf(c))) // Replace special characters\n .replace(/&/g, \"-and-\") // Replace & with 'and'\n .replace(/[^\\w\\-]+/g, \"\") // Remove all non-word characters\n .replace(/\\-\\-+/g, \"-\") // Replace multiple - with single -\n .replace(/^-+/, \"\") // Trim - from start of text\n .replace(/-+$/, \"\") // Trim - from end of text\n}\n\nfunction capitalizeFirstLetter(string) {\n return string.charAt(0).toUpperCase() + string.slice(1)\n}\n\nexport { slugify, capitalizeFirstLetter }\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\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;","'use strict';\nvar redefineAll = require('./_redefine-all');\nvar getWeak = require('./_meta').getWeak;\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar createArrayMethod = require('./_array-methods');\nvar $has = require('./_has');\nvar validate = require('./_validate-collection');\nvar arrayFind = createArrayMethod(5);\nvar arrayFindIndex = createArrayMethod(6);\nvar id = 0;\n\n// fallback for uncaught frozen keys\nvar uncaughtFrozenStore = function (that) {\n return that._l || (that._l = new UncaughtFrozenStore());\n};\nvar UncaughtFrozenStore = function () {\n this.a = [];\n};\nvar findUncaughtFrozen = function (store, key) {\n return arrayFind(store.a, function (it) {\n return it[0] === key;\n });\n};\nUncaughtFrozenStore.prototype = {\n get: function (key) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) return entry[1];\n },\n has: function (key) {\n return !!findUncaughtFrozen(this, key);\n },\n set: function (key, value) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) entry[1] = value;\n else this.a.push([key, value]);\n },\n 'delete': function (key) {\n var index = arrayFindIndex(this.a, function (it) {\n return it[0] === key;\n });\n if (~index) this.a.splice(index, 1);\n return !!~index;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, NAME, '_i');\n that._t = NAME; // collection type\n that._i = id++; // collection id\n that._l = undefined; // leak store for uncaught frozen objects\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n // 23.3.3.2 WeakMap.prototype.delete(key)\n // 23.4.3.3 WeakSet.prototype.delete(value)\n 'delete': function (key) {\n if (!isObject(key)) return false;\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, NAME))['delete'](key);\n return data && $has(data, this._i) && delete data[this._i];\n },\n // 23.3.3.4 WeakMap.prototype.has(key)\n // 23.4.3.4 WeakSet.prototype.has(value)\n has: function has(key) {\n if (!isObject(key)) return false;\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, NAME)).has(key);\n return data && $has(data, this._i);\n }\n });\n return C;\n },\n def: function (that, key, value) {\n var data = getWeak(anObject(key), true);\n if (data === true) uncaughtFrozenStore(that).set(key, value);\n else data[that._i] = value;\n return that;\n },\n ufstore: uncaughtFrozenStore\n};\n","var _typeof = require(\"../helpers/typeof\");\n\nvar assertThisInitialized = require(\"./assertThisInitialized\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;","require(\"core-js/modules/es6.regexp.match\");\n\nrequire(\"core-js/modules/es6.object.keys\");\n\nrequire(\"core-js/modules/es6.regexp.to-string\");\n\nrequire(\"core-js/modules/es6.regexp.flags\");\n\nrequire(\"core-js/modules/es6.regexp.constructor\");\n\nrequire(\"core-js/modules/es6.set\");\n\nrequire(\"core-js/modules/web.dom.iterable\");\n\nrequire(\"core-js/modules/es6.array.iterator\");\n\nrequire(\"core-js/modules/es6.object.to-string\");\n\nrequire(\"core-js/modules/es6.string.iterator\");\n\nrequire(\"core-js/modules/es6.map\");\n\n/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView; // 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 var length, i, keys;\n\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n\n for (i = length; i-- !== 0;) {\n if (!equal(a[i], b[i])) return false;\n }\n\n return true;\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\n\n var it;\n\n if (hasMap && a instanceof Map && b instanceof Map) {\n if (a.size !== b.size) return false;\n it = a.entries();\n\n while (!(i = it.next()).done) {\n if (!b.has(i.value[0])) return false;\n }\n\n it = a.entries();\n\n while (!(i = it.next()).done) {\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n }\n\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\n while (!(i = it.next()).done) {\n if (!b.has(i.value[0])) return false;\n }\n\n return true;\n } // END: Modifications\n\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n\n for (i = length; i-- !== 0;) {\n if (a[i] !== b[i]) return false;\n }\n\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 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 // START: react-fast-compare\n // custom handling for DOM elements\n\n\n if (hasElementType && a instanceof Element) return false; // custom handling for React/Preact\n\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 continue;\n } // all other properties should be traversed as usual\n\n\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n } // END: react-fast-compare\n // START: fast-deep-equal\n\n\n return true;\n }\n\n return a !== a && b !== b;\n} // end fast-deep-equal\n\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 } // some other error. we should definitely know about these\n\n\n throw error;\n }\n};","\"use strict\";\n\nvar _interopRequireWildcard3 = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\n\nvar _interopRequireWildcard2 = _interopRequireDefault(require(\"@babel/runtime/helpers/interopRequireWildcard\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar _react = _interopRequireWildcard3(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _index = _interopRequireDefault(require(\"../index\"));\n\nvar ImageWithIEPolyfill = /*#__PURE__*/function (_Component) {\n (0, _inheritsLoose2.default)(ImageWithIEPolyfill, _Component);\n\n function ImageWithIEPolyfill() {\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 = _Component.call.apply(_Component, [this].concat(args)) || this;\n _this.imageRef = _this.props.innerRef || /*#__PURE__*/(0, _react.createRef)();\n _this.placeholderRef = /*#__PURE__*/(0, _react.createRef)();\n return _this;\n }\n\n var _proto = ImageWithIEPolyfill.prototype;\n\n // Load object-fit/position polyfill if required (e.g. in IE)\n _proto.componentDidMount = function componentDidMount() {\n var _this2 = this;\n\n var testImg = document.createElement(\"img\");\n\n if (typeof testImg.style.objectFit === \"undefined\" || typeof testImg.style.objectPosition === \"undefined\") {\n Promise.resolve().then(function () {\n return (0, _interopRequireWildcard2.default)(require(\"object-fit-images\"));\n }).then(function (_ref) {\n var ObjectFitImages = _ref.default;\n ObjectFitImages(_this2.imageRef.current.imageRef.current);\n ObjectFitImages(_this2.placeholderRef.current);\n });\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n objectFit = _this$props.objectFit,\n objectPosition = _this$props.objectPosition,\n props = (0, _objectWithoutPropertiesLoose2.default)(_this$props, [\"objectFit\", \"objectPosition\"]);\n var polyfillStyle = {\n objectFit: objectFit,\n objectPosition: objectPosition,\n fontFamily: \"\\\"object-fit: \" + objectFit + \"; object-position: \" + objectPosition + \"\\\"\"\n };\n return /*#__PURE__*/_react.default.createElement(_index.default, (0, _extends2.default)({\n ref: this.imageRef,\n placeholderRef: this.placeholderRef\n }, props, {\n imgStyle: (0, _extends2.default)({}, props.imgStyle, polyfillStyle),\n placeholderStyle: (0, _extends2.default)({}, props.placeholderStyle, polyfillStyle)\n }));\n };\n\n return ImageWithIEPolyfill;\n}(_react.Component); // 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/withIEPolyfill/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\nImageWithIEPolyfill.propTypes = {\n objectFit: _propTypes.default.string,\n objectPosition: _propTypes.default.string\n};\nImageWithIEPolyfill.defaultProps = {\n objectFit: \"cover\",\n objectPosition: \"50% 50%\"\n};\n\nvar _default = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {\n return /*#__PURE__*/_react.default.createElement(ImageWithIEPolyfill, (0, _extends2.default)({}, props, {\n innerRef: ref\n }));\n});\n\nexports.default = _default;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;","import \"core-js/modules/es6.regexp.split\";\nimport \"core-js/modules/es6.regexp.replace\";\nimport \"core-js/modules/es6.object.set-prototype-of\";\nimport \"core-js/modules/es6.object.assign\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.array.iterator\";\nimport \"core-js/modules/es6.object.to-string\";\nimport \"core-js/modules/es6.object.keys\";\nimport 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';\nvar ATTRIBUTE_NAMES = {\n BODY: \"bodyAttributes\",\n HTML: \"htmlAttributes\",\n TITLE: \"titleAttributes\"\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};\nvar VALID_TAG_NAMES = Object.keys(TAG_NAMES).map(function (name) {\n return TAG_NAMES[name];\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};\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};\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};\nvar HTML_TAG_MAP = Object.keys(REACT_TAG_MAP).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key]] = key;\n return obj;\n}, {});\nvar SELF_CLOSING_TAGS = [TAG_NAMES.NOSCRIPT, TAG_NAMES.SCRIPT, TAG_NAMES.STYLE];\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 classCallCheck(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 inherits(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 objectWithoutProperties(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 possibleConstructorReturn(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 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 return propsList.filter(function (props) {\n if (Array.isArray(props[tagName])) {\n return true;\n }\n\n if (typeof props[tagName] !== \"undefined\") {\n warn(\"Helmet: \" + tagName + \" should be of type \\\"Array\\\". Instead found type \\\"\" + _typeof(props[tagName]) + \"\\\"\");\n }\n\n return false;\n }).map(function (props) {\n return props[tagName];\n }).reverse().reduce(function (approvedTags, instanceTags) {\n var instanceSeenTags = {};\n instanceTags.filter(function (tag) {\n var primaryAttributeKey = void 0;\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(); // Special rule with link tags, since rel and href are both primary tags, rel takes priority\n\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 } // Special case for innerHTML which doesn't work lowercased\n\n\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 }); // Update seen tags with tags from this instance\n\n var keys = Object.keys(instanceSeenTags);\n\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var tagUnion = objectAssign({}, approvedSeenTags[attributeKey], instanceSeenTags[attributeKey]);\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 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;\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 updateAttributes(TAG_NAMES.BODY, bodyAttributes);\n updateAttributes(TAG_NAMES.HTML, htmlAttributes);\n updateTitle(title, titleAttributes);\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 var addedTags = {};\n var removedTags = {};\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 if (newTags.length) {\n addedTags[tagType] = newTags;\n }\n\n if (oldTags.length) {\n removedTags[tagType] = tagUpdates[tagType].oldTags;\n }\n });\n cb && cb();\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\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\"); // Remove a duplicate tag from domTagstoRemove, so it isn't cleared.\n\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 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 var tagContent = tag.innerHTML || tag.cssText || \"\";\n var isSelfClosing = SELF_CLOSING_TAGS.indexOf(type) === -1;\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 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 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; // assigning into an array to define toString function on it\n\n\n var initProps = (_initProps = {\n key: title\n }, _initProps[HELMET_ATTRIBUTE] = true, _initProps);\n var props = convertElementAttributestoReactProps(attributes, initProps);\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 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 = {\n __html: content\n };\n } else {\n mappedTag[mappedAttribute] = tag[attribute];\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\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\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, {\n title: title,\n titleAttributes: titleAttributes\n }, 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 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 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 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 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 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 // 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\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);\nvar HelmetExport = Helmet(HelmetSideEffects);\nHelmetExport.renderStatic = HelmetExport.rewind;\nexport default HelmetExport;\nexport { HelmetExport as Helmet };","import React from \"react\"\nimport { useStaticQuery, graphql } from \"gatsby\"\nimport Img from \"gatsby-image/withIEPolyfill\"\n\nexport default function Image({ path, className, caption, alt, imgStyle }) {\n const data = useStaticQuery(\n graphql`\n query {\n images: allFile {\n edges {\n node {\n relativePath\n name\n childImageSharp {\n fluid(maxWidth: 3000, quality: 100) {\n ...GatsbyImageSharpFluid\n ...GatsbyImageSharpFluid_withWebp\n }\n }\n }\n }\n }\n }\n `\n )\n const image = data.images.edges.find(item =>\n item.node.relativePath.includes(path)\n )\n if (!image) {\n return null\n }\n const fluid = image.node.childImageSharp.fluid\n return (\n <>\n <Img\n alt={alt}\n fluid={fluid}\n objectFit=\"cover\"\n objectPosition=\"50% 50%\"\n className={className ? className : null}\n imgStyle={imgStyle}\n />\n {caption ? <p className=\"image__caption\">{caption}</p> : null}\n </>\n )\n}\n","'use strict';\n\nmodule.exports = require('./html-tags.json');","var g; // This works in non-strict mode\n\ng = function () {\n return this;\n}();\n\ntry {\n // This works if eval is allowed (see CSP)\n g = g || new Function(\"return this\")();\n} catch (e) {\n // This works if the window reference is available\n if (typeof window === \"object\") g = window;\n} // g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\n\nmodule.exports = g;"],"sourceRoot":""}