\\w+)/\r\n\r\nconst useClasses = makeStyles(theme => ({\r\n linkRoot: {\r\n [theme.breakpoints.up('md')]: {\r\n maxWidth: 'calc(100vw / 3)'\r\n }\r\n }\r\n}))\r\n\r\nconst Link = forwardRef(({ to, href, children, isImplicit, isFullUrl, getProps, target, className, ...rest }, ref) => {\r\n const url = href ? href : to || ''\r\n const localeContext = useContext(LocaleContext)\r\n const _classes = useClasses()\r\n\r\n delete rest.anchorClassName\r\n delete rest.showLabel\r\n\r\n // Dialog links\r\n if (twitchVideoUrlRegex.test(url)) {\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n }\r\n\r\n if (twitchClipUrlRegex.test(url)) {\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n }\r\n\r\n // Relative internal links that need a locale\r\n if (target !== '_blank' && !isFullUrl && url && isInternalLink(url)) {\r\n const slug = getSlugFromFullUrl(url)\r\n const pathWithLocale =\r\n isImplicit || localeContext.isImplicit ? `/${slug.replace(/^\\/+/, '')}` : `/${localeContext.locale}/${slug.replace(/^\\/+/, '')}`\r\n\r\n return (\r\n \r\n )\r\n }\r\n // Relative internal links that dont need a locale\r\n else if((target !== '_blank' && !!isFullUrl && url && isInternalLink(url)) ){\r\n return (\r\n \r\n )\r\n }\r\n\r\n // All other links\r\n return (\r\n \r\n )\r\n})\r\n\r\nLink.propTypes = {\r\n children: PropTypes.node,\r\n to: PropTypes.string,\r\n href: PropTypes.string,\r\n isFullUrl: PropTypes.bool,\r\n isImplicit: PropTypes.bool\r\n}\r\n\r\nLink.defaultProps = {\r\n children: null,\r\n to: null,\r\n href: null,\r\n isFullUrl: false,\r\n isImplicit: false\r\n}\r\n\r\nexport default Link\r\n","export default __webpack_public_path__ + \"static/placeholder-white-5cafa8af5efe0bf5b319fc376b83dbf9.jpg\";","export default __webpack_public_path__ + \"static/placeholder-black-19f39f76d78cc80b35459bf6962247d1.jpg\";","export default __webpack_public_path__ + \"static/gearsOfWar-6cdc657601dce162233c0aab07966738.jpg\";","export default __webpack_public_path__ + \"static/theCoalition-80d568b556fc8a0c1e375ce671f2c089.jpg\";","import { useTheme } from '@material-ui/core/styles'\r\n\r\nimport placeholderImgWhite from '../assets/images/placeholder-white.jpg'\r\nimport placeholderImgBlack from '../assets/images/placeholder-black.jpg'\r\nimport gearsOfWar from '../assets/images/news/gearsOfWar.jpg'\r\nimport theCoalition from '../assets/images/news/theCoalition.jpg'\r\n\r\nconst IMAGES = {\r\n placeholderImg: { white: placeholderImgWhite, black: placeholderImgBlack },\r\n gearsOfWar: { white: gearsOfWar, black: gearsOfWar },\r\n theCoalition: { white: theCoalition, black: theCoalition }\r\n}\r\n\r\nconst useThemedImage = (name = 'placeholderImg') => {\r\n const theme = useTheme()\r\n\r\n if (theme.palette.type === 'light') {\r\n return IMAGES[name].white\r\n } else {\r\n return IMAGES[name].black\r\n }\r\n}\r\n\r\nexport default useThemedImage\r\n","import React from 'react'\r\nimport classNames from 'classnames'\r\nimport { makeStyles } from '@material-ui/core/styles'\r\nimport { useTranslation } from 'react-i18next'\r\nimport Image from 'tcweb-material-components/core/image'\r\n\r\nimport useThemedImage from '../../hooks/useThemedImage'\r\n\r\nconst useClasses = makeStyles(() => ({\r\n root: { width: '100%' }\r\n}))\r\n\r\nexport default ({ className, role, name, ...rest }) => {\r\n const { t } = useTranslation()\r\n const _classes = useClasses()\r\n const placeHolderImg = useThemedImage(name || 'placeholderImg')\r\n\r\n if (role === 'presentation') {\r\n return (\r\n \r\n )\r\n } else {\r\n return (\r\n \r\n )\r\n }\r\n}\r\n","import React, { forwardRef } from 'react'\r\nimport { useTranslation } from 'react-i18next'\r\nimport get from 'tcweb-material-components/core/poly/get'\r\nimport isString from 'lodash/isString'\r\n\r\nimport Link from '../../common/link'\r\n\r\nconst translateStrings = (element, t) =>\r\n\tReact.Children.map(element, (child) => {\r\n\t\tif (isString(child)) return t(child)\r\n\r\n\t\tif (!get(child, 'props.children')) return child\r\n\r\n\t\treturn React.cloneElement(child, {\r\n\t\t\t...child.props,\r\n\t\t\tchildren: translateStrings(child.props.children, t)\r\n\t\t})\r\n\t})\r\n\r\nconst MobileMenuItem = forwardRef(({ children, ...rest }, ref) => {\r\n\tconst { t } = useTranslation()\r\n\r\n\treturn (\r\n\t\t{translateStrings(children, t)}\r\n\t)\r\n})\r\n\r\nexport default MobileMenuItem\r\n","import React, { useState, forwardRef } from 'react'\r\nimport TCMobileMenuItem from 'tcweb-material-components/core/siteMenu/mobileMenuItem'\r\n\r\nimport Link from '../../common/link'\r\n\r\nconst MobileMenuItem = forwardRef(({ children, renderMenuItemImage, ...rest }, ref) => {\r\n const [isActive, setIsActive] = useState(false)\r\n\r\n const getProps = ({ isPartiallyCurrent }) => {\r\n setIsActive(isPartiallyCurrent)\r\n return null\r\n }\r\n\r\n return (\r\n \r\n )\r\n})\r\n\r\nexport default MobileMenuItem\r\n","import React, { useState, forwardRef } from 'react'\r\nimport { useTranslation } from 'react-i18next'\r\nimport isString from 'lodash/isString'\r\nimport TCMenuItem from 'tcweb-material-components/core/siteMenu/menuItem'\r\nimport get from 'tcweb-material-components/core/poly/get'\r\n\r\nimport Link from '../../common/link'\r\n\r\nconst translateStrings = (element, t) =>\r\n\tReact.Children.map(element, (child) => {\r\n\t\tif (isString(child)) return t(child)\r\n\r\n\t\tif (!get(child, 'props.children')) return child\r\n\r\n\t\treturn React.cloneElement(child, {\r\n\t\t\t...child.props,\r\n\t\t\tchildren: translateStrings(child.props.children, t)\r\n\t\t})\r\n\t})\r\n\r\nconst MenuItem = forwardRef(({ children, ...rest }, ref) => {\r\n\tconst { t } = useTranslation()\r\n\tconst [isActive, setIsActive] = useState(false)\r\n\r\n\tconst getProps = ({ isCurrent }) => {\r\n\t\tsetIsActive(isCurrent)\r\n\t\treturn null\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{translateStrings(children, t)}\r\n\t\t\r\n\t)\r\n})\r\n\r\nexport default MenuItem\r\n","import React from 'react'\nimport { GatsbyImage } from \"gatsby-plugin-image\"\nimport { makeStyles, useTheme } from '@material-ui/core/styles'\nimport classNames from 'classnames'\n\nimport PlaceholderImg from '../common/placeholderImg'\n\nconst useStyles = makeStyles(() => ({\n img: { width: '100%' }\n}))\n\nconst MenuImage = ({ className, fluidImg }) => {\n const imgStyles = useStyles()\n const theme = useTheme()\n\n if (!!fluidImg) {\n return (\n \n );\n } else {\n return \n }\n}\n\nexport default MenuImage\n","import React from 'react'\r\nimport { useTranslation } from 'react-i18next'\r\nimport { makeStyles, useTheme } from '@material-ui/styles'\r\nimport SiteDesktopMenu from 'tcweb-material-components/core/siteMenu/desktop'\r\nimport SiteMobileMenu from 'tcweb-material-components/core/siteMenu/mobile'\r\nimport Icon from 'tcweb-material-components/core/icon'\r\nimport Image from 'tcweb-material-components/core/image'\r\nimport Box from 'tcweb-material-components/core/box'\r\nimport get from 'tcweb-material-components/core/poly/get'\r\nimport loadable from '@loadable/component'\r\nimport useMediaQuery from '@material-ui/core/useMediaQuery'\r\n\r\nimport useLogo from '../../hooks/useLogo'\r\nimport MenuItem from './components/menuItem'\r\nimport SiteMobileMenuItem from './components/siteMobileMenuItem'\r\nimport SiteMenuItem from './components/siteMenuItem'\r\nimport MenuImage from './menuImage'\r\n\r\nconst ProfilePopup = loadable(() => import('./components/profilePopup'))\r\nconst PushNotificationButton = loadable(() => import('../common/pushNotificationButton'))\r\n\r\nconst LOGIN_ENABLED = !!process.env.GATSBY_FEATURE_LOGIN_ON && JSON.parse(process.env.GATSBY_FEATURE_LOGIN_ON.toLowerCase()) === true\r\nconst PUSH_NOTIFICATION_ENABLED = !!process.env.GATSBY_FEATURE_PUSH_NOTIFICATION && JSON.parse(process.env.GATSBY_FEATURE_PUSH_NOTIFICATION.toLowerCase()) === true\r\n\r\nconst useClasses = makeStyles(({ palette, breakpoints, accessibility: { highContrast } }) => ({\r\n root: {\r\n borderBottom: `1px solid ${palette.border.primary}`,\r\n [highContrast.mediaQuery('active')]: {\r\n borderBottom: `1px solid ${palette.border.primary}`\r\n }\r\n },\r\n logo: {\r\n height: '35px',\r\n [breakpoints.up('lg')]: { height: '55px' }\r\n },\r\n logoLink: {\r\n display: 'flex',\r\n marginRight: '30px',\r\n width: 'initial',\r\n [breakpoints.up('lg')]: { marginRight: '115px' }\r\n },\r\n\r\n img: {\r\n marginBottom: '1em',\r\n borderRadius: '3%'\r\n },\r\n icon: {\r\n paddingBottom: '.1em',\r\n height: '30px'\r\n },\r\n iconTitle: { fontSize: '0.9em' }\r\n}))\r\n\r\nconst getItemChildren = item => get(item, 'childItems.nodes')\r\n\r\nexport default ({ menu: { desktop, mobile } }) => {\r\n const { t } = useTranslation()\r\n const classes = useClasses()\r\n const logo = useLogo('gearsOfWarFull')\r\n const { breakpoints } = useTheme()\r\n const isMobile = useMediaQuery(breakpoints.down('xs'))\r\n const iconSize = isMobile ? '24px' : '30px'\r\n\r\n const renderBrand = () => (\r\n \r\n )\r\n\r\n const renderMenuItemImage = (item, opts = {}) =>\r\n <>\r\n {get(item, 'acf.iconImage')\r\n ? \r\n : get(item, 'acf.iconBase', '').toLowerCase() !== 'none' && (\r\n \r\n \r\n
\r\n )\r\n }\r\n {t(get(item, 'label', get(item, 'title')))}\r\n >\r\n\r\n return (\r\n <>\r\n \r\n \r\n {PUSH_NOTIFICATION_ENABLED && (\r\n \r\n )}\r\n {/* {LOGIN_ENABLED && } */}\r\n {/* \r\n \r\n Primary Button\r\n \r\n */}\r\n \r\n \r\n\r\n \r\n >\r\n )\r\n}\r\n","import React from 'react'\r\nimport { useStaticQuery, graphql } from 'gatsby'\r\nimport get from 'tcweb-material-components/core/poly/get'\r\nimport filter from 'tcweb-material-components/core/poly/filter'\r\n\r\nimport HeaderSite from './site'\r\n\r\nconst Header = () => {\r\n\r\n const data = useStaticQuery(graphql`\r\n {\r\n FranchiseMenu: allWpSiteMenu(filter: {slug: {eq: \"franchise-menu\"}}) {\r\n nodes { ...franchiseGraphqlFragment }\r\n }\r\n SiteMenuDesktop: allWpSiteMenu (filter: {slug: {eq: \"site-menu-desktop\"}}){\r\n nodes { ...siteDesktopGraphqlFragment }\r\n }\r\n SiteMenuMobile: allWpSiteMenu(filter: {slug: {eq: \"site-menu-mobile\"}}) {\r\n nodes { ...siteMobileGraphqlFragment }\r\n }\r\n }\r\n `)\r\n\r\n const menu = {\r\n desktop: get(data, 'SiteMenuDesktop.nodes.0.menuItems.nodes'),\r\n mobile: filter( i => get(i, 'parentId') == null,get(data, 'SiteMenuMobile.nodes.0.menuItems.nodes'))\r\n }\r\n\r\n return \r\n}\r\n\r\nexport default Header\r\n","import React, { useContext } from 'react'\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport { Location } from '@reach/router'\r\nimport { makeStyles, useTheme } from '@material-ui/styles'\r\nimport { useTranslation } from 'react-i18next'\r\nimport classnames from 'classnames'\r\n\r\nimport { decodeText } from '../../utilities/helpers'\r\nimport Link from '../common/link'\r\nimport LocaleContext from '../context/localeContext'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n justifyContent: 'center',\r\n marginTop: '20px',\r\n marginBottom: '20px',\r\n [theme.breakpoints.up('md')]: {\r\n flexDirection: 'row',\r\n justifyContent: 'space-between',\r\n margin: 0\r\n }\r\n },\r\n link: {\r\n textTransform: 'initial',\r\n letterSpacing: 'initial',\r\n fontStretch: 'initial',\r\n fontWeight: 'initial',\r\n fontSize: '0.9em',\r\n color: theme.palette.text.primary,\r\n fontFamily: 'Segoe UI, SegoeUI, \"Helvetica Neue\", Helvetica, Arial, sans-serif',\r\n '&:hover, &:focus': { color: theme.palette.text.primary },\r\n [theme.breakpoints.up('md')]: { marginLeft: '1.33em' }\r\n },\r\n alignRight: {\r\n [theme.breakpoints.up('md')]: {\r\n justifyContent: 'flex-end'\r\n }\r\n },\r\n linksList: {\r\n fontSize: '0.72em',\r\n listStyleType: 'none',\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n alignItems: 'center',\r\n padding: 0,\r\n flex: 1,\r\n [theme.breakpoints.down('sm')]: {\r\n justifyContent: 'space-between'\r\n },\r\n [theme.breakpoints.up('md')]: {\r\n marginTop: '30px',\r\n marginBottom: '30px'\r\n }\r\n },\r\n locationPicker: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'flex-start',\r\n color: theme.palette.text.primary,\r\n [theme.breakpoints.down('sm')]: {\r\n marginRight: `${theme.spacing(2)}px`\r\n }\r\n },\r\n locationPickerContainer: {\r\n maxWidth: '100%',\r\n display: 'flex',\r\n flexDirection: 'row',\r\n justifyContent: 'flex-start',\r\n alignItems: 'center'\r\n },\r\n locationPickerIcon: { paddingRight: '.5em' }\r\n}))\r\n\r\nconst { getLocaleNameFromUrl, removeLocaleFromPath } = require('../../utilities/locale')\r\n\r\nconst FooterMicrosoft = () => {\r\n const _classes = useStyles()\r\n const { t } = useTranslation()\r\n const theme = useTheme()\r\n const localeContext = useContext(LocaleContext)\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport default FooterMicrosoft\r\n","import React, { useContext } from 'react'\r\nimport { useTranslation } from 'react-i18next'\r\nimport { makeStyles } from '@material-ui/styles'\r\nimport { useStaticQuery, graphql } from 'gatsby'\r\nimport Facebook from 'tcweb-material-components/core/social/facebook'\r\nimport Instagram from 'tcweb-material-components/core/social/instagram'\r\nimport Twitch from 'tcweb-material-components/core/social/twitch'\r\nimport Twitter from 'tcweb-material-components/core/social/twitter'\r\nimport YouTube from 'tcweb-material-components/core/social/youtube'\r\nimport find from 'tcweb-material-components/core/poly/find'\r\nimport map from 'tcweb-material-components/core/poly/map'\r\nimport get from 'tcweb-material-components/core/poly/get'\r\nimport Image from 'tcweb-material-components/core/image'\r\nimport Button from 'tcweb-material-components/core/button'\r\nimport TCMenuItem from 'tcweb-material-components/core/siteMenu/menuItem'\r\n\r\nimport useLogo from '../../hooks/useLogo'\r\nimport LocaleContext from '../context/localeContext'\r\nimport ImgWithSVGSupport from '../common/imgWithSVGSupport'\r\nimport Link from '../common/link'\r\nimport TEST_IDS from '../../constants/query-selectors'\r\n\r\nconst TABLET_SPACING = '30px'\r\nconst MOBILE_SPACING = '20px'\r\nconst ITEM_GAP = '40px'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n highContrast: {\r\n ...theme.accessibility.highContrast.blackOnWhite\r\n },\r\n section: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n paddingTop: MOBILE_SPACING,\r\n paddingBottom: MOBILE_SPACING,\r\n borderBottom: `1px solid ${theme.palette.border.primary}`,\r\n '& a': {\r\n width: 'auto',\r\n marginRight: ITEM_GAP,\r\n '&:last-of-type': {\r\n marginRight: 0\r\n }\r\n },\r\n [theme.breakpoints.up('sm')]: {\r\n paddingTop: TABLET_SPACING,\r\n paddingBottom: TABLET_SPACING\r\n }\r\n },\r\n siteLink: {\r\n [theme.breakpoints.up('md')]: {\r\n fontSize: '1.1em'\r\n },\r\n [theme.breakpoints.up('lg')]: {\r\n fontSize: '1.33em'\r\n }\r\n },\r\n franchiseLinks: {\r\n display: 'grid',\r\n gridRowGap: MOBILE_SPACING,\r\n gridTemplateColumns: '1fr 1fr',\r\n [theme.breakpoints.up('md')]: {\r\n display: 'flex',\r\n flexWrap: 'wrap'\r\n }\r\n },\r\n companyLinks: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n flexDirection: 'column',\r\n [theme.breakpoints.up('md')]: {\r\n flexDirection: 'row',\r\n borderBottom: `1px solid ${theme.palette.border.primary}`\r\n },\r\n '& > nav': {\r\n [theme.breakpoints.up('md')]: {\r\n paddingTop: '10px',\r\n paddingBottom: '10px',\r\n borderBottom: 'none'\r\n }\r\n }\r\n },\r\n companyLogoLinks: {\r\n display: 'grid',\r\n justifyContent: 'start',\r\n gridRowGap: MOBILE_SPACING,\r\n [theme.breakpoints.up('md')]: {\r\n display: 'flex',\r\n marginRight: ITEM_GAP\r\n }\r\n },\r\n ratingImage: {\r\n [theme.breakpoints.only('sm')]: {\r\n marginBottom: 0,\r\n gridColumnStart: 1,\r\n gridColumnEnd: 3\r\n }\r\n },\r\n tcImage: { maxWidth: '100%' },\r\n xboxImage: { maxWidth: '100%' },\r\n socialMediaLinks: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n paddingTop: MOBILE_SPACING,\r\n paddingBottom: MOBILE_SPACING,\r\n borderBottom: `1px solid ${theme.palette.border.primary}`,\r\n '& a': {\r\n width: 'auto',\r\n textAlign: 'center'\r\n },\r\n [theme.breakpoints.only('sm')]: {\r\n paddingTop: TABLET_SPACING,\r\n paddingBottom: TABLET_SPACING\r\n },\r\n [theme.breakpoints.up('sm')]: {\r\n justifyContent: 'flex-start',\r\n '& a': {\r\n width: 'auto',\r\n marginRight: ITEM_GAP,\r\n '&:last-of-type': {\r\n marginRight: 0\r\n }\r\n }\r\n },\r\n [theme.breakpoints.up('md')]: {\r\n borderBottom: 'none'\r\n }\r\n }\r\n}))\r\n\r\nexport default ({ isFranceHomepage }) => {\r\n const localeContext = useContext(LocaleContext)\r\n const { t } = useTranslation()\r\n const _classes = useStyles()\r\n const coalitionLogo = useLogo('theCoalition')\r\n const xboxGameStudiosLogo = useLogo('xboxGameStudios')\r\n\r\n const data = useStaticQuery(graphql`\r\n {\r\n FranchiseMenuFooter: allWpSiteMenu(filter: { slug: { eq: \"franchise-menu-footer\" } }) {\r\n nodes {\r\n ...franchiseFooterGraphqlFragment\r\n }\r\n }\r\n rating: allWpSiteRating {\r\n nodes {\r\n ...ratingsGraphqlFragment\r\n }\r\n }\r\n }\r\n `)\r\n\r\n const currentLocaleRating = find((n) => n.ratingACF.locales.includes(localeContext.locale), get(data, 'rating.nodes'))\r\n const franchiseMenuFooterItems = get(data, 'FranchiseMenuFooter.nodes.0.menuItems.nodes')\r\n\r\n return (\r\n <>\r\n \r\n \r\n {t('Gears of War')}\r\n \r\n\r\n {map(\r\n (item) => (\r\n \r\n {t(item.label)}\r\n \r\n ),\r\n franchiseMenuFooterItems\r\n )}\r\n
\r\n {isFranceHomepage && (\r\n \r\n Accessibilité: partiellement conforme\r\n
\r\n )}\r\n \r\n
\r\n
\r\n
\r\n >\r\n )\r\n}\r\n","import React from 'react'\r\nimport Box from 'tcweb-material-components/core/box'\r\nimport { makeStyles } from '@material-ui/styles'\r\n\r\nimport FooterMicrosoft from './microsoft'\r\nimport FooterSite from './site'\r\n\r\nconst useStyles = makeStyles(({ palette }) => ({\r\n root: {\r\n borderTop: `1px solid ${palette.border.primary}`,\r\n }\r\n}))\r\n\r\nexport default (props) => {\r\n const _classes = useStyles()\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","function _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 return arr2;\n } else {\n return Array.from(arr);\n }\n}\n\n// Older browsers don't support event options, feature detect it.\n\n// Adopted and modified solution from Bohdan Didukh (2017)\n// https://stackoverflow.com/questions/41594997/ios-10-safari-prevent-scrolling-behind-a-fixed-overlay-and-maintain-scroll-posi\n\nvar hasPassiveEvents = false;\nif (typeof window !== 'undefined') {\n var passiveTestOptions = {\n get passive() {\n hasPassiveEvents = true;\n return undefined;\n }\n };\n window.addEventListener('testPassive', null, passiveTestOptions);\n window.removeEventListener('testPassive', null, passiveTestOptions);\n}\nvar isIosDevice = typeof window !== 'undefined' && window.navigator && window.navigator.platform && (/iP(ad|hone|od)/.test(window.navigator.platform) || window.navigator.platform === 'MacIntel' && window.navigator.maxTouchPoints > 1);\nvar locks = [];\nvar documentListenerAdded = false;\nvar initialClientY = -1;\nvar previousBodyOverflowSetting = void 0;\nvar previousBodyPaddingRight = void 0;\n\n// returns true if `el` should be allowed to receive touchmove events.\nvar allowTouchMove = function allowTouchMove(el) {\n return locks.some(function (lock) {\n if (lock.options.allowTouchMove && lock.options.allowTouchMove(el)) {\n return true;\n }\n return false;\n });\n};\nvar preventDefault = function preventDefault(rawEvent) {\n var e = rawEvent || window.event;\n\n // For the case whereby consumers adds a touchmove event listener to document.\n // Recall that we do document.addEventListener('touchmove', preventDefault, { passive: false })\n // in disableBodyScroll - so if we provide this opportunity to allowTouchMove, then\n // the touchmove event on document will break.\n if (allowTouchMove(e.target)) {\n return true;\n }\n\n // Do not prevent if the event has more than one touch (usually meaning this is a multi touch gesture like pinch to zoom).\n if (e.touches.length > 1) return true;\n if (e.preventDefault) e.preventDefault();\n return false;\n};\nvar setOverflowHidden = function setOverflowHidden(options) {\n // If previousBodyPaddingRight is already set, don't set it again.\n if (previousBodyPaddingRight === undefined) {\n var _reserveScrollBarGap = !!options && options.reserveScrollBarGap === true;\n var scrollBarGap = window.innerWidth - document.documentElement.clientWidth;\n if (_reserveScrollBarGap && scrollBarGap > 0) {\n previousBodyPaddingRight = document.body.style.paddingRight;\n document.body.style.paddingRight = scrollBarGap + 'px';\n }\n }\n\n // If previousBodyOverflowSetting is already set, don't set it again.\n if (previousBodyOverflowSetting === undefined) {\n previousBodyOverflowSetting = document.body.style.overflow;\n document.body.style.overflow = 'hidden';\n }\n};\nvar restoreOverflowSetting = function restoreOverflowSetting() {\n if (previousBodyPaddingRight !== undefined) {\n document.body.style.paddingRight = previousBodyPaddingRight;\n\n // Restore previousBodyPaddingRight to undefined so setOverflowHidden knows it\n // can be set again.\n previousBodyPaddingRight = undefined;\n }\n if (previousBodyOverflowSetting !== undefined) {\n document.body.style.overflow = previousBodyOverflowSetting;\n\n // Restore previousBodyOverflowSetting to undefined\n // so setOverflowHidden knows it can be set again.\n previousBodyOverflowSetting = undefined;\n }\n};\n\n// https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollHeight#Problems_and_solutions\nvar isTargetElementTotallyScrolled = function isTargetElementTotallyScrolled(targetElement) {\n return targetElement ? targetElement.scrollHeight - targetElement.scrollTop <= targetElement.clientHeight : false;\n};\nvar handleScroll = function handleScroll(event, targetElement) {\n var clientY = event.targetTouches[0].clientY - initialClientY;\n if (allowTouchMove(event.target)) {\n return false;\n }\n if (targetElement && targetElement.scrollTop === 0 && clientY > 0) {\n // element is at the top of its scroll.\n return preventDefault(event);\n }\n if (isTargetElementTotallyScrolled(targetElement) && clientY < 0) {\n // element is at the bottom of its scroll.\n return preventDefault(event);\n }\n event.stopPropagation();\n return true;\n};\nexport var disableBodyScroll = function disableBodyScroll(targetElement, options) {\n // targetElement must be provided\n if (!targetElement) {\n // eslint-disable-next-line no-console\n console.error('disableBodyScroll unsuccessful - targetElement must be provided when calling disableBodyScroll on IOS devices.');\n return;\n }\n\n // disableBodyScroll must not have been called on this targetElement before\n if (locks.some(function (lock) {\n return lock.targetElement === targetElement;\n })) {\n return;\n }\n var lock = {\n targetElement: targetElement,\n options: options || {}\n };\n locks = [].concat(_toConsumableArray(locks), [lock]);\n if (isIosDevice) {\n targetElement.ontouchstart = function (event) {\n if (event.targetTouches.length === 1) {\n // detect single touch.\n initialClientY = event.targetTouches[0].clientY;\n }\n };\n targetElement.ontouchmove = function (event) {\n if (event.targetTouches.length === 1) {\n // detect single touch.\n handleScroll(event, targetElement);\n }\n };\n if (!documentListenerAdded) {\n document.addEventListener('touchmove', preventDefault, hasPassiveEvents ? {\n passive: false\n } : undefined);\n documentListenerAdded = true;\n }\n } else {\n setOverflowHidden(options);\n }\n};\nexport var clearAllBodyScrollLocks = function clearAllBodyScrollLocks() {\n if (isIosDevice) {\n // Clear all locks ontouchstart/ontouchmove handlers, and the references.\n locks.forEach(function (lock) {\n lock.targetElement.ontouchstart = null;\n lock.targetElement.ontouchmove = null;\n });\n if (documentListenerAdded) {\n document.removeEventListener('touchmove', preventDefault, hasPassiveEvents ? {\n passive: false\n } : undefined);\n documentListenerAdded = false;\n }\n\n // Reset initial clientY.\n initialClientY = -1;\n } else {\n restoreOverflowSetting();\n }\n locks = [];\n};\nexport var enableBodyScroll = function enableBodyScroll(targetElement) {\n if (!targetElement) {\n // eslint-disable-next-line no-console\n console.error('enableBodyScroll unsuccessful - targetElement must be provided when calling enableBodyScroll on IOS devices.');\n return;\n }\n locks = locks.filter(function (lock) {\n return lock.targetElement !== targetElement;\n });\n if (isIosDevice) {\n targetElement.ontouchstart = null;\n targetElement.ontouchmove = null;\n if (documentListenerAdded && locks.length === 0) {\n document.removeEventListener('touchmove', preventDefault, hasPassiveEvents ? {\n passive: false\n } : undefined);\n documentListenerAdded = false;\n }\n } else if (!locks.length) {\n restoreOverflowSetting();\n }\n};","import React, { useEffect, useState } from 'react'\r\nimport moment from 'moment'\r\nimport { useStaticQuery, graphql } from 'gatsby'\r\nimport range from 'lodash/range'\r\nimport { makeStyles } from '@material-ui/core/styles'\r\nimport Typography from '@material-ui/core/Typography'\r\nimport NativeSelect from '@material-ui/core/NativeSelect'\r\nimport classnames from 'classnames'\r\nimport Cookie from 'js-cookie'\r\nimport Button from 'tcweb-material-components/core/button'\r\nimport Dialog from 'tcweb-material-components/core/dialog'\r\nimport get from 'tcweb-material-components/core/poly/get'\r\nimport ThemeProvider from 'tcweb-material-components/core/themeProvider'\r\nimport { getFirstFocusableChild, isSamsungInternet } from 'tcweb-material-components/core/utilities/helpers'\r\nimport { disableBodyScroll, enableBodyScroll } from 'body-scroll-lock'\r\nimport { useTranslation } from 'react-i18next'\r\nimport TEST_IDS from '../../constants/query-selectors'\r\n\r\nimport webstarterLogoWhite from '../../assets/images/logos/webstarter-white.svg'\r\nimport gearsOfWarLogoWhite from '../../assets/images/logos/gearsOfWar-vertical-no-omen-white.svg'\r\n\r\nconst theme = {\r\n palette: {\r\n text: {\r\n primary: '#FFFFFF'\r\n }\r\n }\r\n}\r\n\r\nconst useStyles = makeStyles(({ breakpoints, gutters, palette, accessibility: { highContrast } }) => ({\r\n container: {\r\n padding: gutters.page.xs,\r\n [breakpoints.up('md')]: { padding: gutters.page.md },\r\n [breakpoints.up('lg')]: { padding: gutters.page.lg }\r\n },\r\n paper: {\r\n padding: 0,\r\n overflowX: 'hidden',\r\n alignItems: 'center',\r\n boxShadow: '0 10px 20px 0px rgba(0, 0, 0, 0.50)',\r\n backgroundColor: '#000',\r\n backgroundSize: 'cover',\r\n },\r\n content: {\r\n overflow: 'visible',\r\n margin: 'auto',\r\n display: 'flex',\r\n flexFlow: 'column',\r\n alignItems: 'center',\r\n justifyContent: 'flex-end',\r\n textAlign: 'center',\r\n minHeight: '100%',\r\n background: 'linear-gradient(transparent 50%, rgba(0, 0, 0, 0.5) 60%)',\r\n padding: '0 !important',\r\n paddingTop: '100px',\r\n width: '100%',\r\n '@media (max-height: 450px)': {\r\n background: 'linear-gradient(transparent 5%, rgba(0, 0, 0, 0.5) 50%)'\r\n },\r\n [breakpoints.up('md')]: {\r\n background: 'radial-gradient(closest-side at center 70%, rgba(0, 0, 0, 0.95), rgba(0, 0, 0, 0.5) 70%, transparent 80%)',\r\n width: '50%'\r\n }\r\n },\r\n logo: {\r\n marginTop: '5vh',\r\n maxWidth: '300px',\r\n paddingLeft: '1em',\r\n paddingRight: '1em',\r\n marginBottom: 'auto',\r\n [breakpoints.up('md')]: { maxWidth: '100%' }\r\n },\r\n contentText: {\r\n color: '#fff',\r\n lineHeight: '1',\r\n textTransform: 'uppercase',\r\n fontStretch: 'condensed',\r\n fontWeight: '700',\r\n marginBottom: '5vh',\r\n marginTop: '1em',\r\n [breakpoints.up('md')]: {\r\n margin: '3vh'\r\n }\r\n },\r\n contentTextBlocked: {\r\n lineHeight: '1',\r\n textTransform: 'uppercase',\r\n fontStretch: 'condensed',\r\n fontWeight: '700',\r\n marginBottom: '150px',\r\n [breakpoints.up('md')]: { marginBottom: '200px' }\r\n },\r\n form: {\r\n '& .MuiInput-underline:after': {\r\n borderBottomColor: 'green'\r\n }\r\n },\r\n fieldContainer: {\r\n backgroundColor: palette.common.black,\r\n borderRadius: '6px',\r\n padding: '6px',\r\n display: 'grid',\r\n gridGap: '20px',\r\n gridTemplateColumns: '1fr',\r\n [breakpoints.up('md')]: {\r\n gridTemplateColumns: 'repeat(3, 1fr)'\r\n }\r\n },\r\n select: {\r\n color: palette.common.white,\r\n '& option': {\r\n color: palette.common.white\r\n },\r\n '&:focus': {\r\n outline: `2px solid ${palette.common.white}`,\r\n }\r\n },\r\n\r\n icon: {\r\n [highContrast.mediaQuery('active')]: {\r\n color: 'WindowText'\r\n }\r\n },\r\n underline: {\r\n '&:before': {\r\n borderBottom: '1px solid',\r\n borderBottomColor: palette.primary.contrastText\r\n }\r\n },\r\n submit: {\r\n width: '75%',\r\n margin: '30px',\r\n [breakpoints.up('md')]: {\r\n width: '50%',\r\n margin: '3vh'\r\n }\r\n }\r\n}))\r\n\r\nconst currentYear = new Date().getFullYear()\r\n\r\nconst AgeGate = () => {\r\n const { t } = useTranslation()\r\n const data = useStaticQuery(graphql`\r\n {\r\n site {\r\n siteMetadata { title }\r\n }\r\n rating: wpSiteRating(ratingACF: { locales: { in: [\"en-us\"] } }){\r\n ratingACF { ageGate }\r\n }\r\n }\r\n `)\r\n\r\n const ageGate = get(data, 'rating.ratingACF.ageGate')\r\n const minAge = ageGate || parseInt(ageGate)\r\n const cookieDateOfBirth = Cookie.get('dob')\r\n let cookieAge = getAge(cookieDateOfBirth)\r\n\r\n if (cookieDateOfBirth) {\r\n let [_year, _month, _day] = unFormatDate(cookieDateOfBirth)\r\n cookieAge = getAge(new Date(_year, _month, _day))\r\n }\r\n\r\n const showAgeGate = !cookieAge || cookieAge < minAge\r\n\r\n const [isFormDirty, setIsFormDirty] = useState(false)\r\n const [open, setOpen] = useState(showAgeGate)\r\n const [blocked, setBlocked] = useState(cookieAge < minAge)\r\n const [day, setDay] = useState(1)\r\n const [month, setMonth] = useState(1)\r\n const [year, setYear] = useState(currentYear)\r\n const numOfDaysInMonth = moment(`${year}-${month}`, 'YYYY-MM').daysInMonth()\r\n\r\n const classes = useStyles()\r\n const isSamsung = isSamsungInternet()\r\n\r\n if (!minAge) {\r\n return null\r\n }\r\n\r\n const handleEntered = () => {\r\n disableBodyScroll()\r\n }\r\n\r\n const handleExiting = () => {\r\n enableBodyScroll()\r\n getFirstFocusableChild(document)\r\n }\r\n\r\n const handleClose = (e) => {\r\n e.preventDefault()\r\n\r\n const dayInt = parseInt(day)\r\n const monthInt = parseInt(month)\r\n const yearInt = parseInt(year)\r\n\r\n if (yearInt === currentYear) {\r\n setIsFormDirty(true)\r\n return\r\n }\r\n\r\n const dateOfBirth = new Date(yearInt, monthInt, dayInt)\r\n const age = getAge(dateOfBirth)\r\n const isUnderaged = age < minAge\r\n const expires = isUnderaged ? { expires: 1 } : { expires: 365 }\r\n Cookie.set('dob', formatDate(yearInt, monthInt, dayInt), expires)\r\n\r\n setBlocked(isUnderaged)\r\n setOpen(isUnderaged)\r\n }\r\n\r\n const roleProps = blocked ? { role: 'alert' } : ''\r\n\r\n useEffect(() => {\r\n const daysInMonth = moment(`${year}-${month}`, 'YYYY-MM').daysInMonth()\r\n\r\n if (day > daysInMonth) {\r\n setDay(1)\r\n }\r\n\r\n setIsFormDirty(false)\r\n }, [month, day, year])\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nfunction getAge(inputDate) {\r\n var today = new Date()\r\n var birthDate = new Date(inputDate)\r\n var age = today.getFullYear() - birthDate.getFullYear()\r\n var m = today.getMonth() - birthDate.getMonth()\r\n\r\n if (m < 0 || (m === 0 && today.getDate() < birthDate.getDate())) {\r\n age--\r\n }\r\n return age\r\n}\r\n\r\nfunction unFormatDate(inputString) {\r\n const [year, month, day] = inputString.split('-')\r\n return [year, month, day]\r\n}\r\n\r\nfunction formatDate(year, month, day) {\r\n if (month.length < 2) month = '0' + month\r\n if (day.length < 2) day = '0' + day\r\n\r\n return [year, month, day].join('-')\r\n}\r\n\r\nfunction daysInMonth(m, y) {\r\n // m is 0 indexed: 0-11\r\n switch (m) {\r\n case 1:\r\n return (y % 4 == 0 && y % 100) || y % 400 == 0 ? 29 : 28\r\n case 8:\r\n case 3:\r\n case 5:\r\n case 10:\r\n return 30\r\n default:\r\n return 31\r\n }\r\n}\r\n\r\nexport default AgeGate\r\n","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1NDQiIGhlaWdodD0iMTM0LjEyMyIgdmlld0JveD0iMCAwIDU0NCAxMzQuMTIzIj4NCiAgPGcgaWQ9Ikdyb3VwXzE1NDkwIiBkYXRhLW5hbWU9Ikdyb3VwIDE1NDkwIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLjAwMSAwLjAwNCkiPg0KICAgIDxnIGlkPSJHcm91cF8xNTQ0NSIgZGF0YS1uYW1lPSJHcm91cCAxNTQ0NSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTAuMDAxIC0wLjAwNCkiPg0KICAgICAgPGcgaWQ9Ikdyb3VwXzE1NDQ0IiBkYXRhLW5hbWU9Ikdyb3VwIDE1NDQ0Ij4NCiAgICAgICAgPHBhdGggaWQ9IlBhdGhfMTUxODU3IiBkYXRhLW5hbWU9IlBhdGggMTUxODU3IiBkPSJNOTcuOSw1My4wNHYtMjUuOEgzNS43MzNMNzUuNDcxLDM4LjNWNTAuNDc2SDIyLjQzM1YxMy42MjJIOTcuOVYxMC45Qzk3LjktLjE1OCw4MS41NiwwLDgwLjYsMCwzOC4xMzYsMCwzMS44ODcuMTYyLDE3LjYyNiwwLDguNDkzLS4xNTgsMCwzLjA0NywwLDExLjIxOVY1Mi44OGMtLjE2LDEwLjA5NSwxNy45NDYsMTAuOSwxOC4xMDcsMTAuOUg4MC4yNzhDOTguMjI1LDYzLjkzNiw5Ny45LDU3LjA0Niw5Ny45LDUzLjA0Wm05OC44NjUtMi41NjRIMTMyLjM1NVYzOS4yNkgxOTFWMjUuNjRIMTMyLjM1NVYxMy42MjJoNjMuNDUzVjBIMTA5Ljc2MlY2My45MzZoODcuMDA4Wk0zNDIuOSwyNS42NFYxMy42MjJoNDQuNTQ1VjI1LjY0SDM0Mi45YzEyLjgxOSw4LjY1Myw1MS4xMTUsMzguMyw1MS4xMTUsMzguM2gyOS4xNjNMMzg4LjQxMSwzNy4xNzdoNy4wNWMuMzIsMCwxNC40MjEsMCwxNC40MjEtOS42MTRWMTIuODIxQzQwOS44ODIuMzIzLDM5NS4xNDEsMCwzOTQuODIsMEgzMjAuNDcxVjYzLjkzNkgzNDIuOVptMTUyLjM4NCw4MS43Mmg3LjA1Yy4zMiwwLDE0LjQyMSwwLDE0LjQyMS05LjYxNFY4M2MwLTEyLjUtMTQuNzQyLTEyLjgxOS0xNS4wNjItMTIuODE5SDQyNy4xODh2NjMuOTM0aDIyLjU5M1Y4My42NDVoNDQuNTQ1Vjk1LjgyM0g0NDkuNzgxYzEyLjgxOSw4LjY1Myw1MS4xMTUsMzguMyw1MS4xMTUsMzguM2gyOS4xNjNabTQuMzI2LTQzLjQyNGMxMy43OCwwLDE2Ljk4NS01LjkyOSwxNi45ODUtMTEuMDU2VjM1LjA5NGMwLTMuMzY1LS40ODEtOS40NTQtMTIuMzM4LTkuNDU0SDQ0Ny4zNzdWMTMuNjIySDUxNi42VjkuNjE2QzUxNi42LDQuMzI4LDUxMS45NTIsMCw0OTkuMjk0LDBINDQzLjg1MkM0MjUuMjY1LDAsNDI0LjMsNy44NTQsNDI0LjMsMTIuNjYxVjMxLjg4OWMwLDMuMDQ0LDEuNzYzLDcuMzcxLDEwLjI1NSw3LjM3MWg1OS4xMjdWNTAuNDc2SDQyNC4zdjIuMDgzYzAsNS42MDgsMS40NDIsMTEuNTM3LDEyLjk3OSwxMS41MzdoNjIuMzMyWk0xMjUuNDY1LDg5LjA5M0g5NS45ODFjLS4xNiwwLTguMDEyLS4xNi04LjAxMiw1LjEyOHYxOS4wNjhjMCw1LjI4OCw3Ljg1Miw1LjEyOCw4LjAxMiw1LjEyOGgyOS40ODNjLjE2LDAsOC44MTMuMzIsOC44MTMtNS4yODhWOTQuNTQxQzEzNC4xMTcsODguMjkyLDEyNS40NjUsODkuMDkzLDEyNS40NjUsODkuMDkzWm0tMS4yODIsMjMuMjM0SDk3Ljc0NFY5NS4zNDJoMjYuNnYxNi45ODVabTE3Ljc4Niw2LjA4OWgxMC4wOTVWMTA2Ljg3OWgyNS45NThWMTAwLjYzSDE1Mi4wNjRWOTUuMzQyaDI4LjY4MlY4OS4wOTNIMTQxLjk2OVpNMjU4LjYyLDE4LjEwOSwyNzMuMiwzNy41SDI1MC4yODhsLTkuOTM1LDEzLjYyaDQyLjNsOS42MTQsMTIuODE5aDI1LjE1N0wyNjguMDc0LDBIMjUwLjc2OUwyMDAuNzc1LDYzLjkzNmgyNVptOTguODY1LDUyLjA3Ni00OS44MzMsNjMuOTM0aDI1TDM2NS41LDg4LjI5MmwxNC43NDIsMTkuMzg4SDM1Ny4zMjVsLTkuOTM1LDEzLjYyaDQyLjNsOS42MTQsMTIuODE5aDI1LjE1N0wzNzQuOTUxLDcwLjE4NUgzNTcuNDg1Wm0tNDQuNTQ1LDAtMjkuMTYzLDM5LjU3OEwyNjAuMzgzLDcyLjc0OWgtMjVsMTEuNTM3LDE2LjgyNS0xMS41MzcsMjAuNTEtMzAuNzY1LTM5LjlIMTgwLjI2NWw0OS41MTMsNjMuOTM0aDExLjIxNmwxNS44NjMtMjguNjgyLjE2LjE2LDE3Ljk0NiwyOC41MjJoMTIuMDE4bDQ5LjUxMy02My45MzRIMzEyLjk0WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC4wMDEgMC4wMDQpIiBmaWxsPSIjZmZmIi8+DQogICAgICA8L2c+DQogICAgPC9nPg0KICAgIDxnIGlkPSJHcm91cF8xNTQ0NiIgZGF0YS1uYW1lPSJHcm91cCAxNTQ0NiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNTMyLjk0MyAxMjMuMjIzKSI+DQogICAgICA8cGF0aCBpZD0iUGF0aF8xNTE4NTgiIGRhdGEtbmFtZT0iUGF0aCAxNTE4NTgiIGQ9Ik0zMzguMjA4LDc2LjlhNS4zMDYsNS4zMDYsMCwwLDEsNS40NDgsNS40NDgsNS41MjksNS41MjksMCwwLDEtMTEuMDU2LDBBNS42NDYsNS42NDYsMCwwLDEsMzM4LjIwOCw3Ni45Wm0wLC45NjFhNC41NjcsNC41NjcsMCwxLDAsNC40ODcsNC40ODdBNC4zODEsNC4zODEsMCwwLDAsMzM4LjIwOCw3Ny44NjFabS0xLjEyMiw3LjY5MWgtLjk2MVY3OS4zaDIuNGMxLjQ0MiwwLDIuMjQzLjQ4MSwyLjI0MywxLjc2M2ExLjY0NywxLjY0NywwLDAsMS0xLjYsMS43NjNsMS43NjMsMi43MjRoLTEuMTIybC0xLjYtMi43MjRoLTEuMTIydjIuNzI0Wm0wLTMuNTI1aDEuMTIyYzEuMTIyLDAsMS42LS4zMiwxLjYtLjk2MXMtLjMyLS45NjEtMS40NDItLjk2MWgtMS4yODJaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMzMyLjYgLTc2LjkpIiBmaWxsPSIjZmZmIi8+DQogICAgPC9nPg0KICA8L2c+DQo8L3N2Zz4NCg==\"","import React, { useEffect } from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport get from 'tcweb-material-components/core/poly/get'\r\nimport { makeStyles, useTheme } from '@material-ui/styles'\r\nimport Box from 'tcweb-material-components/core/box'\r\nimport classnames from 'classnames'\r\n\r\nimport Header from '../header'\r\nimport Footer from '../footer'\r\nimport AgeGate from '../modal/ageGate'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n display: 'flex',\r\n minHeight: '100vh',\r\n flexDirection: 'column',\r\n [theme.breakpoints.down('sm')]: { paddingBottom: '4em' }\r\n },\r\n vetricalGuttersPage: {\r\n paddingTop: '50px',\r\n paddingBottom: '50px',\r\n [theme.breakpoints.up('md')]: {\r\n paddingTop: '100px',\r\n paddingBottom: '100px'\r\n }\r\n },\r\n main: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n flex: '1 1 auto'\r\n },\r\n fullPageWidth: {\r\n marginLeft: -theme.gutters.page.xs,\r\n width: `calc(100% + (${theme.gutters.page.xs} * 2))`,\r\n maxWidth: `calc(100% + (${theme.gutters.page.xs} * 2))`,\r\n\r\n [theme.breakpoints.only('sm')]: {\r\n marginLeft: -theme.gutters.page.md,\r\n width: `calc(100% + (${theme.gutters.page.md} * 2))`,\r\n maxWidth: `calc(100% + (${theme.gutters.page.md} * 2))`\r\n },\r\n [theme.breakpoints.up('md')]: {\r\n marginLeft: -theme.gutters.page.lg,\r\n width: `calc(100% + (${theme.gutters.page.lg} * 2))`,\r\n maxWidth: `calc(100% + (${theme.gutters.page.lg} * 2))`\r\n }\r\n },\r\n postPageWidth: {\r\n paddingRight: theme.gutters.page.xs,\r\n paddingLeft: theme.gutters.page.xs,\r\n [theme.breakpoints.only('sm')]: {\r\n paddingRight: theme.gutters.page.md,\r\n paddingLeft: theme.gutters.page.md\r\n },\r\n [theme.breakpoints.up('md')]: {\r\n padding: 0,\r\n margin: 'auto auto',\r\n width: '50%'\r\n },\r\n '& .alignfull': {\r\n [theme.breakpoints.up('md')]: {\r\n marginLeft: '-50%',\r\n width: 'calc(100% + 100%)',\r\n maxWidth: 'calc(100% + 100%)'\r\n }\r\n },\r\n '& .alignwide': {\r\n [theme.breakpoints.up('md')]: {\r\n marginLeft: `calc(-50% + ${theme.gutters.page.lg})`,\r\n width: `calc(100% + (100%) - 2*${theme.gutters.page.lg})`,\r\n maxWidth: `calc(100% + (100%) - 2*${theme.gutters.page.lg})`\r\n }\r\n }\r\n }\r\n}))\r\n\r\nconst LayoutContent = (props) => {\r\n const { className, children, pageWidth, setBackgroundImage, mainClass, hasVerticalGutters, pageContext, enableFacebookApi } = props\r\n const classes = useStyles(props)\r\n const theme = useTheme()\r\n const pageClassName = get(pageContext, 'className')\r\n\r\n if (typeof window !== 'undefined') {\r\n document.body.style.setProperty('--bg-color', `${theme.palette.background.default}`)\r\n }\r\n\r\n useEffect(() => {\r\n if (enableFacebookApi && typeof FB === 'undefined') {\r\n window.fbAsyncInit = function () {\r\n FB.init({\r\n appId: process.env.GATSBY_FACEBOOK_APP_ID,\r\n status: true,\r\n xfbml: true,\r\n version: 'v7.0'\r\n })\r\n };\r\n\r\n (function(d, s, id){\r\n var js, fjs = d.getElementsByTagName(s)[0];\r\n if (d.getElementById(id)) {return;}\r\n js = d.createElement(s); js.id = id;\r\n js.src = \"https://connect.facebook.net/en_US/sdk.js\";\r\n fjs.parentNode.insertBefore(js, fjs);\r\n }(document, 'script', 'facebook-jssdk'));\r\n }\r\n }, [])\r\n\r\n return (\r\n \r\n \r\n\r\n \r\n {children}\r\n \r\n\r\n \r\n\r\n \r\n \r\n )\r\n}\r\n\r\nLayoutContent.defaultProps = {\r\n pageWidth: 'normal',\r\n setBackgroundImage: false\r\n}\r\n\r\nLayoutContent.propTypes = {\r\n className: PropTypes.string,\r\n children: PropTypes.node.isRequired,\r\n pageWidth: PropTypes.oneOf(['normal', 'full', 'post']),\r\n setBackgroundImage: PropTypes.bool\r\n}\r\n\r\nexport default LayoutContent\r\n","export default __webpack_public_path__ + \"static/gearsOfWar-full-15e1eed8431fe44d95ab855aaa789d5f.svg\";","import { useState, useEffect } from 'react'\r\nimport { useTheme } from '@material-ui/core/styles'\r\nimport useMediaQuery from '@material-ui/core/useMediaQuery'\r\n\r\nimport gearsOfWarLogoWhite from '../assets/images/logos/gearsOfWar-white.svg'\r\nimport gearsOfWarLogoBlack from '../assets/images/logos/gearsOfWar.svg'\r\n\r\nimport gearsOfWarLogoFullWhite from '../assets/images/logos/gearsOfWar-full-white.svg'\r\nimport gearsOfWarLogoFullBlack from '../assets/images/logos/gearsOfWar-full.svg'\r\n\r\nimport theCoalitionLogoFullWhite from '../assets/images/logos/theCoalition-full-white.svg'\r\nimport theCoalitionLogoFullBlack from '../assets/images/logos/theCoalition-full.svg'\r\n\r\nimport xboxLiveWhite from '../assets/images/logos/xboxLive-white.svg'\r\nimport xboxLiveBlack from '../assets/images/logos/xboxLive.svg'\r\n\r\n/**\r\n * Logo Names:\r\n *\r\n * Gears of War: gearsOfWar / gearsOfWarFull (with omen)\r\n * The Coalition Studio: theCoalition\r\n *\r\n * Theme: light/dark\r\n */\r\n\r\nconst LOGOS = {\r\n gearsOfWar: { logoWhite: gearsOfWarLogoWhite, logoBlack: gearsOfWarLogoBlack },\r\n gearsOfWarFull: { logoWhite: gearsOfWarLogoFullWhite, logoBlack: gearsOfWarLogoFullBlack },\r\n theCoalition: {\r\n logoWhite: 'https://cdn.gearsofwar.com/gearsofwar/sites/9/2020/08/theCoalition-white-5f2b1be4bddeb.svg',\r\n logoBlack: 'https://cdn.gearsofwar.com/gearsofwar/sites/9/2020/08/theCoalition-5f2b1be957e4c.svg'\r\n },\r\n theCoalitionFull: { logoWhite: theCoalitionLogoFullWhite, logoBlack: theCoalitionLogoFullBlack },\r\n xboxGameStudios: {\r\n logoWhite: 'https://cdn.gearsofwar.com/gearsofwar/sites/9/2020/08/XboxGameStudios_2020_hrz_Wht-5f2b1addc7aa9.svg',\r\n logoBlack: 'https://cdn.gearsofwar.com/gearsofwar/sites/9/2020/08/XboxGameStudios_2020_hrz_Grn-5f2b1ad431c06.svg'\r\n },\r\n xboxLive: { logoWhite: xboxLiveWhite, logoBlack: xboxLiveBlack },\r\n splashDamage: {\r\n logoWhite: 'https://cdn.gearsofwar.com/gearsofwar/sites/9/2020/08/splashDamage-white-5f2c2964c0bc7.svg',\r\n logoBlack: 'https://cdn.gearsofwar.com/gearsofwar/sites/9/2020/08/splashDamage-5f2c295f7b2dc.svg'\r\n }\r\n}\r\n\r\nconst DEFAULT_OPTIONS = {\r\n enableContrast: true,\r\n theme: null\r\n}\r\n\r\nconst useLogo = (name = 'webstarter', options = DEFAULT_OPTIONS) => {\r\n const currentTheme = useTheme()\r\n const _options = { ...DEFAULT_OPTIONS, ...options }\r\n const _theme = _options.theme || currentTheme.palette.type\r\n const defaultLogo = _theme === 'light' ? LOGOS[name].logoBlack : LOGOS[name].logoWhite\r\n const [logo, setLogo] = useState(defaultLogo)\r\n const isHighContrast = useMediaQuery(currentTheme.accessibility.highContrast.mediaQuery('active'))\r\n const isHighContrastWB = useMediaQuery(currentTheme.accessibility.highContrast.prefersDark)\r\n const isHighContrastBW = useMediaQuery(currentTheme.accessibility.highContrast.prefersLight)\r\n\r\n useEffect(() => {\r\n if (_theme === 'light') {\r\n if ((isHighContrastWB || isHighContrast) && !isHighContrastBW && _options.enableContrast) {\r\n setLogo(LOGOS[name].logoWhite)\r\n } else {\r\n setLogo(LOGOS[name].logoBlack)\r\n }\r\n } else {\r\n if (isHighContrastBW && _options.enableContrast) {\r\n setLogo(LOGOS[name].logoBlack)\r\n } else {\r\n setLogo(LOGOS[name].logoWhite)\r\n }\r\n }\r\n }, [isHighContrastBW, isHighContrastWB, isHighContrast, _options.enableContrast, name, _theme])\r\n\r\n return logo\r\n}\r\n\r\nexport default useLogo\r\n","export default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyNC4wLjIsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4yIiBiYXNlUHJvZmlsZT0idGlueSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiDQoJIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgNTY3LjQgMzYuNSIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8ZyBpZD0iTGF5ZXJfMl8xXyI+DQo8L2c+DQo8cGF0aCBpZD0iTGF5ZXJfMV8xXyIgZmlsbD0iI0ZGRkZGRiIgZD0iTTI5NC41LDUuNHYyLjNoLTExLjhIMjU1YzAsMS4yLDAsNi45LDAsNi45aDMyLjVjNi43LDAsNywzLjUsNyw1LjR2MTAuMQ0KCWMwLDIuOS0xLjgsNi4zLTkuNyw2LjNoLTM1LjZjLTYuNiwwLTcuNC0zLjMtNy40LTYuNXYtMS4xaDExLjhoMjcuN2MwLTEuMSwwLTYuNCwwLTYuNGgtMzMuN2MtNC44LDAtNS44LTIuNS01LjgtNC4yVjcuMw0KCWMwLTIuOCwwLjUtNy4yLDExLjEtNy4yaDMxLjdDMjkxLjgsMC4xLDI5NC41LDIuNSwyOTQuNSw1LjR6IE0yMjUuNCwyMS4yYzAuMSwwLDguMiwwLDguMi01LjVWNy4zYzAtNy4xLTguNC03LjMtOC41LTcuM2gtNDIuNA0KCXYzNi40aDEyLjljMCwwLDAtMTguMywwLTIxLjhWNy43aDI1LjN2Ni45aC0yNS4zYzcuMyw1LDI5LjEsMjEuOCwyOS4xLDIxLjhoMTYuNmwtMTkuOS0xNS4ySDIyNS40eiBNMTQzLDAuMWwtMjguNSwzNi40aDE0LjINCglsMTguOC0yNi4xbDguNCwxMS4xaC0xMy4xbC01LjYsNy43aDI0LjFsNS41LDcuM2gxNC4zTDE1Mi45LDAuMUgxNDN6IE03NS42LDIyLjRjOCwwLDMzLjMsMCwzMy4zLDB2LTcuN2MwLDAtMjUuNiwwLTMzLjQsMFY3LjgNCgljMy40LDAsMzYuMiwwLDM2LjIsMFYwLjFoLTQ5djM2LjRoNDkuNnYtNy43YzAsMC0zMy4zLDAtMzYuNywwQzc1LjYsMjguOCw3NS42LDIyLjQsNzUuNiwyMi40eiBNNTUuNywxNS42SDIwLjRMNDMsMjEuOXY3DQoJYzAsMC0yNywwLTMwLjIsMFY3LjhjMTAuNywwLDQzLDAsNDMsMFY2LjNjMC02LjMtOS4zLTYuMi05LjktNi4yYy0yNC4yLDAtMjcuOCwwLjEtMzUuOSwwQzQuOCwwLDAsMS45LDAsNi41djIzLjgNCgljLTAuMSw1LjcsMTAuMiw2LjIsMTAuMyw2LjJoMzUuNGMxMC4yLDAsMTAtMy45LDEwLTYuMlYxNS42eiBNNTQzLjYsMjEuMmMwLjEsMCw4LjIsMCw4LjItNS41VjcuM2MwLTcuMS04LjQtNy4zLTguNS03LjNoLTQyLjQNCgl2MzYuNGgxMi45YzAsMCwwLTE4LjMsMC0yMS44VjcuN2gyNS4zdjYuOWgtMjUuM2M3LjMsNSwyOS4xLDIxLjgsMjkuMSwyMS44aDE2LjVsLTE5LjgtMTUuMkg1NDMuNnogTTMzOC4zLDI3LjZoNS43DQoJYzAsMCwwLTUuMiwwLTYuNmMzLjYsMCwxNC44LDAsMTQuOCwwdi0zLjZIMzQ0di0zaDE2LjR2LTMuNmgtMjIuMVYyNy42eiBNNDM1LjcsMEw0MzUuNywwbC0xNi42LDIyLjZMNDA1LjcsMS41aC0xNC4ybDYuNiw5LjYNCglsLTYuNiwxMS43TDM3NCwwLjFoLTEzLjhsMjguMywzNi40aDYuNGw5LTE2LjRsMC4xLDAuMWwxMC4yLDE2LjJoNi44TDQ0OS4yLDBINDM1Ljd6IE00NjEuMSwwLjFsLTI4LjUsMzYuNGgxNC4ybDE4LjgtMjYuMQ0KCWw4LjQsMTEuMWgtMTMuMWwtNS42LDcuN2gyNC4xbDUuNSw3LjNoMTQuM0w0NzEsMC4xSDQ2MS4xeiBNMzMzLjgsMTMuOXYxMC42YzAsMy4xLTQuOSwzLTUsM0gzMTJjLTAuMSwwLTQuNiwwLjEtNC42LTIuOVYxMy43DQoJYzAtMyw0LjUtMi45LDQuNi0yLjloMTYuOEMzMjguOSwxMC44LDMzMy44LDEwLjQsMzMzLjgsMTMuOXogTTMyOC4yLDE0LjRoLTE1LjFWMjRoMTUuMVYxNC40eiBNNTY3LjQsMzMuNGMwLDEuOC0xLjQsMy4xLTMuMSwzLjENCgljLTEuNywwLTMuMi0xLjMtMy4yLTMuMXMxLjUtMy4xLDMuMi0zLjFTNTY3LjQsMzEuNiw1NjcuNCwzMy40eiBNNTY2LjgsMzMuNGMwLTEuNS0xLjEtMi42LTIuNS0yLjZzLTIuNiwxLjEtMi42LDIuNg0KCXMxLjEsMi42LDIuNiwyLjZDNTY1LjcsMzYsNTY2LjgsMzQuOSw1NjYuOCwzMy40eiBNNTY0LjgsMzMuNmwxLDEuNmgtMC42bC0xLTEuNmgtMC42djEuNmwwLDBINTYzdi0zLjZoMS40YzAuOSwwLDEuMywwLjMsMS4zLDENCglDNTY1LjcsMzMuMiw1NjUuMywzMy41LDU2NC44LDMzLjZ6IE01NjQuMywzMy4yYzAuNywwLDAuOS0wLjIsMC45LTAuNmMwLTAuMy0wLjItMC41LTAuOC0wLjVoLTAuN3YxLjFINTY0LjN6Ii8+DQo8L3N2Zz4NCg==\"","export default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyNC4wLjIsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCA1NjcuNCAzNi41IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA1NjcuNCAzNi41OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8ZyBpZD0iTGF5ZXJfMl8xXyI+DQo8L2c+DQo8cGF0aCBpZD0iTGF5ZXJfMV8xXyIgZD0iTTI5NC41LDUuNHYyLjNoLTExLjhIMjU1YzAsMS4yLDAsNi45LDAsNi45aDMyLjVjNi43LDAsNywzLjUsNyw1LjR2MTAuMWMwLDIuOS0xLjgsNi4zLTkuNyw2LjNoLTM1LjYNCgljLTYuNiwwLTcuNC0zLjMtNy40LTYuNXYtMS4xaDExLjhoMjcuN2MwLTEuMSwwLTYuNCwwLTYuNGgtMzMuN2MtNC44LDAtNS44LTIuNS01LjgtNC4yVjcuM2MwLTIuOCwwLjUtNy4yLDExLjEtNy4yaDMxLjcNCglDMjkxLjgsMC4xLDI5NC41LDIuNSwyOTQuNSw1LjR6IE0yMjUuNCwyMS4yYzAuMSwwLDguMiwwLDguMi01LjVWNy4zYzAtNy4xLTguNC03LjMtOC41LTcuM2gtNDIuNHYzNi40aDEyLjljMCwwLDAtMTguMywwLTIxLjhWNy43DQoJaDI1LjN2Ni45aC0yNS4zYzcuMyw1LDI5LjEsMjEuOCwyOS4xLDIxLjhoMTYuNmwtMTkuOS0xNS4ySDIyNS40eiBNMTQzLDAuMWwtMjguNSwzNi40aDE0LjJsMTguOC0yNi4xbDguNCwxMS4xaC0xMy4xbC01LjYsNy43DQoJaDI0LjFsNS41LDcuM2gxNC4zTDE1Mi45LDAuMUgxNDN6IE03NS42LDIyLjRjOCwwLDMzLjMsMCwzMy4zLDB2LTcuN2MwLDAtMjUuNiwwLTMzLjQsMFY3LjhjMy40LDAsMzYuMiwwLDM2LjIsMFYwLjFoLTQ5djM2LjRoNDkuNg0KCXYtNy43YzAsMC0zMy4zLDAtMzYuNywwVjIyLjR6IE01NS43LDE1LjZIMjAuNEw0MywyMS45djdjMCwwLTI3LDAtMzAuMiwwVjcuOGMxMC43LDAsNDMsMCw0MywwVjYuM2MwLTYuMy05LjMtNi4yLTkuOS02LjINCgljLTI0LjIsMC0yNy44LDAuMS0zNS45LDBDNC44LDAsMCwxLjksMCw2LjV2MjMuOGMtMC4xLDUuNywxMC4yLDYuMiwxMC4zLDYuMmgzNS40YzEwLjIsMCwxMC0zLjksMTAtNi4yVjE1LjZ6IE01NDMuNiwyMS4yDQoJYzAuMSwwLDguMiwwLDguMi01LjVWNy4zYzAtNy4xLTguNC03LjMtOC41LTcuM2gtNDIuNHYzNi40aDEyLjljMCwwLDAtMTguMywwLTIxLjhWNy43aDI1LjN2Ni45aC0yNS4zYzcuMyw1LDI5LjEsMjEuOCwyOS4xLDIxLjgNCgloMTYuNWwtMTkuOC0xNS4ySDU0My42eiBNMzM4LjMsMjcuNmg1LjdjMCwwLDAtNS4yLDAtNi42YzMuNiwwLDE0LjgsMCwxNC44LDB2LTMuNkgzNDR2LTNoMTYuNHYtMy42aC0yMi4xVjI3LjZ6IE00MzUuNywwTDQzNS43LDANCglsLTE2LjYsMjIuNkw0MDUuNywxLjVoLTE0LjJsNi42LDkuNmwtNi42LDExLjdMMzc0LDAuMWgtMTMuOGwyOC4zLDM2LjRoNi40bDktMTYuNGwwLjEsMC4xbDEwLjIsMTYuMmg2LjhMNDQ5LjIsMEg0MzUuN3oNCgkgTTQ2MS4xLDAuMWwtMjguNSwzNi40aDE0LjJsMTguOC0yNi4xbDguNCwxMS4xaC0xMy4xbC01LjYsNy43aDI0LjFsNS41LDcuM2gxNC4zTDQ3MSwwLjFINDYxLjF6IE0zMzMuOCwxMy45djEwLjZjMCwzLjEtNC45LDMtNSwzDQoJSDMxMmMtMC4xLDAtNC42LDAuMS00LjYtMi45VjEzLjdjMC0zLDQuNS0yLjksNC42LTIuOWgxNi44QzMyOC45LDEwLjgsMzMzLjgsMTAuNCwzMzMuOCwxMy45eiBNMzI4LjIsMTQuNGgtMTUuMVYyNGgxNS4xVjE0LjR6DQoJIE01NjcuNCwzMy40YzAsMS44LTEuNCwzLjEtMy4xLDMuMWMtMS43LDAtMy4yLTEuMy0zLjItMy4xYzAtMS44LDEuNS0zLjEsMy4yLTMuMVM1NjcuNCwzMS42LDU2Ny40LDMzLjR6IE01NjYuOCwzMy40DQoJYzAtMS41LTEuMS0yLjYtMi41LTIuNmMtMS40LDAtMi42LDEuMS0yLjYsMi42czEuMSwyLjYsMi42LDIuNkM1NjUuNywzNiw1NjYuOCwzNC45LDU2Ni44LDMzLjR6IE01NjQuOCwzMy42bDEsMS42aC0wLjZsLTEtMS42DQoJaC0wLjZ2MS42aDBINTYzdi0zLjZoMS40YzAuOSwwLDEuMywwLjMsMS4zLDFDNTY1LjcsMzMuMiw1NjUuMywzMy41LDU2NC44LDMzLjZ6IE01NjQuMywzMy4yYzAuNywwLDAuOS0wLjIsMC45LTAuNg0KCWMwLTAuMy0wLjItMC41LTAuOC0wLjVoLTAuN3YxLjFINTY0LjN6Ii8+DQo8L3N2Zz4NCg==\"","export default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyNC4wLjEsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCA0ODYuMiAzODkuNCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDg2LjIgMzg5LjQ7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+DQoJLnN0MHtmaWxsOiNGRkZGRkY7fQ0KPC9zdHlsZT4NCjxnPg0KCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik00ODIuNSwzNTkuM2MwLjYtMC4xLDEtMC41LDEtMS4yYzAtMC40LTAuMi0wLjgtMC41LTFzLTAuOC0wLjQtMS42LTAuNGMtMC42LDAtMSwwLTEuNCwwLjF2NWgwLjh2LTIuM2gwLjYNCgkJYzAuNywwLDEsMC4zLDEuMSwwLjljMC4xLDAuNywwLjIsMS4xLDAuMywxLjNoMC44Yy0wLjEtMC4xLTAuMi0wLjQtMC4zLTEuMkM0ODMuMiwzNTkuOCw0ODIuOSwzNTkuNCw0ODIuNSwzNTkuM3ogTTQ4MS40LDM1OWgtMC42DQoJCXYtMS44YzAuMiwwLDAuMywwLDAuNiwwYzAuOSwwLDEuMiwwLjUsMS4yLDAuOUM0ODIuNiwzNTguOCw0ODIuMSwzNTksNDgxLjQsMzU5eiIvPg0KCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik00ODEuNywzNTQuN2MtMi41LDAtNC41LDItNC42LDQuNWMwLDIuNSwyLDQuNSw0LjUsNC41czQuNS0xLjksNC41LTQuNUM0ODYuMSwzNTYuNyw0ODQuMiwzNTQuNyw0ODEuNywzNTQuN3oNCgkJIE00ODEuNywzNjNjLTIsMC0zLjYtMS42LTMuNi0zLjhjMC0yLjEsMS42LTMuOCwzLjYtMy44czMuNiwxLjcsMy42LDMuOEM0ODUuMywzNjEuMyw0ODMuNywzNjMsNDgxLjcsMzYzeiIvPg0KCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0yMjYuMyw1NC43VjM2Yy0xNS40LDAuNy0zMCw1LTQyLjcsMTIuM2wtOC44LTE0LjFjMTUuMy04LjgsMzIuOC0xNC4xLDUxLjYtMTQuOGMwLDAtNDEuNi0yMi04NS43LDE2DQoJCWwzOC43LDM4LjdDMTkxLjksNjIuOCwyMDguMyw1NS42LDIyNi4zLDU0Ljd6Ii8+DQoJPHBhdGggY2xhc3M9InN0MCIgZD0iTTE3NC4zLDc5bC0xMy4xLTEzLjFjLTEwLjYsMTEuNC0xNy44LDI0LjgtMjEuNywzOC45bC0xNi4yLTMuOGM0LjUtMTcuMSwxMy4zLTMzLjIsMjYuMS00Ni45DQoJCWMwLDAtNDUsMTMuOC00OS4zLDcxLjloNTQuOEMxNTUuNywxMDkuMSwxNjIuMiw5Mi40LDE3NC4zLDc5eiIvPg0KCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0xNzQuMywxODAuMWMtMTEuMy0xMi41LTE4LjUtMjguOS0xOS41LTQ3aC0xOC42YzAuNiwxNS41LDQuOSwzMC4xLDEyLjIsNDIuOGwtMTQuMSw4LjgNCgkJYy04LjgtMTUuMy0xNC4xLTMyLjktMTQuNy01MS42YzAsMC0yMiw0MS42LDE2LDg1LjdMMTc0LjMsMTgwLjF6Ii8+DQoJPHBhdGggY2xhc3M9InN0MCIgZD0iTTIyNi4xLDIwNC42Yy0xNi45LTAuOC0zMy42LTcuMy00Ny0xOS40TDE2NiwxOTguM2MxMS40LDEwLjYsMjQuOCwxNy44LDM4LjksMjEuN2wtMy44LDE2LjINCgkJYy0xNy4xLTQuNi0zMy4yLTEzLjMtNDYuOS0yNi4xYzAsMCwxMy44LDQ1LDcxLjksNDkuM1YyMDQuNnoiLz4NCgk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMjMzLjMsMjA0Ljl2MTguNmMxNS40LTAuOCwzMC01LjEsNDIuNy0xMi4zbDguOCwxNC4xYy0xNS4zLDguOC0zMi45LDE0LjEtNTEuNiwxNC44YzAsMCw0MS42LDIyLDg1LjctMTYNCgkJbC0zOC43LTM4LjdDMjY3LjcsMTk2LjgsMjUxLjMsMjA0LDIzMy4zLDIwNC45eiIvPg0KCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0yODUuMywxODAuM2wxMy4yLDEzLjFjMTAuNS0xMS4zLDE3LjctMjQuNywyMS42LTM4LjhsMTYuMiwzLjhjLTQuNiwxNy0xMy4zLDMzLjItMjYuMSw0Ni45DQoJCWMwLDAsNDUtMTMuOCw0OS4zLTcxLjloLTU0LjhDMzAzLjksMTUwLjMsMjk3LjQsMTY3LDI4NS4zLDE4MC4zeiIvPg0KCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0zMDQuOCwxMjYuMmgxOC42Yy0wLjYtMTUuNC00LjktMzAtMTIuMi00Mi43bDE0LjEtOC44YzguOCwxNS4zLDE0LjEsMzIuOSwxNC43LDUxLjZjMCwwLDIyLTQxLjYtMTYtODUuNw0KCQlsLTM4LjcsMzguN0MyOTYuNyw5MS44LDMwMy45LDEwOC4yLDMwNC44LDEyNi4yeiIvPg0KCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0yOTMuNCw2MWMtMTEuMi0xMC41LTI0LjYtMTcuNy0zOC43LTIxLjZsMy43LTE2LjJjMTcuMSw0LjYsMzMuMiwxMy4yLDQ2LjksMjYuMWMwLDAtMTMuOC00NS03MS45LTQ5LjN2NTQuOA0KCQljMTYuOSwwLjksMzMuNiw3LjMsNDYuOSwxOS40TDI5My40LDYxeiIvPg0KCTxwb2x5Z29uIGNsYXNzPSJzdDAiIHBvaW50cz0iMTgzLjQsMzIyLjggMTg5LjQsMzIyLjggMTg5LjQsMzAzLjYgMTk3LjYsMzAzLjYgMTk3LjYsMjk4LjcgMTc1LjIsMjk4LjcgMTc1LjIsMzAzLjYgMTgzLjQsMzAzLjYgCQ0KCQkiLz4NCgk8cG9seWdvbiBjbGFzcz0ic3QwIiBwb2ludHM9IjI0MS45LDMyMi43IDI0MS45LDI5OC43IDIzNS45LDI5OC43IDIzNS45LDMwOC4yIDIyNC45LDMwOC4yIDIyNC45LDI5OC43IDIxOC45LDI5OC43IDIxOC45LDMyMi43IA0KCQkyMjQuOSwzMjIuNyAyMjQuOSwzMTMgMjM1LjksMzEzIDIzNS45LDMyMi43IAkiLz4NCgk8cG9seWdvbiBjbGFzcz0ic3QwIiBwb2ludHM9IjI4NC4zLDMwMy40IDI4NC4zLDI5OC43IDI2My45LDI5OC43IDI2My45LDMyMi44IDI4NC41LDMyMi44IDI4NC41LDMxOC4xIDI2OS44LDMxOC4xIDI2OS44LDMxMyANCgkJMjgyLjYsMzEzIDI4Mi42LDMwOC4zIDI2OS44LDMwOC4zIDI2OS44LDMwMy40IAkiLz4NCgk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMTksMzgyLjhjLTYuMywwLTEwLjYtNC42LTEwLjYtMTAuMnYtMC4xYzAtNS41LDQuNC0xMC4xLDEwLjYtMTAuMWMzLjcsMCw2LjYsMS40LDkuNCwzLjdsNS4xLTUuMw0KCQljLTMuNC0zLTcuNS01LTE0LjQtNUM3LjgsMzU1LjgsMCwzNjMuNCwwLDM3Mi43czgsMTYuNywxOC43LDE2LjdjNywwLDExLjItMi4yLDE1LTUuOGwtNS4xLTQuNkMyNS44LDM4MS4zLDIzLjIsMzgyLjgsMTksMzgyLjh6Ig0KCQkvPg0KCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik03Ny4xLDM1NS44Yy0xMS4zLDAtMTkuNSw3LjYtMTkuNSwxNi45YzAsOS4yLDguMiwxNi43LDE5LjQsMTYuN2MxMS4zLDAsMTkuNS03LjYsMTkuNS0xNi44di0wLjENCgkJQzk2LjUsMzYzLjMsODguNCwzNTUuOCw3Ny4xLDM1NS44eiBNNzcuMiwzODIuOGMtNi41LDAtMTEuMS00LjYtMTEuMS0xMC4ydi0wLjFjMC01LjUsNC41LTEwLjEsMTEtMTAuMXMxMS4xLDQuNiwxMS4xLDEwLjMNCgkJQzg4LjIsMzc4LjMsODMuNywzODIuOCw3Ny4yLDM4Mi44eiIvPg0KCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0xMzIuNCwzNTYuMWwtMTUuNywzMi44aDguMmwzLjQtNy4zaDE1LjVsMy4zLDcuM2g4LjRsLTE1LjctMzIuOEgxMzIuNHogTTEzMS4xLDM3NS4zbDQuOS0xMC41bDQuOSwxMC41DQoJCUgxMzEuMXoiLz4NCgk8cG9seWdvbiBjbGFzcz0ic3QwIiBwb2ludHM9IjE4OS45LDM1Ni4zIDE4MS45LDM1Ni4zIDE4MS45LDM4OC44IDIwOC4yLDM4OC44IDIwOC4yLDM4Mi4zIDE4OS45LDM4Mi4zIAkiLz4NCgk8cmVjdCB4PSIyMzcuMSIgeT0iMzU2LjMiIGNsYXNzPSJzdDAiIHdpZHRoPSI4LjEiIGhlaWdodD0iMzIuNSIvPg0KCTxwb2x5Z29uIGNsYXNzPSJzdDAiIHBvaW50cz0iMjczLDM2Mi45IDI4NC4xLDM2Mi45IDI4NC4yLDM2Mi45IDI4NC4yLDM4OC44IDI5Mi4zLDM4OC44IDI5Mi4zLDM2Mi45IDMwMy40LDM2Mi45IDMwMy40LDM1Ni4zIA0KCQkyNzMsMzU2LjMgCSIvPg0KCTxyZWN0IHg9IjMzMS40IiB5PSIzNTYuMyIgY2xhc3M9InN0MCIgd2lkdGg9IjguMSIgaGVpZ2h0PSIzMi41Ii8+DQoJPHBhdGggY2xhc3M9InN0MCIgZD0iTTM4NC4zLDM1NS44Yy0xMS4zLDAtMTkuNSw3LjYtMTkuNSwxNi45YzAsOS4yLDguMSwxNi43LDE5LjQsMTYuN3MxOS41LTcuNiwxOS41LTE2Ljh2LTAuMQ0KCQlDNDAzLjcsMzYzLjMsMzk1LjYsMzU1LjgsMzg0LjMsMzU1Ljh6IE0zODQuMywzODIuOGMtNi41LDAtMTEuMS00LjYtMTEuMS0xMC4ydi0wLjFjMC01LjUsNC41LTEwLjEsMTEtMTAuMXMxMS4xLDQuNiwxMS4xLDEwLjMNCgkJQzM5NS4zLDM3OC4zLDM5MC44LDM4Mi44LDM4NC4zLDM4Mi44eiIvPg0KCTxwb2x5Z29uIGNsYXNzPSJzdDAiIHBvaW50cz0iNDUxLjcsMzc2LjMgNDM0LjUsMzU2LjMgNDI3LjEsMzU2LjMgNDI3LDM1Ni4zIDQyNywzODguOSA0MzUsMzg4LjkgNDM1LDM2OC4yIDQ1Mi44LDM4OC44IA0KCQk0NTkuNywzODguOCA0NTkuNywzNTYuMyA0NTEuNywzNTYuMyAJIi8+DQo8L2c+DQo8L3N2Zz4NCg==\"","export default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyNC4wLjEsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCA0ODYuMiAzODkuNCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDg2LjIgMzg5LjQ7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik00ODIuNSwzNTkuM2MwLjYtMC4xLDEtMC41LDEtMS4yYzAtMC40LTAuMi0wLjgtMC41LTFzLTAuOC0wLjQtMS42LTAuNGMtMC42LDAtMSwwLTEuNCwwLjF2NWgwLjh2LTIuM2gwLjYNCgkJYzAuNywwLDEsMC4zLDEuMSwwLjljMC4xLDAuNywwLjIsMS4xLDAuMywxLjNoMC44Yy0wLjEtMC4xLTAuMi0wLjQtMC4zLTEuMkM0ODMuMiwzNTkuOCw0ODIuOSwzNTkuNCw0ODIuNSwzNTkuM3ogTTQ4MS40LDM1OWgtMC42DQoJCXYtMS44YzAuMiwwLDAuMywwLDAuNiwwYzAuOSwwLDEuMiwwLjUsMS4yLDAuOUM0ODIuNiwzNTguOCw0ODIuMSwzNTksNDgxLjQsMzU5eiIvPg0KCTxwYXRoIGQ9Ik00ODEuNywzNTQuN2MtMi41LDAtNC41LDItNC42LDQuNWMwLDIuNSwyLDQuNSw0LjUsNC41czQuNS0xLjksNC41LTQuNUM0ODYuMSwzNTYuNyw0ODQuMiwzNTQuNyw0ODEuNywzNTQuN3ogTTQ4MS43LDM2Mw0KCQljLTIsMC0zLjYtMS42LTMuNi0zLjhjMC0yLjEsMS42LTMuOCwzLjYtMy44czMuNiwxLjcsMy42LDMuOEM0ODUuMywzNjEuMyw0ODMuNywzNjMsNDgxLjcsMzYzeiIvPg0KCTxwYXRoIGQ9Ik0yMjYuMyw1NC43VjM2Yy0xNS40LDAuNy0zMCw1LTQyLjcsMTIuM2wtOC44LTE0LjFjMTUuMy04LjgsMzIuOC0xNC4xLDUxLjYtMTQuOGMwLDAtNDEuNi0yMi04NS43LDE2bDM4LjcsMzguNw0KCQlDMTkxLjksNjIuOCwyMDguMyw1NS42LDIyNi4zLDU0Ljd6Ii8+DQoJPHBhdGggZD0iTTE3NC4zLDc5bC0xMy4xLTEzLjFjLTEwLjYsMTEuNC0xNy44LDI0LjgtMjEuNywzOC45bC0xNi4yLTMuOGM0LjUtMTcuMSwxMy4zLTMzLjIsMjYuMS00Ni45YzAsMC00NSwxMy44LTQ5LjMsNzEuOWg1NC44DQoJCUMxNTUuNywxMDkuMSwxNjIuMiw5Mi40LDE3NC4zLDc5eiIvPg0KCTxwYXRoIGQ9Ik0xNzQuMywxODAuMWMtMTEuMy0xMi41LTE4LjUtMjguOS0xOS41LTQ3aC0xOC42YzAuNiwxNS41LDQuOSwzMC4xLDEyLjIsNDIuOGwtMTQuMSw4LjhjLTguOC0xNS4zLTE0LjEtMzIuOS0xNC43LTUxLjYNCgkJYzAsMC0yMiw0MS42LDE2LDg1LjdMMTc0LjMsMTgwLjF6Ii8+DQoJPHBhdGggZD0iTTIyNi4xLDIwNC42Yy0xNi45LTAuOC0zMy42LTcuMy00Ny0xOS40TDE2NiwxOTguM2MxMS40LDEwLjYsMjQuOCwxNy44LDM4LjksMjEuN2wtMy44LDE2LjINCgkJYy0xNy4xLTQuNi0zMy4yLTEzLjMtNDYuOS0yNi4xYzAsMCwxMy44LDQ1LDcxLjksNDkuM1YyMDQuNnoiLz4NCgk8cGF0aCBkPSJNMjMzLjMsMjA0Ljl2MTguNmMxNS40LTAuOCwzMC01LjEsNDIuNy0xMi4zbDguOCwxNC4xYy0xNS4zLDguOC0zMi45LDE0LjEtNTEuNiwxNC44YzAsMCw0MS42LDIyLDg1LjctMTZsLTM4LjctMzguNw0KCQlDMjY3LjcsMTk2LjgsMjUxLjMsMjA0LDIzMy4zLDIwNC45eiIvPg0KCTxwYXRoIGQ9Ik0yODUuMywxODAuM2wxMy4yLDEzLjFjMTAuNS0xMS4zLDE3LjctMjQuNywyMS42LTM4LjhsMTYuMiwzLjhjLTQuNiwxNy0xMy4zLDMzLjItMjYuMSw0Ni45YzAsMCw0NS0xMy44LDQ5LjMtNzEuOWgtNTQuOA0KCQlDMzAzLjksMTUwLjMsMjk3LjQsMTY3LDI4NS4zLDE4MC4zeiIvPg0KCTxwYXRoIGQ9Ik0zMDQuOCwxMjYuMmgxOC42Yy0wLjYtMTUuNC00LjktMzAtMTIuMi00Mi43bDE0LjEtOC44YzguOCwxNS4zLDE0LjEsMzIuOSwxNC43LDUxLjZjMCwwLDIyLTQxLjYtMTYtODUuN2wtMzguNywzOC43DQoJCUMyOTYuNyw5MS44LDMwMy45LDEwOC4yLDMwNC44LDEyNi4yeiIvPg0KCTxwYXRoIGQ9Ik0yOTMuNCw2MWMtMTEuMi0xMC41LTI0LjYtMTcuNy0zOC43LTIxLjZsMy43LTE2LjJjMTcuMSw0LjYsMzMuMiwxMy4yLDQ2LjksMjYuMWMwLDAtMTMuOC00NS03MS45LTQ5LjN2NTQuOA0KCQljMTYuOSwwLjksMzMuNiw3LjMsNDYuOSwxOS40TDI5My40LDYxeiIvPg0KCTxwb2x5Z29uIHBvaW50cz0iMTgzLjQsMzIyLjggMTg5LjQsMzIyLjggMTg5LjQsMzAzLjYgMTk3LjYsMzAzLjYgMTk3LjYsMjk4LjcgMTc1LjIsMjk4LjcgMTc1LjIsMzAzLjYgMTgzLjQsMzAzLjYgCSIvPg0KCTxwb2x5Z29uIHBvaW50cz0iMjQxLjksMzIyLjcgMjQxLjksMjk4LjcgMjM1LjksMjk4LjcgMjM1LjksMzA4LjIgMjI0LjksMzA4LjIgMjI0LjksMjk4LjcgMjE4LjksMjk4LjcgMjE4LjksMzIyLjcgMjI0LjksMzIyLjcgDQoJCTIyNC45LDMxMyAyMzUuOSwzMTMgMjM1LjksMzIyLjcgCSIvPg0KCTxwb2x5Z29uIHBvaW50cz0iMjg0LjMsMzAzLjQgMjg0LjMsMjk4LjcgMjYzLjksMjk4LjcgMjYzLjksMzIyLjggMjg0LjUsMzIyLjggMjg0LjUsMzE4LjEgMjY5LjgsMzE4LjEgMjY5LjgsMzEzIDI4Mi42LDMxMyANCgkJMjgyLjYsMzA4LjMgMjY5LjgsMzA4LjMgMjY5LjgsMzAzLjQgCSIvPg0KCTxwYXRoIGQ9Ik0xOSwzODIuOGMtNi4zLDAtMTAuNi00LjYtMTAuNi0xMC4ydi0wLjFjMC01LjUsNC40LTEwLjEsMTAuNi0xMC4xYzMuNywwLDYuNiwxLjQsOS40LDMuN2w1LjEtNS4zYy0zLjQtMy03LjUtNS0xNC40LTUNCgkJQzcuOCwzNTUuOCwwLDM2My40LDAsMzcyLjdzOCwxNi43LDE4LjcsMTYuN2M3LDAsMTEuMi0yLjIsMTUtNS44bC01LjEtNC42QzI1LjgsMzgxLjMsMjMuMiwzODIuOCwxOSwzODIuOHoiLz4NCgk8cGF0aCBkPSJNNzcuMSwzNTUuOGMtMTEuMywwLTE5LjUsNy42LTE5LjUsMTYuOWMwLDkuMiw4LjIsMTYuNywxOS40LDE2LjdjMTEuMywwLDE5LjUtNy42LDE5LjUtMTYuOHYtMC4xDQoJCUM5Ni41LDM2My4zLDg4LjQsMzU1LjgsNzcuMSwzNTUuOHogTTc3LjIsMzgyLjhjLTYuNSwwLTExLjEtNC42LTExLjEtMTAuMnYtMC4xYzAtNS41LDQuNS0xMC4xLDExLTEwLjFzMTEuMSw0LjYsMTEuMSwxMC4zDQoJCUM4OC4yLDM3OC4zLDgzLjcsMzgyLjgsNzcuMiwzODIuOHoiLz4NCgk8cGF0aCBkPSJNMTMyLjQsMzU2LjFsLTE1LjcsMzIuOGg4LjJsMy40LTcuM2gxNS41bDMuMyw3LjNoOC40bC0xNS43LTMyLjhIMTMyLjR6IE0xMzEuMSwzNzUuM2w0LjktMTAuNWw0LjksMTAuNUgxMzEuMXoiLz4NCgk8cG9seWdvbiBwb2ludHM9IjE4OS45LDM1Ni4zIDE4MS45LDM1Ni4zIDE4MS45LDM4OC44IDIwOC4yLDM4OC44IDIwOC4yLDM4Mi4zIDE4OS45LDM4Mi4zIAkiLz4NCgk8cmVjdCB4PSIyMzcuMSIgeT0iMzU2LjMiIHdpZHRoPSI4LjEiIGhlaWdodD0iMzIuNSIvPg0KCTxwb2x5Z29uIHBvaW50cz0iMjczLDM2Mi45IDI4NC4xLDM2Mi45IDI4NC4yLDM2Mi45IDI4NC4yLDM4OC44IDI5Mi4zLDM4OC44IDI5Mi4zLDM2Mi45IDMwMy40LDM2Mi45IDMwMy40LDM1Ni4zIDI3MywzNTYuMyAJIi8+DQoJPHJlY3QgeD0iMzMxLjQiIHk9IjM1Ni4zIiB3aWR0aD0iOC4xIiBoZWlnaHQ9IjMyLjUiLz4NCgk8cGF0aCBkPSJNMzg0LjMsMzU1LjhjLTExLjMsMC0xOS41LDcuNi0xOS41LDE2LjljMCw5LjIsOC4xLDE2LjcsMTkuNCwxNi43czE5LjUtNy42LDE5LjUtMTYuOHYtMC4xDQoJCUM0MDMuNywzNjMuMywzOTUuNiwzNTUuOCwzODQuMywzNTUuOHogTTM4NC4zLDM4Mi44Yy02LjUsMC0xMS4xLTQuNi0xMS4xLTEwLjJ2LTAuMWMwLTUuNSw0LjUtMTAuMSwxMS0xMC4xczExLjEsNC42LDExLjEsMTAuMw0KCQlDMzk1LjMsMzc4LjMsMzkwLjgsMzgyLjgsMzg0LjMsMzgyLjh6Ii8+DQoJPHBvbHlnb24gcG9pbnRzPSI0NTEuNywzNzYuMyA0MzQuNSwzNTYuMyA0MjcuMSwzNTYuMyA0MjcsMzU2LjMgNDI3LDM4OC45IDQzNSwzODguOSA0MzUsMzY4LjIgNDUyLjgsMzg4LjggNDU5LjcsMzg4LjggDQoJCTQ1OS43LDM1Ni4zIDQ1MS43LDM1Ni4zIAkiLz4NCjwvZz4NCjwvc3ZnPg0K\"","export default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyNC4wLjEsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIg0KCSBpZD0ic3ZnMiIgeG1sbnM6Y2M9Imh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL25zIyIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIiB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIiB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciDQoJIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgODE5MS45IDEzNzYiDQoJIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDgxOTEuOSAxMzc2OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KCS5zdDB7ZmlsbC1ydWxlOmV2ZW5vZGQ7Y2xpcC1ydWxlOmV2ZW5vZGQ7ZmlsbDojRkZGRkZGO30NCjwvc3R5bGU+DQo8Zz4NCgk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMTI1NS43LDI5My44QzEyMjAsMjQyLjUsMTE0MS41LDE2MSwxMTI4LjEsMTYxYy01LjUtMC4xLTIxLjQsNS41LTM1LjcsMTIuM2MtNTMuNCwyNi0xMjUuMiw4MC43LTE5NC41LDE0OC42DQoJCWMtMjcuNywyNi45LTUwLjQsNTIuMS01MC40LDU1LjVzMjAuNiwyOS41LDQ1LjgsNTguMWMxODEuNCwyMDUuMywyOTYuNSw0MDEuMywzMzIuMiw1NjUuMmM0LjYsMjAuOSw4LjQsNDkuNSw4LjQsNjQNCgkJYzAsMjMuOSwwLjgsMjYuOSw4LDI2LjljOS42LDAsNDcuOS01OS44LDcxLjgtMTEzLjFjNDguNy0xMDYuMyw2NS45LTE5NC42LDYxLjctMzE2LjdDMTM3MS4yLDUyMC41LDEzMzMuNCw0MDQuOCwxMjU1LjcsMjkzLjh6Ii8+DQoJPHBhdGggY2xhc3M9InN0MCIgZD0iTTM3MC4xLDEwM2M1OC44LDYuOCwxNjgsNTMuNCwyNjYuNywxMTIuN2MyMy45LDE0LjUsNDcuNSwyNi41LDUxLjcsMjYuNWM0LjYsMCwyNy43LTExLjksNTEuMy0yNi41DQoJCWM1Ni4zLTM0LjUsMTQ5LjEtODAuMywxOTEuOS05NC44YzE5LjMtNi40LDQ5LjYtMTMuNyw2Ny42LTE2LjZjMjEuOC0zLDMzLjItNi44LDMzLjItMTAuM2MwLTEyLjQtOTcuOS01NC42LTE2NS45LTcxLjcNCgkJQzc3Ny0wLjQsNjk0LjctNS41LDYwNS4zLDUuNkM1NTQsMTIsNDg4LjEsMjcuNCw0NDYuNSw0My42Yy00Ni4yLDE3LjUtMTAyLjksNDUuNy0xMDIuOSw1MS4zQzM0My42LDk4LjMsMzUzLjcsMTAxLjMsMzcwLjEsMTAzeiINCgkJLz4NCgk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNODAxLjgsNjE1Yy02OC02Ni4xLTEwNS44LTk5LjktMTExLjctOTkuOWMtNS4xLDAuMS0yNS42LDE1LjEtNDguMywzNS4xYy05OS41LDg3LjktMjMxLDIyNi4yLTMwNS43LDMyMi4zDQoJCWMtNzkuMywxMDEuNi0xNjQuNiwyMzkuMS0xNjQuNiwyNjQuNmMwLDguMSw0NC4xLDUzLjgsODQsODcuNWMxNDAuMiwxMTcuOCwzNDMuOSwxNzIuNCw1MzUuNCwxNDMuOQ0KCQljMTQ3LjgtMjIuMiwyODIuMi05MC41LDM5My45LTE5OS44YzE3LjItMTYuNiwxOS43LTIxLjMsMTkuNy0zNi43QzEyMDQuMSwxMDUzLjQsMTA1Mi41LDg1OC44LDgwMS44LDYxNXoiLz4NCgk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNNTMyLjYsMzc2LjRjMC02LTYzLjktNjkuMi0xMTAuOS0xMTAuMmMtNjMtNTQuNS0xNDQuOS0xMDUuNC0xNjguOS0xMDUuNGMtOS4xLDAuMS0yMC45LDkuOS01My42LDQzLjcNCgkJQzg3LDMyMC42LDI2LjEsNDQ2LjUsNS42LDYwNy44Qy00LDY4Mi45LTEuNSw3NDcsMTQuNCw4MjguOWMxNS42LDc5LDUxLjMsMTY3LjcsOTMuMiwyMzAuNWMyNy43LDQxLjgsMzIuMyw0MS40LDM1LjctMy40DQoJCWMxMy0xNjguMiwxNDEuNS0zOTkuMiwzNTUuMy02MzYuNUM1MTcuMSwzOTguNiw1MzIuNiwzNzguOSw1MzIuNiwzNzYuNHoiLz4NCgk8cG9seWdvbiBjbGFzcz0ic3QwIiBwb2ludHM9IjI0MTMuOCwyMTIuOCAyMjc3LjcsMjEyLjggMTk4MS44LDYxNC44IDE2ODYuMywyMTIuOCAxNTUwLjcsMjEyLjggMTkxMy40LDcwNS41IDE1MTUuNiwxMjQ3LjUgDQoJCTE2NTEuOSwxMjQ3LjUgMTk4Miw3OTguOSAyMzEyLjQsMTI0Ny41IDI0NDguNSwxMjQ3LjUgMjA1MC44LDcwNS41IAkiLz4NCgk8cG9seWdvbiBjbGFzcz0ic3QwIiBwb2ludHM9IjUxMjUuNSwyMTIuOCA0OTg5LjYsMjEyLjggNDY5NCw2MTQuOCA0Mzk4LjEsMjEyLjggNDI2Mi4xLDIxMi44IDQ2MjUuMSw3MDUuNSA0MjI3LjUsMTI0Ny42IA0KCQk0MzYzLjcsMTI0Ny42IDQ2OTQsNzk4LjkgNTAyNC40LDEyNDcuNiA1MTYwLjUsMTI0Ny42IDQ3NjIuOCw3MDUuNSAJIi8+DQoJPHBhdGggY2xhc3M9InN0MCIgZD0iTTM4NDAuOSwxODguOGMtMjkwLjYsMC00OTMuNywyMjIuNC00OTMuNyw1NDAuN2MwLDMxOC44LDIwMy4xLDU0MSw0OTMuNyw1NDFjMjkwLjQsMCw0OTIuOS0yMjIuMiw0OTIuOS01NDENCgkJQzQzMzMuOCw0MTEuMiw0MTMxLjMsMTg4LjgsMzg0MC45LDE4OC44eiBNMzg0MC45LDExNjEuMmMtMjIxLjQsMC0zNzYuNS0xNzcuNi0zNzYuNS00MzEuNmMtMC4xLTI1NCwxNTUuMS00MzEuMiwzNzYuNS00MzEuMg0KCQljMjIxLjEsMCwzNzUuNCwxNzcuMywzNzUuNCw0MzEuMkM0MjE2LjMsOTgzLjcsNDA2MS45LDExNjEuMiwzODQwLjksMTE2MS4yeiIvPg0KCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0zMjA1LjIsNzQ0LjdjLTIxLjYtMTguNC00NS0zMi43LTY3LjgtNDMuMmM3NS4xLTQwLjgsMTI0LjMtMTE3LjgsMTI0LjMtMjA3LjFjMC02Ni4yLTI0LjQtMjgxLjYtMzM2LjMtMjgxLjYNCgkJSDI1MDV2NDQ2LjFoLTEzOS45Yy0xOC4yLDIzLjYtNTkuNCw4MC40LTc1LjEsMTAzLjhoMjE1LjF2NDg0LjhsNDIwLjMsMC4yYzIyNy42LDAsMzY5LjEtMTE1LjYsMzY5LjEtMzAyLjENCgkJQzMyOTQuNSw4NjQuMSwzMjYzLjcsNzk0LjgsMzIwNS4yLDc0NC43eiBNMjYyMS4yLDMyMC44aDMwNC4xYzgyLjQsMCwyMjAuMSwyMC40LDIyMC4xLDE2NC40YzAsMTA4LjgtODAuMywxNzMuNy0yMjAuMSwxNzMuNw0KCQloLTMwNC4xVjMyMC44eiBNMjkyNS4zLDExMzkuNmgtMzA0LjFWNzYyLjloMzA0LjFjMTE1LjMsMCwyNTMuMiwzMS45LDI1My4yLDE4MC40QzMxNzguNSwxMTE0LjEsMzAxOS45LDExMzkuNiwyOTI1LjMsMTEzOS42eiIvPg0KCTxwb2x5Z29uIGNsYXNzPSJzdDAiIHBvaW50cz0iNTY1MCwyMTIuMyA1NTI1LjUsMjEyLjYgNTUyNS41LDEyNDYuNyA2MjEzLjYsMTI0Ni43IDYyMTMuNiwxMTMyLjEgNTY0OS43LDExMzIuMSAJIi8+DQoJPHBhdGggY2xhc3M9InN0MCIgZD0iTTc1ODMuMywxMTMyLjFWNzc5bDU2My4yLDAuNWwwLjgtMTE1aC01NjMuOVYzMjcuMmg2MDcuNWwwLjMtMTE0LjhjMCwwLTQ5MSwwLjItNzMyLjEsMC4ydjEwMzQuMWg3MzIuOA0KCQl2LTExNC42SDc1ODMuM3oiLz4NCgk8cmVjdCB4PSI2MjkwIiB5PSIyMTIuNiIgY2xhc3M9InN0MCIgd2lkdGg9IjEyMS4xIiBoZWlnaHQ9IjEwMzQuMSIvPg0KCTxwb2x5Z29uIGNsYXNzPSJzdDAiIHBvaW50cz0iNjk0Ni4yLDExMDMuNiA2NjM0LjIsMjEyLjYgNjUwMy41LDIxMi42IDY4NjYuNywxMjQ2LjcgNzAyNS45LDEyNDYuNyA3MzkyLjIsMjEyLjYgNzI2MS43LDIxMi42IAkiLz4NCjwvZz4NCjwvc3ZnPg0K\"","export default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyNC4wLjEsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIg0KCSBpZD0ic3ZnMiIgeG1sbnM6Y2M9Imh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL25zIyIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIiB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIiB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciDQoJIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgODE5MS45IDEzNzYiDQoJIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDgxOTEuOSAxMzc2OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KCS5zdDB7ZmlsbC1ydWxlOmV2ZW5vZGQ7Y2xpcC1ydWxlOmV2ZW5vZGQ7fQ0KPC9zdHlsZT4NCjxnPg0KCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0xMjU1LjcsMjkzLjhDMTIyMCwyNDIuNSwxMTQxLjUsMTYxLDExMjguMSwxNjFjLTUuNS0wLjEtMjEuNCw1LjUtMzUuNywxMi4zYy01My40LDI2LTEyNS4yLDgwLjctMTk0LjUsMTQ4LjYNCgkJYy0yNy43LDI2LjktNTAuNCw1Mi4xLTUwLjQsNTUuNXMyMC42LDI5LjUsNDUuOCw1OC4xYzE4MS40LDIwNS4zLDI5Ni41LDQwMS4zLDMzMi4yLDU2NS4yYzQuNiwyMC45LDguNCw0OS41LDguNCw2NA0KCQljMCwyMy45LDAuOCwyNi45LDgsMjYuOWM5LjYsMCw0Ny45LTU5LjgsNzEuOC0xMTMuMWM0OC43LTEwNi4zLDY1LjktMTk0LjYsNjEuNy0zMTYuN0MxMzcxLjIsNTIwLjUsMTMzMy40LDQwNC44LDEyNTUuNywyOTMuOHoiLz4NCgk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMzcwLjEsMTAzYzU4LjgsNi44LDE2OCw1My40LDI2Ni43LDExMi43YzIzLjksMTQuNSw0Ny41LDI2LjUsNTEuNywyNi41YzQuNiwwLDI3LjctMTEuOSw1MS4zLTI2LjUNCgkJYzU2LjMtMzQuNSwxNDkuMS04MC4zLDE5MS45LTk0LjhjMTkuMy02LjQsNDkuNi0xMy43LDY3LjYtMTYuNmMyMS44LTMsMzMuMi02LjgsMzMuMi0xMC4zYzAtMTIuNC05Ny45LTU0LjYtMTY1LjktNzEuNw0KCQlDNzc3LTAuNCw2OTQuNy01LjUsNjA1LjMsNS42QzU1NCwxMiw0ODguMSwyNy40LDQ0Ni41LDQzLjZjLTQ2LjIsMTcuNS0xMDIuOSw0NS43LTEwMi45LDUxLjNDMzQzLjYsOTguMywzNTMuNywxMDEuMywzNzAuMSwxMDN6Ig0KCQkvPg0KCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik04MDEuOCw2MTVjLTY4LTY2LjEtMTA1LjgtOTkuOS0xMTEuNy05OS45Yy01LjEsMC4xLTI1LjYsMTUuMS00OC4zLDM1LjFjLTk5LjUsODcuOS0yMzEsMjI2LjItMzA1LjcsMzIyLjMNCgkJYy03OS4zLDEwMS42LTE2NC42LDIzOS4xLTE2NC42LDI2NC42YzAsOC4xLDQ0LjEsNTMuOCw4NCw4Ny41YzE0MC4yLDExNy44LDM0My45LDE3Mi40LDUzNS40LDE0My45DQoJCWMxNDcuOC0yMi4yLDI4Mi4yLTkwLjUsMzkzLjktMTk5LjhjMTcuMi0xNi42LDE5LjctMjEuMywxOS43LTM2LjdDMTIwNC4xLDEwNTMuNCwxMDUyLjUsODU4LjgsODAxLjgsNjE1eiIvPg0KCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik01MzIuNiwzNzYuNGMwLTYtNjMuOS02OS4yLTExMC45LTExMC4yYy02My01NC41LTE0NC45LTEwNS40LTE2OC45LTEwNS40Yy05LjEsMC4xLTIwLjksOS45LTUzLjYsNDMuNw0KCQlDODcsMzIwLjYsMjYuMSw0NDYuNSw1LjYsNjA3LjhDLTQsNjgyLjktMS41LDc0NywxNC40LDgyOC45YzE1LjYsNzksNTEuMywxNjcuNyw5My4yLDIzMC41YzI3LjcsNDEuOCwzMi4zLDQxLjQsMzUuNy0zLjQNCgkJYzEzLTE2OC4yLDE0MS41LTM5OS4yLDM1NS4zLTYzNi41QzUxNy4xLDM5OC42LDUzMi42LDM3OC45LDUzMi42LDM3Ni40eiIvPg0KCTxwb2x5Z29uIGNsYXNzPSJzdDAiIHBvaW50cz0iMjQxMy44LDIxMi44IDIyNzcuNywyMTIuOCAxOTgxLjgsNjE0LjggMTY4Ni4zLDIxMi44IDE1NTAuNywyMTIuOCAxOTEzLjQsNzA1LjUgMTUxNS42LDEyNDcuNSANCgkJMTY1MS45LDEyNDcuNSAxOTgyLDc5OC45IDIzMTIuNCwxMjQ3LjUgMjQ0OC41LDEyNDcuNSAyMDUwLjgsNzA1LjUgCSIvPg0KCTxwb2x5Z29uIGNsYXNzPSJzdDAiIHBvaW50cz0iNTEyNS41LDIxMi44IDQ5ODkuNiwyMTIuOCA0Njk0LDYxNC44IDQzOTguMSwyMTIuOCA0MjYyLjEsMjEyLjggNDYyNS4xLDcwNS41IDQyMjcuNSwxMjQ3LjYgDQoJCTQzNjMuNywxMjQ3LjYgNDY5NCw3OTguOSA1MDI0LjQsMTI0Ny42IDUxNjAuNSwxMjQ3LjYgNDc2Mi44LDcwNS41IAkiLz4NCgk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMzg0MC45LDE4OC44Yy0yOTAuNiwwLTQ5My43LDIyMi40LTQ5My43LDU0MC43YzAsMzE4LjgsMjAzLjEsNTQxLDQ5My43LDU0MWMyOTAuNCwwLDQ5Mi45LTIyMi4yLDQ5Mi45LTU0MQ0KCQlDNDMzMy44LDQxMS4yLDQxMzEuMywxODguOCwzODQwLjksMTg4Ljh6IE0zODQwLjksMTE2MS4yYy0yMjEuNCwwLTM3Ni41LTE3Ny42LTM3Ni41LTQzMS42Yy0wLjEtMjU0LDE1NS4xLTQzMS4yLDM3Ni41LTQzMS4yDQoJCWMyMjEuMSwwLDM3NS40LDE3Ny4zLDM3NS40LDQzMS4yQzQyMTYuMyw5ODMuNyw0MDYxLjksMTE2MS4yLDM4NDAuOSwxMTYxLjJ6Ii8+DQoJPHBhdGggY2xhc3M9InN0MCIgZD0iTTMyMDUuMiw3NDQuN2MtMjEuNi0xOC40LTQ1LTMyLjctNjcuOC00My4yYzc1LjEtNDAuOCwxMjQuMy0xMTcuOCwxMjQuMy0yMDcuMWMwLTY2LjItMjQuNC0yODEuNi0zMzYuMy0yODEuNg0KCQlIMjUwNXY0NDYuMWgtMTM5LjljLTE4LjIsMjMuNi01OS40LDgwLjQtNzUuMSwxMDMuOGgyMTUuMXY0ODQuOGw0MjAuMywwLjJjMjI3LjYsMCwzNjkuMS0xMTUuNiwzNjkuMS0zMDIuMQ0KCQlDMzI5NC41LDg2NC4xLDMyNjMuNyw3OTQuOCwzMjA1LjIsNzQ0Ljd6IE0yNjIxLjIsMzIwLjhoMzA0LjFjODIuNCwwLDIyMC4xLDIwLjQsMjIwLjEsMTY0LjRjMCwxMDguOC04MC4zLDE3My43LTIyMC4xLDE3My43DQoJCWgtMzA0LjFWMzIwLjh6IE0yOTI1LjMsMTEzOS42aC0zMDQuMVY3NjIuOWgzMDQuMWMxMTUuMywwLDI1My4yLDMxLjksMjUzLjIsMTgwLjRDMzE3OC41LDExMTQuMSwzMDE5LjksMTEzOS42LDI5MjUuMywxMTM5LjZ6Ii8+DQoJPHBvbHlnb24gY2xhc3M9InN0MCIgcG9pbnRzPSI1NjUwLDIxMi4zIDU1MjUuNSwyMTIuNiA1NTI1LjUsMTI0Ni43IDYyMTMuNiwxMjQ2LjcgNjIxMy42LDExMzIuMSA1NjQ5LjcsMTEzMi4xIAkiLz4NCgk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNNzU4My4zLDExMzIuMVY3NzlsNTYzLjIsMC41bDAuOC0xMTVoLTU2My45VjMyNy4yaDYwNy41bDAuMy0xMTQuOGMwLDAtNDkxLDAuMi03MzIuMSwwLjJ2MTAzNC4xaDczMi44DQoJCXYtMTE0LjZINzU4My4zeiIvPg0KCTxyZWN0IHg9IjYyOTAiIHk9IjIxMi42IiBjbGFzcz0ic3QwIiB3aWR0aD0iMTIxLjEiIGhlaWdodD0iMTAzNC4xIi8+DQoJPHBvbHlnb24gY2xhc3M9InN0MCIgcG9pbnRzPSI2OTQ2LjIsMTEwMy42IDY2MzQuMiwyMTIuNiA2NTAzLjUsMjEyLjYgNjg2Ni43LDEyNDYuNyA3MDI1LjksMTI0Ni43IDczOTIuMiwyMTIuNiA3MjYxLjcsMjEyLjYgCSIvPg0KPC9nPg0KPC9zdmc+DQo=\"","/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil,\n nativeMax = Math.max;\n\n/**\n * The base implementation of `_.range` and `_.rangeRight` which doesn't\n * coerce arguments.\n *\n * @private\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @param {number} step The value to increment or decrement by.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the range of numbers.\n */\nfunction baseRange(start, end, step, fromRight) {\n var index = -1,\n length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),\n result = Array(length);\n\n while (length--) {\n result[fromRight ? length : ++index] = start;\n start += step;\n }\n return result;\n}\n\nmodule.exports = baseRange;\n","var baseRange = require('./_baseRange'),\n isIterateeCall = require('./_isIterateeCall'),\n toFinite = require('./toFinite');\n\n/**\n * Creates a `_.range` or `_.rangeRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new range function.\n */\nfunction createRange(fromRight) {\n return function(start, end, step) {\n if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {\n end = step = undefined;\n }\n // Ensure the sign of `-0` is preserved.\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n step = step === undefined ? (start < end ? 1 : -1) : toFinite(step);\n return baseRange(start, end, step, fromRight);\n };\n}\n\nmodule.exports = createRange;\n","var eq = require('./eq'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject');\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","var createRange = require('./_createRange');\n\n/**\n * Creates an array of numbers (positive and/or negative) progressing from\n * `start` up to, but not including, `end`. A step of `-1` is used if a negative\n * `start` is specified without an `end` or `step`. If `end` is not specified,\n * it's set to `start` with `start` then set to `0`.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @param {number} [step=1] The value to increment or decrement by.\n * @returns {Array} Returns the range of numbers.\n * @see _.inRange, _.rangeRight\n * @example\n *\n * _.range(4);\n * // => [0, 1, 2, 3]\n *\n * _.range(-4);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 5);\n * // => [1, 2, 3, 4]\n *\n * _.range(0, 20, 5);\n * // => [0, 5, 10, 15]\n *\n * _.range(0, -4, -1);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 4, 0);\n * // => [1, 1, 1]\n *\n * _.range(0);\n * // => []\n */\nvar range = createRange();\n\nmodule.exports = range;\n"],"names":["invariant","condition","message","error","Error","framesToPop","name","Context","LOADABLE_SHARED","initialChunks","STATUS_PENDING","STATUS_REJECTED","identity","v","createLoadable","_ref","_ref$defaultResolveCo","defaultResolveComponent","_render","render","onLoad","loadable","loadableConstructor","options","ctor","requireAsync","resolve","chunkName","resolveConstructor","cache","_getCacheKey","props","cacheKey","module","Loadable","Component","resolveComponent","isValidElementType","preload","LoadableWithChunkExtractor","cachedLoad","promise","status","then","console","fileName","InnerLoadable","_React$Component","_this","call","this","state","result","loading","__chunkExtractor","requireSync","ssr","loadSync","addChunk","isReady","getDerivedStateFromProps","_proto","prototype","componentDidMount","mounted","cachedPromise","getCache","setCache","loadAsync","componentDidUpdate","prevProps","prevState","componentWillUnmount","safeSetState","nextState","callback","setState","getCacheKey","value","undefined","triggerOnLoad","_this2","setTimeout","_this3","resolveAsync","loadedModule","_this$props","forwardedRef","_this$props2","propFallback","fallback","_this$state","suspense","ref","EnhancedInnerLoadable","Consumer","extractor","Object","assign","displayName","load","lazy","_createLoadable","__esModule","_createLoadable$1","current","children","loadable$1","lazy$1","loadable$2","lib","hasOwn","hasOwnProperty","classNames","classes","i","arguments","length","arg","argType","push","Array","isArray","inner","apply","toString","includes","key","join","exports","default","factory","OldCookies","window","Cookies","api","noConflict","extend","attributes","decode","s","replace","decodeURIComponent","init","converter","set","document","path","defaults","expires","Date","toUTCString","JSON","stringify","test","e","write","encodeURIComponent","String","escape","stringifiedAttributes","attributeName","split","cookie","get","json","jar","cookies","parts","slice","charAt","read","parse","getJSON","remove","withConverter","hookCallback","some","hooks","setHookCallback","input","isObject","hasOwnProp","a","b","isObjectEmpty","obj","getOwnPropertyNames","k","isUndefined","isNumber","isDate","map","arr","fn","res","arrLen","valueOf","createUTC","format","locale","strict","createLocalOrUTC","utc","defaultParsingFlags","empty","unusedTokens","unusedInput","overflow","charsLeftOver","nullInput","invalidEra","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","era","meridiem","rfc2822","weekdayMismatch","getParsingFlags","m","_pf","isValid","_isValid","flags","parsedParts","isNowValid","isNaN","_d","getTime","invalidWeekday","_strict","bigHour","isFrozen","createInvalid","NaN","fun","t","len","momentProperties","updateInProgress","copyConfig","to","from","prop","val","momentPropertiesLen","_isAMomentObject","_i","_f","_l","_tzm","_isUTC","_offset","_locale","Moment","config","updateOffset","isMoment","warn","msg","suppressDeprecationWarnings","deprecate","firstTime","deprecationHandler","args","argLen","stack","keys","deprecations","deprecateSimple","isFunction","Function","_config","_dayOfMonthOrdinalParseLenient","RegExp","_dayOfMonthOrdinalParse","source","_ordinalParse","mergeConfigs","parentConfig","childConfig","Locale","defaultCalendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","calendar","mom","now","output","_calendar","zeroFill","number","targetLength","forceSign","absNumber","Math","abs","zerosToFill","pow","max","substr","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","token","padded","ordinal","func","localeData","removeFormattingTokens","match","makeFormatFunction","array","formatMoment","expandFormat","invalidDate","replaceLongDateFormatTokens","longDateFormat","lastIndex","defaultLongDateFormat","LTS","LT","L","LL","LLL","LLLL","_longDateFormat","formatUpper","toUpperCase","tok","defaultInvalidDate","_invalidDate","defaultOrdinal","defaultDayOfMonthOrdinalParse","_ordinal","defaultRelativeTime","future","past","ss","mm","h","hh","d","dd","w","ww","M","MM","y","yy","relativeTime","withoutSuffix","string","isFuture","_relativeTime","pastFuture","diff","aliases","addUnitAlias","unit","shorthand","lowerCase","toLowerCase","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","priorities","addUnitPriority","priority","getPrioritizedUnits","unitsObj","u","sort","isLeapYear","year","absFloor","ceil","floor","toInt","argumentForCoercion","coercedNumber","isFinite","makeGetSet","keepTime","set$1","month","date","daysInMonth","stringGet","stringSet","prioritized","prioritizedLen","regexes","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchTimestamp","matchWord","addRegexToken","regex","strictRegex","isStrict","getParseRegexForToken","unescapeFormat","regexEscape","matched","p1","p2","p3","p4","tokens","addParseToken","tokenLen","addWeekParseToken","_w","addTimeToArrayFromToken","_a","indexOf","YEAR","MONTH","DATE","HOUR","MINUTE","SECOND","MILLISECOND","WEEK","WEEKDAY","mod","n","x","modMonth","o","monthsShort","months","monthsShortRegex","monthsRegex","monthsParse","defaultLocaleMonths","defaultLocaleMonthsShort","MONTHS_IN_FORMAT","defaultMonthsShortRegex","defaultMonthsRegex","localeMonths","_months","isFormat","localeMonthsShort","_monthsShort","handleStrictParse","monthName","ii","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","localeMonthsParse","_monthsParseExact","setMonth","dayOfMonth","min","getSetMonth","getDaysInMonth","computeMonthsParse","_monthsShortStrictRegex","_monthsShortRegex","_monthsStrictRegex","_monthsRegex","cmpLenRev","shortPieces","longPieces","mixedPieces","daysInYear","parseTwoDigitYear","parseInt","getSetYear","getIsLeapYear","createDate","ms","getFullYear","setFullYear","createUTCDate","UTC","getUTCFullYear","setUTCFullYear","firstWeekOffset","dow","doy","fwd","getUTCDay","dayOfYearFromWeeks","week","weekday","resYear","resDayOfYear","dayOfYear","weekOfYear","resWeek","weekOffset","weeksInYear","weekOffsetNext","localeWeek","_week","defaultLocaleWeek","localeFirstDayOfWeek","localeFirstDayOfYear","getSetWeek","add","getSetISOWeek","parseWeekday","weekdaysParse","parseIsoWeekday","shiftWeekdays","ws","concat","weekdaysMin","weekdaysShort","weekdays","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","localeWeekdays","_weekdays","day","localeWeekdaysShort","_weekdaysShort","localeWeekdaysMin","_weekdaysMin","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","localeWeekdaysParse","_weekdaysParseExact","_fullWeekdaysParse","getSetDayOfWeek","getDay","getSetLocaleDayOfWeek","getSetISODayOfWeek","computeWeekdaysParse","_weekdaysStrictRegex","_weekdaysRegex","_weekdaysShortStrictRegex","_weekdaysShortRegex","_weekdaysMinStrictRegex","_weekdaysMinRegex","minp","shortp","longp","minPieces","hFormat","hours","kFormat","lowercase","minutes","matchMeridiem","_meridiemParse","localeIsPM","seconds","kInput","_isPm","isPM","_meridiem","pos","pos1","pos2","defaultLocaleMeridiemParse","getSetHour","localeMeridiem","isLower","globalLocale","baseConfig","dayOfMonthOrdinalParse","meridiemParse","locales","localeFamilies","commonPrefix","arr1","arr2","minl","normalizeLocale","chooseLocale","names","j","next","loadLocale","isLocaleNameSane","oldLocale","_abbr","getSetGlobalLocale","values","data","getLocale","defineLocale","abbr","parentLocale","forEach","updateLocale","tmpLocale","listLocales","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromISO","l","allowTime","dateFormat","timeFormat","tzFormat","exec","isoDatesLen","isoTimesLen","configFromStringAndFormat","extractFromRFC2822Strings","yearStr","monthStr","dayStr","hourStr","minuteStr","secondStr","untruncateYear","preprocessRFC2822","checkWeekday","weekdayStr","parsedInput","calculateOffset","obsOffset","militaryOffset","numOffset","hm","configFromRFC2822","parsedArray","setUTCMinutes","getUTCMinutes","configFromString","createFromInputFallback","c","currentDateArray","nowValue","_useUTC","getUTCMonth","getUTCDate","getMonth","getDate","configFromArray","currentDate","expectedWeekday","yearToUse","dayOfYearFromWeekInfo","_dayOfYear","_nextDay","weekYear","temp","weekdayOverflow","curWeek","GG","W","E","createLocal","gg","ISO_8601","RFC_2822","skipped","stringLength","totalParsedInputLength","meridiemFixWrap","erasConvertYear","hour","isPm","meridiemHour","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","configfLen","score","configFromObject","dayOrDate","minute","second","millisecond","createFromConfig","prepareConfig","preparse","configFromInput","isUTC","prototypeMin","other","prototypeMax","pickBy","moments","ordering","isDurationValid","unitHasDecimal","orderLen","parseFloat","isValid$1","createInvalid$1","createDuration","Duration","duration","years","quarters","quarter","weeks","isoWeek","days","milliseconds","_milliseconds","_days","_data","_bubble","isDuration","absRound","round","compareArrays","array1","array2","dontConvert","lengthDiff","diffs","offset","separator","utcOffset","sign","offsetFromString","chunkOffset","matcher","matches","cloneWithOffset","model","clone","setTime","local","getDateOffset","getTimezoneOffset","getSetOffset","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","addSubtract","getSetZone","setOffsetToUTC","setOffsetToLocal","subtract","setOffsetToParsedOffset","tZone","hasAlignedHourOffset","isDaylightSavingTime","isDaylightSavingTimeShifted","_isDSTShifted","toArray","isLocal","isUtcOffset","isUtc","aspNetRegex","isoRegex","ret","diffRes","parseIso","momentsDifference","inp","positiveMomentsDifference","base","isAfter","isBefore","createAdder","direction","period","tmp","isAdding","invalid","isString","isMomentInput","isNumberOrStringArray","isMomentInputObject","property","objectTest","propertyTest","properties","propertyLen","arrayTest","dataTypeTest","filter","item","isCalendarSpec","getCalendarFormat","myMoment","calendar$1","time","formats","sod","startOf","calendarFormat","localInput","endOf","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","asFloat","that","zoneDelta","monthDiff","wholeMonthDiff","anchor","toISOString","keepOffset","toDate","inspect","prefix","datetime","suffix","zone","inputString","defaultFormatUtc","defaultFormat","postformat","humanize","fromNow","toNow","newLocaleData","lang","MS_PER_SECOND","MS_PER_MINUTE","MS_PER_HOUR","MS_PER_400_YEARS","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","startOfDate","isoWeekday","unix","toObject","toJSON","isValid$2","parsingFlags","invalidAt","creationData","localeEras","eras","_eras","since","until","localeErasParse","eraName","narrow","localeErasConvertYear","dir","getEraName","getEraNarrow","getEraAbbr","getEraYear","erasNameRegex","computeErasParse","_erasNameRegex","_erasRegex","erasAbbrRegex","_erasAbbrRegex","erasNarrowRegex","_erasNarrowRegex","matchEraAbbr","matchEraName","matchEraNarrow","matchEraYearOrdinal","_eraYearOrdinalRegex","abbrPieces","namePieces","narrowPieces","addWeekYearFormatToken","getter","getSetWeekYear","getSetWeekYearHelper","getSetISOWeekYear","getISOWeeksInYear","getISOWeeksInISOWeekYear","isoWeekYear","getWeeksInYear","weekInfo","getWeeksInWeekYear","weeksTarget","setWeekAll","dayOfYearData","getSetQuarter","erasParse","eraYearOrdinalParse","getSetDayOfMonth","getSetDayOfYear","getSetMinute","getSetMillisecond","getSetSecond","parseMs","getZoneAbbr","getZoneName","proto","createUnix","createInZone","parseZone","preParsePostFormat","Symbol","for","eraNarrow","eraAbbr","eraYear","isoWeeks","weeksInWeekYear","isoWeeksInYear","isoWeeksInISOWeekYear","isDST","zoneAbbr","zoneName","dates","isDSTShifted","proto$1","get$1","index","field","setter","listMonthsImpl","out","listWeekdaysImpl","localeSorted","shift","listMonths","listMonthsShort","listWeekdays","listWeekdaysShort","listWeekdaysMin","firstDayOfYear","firstDayOfWeek","langData","mathAbs","addSubtract$1","add$1","subtract$1","absCeil","bubble","monthsFromDays","monthsToDays","daysToMonths","as","valueOf$1","makeAs","alias","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","clone$1","get$2","makeGetter","thresholds","substituteTimeAgo","relativeTime$1","posNegDuration","getSetRelativeTimeRounding","roundingFunction","getSetRelativeTimeThreshold","threshold","limit","argWithSuffix","argThresholds","withSuffix","th","abs$1","toISOString$1","totalSign","ymSign","daysSign","hmsSign","total","toFixed","proto$2","toIsoString","version","relativeTimeRounding","relativeTimeThreshold","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","TIME","TIME_SECONDS","TIME_MS","_console","_len","_key","alreadyWarned","warnOnce","_len2","_key2","loadNamespaces","i18n","ns","cb","isInitialized","on","initialized","off","ownKeys","object","enumerableOnly","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","enumerable","_objectSpread","target","getOwnPropertyDescriptors","defineProperties","defineProperty","usePrevious","ignore","useRef","useEffect","useTranslation","i18nFromProps","useContext","i18nFromContext","defaultNSFromContext","defaultNS","reportNamespaces","notReadyT","retNotReady","ready","react","wait","i18nOptions","useSuspense","keyPrefix","namespaces","addUsedNamespaces","initializedStoreOnce","every","languages","ignoreJSONStructure","hasLoadedNamespace","precheck","i18nInstance","loadNotPending","bindI18n","services","backendConnector","backend","isLanguageChangingTo","lng","fallbackLng","lastLng","loadState","hasResourceBundle","resources","partialBundledLanguages","oldI18nextHasLoadedNamespace","getT","getFixedT","nsMode","_useState","useState","_useState2","setT","joinedNS","previousJoinedNS","isMounted","bindI18nStore","boundReset","store","isInitial","Promise","ageGate","container","submit","blockedMessage","title","header","footerSite","companyLinks","franceOnlyMessage","franchiseLink","companyLink","twitterLink","facebookLink","twitchLink","youtubeLink","instagramLink","youtubeEmbedSwap","link","icon","button","imgCarousel","backButton","nextButton","displayedImage","GenericError","React","TEST_IDS","className","childImageSharp","extension","publicURL","alt","_objectWithoutProperties","_excluded","GatsbyImage","_extends","image","gatsbyImageData","src","useStyles","makeStyles","theme","width","skeletonRoot","backgroundColor","displayNone","display","iframeSizing","gutters","modal","xs","height","maxWidth","maxHeight","breakpoints","up","md","href","twitchVideoUrlRegex","onClick","rest","_classes","open","setOpen","isLoading","setIsLoading","videoId","groups","video","clipId","clip","hasError","Button","mergeClasses","root","role","handleClick","Dialog","fullScreen","color","labelledBy","onClose","handleClose","disableCloseButton","CloseButtonProps","dialogTitleTypography","Skeleton","variant","stripProtocol","process","frameBorder","scrolling","allowFullScreen","twitchClipUrlRegex","useClasses","linkRoot","Link","forwardRef","isImplicit","isFullUrl","getProps","url","localeContext","LocaleContext","anchorClassName","showLabel","TwitchDialog","buttonRef","isInternalLink","slug","getSlugFromFullUrl","pathWithLocale","classnames","component","GatsbyLink","defaultProps","IMAGES","placeholderImg","white","placeholderImgWhite","black","placeholderImgBlack","gearsOfWar","theCoalition","useTheme","palette","type","placeHolderImg","useThemedImage","Image","translateStrings","element","child","renderMenuItemImage","isActive","setIsActive","TCMobileMenuItem","_ref2","isPartiallyCurrent","TCMenuItem","isCurrent","img","fluidImg","imgStyles","backgroundLoading","PlaceholderImg","PushNotificationButton","PUSH_NOTIFICATION_ENABLED","GATSBY_FEATURE_LOGIN_ON","GATSBY_FEATURE_PUSH_NOTIFICATION","accessibility","highContrast","borderBottom","border","primary","mediaQuery","logo","logoLink","marginRight","marginBottom","borderRadius","paddingBottom","iconTitle","fontSize","getItemChildren","menu","desktop","mobile","useLogo","iconSize","useMediaQuery","down","SiteDesktopMenu","items","renderBrand","MenuItem","siteName","ButtonComponent","SiteMenuItem","SkipMenuButtonProps","enableSkipMenuButton","Box","alignItems","sm","FontAwesomeIconProps","style","SiteMobileMenu","opts","MenuImage","Icon","iconBase","iconPrefix","iconName","size","MenuItemProps","SiteMobileMenuItem","ButtonProps","SlideDrawerProps","Header","useStaticQuery","HeaderSite","flexDirection","justifyContent","marginTop","margin","textTransform","letterSpacing","fontStretch","fontWeight","text","fontFamily","marginLeft","alignRight","linksList","listStyleType","flexWrap","padding","flex","locationPicker","spacing","locationPickerContainer","locationPickerIcon","paddingRight","getLocaleNameFromUrl","removeLocaleFromPath","require","FooterMicrosoft","Location","location","pathname","prevPath","FontAwesomeIcon","fixedWidth","rel","decodeText","TABLET_SPACING","MOBILE_SPACING","ITEM_GAP","blackOnWhite","section","paddingTop","siteLink","franchiseLinks","gridRowGap","gridTemplateColumns","companyLogoLinks","ratingImage","only","gridColumnStart","gridColumnEnd","tcImage","xboxImage","socialMediaLinks","textAlign","isFranceHomepage","coalitionLogo","xboxGameStudiosLogo","currentLocaleRating","find","ratingACF","franchiseMenuFooterItems","label","ImgWithSVGSupport","featuredImage","node","localFile","ext","sourceUrl","transform","Twitter","Facebook","Twitch","YouTube","Instagram","borderTop","FooterSite","hasPassiveEvents","passiveTestOptions","passive","addEventListener","removeEventListener","isIosDevice","navigator","platform","maxTouchPoints","locks","documentListenerAdded","initialClientY","previousBodyOverflowSetting","previousBodyPaddingRight","allowTouchMove","el","lock","preventDefault","rawEvent","event","touches","restoreOverflowSetting","body","disableBodyScroll","targetElement","_toConsumableArray","ontouchstart","targetTouches","clientY","ontouchmove","scrollTop","scrollHeight","clientHeight","isTargetElementTotallyScrolled","stopPropagation","handleScroll","_reserveScrollBarGap","reserveScrollBarGap","scrollBarGap","innerWidth","documentElement","clientWidth","setOverflowHidden","page","lg","paper","overflowX","boxShadow","backgroundSize","content","flexFlow","minHeight","background","paddingLeft","contentText","lineHeight","contentTextBlocked","form","borderBottomColor","fieldContainer","common","gridGap","select","outline","underline","contrastText","currentYear","getAge","inputDate","today","birthDate","age","AgeGate","minAge","cookieDateOfBirth","Cookie","cookieAge","_year","_month","_day","unFormatDate","showAgeGate","isFormDirty","setIsFormDirty","blocked","setBlocked","setDay","setYear","numOfDaysInMonth","moment","isSamsung","isSamsungInternet","dayInt","monthInt","yearInt","isUnderaged","formatDate","roleProps","disableBackdropClick","disableEscapeKeyDown","onEntered","handleEntered","onExiting","handleExiting","getFirstFocusableChild","PaperProps","DialogContentProps","Typography","id","ThemeProvider","method","autoComplete","onSubmit","NativeSelect","required","inputProps","autoFocus","onChange","range","vetricalGuttersPage","main","fullPageWidth","postPageWidth","LayoutContent","pageWidth","setBackgroundImage","mainClass","hasVerticalGutters","pageContext","enableFacebookApi","pageClassName","setProperty","js","fjs","FB","fbAsyncInit","appId","GATSBY_FACEBOOK_APP_ID","xfbml","getElementsByTagName","getElementById","createElement","parentNode","insertBefore","tabIndex","Footer","LOGOS","logoWhite","logoBlack","gearsOfWarFull","gearsOfWarLogoFullWhite","gearsOfWarLogoFullBlack","theCoalitionFull","xboxGameStudios","xboxLive","splashDamage","DEFAULT_OPTIONS","enableContrast","currentTheme","_options","_theme","defaultLogo","setLogo","isHighContrast","isHighContrastWB","prefersDark","isHighContrastBW","prefersLight","nativeCeil","nativeMax","start","end","step","fromRight","baseRange","isIterateeCall","toFinite","eq","isArrayLike","isIndex","createRange"],"sourceRoot":""}