html2canvas/app-532b4c1a6df06237bd2e.js.map
2022-01-22 16:55:25 +00:00

1 line
342 KiB
Plaintext

{"version":3,"sources":["webpack:///./node_modules/fbjs/lib/hyphenateStyleName.js","webpack:///./node_modules/gatsby-link/index.js","webpack:///./node_modules/fbjs/lib/hyphenate.js","webpack:///./node_modules/shallow-compare/es/index.js","webpack:///./.cache/ensure-resources.js","webpack:///./node_modules/gatsby-react-router-scroll/session-storage.js","webpack:///./node_modules/glamor/lib/CSSPropertyOperations/dangerousStyleValue.js","webpack:///./node_modules/@babel/runtime/helpers/interopRequireWildcard.js","webpack:///./node_modules/inline-style-prefixer/static/plugins/imageSet.js","webpack:///./node_modules/fbjs/lib/warning.js","webpack:///./node_modules/glamor/lib/react.js","webpack:///./.cache/normalize-page-path.js","webpack:///./.cache/find-path.js","webpack:///./node_modules/gatsby-react-router-scroll/use-scroll-restoration.js","webpack:///./node_modules/mitt/dist/mitt.es.js","webpack:///./.cache/emitter.js","webpack:///./node_modules/inline-style-prefixer/static/plugins/gradient.js","webpack:///./.cache/route-announcer-props.js","webpack:///./node_modules/inline-style-prefixer/static/plugins/filter.js","webpack:///./node_modules/gatsby-react-router-scroll/index.js","webpack:///./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","webpack:///./.cache/react-lifecycles-compat.js","webpack:///./node_modules/@reach/router/es/lib/history.js","webpack:///./node_modules/inline-style-prefixer/static/plugins/flex.js","webpack:///./node_modules/glamor/lib/hash.js","webpack:///./node_modules/glamor/lib/index.js","webpack:///./node_modules/gatsby-plugin-catch-links/gatsby-browser.js","webpack:///./node_modules/gatsby-react-router-scroll/scroll-handler.js","webpack:///./.cache/page-renderer.js","webpack:///./node_modules/@reach/router/es/lib/utils.js","webpack:///./.cache/api-runner-browser-plugins.js","webpack:///./node_modules/hyphenate-style-name/index.js","webpack:///./node_modules/@mikaelkristiansson/domready/ready.js","webpack:///./.cache/register-service-worker.js","webpack:///./node_modules/fbjs/lib/camelize.js","webpack:///./.cache/_this_is_virtual_fs_path_/$virtual/async-requires.js","webpack:///./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack:///./node_modules/gatsby-plugin-twitter/gatsby-browser.js","webpack:///./node_modules/inline-style-prefixer/utils/prefixValue.js","webpack:///./node_modules/invariant/browser.js","webpack:///./node_modules/css-in-js-utils/lib/hyphenateProperty.js","webpack:///./node_modules/glamor/lib/sheet.js","webpack:///./node_modules/inline-style-prefixer/utils/capitalizeString.js","webpack:///./node_modules/gatsby-plugin-glamor/gatsby-browser.js","webpack:///./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack:///./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack:///./.cache/production-app.js","webpack:///./node_modules/@babel/runtime/helpers/inheritsLoose.js","webpack:///./.cache/gatsby-browser-entry.js","webpack:///./node_modules/gatsby/dist/internal-plugins/bundle-optimisations/polyfills/object-assign.js","webpack:///./node_modules/@reach/router/es/index.js","webpack:///./node_modules/glamor/lib/CSSPropertyOperations/CSSProperty.js","webpack:///./node_modules/inline-style-prefixer/static/plugins/transition.js","webpack:///./node_modules/@babel/runtime/helpers/typeof.js","webpack:///./.cache/strip-prefix.js","webpack:///./node_modules/gatsby-link/parse-path.js","webpack:///./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack:///./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack:///./node_modules/inline-style-prefixer/utils/prefixProperty.js","webpack:///./node_modules/inline-style-prefixer/static/staticData.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack:///./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack:///./.cache/prefetch.js","webpack:///./.cache/loader.js","webpack:///./node_modules/inline-style-prefixer/static/plugins/position.js","webpack:///./node_modules/gatsby-react-router-scroll/scroll-container.js","webpack:///./node_modules/inline-style-prefixer/static/plugins/cursor.js","webpack:///./node_modules/gatsby-plugin-catch-links/catch-links.js","webpack:///./node_modules/glamor/react.js","webpack:///./node_modules/fbjs/lib/camelizeStyleName.js","webpack:///./.cache/public-page-renderer.js","webpack:///./node_modules/glamor/lib/CSSPropertyOperations/index.js","webpack:///./.cache/create-react-context.js","webpack:///./node_modules/fbjs/lib/emptyFunction.js","webpack:///./node_modules/escape-string-regexp/index.js","webpack:///./node_modules/@babel/runtime/helpers/extends.js","webpack:///./node_modules/gatsby-plugin-google-analytics/gatsby-browser.js","webpack:///./node_modules/inline-style-prefixer/static/plugins/crossFade.js","webpack:///./node_modules/fbjs/lib/memoizeStringOnly.js","webpack:///./.cache/public-page-renderer-prod.js","webpack:///./node_modules/css-in-js-utils/lib/isPrefixedValue.js","webpack:///./node_modules/glamor/lib/clean.js","webpack:///./node_modules/glamor/lib/prefixer.js","webpack:///./node_modules/inline-style-prefixer/static/plugins/sizing.js","webpack:///./node_modules/glamor/lib/plugins.js","webpack:///./node_modules/@babel/runtime/helpers/esm/extends.js","webpack:///./.cache/api-runner-browser.js","webpack:///(webpack)/buildin/global.js","webpack:///./.cache/navigation.js","webpack:///./node_modules/inline-style-prefixer/static/plugins/flexboxOld.js"],"names":["hyphenate","msPattern","module","exports","string","replace","_interopRequireDefault","require","__esModule","withPrefix","withAssetPrefix","path","getGlobalPathPrefix","navigateTo","push","navigate","default","_objectWithoutPropertiesLoose2","_assertThisInitialized2","_inheritsLoose2","_extends2","_propTypes","_react","_router","_utils","_parsePath","parsePath","isAbsolutePath","startsWith","prefix","_ref","_prefix","getGlobalBasePrefix","isLocalLink","base","endsWith","slice","__PATH_PREFIX__","__BASE_PATH__","rewriteLinkPath","relativeTo","current","resolve","absolutify","NavLinkPropTypes","activeClassName","activeStyle","object","partiallyActive","bool","GatsbyLinkLocationWrapper","props","createElement","Location","_ref2","location","GatsbyLink","_location","_React$Component","_this","call","this","defaultGetProps","_ref3","isPartiallyCurrent","isCurrent","className","filter","Boolean","join","style","IOSupported","window","IntersectionObserver","state","handleRef","bind","_proto","prototype","_prefetch","currentPath","pathname","rewrittenPath","to","newPathName","___loader","enqueue","componentDidUpdate","prevProps","prevState","componentDidMount","componentWillUnmount","io","_this$io","instance","el","unobserve","disconnect","ref","cb","_this2","innerRef","hasOwnProperty","entries","forEach","entry","target","isIntersecting","intersectionRatio","observe","render","_this3","_this$props","_this$props$getProps","getProps","_onClick","onClick","_onMouseEnter","onMouseEnter","rest","prefixedTo","Link","e","hovering","button","defaultPrevented","metaKey","altKey","ctrlKey","shiftKey","preventDefault","shouldReplace","encodeURI","___navigate","href","Component","propTypes","func","isRequired","showDeprecationWarning","functionName","altFunctionName","version","console","warn","_default","forwardRef","options","___push","___replace","_uppercasePattern","toLowerCase","shallowDiffers","a","b","i","_i","EnsureResources","pageResources","loader","loadPageSync","getDerivedStateFromProps","loadResources","rawPath","loadPage","then","status","PageResourceStatus","Error","setState","history","replaceState","shouldComponentUpdate","nextProps","nextState","component","json","key","page","matchPath","shallowCompare","children","React","SessionStorage","read","stateKey","getStateKey","value","sessionStorage","getItem","JSON","parse","save","storedValue","stringify","setItem","stateKeyBase","Object","defineProperty","_CSSProperty2","obj","isUnitlessNumber","name","isNaN","trim","_typeof","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","getOwnPropertyDescriptor","desc","set","property","_isPrefixedValue2","indexOf","prefixes","map","_isPrefixedValue","warning","dom","undefined","_extends","assign","arguments","length","source","_createClass","defineProperties","descriptor","enumerable","configurable","writable","Constructor","protoProps","staticProps","_index","keys","vars","Target","_class","_temp","Vars","_classCallCheck","_possibleConstructorReturn","__proto__","getPrototypeOf","apply","_inherits","glamorCssVars","context","_react2","childContextTypes","_propTypes2","contextTypes","makeTheme","themeIndex","fn","_class2","_temp2","_React$Component2","Theme","_defineProperty","merge","concat","_toConsumableArray","arrayOf","add","_style","_class3","_temp3","_React$Component3","ThemeOverride","propMerge","mergeStyle","glamorStyleKeys","x","exec","toStyle","dataCssKey","cssData","mergedStyles","restProps","_objectAssign2","TypeError","self","ReferenceError","subClass","superClass","create","constructor","setPrototypeOf","arr","Array","isArray","arr2","from","_objectWithoutProperties","tag","allProps","_len","_key","css","rule","isLikeRule","s","charAt","pathCache","Map","matchPaths","trimPathname","rawPathname","decodeURIComponent","stripPrefix","split","URL","setMatchPaths","findMatchPath","trimmedPathname","cleanPath","pickPaths","originalPath","pick","normalizePagePath","route","grabMatchParams","params","findPath","foundPath","useScrollRestoration","identifier","useLocation","useContext","_scrollHandler","ScrollContext","useRef","useLayoutEffect","position","scrollTo","onScroll","scrollTop","emitter","all","on","type","handler","off","splice","emit","evt","mitt","values","test","RouteAnnouncerProps","id","top","width","height","padding","overflow","clip","whiteSpace","border","ScrollContainer","ScrollHandler","_scrollContainer","_useScrollRestoration","excluded","sourceKeys","polyfill","getLocation","_source$location","search","hash","origin","protocol","host","hostname","port","canUseDOM","decodeURI","createHistory","listeners","transitioning","resolveTransition","_onTransitionComplete","listen","listener","popstateListener","action","addEventListener","removeEventListener","_ref$replace","go","Date","now","pushState","transition","Promise","res","createMemorySource","initialPath","searchIndex","initialLocation","substr","index","stack","states","_","uri","_uri$split","_uri$split$","_uri$split2","_uri$split2$","newIndex","document","globalHistory","flex","UInt32","str","pos","charCodeAt","UInt16","Umul32","n","m","seed","h","currentIndex","k","compose","$","presets","keyframes","fontFace","insertGlobal","insertRule","plugins","styleSheet","speedy","simulations","canSimulate","simulate","pseudos","_clean2","warned1","warned2","reduce","o","p","simple","cssLabels","hasLabels","idFor","rehydrate","ids","inserted","flush","registered","ruleCache","inject","select","parent","selector","_len4","styles","_key4","media","query","_len5","rules","_key5","pseudo","active","any","checked","disabled","empty","enabled","first","firstChild","firstOfType","fullscreen","focus","hover","indeterminate","inRange","invalid","lastChild","lastOfType","left","link","onlyChild","onlyOfType","optional","outOfRange","readOnly","readWrite","required","right","root","scope","valid","visited","dir","lang","not","nthChild","nthLastChild","nthLastOfType","nthOfType","after","before","firstLetter","firstLine","selection","backdrop","placeholder","cssFor","_len7","_key7","r","label","build","src","deconstructedStyleToCSS","hashify","deconstruct","attribsFor","_len8","_key8","htmlAttributes","_sheet","_CSSPropertyOperations","_plugins","_hash2","StyleSheet","PluginSet","contentWrap","fallbacks","isBrowser","char","toRet","toString","match","selectorTokenizer","splitSelector","indices","inParen","unshift","toCSS","result","transform","createMarkupForStyles","plain","selects","medias","supports","register","spec","toRule","deconstructed","cssRule","insert","ret","joinSelectors","as","joinSupports","substring","prefixedPseudoSelectors","dest","_ref2$selector","_ref2$mq","mq","_ref2$supp","supp","_ref2$src","flatten","inArr","_src","reg","_getRegistered","composes","possibles","found","ch","isSelector","isMediaQuery","isSupports","_dest","_css","nullrule","inputCaches","cachedCss","args","coi","ctr","_ctr","_coi","err","_len2","_key2","raw","global","kfs","inner","kf","insertKeyframe","font","insertFontFace","fontFamily","mobile","Mobile","phablet","Phablet","tablet","Tablet","desktop","Desktop","hd","Hd","_len3","_key3","_len6","_key6","_gatsby","_catchLinks","onClientEntry","_interopRequireWildcard","_sessionStorage","createContext","displayName","_stateStorage","scrollListener","scrollY","windowScroll","shouldUpdateScroll","scrollToHash","node","getElementById","scrollIntoView","prevRouterProps","routerProps","scrollPosition","_this$props$location","_this$props$location2","Provider","element","PageRenderer","pageContext","__params","pathContext","pageElement","apiRunner","publicLoader","pop","routes","default_","uriPathname","uriSegments","segmentize","isRootUri","ranked","rankRoutes","l","missed","routeSegments","max","Math","routeSegment","uriSegment","isSplat","dynamicMatch","paramRe","reservedNames","_to$split","toPathname","toQuery","basePathname","toSegments","baseSegments","addQuery","allSegments","segments","segment","insertParams","_path$split","pathBase","_path$split$","constructedPath","_params$location","_params$location$sear","searchSplit","validateRedirect","isDynamic","sort","rankRoute","score","isRootSegment","SEGMENT_POINTS","q","obj1","obj2","obj1Keys","every","plugin","uppercasePattern","toHyphenLower","hName","ie10","navigator","appVersion","fns","doc","hack","documentElement","doScroll","loaded","readyState","shift","setTimeout","definition","error","serviceWorker","installingWorker","installing","log","controller","___swUpdated","___failedResources","reload","catch","_hyphenPattern","character","toUpperCase","components","injectedTwitterScript","embedClasses","onRouteUpdate","jsCode","querySelector","innerText","getElementsByTagName","appendChild","twttr","widgets","load","metaData","len","processedValue","condition","format","c","d","f","argIndex","framesToPop","_hyphenateStyleName2","_hyphenateStyleName","_objectAssign","last","sheetForTag","sheet","styleSheets","ownerNode","oldIE","div","innerHTML","makeStyleTag","setAttribute","createTextNode","head","_ref$speedy","_ref$maxLength","maxLength","isSpeedy","tags","getSheet","injected","cssRules","cssText","_insert","insertBefore","delete","parentNode","removeChild","_glamor","_setPrototypeOf","ProdLoader","asyncRequires","setLoader","setApiRunner","___emitter","navigationInit","apiRunnerAsync","RouteHandler","baseuri","basepath","DataContext","GatsbyRoot","staticQueryResults","getStaticQueryResults","LocationHandler","Consumer","pagePath","browserLoc","___webpackCompilationHash","webpackCompilationHash","SiteRoot","App","renderer","ReactDOM","hydrate","domReady","prefetchPathname","StaticQueryContext","StaticQueryDataRenderer","staticQueryData","data","finalData","Fragment","StaticQuery","useStaticQuery","Number","graphql","createNamedContext","defaultValue","Ctx","LocationContext","LocationProvider","getContext","refs","unlisten","_props$history","componentDidCatch","info","isRedirect","_navigate","requestAnimationFrame","unmounted","defaultProps","ServerLocation","url","BaseContext","Router","baseContext","locationContext","RouterImpl","_React$PureComponent","_props","_navigate2","primary","_props$component","domProps","Children","toArray","array","child","createRoute","clone","cloneElement","FocusWrapper","FocusHandler","wrapperProps","PureComponent","FocusContext","requestFocus","FocusHandlerImpl","initialRender","focusHandlerCount","_this4","shouldFocus","myURIChanged","navigatedUpToMe","contains","activeElement","_this5","_props2","_props2$component","Comp","outline","tabIndex","C","_ref4","_ref5","_ref6","_props$getProps","anchorProps","encodedHref","event","shouldNavigate","_location$state","restState","RedirectRequest","redirectTo","RedirectImpl","_props3","_props3$replace","noThrow","resolvedTo","_props4","Redirect","_ref7","Match","_ref8","_ref9","_ref10","resolvedPath","useNavigate","useParams","results","useMatch","stripSlashes","elementPath","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridRow","gridRowStart","gridRowEnd","gridColumn","gridColumnStart","gridColumnEnd","fontWeight","lineClamp","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","prop","prefixKey","CSSProperty","shorthandPropertyExpansions","background","backgroundAttachment","backgroundColor","backgroundImage","backgroundPositionX","backgroundPositionY","backgroundRepeat","backgroundPosition","borderWidth","borderStyle","borderColor","borderBottom","borderBottomWidth","borderBottomStyle","borderBottomColor","borderLeft","borderLeftWidth","borderLeftStyle","borderLeftColor","borderRight","borderRightWidth","borderRightStyle","borderRightColor","borderTop","borderTopWidth","borderTopStyle","borderTopColor","fontStyle","fontVariant","fontSize","outlineWidth","outlineStyle","outlineColor","propertyPrefixMap","properties","outputValue","multipleValues","singleValue","dashCaseProperty","_hyphenateProperty2","j","pLen","prefixMapping","prefixValue","webkitOutput","val","mozOutput","_capitalizeString2","transitionProperty","WebkitTransition","WebkitTransitionProperty","MozTransition","MozTransitionProperty","Webkit","Moz","ms","Symbol","iterator","hashIndex","_inheritsLoose","prefixProperties","requiredPrefixes","_capitalizeString","w","wm","wms","wmms","prefixMap","_arrayLikeToArray","iter","minLen","supportedPrefetchStrategy","feature","fakeLink","relList","support","reject","onload","onerror","getElementsByName","req","XMLHttpRequest","open","send","preFetched","prefetch","Success","preferDefault","createPageDataUrl","doFetch","method","onreadystatechange","toPageResources","pageData","componentChunkName","staticQueryHashes","BaseLoader","loadComponent","inFlightNetworkRequests","pageDb","inFlightDb","staticQueryDb","pageDataDb","prefetchTriggered","Set","prefetchCompleted","memoizedGet","inFlightPromise","response","prefetchDisabled","some","fetchPageDataJson","loadObj","retries","responseText","jsonPayload","payload","notFound","loadPageDataJson","loadAppData","allData","finalResult","componentChunkPromise","createdAt","staticQueryBatchPromise","staticQueryHash","staticQueryResultsMap","shouldPrefetch","connection","effectiveType","includes","saveData","doesConnectionSupportPrefetch","realPath","doPrefetch","pageDataUrl","prefetchHelper","crossOrigin","getResourceURLsForPathname","createComponentUrls","isPageNotFound","appData","___chunkMapping","chunk","chunkName","componentUrls","_loader","getResourcesForPathname","getResourcesForPathnameSync","_reactDom","scrollKey","ScrollContainerImplementation","findDOMNode","grab","grabbing","clickHandler","routeThroughBrowserOrApp","hashShouldBeFollowed","pathIsNotHandledByApp","urlsAreOnSameOrigin","authorIsForcingNavigation","anchorsTargetIsEquivalentToSelf","findClosestAnchor","navigationWasHandledElsewhere","slashedPathname","userIsForcingNavigation","_escapeStringRegexp","nodeName","anchor","hasAttribute","ownerDocument","defaultView","destination","pathStartRegEx","hrefHandler","clickedAnchor","SVGAnimatedString","animVal","RegExp","destinationPathname","camelize","processStyleName","serialized","styleName","isCustomProp","styleValue","_dangerousStyleValue2","_memoizeStringOnly2","makeEmptyFunction","arg","emptyFunction","thatReturns","thatReturnsFalse","thatReturnsTrue","thatReturnsNull","thatReturnsThis","thatReturnsArgument","matchOperatorsRe","ga","excludeGAPaths","rx","sendPageView","callback","ProdPageRenderer","InternalPageRenderer","regex","cleanObject","isFalsy","acc","hasFalsy","filteredValue","clean","input","filtered","filteredRule","_prefixValue2","_prefixProperty2","_staticData2","_cursor2","_crossFade2","_filter2","_flex2","_flexboxOld2","_gradient2","_imageSet2","_position2","_sizing2","_transition2","maxHeight","maxWidth","columnWidth","minWidth","minHeight","flattened","content","cont","contentValues","_prefixer2","initial","remove","clear","api","defaultReturn","argTransform","previous","next","g","Function","redirectMap","redirectIgnoreCaseMap","maybeRedirect","redirect","toPath","redirects","ignoreCase","fromPath","onPreRouteUpdate","prevLocation","timeoutId","clearTimeout","postMessage","gatsbyApi","reachNavigate","getSavedScrollPosition","init","RouteAnnouncer","announcementRef","createRef","pageName","title","pageHeadings","querySelectorAll","textContent","newAnnouncement","compareLocationProps","nextLocation","RouteUpdates","WebkitBoxOrient","WebkitBoxDirection","alternativeProps","alternativeValues","wrap","alignItems","justifyContent","flexWrap"],"mappings":"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","file":"app-532b4c1a6df06237bd2e.js","sourcesContent":["/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n'use strict';\n\nvar hyphenate = require('./hyphenate');\n\nvar msPattern = /^ms-/;\n/**\n * Hyphenates a camelcased CSS property name, for example:\n *\n * > hyphenateStyleName('backgroundColor')\n * < \"background-color\"\n * > hyphenateStyleName('MozTransition')\n * < \"-moz-transition\"\n * > hyphenateStyleName('msTransition')\n * < \"-ms-transition\"\n *\n * As Modernizr suggests (http://modernizr.com/docs/#prefixed), an `ms` prefix\n * is converted to `-ms-`.\n *\n * @param {string} string\n * @return {string}\n */\n\nfunction hyphenateStyleName(string) {\n return hyphenate(string).replace(msPattern, '-ms-');\n}\n\nmodule.exports = hyphenateStyleName;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.withPrefix = withPrefix;\nexports.withAssetPrefix = withAssetPrefix;\nexports.navigateTo = exports.replace = exports.push = exports.navigate = exports.default = void 0;\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _router = require(\"@reach/router\");\n\nvar _utils = require(\"@reach/router/lib/utils\");\n\nvar _parsePath = require(\"./parse-path\");\n\nexports.parsePath = _parsePath.parsePath;\n\nvar isAbsolutePath = function isAbsolutePath(path) {\n return path === null || path === void 0 ? void 0 : path.startsWith(\"/\");\n};\n\nfunction withPrefix(path, prefix) {\n var _ref, _prefix;\n\n if (prefix === void 0) {\n prefix = getGlobalBasePrefix();\n }\n\n if (!isLocalLink(path)) {\n return path;\n }\n\n if (path.startsWith(\"./\") || path.startsWith(\"../\")) {\n return path;\n }\n\n var base = (_ref = (_prefix = prefix) !== null && _prefix !== void 0 ? _prefix : getGlobalPathPrefix()) !== null && _ref !== void 0 ? _ref : \"/\";\n return \"\" + ((base === null || base === void 0 ? void 0 : base.endsWith(\"/\")) ? base.slice(0, -1) : base) + (path.startsWith(\"/\") ? path : \"/\" + path);\n} // These global values are wrapped in typeof clauses to ensure the values exist.\n// This is especially problematic in unit testing of this component.\n\n\nvar getGlobalPathPrefix = function getGlobalPathPrefix() {\n return process.env.NODE_ENV !== \"production\" ? typeof __PATH_PREFIX__ !== \"undefined\" ? __PATH_PREFIX__ : undefined : __PATH_PREFIX__;\n};\n\nvar getGlobalBasePrefix = function getGlobalBasePrefix() {\n return process.env.NODE_ENV !== \"production\" ? typeof __BASE_PATH__ !== \"undefined\" ? __BASE_PATH__ : undefined : __BASE_PATH__;\n};\n\nvar isLocalLink = function isLocalLink(path) {\n return path && !path.startsWith(\"http://\") && !path.startsWith(\"https://\") && !path.startsWith(\"//\");\n};\n\nfunction withAssetPrefix(path) {\n return withPrefix(path, getGlobalPathPrefix());\n}\n\nfunction absolutify(path, current) {\n // If it's already absolute, return as-is\n if (isAbsolutePath(path)) {\n return path;\n }\n\n return (0, _utils.resolve)(path, current);\n}\n\nvar rewriteLinkPath = function rewriteLinkPath(path, relativeTo) {\n if (typeof path === \"number\") {\n return path;\n }\n\n if (!isLocalLink(path)) {\n return path;\n }\n\n return isAbsolutePath(path) ? withPrefix(path) : absolutify(path, relativeTo);\n};\n\nvar NavLinkPropTypes = {\n activeClassName: _propTypes.default.string,\n activeStyle: _propTypes.default.object,\n partiallyActive: _propTypes.default.bool\n}; // Set up IntersectionObserver\n\nvar createIntersectionObserver = function createIntersectionObserver(el, cb) {\n var io = new window.IntersectionObserver(function (entries) {\n entries.forEach(function (entry) {\n if (el === entry.target) {\n // Check if element is within viewport, remove listener, destroy observer, and run link callback.\n // MSEdge doesn't currently support isIntersecting, so also test for an intersectionRatio > 0\n if (entry.isIntersecting || entry.intersectionRatio > 0) {\n io.unobserve(el);\n io.disconnect();\n cb();\n }\n }\n });\n }); // Add element to the observer\n\n io.observe(el);\n return {\n instance: io,\n el: el\n };\n};\n\nfunction GatsbyLinkLocationWrapper(props) {\n return /*#__PURE__*/_react.default.createElement(_router.Location, null, function (_ref2) {\n var location = _ref2.location;\n return /*#__PURE__*/_react.default.createElement(GatsbyLink, (0, _extends2.default)({}, props, {\n _location: location\n }));\n });\n}\n\nvar GatsbyLink = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(GatsbyLink, _React$Component);\n\n function GatsbyLink(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this; // Default to no support for IntersectionObserver\n\n _this.defaultGetProps = function (_ref3) {\n var isPartiallyCurrent = _ref3.isPartiallyCurrent,\n isCurrent = _ref3.isCurrent;\n\n if (_this.props.partiallyActive ? isPartiallyCurrent : isCurrent) {\n return {\n className: [_this.props.className, _this.props.activeClassName].filter(Boolean).join(\" \"),\n style: (0, _extends2.default)({}, _this.props.style, _this.props.activeStyle)\n };\n }\n\n return null;\n };\n\n var IOSupported = false;\n\n if (typeof window !== \"undefined\" && window.IntersectionObserver) {\n IOSupported = true;\n }\n\n _this.state = {\n IOSupported: IOSupported\n };\n _this.handleRef = _this.handleRef.bind((0, _assertThisInitialized2.default)(_this));\n return _this;\n }\n\n var _proto = GatsbyLink.prototype;\n\n _proto._prefetch = function _prefetch() {\n var currentPath = window.location.pathname; // reach router should have the correct state\n\n if (this.props._location && this.props._location.pathname) {\n currentPath = this.props._location.pathname;\n }\n\n var rewrittenPath = rewriteLinkPath(this.props.to, currentPath);\n var newPathName = (0, _parsePath.parsePath)(rewrittenPath).pathname; // Prefech is used to speed up next navigations. When you use it on the current navigation,\n // there could be a race-condition where Chrome uses the stale data instead of waiting for the network to complete\n\n if (currentPath !== newPathName) {\n ___loader.enqueue(newPathName);\n }\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n // Preserve non IO functionality if no support\n if (this.props.to !== prevProps.to && !this.state.IOSupported) {\n this._prefetch();\n }\n };\n\n _proto.componentDidMount = function componentDidMount() {\n // Preserve non IO functionality if no support\n if (!this.state.IOSupported) {\n this._prefetch();\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (!this.io) {\n return;\n }\n\n var _this$io = this.io,\n instance = _this$io.instance,\n el = _this$io.el;\n instance.unobserve(el);\n instance.disconnect();\n };\n\n _proto.handleRef = function handleRef(ref) {\n var _this2 = this;\n\n if (this.props.innerRef && this.props.innerRef.hasOwnProperty(\"current\")) {\n this.props.innerRef.current = ref;\n } else if (this.props.innerRef) {\n this.props.innerRef(ref);\n }\n\n if (this.state.IOSupported && ref) {\n // If IO supported and element reference found, setup Observer functionality\n this.io = createIntersectionObserver(ref, function () {\n _this2._prefetch();\n });\n }\n };\n\n _proto.render = function render() {\n var _this3 = this;\n\n var _this$props = this.props,\n to = _this$props.to,\n _this$props$getProps = _this$props.getProps,\n getProps = _this$props$getProps === void 0 ? this.defaultGetProps : _this$props$getProps,\n _onClick = _this$props.onClick,\n _onMouseEnter = _this$props.onMouseEnter,\n $activeClassName = _this$props.activeClassName,\n $activeStyle = _this$props.activeStyle,\n $innerRef = _this$props.innerRef,\n partiallyActive = _this$props.partiallyActive,\n state = _this$props.state,\n replace = _this$props.replace,\n _location = _this$props._location,\n rest = (0, _objectWithoutPropertiesLoose2.default)(_this$props, [\"to\", \"getProps\", \"onClick\", \"onMouseEnter\", \"activeClassName\", \"activeStyle\", \"innerRef\", \"partiallyActive\", \"state\", \"replace\", \"_location\"]);\n\n if (process.env.NODE_ENV !== \"production\" && !isLocalLink(to)) {\n console.warn(\"External link \" + to + \" was detected in a Link component. Use the Link component only for internal links. See: https://gatsby.dev/internal-links\");\n }\n\n var prefixedTo = rewriteLinkPath(to, _location.pathname);\n\n if (!isLocalLink(prefixedTo)) {\n return /*#__PURE__*/_react.default.createElement(\"a\", (0, _extends2.default)({\n href: prefixedTo\n }, rest));\n }\n\n return /*#__PURE__*/_react.default.createElement(_router.Link, (0, _extends2.default)({\n to: prefixedTo,\n state: state,\n getProps: getProps,\n innerRef: this.handleRef,\n onMouseEnter: function onMouseEnter(e) {\n if (_onMouseEnter) {\n _onMouseEnter(e);\n }\n\n ___loader.hovering((0, _parsePath.parsePath)(prefixedTo).pathname);\n },\n onClick: function onClick(e) {\n if (_onClick) {\n _onClick(e);\n }\n\n if (e.button === 0 && // ignore right clicks\n !_this3.props.target && // let browser handle \"target=_blank\"\n !e.defaultPrevented && // onClick prevented default\n !e.metaKey && // ignore clicks with modifier keys...\n !e.altKey && !e.ctrlKey && !e.shiftKey) {\n e.preventDefault();\n var shouldReplace = replace;\n\n var isCurrent = encodeURI(prefixedTo) === _location.pathname;\n\n if (typeof replace !== \"boolean\" && isCurrent) {\n shouldReplace = true;\n } // Make sure the necessary scripts and data are\n // loaded before continuing.\n\n\n window.___navigate(prefixedTo, {\n state: state,\n replace: shouldReplace\n });\n }\n\n return true;\n }\n }, rest));\n };\n\n return GatsbyLink;\n}(_react.default.Component);\n\nGatsbyLink.propTypes = (0, _extends2.default)({}, NavLinkPropTypes, {\n onClick: _propTypes.default.func,\n to: _propTypes.default.string.isRequired,\n replace: _propTypes.default.bool,\n state: _propTypes.default.object\n});\n\nvar showDeprecationWarning = function showDeprecationWarning(functionName, altFunctionName, version) {\n return console.warn(\"The \\\"\" + functionName + \"\\\" method is now deprecated and will be removed in Gatsby v\" + version + \". Please use \\\"\" + altFunctionName + \"\\\" instead.\");\n};\n\nvar _default = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {\n return /*#__PURE__*/_react.default.createElement(GatsbyLinkLocationWrapper, (0, _extends2.default)({\n innerRef: ref\n }, props));\n});\n\nexports.default = _default;\n\nvar navigate = function navigate(to, options) {\n window.___navigate(rewriteLinkPath(to, window.location.pathname), options);\n};\n\nexports.navigate = navigate;\n\nvar push = function push(to) {\n showDeprecationWarning(\"push\", \"navigate\", 3);\n\n window.___push(rewriteLinkPath(to, window.location.pathname));\n};\n\nexports.push = push;\n\nvar replace = function replace(to) {\n showDeprecationWarning(\"replace\", \"navigate\", 3);\n\n window.___replace(rewriteLinkPath(to, window.location.pathname));\n}; // TODO: Remove navigateTo for Gatsby v3\n\n\nexports.replace = replace;\n\nvar navigateTo = function navigateTo(to) {\n showDeprecationWarning(\"navigateTo\", \"navigate\", 3);\n return push(to);\n};\n\nexports.navigateTo = navigateTo;","'use strict';\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\nvar _uppercasePattern = /([A-Z])/g;\n/**\n * Hyphenates a camelcased string, for example:\n *\n * > hyphenate('backgroundColor')\n * < \"background-color\"\n *\n * For CSS style names, use `hyphenateStyleName` instead which works properly\n * with all vendor prefixes, including `ms`.\n *\n * @param {string} string\n * @return {string}\n */\n\nfunction hyphenate(string) {\n return string.replace(_uppercasePattern, '-$1').toLowerCase();\n}\n\nmodule.exports = hyphenate;","// Pulled from react-compat\n// https://github.com/developit/preact-compat/blob/7c5de00e7c85e2ffd011bf3af02899b63f699d3a/src/index.js#L349\nfunction shallowDiffers(a, b) {\n for (var i in a) {\n if (!(i in b)) return true;\n }for (var _i in b) {\n if (a[_i] !== b[_i]) return true;\n }return false;\n}\n\nexport default (function (instance, nextProps, nextState) {\n return shallowDiffers(instance.props, nextProps) || shallowDiffers(instance.state, nextState);\n});","import React from \"react\"\nimport loader, { PageResourceStatus } from \"./loader\"\nimport shallowCompare from \"shallow-compare\"\n\nclass EnsureResources extends React.Component {\n constructor(props) {\n super()\n const { location, pageResources } = props\n this.state = {\n location: { ...location },\n pageResources: pageResources || loader.loadPageSync(location.pathname),\n }\n }\n\n static getDerivedStateFromProps({ location }, prevState) {\n if (prevState.location.href !== location.href) {\n const pageResources = loader.loadPageSync(location.pathname)\n return {\n pageResources,\n location: { ...location },\n }\n }\n\n return {\n location: { ...location },\n }\n }\n\n loadResources(rawPath) {\n loader.loadPage(rawPath).then(pageResources => {\n if (pageResources && pageResources.status !== PageResourceStatus.Error) {\n this.setState({\n location: { ...window.location },\n pageResources,\n })\n } else {\n window.history.replaceState({}, ``, location.href)\n window.location = rawPath\n }\n })\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n // Always return false if we're missing resources.\n if (!nextState.pageResources) {\n this.loadResources(nextProps.location.pathname)\n return false\n }\n\n if (\n process.env.BUILD_STAGE === `develop` &&\n nextState.pageResources.stale\n ) {\n this.loadResources(nextProps.location.pathname)\n return false\n }\n\n // Check if the component or json have changed.\n if (this.state.pageResources !== nextState.pageResources) {\n return true\n }\n if (\n this.state.pageResources.component !== nextState.pageResources.component\n ) {\n return true\n }\n\n if (this.state.pageResources.json !== nextState.pageResources.json) {\n return true\n }\n // Check if location has changed on a page using internal routing\n // via matchPath configuration.\n if (\n this.state.location.key !== nextState.location.key &&\n nextState.pageResources.page &&\n (nextState.pageResources.page.matchPath ||\n nextState.pageResources.page.path)\n ) {\n return true\n }\n return shallowCompare(this, nextProps, nextState)\n }\n\n render() {\n if (process.env.NODE_ENV !== `production` && !this.state.pageResources) {\n throw new Error(\n `EnsureResources was not able to find resources for path: \"${this.props.location.pathname}\"\nThis typically means that an issue occurred building components for that path.\nRun \\`gatsby clean\\` to remove any cached elements.`\n )\n }\n\n return this.props.children(this.state)\n }\n}\n\nexport default EnsureResources\n","\"use strict\";\n\nexports.__esModule = true;\nexports.SessionStorage = void 0;\nvar STATE_KEY_PREFIX = \"@@scroll|\";\nvar GATSBY_ROUTER_SCROLL_STATE = \"___GATSBY_REACT_ROUTER_SCROLL\";\n\nvar SessionStorage = /*#__PURE__*/function () {\n function SessionStorage() {}\n\n var _proto = SessionStorage.prototype;\n\n _proto.read = function read(location, key) {\n var stateKey = this.getStateKey(location, key);\n\n try {\n var value = window.sessionStorage.getItem(stateKey);\n return value ? JSON.parse(value) : 0;\n } catch (e) {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to access sessionStorage; sessionStorage is not available.\");\n }\n\n if (window && window[GATSBY_ROUTER_SCROLL_STATE] && window[GATSBY_ROUTER_SCROLL_STATE][stateKey]) {\n return window[GATSBY_ROUTER_SCROLL_STATE][stateKey];\n }\n\n return 0;\n }\n };\n\n _proto.save = function save(location, key, value) {\n var stateKey = this.getStateKey(location, key);\n var storedValue = JSON.stringify(value);\n\n try {\n window.sessionStorage.setItem(stateKey, storedValue);\n } catch (e) {\n if (window && window[GATSBY_ROUTER_SCROLL_STATE]) {\n window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n } else {\n window[GATSBY_ROUTER_SCROLL_STATE] = {};\n window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to save state in sessionStorage; sessionStorage is not available.\");\n }\n }\n };\n\n _proto.getStateKey = function getStateKey(location, key) {\n var stateKeyBase = \"\" + STATE_KEY_PREFIX + location.pathname;\n return key === null || typeof key === \"undefined\" ? stateKeyBase : stateKeyBase + \"|\" + key;\n };\n\n return SessionStorage;\n}();\n\nexports.SessionStorage = SessionStorage;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _CSSProperty = require('./CSSProperty');\n\nvar _CSSProperty2 = _interopRequireDefault(_CSSProperty);\n\nvar _warning = require('fbjs/lib/warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule dangerousStyleValue\n */\n\n\nvar isUnitlessNumber = _CSSProperty2.default.isUnitlessNumber;\nvar styleWarnings = {};\n/**\n * Convert a value into the proper css writable value. The style name `name`\n * should be logical (no hyphens), as specified\n * in `CSSProperty.isUnitlessNumber`.\n *\n * @param {string} name CSS property name such as `topMargin`.\n * @param {*} value CSS property value such as `10px`.\n * @param {ReactDOMComponent} component\n * @return {string} Normalized style value with dimensions applied.\n */\n\nfunction dangerousStyleValue(name, value, component) {\n // Note that we've removed escapeTextForBrowser() calls here since the\n // whole string will be escaped when the attribute is injected into\n // the markup. If you provide unsafe user data here they can inject\n // arbitrary CSS which may be problematic (I couldn't repro this):\n // https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet\n // http://www.thespanner.co.uk/2007/11/26/ultimate-xss-css-injection/\n // This is not an XSS hole but instead a potential CSS injection issue\n // which has lead to a greater discussion about how we're going to\n // trust URLs moving forward. See #2115901\n var isEmpty = value == null || typeof value === 'boolean' || value === '';\n\n if (isEmpty) {\n return '';\n }\n\n var isNonNumeric = isNaN(value);\n\n if (isNonNumeric || value === 0 || isUnitlessNumber.hasOwnProperty(name) && isUnitlessNumber[name]) {\n return '' + value; // cast to string\n }\n\n if (typeof value === 'string') {\n if (process.env.NODE_ENV !== 'production') {\n // Allow '0' to pass through without warning. 0 is already special and\n // doesn't require units, so we don't need to warn about it.\n if (component && value !== '0') {\n var owner = component._currentElement._owner;\n var ownerName = owner ? owner.getName() : null;\n\n if (ownerName && !styleWarnings[ownerName]) {\n styleWarnings[ownerName] = {};\n }\n\n var warned = false;\n\n if (ownerName) {\n var warnings = styleWarnings[ownerName];\n warned = warnings[name];\n\n if (!warned) {\n warnings[name] = true;\n }\n }\n\n if (!warned) {\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, 'a `%s` tag (owner: `%s`) was passed a numeric string value ' + 'for CSS property `%s` (value: `%s`) which will be treated ' + 'as a unitless number in a future version of React.', component._currentElement.type, ownerName || 'unknown', name, value) : void 0;\n }\n }\n }\n\n value = value.trim();\n }\n\n return value + 'px';\n}\n\nexports.default = dangerousStyleValue;","var _typeof = require(\"@babel/runtime/helpers/typeof\")[\"default\"];\n\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\n\nfunction _interopRequireWildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n\n if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") {\n return {\n \"default\": obj\n };\n }\n\n var cache = _getRequireWildcardCache(nodeInterop);\n\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n\n var newObj = {};\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n\n newObj[\"default\"] = obj;\n\n if (cache) {\n cache.set(obj, newObj);\n }\n\n return newObj;\n}\n\nmodule.exports = _interopRequireWildcard;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = imageSet;\n\nvar _isPrefixedValue = require('css-in-js-utils/lib/isPrefixedValue');\n\nvar _isPrefixedValue2 = _interopRequireDefault(_isPrefixedValue);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n} // http://caniuse.com/#feat=css-image-set\n\n\nvar prefixes = ['-webkit-', ''];\n\nfunction imageSet(property, value) {\n if (typeof value === 'string' && !(0, _isPrefixedValue2.default)(value) && value.indexOf('image-set(') > -1) {\n return prefixes.map(function (prefix) {\n return value.replace(/image-set\\(/g, prefix + 'image-set(');\n });\n }\n}\n\nmodule.exports = exports['default'];","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n'use strict';\n\nvar emptyFunction = require('./emptyFunction');\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\n\nvar warning = emptyFunction;\n\nif (process.env.NODE_ENV !== 'production') {\n var printWarning = function printWarning(format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n warning = function warning(condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (format.indexOf('Failed Composite propType: ') === 0) {\n return; // Ignore CompositeComponent proptype check.\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.dom = undefined;\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 _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 _index = require('./index.js');\n\nObject.keys(_index).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _index[key];\n }\n });\n});\nexports.createElement = createElement;\nexports.vars = vars;\nexports.makeTheme = makeTheme;\nexports.propMerge = propMerge;\n\nvar _objectAssign = require('object-assign');\n\nvar _objectAssign2 = _interopRequireDefault(_objectAssign);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _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\nfunction _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\nfunction _toConsumableArray(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n } else {\n return Array.from(arr);\n }\n}\n\nfunction _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} // convenience\n// allows for elements to have a 'css' prop\n\n\nfunction createElement(tag, allProps) {\n for (var _len = arguments.length, children = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n children[_key - 2] = arguments[_key];\n } // todo - pull ids from className as well?\n\n\n if (allProps && allProps.css) {\n var css = allProps.css,\n className = allProps.className,\n props = _objectWithoutProperties(allProps, ['css', 'className']);\n\n var rule = Array.isArray(css) ? _index.merge.apply(undefined, _toConsumableArray(css)) : (0, _index.isLikeRule)(css) ? css : (0, _index.style)(css);\n className = className ? className + ' ' + rule : rule;\n props.className = className;\n return _react2.default.createElement.apply(_react2.default, [tag, props].concat(children));\n }\n\n return _react2.default.createElement.apply(_react2.default, [tag, allProps].concat(children));\n}\n\nvar dom = exports.dom = createElement; // css vars, done right\n// see examples/vars for usage\n\nfunction vars() {\n var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return function (Target) {\n var _class, _temp;\n\n return _temp = _class = function (_React$Component) {\n _inherits(Vars, _React$Component);\n\n function Vars() {\n _classCallCheck(this, Vars);\n\n return _possibleConstructorReturn(this, (Vars.__proto__ || Object.getPrototypeOf(Vars)).apply(this, arguments));\n }\n\n _createClass(Vars, [{\n key: 'getChildContext',\n value: function getChildContext() {\n return {\n glamorCssVars: _extends({}, this.context.glamorCssVars, typeof value === 'function' ? value(this.props) : value)\n };\n }\n }, {\n key: 'render',\n value: function render() {\n return _react2.default.createElement(Target, _extends({}, this.props, {\n vars: this.context.glamorCssVars || (typeof value === 'function' ? value(this.props) : value)\n }), this.props.children);\n }\n }]);\n\n return Vars;\n }(_react2.default.Component), _class.childContextTypes = {\n glamorCssVars: _propTypes2.default.object\n }, _class.contextTypes = {\n glamorCssVars: _propTypes2.default.object\n }, _temp;\n };\n}\n\nvar themeIndex = 0;\n\nfunction makeTheme() {\n var key = 'data-glamor-theme-' + themeIndex++;\n\n var fn = function fn(_default) {\n return function (Target) {\n var _class2, _temp2;\n\n return _temp2 = _class2 = function (_React$Component2) {\n _inherits(Theme, _React$Component2);\n\n function Theme() {\n _classCallCheck(this, Theme);\n\n return _possibleConstructorReturn(this, (Theme.__proto__ || Object.getPrototypeOf(Theme)).apply(this, arguments));\n }\n\n _createClass(Theme, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(Target, _extends({}, this.props, _defineProperty({}, key, _index.merge.apply(undefined, [typeof _default === 'function' ? _default(this.props) : _default].concat(_toConsumableArray(this.context[key] || []))))));\n }\n }]);\n\n return Theme;\n }(_react2.default.Component), _class2.contextTypes = _defineProperty({}, key, _propTypes2.default.arrayOf(_propTypes2.default.object)), _temp2;\n };\n };\n\n fn.key = key;\n\n fn.add = function (_style) {\n return function (Target) {\n var _class3, _temp3;\n\n return _temp3 = _class3 = function (_React$Component3) {\n _inherits(ThemeOverride, _React$Component3);\n\n function ThemeOverride() {\n _classCallCheck(this, ThemeOverride);\n\n return _possibleConstructorReturn(this, (ThemeOverride.__proto__ || Object.getPrototypeOf(ThemeOverride)).apply(this, arguments));\n }\n\n _createClass(ThemeOverride, [{\n key: 'getChildContext',\n value: function getChildContext() {\n return _defineProperty({}, key, [typeof _style === 'function' ? _style(this.props) : _style].concat(_toConsumableArray(this.context[key] || [])));\n }\n }, {\n key: 'render',\n value: function render() {\n return _react2.default.createElement(Target, this.props);\n }\n }]);\n\n return ThemeOverride;\n }(_react2.default.Component), _class3.contextTypes = _defineProperty({}, key, _propTypes2.default.arrayOf(_propTypes2.default.object)), _class3.childContextTypes = _defineProperty({}, key, _propTypes2.default.arrayOf(_propTypes2.default.object)), _temp3;\n };\n };\n\n return fn;\n}\n\nfunction toStyle(s) {\n return s != null && (0, _index.isLikeRule)(s) ? s : (0, _index.style)(s);\n} // propMerge will take an arbitrary object \"props\", filter out glamor data-css-* styles and merge it with \"mergeStyle\"\n// use it for react components composing\n\n\nfunction propMerge(mergeStyle, props) {\n var glamorStyleKeys = Object.keys(props).filter(function (x) {\n return !!/data\\-css\\-([a-zA-Z0-9\\-_]+)/.exec(x);\n }); // no glamor styles in obj\n\n if (glamorStyleKeys.length === 0) {\n return _extends({}, props, toStyle(mergeStyle));\n }\n\n if (glamorStyleKeys.length > 1) {\n console.warn('[glamor] detected multiple data attributes on an element. This may lead to unexpected style because of css insertion order.'); // eslint-disable-line no-console\n // just append \"mergeStyle\" to props, because we dunno in which order glamor styles were added to props\n\n return _extends({}, props, toStyle(mergeStyle));\n }\n\n var dataCssKey = glamorStyleKeys[0];\n var cssData = props[dataCssKey];\n var mergedStyles = (0, _index.merge)(mergeStyle, _defineProperty({}, dataCssKey, cssData));\n var restProps = (0, _objectAssign2.default)({}, props);\n delete restProps[dataCssKey];\n return _extends({}, restProps, mergedStyles);\n}","export default path => {\n if (path === undefined) {\n return path\n }\n if (path === `/`) {\n return `/`\n }\n if (path.charAt(path.length - 1) === `/`) {\n return path.slice(0, -1)\n }\n return path\n}\n","import { pick } from \"@reach/router/lib/utils\"\nimport stripPrefix from \"./strip-prefix\"\nimport normalizePagePath from \"./normalize-page-path\"\n\nconst pathCache = new Map()\nlet matchPaths = []\n\nconst trimPathname = rawPathname => {\n const pathname = decodeURIComponent(rawPathname)\n // Remove the pathPrefix from the pathname.\n const trimmedPathname = stripPrefix(pathname, __BASE_PATH__)\n // Remove any hashfragment\n .split(`#`)[0]\n // Remove search query\n .split(`?`)[0]\n\n return trimmedPathname\n}\n\nfunction absolutify(path) {\n // If it's already absolute, return as-is\n if (\n path.startsWith(`/`) ||\n path.startsWith(`https://`) ||\n path.startsWith(`http://`)\n ) {\n return path\n }\n // Calculate path relative to current location, adding a trailing slash to\n // match behavior of @reach/router\n return new URL(\n path,\n window.location.href + (window.location.href.endsWith(`/`) ? `` : `/`)\n ).pathname\n}\n\n/**\n * Set list of matchPaths\n *\n * @param {Array<{path: string, matchPath: string}>} value collection of matchPaths\n */\nexport const setMatchPaths = value => {\n matchPaths = value\n}\n\n/**\n * Return a matchpath url\n * if `match-paths.json` contains `{ \"/foo*\": \"/page1\", ...}`, then\n * `/foo?bar=far` => `/page1`\n *\n * @param {string} rawPathname A raw pathname\n * @return {string|null}\n */\nexport const findMatchPath = rawPathname => {\n const trimmedPathname = cleanPath(rawPathname)\n\n const pickPaths = matchPaths.map(({ path, matchPath }) => {\n return {\n path: matchPath,\n originalPath: path,\n }\n })\n\n const path = pick(pickPaths, trimmedPathname)\n\n if (path) {\n return normalizePagePath(path.route.originalPath)\n }\n\n return null\n}\n\n/**\n * Return a matchpath params from reach/router rules\n * if `match-paths.json` contains `{ \":bar/*foo\" }`, and the path is /baz/zaz/zoo\n * then it returns\n * { bar: baz, foo: zaz/zoo }\n *\n * @param {string} rawPathname A raw pathname\n * @return {object}\n */\nexport const grabMatchParams = rawPathname => {\n const trimmedPathname = cleanPath(rawPathname)\n\n const pickPaths = matchPaths.map(({ path, matchPath }) => {\n return {\n path: matchPath,\n originalPath: path,\n }\n })\n\n const path = pick(pickPaths, trimmedPathname)\n\n if (path) {\n return path.params\n }\n\n return {}\n}\n\n// Given a raw URL path, returns the cleaned version of it (trim off\n// `#` and query params), or if it matches an entry in\n// `match-paths.json`, its matched path is returned\n//\n// E.g. `/foo?bar=far` => `/foo`\n//\n// Or if `match-paths.json` contains `{ \"/foo*\": \"/page1\", ...}`, then\n// `/foo?bar=far` => `/page1`\nexport const findPath = rawPathname => {\n const trimmedPathname = trimPathname(absolutify(rawPathname))\n if (pathCache.has(trimmedPathname)) {\n return pathCache.get(trimmedPathname)\n }\n\n let foundPath = findMatchPath(trimmedPathname)\n\n if (!foundPath) {\n foundPath = cleanPath(rawPathname)\n }\n\n pathCache.set(trimmedPathname, foundPath)\n\n return foundPath\n}\n\n/**\n * Clean a url and converts /index.html => /\n * E.g. `/foo?bar=far` => `/foo`\n *\n * @param {string} rawPathname A raw pathname\n * @return {string}\n */\nexport const cleanPath = rawPathname => {\n const trimmedPathname = trimPathname(absolutify(rawPathname))\n\n let foundPath = trimmedPathname\n if (foundPath === `/index.html`) {\n foundPath = `/`\n }\n\n foundPath = normalizePagePath(foundPath)\n\n return foundPath\n}\n","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = useScrollRestoration;\n\nvar _scrollHandler = require(\"./scroll-handler\");\n\nvar _react = require(\"react\");\n\nvar _router = require(\"@reach/router\");\n\nfunction useScrollRestoration(identifier) {\n var location = (0, _router.useLocation)();\n var state = (0, _react.useContext)(_scrollHandler.ScrollContext);\n var ref = (0, _react.useRef)();\n (0, _react.useLayoutEffect)(function () {\n if (ref.current) {\n var position = state.read(location, identifier);\n ref.current.scrollTo(0, position || 0);\n }\n }, []);\n return {\n ref: ref,\n onScroll: function onScroll() {\n if (ref.current) {\n state.save(location, identifier, ref.current.scrollTop);\n }\n }\n };\n}","// \n// An event handler can take an optional event argument\n// and should not return a value\n \n \n\n// An array of all currently registered event handlers for a type\n \n \n// A map of event types and their corresponding event handlers.\n \n \n \n \n\n/** Mitt: Tiny (~200b) functional event emitter / pubsub.\n * @name mitt\n * @returns {Mitt}\n */\nfunction mitt(all ) {\n\tall = all || Object.create(null);\n\n\treturn {\n\t\t/**\n\t\t * Register an event handler for the given type.\n\t\t *\n\t\t * @param {String} type\tType of event to listen for, or `\"*\"` for all events\n\t\t * @param {Function} handler Function to call in response to given event\n\t\t * @memberOf mitt\n\t\t */\n\t\ton: function on(type , handler ) {\n\t\t\t(all[type] || (all[type] = [])).push(handler);\n\t\t},\n\n\t\t/**\n\t\t * Remove an event handler for the given type.\n\t\t *\n\t\t * @param {String} type\tType of event to unregister `handler` from, or `\"*\"`\n\t\t * @param {Function} handler Handler function to remove\n\t\t * @memberOf mitt\n\t\t */\n\t\toff: function off(type , handler ) {\n\t\t\tif (all[type]) {\n\t\t\t\tall[type].splice(all[type].indexOf(handler) >>> 0, 1);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Invoke all handlers for the given type.\n\t\t * If present, `\"*\"` handlers are invoked after type-matched handlers.\n\t\t *\n\t\t * @param {String} type The event type to invoke\n\t\t * @param {Any} [evt] Any value (object is recommended and powerful), passed to each handler\n\t\t * @memberOf mitt\n\t\t */\n\t\temit: function emit(type , evt ) {\n\t\t\t(all[type] || []).slice().map(function (handler) { handler(evt); });\n\t\t\t(all['*'] || []).slice().map(function (handler) { handler(type, evt); });\n\t\t}\n\t};\n}\n\nexport default mitt;\n//# sourceMappingURL=mitt.es.js.map\n","import mitt from \"mitt\"\n\nconst emitter = mitt()\nexport default emitter\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = gradient;\n\nvar _isPrefixedValue = require('css-in-js-utils/lib/isPrefixedValue');\n\nvar _isPrefixedValue2 = _interopRequireDefault(_isPrefixedValue);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nvar prefixes = ['-webkit-', '-moz-', ''];\nvar values = /linear-gradient|radial-gradient|repeating-linear-gradient|repeating-radial-gradient/;\n\nfunction gradient(property, value) {\n if (typeof value === 'string' && !(0, _isPrefixedValue2.default)(value) && values.test(value)) {\n return prefixes.map(function (prefix) {\n return prefix + value;\n });\n }\n}\n\nmodule.exports = exports['default'];","// This is extracted to separate module because it's shared\n// between browser and SSR code\nexport const RouteAnnouncerProps = {\n id: `gatsby-announcer`,\n style: {\n position: `absolute`,\n top: 0,\n width: 1,\n height: 1,\n padding: 0,\n overflow: `hidden`,\n clip: `rect(0, 0, 0, 0)`,\n whiteSpace: `nowrap`,\n border: 0,\n },\n \"aria-live\": `assertive`,\n \"aria-atomic\": `true`,\n}\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = filter;\n\nvar _isPrefixedValue = require('css-in-js-utils/lib/isPrefixedValue');\n\nvar _isPrefixedValue2 = _interopRequireDefault(_isPrefixedValue);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n} // http://caniuse.com/#feat=css-filter-function\n\n\nvar prefixes = ['-webkit-', ''];\n\nfunction filter(property, value) {\n if (typeof value === 'string' && !(0, _isPrefixedValue2.default)(value) && value.indexOf('filter(') > -1) {\n return prefixes.map(function (prefix) {\n return value.replace(/filter\\(/g, prefix + 'filter(');\n });\n }\n}\n\nmodule.exports = exports['default'];","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = exports.ScrollContainer = exports.ScrollContext = void 0;\n\nvar _scrollHandler = require(\"./scroll-handler\");\n\nexports.ScrollContext = _scrollHandler.ScrollHandler;\n\nvar _scrollContainer = require(\"./scroll-container\");\n\nexports.ScrollContainer = _scrollContainer.ScrollContainer;\n\nvar _useScrollRestoration = require(\"./use-scroll-restoration\");\n\nexports.useScrollRestoration = _useScrollRestoration.useScrollRestoration;","function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutPropertiesLoose;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","exports.polyfill = Component => Component\n","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar getLocation = function getLocation(source) {\n var _source$location = source.location,\n search = _source$location.search,\n hash = _source$location.hash,\n href = _source$location.href,\n origin = _source$location.origin,\n protocol = _source$location.protocol,\n host = _source$location.host,\n hostname = _source$location.hostname,\n port = _source$location.port;\n var pathname = source.location.pathname;\n\n\n if (!pathname && href && canUseDOM) {\n var url = new URL(href);\n pathname = url.pathname;\n }\n\n return {\n pathname: encodeURI(decodeURI(pathname)),\n search: search,\n hash: hash,\n href: href,\n origin: origin,\n protocol: protocol,\n host: host,\n hostname: hostname,\n port: port,\n state: source.history.state,\n key: source.history.state && source.history.state.key || \"initial\"\n };\n};\n\nvar createHistory = function createHistory(source, options) {\n var listeners = [];\n var location = getLocation(source);\n var transitioning = false;\n var resolveTransition = function resolveTransition() {};\n\n return {\n get location() {\n return location;\n },\n\n get transitioning() {\n return transitioning;\n },\n\n _onTransitionComplete: function _onTransitionComplete() {\n transitioning = false;\n resolveTransition();\n },\n listen: function listen(listener) {\n listeners.push(listener);\n\n var popstateListener = function popstateListener() {\n location = getLocation(source);\n listener({ location: location, action: \"POP\" });\n };\n\n source.addEventListener(\"popstate\", popstateListener);\n\n return function () {\n source.removeEventListener(\"popstate\", popstateListener);\n listeners = listeners.filter(function (fn) {\n return fn !== listener;\n });\n };\n },\n navigate: function navigate(to) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n state = _ref.state,\n _ref$replace = _ref.replace,\n replace = _ref$replace === undefined ? false : _ref$replace;\n\n if (typeof to === \"number\") {\n source.history.go(to);\n } else {\n state = _extends({}, state, { key: Date.now() + \"\" });\n // try...catch iOS Safari limits to 100 pushState calls\n try {\n if (transitioning || replace) {\n source.history.replaceState(state, null, to);\n } else {\n source.history.pushState(state, null, to);\n }\n } catch (e) {\n source.location[replace ? \"replace\" : \"assign\"](to);\n }\n }\n\n location = getLocation(source);\n transitioning = true;\n var transition = new Promise(function (res) {\n return resolveTransition = res;\n });\n listeners.forEach(function (listener) {\n return listener({ location: location, action: \"PUSH\" });\n });\n return transition;\n }\n };\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Stores history entries in memory for testing or other platforms like Native\nvar createMemorySource = function createMemorySource() {\n var initialPath = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"/\";\n\n var searchIndex = initialPath.indexOf(\"?\");\n var initialLocation = {\n pathname: searchIndex > -1 ? initialPath.substr(0, searchIndex) : initialPath,\n search: searchIndex > -1 ? initialPath.substr(searchIndex) : \"\"\n };\n var index = 0;\n var stack = [initialLocation];\n var states = [null];\n\n return {\n get location() {\n return stack[index];\n },\n addEventListener: function addEventListener(name, fn) {},\n removeEventListener: function removeEventListener(name, fn) {},\n\n history: {\n get entries() {\n return stack;\n },\n get index() {\n return index;\n },\n get state() {\n return states[index];\n },\n pushState: function pushState(state, _, uri) {\n var _uri$split = uri.split(\"?\"),\n pathname = _uri$split[0],\n _uri$split$ = _uri$split[1],\n search = _uri$split$ === undefined ? \"\" : _uri$split$;\n\n index++;\n stack.push({ pathname: pathname, search: search.length ? \"?\" + search : search });\n states.push(state);\n },\n replaceState: function replaceState(state, _, uri) {\n var _uri$split2 = uri.split(\"?\"),\n pathname = _uri$split2[0],\n _uri$split2$ = _uri$split2[1],\n search = _uri$split2$ === undefined ? \"\" : _uri$split2$;\n\n stack[index] = { pathname: pathname, search: search };\n states[index] = state;\n },\n go: function go(to) {\n var newIndex = index + to;\n\n if (newIndex < 0 || newIndex > states.length - 1) {\n return;\n }\n\n index = newIndex;\n }\n }\n };\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// global history - uses window.history as the source if available, otherwise a\n// memory history\nvar canUseDOM = !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\nvar getSource = function getSource() {\n return canUseDOM ? window : createMemorySource();\n};\n\nvar globalHistory = createHistory(getSource());\nvar navigate = globalHistory.navigate;\n\n////////////////////////////////////////////////////////////////////////////////\n\nexport { globalHistory, navigate, createHistory, createMemorySource };","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = flex;\nvar values = {\n flex: ['-webkit-box', '-moz-box', '-ms-flexbox', '-webkit-flex', 'flex'],\n 'inline-flex': ['-webkit-inline-box', '-moz-inline-box', '-ms-inline-flexbox', '-webkit-inline-flex', 'inline-flex']\n};\n\nfunction flex(property, value) {\n if (property === 'display' && values.hasOwnProperty(value)) {\n return values[value];\n }\n}\n\nmodule.exports = exports['default'];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = doHash; // murmurhash2 via https://gist.github.com/raycmorgan/588423\n\nfunction doHash(str, seed) {\n var m = 0x5bd1e995;\n var r = 24;\n var h = seed ^ str.length;\n var length = str.length;\n var currentIndex = 0;\n\n while (length >= 4) {\n var k = UInt32(str, currentIndex);\n k = Umul32(k, m);\n k ^= k >>> r;\n k = Umul32(k, m);\n h = Umul32(h, m);\n h ^= k;\n currentIndex += 4;\n length -= 4;\n }\n\n switch (length) {\n case 3:\n h ^= UInt16(str, currentIndex);\n h ^= str.charCodeAt(currentIndex + 2) << 16;\n h = Umul32(h, m);\n break;\n\n case 2:\n h ^= UInt16(str, currentIndex);\n h = Umul32(h, m);\n break;\n\n case 1:\n h ^= str.charCodeAt(currentIndex);\n h = Umul32(h, m);\n break;\n }\n\n h ^= h >>> 13;\n h = Umul32(h, m);\n h ^= h >>> 15;\n return h >>> 0;\n}\n\nfunction UInt32(str, pos) {\n return str.charCodeAt(pos++) + (str.charCodeAt(pos++) << 8) + (str.charCodeAt(pos++) << 16) + (str.charCodeAt(pos) << 24);\n}\n\nfunction UInt16(str, pos) {\n return str.charCodeAt(pos++) + (str.charCodeAt(pos++) << 8);\n}\n\nfunction Umul32(n, m) {\n n = n | 0;\n m = m | 0;\n var nlo = n & 0xffff;\n var nhi = n >>> 16;\n var res = nlo * m + ((nhi * m & 0xffff) << 16) | 0;\n return res;\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.compose = exports.merge = exports.$ = exports.style = exports.presets = exports.keyframes = exports.fontFace = exports.insertGlobal = exports.insertRule = exports.plugins = exports.styleSheet = undefined;\nexports.speedy = speedy;\nexports.simulations = simulations;\nexports.simulate = simulate;\nexports.cssLabels = cssLabels;\nexports.isLikeRule = isLikeRule;\nexports.idFor = idFor;\nexports.css = css;\nexports.rehydrate = rehydrate;\nexports.flush = flush;\nexports.select = select;\nexports.parent = parent;\nexports.media = media;\nexports.pseudo = pseudo;\nexports.active = active;\nexports.any = any;\nexports.checked = checked;\nexports.disabled = disabled;\nexports.empty = empty;\nexports.enabled = enabled;\nexports._default = _default;\nexports.first = first;\nexports.firstChild = firstChild;\nexports.firstOfType = firstOfType;\nexports.fullscreen = fullscreen;\nexports.focus = focus;\nexports.hover = hover;\nexports.indeterminate = indeterminate;\nexports.inRange = inRange;\nexports.invalid = invalid;\nexports.lastChild = lastChild;\nexports.lastOfType = lastOfType;\nexports.left = left;\nexports.link = link;\nexports.onlyChild = onlyChild;\nexports.onlyOfType = onlyOfType;\nexports.optional = optional;\nexports.outOfRange = outOfRange;\nexports.readOnly = readOnly;\nexports.readWrite = readWrite;\nexports.required = required;\nexports.right = right;\nexports.root = root;\nexports.scope = scope;\nexports.target = target;\nexports.valid = valid;\nexports.visited = visited;\nexports.dir = dir;\nexports.lang = lang;\nexports.not = not;\nexports.nthChild = nthChild;\nexports.nthLastChild = nthLastChild;\nexports.nthLastOfType = nthLastOfType;\nexports.nthOfType = nthOfType;\nexports.after = after;\nexports.before = before;\nexports.firstLetter = firstLetter;\nexports.firstLine = firstLine;\nexports.selection = selection;\nexports.backdrop = backdrop;\nexports.placeholder = placeholder;\nexports.cssFor = cssFor;\nexports.attribsFor = attribsFor;\n\nvar _objectAssign = require('object-assign');\n\nvar _objectAssign2 = _interopRequireDefault(_objectAssign);\n\nvar _sheet = require('./sheet.js');\n\nvar _CSSPropertyOperations = require('./CSSPropertyOperations');\n\nvar _clean = require('./clean.js');\n\nvar _clean2 = _interopRequireDefault(_clean);\n\nvar _plugins = require('./plugins');\n\nvar _hash = require('./hash');\n\nvar _hash2 = _interopRequireDefault(_hash);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _toConsumableArray(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n } else {\n return Array.from(arr);\n }\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n/* stylesheet */\n\n\nvar styleSheet = exports.styleSheet = new _sheet.StyleSheet(); // an isomorphic StyleSheet shim. hides all the nitty gritty.\n// /**************** LIFTOFF IN 3... 2... 1... ****************/\n\nstyleSheet.inject(); //eslint-disable-line indent\n// /**************** TO THE MOOOOOOON ****************/\n// convenience function to toggle speedy\n\nfunction speedy(bool) {\n return styleSheet.speedy(bool);\n} // plugins\n// we include these by default\n\n\nvar plugins = exports.plugins = styleSheet.plugins = new _plugins.PluginSet([_plugins.prefixes, _plugins.contentWrap, _plugins.fallbacks]);\nplugins.media = new _plugins.PluginSet(); // neat! media, font-face, keyframes\n\nplugins.fontFace = new _plugins.PluginSet();\nplugins.keyframes = new _plugins.PluginSet([_plugins.prefixes, _plugins.fallbacks]); // define some constants\n\nvar isDev = process.env.NODE_ENV === 'development' || !process.env.NODE_ENV;\nvar isTest = process.env.NODE_ENV === 'test';\nvar isBrowser = typeof window !== 'undefined';\n/**** simulations ****/\n// a flag to enable simulation meta tags on dom nodes\n// defaults to true in dev mode. recommend *not* to\n// toggle often.\n\nvar canSimulate = isDev; // we use these flags for issuing warnings when simulate is called\n// in prod / in incorrect order\n\nvar warned1 = false,\n warned2 = false; // toggles simulation activity. shouldn't be needed in most cases\n\nfunction simulations() {\n var bool = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n canSimulate = !!bool;\n} // use this on dom nodes to 'simulate' pseudoclasses\n// <div {...hover({ color: 'red' })} {...simulate('hover', 'visited')}>...</div>\n// you can even send in some weird ones, as long as it's in simple format\n// and matches an existing rule on the element\n// eg simulate('nthChild2', ':hover:active') etc\n\n\nfunction simulate() {\n for (var _len = arguments.length, pseudos = Array(_len), _key = 0; _key < _len; _key++) {\n pseudos[_key] = arguments[_key];\n }\n\n pseudos = (0, _clean2.default)(pseudos);\n if (!pseudos) return {};\n\n if (!canSimulate) {\n if (!warned1) {\n console.warn('can\\'t simulate without once calling simulations(true)'); //eslint-disable-line no-console\n\n warned1 = true;\n }\n\n if (!isDev && !isTest && !warned2) {\n console.warn('don\\'t use simulation outside dev'); //eslint-disable-line no-console\n\n warned2 = true;\n }\n\n return {};\n }\n\n return pseudos.reduce(function (o, p) {\n return o['data-simulate-' + simple(p)] = '', o;\n }, {});\n}\n/**** labels ****/\n// toggle for debug labels.\n// *shouldn't* have to mess with this manually\n\n\nvar hasLabels = isDev;\n\nfunction cssLabels(bool) {\n hasLabels = !!bool;\n} // takes a string, converts to lowercase, strips out nonalphanumeric.\n\n\nfunction simple(str) {\n var char = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n return str.toLowerCase().replace(/[^a-z0-9]/g, char);\n} // hashes a string to something 'unique'\n// we use this to generate ids for styles\n\n\nfunction hashify(obj) {\n var str = JSON.stringify(obj);\n var toRet = (0, _hash2.default)(str).toString(36);\n\n if (obj.label && obj.label.length > 0 && isDev) {\n return simple(obj.label.join('.'), '-') + '-' + toRet;\n }\n\n return toRet;\n} // of shape { 'data-css-<id>': '' }\n\n\nfunction isLikeRule(rule) {\n var keys = Object.keys(rule).filter(function (x) {\n return x !== 'toString';\n });\n\n if (keys.length !== 1) {\n return false;\n }\n\n return !!/data\\-css\\-([a-zA-Z0-9\\-_]+)/.exec(keys[0]);\n} // extracts id from a { 'data-css-<id>': ''} like object\n\n\nfunction idFor(rule) {\n var keys = Object.keys(rule).filter(function (x) {\n return x !== 'toString';\n });\n if (keys.length !== 1) throw new Error('not a rule');\n var regex = /data\\-css\\-([a-zA-Z0-9\\-_]+)/;\n var match = regex.exec(keys[0]);\n if (!match) throw new Error('not a rule');\n return match[1];\n} // from https://github.com/j2css/j2c/blob/5d381c2d721d04b54fabe6a165d587247c3087cb/src/helpers.js#L28-L61\n// \"Tokenizes\" the selectors into parts relevant for the next function.\n// Strings and comments are matched, but ignored afterwards.\n// This is not a full tokenizers. It only recognizes comas, parentheses,\n// strings and comments.\n// regexp generated by scripts/regexps.js then trimmed by hand\n\n\nvar selectorTokenizer = /[(),]|\"(?:\\\\.|[^\"\\n])*\"|'(?:\\\\.|[^'\\n])*'|\\/\\*[\\s\\S]*?\\*\\//g;\n/**\n * This will split a coma-separated selector list into individual selectors,\n * ignoring comas in strings, comments and in :pseudo-selectors(parameter, lists).\n *\n * @param {string} selector\n * @return {string[]}\n */\n\nfunction splitSelector(selector) {\n if (selector.indexOf(',') === -1) {\n return [selector];\n }\n\n var indices = [],\n res = [],\n inParen = 0,\n o;\n /*eslint-disable no-cond-assign*/\n\n while (o = selectorTokenizer.exec(selector)) {\n /*eslint-enable no-cond-assign*/\n switch (o[0]) {\n case '(':\n inParen++;\n break;\n\n case ')':\n inParen--;\n break;\n\n case ',':\n if (inParen) break;\n indices.push(o.index);\n }\n }\n\n for (o = indices.length; o--;) {\n res.unshift(selector.slice(indices[o] + 1));\n selector = selector.slice(0, indices[o]);\n }\n\n res.unshift(selector);\n return res;\n}\n\nfunction selector(id, path) {\n if (!id) {\n return path.replace(/\\&/g, '');\n }\n\n if (!path) return '.css-' + id + ',[data-css-' + id + ']';\n var x = splitSelector(path).map(function (x) {\n return x.indexOf('&') >= 0 ? [x.replace(/\\&/mg, '.css-' + id), x.replace(/\\&/mg, '[data-css-' + id + ']')].join(',') // todo - make sure each sub selector has an &\n : '.css-' + id + x + ',[data-css-' + id + ']' + x;\n }).join(',');\n\n if (canSimulate && /^\\&\\:/.exec(path) && !/\\s/.exec(path)) {\n x += ',.css-' + id + '[data-simulate-' + simple(path) + '],[data-css-' + id + '][data-simulate-' + simple(path) + ']';\n }\n\n return x;\n} // end https://github.com/j2css/j2c/blob/5d381c2d721d04b54fabe6a165d587247c3087cb/src/helpers.js#L28-L61\n\n\nfunction toCSS(_ref) {\n var selector = _ref.selector,\n style = _ref.style;\n var result = plugins.transform({\n selector: selector,\n style: style\n });\n return result.selector + '{' + (0, _CSSPropertyOperations.createMarkupForStyles)(result.style) + '}';\n}\n\nfunction deconstruct(style) {\n // we can be sure it's not infinitely nested here\n var plain = void 0,\n selects = void 0,\n medias = void 0,\n supports = void 0;\n Object.keys(style).forEach(function (key) {\n if (key.indexOf('&') >= 0) {\n selects = selects || {};\n selects[key] = style[key];\n } else if (key.indexOf('@media') === 0) {\n medias = medias || {};\n medias[key] = deconstruct(style[key]);\n } else if (key.indexOf('@supports') === 0) {\n supports = supports || {};\n supports[key] = deconstruct(style[key]);\n } else if (key === 'label') {\n if (style.label.length > 0) {\n plain = plain || {};\n plain.label = hasLabels ? style.label.join('.') : '';\n }\n } else {\n plain = plain || {};\n plain[key] = style[key];\n }\n });\n return {\n plain: plain,\n selects: selects,\n medias: medias,\n supports: supports\n };\n}\n\nfunction deconstructedStyleToCSS(id, style) {\n var css = []; // plugins here\n\n var plain = style.plain,\n selects = style.selects,\n medias = style.medias,\n supports = style.supports;\n\n if (plain) {\n css.push(toCSS({\n style: plain,\n selector: selector(id)\n }));\n }\n\n if (selects) {\n Object.keys(selects).forEach(function (key) {\n return css.push(toCSS({\n style: selects[key],\n selector: selector(id, key)\n }));\n });\n }\n\n if (medias) {\n Object.keys(medias).forEach(function (key) {\n return css.push(key + '{' + deconstructedStyleToCSS(id, medias[key]).join('') + '}');\n });\n }\n\n if (supports) {\n Object.keys(supports).forEach(function (key) {\n return css.push(key + '{' + deconstructedStyleToCSS(id, supports[key]).join('') + '}');\n });\n }\n\n return css;\n} // this cache to track which rules have\n// been inserted into the stylesheet\n\n\nvar inserted = styleSheet.inserted = {}; // and helpers to insert rules into said styleSheet\n\nfunction insert(spec) {\n if (!inserted[spec.id]) {\n inserted[spec.id] = true;\n var deconstructed = deconstruct(spec.style);\n var rules = deconstructedStyleToCSS(spec.id, deconstructed);\n inserted[spec.id] = isBrowser ? true : rules;\n rules.forEach(function (cssRule) {\n return styleSheet.insert(cssRule);\n });\n }\n} // a simple cache to store generated rules\n\n\nvar registered = styleSheet.registered = {};\n\nfunction register(spec) {\n if (!registered[spec.id]) {\n registered[spec.id] = spec;\n }\n}\n\nfunction _getRegistered(rule) {\n if (isLikeRule(rule)) {\n var ret = registered[idFor(rule)];\n\n if (ret == null) {\n throw new Error('[glamor] an unexpected rule cache miss occurred. This is probably a sign of multiple glamor instances in your app. See https://github.com/threepointone/glamor/issues/79');\n }\n\n return ret;\n }\n\n return rule;\n} // todo - perf\n\n\nvar ruleCache = {};\n\nfunction toRule(spec) {\n register(spec);\n insert(spec);\n\n if (ruleCache[spec.id]) {\n return ruleCache[spec.id];\n }\n\n var ret = _defineProperty({}, 'data-css-' + spec.id, hasLabels ? spec.label || '' : '');\n\n Object.defineProperty(ret, 'toString', {\n enumerable: false,\n value: function value() {\n return 'css-' + spec.id;\n }\n });\n ruleCache[spec.id] = ret;\n return ret;\n}\n\nfunction log() {\n //eslint-disable-line no-unused-vars\n console.log(this); //eslint-disable-line no-console\n\n return this;\n}\n\nfunction isSelector(key) {\n var possibles = [':', '.', '[', '>', ' '],\n found = false,\n ch = key.charAt(0);\n\n for (var i = 0; i < possibles.length; i++) {\n if (ch === possibles[i]) {\n found = true;\n break;\n }\n }\n\n return found || key.indexOf('&') >= 0;\n}\n\nfunction joinSelectors(a, b) {\n var as = splitSelector(a).map(function (a) {\n return !(a.indexOf('&') >= 0) ? '&' + a : a;\n });\n var bs = splitSelector(b).map(function (b) {\n return !(b.indexOf('&') >= 0) ? '&' + b : b;\n });\n return bs.reduce(function (arr, b) {\n return arr.concat(as.map(function (a) {\n return b.replace(/\\&/g, a);\n }));\n }, []).join(',');\n}\n\nfunction joinMediaQueries(a, b) {\n return a ? '@media ' + a.substring(6) + ' and ' + b.substring(6) : b;\n}\n\nfunction isMediaQuery(key) {\n return key.indexOf('@media') === 0;\n}\n\nfunction isSupports(key) {\n return key.indexOf('@supports') === 0;\n}\n\nfunction joinSupports(a, b) {\n return a ? '@supports ' + a.substring(9) + ' and ' + b.substring(9) : b;\n} // flatten a nested array\n\n\nfunction flatten(inArr) {\n var arr = [];\n\n for (var i = 0; i < inArr.length; i++) {\n if (Array.isArray(inArr[i])) arr = arr.concat(flatten(inArr[i]));else arr = arr.concat(inArr[i]);\n }\n\n return arr;\n}\n\nvar prefixedPseudoSelectors = {\n '::placeholder': ['::-webkit-input-placeholder', '::-moz-placeholder', '::-ms-input-placeholder'],\n ':fullscreen': [':-webkit-full-screen', ':-moz-full-screen', ':-ms-fullscreen'] // mutable! modifies dest.\n\n};\n\nfunction build(dest, _ref2) {\n var _ref2$selector = _ref2.selector,\n selector = _ref2$selector === undefined ? '' : _ref2$selector,\n _ref2$mq = _ref2.mq,\n mq = _ref2$mq === undefined ? '' : _ref2$mq,\n _ref2$supp = _ref2.supp,\n supp = _ref2$supp === undefined ? '' : _ref2$supp,\n _ref2$src = _ref2.src,\n src = _ref2$src === undefined ? {} : _ref2$src;\n\n if (!Array.isArray(src)) {\n src = [src];\n }\n\n src = flatten(src);\n src.forEach(function (_src) {\n if (isLikeRule(_src)) {\n var reg = _getRegistered(_src);\n\n if (reg.type !== 'css') {\n throw new Error('cannot merge this rule');\n }\n\n _src = reg.style;\n }\n\n _src = (0, _clean2.default)(_src);\n\n if (_src && _src.composes) {\n build(dest, {\n selector: selector,\n mq: mq,\n supp: supp,\n src: _src.composes\n });\n }\n\n Object.keys(_src || {}).forEach(function (key) {\n if (isSelector(key)) {\n if (prefixedPseudoSelectors[key]) {\n prefixedPseudoSelectors[key].forEach(function (p) {\n return build(dest, {\n selector: joinSelectors(selector, p),\n mq: mq,\n supp: supp,\n src: _src[key]\n });\n });\n }\n\n build(dest, {\n selector: joinSelectors(selector, key),\n mq: mq,\n supp: supp,\n src: _src[key]\n });\n } else if (isMediaQuery(key)) {\n build(dest, {\n selector: selector,\n mq: joinMediaQueries(mq, key),\n supp: supp,\n src: _src[key]\n });\n } else if (isSupports(key)) {\n build(dest, {\n selector: selector,\n mq: mq,\n supp: joinSupports(supp, key),\n src: _src[key]\n });\n } else if (key === 'composes') {// ignore, we already dealth with it\n } else {\n var _dest = dest;\n\n if (supp) {\n _dest[supp] = _dest[supp] || {};\n _dest = _dest[supp];\n }\n\n if (mq) {\n _dest[mq] = _dest[mq] || {};\n _dest = _dest[mq];\n }\n\n if (selector) {\n _dest[selector] = _dest[selector] || {};\n _dest = _dest[selector];\n }\n\n if (key === 'label') {\n if (hasLabels) {\n dest.label = dest.label.concat(_src.label);\n }\n } else {\n _dest[key] = _src[key];\n }\n }\n });\n });\n}\n\nfunction _css(rules) {\n var style = {\n label: []\n };\n build(style, {\n src: rules\n }); // mutative! but worth it.\n\n var spec = {\n id: hashify(style),\n style: style,\n label: hasLabels ? style.label.join('.') : '',\n type: 'css'\n };\n return toRule(spec);\n}\n\nvar nullrule = {// 'data-css-nil': ''\n};\nObject.defineProperty(nullrule, 'toString', {\n enumerable: false,\n value: function value() {\n return 'css-nil';\n }\n});\nvar inputCaches = typeof WeakMap !== 'undefined' ? [nullrule, new WeakMap(), new WeakMap(), new WeakMap()] : [nullrule];\nvar warnedWeakMapError = false;\n\nfunction multiIndexCache(fn) {\n return function (args) {\n if (inputCaches[args.length]) {\n var coi = inputCaches[args.length];\n var ctr = 0;\n\n while (ctr < args.length - 1) {\n if (!coi.has(args[ctr])) {\n coi.set(args[ctr], new WeakMap());\n }\n\n coi = coi.get(args[ctr]);\n ctr++;\n }\n\n if (coi.has(args[args.length - 1])) {\n var ret = coi.get(args[ctr]);\n\n if (registered[ret.toString().substring(4)]) {\n // make sure it hasn't been flushed\n return ret;\n }\n }\n }\n\n var value = fn(args);\n\n if (inputCaches[args.length]) {\n var _ctr = 0,\n _coi = inputCaches[args.length];\n\n while (_ctr < args.length - 1) {\n _coi = _coi.get(args[_ctr]);\n _ctr++;\n }\n\n try {\n _coi.set(args[_ctr], value);\n } catch (err) {\n if (isDev && !warnedWeakMapError) {\n var _console;\n\n warnedWeakMapError = true;\n\n (_console = console).warn.apply(_console, ['failed setting the WeakMap cache for args:'].concat(_toConsumableArray(args))); // eslint-disable-line no-console\n\n\n console.warn('this should NOT happen, please file a bug on the github repo.'); // eslint-disable-line no-console\n }\n }\n }\n\n return value;\n };\n}\n\nvar cachedCss = typeof WeakMap !== 'undefined' ? multiIndexCache(_css) : _css;\n\nfunction css() {\n for (var _len2 = arguments.length, rules = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n rules[_key2] = arguments[_key2];\n }\n\n if (rules[0] && rules[0].length && rules[0].raw) {\n throw new Error('you forgot to include glamor/babel in your babel plugins.');\n }\n\n rules = (0, _clean2.default)(rules);\n\n if (!rules) {\n return nullrule;\n }\n\n return cachedCss(rules);\n}\n\ncss.insert = function (css) {\n var spec = {\n id: hashify(css),\n css: css,\n type: 'raw'\n };\n register(spec);\n\n if (!inserted[spec.id]) {\n styleSheet.insert(spec.css);\n inserted[spec.id] = isBrowser ? true : [spec.css];\n }\n};\n\nvar insertRule = exports.insertRule = css.insert;\n\ncss.global = function (selector, style) {\n style = (0, _clean2.default)(style);\n\n if (style) {\n return css.insert(toCSS({\n selector: selector,\n style: style\n }));\n }\n};\n\nvar insertGlobal = exports.insertGlobal = css.global;\n\nfunction insertKeyframe(spec) {\n if (!inserted[spec.id]) {\n var inner = Object.keys(spec.keyframes).map(function (kf) {\n var result = plugins.keyframes.transform({\n id: spec.id,\n name: kf,\n style: spec.keyframes[kf]\n });\n return result.name + '{' + (0, _CSSPropertyOperations.createMarkupForStyles)(result.style) + '}';\n }).join('');\n var rules = ['-webkit-', '-moz-', '-o-', ''].map(function (prefix) {\n return '@' + prefix + 'keyframes ' + (spec.name + '_' + spec.id) + '{' + inner + '}';\n });\n rules.forEach(function (rule) {\n return styleSheet.insert(rule);\n });\n inserted[spec.id] = isBrowser ? true : rules;\n }\n}\n\ncss.keyframes = function (name, kfs) {\n if (!kfs) {\n kfs = name, name = 'animation';\n } // do not ignore empty keyframe definitions for now.\n\n\n kfs = (0, _clean2.default)(kfs) || {};\n var spec = {\n id: hashify({\n name: name,\n kfs: kfs\n }),\n type: 'keyframes',\n name: name,\n keyframes: kfs\n };\n register(spec);\n insertKeyframe(spec);\n return name + '_' + spec.id;\n}; // we don't go all out for fonts as much, giving a simple font loading strategy\n// use a fancier lib if you need moar power\n\n\ncss.fontFace = function (font) {\n font = (0, _clean2.default)(font);\n var spec = {\n id: hashify(font),\n type: 'font-face',\n font: font\n };\n register(spec);\n insertFontFace(spec);\n return font.fontFamily;\n};\n\nvar fontFace = exports.fontFace = css.fontFace;\nvar keyframes = exports.keyframes = css.keyframes;\n\nfunction insertFontFace(spec) {\n if (!inserted[spec.id]) {\n var rule = '@font-face{' + (0, _CSSPropertyOperations.createMarkupForStyles)(spec.font) + '}';\n styleSheet.insert(rule);\n inserted[spec.id] = isBrowser ? true : [rule];\n }\n} // rehydrate the insertion cache with ids sent from\n// renderStatic / renderStaticOptimized\n\n\nfunction rehydrate(ids) {\n // load up ids\n (0, _objectAssign2.default)(inserted, ids.reduce(function (o, i) {\n return o[i] = true, o;\n }, {})); // assume css loaded separately\n} // clears out the cache and empties the stylesheet\n// best for tests, though there might be some value for SSR.\n\n\nfunction flush() {\n inserted = styleSheet.inserted = {};\n registered = styleSheet.registered = {};\n ruleCache = {};\n styleSheet.flush();\n styleSheet.inject();\n}\n\nvar presets = exports.presets = {\n mobile: '(min-width: 400px)',\n Mobile: '@media (min-width: 400px)',\n phablet: '(min-width: 550px)',\n Phablet: '@media (min-width: 550px)',\n tablet: '(min-width: 750px)',\n Tablet: '@media (min-width: 750px)',\n desktop: '(min-width: 1000px)',\n Desktop: '@media (min-width: 1000px)',\n hd: '(min-width: 1200px)',\n Hd: '@media (min-width: 1200px)'\n};\nvar style = exports.style = css;\n\nfunction select(selector) {\n for (var _len3 = arguments.length, styles = Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n styles[_key3 - 1] = arguments[_key3];\n }\n\n if (!selector) {\n return style(styles);\n }\n\n return css(_defineProperty({}, selector, styles));\n}\n\nvar $ = exports.$ = select;\n\nfunction parent(selector) {\n for (var _len4 = arguments.length, styles = Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n styles[_key4 - 1] = arguments[_key4];\n }\n\n return css(_defineProperty({}, selector + ' &', styles));\n}\n\nvar merge = exports.merge = css;\nvar compose = exports.compose = css;\n\nfunction media(query) {\n for (var _len5 = arguments.length, rules = Array(_len5 > 1 ? _len5 - 1 : 0), _key5 = 1; _key5 < _len5; _key5++) {\n rules[_key5 - 1] = arguments[_key5];\n }\n\n return css(_defineProperty({}, '@media ' + query, rules));\n}\n\nfunction pseudo(selector) {\n for (var _len6 = arguments.length, styles = Array(_len6 > 1 ? _len6 - 1 : 0), _key6 = 1; _key6 < _len6; _key6++) {\n styles[_key6 - 1] = arguments[_key6];\n }\n\n return css(_defineProperty({}, selector, styles));\n} // allllll the pseudoclasses\n\n\nfunction active(x) {\n return pseudo(':active', x);\n}\n\nfunction any(x) {\n return pseudo(':any', x);\n}\n\nfunction checked(x) {\n return pseudo(':checked', x);\n}\n\nfunction disabled(x) {\n return pseudo(':disabled', x);\n}\n\nfunction empty(x) {\n return pseudo(':empty', x);\n}\n\nfunction enabled(x) {\n return pseudo(':enabled', x);\n}\n\nfunction _default(x) {\n return pseudo(':default', x); // note '_default' name\n}\n\nfunction first(x) {\n return pseudo(':first', x);\n}\n\nfunction firstChild(x) {\n return pseudo(':first-child', x);\n}\n\nfunction firstOfType(x) {\n return pseudo(':first-of-type', x);\n}\n\nfunction fullscreen(x) {\n return pseudo(':fullscreen', x);\n}\n\nfunction focus(x) {\n return pseudo(':focus', x);\n}\n\nfunction hover(x) {\n return pseudo(':hover', x);\n}\n\nfunction indeterminate(x) {\n return pseudo(':indeterminate', x);\n}\n\nfunction inRange(x) {\n return pseudo(':in-range', x);\n}\n\nfunction invalid(x) {\n return pseudo(':invalid', x);\n}\n\nfunction lastChild(x) {\n return pseudo(':last-child', x);\n}\n\nfunction lastOfType(x) {\n return pseudo(':last-of-type', x);\n}\n\nfunction left(x) {\n return pseudo(':left', x);\n}\n\nfunction link(x) {\n return pseudo(':link', x);\n}\n\nfunction onlyChild(x) {\n return pseudo(':only-child', x);\n}\n\nfunction onlyOfType(x) {\n return pseudo(':only-of-type', x);\n}\n\nfunction optional(x) {\n return pseudo(':optional', x);\n}\n\nfunction outOfRange(x) {\n return pseudo(':out-of-range', x);\n}\n\nfunction readOnly(x) {\n return pseudo(':read-only', x);\n}\n\nfunction readWrite(x) {\n return pseudo(':read-write', x);\n}\n\nfunction required(x) {\n return pseudo(':required', x);\n}\n\nfunction right(x) {\n return pseudo(':right', x);\n}\n\nfunction root(x) {\n return pseudo(':root', x);\n}\n\nfunction scope(x) {\n return pseudo(':scope', x);\n}\n\nfunction target(x) {\n return pseudo(':target', x);\n}\n\nfunction valid(x) {\n return pseudo(':valid', x);\n}\n\nfunction visited(x) {\n return pseudo(':visited', x);\n} // parameterized pseudoclasses\n\n\nfunction dir(p, x) {\n return pseudo(':dir(' + p + ')', x);\n}\n\nfunction lang(p, x) {\n return pseudo(':lang(' + p + ')', x);\n}\n\nfunction not(p, x) {\n // should this be a plugin?\n var selector = p.split(',').map(function (x) {\n return x.trim();\n }).map(function (x) {\n return ':not(' + x + ')';\n });\n\n if (selector.length === 1) {\n return pseudo(':not(' + p + ')', x);\n }\n\n return select(selector.join(''), x);\n}\n\nfunction nthChild(p, x) {\n return pseudo(':nth-child(' + p + ')', x);\n}\n\nfunction nthLastChild(p, x) {\n return pseudo(':nth-last-child(' + p + ')', x);\n}\n\nfunction nthLastOfType(p, x) {\n return pseudo(':nth-last-of-type(' + p + ')', x);\n}\n\nfunction nthOfType(p, x) {\n return pseudo(':nth-of-type(' + p + ')', x);\n} // pseudoelements\n\n\nfunction after(x) {\n return pseudo('::after', x);\n}\n\nfunction before(x) {\n return pseudo('::before', x);\n}\n\nfunction firstLetter(x) {\n return pseudo('::first-letter', x);\n}\n\nfunction firstLine(x) {\n return pseudo('::first-line', x);\n}\n\nfunction selection(x) {\n return pseudo('::selection', x);\n}\n\nfunction backdrop(x) {\n return pseudo('::backdrop', x);\n}\n\nfunction placeholder(x) {\n // https://github.com/threepointone/glamor/issues/14\n return css({\n '::placeholder': x\n });\n}\n/*** helpers for web components ***/\n// https://github.com/threepointone/glamor/issues/16\n\n\nfunction cssFor() {\n for (var _len7 = arguments.length, rules = Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n rules[_key7] = arguments[_key7];\n }\n\n rules = (0, _clean2.default)(rules);\n return rules ? rules.map(function (r) {\n var style = {\n label: []\n };\n build(style, {\n src: r\n }); // mutative! but worth it.\n\n return deconstructedStyleToCSS(hashify(style), deconstruct(style)).join('');\n }).join('') : '';\n}\n\nfunction attribsFor() {\n for (var _len8 = arguments.length, rules = Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n rules[_key8] = arguments[_key8];\n }\n\n rules = (0, _clean2.default)(rules);\n var htmlAttributes = rules ? rules.map(function (rule) {\n idFor(rule); // throwaway check for rule\n\n var key = Object.keys(rule)[0],\n value = rule[key];\n return key + '=\"' + (value || '') + '\"';\n }).join(' ') : '';\n return htmlAttributes;\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _gatsby = require(\"gatsby\");\n\nvar _catchLinks = _interopRequireDefault(require(\"./catch-links\"));\n\nexports.onClientEntry = function () {\n (0, _catchLinks.default)(window, function (href) {\n (0, _gatsby.navigate)(href);\n });\n};","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.ScrollHandler = exports.ScrollContext = void 0;\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _sessionStorage = require(\"./session-storage\");\n\nvar ScrollContext = /*#__PURE__*/React.createContext(new _sessionStorage.SessionStorage());\nexports.ScrollContext = ScrollContext;\nScrollContext.displayName = \"GatsbyScrollContext\";\n\nvar ScrollHandler = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(ScrollHandler, _React$Component);\n\n function ScrollHandler() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this._stateStorage = new _sessionStorage.SessionStorage();\n\n _this.scrollListener = function () {\n var key = _this.props.location.key;\n\n if (key) {\n _this._stateStorage.save(_this.props.location, key, window.scrollY);\n }\n };\n\n _this.windowScroll = function (position, prevProps) {\n if (_this.shouldUpdateScroll(prevProps, _this.props)) {\n window.scrollTo(0, position);\n }\n };\n\n _this.scrollToHash = function (hash, prevProps) {\n var node = document.getElementById(hash.substring(1));\n\n if (node && _this.shouldUpdateScroll(prevProps, _this.props)) {\n node.scrollIntoView();\n }\n };\n\n _this.shouldUpdateScroll = function (prevRouterProps, routerProps) {\n var shouldUpdateScroll = _this.props.shouldUpdateScroll;\n\n if (!shouldUpdateScroll) {\n return true;\n } // Hack to allow accessing this._stateStorage.\n\n\n return shouldUpdateScroll.call((0, _assertThisInitialized2.default)(_this), prevRouterProps, routerProps);\n };\n\n return _this;\n }\n\n var _proto = ScrollHandler.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n window.addEventListener(\"scroll\", this.scrollListener);\n var scrollPosition;\n var _this$props$location = this.props.location,\n key = _this$props$location.key,\n hash = _this$props$location.hash;\n\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n\n if (scrollPosition) {\n this.windowScroll(scrollPosition, undefined);\n } else if (hash) {\n this.scrollToHash(decodeURI(hash), undefined);\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n window.removeEventListener(\"scroll\", this.scrollListener);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var _this$props$location2 = this.props.location,\n hash = _this$props$location2.hash,\n key = _this$props$location2.key;\n var scrollPosition;\n\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n /** There are two pieces of state: the browser url and\n * history state which keeps track of scroll position\n * Native behaviour prescribes that we ought to restore scroll position\n * when a user navigates back in their browser (this is the `POP` action)\n * Currently, reach router has a bug that prevents this at https://github.com/reach/router/issues/228\n * So we _always_ stick to the url as a source of truth — if the url\n * contains a hash, we scroll to it\n */\n\n\n if (hash) {\n this.scrollToHash(decodeURI(hash), prevProps);\n } else {\n this.windowScroll(scrollPosition, prevProps);\n }\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(ScrollContext.Provider, {\n value: this._stateStorage\n }, this.props.children);\n };\n\n return ScrollHandler;\n}(React.Component);\n\nexports.ScrollHandler = ScrollHandler;\nScrollHandler.propTypes = {\n shouldUpdateScroll: _propTypes.default.func,\n children: _propTypes.default.element.isRequired,\n location: _propTypes.default.object.isRequired\n};","import React, { createElement } from \"react\"\nimport PropTypes from \"prop-types\"\nimport { publicLoader } from \"./loader\"\nimport { apiRunner } from \"./api-runner-browser\"\nimport { grabMatchParams } from \"./find-path\"\n\n// Renders page\nclass PageRenderer extends React.Component {\n render() {\n const props = {\n ...this.props,\n params: {\n ...grabMatchParams(this.props.location.pathname),\n ...this.props.pageResources.json.pageContext.__params,\n },\n pathContext: this.props.pageContext,\n }\n\n const [replacementElement] = apiRunner(`replaceComponentRenderer`, {\n props: this.props,\n loader: publicLoader,\n })\n\n const pageElement =\n replacementElement ||\n createElement(this.props.pageResources.component, {\n ...props,\n key: this.props.path || this.props.pageResources.page.path,\n })\n\n const wrappedPage = apiRunner(\n `wrapPageElement`,\n { element: pageElement, props },\n pageElement,\n ({ result }) => {\n return { element: result, props }\n }\n ).pop()\n\n return wrappedPage\n }\n}\n\nPageRenderer.propTypes = {\n location: PropTypes.object.isRequired,\n pageResources: PropTypes.object.isRequired,\n data: PropTypes.object,\n pageContext: PropTypes.object.isRequired,\n}\n\nexport default PageRenderer\n","import invariant from \"invariant\";\n\n////////////////////////////////////////////////////////////////////////////////\n// startsWith(string, search) - Check if `string` starts with `search`\nvar startsWith = function startsWith(string, search) {\n return string.substr(0, search.length) === search;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// pick(routes, uri)\n//\n// Ranks and picks the best route to match. Each segment gets the highest\n// amount of points, then the type of segment gets an additional amount of\n// points where\n//\n// static > dynamic > splat > root\n//\n// This way we don't have to worry about the order of our routes, let the\n// computers do it.\n//\n// A route looks like this\n//\n// { path, default, value }\n//\n// And a returned match looks like:\n//\n// { route, params, uri }\n//\n// I know, I should use TypeScript not comments for these types.\nvar pick = function pick(routes, uri) {\n var match = void 0;\n var default_ = void 0;\n\n var _uri$split = uri.split(\"?\"),\n uriPathname = _uri$split[0];\n\n var uriSegments = segmentize(uriPathname);\n var isRootUri = uriSegments[0] === \"\";\n var ranked = rankRoutes(routes);\n\n for (var i = 0, l = ranked.length; i < l; i++) {\n var missed = false;\n var route = ranked[i].route;\n\n if (route.default) {\n default_ = {\n route: route,\n params: {},\n uri: uri\n };\n continue;\n }\n\n var routeSegments = segmentize(route.path);\n var params = {};\n var max = Math.max(uriSegments.length, routeSegments.length);\n var index = 0;\n\n for (; index < max; index++) {\n var routeSegment = routeSegments[index];\n var uriSegment = uriSegments[index];\n\n if (isSplat(routeSegment)) {\n // Hit a splat, just grab the rest, and return a match\n // uri: /files/documents/work\n // route: /files/*\n var param = routeSegment.slice(1) || \"*\";\n params[param] = uriSegments.slice(index).map(decodeURIComponent).join(\"/\");\n break;\n }\n\n if (uriSegment === undefined) {\n // URI is shorter than the route, no match\n // uri: /users\n // route: /users/:userId\n missed = true;\n break;\n }\n\n var dynamicMatch = paramRe.exec(routeSegment);\n\n if (dynamicMatch && !isRootUri) {\n var matchIsNotReserved = reservedNames.indexOf(dynamicMatch[1]) === -1;\n !matchIsNotReserved ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"<Router> dynamic segment \\\"\" + dynamicMatch[1] + \"\\\" is a reserved name. Please use a different name in path \\\"\" + route.path + \"\\\".\") : invariant(false) : void 0;\n var value = decodeURIComponent(uriSegment);\n params[dynamicMatch[1]] = value;\n } else if (routeSegment !== uriSegment) {\n // Current segments don't match, not dynamic, not splat, so no match\n // uri: /users/123/settings\n // route: /users/:id/profile\n missed = true;\n break;\n }\n }\n\n if (!missed) {\n match = {\n route: route,\n params: params,\n uri: \"/\" + uriSegments.slice(0, index).join(\"/\")\n };\n break;\n }\n }\n\n return match || default_ || null;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// match(path, uri) - Matches just one path to a uri, also lol\nvar match = function match(path, uri) {\n return pick([{ path: path }], uri);\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// resolve(to, basepath)\n//\n// Resolves URIs as though every path is a directory, no files. Relative URIs\n// in the browser can feel awkward because not only can you be \"in a directory\"\n// you can be \"at a file\", too. For example\n//\n// browserSpecResolve('foo', '/bar/') => /bar/foo\n// browserSpecResolve('foo', '/bar') => /foo\n//\n// But on the command line of a file system, it's not as complicated, you can't\n// `cd` from a file, only directories. This way, links have to know less about\n// their current path. To go deeper you can do this:\n//\n// <Link to=\"deeper\"/>\n// // instead of\n// <Link to=`{${props.uri}/deeper}`/>\n//\n// Just like `cd`, if you want to go deeper from the command line, you do this:\n//\n// cd deeper\n// # not\n// cd $(pwd)/deeper\n//\n// By treating every path as a directory, linking to relative paths should\n// require less contextual information and (fingers crossed) be more intuitive.\nvar resolve = function resolve(to, base) {\n // /foo/bar, /baz/qux => /foo/bar\n if (startsWith(to, \"/\")) {\n return to;\n }\n\n var _to$split = to.split(\"?\"),\n toPathname = _to$split[0],\n toQuery = _to$split[1];\n\n var _base$split = base.split(\"?\"),\n basePathname = _base$split[0];\n\n var toSegments = segmentize(toPathname);\n var baseSegments = segmentize(basePathname);\n\n // ?a=b, /users?b=c => /users?a=b\n if (toSegments[0] === \"\") {\n return addQuery(basePathname, toQuery);\n }\n\n // profile, /users/789 => /users/789/profile\n if (!startsWith(toSegments[0], \".\")) {\n var pathname = baseSegments.concat(toSegments).join(\"/\");\n return addQuery((basePathname === \"/\" ? \"\" : \"/\") + pathname, toQuery);\n }\n\n // ./ /users/123 => /users/123\n // ../ /users/123 => /users\n // ../.. /users/123 => /\n // ../../one /a/b/c/d => /a/b/one\n // .././one /a/b/c/d => /a/b/c/one\n var allSegments = baseSegments.concat(toSegments);\n var segments = [];\n for (var i = 0, l = allSegments.length; i < l; i++) {\n var segment = allSegments[i];\n if (segment === \"..\") segments.pop();else if (segment !== \".\") segments.push(segment);\n }\n\n return addQuery(\"/\" + segments.join(\"/\"), toQuery);\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// insertParams(path, params)\n\nvar insertParams = function insertParams(path, params) {\n var _path$split = path.split(\"?\"),\n pathBase = _path$split[0],\n _path$split$ = _path$split[1],\n query = _path$split$ === undefined ? \"\" : _path$split$;\n\n var segments = segmentize(pathBase);\n var constructedPath = \"/\" + segments.map(function (segment) {\n var match = paramRe.exec(segment);\n return match ? params[match[1]] : segment;\n }).join(\"/\");\n var _params$location = params.location;\n _params$location = _params$location === undefined ? {} : _params$location;\n var _params$location$sear = _params$location.search,\n search = _params$location$sear === undefined ? \"\" : _params$location$sear;\n\n var searchSplit = search.split(\"?\")[1] || \"\";\n constructedPath = addQuery(constructedPath, query, searchSplit);\n return constructedPath;\n};\n\nvar validateRedirect = function validateRedirect(from, to) {\n var filter = function filter(segment) {\n return isDynamic(segment);\n };\n var fromString = segmentize(from).filter(filter).sort().join(\"/\");\n var toString = segmentize(to).filter(filter).sort().join(\"/\");\n return fromString === toString;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Junk\nvar paramRe = /^:(.+)/;\n\nvar SEGMENT_POINTS = 4;\nvar STATIC_POINTS = 3;\nvar DYNAMIC_POINTS = 2;\nvar SPLAT_PENALTY = 1;\nvar ROOT_POINTS = 1;\n\nvar isRootSegment = function isRootSegment(segment) {\n return segment === \"\";\n};\nvar isDynamic = function isDynamic(segment) {\n return paramRe.test(segment);\n};\nvar isSplat = function isSplat(segment) {\n return segment && segment[0] === \"*\";\n};\n\nvar rankRoute = function rankRoute(route, index) {\n var score = route.default ? 0 : segmentize(route.path).reduce(function (score, segment) {\n score += SEGMENT_POINTS;\n if (isRootSegment(segment)) score += ROOT_POINTS;else if (isDynamic(segment)) score += DYNAMIC_POINTS;else if (isSplat(segment)) score -= SEGMENT_POINTS + SPLAT_PENALTY;else score += STATIC_POINTS;\n return score;\n }, 0);\n return { route: route, score: score, index: index };\n};\n\nvar rankRoutes = function rankRoutes(routes) {\n return routes.map(rankRoute).sort(function (a, b) {\n return a.score < b.score ? 1 : a.score > b.score ? -1 : a.index - b.index;\n });\n};\n\nvar segmentize = function segmentize(uri) {\n return uri\n // strip starting/ending slashes\n .replace(/(^\\/+|\\/+$)/g, \"\").split(\"/\");\n};\n\nvar addQuery = function addQuery(pathname) {\n for (var _len = arguments.length, query = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n query[_key - 1] = arguments[_key];\n }\n\n query = query.filter(function (q) {\n return q && q.length > 0;\n });\n return pathname + (query && query.length > 0 ? \"?\" + query.join(\"&\") : \"\");\n};\n\nvar reservedNames = [\"uri\", \"path\"];\n\n/**\n * Shallow compares two objects.\n * @param {Object} obj1 The first object to compare.\n * @param {Object} obj2 The second object to compare.\n */\nvar shallowCompare = function shallowCompare(obj1, obj2) {\n var obj1Keys = Object.keys(obj1);\n return obj1Keys.length === Object.keys(obj2).length && obj1Keys.every(function (key) {\n return obj2.hasOwnProperty(key) && obj1[key] === obj2[key];\n });\n};\n\n////////////////////////////////////////////////////////////////////////////////\nexport { startsWith, pick, match, resolve, insertParams, validateRedirect, shallowCompare };","module.exports = [{\n plugin: require('../node_modules/gatsby-plugin-catch-links/gatsby-browser.js'),\n options: {\"plugins\":[]},\n },{\n plugin: require('../node_modules/gatsby-plugin-twitter/gatsby-browser.js'),\n options: {\"plugins\":[]},\n },{\n plugin: require('../node_modules/gatsby-plugin-glamor/gatsby-browser.js'),\n options: {\"plugins\":[]},\n },{\n plugin: require('../node_modules/gatsby-plugin-typography/gatsby-browser.js'),\n options: {\"plugins\":[],\"pathToConfigModule\":\"src/utils/typography.js\"},\n },{\n plugin: require('../node_modules/gatsby-plugin-google-analytics/gatsby-browser.js'),\n options: {\"plugins\":[],\"trackingId\":\"UA-188600-10\"},\n },{\n plugin: require('../gatsby-browser.js'),\n options: {\"plugins\":[]},\n }]\n","/* eslint-disable no-var, prefer-template */\nvar uppercasePattern = /[A-Z]/g;\nvar msPattern = /^ms-/;\nvar cache = {};\n\nfunction toHyphenLower(match) {\n return '-' + match.toLowerCase();\n}\n\nfunction hyphenateStyleName(name) {\n if (cache.hasOwnProperty(name)) {\n return cache[name];\n }\n\n var hName = name.replace(uppercasePattern, toHyphenLower);\n return cache[name] = msPattern.test(hName) ? '-' + hName : hName;\n}\n\nexport default hyphenateStyleName;","/*!\n * domready (c) Dustin Diaz 2014 - License MIT\n * ie10 fix - Mikael Kristiansson 2019\n */\n!(function(name, definition) {\n if (typeof module != \"undefined\") module.exports = definition();\n else if (typeof define == \"function\" && typeof define.amd == \"object\")\n define(definition);\n else this[name] = definition();\n})(\"domready\", function() {\n var ie10 = false;\n if (navigator.appVersion.indexOf(\"MSIE 10\") !== -1) {\n ie10 = true;\n }\n\n var fns = [],\n listener,\n doc = typeof document === \"object\" && document,\n hack = ie10\n ? doc.documentElement.doScroll(\"left\")\n : doc.documentElement.doScroll,\n domContentLoaded = \"DOMContentLoaded\",\n loaded =\n doc && (hack ? /^loaded|^c/ : /^loaded|^i|^c/).test(doc.readyState);\n\n if (!loaded && doc)\n doc.addEventListener(\n domContentLoaded,\n (listener = function() {\n doc.removeEventListener(domContentLoaded, listener);\n loaded = 1;\n while ((listener = fns.shift())) listener();\n })\n );\n\n return function(fn) {\n loaded ? setTimeout(fn, 0) : fns.push(fn);\n };\n});\n","import { apiRunner } from \"./api-runner-browser\"\n\nif (\n window.location.protocol !== `https:` &&\n window.location.hostname !== `localhost`\n) {\n console.error(\n `Service workers can only be used over HTTPS, or on localhost for development`\n )\n} else if (`serviceWorker` in navigator) {\n navigator.serviceWorker\n .register(`${__BASE_PATH__}/sw.js`)\n .then(function (reg) {\n reg.addEventListener(`updatefound`, () => {\n apiRunner(`onServiceWorkerUpdateFound`, { serviceWorker: reg })\n // The updatefound event implies that reg.installing is set; see\n // https://w3c.github.io/ServiceWorker/#service-worker-registration-updatefound-event\n const installingWorker = reg.installing\n console.log(`installingWorker`, installingWorker)\n installingWorker.addEventListener(`statechange`, () => {\n switch (installingWorker.state) {\n case `installed`:\n if (navigator.serviceWorker.controller) {\n // At this point, the old content will have been purged and the fresh content will\n // have been added to the cache.\n\n // We set a flag so Gatsby Link knows to refresh the page on next navigation attempt\n window.___swUpdated = true\n // We call the onServiceWorkerUpdateReady API so users can show update prompts.\n apiRunner(`onServiceWorkerUpdateReady`, { serviceWorker: reg })\n\n // If resources failed for the current page, reload.\n if (window.___failedResources) {\n console.log(`resources failed, SW updated - reloading`)\n window.location.reload()\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a \"Content is cached for offline use.\" message.\n console.log(`Content is now available offline!`)\n\n // Post to service worker that install is complete.\n // Delay to allow time for the event listener to be added --\n // otherwise fetch is called too soon and resources aren't cached.\n apiRunner(`onServiceWorkerInstalled`, { serviceWorker: reg })\n }\n break\n\n case `redundant`:\n console.error(`The installing service worker became redundant.`)\n apiRunner(`onServiceWorkerRedundant`, { serviceWorker: reg })\n break\n\n case `activated`:\n apiRunner(`onServiceWorkerActive`, { serviceWorker: reg })\n break\n }\n })\n })\n })\n .catch(function (e) {\n console.error(`Error during service worker registration:`, e)\n })\n}\n","\"use strict\";\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\nvar _hyphenPattern = /-(.)/g;\n/**\n * Camelcases a hyphenated string, for example:\n *\n * > camelize('background-color')\n * < \"backgroundColor\"\n *\n * @param {string} string\n * @return {string}\n */\n\nfunction camelize(string) {\n return string.replace(_hyphenPattern, function (_, character) {\n return character.toUpperCase();\n });\n}\n\nmodule.exports = camelize;","// prefer default export if available\nconst preferDefault = m => (m && m.default) || m\n\nexports.components = {\n \"component---src-pages-404-js\": () => import(\"./../../../src/pages/404.js\" /* webpackChunkName: \"component---src-pages-404-js\" */),\n \"component---src-pages-index-js\": () => import(\"./../../../src/pages/index.js\" /* webpackChunkName: \"component---src-pages-index-js\" */),\n \"component---src-templates-docs-js\": () => import(\"./../../../src/templates/docs.js\" /* webpackChunkName: \"component---src-templates-docs-js\" */)\n}\n\n","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","\"use strict\";\n\nvar injectTwitterScript = function injectTwitterScript() {\n function addJS(jsCode) {\n var s = document.createElement(\"script\");\n s.type = \"text/javascript\";\n s.innerText = jsCode;\n document.getElementsByTagName(\"head\")[0].appendChild(s);\n }\n\n addJS(\"\\n window.twttr = (function(d, s, id) {\\n var js,\\n fjs = d.getElementsByTagName(s)[0],\\n t = window.twttr || {};\\n if (d.getElementById(id)) return t;\\n js = d.createElement(s);\\n js.id = id;\\n js.src = \\\"https://platform.twitter.com/widgets.js\\\";\\n fjs.parentNode.insertBefore(js, fjs);\\n t._e = [];\\n t.ready = function(f) {\\n t._e.push(f);\\n };\\n return t;\\n })(document, \\\"script\\\", \\\"twitter-wjs\\\");\\n \");\n};\n\nvar injectedTwitterScript = false;\nvar embedClasses = [\".twitter-tweet\", \".twitter-timeline\", \".twitter-follow-button\", \".twitter-share-button\"].join(\",\");\n\nexports.onRouteUpdate = function () {\n // If there's an embedded element, lazy-load the twitter script (if it hasn't\n // already been loaded), and then run the twitter load function.\n if (document.querySelector(embedClasses) !== null) {\n if (!injectedTwitterScript) {\n injectTwitterScript();\n injectedTwitterScript = true;\n }\n\n if (typeof twttr !== \"undefined\" && window.twttr.widgets && typeof window.twttr.widgets.load === \"function\") {\n window.twttr.widgets.load();\n }\n }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = prefixValue;\n\nfunction prefixValue(plugins, property, value, style, metaData) {\n for (var i = 0, len = plugins.length; i < len; ++i) {\n var processedValue = plugins[i](property, value, style, metaData); // we can stop processing if a value is returned\n // as all plugin criteria are unique\n\n if (processedValue) {\n return processedValue;\n }\n }\n}\n\nmodule.exports = exports[\"default\"];","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = hyphenateProperty;\n\nvar _hyphenateStyleName = require('hyphenate-style-name');\n\nvar _hyphenateStyleName2 = _interopRequireDefault(_hyphenateStyleName);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction hyphenateProperty(property) {\n return (0, _hyphenateStyleName2.default)(property);\n}\n\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.StyleSheet = StyleSheet;\n\nvar _objectAssign = require('object-assign');\n\nvar _objectAssign2 = _interopRequireDefault(_objectAssign);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _toConsumableArray(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n } else {\n return Array.from(arr);\n }\n}\n/* \n\nhigh performance StyleSheet for css-in-js systems \n\n- uses multiple style tags behind the scenes for millions of rules \n- uses `insertRule` for appending in production for *much* faster performance\n- 'polyfills' on server side \n\n\n// usage\n\nimport StyleSheet from 'glamor/lib/sheet'\nlet styleSheet = new StyleSheet()\n\nstyleSheet.inject() \n- 'injects' the stylesheet into the page (or into memory if on server)\n\nstyleSheet.insert('#box { border: 1px solid red; }') \n- appends a css rule into the stylesheet \n\nstyleSheet.flush() \n- empties the stylesheet of all its contents\n\n\n*/\n\n\nfunction last(arr) {\n return arr[arr.length - 1];\n}\n\nfunction sheetForTag(tag) {\n if (tag.sheet) {\n return tag.sheet;\n } // this weirdness brought to you by firefox \n\n\n for (var i = 0; i < document.styleSheets.length; i++) {\n if (document.styleSheets[i].ownerNode === tag) {\n return document.styleSheets[i];\n }\n }\n}\n\nvar isBrowser = typeof window !== 'undefined';\nvar isDev = process.env.NODE_ENV === 'development' || !process.env.NODE_ENV; //(x => (x === 'development') || !x)(process.env.NODE_ENV)\n\nvar isTest = process.env.NODE_ENV === 'test';\n\nvar oldIE = function () {\n if (isBrowser) {\n var div = document.createElement('div');\n div.innerHTML = '<!--[if lt IE 10]><i></i><![endif]-->';\n return div.getElementsByTagName('i').length === 1;\n }\n}();\n\nfunction makeStyleTag() {\n var tag = document.createElement('style');\n tag.type = 'text/css';\n tag.setAttribute('data-glamor', '');\n tag.appendChild(document.createTextNode(''));\n (document.head || document.getElementsByTagName('head')[0]).appendChild(tag);\n return tag;\n}\n\nfunction StyleSheet() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$speedy = _ref.speedy,\n speedy = _ref$speedy === undefined ? !isDev && !isTest : _ref$speedy,\n _ref$maxLength = _ref.maxLength,\n maxLength = _ref$maxLength === undefined ? isBrowser && oldIE ? 4000 : 65000 : _ref$maxLength;\n\n this.isSpeedy = speedy; // the big drawback here is that the css won't be editable in devtools\n\n this.sheet = undefined;\n this.tags = [];\n this.maxLength = maxLength;\n this.ctr = 0;\n}\n\n(0, _objectAssign2.default)(StyleSheet.prototype, {\n getSheet: function getSheet() {\n return sheetForTag(last(this.tags));\n },\n inject: function inject() {\n var _this = this;\n\n if (this.injected) {\n throw new Error('already injected stylesheet!');\n }\n\n if (isBrowser) {\n this.tags[0] = makeStyleTag();\n } else {\n // server side 'polyfill'. just enough behavior to be useful.\n this.sheet = {\n cssRules: [],\n insertRule: function insertRule(rule) {\n // enough 'spec compliance' to be able to extract the rules later \n // in other words, just the cssText field \n _this.sheet.cssRules.push({\n cssText: rule\n });\n }\n };\n }\n\n this.injected = true;\n },\n speedy: function speedy(bool) {\n if (this.ctr !== 0) {\n throw new Error('cannot change speedy mode after inserting any rule to sheet. Either call speedy(' + bool + ') earlier in your app, or call flush() before speedy(' + bool + ')');\n }\n\n this.isSpeedy = !!bool;\n },\n _insert: function _insert(rule) {\n // this weirdness for perf, and chrome's weird bug \n // https://stackoverflow.com/questions/20007992/chrome-suddenly-stopped-accepting-insertrule\n try {\n var sheet = this.getSheet();\n sheet.insertRule(rule, rule.indexOf('@import') !== -1 ? 0 : sheet.cssRules.length);\n } catch (e) {\n if (isDev) {\n // might need beter dx for this \n console.warn('whoops, illegal rule inserted', rule); //eslint-disable-line no-console\n }\n }\n },\n insert: function insert(rule) {\n if (isBrowser) {\n // this is the ultrafast version, works across browsers \n if (this.isSpeedy && this.getSheet().insertRule) {\n this._insert(rule);\n } // more browser weirdness. I don't even know \n // else if(this.tags.length > 0 && this.tags::last().styleSheet) { \n // this.tags::last().styleSheet.cssText+= rule\n // }\n else {\n if (rule.indexOf('@import') !== -1) {\n var tag = last(this.tags);\n tag.insertBefore(document.createTextNode(rule), tag.firstChild);\n } else {\n last(this.tags).appendChild(document.createTextNode(rule));\n }\n }\n } else {\n // server side is pretty simple \n this.sheet.insertRule(rule, rule.indexOf('@import') !== -1 ? 0 : this.sheet.cssRules.length);\n }\n\n this.ctr++;\n\n if (isBrowser && this.ctr % this.maxLength === 0) {\n this.tags.push(makeStyleTag());\n }\n\n return this.ctr - 1;\n },\n // commenting this out till we decide on v3's decision \n // _replace(index, rule) {\n // // this weirdness for perf, and chrome's weird bug \n // // https://stackoverflow.com/questions/20007992/chrome-suddenly-stopped-accepting-insertrule\n // try { \n // let sheet = this.getSheet() \n // sheet.deleteRule(index) // todo - correct index here \n // sheet.insertRule(rule, index)\n // }\n // catch(e) {\n // if(isDev) {\n // // might need beter dx for this \n // console.warn('whoops, problem replacing rule', rule) //eslint-disable-line no-console\n // } \n // } \n // }\n // replace(index, rule) {\n // if(isBrowser) {\n // if(this.isSpeedy && this.getSheet().insertRule) {\n // this._replace(index, rule)\n // }\n // else {\n // let _slot = Math.floor((index + this.maxLength) / this.maxLength) - 1 \n // let _index = (index % this.maxLength) + 1\n // let tag = this.tags[_slot]\n // tag.replaceChild(document.createTextNode(rule), tag.childNodes[_index])\n // }\n // }\n // else {\n // let rules = this.sheet.cssRules\n // this.sheet.cssRules = [ ...rules.slice(0, index), { cssText: rule }, ...rules.slice(index + 1) ]\n // }\n // }\n delete: function _delete(index) {\n // we insert a blank rule when 'deleting' so previously returned indexes remain stable\n return this.replace(index, '');\n },\n flush: function flush() {\n if (isBrowser) {\n this.tags.forEach(function (tag) {\n return tag.parentNode.removeChild(tag);\n });\n this.tags = [];\n this.sheet = null;\n this.ctr = 0; // todo - look for remnants in document.styleSheets\n } else {\n // simpler on server \n this.sheet.cssRules = [];\n }\n\n this.injected = false;\n },\n rules: function rules() {\n if (!isBrowser) {\n return this.sheet.cssRules;\n }\n\n var arr = [];\n this.tags.forEach(function (tag) {\n return arr.splice.apply(arr, [arr.length, 0].concat(_toConsumableArray(Array.from(sheetForTag(tag).cssRules))));\n });\n return arr;\n }\n});","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = capitalizeString;\n\nfunction capitalizeString(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _glamor = require(\"glamor\");\n\nexports.onClientEntry = function () {\n if (window._glamor) {\n (0, _glamor.rehydrate)(window._glamor);\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 module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","import { apiRunner, apiRunnerAsync } from \"./api-runner-browser\"\nimport React from \"react\"\nimport ReactDOM from \"react-dom\"\nimport { Router, navigate, Location, BaseContext } from \"@reach/router\"\nimport { ScrollContext } from \"gatsby-react-router-scroll\"\nimport domReady from \"@mikaelkristiansson/domready\"\nimport { StaticQueryContext } from \"gatsby\"\nimport {\n shouldUpdateScroll,\n init as navigationInit,\n RouteUpdates,\n} from \"./navigation\"\nimport emitter from \"./emitter\"\nimport PageRenderer from \"./page-renderer\"\nimport asyncRequires from \"$virtual/async-requires\"\nimport {\n setLoader,\n ProdLoader,\n publicLoader,\n PageResourceStatus,\n getStaticQueryResults,\n} from \"./loader\"\nimport EnsureResources from \"./ensure-resources\"\nimport stripPrefix from \"./strip-prefix\"\n\n// Generated during bootstrap\nimport matchPaths from \"$virtual/match-paths.json\"\n\nconst loader = new ProdLoader(asyncRequires, matchPaths)\nsetLoader(loader)\nloader.setApiRunner(apiRunner)\n\nwindow.asyncRequires = asyncRequires\nwindow.___emitter = emitter\nwindow.___loader = publicLoader\n\nnavigationInit()\n\napiRunnerAsync(`onClientEntry`).then(() => {\n // Let plugins register a service worker. The plugin just needs\n // to return true.\n if (apiRunner(`registerServiceWorker`).length > 0) {\n require(`./register-service-worker`)\n }\n\n // In gatsby v2 if Router is used in page using matchPaths\n // paths need to contain full path.\n // For example:\n // - page have `/app/*` matchPath\n // - inside template user needs to use `/app/xyz` as path\n // Resetting `basepath`/`baseuri` keeps current behaviour\n // to not introduce breaking change.\n // Remove this in v3\n const RouteHandler = props => (\n <BaseContext.Provider\n value={{\n baseuri: `/`,\n basepath: `/`,\n }}\n >\n <PageRenderer {...props} />\n </BaseContext.Provider>\n )\n\n const DataContext = React.createContext({})\n\n class GatsbyRoot extends React.Component {\n render() {\n const { children } = this.props\n return (\n <Location>\n {({ location }) => (\n <EnsureResources location={location}>\n {({ pageResources, location }) => {\n const staticQueryResults = getStaticQueryResults()\n return (\n <StaticQueryContext.Provider value={staticQueryResults}>\n <DataContext.Provider value={{ pageResources, location }}>\n {children}\n </DataContext.Provider>\n </StaticQueryContext.Provider>\n )\n }}\n </EnsureResources>\n )}\n </Location>\n )\n }\n }\n\n class LocationHandler extends React.Component {\n render() {\n return (\n <DataContext.Consumer>\n {({ pageResources, location }) => (\n <RouteUpdates location={location}>\n <ScrollContext\n location={location}\n shouldUpdateScroll={shouldUpdateScroll}\n >\n <Router\n basepath={__BASE_PATH__}\n location={location}\n id=\"gatsby-focus-wrapper\"\n >\n <RouteHandler\n path={\n pageResources.page.path === `/404.html`\n ? stripPrefix(location.pathname, __BASE_PATH__)\n : encodeURI(\n pageResources.page.matchPath ||\n pageResources.page.path\n )\n }\n {...this.props}\n location={location}\n pageResources={pageResources}\n {...pageResources.json}\n />\n </Router>\n </ScrollContext>\n </RouteUpdates>\n )}\n </DataContext.Consumer>\n )\n }\n }\n\n const { pagePath, location: browserLoc } = window\n\n // Explicitly call navigate if the canonical path (window.pagePath)\n // is different to the browser path (window.location.pathname). But\n // only if NONE of the following conditions hold:\n //\n // - The url matches a client side route (page.matchPath)\n // - it's a 404 page\n // - it's the offline plugin shell (/offline-plugin-app-shell-fallback/)\n if (\n pagePath &&\n __BASE_PATH__ + pagePath !== browserLoc.pathname &&\n !(\n loader.findMatchPath(stripPrefix(browserLoc.pathname, __BASE_PATH__)) ||\n pagePath === `/404.html` ||\n pagePath.match(/^\\/404\\/?$/) ||\n pagePath.match(/^\\/offline-plugin-app-shell-fallback\\/?$/)\n )\n ) {\n navigate(__BASE_PATH__ + pagePath + browserLoc.search + browserLoc.hash, {\n replace: true,\n })\n }\n\n publicLoader.loadPage(browserLoc.pathname).then(page => {\n if (!page || page.status === PageResourceStatus.Error) {\n throw new Error(\n `page resources for ${browserLoc.pathname} not found. Not rendering React`\n )\n }\n\n window.___webpackCompilationHash = page.page.webpackCompilationHash\n\n const SiteRoot = apiRunner(\n `wrapRootElement`,\n { element: <LocationHandler /> },\n <LocationHandler />,\n ({ result }) => {\n return { element: result }\n }\n ).pop()\n\n const App = () => <GatsbyRoot>{SiteRoot}</GatsbyRoot>\n\n const renderer = apiRunner(\n `replaceHydrateFunction`,\n undefined,\n ReactDOM.hydrate\n )[0]\n\n domReady(() => {\n renderer(\n <App />,\n typeof window !== `undefined`\n ? document.getElementById(`___gatsby`)\n : void 0,\n () => {\n apiRunner(`onInitialClientRender`)\n }\n )\n })\n })\n})\n","var setPrototypeOf = require(\"./setPrototypeOf.js\");\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inheritsLoose;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport Link, {\n withPrefix,\n withAssetPrefix,\n navigate,\n push,\n replace,\n navigateTo,\n parsePath,\n} from \"gatsby-link\"\nimport { useScrollRestoration } from \"gatsby-react-router-scroll\"\nimport PageRenderer from \"./public-page-renderer\"\nimport loader from \"./loader\"\n\nconst prefetchPathname = loader.enqueue\n\nconst StaticQueryContext = React.createContext({})\n\nfunction StaticQueryDataRenderer({ staticQueryData, data, query, render }) {\n const finalData = data\n ? data.data\n : staticQueryData[query] && staticQueryData[query].data\n\n return (\n <React.Fragment>\n {finalData && render(finalData)}\n {!finalData && <div>Loading (StaticQuery)</div>}\n </React.Fragment>\n )\n}\n\nconst StaticQuery = props => {\n const { data, query, render, children } = props\n\n return (\n <StaticQueryContext.Consumer>\n {staticQueryData => (\n <StaticQueryDataRenderer\n data={data}\n query={query}\n render={render || children}\n staticQueryData={staticQueryData}\n />\n )}\n </StaticQueryContext.Consumer>\n )\n}\n\nconst useStaticQuery = query => {\n if (\n typeof React.useContext !== `function` &&\n process.env.NODE_ENV === `development`\n ) {\n throw new Error(\n `You're likely using a version of React that doesn't support Hooks\\n` +\n `Please update React and ReactDOM to 16.8.0 or later to use the useStaticQuery hook.`\n )\n }\n const context = React.useContext(StaticQueryContext)\n\n // query is a stringified number like `3303882` when wrapped with graphql, If a user forgets\n // to wrap the query in a grqphql, then casting it to a Number results in `NaN` allowing us to\n // catch the misuse of the API and give proper direction\n if (isNaN(Number(query))) {\n throw new Error(`useStaticQuery was called with a string but expects to be called using \\`graphql\\`. Try this:\n\nimport { useStaticQuery, graphql } from 'gatsby';\n\nuseStaticQuery(graphql\\`${query}\\`);\n`)\n }\n\n if (context[query]?.data) {\n return context[query].data\n } else {\n throw new Error(\n `The result of this StaticQuery could not be fetched.\\n\\n` +\n `This is likely a bug in Gatsby and if refreshing the page does not fix it, ` +\n `please open an issue in https://github.com/gatsbyjs/gatsby/issues`\n )\n }\n}\n\nStaticQuery.propTypes = {\n data: PropTypes.object,\n query: PropTypes.string.isRequired,\n render: PropTypes.func,\n children: PropTypes.func,\n}\n\nfunction graphql() {\n throw new Error(\n `It appears like Gatsby is misconfigured. Gatsby related \\`graphql\\` calls ` +\n `are supposed to only be evaluated at compile time, and then compiled away. ` +\n `Unfortunately, something went wrong and the query was left in the compiled code.\\n\\n` +\n `Unless your site has a complex or custom babel/Gatsby configuration this is likely a bug in Gatsby.`\n )\n}\n\nexport {\n Link,\n withAssetPrefix,\n withPrefix,\n graphql,\n parsePath,\n navigate,\n push, // TODO replace for v3\n replace, // TODO remove replace for v3\n navigateTo, // TODO: remove navigateTo for v3\n useScrollRestoration,\n StaticQueryContext,\n StaticQuery,\n PageRenderer,\n useStaticQuery,\n prefetchPathname,\n}\n","\"use strict\";\n\nmodule.exports = Object.assign;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/* eslint-disable jsx-a11y/anchor-has-content */\nimport React, { useContext } from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"invariant\";\nimport createContext from \"create-react-context\";\nimport { polyfill } from \"react-lifecycles-compat\";\nimport { startsWith, pick, resolve, match, insertParams, validateRedirect, shallowCompare } from \"./lib/utils\";\nimport { globalHistory, navigate, createHistory, createMemorySource } from \"./lib/history\";\n\n////////////////////////////////////////////////////////////////////////////////\n\nvar createNamedContext = function createNamedContext(name, defaultValue) {\n var Ctx = createContext(defaultValue);\n Ctx.displayName = name;\n return Ctx;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Location Context/Provider\nvar LocationContext = createNamedContext(\"Location\");\n\n// sets up a listener if there isn't one already so apps don't need to be\n// wrapped in some top level provider\nvar Location = function Location(_ref) {\n var children = _ref.children;\n return React.createElement(\n LocationContext.Consumer,\n null,\n function (context) {\n return context ? children(context) : React.createElement(\n LocationProvider,\n null,\n children\n );\n }\n );\n};\n\nvar LocationProvider = function (_React$Component) {\n _inherits(LocationProvider, _React$Component);\n\n function LocationProvider() {\n var _temp, _this, _ret;\n\n _classCallCheck(this, LocationProvider);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.state = {\n context: _this.getContext(),\n refs: { unlisten: null }\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n LocationProvider.prototype.getContext = function getContext() {\n var _props$history = this.props.history,\n navigate = _props$history.navigate,\n location = _props$history.location;\n\n return { navigate: navigate, location: location };\n };\n\n LocationProvider.prototype.componentDidCatch = function componentDidCatch(error, info) {\n if (isRedirect(error)) {\n var _navigate = this.props.history.navigate;\n\n _navigate(error.uri, { replace: true });\n } else {\n throw error;\n }\n };\n\n LocationProvider.prototype.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n if (prevState.context.location !== this.state.context.location) {\n this.props.history._onTransitionComplete();\n }\n };\n\n LocationProvider.prototype.componentDidMount = function componentDidMount() {\n var _this2 = this;\n\n var refs = this.state.refs,\n history = this.props.history;\n\n history._onTransitionComplete();\n refs.unlisten = history.listen(function () {\n Promise.resolve().then(function () {\n // TODO: replace rAF with react deferred update API when it's ready https://github.com/facebook/react/issues/13306\n requestAnimationFrame(function () {\n if (!_this2.unmounted) {\n _this2.setState(function () {\n return { context: _this2.getContext() };\n });\n }\n });\n });\n });\n };\n\n LocationProvider.prototype.componentWillUnmount = function componentWillUnmount() {\n var refs = this.state.refs;\n\n this.unmounted = true;\n refs.unlisten();\n };\n\n LocationProvider.prototype.render = function render() {\n var context = this.state.context,\n children = this.props.children;\n\n return React.createElement(\n LocationContext.Provider,\n { value: context },\n typeof children === \"function\" ? children(context) : children || null\n );\n };\n\n return LocationProvider;\n}(React.Component);\n\n////////////////////////////////////////////////////////////////////////////////\n\n\nLocationProvider.defaultProps = {\n history: globalHistory\n};\nprocess.env.NODE_ENV !== \"production\" ? LocationProvider.propTypes = {\n history: PropTypes.object.isRequired\n} : void 0;\nvar ServerLocation = function ServerLocation(_ref2) {\n var url = _ref2.url,\n children = _ref2.children;\n\n var searchIndex = url.indexOf(\"?\");\n var searchExists = searchIndex > -1;\n var pathname = void 0;\n var search = \"\";\n var hash = \"\";\n\n if (searchExists) {\n pathname = url.substring(0, searchIndex);\n search = url.substring(searchIndex);\n } else {\n pathname = url;\n }\n\n return React.createElement(\n LocationContext.Provider,\n {\n value: {\n location: {\n pathname: pathname,\n search: search,\n hash: hash\n },\n navigate: function navigate() {\n throw new Error(\"You can't call navigate on the server.\");\n }\n }\n },\n children\n );\n};\n////////////////////////////////////////////////////////////////////////////////\n// Sets baseuri and basepath for nested routers and links\nvar BaseContext = createNamedContext(\"Base\", { baseuri: \"/\", basepath: \"/\" });\n\n////////////////////////////////////////////////////////////////////////////////\n// The main event, welcome to the show everybody.\nvar Router = function Router(props) {\n return React.createElement(\n BaseContext.Consumer,\n null,\n function (baseContext) {\n return React.createElement(\n Location,\n null,\n function (locationContext) {\n return React.createElement(RouterImpl, _extends({}, baseContext, locationContext, props));\n }\n );\n }\n );\n};\n\nvar RouterImpl = function (_React$PureComponent) {\n _inherits(RouterImpl, _React$PureComponent);\n\n function RouterImpl() {\n _classCallCheck(this, RouterImpl);\n\n return _possibleConstructorReturn(this, _React$PureComponent.apply(this, arguments));\n }\n\n RouterImpl.prototype.render = function render() {\n var _props = this.props,\n location = _props.location,\n _navigate2 = _props.navigate,\n basepath = _props.basepath,\n primary = _props.primary,\n children = _props.children,\n baseuri = _props.baseuri,\n _props$component = _props.component,\n component = _props$component === undefined ? \"div\" : _props$component,\n domProps = _objectWithoutProperties(_props, [\"location\", \"navigate\", \"basepath\", \"primary\", \"children\", \"baseuri\", \"component\"]);\n\n var routes = React.Children.toArray(children).reduce(function (array, child) {\n var routes = createRoute(basepath)(child);\n return array.concat(routes);\n }, []);\n var pathname = location.pathname;\n\n\n var match = pick(routes, pathname);\n\n if (match) {\n var params = match.params,\n uri = match.uri,\n route = match.route,\n element = match.route.value;\n\n // remove the /* from the end for child routes relative paths\n\n basepath = route.default ? basepath : route.path.replace(/\\*$/, \"\");\n\n var props = _extends({}, params, {\n uri: uri,\n location: location,\n navigate: function navigate(to, options) {\n return _navigate2(resolve(to, uri), options);\n }\n });\n\n var clone = React.cloneElement(element, props, element.props.children ? React.createElement(\n Router,\n { location: location, primary: primary },\n element.props.children\n ) : undefined);\n\n // using 'div' for < 16.3 support\n var FocusWrapper = primary ? FocusHandler : component;\n // don't pass any props to 'div'\n var wrapperProps = primary ? _extends({ uri: uri, location: location, component: component }, domProps) : domProps;\n\n return React.createElement(\n BaseContext.Provider,\n { value: { baseuri: uri, basepath: basepath } },\n React.createElement(\n FocusWrapper,\n wrapperProps,\n clone\n )\n );\n } else {\n // Not sure if we want this, would require index routes at every level\n // warning(\n // false,\n // `<Router basepath=\"${basepath}\">\\n\\nNothing matched:\\n\\t${\n // location.pathname\n // }\\n\\nPaths checked: \\n\\t${routes\n // .map(route => route.path)\n // .join(\n // \"\\n\\t\"\n // )}\\n\\nTo get rid of this warning, add a default NotFound component as child of Router:\n // \\n\\tlet NotFound = () => <div>Not Found!</div>\n // \\n\\t<Router>\\n\\t <NotFound default/>\\n\\t {/* ... */}\\n\\t</Router>`\n // );\n return null;\n }\n };\n\n return RouterImpl;\n}(React.PureComponent);\n\nRouterImpl.defaultProps = {\n primary: true\n};\n\n\nvar FocusContext = createNamedContext(\"Focus\");\n\nvar FocusHandler = function FocusHandler(_ref3) {\n var uri = _ref3.uri,\n location = _ref3.location,\n component = _ref3.component,\n domProps = _objectWithoutProperties(_ref3, [\"uri\", \"location\", \"component\"]);\n\n return React.createElement(\n FocusContext.Consumer,\n null,\n function (requestFocus) {\n return React.createElement(FocusHandlerImpl, _extends({}, domProps, {\n component: component,\n requestFocus: requestFocus,\n uri: uri,\n location: location\n }));\n }\n );\n};\n\n// don't focus on initial render\nvar initialRender = true;\nvar focusHandlerCount = 0;\n\nvar FocusHandlerImpl = function (_React$Component2) {\n _inherits(FocusHandlerImpl, _React$Component2);\n\n function FocusHandlerImpl() {\n var _temp2, _this4, _ret2;\n\n _classCallCheck(this, FocusHandlerImpl);\n\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return _ret2 = (_temp2 = (_this4 = _possibleConstructorReturn(this, _React$Component2.call.apply(_React$Component2, [this].concat(args))), _this4), _this4.state = {}, _this4.requestFocus = function (node) {\n if (!_this4.state.shouldFocus && node) {\n node.focus();\n }\n }, _temp2), _possibleConstructorReturn(_this4, _ret2);\n }\n\n FocusHandlerImpl.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {\n var initial = prevState.uri == null;\n if (initial) {\n return _extends({\n shouldFocus: true\n }, nextProps);\n } else {\n var myURIChanged = nextProps.uri !== prevState.uri;\n var navigatedUpToMe = prevState.location.pathname !== nextProps.location.pathname && nextProps.location.pathname === nextProps.uri;\n return _extends({\n shouldFocus: myURIChanged || navigatedUpToMe\n }, nextProps);\n }\n };\n\n FocusHandlerImpl.prototype.componentDidMount = function componentDidMount() {\n focusHandlerCount++;\n this.focus();\n };\n\n FocusHandlerImpl.prototype.componentWillUnmount = function componentWillUnmount() {\n focusHandlerCount--;\n if (focusHandlerCount === 0) {\n initialRender = true;\n }\n };\n\n FocusHandlerImpl.prototype.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n if (prevProps.location !== this.props.location && this.state.shouldFocus) {\n this.focus();\n }\n };\n\n FocusHandlerImpl.prototype.focus = function focus() {\n if (process.env.NODE_ENV === \"test\") {\n // getting cannot read property focus of null in the tests\n // and that bit of global `initialRender` state causes problems\n // should probably figure it out!\n return;\n }\n\n var requestFocus = this.props.requestFocus;\n\n\n if (requestFocus) {\n requestFocus(this.node);\n } else {\n if (initialRender) {\n initialRender = false;\n } else if (this.node) {\n // React polyfills [autofocus] and it fires earlier than cDM,\n // so we were stealing focus away, this line prevents that.\n if (!this.node.contains(document.activeElement)) {\n this.node.focus();\n }\n }\n }\n };\n\n FocusHandlerImpl.prototype.render = function render() {\n var _this5 = this;\n\n var _props2 = this.props,\n children = _props2.children,\n style = _props2.style,\n requestFocus = _props2.requestFocus,\n _props2$component = _props2.component,\n Comp = _props2$component === undefined ? \"div\" : _props2$component,\n uri = _props2.uri,\n location = _props2.location,\n domProps = _objectWithoutProperties(_props2, [\"children\", \"style\", \"requestFocus\", \"component\", \"uri\", \"location\"]);\n\n return React.createElement(\n Comp,\n _extends({\n style: _extends({ outline: \"none\" }, style),\n tabIndex: \"-1\",\n ref: function ref(n) {\n return _this5.node = n;\n }\n }, domProps),\n React.createElement(\n FocusContext.Provider,\n { value: this.requestFocus },\n this.props.children\n )\n );\n };\n\n return FocusHandlerImpl;\n}(React.Component);\n\npolyfill(FocusHandlerImpl);\n\nvar k = function k() {};\n\n////////////////////////////////////////////////////////////////////////////////\nvar forwardRef = React.forwardRef;\n\nif (typeof forwardRef === \"undefined\") {\n forwardRef = function forwardRef(C) {\n return C;\n };\n}\n\nvar Link = forwardRef(function (_ref4, ref) {\n var innerRef = _ref4.innerRef,\n props = _objectWithoutProperties(_ref4, [\"innerRef\"]);\n\n return React.createElement(\n BaseContext.Consumer,\n null,\n function (_ref5) {\n var basepath = _ref5.basepath,\n baseuri = _ref5.baseuri;\n return React.createElement(\n Location,\n null,\n function (_ref6) {\n var location = _ref6.location,\n navigate = _ref6.navigate;\n\n var to = props.to,\n state = props.state,\n replace = props.replace,\n _props$getProps = props.getProps,\n getProps = _props$getProps === undefined ? k : _props$getProps,\n anchorProps = _objectWithoutProperties(props, [\"to\", \"state\", \"replace\", \"getProps\"]);\n\n var href = resolve(to, baseuri);\n var encodedHref = encodeURI(href);\n var isCurrent = location.pathname === encodedHref;\n var isPartiallyCurrent = startsWith(location.pathname, encodedHref);\n\n return React.createElement(\"a\", _extends({\n ref: ref || innerRef,\n \"aria-current\": isCurrent ? \"page\" : undefined\n }, anchorProps, getProps({ isCurrent: isCurrent, isPartiallyCurrent: isPartiallyCurrent, href: href, location: location }), {\n href: href,\n onClick: function onClick(event) {\n if (anchorProps.onClick) anchorProps.onClick(event);\n if (shouldNavigate(event)) {\n event.preventDefault();\n var shouldReplace = replace;\n if (typeof replace !== \"boolean\" && isCurrent) {\n var _location$state = _extends({}, location.state),\n key = _location$state.key,\n restState = _objectWithoutProperties(_location$state, [\"key\"]);\n\n shouldReplace = shallowCompare(_extends({}, state), restState);\n }\n navigate(href, {\n state: state,\n replace: shouldReplace\n });\n }\n }\n }));\n }\n );\n }\n );\n});\n\nLink.displayName = \"Link\";\n\nprocess.env.NODE_ENV !== \"production\" ? Link.propTypes = {\n to: PropTypes.string.isRequired\n} : void 0;\n\n////////////////////////////////////////////////////////////////////////////////\nfunction RedirectRequest(uri) {\n this.uri = uri;\n}\n\nvar isRedirect = function isRedirect(o) {\n return o instanceof RedirectRequest;\n};\n\nvar redirectTo = function redirectTo(to) {\n throw new RedirectRequest(to);\n};\n\nvar RedirectImpl = function (_React$Component3) {\n _inherits(RedirectImpl, _React$Component3);\n\n function RedirectImpl() {\n _classCallCheck(this, RedirectImpl);\n\n return _possibleConstructorReturn(this, _React$Component3.apply(this, arguments));\n }\n\n // Support React < 16 with this hook\n RedirectImpl.prototype.componentDidMount = function componentDidMount() {\n var _props3 = this.props,\n navigate = _props3.navigate,\n to = _props3.to,\n from = _props3.from,\n _props3$replace = _props3.replace,\n replace = _props3$replace === undefined ? true : _props3$replace,\n state = _props3.state,\n noThrow = _props3.noThrow,\n baseuri = _props3.baseuri,\n props = _objectWithoutProperties(_props3, [\"navigate\", \"to\", \"from\", \"replace\", \"state\", \"noThrow\", \"baseuri\"]);\n\n Promise.resolve().then(function () {\n var resolvedTo = resolve(to, baseuri);\n navigate(insertParams(resolvedTo, props), { replace: replace, state: state });\n });\n };\n\n RedirectImpl.prototype.render = function render() {\n var _props4 = this.props,\n navigate = _props4.navigate,\n to = _props4.to,\n from = _props4.from,\n replace = _props4.replace,\n state = _props4.state,\n noThrow = _props4.noThrow,\n baseuri = _props4.baseuri,\n props = _objectWithoutProperties(_props4, [\"navigate\", \"to\", \"from\", \"replace\", \"state\", \"noThrow\", \"baseuri\"]);\n\n var resolvedTo = resolve(to, baseuri);\n if (!noThrow) redirectTo(insertParams(resolvedTo, props));\n return null;\n };\n\n return RedirectImpl;\n}(React.Component);\n\nvar Redirect = function Redirect(props) {\n return React.createElement(\n BaseContext.Consumer,\n null,\n function (_ref7) {\n var baseuri = _ref7.baseuri;\n return React.createElement(\n Location,\n null,\n function (locationContext) {\n return React.createElement(RedirectImpl, _extends({}, locationContext, { baseuri: baseuri }, props));\n }\n );\n }\n );\n};\n\nprocess.env.NODE_ENV !== \"production\" ? Redirect.propTypes = {\n from: PropTypes.string,\n to: PropTypes.string.isRequired\n} : void 0;\n\n////////////////////////////////////////////////////////////////////////////////\nvar Match = function Match(_ref8) {\n var path = _ref8.path,\n children = _ref8.children;\n return React.createElement(\n BaseContext.Consumer,\n null,\n function (_ref9) {\n var baseuri = _ref9.baseuri;\n return React.createElement(\n Location,\n null,\n function (_ref10) {\n var navigate = _ref10.navigate,\n location = _ref10.location;\n\n var resolvedPath = resolve(path, baseuri);\n var result = match(resolvedPath, location.pathname);\n return children({\n navigate: navigate,\n location: location,\n match: result ? _extends({}, result.params, {\n uri: result.uri,\n path: path\n }) : null\n });\n }\n );\n }\n );\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Hooks\n\nvar useLocation = function useLocation() {\n var context = useContext(LocationContext);\n\n if (!context) {\n throw new Error(\"useLocation hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n\n return context.location;\n};\n\nvar useNavigate = function useNavigate() {\n var context = useContext(LocationContext);\n\n if (!context) {\n throw new Error(\"useNavigate hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n\n return context.navigate;\n};\n\nvar useParams = function useParams() {\n var context = useContext(BaseContext);\n\n if (!context) {\n throw new Error(\"useParams hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n\n var location = useLocation();\n\n var results = match(context.basepath, location.pathname);\n\n return results ? results.params : null;\n};\n\nvar useMatch = function useMatch(path) {\n if (!path) {\n throw new Error(\"useMatch(path: string) requires an argument of a string to match against\");\n }\n var context = useContext(BaseContext);\n\n if (!context) {\n throw new Error(\"useMatch hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n\n var location = useLocation();\n\n var resolvedPath = resolve(path, context.baseuri);\n var result = match(resolvedPath, location.pathname);\n return result ? _extends({}, result.params, {\n uri: result.uri,\n path: path\n }) : null;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Junk\nvar stripSlashes = function stripSlashes(str) {\n return str.replace(/(^\\/+|\\/+$)/g, \"\");\n};\n\nvar createRoute = function createRoute(basepath) {\n return function (element) {\n if (!element) {\n return null;\n }\n\n if (element.type === React.Fragment && element.props.children) {\n return React.Children.map(element.props.children, createRoute(basepath));\n }\n !(element.props.path || element.props.default || element.type === Redirect) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"<Router>: Children of <Router> must have a `path` or `default` prop, or be a `<Redirect>`. None found on element type `\" + element.type + \"`\") : invariant(false) : void 0;\n\n !!(element.type === Redirect && (!element.props.from || !element.props.to)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"<Redirect from=\\\"\" + element.props.from + \"\\\" to=\\\"\" + element.props.to + \"\\\"/> requires both \\\"from\\\" and \\\"to\\\" props when inside a <Router>.\") : invariant(false) : void 0;\n\n !!(element.type === Redirect && !validateRedirect(element.props.from, element.props.to)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"<Redirect from=\\\"\" + element.props.from + \" to=\\\"\" + element.props.to + \"\\\"/> has mismatched dynamic segments, ensure both paths have the exact same dynamic segments.\") : invariant(false) : void 0;\n\n if (element.props.default) {\n return { value: element, default: true };\n }\n\n var elementPath = element.type === Redirect ? element.props.from : element.props.path;\n\n var path = elementPath === \"/\" ? basepath : stripSlashes(basepath) + \"/\" + stripSlashes(elementPath);\n\n return {\n value: element,\n default: element.props.default,\n path: element.props.children ? stripSlashes(path) + \"/*\" : path\n };\n };\n};\n\nvar shouldNavigate = function shouldNavigate(event) {\n return !event.defaultPrevented && event.button === 0 && !(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n};\n\n////////////////////////////////////////////////////////////////////////\nexport { Link, Location, LocationProvider, Match, Redirect, Router, ServerLocation, createHistory, createMemorySource, isRedirect, navigate, redirectTo, globalHistory, match as matchPath, useLocation, useNavigate, useParams, useMatch , BaseContext };","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule CSSProperty\n */\n\n/**\n * CSS properties which accept numbers but are not in units of \"px\".\n */\n\nvar isUnitlessNumber = {\n animationIterationCount: true,\n borderImageOutset: true,\n borderImageSlice: true,\n borderImageWidth: true,\n boxFlex: true,\n boxFlexGroup: true,\n boxOrdinalGroup: true,\n columnCount: true,\n flex: true,\n flexGrow: true,\n flexPositive: true,\n flexShrink: true,\n flexNegative: true,\n flexOrder: true,\n gridRow: true,\n gridRowStart: true,\n gridRowEnd: true,\n gridColumn: true,\n gridColumnStart: true,\n gridColumnEnd: true,\n fontWeight: true,\n lineClamp: true,\n lineHeight: true,\n opacity: true,\n order: true,\n orphans: true,\n tabSize: true,\n widows: true,\n zIndex: true,\n zoom: true,\n // SVG-related properties\n fillOpacity: true,\n floodOpacity: true,\n stopOpacity: true,\n strokeDasharray: true,\n strokeDashoffset: true,\n strokeMiterlimit: true,\n strokeOpacity: true,\n strokeWidth: true\n /**\n * @param {string} prefix vendor-specific prefix, eg: Webkit\n * @param {string} key style name, eg: transitionDuration\n * @return {string} style name prefixed with `prefix`, properly camelCased, eg:\n * WebkitTransitionDuration\n */\n\n};\n\nfunction prefixKey(prefix, key) {\n return prefix + key.charAt(0).toUpperCase() + key.substring(1);\n}\n/**\n * Support style names that may come passed in prefixed by adding permutations\n * of vendor prefixes.\n */\n\n\nvar prefixes = ['Webkit', 'ms', 'Moz', 'O']; // Using Object.keys here, or else the vanilla for-in loop makes IE8 go into an\n// infinite loop, because it iterates over the newly added props too.\n\nObject.keys(isUnitlessNumber).forEach(function (prop) {\n prefixes.forEach(function (prefix) {\n isUnitlessNumber[prefixKey(prefix, prop)] = isUnitlessNumber[prop];\n });\n});\n/**\n * Most style properties can be unset by doing .style[prop] = '' but IE8\n * doesn't like doing that with shorthand properties so for the properties that\n * IE8 breaks on, which are listed here, we instead unset each of the\n * individual properties. See http://bugs.jquery.com/ticket/12385.\n * The 4-value 'clock' properties like margin, padding, border-width seem to\n * behave without any problems. Curiously, list-style works too without any\n * special prodding.\n */\n\nvar shorthandPropertyExpansions = {\n background: {\n backgroundAttachment: true,\n backgroundColor: true,\n backgroundImage: true,\n backgroundPositionX: true,\n backgroundPositionY: true,\n backgroundRepeat: true\n },\n backgroundPosition: {\n backgroundPositionX: true,\n backgroundPositionY: true\n },\n border: {\n borderWidth: true,\n borderStyle: true,\n borderColor: true\n },\n borderBottom: {\n borderBottomWidth: true,\n borderBottomStyle: true,\n borderBottomColor: true\n },\n borderLeft: {\n borderLeftWidth: true,\n borderLeftStyle: true,\n borderLeftColor: true\n },\n borderRight: {\n borderRightWidth: true,\n borderRightStyle: true,\n borderRightColor: true\n },\n borderTop: {\n borderTopWidth: true,\n borderTopStyle: true,\n borderTopColor: true\n },\n font: {\n fontStyle: true,\n fontVariant: true,\n fontWeight: true,\n fontSize: true,\n lineHeight: true,\n fontFamily: true\n },\n outline: {\n outlineWidth: true,\n outlineStyle: true,\n outlineColor: true\n }\n};\nvar CSSProperty = {\n isUnitlessNumber: isUnitlessNumber,\n shorthandPropertyExpansions: shorthandPropertyExpansions\n};\nexports.default = CSSProperty;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = transition;\n\nvar _hyphenateProperty = require('css-in-js-utils/lib/hyphenateProperty');\n\nvar _hyphenateProperty2 = _interopRequireDefault(_hyphenateProperty);\n\nvar _isPrefixedValue = require('css-in-js-utils/lib/isPrefixedValue');\n\nvar _isPrefixedValue2 = _interopRequireDefault(_isPrefixedValue);\n\nvar _capitalizeString = require('../../utils/capitalizeString');\n\nvar _capitalizeString2 = _interopRequireDefault(_capitalizeString);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nvar properties = {\n transition: true,\n transitionProperty: true,\n WebkitTransition: true,\n WebkitTransitionProperty: true,\n MozTransition: true,\n MozTransitionProperty: true\n};\nvar prefixMapping = {\n Webkit: '-webkit-',\n Moz: '-moz-',\n ms: '-ms-'\n};\n\nfunction prefixValue(value, propertyPrefixMap) {\n if ((0, _isPrefixedValue2.default)(value)) {\n return value;\n } // only split multi values, not cubic beziers\n\n\n var multipleValues = value.split(/,(?![^()]*(?:\\([^()]*\\))?\\))/g);\n\n for (var i = 0, len = multipleValues.length; i < len; ++i) {\n var singleValue = multipleValues[i];\n var values = [singleValue];\n\n for (var property in propertyPrefixMap) {\n var dashCaseProperty = (0, _hyphenateProperty2.default)(property);\n\n if (singleValue.indexOf(dashCaseProperty) > -1 && dashCaseProperty !== 'order') {\n var prefixes = propertyPrefixMap[property];\n\n for (var j = 0, pLen = prefixes.length; j < pLen; ++j) {\n // join all prefixes and create a new value\n values.unshift(singleValue.replace(dashCaseProperty, prefixMapping[prefixes[j]] + dashCaseProperty));\n }\n }\n }\n\n multipleValues[i] = values.join(',');\n }\n\n return multipleValues.join(',');\n}\n\nfunction transition(property, value, style, propertyPrefixMap) {\n // also check for already prefixed transitions\n if (typeof value === 'string' && properties.hasOwnProperty(property)) {\n var outputValue = prefixValue(value, propertyPrefixMap); // if the property is already prefixed\n\n var webkitOutput = outputValue.split(/,(?![^()]*(?:\\([^()]*\\))?\\))/g).filter(function (val) {\n return !/-moz-|-ms-/.test(val);\n }).join(',');\n\n if (property.indexOf('Webkit') > -1) {\n return webkitOutput;\n }\n\n var mozOutput = outputValue.split(/,(?![^()]*(?:\\([^()]*\\))?\\))/g).filter(function (val) {\n return !/-webkit-|-ms-/.test(val);\n }).join(',');\n\n if (property.indexOf('Moz') > -1) {\n return mozOutput;\n }\n\n style['Webkit' + (0, _capitalizeString2.default)(property)] = webkitOutput;\n style['Moz' + (0, _capitalizeString2.default)(property)] = mozOutput;\n return outputValue;\n }\n}\n\nmodule.exports = exports['default'];","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","/**\n * Remove a prefix from a string. Return the input string if the given prefix\n * isn't found.\n */\n\nexport default function stripPrefix(str, prefix = ``) {\n if (!prefix) {\n return str\n }\n\n if (str === prefix) {\n return `/`\n }\n\n if (str.startsWith(`${prefix}/`)) {\n return str.slice(prefix.length)\n }\n\n return str\n}\n","\"use strict\";\n\nexports.__esModule = true;\nexports.parsePath = parsePath;\n\nfunction parsePath(path) {\n var pathname = path || \"/\";\n var search = \"\";\n var hash = \"\";\n var hashIndex = pathname.indexOf(\"#\");\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf(\"?\");\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === \"?\" ? \"\" : search,\n hash: hash === \"#\" ? \"\" : hash\n };\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = prefixProperty;\n\nvar _capitalizeString = require('./capitalizeString');\n\nvar _capitalizeString2 = _interopRequireDefault(_capitalizeString);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction prefixProperty(prefixProperties, property, style) {\n if (prefixProperties.hasOwnProperty(property)) {\n var requiredPrefixes = prefixProperties[property];\n\n for (var i = 0, len = requiredPrefixes.length; i < len; ++i) {\n style[requiredPrefixes[i] + (0, _capitalizeString2.default)(property)] = style[property];\n }\n }\n}\n\nmodule.exports = exports['default'];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar w = [\"Webkit\"];\nvar m = [\"Moz\"];\nvar ms = [\"ms\"];\nvar wm = [\"Webkit\", \"Moz\"];\nvar wms = [\"Webkit\", \"ms\"];\nvar wmms = [\"Webkit\", \"Moz\", \"ms\"];\nexports.default = {\n plugins: [],\n prefixMap: {\n \"appearance\": wm,\n \"userSelect\": wmms,\n \"textEmphasisPosition\": w,\n \"textEmphasis\": w,\n \"textEmphasisStyle\": w,\n \"textEmphasisColor\": w,\n \"boxDecorationBreak\": w,\n \"clipPath\": w,\n \"maskImage\": w,\n \"maskMode\": w,\n \"maskRepeat\": w,\n \"maskPosition\": w,\n \"maskClip\": w,\n \"maskOrigin\": w,\n \"maskSize\": w,\n \"maskComposite\": w,\n \"mask\": w,\n \"maskBorderSource\": w,\n \"maskBorderMode\": w,\n \"maskBorderSlice\": w,\n \"maskBorderWidth\": w,\n \"maskBorderOutset\": w,\n \"maskBorderRepeat\": w,\n \"maskBorder\": w,\n \"maskType\": w,\n \"textDecorationStyle\": w,\n \"textDecorationSkip\": w,\n \"textDecorationLine\": w,\n \"textDecorationColor\": w,\n \"filter\": w,\n \"fontFeatureSettings\": w,\n \"breakAfter\": wmms,\n \"breakBefore\": wmms,\n \"breakInside\": wmms,\n \"columnCount\": wm,\n \"columnFill\": wm,\n \"columnGap\": wm,\n \"columnRule\": wm,\n \"columnRuleColor\": wm,\n \"columnRuleStyle\": wm,\n \"columnRuleWidth\": wm,\n \"columns\": wm,\n \"columnSpan\": wm,\n \"columnWidth\": wm,\n \"writingMode\": wms,\n \"flex\": w,\n \"flexBasis\": w,\n \"flexDirection\": w,\n \"flexGrow\": w,\n \"flexFlow\": w,\n \"flexShrink\": w,\n \"flexWrap\": w,\n \"alignContent\": w,\n \"alignItems\": w,\n \"alignSelf\": w,\n \"justifyContent\": w,\n \"order\": w,\n \"transform\": w,\n \"transformOrigin\": w,\n \"transformOriginX\": w,\n \"transformOriginY\": w,\n \"backfaceVisibility\": w,\n \"perspective\": w,\n \"perspectiveOrigin\": w,\n \"transformStyle\": w,\n \"transformOriginZ\": w,\n \"animation\": w,\n \"animationDelay\": w,\n \"animationDirection\": w,\n \"animationFillMode\": w,\n \"animationDuration\": w,\n \"animationIterationCount\": w,\n \"animationName\": w,\n \"animationPlayState\": w,\n \"animationTimingFunction\": w,\n \"backdropFilter\": w,\n \"fontKerning\": w,\n \"scrollSnapType\": wms,\n \"scrollSnapPointsX\": wms,\n \"scrollSnapPointsY\": wms,\n \"scrollSnapDestination\": wms,\n \"scrollSnapCoordinate\": wms,\n \"shapeImageThreshold\": w,\n \"shapeImageMargin\": w,\n \"shapeImageOutside\": w,\n \"hyphens\": wmms,\n \"flowInto\": wms,\n \"flowFrom\": wms,\n \"regionFragment\": wms,\n \"textAlignLast\": m,\n \"tabSize\": m,\n \"wrapFlow\": ms,\n \"wrapThrough\": ms,\n \"wrapMargin\": ms,\n \"gridTemplateColumns\": ms,\n \"gridTemplateRows\": ms,\n \"gridTemplateAreas\": ms,\n \"gridTemplate\": ms,\n \"gridAutoColumns\": ms,\n \"gridAutoRows\": ms,\n \"gridAutoFlow\": ms,\n \"grid\": ms,\n \"gridRowStart\": ms,\n \"gridColumnStart\": ms,\n \"gridRowEnd\": ms,\n \"gridRow\": ms,\n \"gridColumn\": ms,\n \"gridColumnEnd\": ms,\n \"gridColumnGap\": ms,\n \"gridRowGap\": ms,\n \"gridArea\": ms,\n \"gridGap\": ms,\n \"textSizeAdjust\": wms,\n \"borderImage\": w,\n \"borderImageOutset\": w,\n \"borderImageRepeat\": w,\n \"borderImageSlice\": w,\n \"borderImageSource\": w,\n \"borderImageWidth\": w,\n \"transitionDelay\": w,\n \"transitionDuration\": w,\n \"transitionProperty\": w,\n \"transitionTimingFunction\": w\n }\n};\nmodule.exports = exports[\"default\"];","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","const support = function (feature) {\n if (typeof document === `undefined`) {\n return false\n }\n const fakeLink = document.createElement(`link`)\n try {\n if (fakeLink.relList && typeof fakeLink.relList.supports === `function`) {\n return fakeLink.relList.supports(feature)\n }\n } catch (err) {\n return false\n }\n return false\n}\n\nconst linkPrefetchStrategy = function (url, options) {\n return new Promise((resolve, reject) => {\n if (typeof document === `undefined`) {\n reject()\n return\n }\n\n const link = document.createElement(`link`)\n link.setAttribute(`rel`, `prefetch`)\n link.setAttribute(`href`, url)\n\n Object.keys(options).forEach(key => {\n link.setAttribute(key, options[key])\n })\n\n link.onload = resolve\n link.onerror = reject\n\n const parentElement =\n document.getElementsByTagName(`head`)[0] ||\n document.getElementsByName(`script`)[0].parentNode\n parentElement.appendChild(link)\n })\n}\n\nconst xhrPrefetchStrategy = function (url) {\n return new Promise((resolve, reject) => {\n const req = new XMLHttpRequest()\n req.open(`GET`, url, true)\n\n req.onload = () => {\n if (req.status === 200) {\n resolve()\n } else {\n reject()\n }\n }\n\n req.send(null)\n })\n}\n\nconst supportedPrefetchStrategy = support(`prefetch`)\n ? linkPrefetchStrategy\n : xhrPrefetchStrategy\n\nconst preFetched = {}\n\nconst prefetch = function (url, options) {\n return new Promise(resolve => {\n if (preFetched[url]) {\n resolve()\n return\n }\n\n supportedPrefetchStrategy(url, options)\n .then(() => {\n resolve()\n preFetched[url] = true\n })\n .catch(() => {}) // 404s are logged to the console anyway\n })\n}\n\nexport default prefetch\n","import prefetchHelper from \"./prefetch\"\nimport emitter from \"./emitter\"\nimport { setMatchPaths, findPath, findMatchPath } from \"./find-path\"\n\n/**\n * Available resource loading statuses\n */\nexport const PageResourceStatus = {\n /**\n * At least one of critical resources failed to load\n */\n Error: `error`,\n /**\n * Resources loaded successfully\n */\n Success: `success`,\n}\n\nconst preferDefault = m => (m && m.default) || m\n\nconst stripSurroundingSlashes = s => {\n s = s[0] === `/` ? s.slice(1) : s\n s = s.endsWith(`/`) ? s.slice(0, -1) : s\n return s\n}\n\nconst createPageDataUrl = path => {\n const fixedPath = path === `/` ? `index` : stripSurroundingSlashes(path)\n return `${__PATH_PREFIX__}/page-data/${fixedPath}/page-data.json`\n}\n\nfunction doFetch(url, method = `GET`) {\n return new Promise((resolve, reject) => {\n const req = new XMLHttpRequest()\n req.open(method, url, true)\n req.onreadystatechange = () => {\n if (req.readyState == 4) {\n resolve(req)\n }\n }\n req.send(null)\n })\n}\n\nconst doesConnectionSupportPrefetch = () => {\n if (\n `connection` in navigator &&\n typeof navigator.connection !== `undefined`\n ) {\n if ((navigator.connection.effectiveType || ``).includes(`2g`)) {\n return false\n }\n if (navigator.connection.saveData) {\n return false\n }\n }\n return true\n}\n\nconst toPageResources = (pageData, component = null) => {\n const page = {\n componentChunkName: pageData.componentChunkName,\n path: pageData.path,\n webpackCompilationHash: pageData.webpackCompilationHash,\n matchPath: pageData.matchPath,\n staticQueryHashes: pageData.staticQueryHashes,\n }\n\n return {\n component,\n json: pageData.result,\n page,\n }\n}\n\nexport class BaseLoader {\n constructor(loadComponent, matchPaths) {\n // Map of pagePath -> Page. Where Page is an object with: {\n // status: PageResourceStatus.Success || PageResourceStatus.Error,\n // payload: PageResources, // undefined if PageResourceStatus.Error\n // }\n // PageResources is {\n // component,\n // json: pageData.result,\n // page: {\n // componentChunkName,\n // path,\n // webpackCompilationHash,\n // staticQueryHashes\n // },\n // staticQueryResults\n // }\n this.pageDb = new Map()\n this.inFlightDb = new Map()\n this.staticQueryDb = {}\n this.pageDataDb = new Map()\n this.prefetchTriggered = new Set()\n this.prefetchCompleted = new Set()\n this.loadComponent = loadComponent\n setMatchPaths(matchPaths)\n }\n\n inFlightNetworkRequests = new Map()\n\n memoizedGet(url) {\n let inFlightPromise = this.inFlightNetworkRequests.get(url)\n\n if (!inFlightPromise) {\n inFlightPromise = doFetch(url, `GET`)\n this.inFlightNetworkRequests.set(url, inFlightPromise)\n }\n\n // Prefer duplication with then + catch over .finally to prevent problems in ie11 + firefox\n return inFlightPromise\n .then(response => {\n this.inFlightNetworkRequests.delete(url)\n return response\n })\n .catch(err => {\n this.inFlightNetworkRequests.delete(url)\n throw err\n })\n }\n\n setApiRunner(apiRunner) {\n this.apiRunner = apiRunner\n this.prefetchDisabled = apiRunner(`disableCorePrefetching`).some(a => a)\n }\n\n fetchPageDataJson(loadObj) {\n const { pagePath, retries = 0 } = loadObj\n const url = createPageDataUrl(pagePath)\n return this.memoizedGet(url).then(req => {\n const { status, responseText } = req\n\n // Handle 200\n if (status === 200) {\n try {\n const jsonPayload = JSON.parse(responseText)\n if (jsonPayload.path === undefined) {\n throw new Error(`not a valid pageData response`)\n }\n\n return Object.assign(loadObj, {\n status: PageResourceStatus.Success,\n payload: jsonPayload,\n })\n } catch (err) {\n // continue regardless of error\n }\n }\n\n // Handle 404\n if (status === 404 || status === 200) {\n // If the request was for a 404 page and it doesn't exist, we're done\n if (pagePath === `/404.html`) {\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n }\n\n // Need some code here to cache the 404 request. In case\n // multiple loadPageDataJsons result in 404s\n return this.fetchPageDataJson(\n Object.assign(loadObj, { pagePath: `/404.html`, notFound: true })\n )\n }\n\n // handle 500 response (Unrecoverable)\n if (status === 500) {\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n }\n\n // Handle everything else, including status === 0, and 503s. Should retry\n if (retries < 3) {\n return this.fetchPageDataJson(\n Object.assign(loadObj, { retries: retries + 1 })\n )\n }\n\n // Retried 3 times already, result is an error.\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n })\n }\n\n loadPageDataJson(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.pageDataDb.has(pagePath)) {\n const pageData = this.pageDataDb.get(pagePath)\n if (process.env.BUILD_STAGE !== `develop` || !pageData.stale) {\n return Promise.resolve(pageData)\n }\n }\n\n return this.fetchPageDataJson({ pagePath }).then(pageData => {\n this.pageDataDb.set(pagePath, pageData)\n\n return pageData\n })\n }\n\n findMatchPath(rawPath) {\n return findMatchPath(rawPath)\n }\n\n // TODO check all uses of this and whether they use undefined for page resources not exist\n loadPage(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.pageDb.has(pagePath)) {\n const page = this.pageDb.get(pagePath)\n if (process.env.BUILD_STAGE !== `develop` || !page.payload.stale) {\n return Promise.resolve(page.payload)\n }\n }\n\n if (this.inFlightDb.has(pagePath)) {\n return this.inFlightDb.get(pagePath)\n }\n\n const inFlightPromise = Promise.all([\n this.loadAppData(),\n this.loadPageDataJson(pagePath),\n ]).then(allData => {\n const result = allData[1]\n if (result.status === PageResourceStatus.Error) {\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n let pageData = result.payload\n const { componentChunkName, staticQueryHashes = [] } = pageData\n\n const finalResult = {}\n\n const componentChunkPromise = this.loadComponent(componentChunkName).then(\n component => {\n finalResult.createdAt = new Date()\n let pageResources\n if (!component) {\n finalResult.status = PageResourceStatus.Error\n } else {\n finalResult.status = PageResourceStatus.Success\n if (result.notFound === true) {\n finalResult.notFound = true\n }\n pageData = Object.assign(pageData, {\n webpackCompilationHash: allData[0]\n ? allData[0].webpackCompilationHash\n : ``,\n })\n pageResources = toPageResources(pageData, component)\n }\n // undefined if final result is an error\n return pageResources\n }\n )\n\n const staticQueryBatchPromise = Promise.all(\n staticQueryHashes.map(staticQueryHash => {\n // Check for cache in case this static query result has already been loaded\n if (this.staticQueryDb[staticQueryHash]) {\n const jsonPayload = this.staticQueryDb[staticQueryHash]\n return { staticQueryHash, jsonPayload }\n }\n\n return this.memoizedGet(\n `${__PATH_PREFIX__}/page-data/sq/d/${staticQueryHash}.json`\n ).then(req => {\n const jsonPayload = JSON.parse(req.responseText)\n return { staticQueryHash, jsonPayload }\n })\n })\n ).then(staticQueryResults => {\n const staticQueryResultsMap = {}\n\n staticQueryResults.forEach(({ staticQueryHash, jsonPayload }) => {\n staticQueryResultsMap[staticQueryHash] = jsonPayload\n this.staticQueryDb[staticQueryHash] = jsonPayload\n })\n\n return staticQueryResultsMap\n })\n\n return Promise.all([componentChunkPromise, staticQueryBatchPromise]).then(\n ([pageResources, staticQueryResults]) => {\n let payload\n if (pageResources) {\n payload = { ...pageResources, staticQueryResults }\n finalResult.payload = payload\n emitter.emit(`onPostLoadPageResources`, {\n page: payload,\n pageResources: payload,\n })\n }\n\n this.pageDb.set(pagePath, finalResult)\n\n return payload\n }\n )\n })\n\n inFlightPromise\n .then(response => {\n this.inFlightDb.delete(pagePath)\n })\n .catch(error => {\n this.inFlightDb.delete(pagePath)\n throw error\n })\n\n this.inFlightDb.set(pagePath, inFlightPromise)\n\n return inFlightPromise\n }\n\n // returns undefined if loading page ran into errors\n loadPageSync(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.pageDb.has(pagePath)) {\n const pageData = this.pageDb.get(pagePath).payload\n return pageData\n }\n return undefined\n }\n\n shouldPrefetch(pagePath) {\n // Skip prefetching if we know user is on slow or constrained connection\n if (!doesConnectionSupportPrefetch()) {\n return false\n }\n\n // Check if the page exists.\n if (this.pageDb.has(pagePath)) {\n return false\n }\n\n return true\n }\n\n prefetch(pagePath) {\n if (!this.shouldPrefetch(pagePath)) {\n return false\n }\n\n // Tell plugins with custom prefetching logic that they should start\n // prefetching this path.\n if (!this.prefetchTriggered.has(pagePath)) {\n this.apiRunner(`onPrefetchPathname`, { pathname: pagePath })\n this.prefetchTriggered.add(pagePath)\n }\n\n // If a plugin has disabled core prefetching, stop now.\n if (this.prefetchDisabled) {\n return false\n }\n\n const realPath = findPath(pagePath)\n // Todo make doPrefetch logic cacheable\n // eslint-disable-next-line consistent-return\n this.doPrefetch(realPath).then(() => {\n if (!this.prefetchCompleted.has(pagePath)) {\n this.apiRunner(`onPostPrefetchPathname`, { pathname: pagePath })\n this.prefetchCompleted.add(pagePath)\n }\n })\n\n return true\n }\n\n doPrefetch(pagePath) {\n const pageDataUrl = createPageDataUrl(pagePath)\n return prefetchHelper(pageDataUrl, {\n crossOrigin: `anonymous`,\n as: `fetch`,\n }).then(() =>\n // This was just prefetched, so will return a response from\n // the cache instead of making another request to the server\n this.loadPageDataJson(pagePath)\n )\n }\n\n hovering(rawPath) {\n this.loadPage(rawPath)\n }\n\n getResourceURLsForPathname(rawPath) {\n const pagePath = findPath(rawPath)\n const page = this.pageDataDb.get(pagePath)\n if (page) {\n const pageResources = toPageResources(page.payload)\n\n return [\n ...createComponentUrls(pageResources.page.componentChunkName),\n createPageDataUrl(pagePath),\n ]\n } else {\n return null\n }\n }\n\n isPageNotFound(rawPath) {\n const pagePath = findPath(rawPath)\n const page = this.pageDb.get(pagePath)\n return !page || page.notFound\n }\n\n loadAppData(retries = 0) {\n return this.memoizedGet(`${__PATH_PREFIX__}/page-data/app-data.json`).then(\n req => {\n const { status, responseText } = req\n\n let appData\n\n if (status !== 200 && retries < 3) {\n // Retry 3 times incase of non-200 responses\n return this.loadAppData(retries + 1)\n }\n\n // Handle 200\n if (status === 200) {\n try {\n const jsonPayload = JSON.parse(responseText)\n if (jsonPayload.webpackCompilationHash === undefined) {\n throw new Error(`not a valid app-data response`)\n }\n\n appData = jsonPayload\n } catch (err) {\n // continue regardless of error\n }\n }\n\n return appData\n }\n )\n }\n}\n\nconst createComponentUrls = componentChunkName =>\n (window.___chunkMapping[componentChunkName] || []).map(\n chunk => __PATH_PREFIX__ + chunk\n )\n\nexport class ProdLoader extends BaseLoader {\n constructor(asyncRequires, matchPaths) {\n const loadComponent = chunkName =>\n asyncRequires.components[chunkName]\n ? asyncRequires.components[chunkName]()\n .then(preferDefault)\n // loader will handle the case when component is null\n .catch(() => null)\n : Promise.resolve()\n\n super(loadComponent, matchPaths)\n }\n\n doPrefetch(pagePath) {\n return super.doPrefetch(pagePath).then(result => {\n if (result.status !== PageResourceStatus.Success) {\n return Promise.resolve()\n }\n const pageData = result.payload\n const chunkName = pageData.componentChunkName\n const componentUrls = createComponentUrls(chunkName)\n return Promise.all(componentUrls.map(prefetchHelper)).then(() => pageData)\n })\n }\n\n loadPageDataJson(rawPath) {\n return super.loadPageDataJson(rawPath).then(data => {\n if (data.notFound) {\n // check if html file exist using HEAD request:\n // if it does we should navigate to it instead of showing 404\n return doFetch(rawPath, `HEAD`).then(req => {\n if (req.status === 200) {\n // page (.html file) actually exist (or we asked for 404 )\n // returning page resources status as errored to trigger\n // regular browser navigation to given page\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n // if HEAD request wasn't 200, return notFound result\n // and show 404 page\n return data\n })\n }\n return data\n })\n }\n}\n\nlet instance\n\nexport const setLoader = _loader => {\n instance = _loader\n}\n\nexport const publicLoader = {\n // Deprecated methods. As far as we're aware, these are only used by\n // core gatsby and the offline plugin, however there's a very small\n // chance they're called by others.\n getResourcesForPathname: rawPath => {\n console.warn(\n `Warning: getResourcesForPathname is deprecated. Use loadPage instead`\n )\n return instance.i.loadPage(rawPath)\n },\n getResourcesForPathnameSync: rawPath => {\n console.warn(\n `Warning: getResourcesForPathnameSync is deprecated. Use loadPageSync instead`\n )\n return instance.i.loadPageSync(rawPath)\n },\n enqueue: rawPath => instance.prefetch(rawPath),\n\n // Real methods\n getResourceURLsForPathname: rawPath =>\n instance.getResourceURLsForPathname(rawPath),\n loadPage: rawPath => instance.loadPage(rawPath),\n loadPageSync: rawPath => instance.loadPageSync(rawPath),\n prefetch: rawPath => instance.prefetch(rawPath),\n isPageNotFound: rawPath => instance.isPageNotFound(rawPath),\n hovering: rawPath => instance.hovering(rawPath),\n loadAppData: () => instance.loadAppData(),\n}\n\nexport default publicLoader\n\nexport function getStaticQueryResults() {\n if (instance) {\n return instance.staticQueryDb\n } else {\n return {}\n }\n}\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = position;\n\nfunction position(property, value) {\n if (property === 'position' && value === 'sticky') {\n return ['-webkit-sticky', 'sticky'];\n }\n}\n\nmodule.exports = exports['default'];","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.ScrollContainer = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _scrollHandler = require(\"./scroll-handler\");\n\nvar _router = require(\"@reach/router\");\n\n// TODO: In Gatsby v3, this file should be removed.\n// We are deprecating this in V2 in favor of useScrollRestoration\nvar propTypes = {\n scrollKey: _propTypes.default.string.isRequired,\n shouldUpdateScroll: _propTypes.default.func,\n children: _propTypes.default.element.isRequired\n};\nvar hasNotWarnedDeprecation = true;\n\nvar ScrollContainerImplementation = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(ScrollContainerImplementation, _React$Component);\n\n function ScrollContainerImplementation(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n\n if (process.env.NODE_ENV !== \"production\" && hasNotWarnedDeprecation) {\n hasNotWarnedDeprecation = false;\n console.log(\"Deprecation Warning:\\n\\n Gatsby <ScrollContainer> is deprecated in Gatsby v2 and will be removed in Gatsby v3.\\n Update to the React hook alternative useScrollRestoration, like this:.\\n \\n ```\\n import React from 'react';\\n import { useScrollRestoration } from 'gatsby-react-router-scroll';\\n\\n function Component() {\\n const scrollRestoration = useScrollRestoration('\" + _this.props.scrollKey + \"');\\n\\n return <ul {...scrollRestoration} />;\\n }\\n ```\\n \");\n }\n\n return _this;\n }\n\n var _proto = ScrollContainerImplementation.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n var _this2 = this;\n\n // eslint-disable-next-line react/no-find-dom-node\n var node = _reactDom.default.findDOMNode(this);\n\n var _this$props = this.props,\n location = _this$props.location,\n scrollKey = _this$props.scrollKey;\n if (!node) return;\n node.addEventListener(\"scroll\", function () {\n _this2.props.context.save(location, scrollKey, node.scrollTop);\n });\n var position = this.props.context.read(location, scrollKey);\n node.scrollTo(0, position || 0);\n };\n\n _proto.render = function render() {\n return this.props.children;\n };\n\n return ScrollContainerImplementation;\n}(React.Component);\n\nvar ScrollContainer = function ScrollContainer(props) {\n return /*#__PURE__*/React.createElement(_router.Location, null, function (_ref) {\n var location = _ref.location;\n return /*#__PURE__*/React.createElement(_scrollHandler.ScrollContext.Consumer, null, function (context) {\n return /*#__PURE__*/React.createElement(ScrollContainerImplementation, (0, _extends2.default)({}, props, {\n context: context,\n location: location\n }));\n });\n });\n};\n\nexports.ScrollContainer = ScrollContainer;\nScrollContainer.propTypes = propTypes;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = cursor;\nvar prefixes = ['-webkit-', '-moz-', ''];\nvar values = {\n 'zoom-in': true,\n 'zoom-out': true,\n grab: true,\n grabbing: true\n};\n\nfunction cursor(property, value) {\n if (property === 'cursor' && values.hasOwnProperty(value)) {\n return prefixes.map(function (prefix) {\n return prefix + value;\n });\n }\n}\n\nmodule.exports = exports['default'];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = _default;\nexports.routeThroughBrowserOrApp = exports.hashShouldBeFollowed = exports.pathIsNotHandledByApp = exports.urlsAreOnSameOrigin = exports.authorIsForcingNavigation = exports.anchorsTargetIsEquivalentToSelf = exports.findClosestAnchor = exports.navigationWasHandledElsewhere = exports.slashedPathname = exports.userIsForcingNavigation = void 0;\n\nvar _escapeStringRegexp = _interopRequireDefault(require(\"escape-string-regexp\"));\n\nvar _gatsby = require(\"gatsby\");\n\nvar userIsForcingNavigation = function userIsForcingNavigation(event) {\n return event.button !== 0 || event.altKey || event.ctrlKey || event.metaKey || event.shiftKey;\n}; // IE does not include leading slash in anchor.pathname\n\n\nexports.userIsForcingNavigation = userIsForcingNavigation;\n\nvar slashedPathname = function slashedPathname(pathname) {\n return pathname[0] === \"/\" ? pathname : \"/\" + pathname;\n};\n\nexports.slashedPathname = slashedPathname;\n\nvar navigationWasHandledElsewhere = function navigationWasHandledElsewhere(event) {\n return event.defaultPrevented;\n};\n\nexports.navigationWasHandledElsewhere = navigationWasHandledElsewhere;\n\nvar findClosestAnchor = function findClosestAnchor(node) {\n for (; node.parentNode; node = node.parentNode) {\n if (node.nodeName.toLowerCase() === \"a\") {\n return node;\n }\n }\n\n return null;\n};\n\nexports.findClosestAnchor = findClosestAnchor;\n\nvar anchorsTargetIsEquivalentToSelf = function anchorsTargetIsEquivalentToSelf(anchor) {\n return (\n /* If target attribute is not present it's treated as _self */\n anchor.hasAttribute(\"target\") === false ||\n /**\n * The browser defaults to _self, but, not all browsers set\n * a.target to the string value `_self` by default\n */\n\n /**\n * Assumption: some browsers use null/undefined for default\n * attribute values\n */\n anchor.target == null ||\n /**\n * Some browsers use the empty string to mean _self, check\n * for actual `_self`\n */\n [\"_self\", \"\"].indexOf(anchor.target) !== -1 ||\n /**\n * As per https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#attr-target\n */\n anchor.target === \"_parent\" && (!anchor.ownerDocument.defaultView.parent || // Assumption: This can be falsey\n anchor.ownerDocument.defaultView.parent === anchor.ownerDocument.defaultView) || anchor.target === \"_top\" && (!anchor.ownerDocument.defaultView.top || // Assumption: This can be falsey\n anchor.ownerDocument.defaultView.top === anchor.ownerDocument.defaultView)\n );\n};\n\nexports.anchorsTargetIsEquivalentToSelf = anchorsTargetIsEquivalentToSelf;\n\nvar authorIsForcingNavigation = function authorIsForcingNavigation(anchor) {\n return (\n /**\n * HTML5 attribute that informs the browser to handle the\n * href as a downloadable file; let the browser handle it\n */\n anchor.hasAttribute(\"download\") === true ||\n /**\n * Let the browser handle anything that doesn't look like a\n * target=\"_self\" anchor\n */\n anchorsTargetIsEquivalentToSelf(anchor) === false\n );\n}; // https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy\n\n\nexports.authorIsForcingNavigation = authorIsForcingNavigation;\n\nvar urlsAreOnSameOrigin = function urlsAreOnSameOrigin(origin, destination) {\n return origin.protocol === destination.protocol &&\n /* a.host includes both hostname and port in the expected format host:port */\n origin.host === destination.host;\n};\n\nexports.urlsAreOnSameOrigin = urlsAreOnSameOrigin;\n\nvar pathIsNotHandledByApp = function pathIsNotHandledByApp(destination, pathStartRegEx) {\n var pathFileExtensionRegEx = /^.*\\.((?!htm)[a-z0-9]{1,5})$/i;\n return (\n /**\n * For when pathPrefix is used in an app and there happens to be a link\n * pointing to the same domain but outside of the app's pathPrefix. For\n * example, a Gatsby app lives at https://example.com/myapp/, with the\n * pathPrefix set to `/myapp`. When adding an absolute link to the same\n * domain but outside of the /myapp path, for example, <a\n * href=\"https://example.com/not-my-app\"> the plugin won't catch it and\n * will navigate to an external link instead of doing a pushState resulting\n * in `https://example.com/myapp/https://example.com/not-my-app`\n */\n pathStartRegEx.test(slashedPathname(destination.pathname)) === false ||\n /**\n * Don't catch links pointed at what look like file extensions (other than\n * .htm/html extensions).\n */\n destination.pathname.search(pathFileExtensionRegEx) !== -1\n );\n};\n\nexports.pathIsNotHandledByApp = pathIsNotHandledByApp;\n\nvar hashShouldBeFollowed = function hashShouldBeFollowed(origin, destination) {\n return destination.hash !== \"\" && (\n /**\n * Dynamically created anchor links (href=\"#my-anchor\") do not always\n * have pathname on IE\n */\n destination.pathname === \"\" ||\n /* Don't catch links pointed to the same page but with a hash. */\n destination.pathname === origin.pathname);\n};\n\nexports.hashShouldBeFollowed = hashShouldBeFollowed;\n\nvar routeThroughBrowserOrApp = function routeThroughBrowserOrApp(hrefHandler) {\n return function (event) {\n if (userIsForcingNavigation(event)) return true;\n if (navigationWasHandledElsewhere(event)) return true;\n var clickedAnchor = findClosestAnchor(event.target);\n if (clickedAnchor == null) return true;\n if (authorIsForcingNavigation(clickedAnchor)) return true; // IE clears the host value if the anchor href changed after creation, e.g.\n // in React. Creating a new anchor element to ensure host value is present\n\n var destination = document.createElement(\"a\");\n destination.href = clickedAnchor.href;\n\n if (clickedAnchor.href instanceof SVGAnimatedString) {\n destination.href = clickedAnchor.href.animVal;\n } // In IE, the default port is included in the anchor host but excluded from\n // the location host. This affects the ability to directly compare\n // location host to anchor host. For example: http://example.com would\n // have a location.host of 'example.com' and an destination.host of\n // 'example.com:80' Creating anchor from the location.href to normalize the\n // host value.\n\n\n var origin = document.createElement(\"a\");\n origin.href = window.location.href;\n if (urlsAreOnSameOrigin(origin, destination) === false) return true; // Regex to test pathname against pathPrefix\n\n var pathStartRegEx = new RegExp(\"^\" + (0, _escapeStringRegexp.default)((0, _gatsby.withPrefix)(\"/\")));\n if (pathIsNotHandledByApp(destination, pathStartRegEx)) return true;\n if (hashShouldBeFollowed(origin, destination)) return true;\n event.preventDefault(); // See issue #8907: destination.pathname already includes pathPrefix added\n // by gatsby-transformer-remark but gatsby-link.navigate needs href without\n\n var destinationPathname = slashedPathname(destination.pathname).replace(pathStartRegEx, \"/\");\n hrefHandler(\"\" + destinationPathname + destination.search + destination.hash);\n return false;\n };\n};\n\nexports.routeThroughBrowserOrApp = routeThroughBrowserOrApp;\n\nfunction _default(root, cb) {\n var clickHandler = routeThroughBrowserOrApp(cb);\n root.addEventListener(\"click\", clickHandler);\n return function () {\n return root.removeEventListener(\"click\", clickHandler);\n };\n}","module.exports = require('./lib/react.js');","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n'use strict';\n\nvar camelize = require('./camelize');\n\nvar msPattern = /^-ms-/;\n/**\n * Camelcases a hyphenated CSS property name, for example:\n *\n * > camelizeStyleName('background-color')\n * < \"backgroundColor\"\n * > camelizeStyleName('-moz-transition')\n * < \"MozTransition\"\n * > camelizeStyleName('-ms-transition')\n * < \"msTransition\"\n *\n * As Andi Smith suggests\n * (http://www.andismith.com/blog/2012/02/modernizr-prefixed/), an `-ms` prefix\n * is converted to lowercase `ms`.\n *\n * @param {string} string\n * @return {string}\n */\n\nfunction camelizeStyleName(string) {\n return camelize(string.replace(msPattern, 'ms-'));\n}\n\nmodule.exports = camelizeStyleName;","const preferDefault = m => (m && m.default) || m\n\nif (process.env.BUILD_STAGE === `develop`) {\n module.exports = preferDefault(require(`./public-page-renderer-dev`))\n} else if (process.env.BUILD_STAGE === `build-javascript`) {\n module.exports = preferDefault(require(`./public-page-renderer-prod`))\n} else {\n module.exports = () => null\n}\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.processStyleName = undefined;\nexports.createMarkupForStyles = createMarkupForStyles;\n\nvar _camelizeStyleName = require('fbjs/lib/camelizeStyleName');\n\nvar _camelizeStyleName2 = _interopRequireDefault(_camelizeStyleName);\n\nvar _dangerousStyleValue = require('./dangerousStyleValue');\n\nvar _dangerousStyleValue2 = _interopRequireDefault(_dangerousStyleValue);\n\nvar _hyphenateStyleName = require('fbjs/lib/hyphenateStyleName');\n\nvar _hyphenateStyleName2 = _interopRequireDefault(_hyphenateStyleName);\n\nvar _memoizeStringOnly = require('fbjs/lib/memoizeStringOnly');\n\nvar _memoizeStringOnly2 = _interopRequireDefault(_memoizeStringOnly);\n\nvar _warning = require('fbjs/lib/warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nvar processStyleName = exports.processStyleName = (0, _memoizeStringOnly2.default)(_hyphenateStyleName2.default);\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule CSSPropertyOperations\n */\n\nif (process.env.NODE_ENV !== 'production') {\n // 'msTransform' is correct, but the other prefixes should be capitalized\n var badVendoredStyleNamePattern = /^(?:webkit|moz|o)[A-Z]/; // style values shouldn't contain a semicolon\n\n var badStyleValueWithSemicolonPattern = /;\\s*$/;\n var warnedStyleNames = {};\n var warnedStyleValues = {};\n var warnedForNaNValue = false;\n\n var warnHyphenatedStyleName = function warnHyphenatedStyleName(name, owner) {\n if (warnedStyleNames.hasOwnProperty(name) && warnedStyleNames[name]) {\n return;\n }\n\n warnedStyleNames[name] = true;\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, 'Unsupported style property %s. Did you mean %s?%s', name, (0, _camelizeStyleName2.default)(name), checkRenderMessage(owner)) : void 0;\n };\n\n var warnBadVendoredStyleName = function warnBadVendoredStyleName(name, owner) {\n if (warnedStyleNames.hasOwnProperty(name) && warnedStyleNames[name]) {\n return;\n }\n\n warnedStyleNames[name] = true;\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, 'Unsupported vendor-prefixed style property %s. Did you mean %s?%s', name, name.charAt(0).toUpperCase() + name.slice(1), checkRenderMessage(owner)) : void 0;\n };\n\n var warnStyleValueWithSemicolon = function warnStyleValueWithSemicolon(name, value, owner) {\n if (warnedStyleValues.hasOwnProperty(value) && warnedStyleValues[value]) {\n return;\n }\n\n warnedStyleValues[value] = true;\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, 'Style property values shouldn\\'t contain a semicolon.%s ' + 'Try \"%s: %s\" instead.', checkRenderMessage(owner), name, value.replace(badStyleValueWithSemicolonPattern, '')) : void 0;\n };\n\n var warnStyleValueIsNaN = function warnStyleValueIsNaN(name, value, owner) {\n if (warnedForNaNValue) {\n return;\n }\n\n warnedForNaNValue = true;\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, '`NaN` is an invalid value for the `%s` css style property.%s', name, checkRenderMessage(owner)) : void 0;\n };\n\n var checkRenderMessage = function checkRenderMessage(owner) {\n if (owner) {\n var name = owner.getName();\n\n if (name) {\n return ' Check the render method of `' + name + '`.';\n }\n }\n\n return '';\n };\n /**\n * @param {string} name\n * @param {*} value\n * @param {ReactDOMComponent} component\n */\n\n\n var warnValidStyle = function warnValidStyle(name, value, component) {\n //eslint-disable-line no-var\n var owner = void 0;\n\n if (component) {\n owner = component._currentElement._owner;\n }\n\n if (name.indexOf('-') > -1) {\n warnHyphenatedStyleName(name, owner);\n } else if (badVendoredStyleNamePattern.test(name)) {\n warnBadVendoredStyleName(name, owner);\n } else if (badStyleValueWithSemicolonPattern.test(value)) {\n warnStyleValueWithSemicolon(name, value, owner);\n }\n\n if (typeof value === 'number' && isNaN(value)) {\n warnStyleValueIsNaN(name, value, owner);\n }\n };\n}\n/**\n * Serializes a mapping of style properties for use as inline styles:\n *\n * > createMarkupForStyles({width: '200px', height: 0})\n * \"width:200px;height:0;\"\n *\n * Undefined values are ignored so that declarative programming is easier.\n * The result should be HTML-escaped before insertion into the DOM.\n *\n * @param {object} styles\n * @param {ReactDOMComponent} component\n * @return {?string}\n */\n\n\nfunction createMarkupForStyles(styles, component) {\n var serialized = '';\n\n for (var styleName in styles) {\n var isCustomProp = styleName.indexOf('--') === 0;\n\n if (!styles.hasOwnProperty(styleName)) {\n continue;\n }\n\n if (styleName === 'label') {\n continue;\n }\n\n var styleValue = styles[styleName];\n\n if (process.env.NODE_ENV !== 'production' && !isCustomProp) {\n warnValidStyle(styleName, styleValue, component);\n }\n\n if (styleValue != null) {\n if (isCustomProp) {\n serialized += styleName + ':' + styleValue + ';';\n } else {\n serialized += processStyleName(styleName) + ':';\n serialized += (0, _dangerousStyleValue2.default)(styleName, styleValue, component) + ';';\n }\n }\n }\n\n return serialized || null;\n}","/*\n Why commonjs and not ES imports/exports?\n\n This module is used to alias `create-react-context` package, but drop the the actual implementation part\n because Gatsby requires version of react that has implementatoin baked in.\n \n Package source is using ES modules:\n - https://github.com/jamiebuilds/create-react-context/blob/v0.3.0/src/index.js\n \n But to build this package `babel-plugin-add-module-exports` is used ( https://www.npmjs.com/package/babel-plugin-add-module-exports).\n Which result in both `module.exports` and `exports.default` being set to same thing.\n\n We don't use that babel plugin so we only have `exports.default`.\n\n This cause problems in various 3rd party react components that rely on `module.exports` being set.\n See https://github.com/gatsbyjs/gatsby/issues/23645 for example of it.\n \n Instead of adding same babel plugin we mimic output here. Adding babel plugin just for this would:\n a) unnecesairly slow down compilation for all other files (if we just apply it everywhere)\n b) or complicate babel-loader configuration with overwrite specifically for this file\n*/\n\nconst { createContext } = require(`react`)\n\nmodule.exports = createContext\nmodule.exports.default = createContext\n","\"use strict\";\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\n\n\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\n\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\n\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;","'use strict';\n\nvar matchOperatorsRe = /[|\\\\{}()[\\]^$+*?.]/g;\n\nmodule.exports = function (str) {\n if (typeof str !== 'string') {\n throw new TypeError('Expected a string');\n }\n\n return str.replace(matchOperatorsRe, '\\\\$&');\n};","function _extends() {\n module.exports = _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 module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","\"use strict\";\n\nexports.onRouteUpdate = function (_ref) {\n var location = _ref.location;\n\n // Don't track while developing.\n if (process.env.NODE_ENV === \"production\" && typeof ga === \"function\") {\n if (location && typeof window.excludeGAPaths !== \"undefined\" && window.excludeGAPaths.some(function (rx) {\n return rx.test(location.pathname);\n })) {\n return;\n } // wrap inside a timeout to make sure react-helmet is done with it's changes (https://github.com/gatsbyjs/gatsby/issues/9139)\n // reactHelmet is using requestAnimationFrame so we should use it too: https://github.com/nfl/react-helmet/blob/5.2.0/src/HelmetUtils.js#L296-L299\n\n\n var sendPageView = function sendPageView() {\n window.ga(\"set\", \"page\", location ? location.pathname + location.search + location.hash : undefined);\n window.ga(\"send\", \"pageview\");\n };\n\n if (\"requestAnimationFrame\" in window) {\n requestAnimationFrame(function () {\n requestAnimationFrame(sendPageView);\n });\n } else {\n // simulate 2 rAF calls\n setTimeout(sendPageView, 32);\n }\n }\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = crossFade;\n\nvar _isPrefixedValue = require('css-in-js-utils/lib/isPrefixedValue');\n\nvar _isPrefixedValue2 = _interopRequireDefault(_isPrefixedValue);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n} // http://caniuse.com/#search=cross-fade\n\n\nvar prefixes = ['-webkit-', ''];\n\nfunction crossFade(property, value) {\n if (typeof value === 'string' && !(0, _isPrefixedValue2.default)(value) && value.indexOf('cross-fade(') > -1) {\n return prefixes.map(function (prefix) {\n return value.replace(/cross-fade\\(/g, prefix + 'cross-fade(');\n });\n }\n}\n\nmodule.exports = exports['default'];","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @typechecks static-only\n */\n'use strict';\n/**\n * Memoizes the return value of a function that accepts one string argument.\n */\n\nfunction memoizeStringOnly(callback) {\n var cache = {};\n return function (string) {\n if (!cache.hasOwnProperty(string)) {\n cache[string] = callback.call(this, string);\n }\n\n return cache[string];\n };\n}\n\nmodule.exports = memoizeStringOnly;","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nimport loader from \"./loader\"\nimport InternalPageRenderer from \"./page-renderer\"\n\nconst ProdPageRenderer = ({ location }) => {\n const pageResources = loader.loadPageSync(location.pathname)\n if (!pageResources) {\n return null\n }\n return React.createElement(InternalPageRenderer, {\n location,\n pageResources,\n ...pageResources.json,\n })\n}\n\nProdPageRenderer.propTypes = {\n location: PropTypes.shape({\n pathname: PropTypes.string.isRequired,\n }).isRequired,\n}\n\nexport default ProdPageRenderer\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isPrefixedValue;\nvar regex = /-webkit-|-moz-|-ms-/;\n\nfunction isPrefixedValue(value) {\n return typeof value === 'string' && regex.test(value);\n}\n\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\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\nexports.default = clean; // Returns true for null, false, undefined and {}\n\nfunction isFalsy(value) {\n return value === null || value === undefined || value === false || (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && Object.keys(value).length === 0;\n}\n\nfunction cleanObject(object) {\n if (isFalsy(object)) return null;\n if ((typeof object === 'undefined' ? 'undefined' : _typeof(object)) !== 'object') return object;\n var acc = {},\n keys = Object.keys(object),\n hasFalsy = false;\n\n for (var i = 0; i < keys.length; i++) {\n var value = object[keys[i]];\n var filteredValue = clean(value);\n\n if (filteredValue === null || filteredValue !== value) {\n hasFalsy = true;\n }\n\n if (filteredValue !== null) {\n acc[keys[i]] = filteredValue;\n }\n }\n\n return Object.keys(acc).length === 0 ? null : hasFalsy ? acc : object;\n}\n\nfunction cleanArray(rules) {\n var hasFalsy = false;\n var filtered = [];\n rules.forEach(function (rule) {\n var filteredRule = clean(rule);\n\n if (filteredRule === null || filteredRule !== rule) {\n hasFalsy = true;\n }\n\n if (filteredRule !== null) {\n filtered.push(filteredRule);\n }\n });\n return filtered.length == 0 ? null : hasFalsy ? filtered : rules;\n} // Takes style array or object provided by user and clears all the falsy data \n// If there is no styles left after filtration returns null\n\n\nfunction clean(input) {\n return Array.isArray(input) ? cleanArray(input) : cleanObject(input);\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = prefixer;\n\nvar _staticData = require('inline-style-prefixer/static/staticData');\n\nvar _staticData2 = _interopRequireDefault(_staticData);\n\nvar _prefixProperty = require('inline-style-prefixer/utils/prefixProperty');\n\nvar _prefixProperty2 = _interopRequireDefault(_prefixProperty);\n\nvar _prefixValue = require('inline-style-prefixer/utils/prefixValue');\n\nvar _prefixValue2 = _interopRequireDefault(_prefixValue);\n\nvar _cursor = require('inline-style-prefixer/static/plugins/cursor');\n\nvar _cursor2 = _interopRequireDefault(_cursor);\n\nvar _crossFade = require('inline-style-prefixer/static/plugins/crossFade');\n\nvar _crossFade2 = _interopRequireDefault(_crossFade);\n\nvar _filter = require('inline-style-prefixer/static/plugins/filter');\n\nvar _filter2 = _interopRequireDefault(_filter);\n\nvar _flex = require('inline-style-prefixer/static/plugins/flex');\n\nvar _flex2 = _interopRequireDefault(_flex);\n\nvar _flexboxOld = require('inline-style-prefixer/static/plugins/flexboxOld');\n\nvar _flexboxOld2 = _interopRequireDefault(_flexboxOld);\n\nvar _gradient = require('inline-style-prefixer/static/plugins/gradient');\n\nvar _gradient2 = _interopRequireDefault(_gradient);\n\nvar _imageSet = require('inline-style-prefixer/static/plugins/imageSet');\n\nvar _imageSet2 = _interopRequireDefault(_imageSet);\n\nvar _position = require('inline-style-prefixer/static/plugins/position');\n\nvar _position2 = _interopRequireDefault(_position);\n\nvar _sizing = require('inline-style-prefixer/static/plugins/sizing');\n\nvar _sizing2 = _interopRequireDefault(_sizing);\n\nvar _transition = require('inline-style-prefixer/static/plugins/transition');\n\nvar _transition2 = _interopRequireDefault(_transition);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nvar plugins = [_crossFade2.default, _cursor2.default, _filter2.default, _flexboxOld2.default, _gradient2.default, _imageSet2.default, _position2.default, _sizing2.default, _transition2.default, _flex2.default]; // custom facade for inline-style-prefixer\n\nvar prefixMap = _staticData2.default.prefixMap;\n\nfunction prefixer(style) {\n for (var property in style) {\n var value = style[property];\n var processedValue = (0, _prefixValue2.default)(plugins, property, value, style, prefixMap); // only modify the value if it was touched\n // by any plugin to prevent unnecessary mutations\n\n if (processedValue) {\n style[property] = processedValue;\n }\n\n (0, _prefixProperty2.default)(prefixMap, property, style);\n }\n\n return style;\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = sizing;\nvar prefixes = ['-webkit-', '-moz-', ''];\nvar properties = {\n maxHeight: true,\n maxWidth: true,\n width: true,\n height: true,\n columnWidth: true,\n minWidth: true,\n minHeight: true\n};\nvar values = {\n 'min-content': true,\n 'max-content': true,\n 'fill-available': true,\n 'fit-content': true,\n 'contain-floats': true\n};\n\nfunction sizing(property, value) {\n if (properties.hasOwnProperty(property) && values.hasOwnProperty(value)) {\n return prefixes.map(function (prefix) {\n return prefix + value;\n });\n }\n}\n\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\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\nexports.PluginSet = PluginSet;\nexports.fallbacks = fallbacks;\nexports.contentWrap = contentWrap;\nexports.prefixes = prefixes;\n\nvar _objectAssign = require('object-assign');\n\nvar _objectAssign2 = _interopRequireDefault(_objectAssign);\n\nvar _CSSPropertyOperations = require('./CSSPropertyOperations');\n\nvar _prefixer = require('./prefixer');\n\nvar _prefixer2 = _interopRequireDefault(_prefixer);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nvar isDev = function (x) {\n return x === 'development' || !x;\n}(process.env.NODE_ENV);\n\nfunction PluginSet(initial) {\n this.fns = initial || [];\n}\n\n(0, _objectAssign2.default)(PluginSet.prototype, {\n add: function add() {\n var _this = this;\n\n for (var _len = arguments.length, fns = Array(_len), _key = 0; _key < _len; _key++) {\n fns[_key] = arguments[_key];\n }\n\n fns.forEach(function (fn) {\n if (_this.fns.indexOf(fn) >= 0) {\n if (isDev) {\n console.warn('adding the same plugin again, ignoring'); //eslint-disable-line no-console\n }\n } else {\n _this.fns = [fn].concat(_this.fns);\n }\n });\n },\n remove: function remove(fn) {\n this.fns = this.fns.filter(function (x) {\n return x !== fn;\n });\n },\n clear: function clear() {\n this.fns = [];\n },\n transform: function transform(o) {\n return this.fns.reduce(function (o, fn) {\n return fn(o);\n }, o);\n }\n});\n\nfunction fallbacks(node) {\n var hasArray = Object.keys(node.style).map(function (x) {\n return Array.isArray(node.style[x]);\n }).indexOf(true) >= 0;\n\n if (hasArray) {\n var style = node.style;\n var flattened = Object.keys(style).reduce(function (o, key) {\n o[key] = Array.isArray(style[key]) ? style[key].join('; ' + (0, _CSSPropertyOperations.processStyleName)(key) + ': ') : style[key];\n return o;\n }, {}); // todo - \n // flatten arrays which haven't been flattened yet \n\n return (0, _objectAssign2.default)({}, node, {\n style: flattened\n });\n }\n\n return node;\n}\n\nvar contentValues = ['normal', 'none', 'counter', 'open-quote', 'close-quote', 'no-open-quote', 'no-close-quote', 'initial', 'inherit'];\n\nfunction contentWrap(node) {\n if (node.style.content) {\n var cont = node.style.content;\n\n if (contentValues.indexOf(cont) >= 0) {\n return node;\n }\n\n if (/^(attr|calc|counters?|url)\\(/.test(cont)) {\n return node;\n }\n\n if (cont.charAt(0) === cont.charAt(cont.length - 1) && (cont.charAt(0) === '\"' || cont.charAt(0) === \"'\")) {\n return node;\n }\n\n return _extends({}, node, {\n style: _extends({}, node.style, {\n content: '\"' + cont + '\"'\n })\n });\n }\n\n return node;\n}\n\nfunction prefixes(node) {\n return (0, _objectAssign2.default)({}, node, {\n style: (0, _prefixer2.default)(_extends({}, node.style))\n });\n}","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}","const plugins = require(`./api-runner-browser-plugins`)\nconst {\n getResourcesForPathname,\n getResourcesForPathnameSync,\n getResourceURLsForPathname,\n loadPage,\n loadPageSync,\n} = require(`./loader`).publicLoader\n\nexports.apiRunner = (api, args = {}, defaultReturn, argTransform) => {\n // Hooks for gatsby-cypress's API handler\n if (process.env.CYPRESS_SUPPORT) {\n if (window.___apiHandler) {\n window.___apiHandler(api)\n } else if (window.___resolvedAPIs) {\n window.___resolvedAPIs.push(api)\n } else {\n window.___resolvedAPIs = [api]\n }\n }\n\n let results = plugins.map(plugin => {\n if (!plugin.plugin[api]) {\n return undefined\n }\n\n // Deprecated April 2019. Use `loadPageSync` instead\n args.getResourcesForPathnameSync = getResourcesForPathnameSync\n // Deprecated April 2019. Use `loadPage` instead\n args.getResourcesForPathname = getResourcesForPathname\n args.getResourceURLsForPathname = getResourceURLsForPathname\n args.loadPage = loadPage\n args.loadPageSync = loadPageSync\n\n const result = plugin.plugin[api](args, plugin.options)\n if (result && argTransform) {\n args = argTransform({ args, result, plugin })\n }\n return result\n })\n\n // Filter out undefined results.\n results = results.filter(result => typeof result !== `undefined`)\n\n if (results.length > 0) {\n return results\n } else if (defaultReturn) {\n return [defaultReturn]\n } else {\n return []\n }\n}\n\nexports.apiRunnerAsync = (api, args, defaultReturn) =>\n plugins.reduce(\n (previous, next) =>\n next.plugin[api]\n ? previous.then(() => next.plugin[api](args, next.options))\n : previous,\n Promise.resolve()\n )\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\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\nmodule.exports = g;\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport loader, { PageResourceStatus } from \"./loader\"\nimport redirects from \"./redirects.json\"\nimport { apiRunner } from \"./api-runner-browser\"\nimport emitter from \"./emitter\"\nimport { RouteAnnouncerProps } from \"./route-announcer-props\"\nimport { navigate as reachNavigate } from \"@reach/router\"\nimport { globalHistory } from \"@reach/router/lib/history\"\nimport { parsePath } from \"gatsby-link\"\n\n// Convert to a map for faster lookup in maybeRedirect()\n\nconst redirectMap = new Map()\nconst redirectIgnoreCaseMap = new Map()\n\nredirects.forEach(redirect => {\n if (redirect.ignoreCase) {\n redirectIgnoreCaseMap.set(redirect.fromPath, redirect)\n } else {\n redirectMap.set(redirect.fromPath, redirect)\n }\n})\n\nfunction maybeRedirect(pathname) {\n let redirect = redirectMap.get(pathname)\n if (!redirect) {\n redirect = redirectIgnoreCaseMap.get(pathname.toLowerCase())\n }\n\n if (redirect != null) {\n if (process.env.NODE_ENV !== `production`) {\n if (!loader.isPageNotFound(pathname)) {\n console.error(\n `The route \"${pathname}\" matches both a page and a redirect; this is probably not intentional.`\n )\n }\n }\n\n window.___replace(redirect.toPath)\n return true\n } else {\n return false\n }\n}\n\nconst onPreRouteUpdate = (location, prevLocation) => {\n if (!maybeRedirect(location.pathname)) {\n apiRunner(`onPreRouteUpdate`, { location, prevLocation })\n }\n}\n\nconst onRouteUpdate = (location, prevLocation) => {\n if (!maybeRedirect(location.pathname)) {\n apiRunner(`onRouteUpdate`, { location, prevLocation })\n if (\n process.env.GATSBY_EXPERIMENTAL_QUERY_ON_DEMAND &&\n process.env.GATSBY_QUERY_ON_DEMAND_LOADING_INDICATOR === `true`\n ) {\n emitter.emit(`onRouteUpdate`, { location, prevLocation })\n }\n }\n}\n\nconst navigate = (to, options = {}) => {\n // Support forward/backward navigation with numbers\n // navigate(-2) (jumps back 2 history steps)\n // navigate(2) (jumps forward 2 history steps)\n if (typeof to === `number`) {\n globalHistory.navigate(to)\n return\n }\n\n let { pathname } = parsePath(to)\n let redirect = redirectMap.get(pathname)\n if (!redirect) {\n redirect = redirectIgnoreCaseMap.get(pathname.toLowerCase())\n }\n\n // If we're redirecting, just replace the passed in pathname\n // to the one we want to redirect to.\n if (redirect) {\n to = redirect.toPath\n pathname = parsePath(to).pathname\n }\n\n // If we had a service worker update, no matter the path, reload window and\n // reset the pathname whitelist\n if (window.___swUpdated) {\n window.location = pathname\n return\n }\n\n // Start a timer to wait for a second before transitioning and showing a\n // loader in case resources aren't around yet.\n const timeoutId = setTimeout(() => {\n emitter.emit(`onDelayedLoadPageResources`, { pathname })\n apiRunner(`onRouteUpdateDelayed`, {\n location: window.location,\n })\n }, 1000)\n\n loader.loadPage(pathname).then(pageResources => {\n // If no page resources, then refresh the page\n // Do this, rather than simply `window.location.reload()`, so that\n // pressing the back/forward buttons work - otherwise when pressing\n // back, the browser will just change the URL and expect JS to handle\n // the change, which won't always work since it might not be a Gatsby\n // page.\n if (!pageResources || pageResources.status === PageResourceStatus.Error) {\n window.history.replaceState({}, ``, location.href)\n window.location = pathname\n clearTimeout(timeoutId)\n return\n }\n\n // If the loaded page has a different compilation hash to the\n // window, then a rebuild has occurred on the server. Reload.\n if (process.env.NODE_ENV === `production` && pageResources) {\n if (\n pageResources.page.webpackCompilationHash !==\n window.___webpackCompilationHash\n ) {\n // Purge plugin-offline cache\n if (\n `serviceWorker` in navigator &&\n navigator.serviceWorker.controller !== null &&\n navigator.serviceWorker.controller.state === `activated`\n ) {\n navigator.serviceWorker.controller.postMessage({\n gatsbyApi: `clearPathResources`,\n })\n }\n\n window.location = pathname\n }\n }\n reachNavigate(to, options)\n clearTimeout(timeoutId)\n })\n}\n\nfunction shouldUpdateScroll(prevRouterProps, { location }) {\n const { pathname, hash } = location\n const results = apiRunner(`shouldUpdateScroll`, {\n prevRouterProps,\n // `pathname` for backwards compatibility\n pathname,\n routerProps: { location },\n getSavedScrollPosition: args => [\n 0,\n this._stateStorage.read(args, args.key),\n ],\n })\n if (results.length > 0) {\n // Use the latest registered shouldUpdateScroll result, this allows users to override plugin's configuration\n // @see https://github.com/gatsbyjs/gatsby/issues/12038\n return results[results.length - 1]\n }\n\n if (prevRouterProps) {\n const {\n location: { pathname: oldPathname },\n } = prevRouterProps\n if (oldPathname === pathname) {\n // Scroll to element if it exists, if it doesn't, or no hash is provided,\n // scroll to top.\n return hash ? decodeURI(hash.slice(1)) : [0, 0]\n }\n }\n return true\n}\n\nfunction init() {\n // The \"scroll-behavior\" package expects the \"action\" to be on the location\n // object so let's copy it over.\n globalHistory.listen(args => {\n args.location.action = args.action\n })\n\n window.___push = to => navigate(to, { replace: false })\n window.___replace = to => navigate(to, { replace: true })\n window.___navigate = (to, options) => navigate(to, options)\n\n // Check for initial page-load redirect\n maybeRedirect(window.location.pathname)\n}\n\nclass RouteAnnouncer extends React.Component {\n constructor(props) {\n super(props)\n this.announcementRef = React.createRef()\n }\n\n componentDidUpdate(prevProps, nextProps) {\n requestAnimationFrame(() => {\n let pageName = `new page at ${this.props.location.pathname}`\n if (document.title) {\n pageName = document.title\n }\n const pageHeadings = document.querySelectorAll(`#gatsby-focus-wrapper h1`)\n if (pageHeadings && pageHeadings.length) {\n pageName = pageHeadings[0].textContent\n }\n const newAnnouncement = `Navigated to ${pageName}`\n if (this.announcementRef.current) {\n const oldAnnouncement = this.announcementRef.current.innerText\n if (oldAnnouncement !== newAnnouncement) {\n this.announcementRef.current.innerText = newAnnouncement\n }\n }\n })\n }\n\n render() {\n return <div {...RouteAnnouncerProps} ref={this.announcementRef}></div>\n }\n}\n\nconst compareLocationProps = (prevLocation, nextLocation) => {\n if (prevLocation.href !== nextLocation.href) {\n return true\n }\n\n if (prevLocation?.state?.key !== nextLocation?.state?.key) {\n return true\n }\n\n return false\n}\n\n// Fire on(Pre)RouteUpdate APIs\nclass RouteUpdates extends React.Component {\n constructor(props) {\n super(props)\n onPreRouteUpdate(props.location, null)\n }\n\n componentDidMount() {\n onRouteUpdate(this.props.location, null)\n }\n\n shouldComponentUpdate(prevProps) {\n if (compareLocationProps(prevProps.location, this.props.location)) {\n onPreRouteUpdate(this.props.location, prevProps.location)\n return true\n }\n return false\n }\n\n componentDidUpdate(prevProps) {\n if (compareLocationProps(prevProps.location, this.props.location)) {\n onRouteUpdate(this.props.location, prevProps.location)\n }\n }\n\n render() {\n return (\n <React.Fragment>\n {this.props.children}\n <RouteAnnouncer location={location} />\n </React.Fragment>\n )\n }\n}\n\nRouteUpdates.propTypes = {\n location: PropTypes.object.isRequired,\n}\n\nexport { init, shouldUpdateScroll, RouteUpdates }\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = flexboxOld;\nvar alternativeValues = {\n 'space-around': 'justify',\n 'space-between': 'justify',\n 'flex-start': 'start',\n 'flex-end': 'end',\n 'wrap-reverse': 'multiple',\n wrap: 'multiple'\n};\nvar alternativeProps = {\n alignItems: 'WebkitBoxAlign',\n justifyContent: 'WebkitBoxPack',\n flexWrap: 'WebkitBoxLines'\n};\n\nfunction flexboxOld(property, value, style) {\n if (property === 'flexDirection' && typeof value === 'string') {\n if (value.indexOf('column') > -1) {\n style.WebkitBoxOrient = 'vertical';\n } else {\n style.WebkitBoxOrient = 'horizontal';\n }\n\n if (value.indexOf('reverse') > -1) {\n style.WebkitBoxDirection = 'reverse';\n } else {\n style.WebkitBoxDirection = 'normal';\n }\n }\n\n if (alternativeProps.hasOwnProperty(property)) {\n style[alternativeProps[property]] = alternativeValues[value] || value;\n }\n}\n\nmodule.exports = exports['default'];"],"sourceRoot":""}