{"version":3,"sources":["webpack:///./src/app/static/weather/windy.svg","webpack:///./src/app/static/general/SAcoronavirus-button.jpg","webpack:///./src/app/static/weather/rain.svg","webpack:///./src/app/templates/Articles/Default.js","webpack:///./src/app/pages/DefaultSectionPage.js","webpack:///./src/app/pages/AuthorSectionPage.js","webpack:///./src/app/components/DefaultSection.js","webpack:///./src/app/images/brands/video/iol-wht.js","webpack:///./src/app/images/brands/video/daily-voice-red.js","webpack:///./src/app/images/brands/video/ana-white.js","webpack:///./src/app/components/Video.js","webpack:///./src/app/components/RelatedArticles.js","webpack:///./src/app/components/ArticleSocialShare.js","webpack:///./src/app/components/ArticleGallery.js","webpack:///./src/app/components/Klangoo.js","webpack:///./src/app/components/OutbrainWidget.js","webpack:///./src/app/pages/Article.js","webpack:///../common/lib/ion-dom/distribution/ion-dom.js","webpack:///./src/app/static/icons/no-search-results-v2.svg","webpack:///./src/app/static/weather/cloudy.svg","webpack:///./src/app/static/social-icons/x.svg","webpack:///./src/app/components/MostReadArticles.js","webpack:///./src/app/components/EditorsChoice.js","webpack:///./src/app/components/Sidebar.js","webpack:///./src/app/static/weather/thunder.svg","webpack:///./src/app/pages/NotFound.js","webpack:///./src/app/components/WingBanners.js","webpack:///./src/app/static/weather/sunny.svg","webpack:///./src/app/components/Lyftitec.js","webpack:///./src/app/static/weather/pcloudy.svg"],"names":["module","exports","mpuRHS","Default","articles","section","authorName","noImage","isConnected","sectionLabel","moreButton","relatedSections","withReadCount","adPath","hasMounted","useHasMounted","className","map","relatedSection","key","id","to","label","getSectionLabel","article","index","contentKey","ArticleCard","width","Ad","path","process","slotId","targeting","MPU","collapseEmptyDiv","mapping","FORMATS","mpu","Lyftitec","LeaderboardTop","Leaderboard","Wing","DefaultSectionPage","props","Template","template","DefaultTemplate","WingBanners","useSmall","location","onSlotRenderEndedLeft","onSlotRenderEndedRight","mappingRight","mappingLeft","Helmet","titleTemplate","title","property","content","logo","itemProp","name","description","url","keywords","twitterName","itemprop","interstitial","anchor","MAPPINGS","Interstitial","leaderboard","leaderboardtop","isPage0","component","p","Sidebar","count","pageSize","NoImage","notFound","NotFound","withMore","page0Limit","defaultProps","connect","state","AuthorArticles","AuthorSectionPage","DefaultSection","qs","parse","search","ignoreQueryPrefix","page","match","strict","exact","render","params","pathname","itle","url2section","Article","Logo","xmlns","height","viewBox","fill","stroke","strokeWidth","points","d","SvgComponent","x","y","xmlSpace","data-name","w","h","dangerouslySetInnerHTML","__html","Branding","IndependentOnline","iolLogo","DailyVoice","dvdLogo","AfricanNewsAgency","anaLogo","VideoPlayer","videoNode","useRef","player","brandingPath","BrandingLogo","branding","tw","th","channel","ChannelBrandingLogo","useEffect","videojs","current","img","controlBar","addChild","addClass","createRoot","contentEl","ima","adLabel","adTagUrl","dispose","data-vjs-player","ref","RelatedArticles","relatedArticles","relatedArticle","href","externalUrl","headline","ArticleSocialShare","FacebookShareButton","quote","FacebookIcon","size","TwitterShareButton","src","sT","style","marginBottom","alt","media","PinterestShareButton","PinterestIcon","WhatsappShareButton","separator","WhatsappIcon","EmailShareButton","EmailIcon","ArticleGallery","photoIndex","isOpen","gallery","this","resizeURL","image","onClick","setState","shape","mainSrc","nextSrc","length","prevSrc","imageCaption","caption","onCloseRequest","onMovePrevRequest","onMoveNextRequest","Component","Klangoo","__magnetLaunch","type","async","data-widget-id","widgetId","Outbrain","dataSrc","canonical","dataWidgetId","React","scriptloaded","bind","handleSubmit","processVideo","previewArticle","serverArticleRender","email","field","value","validateEmail","validateName","userToken","result","document","getElementById","competition","form","insertAdjacentHTML","event","preventDefault","elements","submitCompetition","formElements","formEntries","i","checked","push","getAllFormFields","prevProps","hasError","fetchArticle","scripts","processArticle","message","errorNode","getElementsByClassName","parentNode","removeChild","errors","Object","keys","errElement","showErrorMessage","ArticlePushContext","setPreviewArticle","now","Date","lastFetch","console","log","nodeScriptReplace","node","tagName","callback","script","createElement","text","innerHTML","attributes","setAttribute","nodeScriptIs","replaceChild","nodeScriptClone","children","childNodes","bodyHTML","images","calc","ImageCalculator","JSON","replace","imgOffsetX","parseInt","offsetx","imgOffsetY","offsety","imgCropWidth","cropwidth","imgCropHeight","imageWidth","imageHeight","crops","imageCrop","split","Math","round","parseFloat","calcHeight","getCropCoordsForShape","cropWidth","cropHeight","buildImageUrl","authors","author","arr","hasAuthorPage","slug","articleNode","onload","scriptLoaded","querySelectorAll","v","sources","getElementsByTagName","s","getAttribute","v2","cssText","hasAttribute","decodeURIComponent","e","Video","poster","autoplay","fluid","preload","controls","parentElement","competitionFormNode","onsubmit","checkCanonical","is404","role","aria-label","error","hasFetched","titleKey","IonArticle","slice","tagsList","primaryTag","secondaryTags","concat","tags","published","formatDate","mainImage","videos","getImageObject","defaultWidth","competitionSlug","getCompetitionSlug","competitionPayload","competitionExpired","hasErrorSubmit","hasSubmitted","stringify","formData","socialImageSrcUrl","socialTeaserImage","calcImageSrcUrl","undefined","canonicalUri","getCanonicalUri","resizeImages","setCompetition","bodyElements","relatedArticlesPresent","proposedArticles","readNext","lengthArray","pop","videoSources","mp4","socialTeaserHeadline","socialAbstract","tag","join","modified","canonicalUrl","rel","getSectionId","altText","formatImageCaption","thumbnailURL","renderAuthors","element","Inarticle","inarticle","unknownImage","sectionSlug","window","substr","PulseLoader","color","loading","margin","assign","user","dispatch","bindActionCreators","MostReadArticles","fetchArticles","fetchMostReadArticles","fetchMoreArticles","mostReadArticles","EditorsChoice","fetchEditorsChoiceArticles","rawArticles","isFetching","editorsChoice","pictures","sunny","windy","cloudy","partlycloudyday","pcloudy","showersday","rain","modheavyrain","rainy","thunder","sticky","handleChange","onTabMostReadSelected","onTabEditorsChoiceSelected","newState","target","updateForm","subscribeNewsletter","setMostReadTab","reinitialize","fetchWeather","magazineCover","fetchMagazineCover","today","dd","getDate","mm","getMonth","yyyy","getFullYear","10","11","12","showForm","hasSubmited","isSubmiting","submitting","showThankYou","setStickyRef","Sticky","context","mostReadTab","onChange","htmlFor","SACovidButton","renderDate","weather","Forecasts","ForecastDay1","Day","Weather","Picture","WeatherFull","Temperature","AppTemp","onSubmit","placeholder","required","active","indeterminate","mpu600","subscribe","app","staticContext","NoResults","itemType","withRouter","values","deviceWidth","wingbanner","onSlotRenderEnded","apping","useLocation","defer","protocol","head","appendChild"],"mappings":"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","file":"static/js/pages-Article.5dcd730e.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/windy.fac784ea.svg\";","module.exports = \"data:image/jpeg;base64,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HBCnKKC1qqkAYjSPMIApcrp9pRmSgSrbjGaSzoKcmVpSEKS40oKAaaoTpAKBCceaAOwwAgBACAEAIAQAgBACAEAIA4P+NfvBn5dH3HoA7Bkn7vkvl2ftpgC4gBAGjZWZGZxxc1LtoXMFISpCjcvlNChSVihbWCAK1FRzpKUqHHEosqy+pLc0DPuMrUl9ISEVoXSqVUqiQSqtCmitVE0CiMbxuqOeVMJbSWx2Gstr2f57GWTkJp90IaaS60UkHN3wj4aJW+oAXNJdQjFVw3gq9UzjWlwQndba8dnh+7Oo5KZLNSTawlKc66b7iki6CrGgSOZAqQB3mgrFqWC2utQXmbFHSwQAgBACAEAIAQAgBACAEAIAQAgBACAEAIAQAgBACAEAIAQAgBACAEAcH/Gv3gz8uj7j0AQbH/GGebl2G0tyxShttAJS5WgSkCunroIAnctdobKV3HPUgBy12hspXcc9SAHLXaGyldxz1IActdobKV3HPUgBy12hspXcc9SAHLXaGyldxz1IActdobKV3HPUgBy12hspXcc9SAHLXaGyldxz1IActdobKV3HPUgBy12hspXcc9SAHLXaGyldxz1IActdobKV3HPUgBy12hspXcc9SAHLXaGyldxz1IActdobKV3HPUgBy12hspXcc9SAHLXaGyldxz1IActdobKV3HPUgBy12hspXcc9SAHLXaGyldxz1IActdobKV3HPUgBy12hspXcc9SAHLXaGyldxz1IActdobKV3HPUgBy12hspXcc9SAHLXaGyldxz1IActdobKV3HPUgBy12hspXcc9SAHLXaGyldxz1IActdobKV3HPUgBy12hspXcc9SAHLXaGyldxz1IActdobKV3HPUgBy12hspXcc9SAHLXaGyldxz1IA59lzlzMTcwhxxDQUGwiiEqAoFLPOo41UYA//9k=\"","module.exports = __webpack_public_path__ + \"static/media/rain.ac95ca87.svg\";","import React, { Fragment } from 'react'\nimport ArticleCard from '../../components/ArticleCard'\nimport Ad from '../../components/Ad'\nimport { FORMATS } from '../../components/AdFormats'\nimport { Link } from 'react-router-dom'\nimport { getSectionLabel } from 'ion-sections'\nimport { Mobile, MobileElse } from 'ion-media'\nimport useHasMounted from '../../components/useHasMounted'\nimport Lyftitec from '../../components/Lyftitec'\n\nconst mpuRHS = [\n [[1024, 0], [[300, 250], [3, 3]]],\n [[640, 0], [[300, 250], [336, 280], [3, 3]]],\n [[0, 0], [[300, 600], [336, 280], [320, 100], [320, 50], [300, 250], [300, 100], [300, 50], [3, 3]]]\n]\n\nconst Default = ({ articles, authorName, section, noImage, isConnected, sectionLabel, moreButton, relatedSections, withReadCount, adPath }) => {\n const hasMounted = useHasMounted()\n return (\n <>\n <h1><span>{sectionLabel}</span></h1>\n <div className='related-sections'>\n {relatedSections && (\n <>\n <p>Related Sections</p>\n <nav>\n <ul>\n {relatedSections.map((relatedSection) => {\n return (\n <li key={relatedSection.id}>\n <Link to={'/' + relatedSection.id}>\n {(relatedSection.label && (relatedSection.label)) || (getSectionLabel(relatedSection.id))}\n </Link>\n </li>\n )\n })}\n </ul>\n </nav>\n </>\n )}\n </div>\n <div className='sections'>\n {articles.map((article, index) => {\n return (\n <Fragment key={article.contentKey}>\n {((index - 23) / 16) <= -1 && (\n <>\n <Mobile>\n <ArticleCard article={article} noImage={noImage} width={320} withReadCount={withReadCount} />\n </Mobile>\n {hasMounted &&\n <MobileElse>\n <ArticleCard article={article} noImage={noImage} width={325} withReadCount={withReadCount} />\n </MobileElse>}\n </>\n )}\n {((index - 23) / 16) === -1 && (\n <Ad isConnected={isConnected} path={`/${process.env.RAZZLE_DFP_CODE}/${adPath || section}`} slotId='MPU-topright' targeting={{ MPU: 'topright' }} collapseEmptyDiv className='advert-mpu-right' mapping={mpuRHS} {...FORMATS.mpu} />\n )}\n {index === 9 && process.env.RAZZLE_ENABLE_LYTITEC &&\n <div className='advert-leaderboard '>\n <Lyftitec />\n </div>}\n {((index - 23) / 16) > -1 && (\n <>\n <Mobile>\n <ArticleCard article={article} noImage={noImage} width={320} withReadCount={withReadCount} />\n </Mobile>\n {hasMounted &&\n <MobileElse>\n <ArticleCard article={article} noImage={noImage} width={325} withReadCount={withReadCount} />\n </MobileElse>}\n </>\n )}\n </Fragment>\n )\n })}\n </div>\n {moreButton}\n </>\n )\n}\n\nexport default Default\n","import React from 'react'\nimport Helmet from 'react-helmet'\nimport { connect } from 'react-redux'\nimport { Articles, SectionMeta } from 'ion-article-cmp'\nimport { getSectionLabel } from 'ion-sections'\nimport Ad from '../components/Ad'\nimport { FORMATS, MAPPINGS } from '../components/AdFormats'\nimport Sidebar from '../components/Sidebar'\nimport logo from '../static/general/daily-voice.jpg'\nimport NoImage from '../static/no-image.png'\nimport DefaultTemplate from '../templates/Articles/Default'\nimport NotFound from './NotFound'\nimport ArticleCard from '../components/ArticleCard'\nimport { MobileElse } from 'ion-media'\nimport useHasMounted from '../components/useHasMounted'\nimport WingBanners from '../components/WingBanners'\n\nconst LeaderboardTop = [\n [[1024, 0], [[728, 90], [970, 90]]],\n [[640, 0], [[460, 60]]],\n [[0, 0], [[320, 100], [320, 50], [300, 100], [300, 50]]]\n]\n\nconst Leaderboard = [\n [[1024, 0], [[728, 90], [970, 90], [970, 250]]],\n [[640, 0], [[460, 60]]],\n [[0, 0], [[300, 600], [336, 280], [320, 100], [320, 50], [300, 250], [300, 100], [300, 50]]]\n]\n\nconst Wing = [\n [[1024, 0], [[160, 600], [120, 600]]],\n [[640, 0], []],\n [[0, 0], []]\n]\n\nconst DefaultSectionPage = (props) => {\n const hasMounted = useHasMounted()\n const Template = props.template || DefaultTemplate\n return (\n <>\n <WingBanners useSmall={props.useSmall} isConnected={props.isConnected} location={props.location} onSlotRenderEndedLeft={props.onSlotRenderEndedLeft} onSlotRenderEndedRight={props.onSlotRenderEndedRight} mappingRight={Wing} mappingLeft={Wing} />\n <Helmet\n titleTemplate='%s'\n title={props.title || getSectionLabel(props.section)}\n >\n <meta property='fb:app_id' content='293175074032541' />\n <meta property='og:type' content='section' />\n <meta property='og:title' content={props.title || getSectionLabel(props.section)} />\n <meta property='og:image' content={logo} />\n <meta itemProp='headline' content={props.title || 'Latest News from ' + getSectionLabel(props.section)} />\n <meta name='description' content={props.description} />\n <meta itemProp='description' content={props.description} />\n <meta property='og:description' content={props.description} />\n <meta property='og:url' content={props.url} />\n <meta property='keywords' content={props.keywords} />\n <meta name='twitter:site' content={props.twitterName} />\n <meta name='twitter:creator' content={props.twitterName} />\n <meta name='twitter:title' content={props.title || getSectionLabel(props.section)} />\n <meta name='twitter:description' content={props.description} />\n <meta itemprop='image' content={logo} />\n <meta itemprop='thumbnailUrl' content={logo} />\n <meta name='twitter:card' content='summary_large_image' />\n <meta name='twitter:image:src' content={logo} />\n </Helmet>\n <SectionMeta {...props} />\n <Ad isConnected={props.isConnected} path={`/${process.env.RAZZLE_DFP_CODE}/${props.section}`} slotId='interstitial' targeting={{ interstitial: 'interstitial' }} collapseEmptyDiv className='advert-leaderboard' anchor='interstitial' mapping={MAPPINGS.Interstitial} {...FORMATS.interstitial} />\n <Ad isConnected={props.isConnected} path={`/${process.env.RAZZLE_DFP_CODE}/${props.adPath || props.section}`} slotId='leaderboard-top' targeting={{ leaderboard: 'top' }} collapseEmptyDiv className='advert-leaderboard' mapping={LeaderboardTop} {...FORMATS.leaderboardtop} />\n {props.isPage0 &&\n <Articles\n {...props} className='' component={(p) => (\n <div className='wrapper article-listing'>\n <div className='article-list section-page'>\n <Template {...p} />\n </div>\n <Sidebar {...props} />\n </div>\n )} section={props.section} sectionLabel={props.sectionLabel} count={17} pageSize={17} noImage={NoImage} notFound={NotFound} withMore\n />}\n {!props.isPage0 &&\n <Articles\n {...props} className='' component={(p) => (\n <div className='wrapper article-listing'>\n <div className='article-list paged'>\n <h1><span>{p.sectionLabel}</span></h1>\n {p.articles.map((article) => <ArticleCard key={article.contentKey} article={article} noImage={p.noImage} />)}\n {p.moreButton}\n </div>\n {/* <Sidebar {...props} /> */}\n </div>\n )} section={props.section} page0Limit={16} pageSize={16} noImage={NoImage} notFound={NotFound} withMore\n />}\n {hasMounted &&\n <MobileElse>\n <Ad isConnected={props.isConnected} path={`/${process.env.RAZZLE_DFP_CODE}/${props.adPath || props.section}`} slotId='leaderboard-bot' targeting={{ leaderboard: 'bot' }} collapseEmptyDiv className='advert-leaderboard' mapping={Leaderboard} {...FORMATS.leaderboard} />\n </MobileElse>}\n </>\n )\n}\n\nDefaultSectionPage.defaultProps = {\n component: DefaultTemplate,\n section: 'homepage'\n}\n\nexport default connect((state) => ({ articles: state.articles }))(DefaultSectionPage)\n","import React, { Fragment } from 'react'\nimport Helmet from 'react-helmet'\nimport { Articles, SectionMeta } from 'ion-article-cmp'\nimport { getSectionLabel } from 'ion-sections'\nimport Ad from '../components/Ad'\nimport { FORMATS, MAPPINGS } from '../components/AdFormats'\nimport Sidebar from '../components/Sidebar'\nimport NoImage from '../static/no-image.png'\nimport ArticleCard from '../components/ArticleCard'\nimport NotFound from './NotFound'\nimport WingBanners from '../components/WingBanners'\n\nconst AuthorArticles = ({ articles, sectionLabel, noImage, moreButton }) => {\n const title = 'Articles by ' + sectionLabel\n return (\n <>\n <Helmet title={title}>\n <meta property='og:title' content={title} />\n <meta itemProp='headline' content={title} />\n <meta name='twitter:title' content={title} />\n\n </Helmet>\n <h1>{title}</h1>\n {articles.map((article) => {\n return (\n <ArticleCard key={article.contentKey} article={article} noImage={noImage} />\n )\n })}\n {moreButton}\n </>\n )\n}\n\nconst LeaderboardTop = [\n [[1024, 0], [[728, 90], [970, 90]]],\n [[640, 0], [[460, 60]]],\n [[0, 0], [[320, 100], [320, 50], [300, 100], [300, 50]]]\n]\n\nconst Leaderboard = [\n [[1024, 0], [[728, 90], [970, 90], [970, 250]]],\n [[640, 0], [[460, 60]]],\n [[0, 0], [[300, 600], [336, 280], [320, 100], [320, 50], [300, 250], [300, 100], [300, 50]]]\n]\n\nconst Wing = [\n [[1024, 0], [[160, 600], [120, 600]]],\n [[640, 0], []],\n [[0, 0], []]\n]\n\nconst AuthorSectionPage = (props) => (\n <>\n <WingBanners useSmall={props.useSmall} isConnected={props.isConnected} location={props.location} onSlotRenderEndedLeft={props.onSlotRenderEndedLeft} onSlotRenderEndedRight={props.onSlotRenderEndedRight} mappingLeft={Wing} mappingRight={Wing} />\n <Helmet\n titleTemplate='%s'\n title={props.title || getSectionLabel(props.section)}\n >\n <meta property='og:type' content='section' />\n <meta name='description' content={props.description} />\n <meta itemProp='description' content={props.description} />\n <meta property='og:description' content={props.description} />\n <meta property='og:url' content={props.url} />\n <meta property='keywords' content={props.keywords} />\n <meta name='twitter:description' content={props.description} />\n </Helmet>\n <SectionMeta {...props} />\n <Ad isConnected={this.props.isConnected} path={`/${process.env.RAZZLE_DFP_CODE}/${props.section}`} slotId='interstitial' targeting={{ interstitial: 'interstitial' }} collapseEmptyDiv className='advert-leaderboard' anchor='interstitial' mapping={MAPPINGS.Interstitial} {...FORMATS.interstitial} />\n <Ad isConnected={props.isConnected} path={`/${process.env.RAZZLE_DFP_CODE}/${props.adPath || props.section}`} slotId='leaderboard-top' targeting={{ leaderboard: 'top' }} collapseEmptyDiv className='advert-leaderboard-top' mapping={LeaderboardTop} {...FORMATS.leaderboardtop} />\n <div className='wrapper article-listing'>\n {props.isPage0 &&\n <Articles {...props} component={AuthorArticles} section={props.section} count={15} pageSize={14} noImage={NoImage} notFound={NotFound} withMore />}\n {!props.isPage0 &&\n <Articles className='article-list paged' {...props} component={AuthorArticles} section={props.section} page0Limit={15} pageSize={14} noImage={NoImage} notFound={NotFound} withMore />}\n <Sidebar {...props} />\n </div>\n <Ad isConnected={props.isConnected} path={`/${process.env.RAZZLE_DFP_CODE}/${props.adPath || props.section}`} slotId='leaderboard-bot' targeting={{ leaderboard: 'bot' }} collapseEmptyDiv className='advert-leaderboard-bot' mapping={Leaderboard} {...FORMATS.leaderboard} />\n </>\n)\n\nAuthorSectionPage.defaultProps = {\n section: 'authors/molife-kumona'\n}\n\nexport default AuthorSectionPage\n","import React, { Fragment } from 'react'\nimport { Route, Switch } from 'react-router-dom'\nimport { Redirect } from 'react-router'\nimport Helmet from 'react-helmet'\nimport { getSectionLabel, url2section } from 'ion-sections'\nimport qs from 'qs'\n\nimport DefaultSectionPage from '../pages/DefaultSectionPage'\nimport Article from '../pages/Article'\nimport NotFound from '../pages/NotFound'\nimport AuthorSectionPage from '../pages/AuthorSectionPage'\n\nconst DefaultSection = (props) => {\n const params = props.location ? qs.parse(props.location.search, { ignoreQueryPrefix: true }) : { page: 0 }\n const isPage0 = (params.page || 0) < 2\n\n return (\n <>\n <Helmet titleTemplate={props.titleTemplate} />\n <Switch>\n <Route path={props.match.url + '/:section([a-zA-Z0-9-]+)/'} strict exact render={p => <Redirect to={props.match.url + '/' + p.match.params.section} />} />\n {props.match.url === props.location.pathname && (\n <Switch>\n <Route\n path='/news' exact render={(p) =>\n <DefaultSectionPage\n {...props} {...p} isPage0={isPage0}\n section='news'\n relatedSections={[{ id: 'news/western-cape' }, { id: 'news/national' }, { id: 'news/international' }, { id: 'news/business' }, { id: 'news/politics' }]}\n title='News | The Daily Voice'\n description='The latest Western Cape, National, International, Sport, Entertainment alternative news and opinions. The Daily Voice - Ons Skrik Vir Niks!'\n />}\n />\n <Route\n path='/news/western-cape' exact render={(p) =>\n <DefaultSectionPage\n {...props} {...p} isPage0={isPage0}\n section='news/western-cape'\n relatedSections={[{ id: 'news/national' }, { id: 'news/international' }, { id: 'news/business' }, { id: 'news/politics' }]}\n title='Western Cape | The Daily Voice'\n description='The latest Western Cape, National, International, Sport, Entertainment alternative news and opinions. The Daily Voice - Ons Skrik Vir Niks!'\n />}\n />\n <Route\n path='/news/national' exact render={(p) =>\n <DefaultSectionPage\n {...props} {...p} isPage0={isPage0}\n section='news/national'\n relatedSections={[{ id: 'news/western-cape' }, { id: 'news/international' }, { id: 'news/business' }, { id: 'news/politics' }]}\n title='National | The Daily Voice'\n description='The latest Western Cape, National, International, Sport, Entertainment alternative news and opinions. The Daily Voice - Ons Skrik Vir Niks!'\n />}\n />\n <Route\n path='/news/international' exact render={(p) =>\n <DefaultSectionPage\n {...props} {...p} isPage0={isPage0}\n section='news/international'\n relatedSections={[{ id: 'news/western-cape' }, { id: 'news/national' }, { id: 'news/business' }, { id: 'news/politics' }]}\n title='International | The Daily Voice'\n description='The latest Western Cape, National, International, Sport, Entertainment alternative news and opinions. The Daily Voice - Ons Skrik Vir Niks!'\n />}\n />\n <Route\n path='/news/business' exact render={(p) =>\n <DefaultSectionPage\n {...props} {...p} isPage0={isPage0}\n section='news/business'\n relatedSections={[{ id: 'news/western-cape' }, { id: 'news/national' }, { id: 'news/international' }, { id: 'news/politics' }]}\n title='Business | The Daily Voice'\n description='The latest Western Cape, National, International, Sport, Entertainment alternative news and opinions. The Daily Voice - Ons Skrik Vir Niks!'\n />}\n />\n <Route\n path='/news/politics' exact render={(p) =>\n <DefaultSectionPage\n {...props} {...p} isPage0={isPage0}\n section='news/politics'\n relatedSections={[{ id: 'news/western-cape' }, { id: 'news/national' }, { id: 'news/international' }, { id: 'news/business' }]}\n title='Politics | The Daily Voice'\n description='The latest Western Cape, National, International, Sport, Entertainment alternative news and opinions. The Daily Voice - Ons Skrik Vir Niks!'\n />}\n />\n <Route\n path='/sport' exact render={(p) =>\n <DefaultSectionPage\n {...props} {...p} isPage0={isPage0}\n section='sport'\n relatedSections={[{ id: 'sport/highlights' }, { id: 'sport/cricket' }, { id: 'sport/rugby' }, { id: 'sport/soccer' }]}\n title='Sport | The Daily Voice'\n description='The latest Western Cape, National, International, Sport, Entertainment alternative news and opinions. The Daily Voice - Ons Skrik Vir Niks!'\n />}\n />\n <Route\n path='/sport/highlights' exact render={(p) =>\n <DefaultSectionPage\n {...props} {...p} isPage0={isPage0}\n section='sport/highlights'\n relatedSections={[{ id: 'sport/cricket' }, { id: 'sport/rugby' }, { id: 'sport/soccer' }]}\n title='Sport | The Daily Voice'\n description='The latest Western Cape, National, International, Sport, Entertainment alternative news and opinions. The Daily Voice - Ons Skrik Vir Niks!'\n />}\n />\n <Route\n path='/sport/cricket' exact render={(p) =>\n <DefaultSectionPage\n {...props} {...p} isPage0={isPage0}\n section='sport/cricket'\n relatedSections={[{ id: 'sport/highlights' }, { id: 'sport/rugby' }, { id: 'sport/soccer' }]}\n title='Cricket | The Daily Voice'\n description='The latest Western Cape, National, International, Sport, Entertainment alternative news and opinions. The Daily Voice - Ons Skrik Vir Niks!'\n />}\n />\n <Route\n path='/sport/rugby' exact render={(p) =>\n <DefaultSectionPage\n {...props} {...p} isPage0={isPage0}\n section='sport/rugby'\n relatedSections={[{ id: 'sport/highlights' }, { id: 'sport/cricket' }, { id: 'sport/soccer' }]}\n title='Rugby | The Daily Voice'\n description='The latest Western Cape, National, International, Sport, Entertainment alternative news and opinions. The Daily Voice - Ons Skrik Vir Niks!'\n />}\n />\n <Route\n path='/sport/soccer' exact render={(p) =>\n <DefaultSectionPage\n {...props} {...p} isPage0={isPage0}\n section='sport/soccer'\n relatedSections={[{ id: 'sport/highlights' }, { id: 'sport/cricket' }, { id: 'sport/rugby' }]}\n title='Soccer | The Daily Voice'\n description='The latest Western Cape, National, International, Sport, Entertainment alternative news and opinions. The Daily Voice - Ons Skrik Vir Niks!'\n />}\n />\n <Route\n path='/lifestyle-entertainment' exact render={(p) =>\n <DefaultSectionPage\n {...props} {...p} isPage0={isPage0}\n section='lifestyle-entertainment'\n relatedSections={[{ id: 'lifestyle-entertainment/celebrity' }, { id: 'lifestyle-entertainment/entertainment' }, { id: 'lifestyle-entertainment/recipes' }, { id: 'lifestyle-entertainment/horoscope' }, { id: 'lifestyle-entertainment/cape-spy' }, { id: 'lifestyle-entertainment/travel' }]}\n title='Lifestyle & Entertainment | The Daily Voice'\n description='The latest Western Cape, National, International, Sport, Entertainment alternative news and opinions. The Daily Voice - Ons Skrik Vir Niks!'\n />}\n />\n <Route\n path='/lifestyle-entertainment/celebrity' exact render={(p) =>\n <DefaultSectionPage\n {...props} {...p} isPage0={isPage0}\n section='lifestyle-entertainment/celebrity'\n relatedSections={[{ id: 'lifestyle-entertainment/entertainment' }, { id: 'lifestyle-entertainment/recipes' }, { id: 'lifestyle-entertainment/horoscope' }, { id: 'lifestyle-entertainment/cape-spy' }, { id: 'lifestyle-entertainment/travel' }]}\n title='Celebrity | The Daily Voice'\n description='The latest Western Cape, National, International, Sport, Entertainment alternative news and opinions. The Daily Voice - Ons Skrik Vir Niks!'\n />}\n />\n <Route\n path='/lifestyle-entertainment/entertainment' exact render={(p) =>\n <DefaultSectionPage\n {...props} {...p} isPage0={isPage0}\n section='lifestyle-entertainment/entertainment'\n relatedSections={[{ id: 'lifestyle-entertainment/celebrity' }, { id: 'lifestyle-entertainment/recipes' }, { id: 'lifestyle-entertainment/horoscope' }, { id: 'lifestyle-entertainment/cape-spy' }, { id: 'lifestyle-entertainment/travel' }]}\n title='Entertainment | The Daily Voice'\n description='The latest Western Cape, National, International, Sport, Entertainment alternative news and opinions. The Daily Voice - Ons Skrik Vir Niks!'\n />}\n />\n <Route\n path='/lifestyle-entertainment/cape-spy' exact render={(p) =>\n <DefaultSectionPage\n {...props} {...p} isPage0={isPage0}\n section='lifestyle-entertainment/cape-spy'\n relatedSections={[{ id: 'lifestyle-entertainment/celebrity' }, { id: 'lifestyle-entertainment/entertainment' }, { id: 'lifestyle-entertainment/recipes' }, { id: 'lifestyle-entertainment/horoscope' }, { id: 'lifestyle-entertainment/travel' }]}\n title='Cape Spy | The Daily Voice'\n description='The latest Western Cape, National, International, Sport, Entertainment alternative news and opinions. The Daily Voice - Ons Skrik Vir Niks!'\n />}\n />\n <Route\n path='/lifestyle-entertainment/cinema' exact render={(p) =>\n <DefaultSectionPage\n {...props} {...p} isPage0={isPage0}\n section='lifestyle-entertainment/cinema'\n relatedSections={[{ id: 'lifestyle-entertainment/celebrity' }, { id: 'lifestyle-entertainment/entertainment' }, { id: 'lifestyle-entertainment/recipes' }, { id: 'lifestyle-entertainment/horoscope' }, { id: 'lifestyle-entertainment/cape-spy' }, { id: 'lifestyle-entertainment/travel' }]}\n title='Cinema | The Daily Voice'\n description='The latest Western Cape, National, International, Sport, Entertainment alternative news and opinions. The Daily Voice - Ons Skrik Vir Niks!'\n />}\n />\n <Route\n path='/lifestyle-entertainment/gadget-games' exact render={(p) =>\n <DefaultSectionPage\n {...props} {...p} isPage0={isPage0}\n section='lifestyle-entertainment/gadget-games'\n relatedSections={[{ id: 'lifestyle-entertainment/celebrity' }, { id: 'lifestyle-entertainment/entertainment' }, { id: 'lifestyle-entertainment/recipes' }, { id: 'lifestyle-entertainment/horoscope' }, { id: 'lifestyle-entertainment/cape-spy' }, { id: 'lifestyle-entertainment/travel' }]}\n title='Gadgets & Games | The Daily Voice'\n description='The latest Western Cape, National, International, Sport, Entertainment alternative news and opinions. The Daily Voice - Ons Skrik Vir Niks!'\n />}\n />\n <Route\n path='/lifestyle-entertainment/tonight' exact render={(p) =>\n <DefaultSectionPage\n {...props} {...p} isPage0={isPage0}\n section='lifestyle-entertainment/tonight'\n relatedSections={[{ id: 'lifestyle-entertainment/celebrity' }, { id: 'lifestyle-entertainment/entertainment' }, { id: 'lifestyle-entertainment/recipes' }, { id: 'lifestyle-entertainment/horoscope' }, { id: 'lifestyle-entertainment/cape-spy' }, { id: 'lifestyle-entertainment/travel' }]}\n title='Tonight | The Daily Voice'\n description='The latest Western Cape, National, International, Sport, Entertainment alternative news and opinions. The Daily Voice - Ons Skrik Vir Niks!'\n />}\n />\n <Route\n path='/lifestyle-entertainment/recipes' exact render={(p) =>\n <DefaultSectionPage\n {...props} {...p} isPage0={isPage0}\n section='lifestyle-entertainment/recipes'\n relatedSections={[{ id: 'lifestyle-entertainment/celebrity' }, { id: 'lifestyle-entertainment/entertainment' }, { id: 'lifestyle-entertainment/horoscope' }, { id: 'lifestyle-entertainment/cape-spy' }, { id: 'lifestyle-entertainment/travel' }]}\n title='Recipies | The Daily Voice'\n description='The latest Western Cape, National, International, Sport, Entertainment alternative news and opinions. The Daily Voice - Ons Skrik Vir Niks!'\n />}\n />\n <Route\n path='/lifestyle-entertainment/lifestyle' exact render={(p) =>\n <DefaultSectionPage\n {...props} {...p} isPage0={isPage0}\n section='lifestyle-entertainment/lifestyle'\n relatedSections={[{ id: 'lifestyle-entertainment/celebrity' }, { id: 'lifestyle-entertainment/entertainment' }, { id: 'lifestyle-entertainment/recipes' }, { id: 'lifestyle-entertainment/horoscope' }, { id: 'lifestyle-entertainment/cape-spy' }, { id: 'lifestyle-entertainment/travel' }]}\n title='Lifestyle | The Daily Voice'\n description='The latest Western Cape, National, International, Sport, Entertainment alternative news and opinions. The Daily Voice - Ons Skrik Vir Niks!'\n />}\n />\n <Route\n path='/lifestyle-entertainment/travel' exact render={(p) =>\n <DefaultSectionPage\n {...props} {...p} isPage0={isPage0}\n section='lifestyle-entertainment/travel'\n relatedSections={[{ id: 'lifestyle-entertainment/celebrity' }, { id: 'lifestyle-entertainment/entertainment' }, { id: 'lifestyle-entertainment/recipes' }, { id: 'lifestyle-entertainment/horoscope' }, { id: 'lifestyle-entertainment/cape-spy' }]}\n title='Travel | The Daily Voice'\n description='The latest Western Cape, National, International, Sport, Entertainment alternative news and opinions. The Daily Voice - Ons Skrik Vir Niks!'\n />}\n />\n <Route\n path='/lifestyle-entertainment/parenting' exact render={(p) =>\n <DefaultSectionPage\n {...props} {...p} isPage0={isPage0}\n section='lifestyle-entertainment/parenting'\n relatedSections={[{ id: 'lifestyle-entertainment/celebrity' }, { id: 'lifestyle-entertainment/entertainment' }, { id: 'lifestyle-entertainment/recipes' }, { id: 'lifestyle-entertainment/horoscope' }, { id: 'lifestyle-entertainment/cape-spy' }, { id: 'lifestyle-entertainment/travel' }]}\n title='Parenting | The Daily Voice'\n description='The latest Western Cape, National, International, Sport, Entertainment alternative news and opinions. The Daily Voice - Ons Skrik Vir Niks!'\n />}\n />\n <Route\n path='/lifestyle-entertainment/health-beauty' exact render={(p) =>\n <DefaultSectionPage\n {...props} {...p} isPage0={isPage0}\n section='lifestyle-entertainment/health-beauty'\n relatedSections={[{ id: 'lifestyle-entertainment/celebrity' }, { id: 'lifestyle-entertainment/entertainment' }, { id: 'lifestyle-entertainment/recipes' }, { id: 'lifestyle-entertainment/horoscope' }, { id: 'lifestyle-entertainment/cape-spy' }, { id: 'lifestyle-entertainment/travel' }]}\n title='Health & Beauty | The Daily Voice'\n description='The latest Western Cape, National, International, Sport, Entertainment alternative news and opinions. The Daily Voice - Ons Skrik Vir Niks!'\n />}\n />\n <Route\n path='/lifestyle-entertainment/horoscope' exact render={(p) =>\n <DefaultSectionPage\n {...props} {...p} isPage0={isPage0}\n section='lifestyle-entertainment/horoscope'\n relatedSections={[{ id: 'lifestyle-entertainment/celebrity' }, { id: 'lifestyle-entertainment/entertainment' }, { id: 'lifestyle-entertainment/recipes' }, { id: 'lifestyle-entertainment/cape-spy' }, { id: 'lifestyle-entertainment/travel' }]}\n title='Horoscope | The Daily Voice'\n description='The latest Western Cape, National, International, Sport, Entertainment alternative news and opinions. The Daily Voice - Ons Skrik Vir Niks!'\n />}\n />\n <Route\n path='/lifestyle-entertainment/photo-of-the-day' exact render={(p) =>\n <DefaultSectionPage\n {...props} {...p} isPage0={isPage0}\n section='lifestyle-entertainment/photo-of-the-day'\n relatedSections={[{ id: 'lifestyle-entertainment/celebrity' }, { id: 'lifestyle-entertainment/entertainment' }, { id: 'lifestyle-entertainment/recipes' }, { id: 'lifestyle-entertainment/horoscope' }, { id: 'lifestyle-entertainment/cape-spy' }, { id: 'lifestyle-entertainment/travel' }]}\n title='Photo of the Day | The Daily Voice'\n description='The latest Western Cape, National, International, Sport, Entertainment alternative news and opinions. The Daily Voice - Ons Skrik Vir Niks!'\n />}\n />\n <Route\n path='/opinion' exact render={(p) =>\n <DefaultSectionPage\n {...props} {...p} isPage0={isPage0}\n section='opinion'\n relatedSections={[{ id: 'opinion/sport' }, { id: 'opinion/motoring' }, { id: 'opinion/current-affairs' }, { id: 'opinion/lifestyle' }]}\n title='Opinion | The Daily Voice'\n description='The latest Western Cape, National, International, Sport, Entertainment alternative news and opinions. The Daily Voice - Ons Skrik Vir Niks!'\n />}\n />\n <Route\n path='/opinion/sport' exact render={(p) =>\n <DefaultSectionPage\n {...props} {...p} isPage0={isPage0}\n section='opinion/sport'\n relatedSections={[{ id: 'opinion/sport/dudley-carstens' }, { id: 'opinion/sport/matthew-marcus' }, { id: 'opinion/sport/nick-feinberg' }, { id: 'opinion/sport/julia-stuart' }]}\n title='Sport | The Daily Voice'\n description='The latest Western Cape, National, International, Sport, Entertainment alternative news and opinions. The Daily Voice - Ons Skrik Vir Niks!'\n />}\n />\n <Route\n path='/opinion/sport/dudley-carstens' exact render={(p) =>\n <DefaultSectionPage\n {...props} {...p} isPage0={isPage0}\n section='opinion/sport/dudley-carstens'\n relatedSections={[{ id: 'opinion/sport/matthew-marcus' }, { id: 'opinion/sport/nick-feinberg' }, { id: 'opinion/sport/julia-stuart' }]}\n title='Dudley Carstens | The Daily Voice'\n description='The latest Western Cape, National, International, Sport, Entertainment alternative news and opinions. The Daily Voice - Ons Skrik Vir Niks!'\n />}\n />\n <Route\n path='/opinion/sport/matthew-marcus' exact render={(p) =>\n <DefaultSectionPage\n {...props} {...p} isPage0={isPage0}\n section='opinion/sport/matthew-marcus'\n relatedSections={[{ id: 'opinion/sport/dudley-carstens' }, { id: 'opinion/sport/nick-feinberg' }, { id: 'opinion/sport/julia-stuart' }]}\n title='Matthew Marcus | The Daily Voice'\n description='The latest Western Cape, National, International, Sport, Entertainment alternative news and opinions. The Daily Voice - Ons Skrik Vir Niks!'\n />}\n />\n <Route\n path='/opinion/sport/nick-feinberg' exact render={(p) =>\n <DefaultSectionPage\n {...props} {...p} isPage0={isPage0}\n section='opinion/sport/nick-feinberg'\n relatedSections={[{ id: 'opinion/sport/dudley-carstens' }, { id: 'opinion/sport/matthew-marcus' }, { id: 'opinion/sport/julia-stuart' }]}\n title='Nick Feinberg | The Daily Voice'\n description='The latest Western Cape, National, International, Sport, Entertainment alternative news and opinions. The Daily Voice - Ons Skrik Vir Niks!'\n />}\n />\n <Route\n path='/opinion/sport/julia-stuart' exact render={(p) =>\n <DefaultSectionPage\n {...props} {...p} isPage0={isPage0}\n section='opinion/sport/julia-stuart'\n relatedSections={[{ id: 'opinion/sport/dudley-carstens' }, { id: 'opinion/sport/matthew-marcus' }, { id: 'opinion/sport/nick-feinberg' }]}\n title='Julia Stuart | The Daily Voice'\n description='The latest Western Cape, National, International, Sport, Entertainment alternative news and opinions. The Daily Voice - Ons Skrik Vir Niks!'\n />}\n />\n <Route\n path='/opinion/motoring' exact render={(p) =>\n <DefaultSectionPage\n {...props} {...p} isPage0={isPage0}\n section='opinion/motoring'\n relatedSections={[{ id: 'opinion/motoring/bobby-nitro' }]}\n title='Motoring | The Daily Voice'\n description='The latest Western Cape, National, International, Sport, Entertainment alternative news and opinions. The Daily Voice - Ons Skrik Vir Niks!'\n />}\n />\n <Route\n path='/opinion/motoring/bobby-nitro' exact render={(p) =>\n <DefaultSectionPage\n {...props} {...p} isPage0={isPage0}\n section='opinion/motoring/bobby-nitro'\n title='Bobby Nitro | The Daily Voice'\n description='The latest Western Cape, National, International, Sport, Entertainment alternative news and opinions. The Daily Voice - Ons Skrik Vir Niks!'\n />}\n />\n <Route\n path='/opinion/current-affairs' exact render={(p) =>\n <DefaultSectionPage\n {...props} {...p} isPage0={isPage0}\n section='opinion/current-affairs'\n relatedSections={[{ id: 'opinion/current-affairs/bobby-brown' }, { id: 'opinion/current-affairs/munier-grootbek' }]}\n title='Current Affairs | The Daily Voice'\n description='The latest Western Cape, National, International, Sport, Entertainment alternative news and opinions. The Daily Voice - Ons Skrik Vir Niks!'\n />}\n />\n <Route\n path='/opinion/current-affairs/bobby-brown' exact render={(p) =>\n <DefaultSectionPage\n {...props} {...p} isPage0={isPage0}\n section='opinion/current-affairs/bobby-brown'\n relatedSections={[{ id: 'opinion/current-affairs/munier-grootbek' }]}\n title='Bobby Brown | The Daily Voice'\n description='The latest Western Cape, National, International, Sport, Entertainment alternative news and opinions. The Daily Voice - Ons Skrik Vir Niks!'\n />}\n />\n <Route\n path='/opinion/current-affairs/munier-grootbek' exact render={(p) =>\n <DefaultSectionPage\n {...props} {...p} isPage0={isPage0}\n section='opinion/current-affairs/munier-grootbek'\n relatedSections={[{ id: 'opinion/current-affairs/bobby-brown' }]}\n title='Munier Grootbek | The Daily Voice'\n description='The latest Western Cape, National, International, Sport, Entertainment alternative news and opinions. The Daily Voice - Ons Skrik Vir Niks!'\n />}\n />\n <Route\n path='/opinion/lifestyle' exact render={(p) =>\n <DefaultSectionPage\n {...props} {...p} isPage0={isPage0}\n section='opinion/lifestyle'\n relatedSections={[{ id: 'opinion/lifestyle/cooksisters' }, { id: 'opinion/lifestyle/waseef-piekaan' }, { id: 'opinion/lifestyle/auntie-pearl' }]}\n itle='Lifestyle | The Daily Voice'\n description='The latest Western Cape, National, International, Sport, Entertainment alternative news and opinions. The Daily Voice - Ons Skrik Vir Niks!'\n />}\n />\n <Route\n path='/opinion/lifestyle/cooksisters' exact render={(p) =>\n <DefaultSectionPage\n {...props} {...p} isPage0={isPage0}\n section='opinion/lifestyle/cooksisters'\n relatedSections={[{ id: 'opinion/lifestyle/waseef-piekaan' }, { id: 'opinion/lifestyle/auntie-pearl' }]}\n title='Cooksisters | The Daily Voice'\n description='The latest Western Cape, National, International, Sport, Entertainment alternative news and opinions. The Daily Voice - Ons Skrik Vir Niks!'\n />}\n />\n <Route\n path='/opinion/lifestyle/waseef-piekaan' exact render={(p) =>\n <DefaultSectionPage\n {...props} {...p} isPage0={isPage0}\n section='opinion/lifestyle/waseef-piekaan'\n relatedSections={[{ id: 'opinion/lifestyle/cooksisters' }, { id: 'opinion/lifestyle/auntie-pearl' }]}\n title='Waseef Piekaan | The Daily Voice'\n description='The latest Western Cape, National, International, Sport, Entertainment alternative news and opinions. The Daily Voice - Ons Skrik Vir Niks!'\n />}\n />\n <Route\n path='/opinion/lifestyle/auntie-pearl' exact render={(p) =>\n <DefaultSectionPage\n {...props} {...p} isPage0={isPage0}\n section='opinion/lifestyle/auntie-pearl'\n relatedSections={[{ id: 'opinion/lifestyle/cooksisters' }, { id: 'opinion/lifestyle/waseef-piekaan' }]}\n title='Auntie Pearl | The Daily Voice'\n description='The latest Western Cape, National, International, Sport, Entertainment alternative news and opinions. The Daily Voice - Ons Skrik Vir Niks!'\n />}\n />\n <Route\n path='/multimedia' exact render={(p) =>\n <DefaultSectionPage\n {...props} {...p} isPage0={isPage0}\n section='multimedia'\n title='Multimedia | The Daily Voice'\n description='The latest Western Cape, National, International, Sport, Entertainment alternative news and opinions. The Daily Voice - Ons Skrik Vir Niks!'\n />}\n />\n <Route\n path='/competitions' exact render={(p) =>\n <DefaultSectionPage\n {...props} {...p} isPage0={isPage0}\n section='competitions'\n title='Competitions | The Daily Voice'\n description='The latest Western Cape, National, International, Sport, Entertainment alternative news and opinions. The Daily Voice - Ons Skrik Vir Niks!'\n />}\n />\n <Route\n path='/test' exact render={(p) =>\n <>\n <Helmet>\n <meta name='robots' content='noindex, nofollow' />\n </Helmet>\n <DefaultSectionPage\n {...props} {...p} isPage0={isPage0}\n section='all-content-feed'\n adPath='test'\n title='Test page | The Daily Voice'\n description='Test page for marketing purposes'\n />\n </>}\n />\n <Route\n path='/:section([a-zA-Z0-9/-]+)' exact render={(p) =>\n <DefaultSectionPage\n {...props} {...p} isPage0={isPage0}\n title={getSectionLabel(url2section(props.location.pathname)) + ' | Latest News & Developments | The Daily Voice'}\n section={url2section(props.location.pathname)} url={props.location.pathname}\n />}\n />\n <Route path='*' render={(p) => <NotFound {...props} {...p} />} />\n </Switch>\n )}\n <Route\n path='/authors/:section([a-zA-Z-]+)' render={(p) => <AuthorSectionPage\n {...props} {...p}\n isPage0={isPage0}\n section={'authors/' + p.match.params.section}\n url={props.location.pathname}\n />}\n />\n <Route path={props.match.url + '/:title*([-])*:contentKey([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})'} render={(p) => <Article {...props} {...p} contentKey={p.match.params.contentKey} />} />\n <Route path={props.match.url + '/:contentKey([0-9]{5,})'} render={(p) => <Article {...props} {...p} contentKey={p.match.params.contentKey} />} />\n <Route path={props.match.url + '/:title*([-])*:contentKey([0-9]{5,})'} render={(p) => <Article {...props} {...p} contentKey={p.match.params.contentKey} />} />\n <Route path={props.match.url + '/:section([a-zA-Z0-9-]+)'} render={(p) => <DefaultSection {...props} {...p} />} />\n </Switch>\n </>\n )\n}\n\nexport default DefaultSection\n","import React from 'react'\n\nconst Logo = (props) => (\n <svg xmlns='http://www.w3.org/2000/svg' width={props.width} height={props.height} viewBox='0 0 108 43'>\n <g fill='none'>\n <polygon fill='#FFFFFF' stroke='#000000' strokeWidth='.5' points='41.553 41.966 .401 41.98 .387 .702 41.539 .688' />\n <path fill='#A4A1A1' d='M0.642195122,41.6957015 C0.755059846,41.6946348 0.86755533,41.6933015 0.980420054,41.6933015 C14.2966113,41.6885015 27.6124334,41.6834348 40.9288708,41.6782348 C41.050105,41.6781015 41.1712161,41.6701015 41.2926965,41.6654348 L41.3054968,41.7373015 C27.8296703,41.7422348 14.352736,41.7471682 0.876540199,41.7483682 C0.800353433,41.7482348 0.699919828,41.8137015 0.642195122,41.6957015' />\n <path fill='#8E8A8B' d='M107.116462,37.321642 L107.065261,37.3226296 C106.976274,37.2231235 106.980951,37.0980617 106.980582,36.9769506 C106.978489,35.5332469 106.977012,34.0904074 106.979228,32.6470741 C106.97972,32.5350988 106.971104,32.418679 107.051968,32.3237407 L107.114739,32.3081852 C107.114862,33.9795432 107.116093,35.6507778 107.116462,37.321642' />\n <path fill='#FFFFFF' d='M107.051722,32.3238642 C107.055414,32.4364568 107.062307,32.5491728 107.061938,32.661642 C107.063538,34.2154691 107.064645,35.7690494 107.065261,37.3223827 C106.972458,37.3562099 106.876086,37.340037 106.781807,37.3395432 C101.974902,37.3425062 97.1688584,37.3437407 92.3620766,37.3452222 L92.2581967,37.3452222 C92.0325903,37.343 92.0328365,37.3425062 92.0301287,37.1162099 L92.0303749,37.0125062 C92.0266825,26.655963 92.0231131,16.3004074 92.0208977,5.94411111 C92.0207746,5.57250617 91.96465,5.61312346 92.3512455,5.61275309 C93.9045201,5.61090123 95.4575486,5.61114815 97.0104539,5.61051312 C97.0798713,5.61051312 97.1487963,5.61275309 97.2184598,5.61051312 C97.296862,5.60867901 97.3250474,5.6467037 97.322832,5.72188889 C97.3195088,5.80028395 97.3223397,5.87830864 97.3222166,5.95682716 C97.3251705,14.6334938 97.3283706,23.3097901 97.3310784,31.985716 C97.3312014,32.3199136 97.3309553,32.3204074 97.6562568,32.320284 C100.69265,32.3192963 103.729167,32.3179383 106.765806,32.3171975 C106.860824,32.3175679 106.956335,32.321642 107.051722,32.3238642 M59.587736,21.4355926 C59.586136,16.2483086 59.5841667,11.0606543 59.5833051,5.87374074 C59.5829359,5.49201235 59.5417039,5.54225926 59.9158683,5.54151852 C61.5124673,5.53954321 63.1086969,5.54016049 64.7054189,5.53892593 C64.7657283,5.5392963 64.8275147,5.5421358 64.8875779,5.5384321 C64.9834575,5.53312346 65.0355206,5.56732099 65.0292435,5.67188889 C65.0253049,5.73201235 65.028628,5.79361728 65.0287511,5.85448148 C65.0321974,16.2371975 65.0357667,26.6211481 65.0385976,37.0041111 C65.0384745,37.3597901 65.0842604,37.3238642 64.7204347,37.3239877 C63.124082,37.3255926 61.5276061,37.3263333 59.930638,37.3252222 C59.552535,37.3249753 59.5937669,37.3722593 59.5931515,36.9975679 C59.590813,31.8104074 59.589336,26.623 59.587736,21.4355926 M82.5173679,23.3363333 C82.4949673,24.335716 82.4346579,25.3349753 82.3241317,26.3290494 C82.1754505,27.6597901 81.9744603,28.9809012 81.5008469,30.2433704 C81.3051491,30.765963 81.0589883,31.2631235 80.709563,31.7011481 C80.2742276,32.2478148 79.7375971,32.634358 79.031731,32.7504074 C78.0925045,32.9049753 77.2839894,32.6536173 76.6154167,31.9718889 C76.1890662,31.5376914 75.8995811,31.0146049 75.6696669,30.4575679 C75.3364883,29.6510247 75.1353749,28.8083086 74.9874322,27.9512716 C74.6930239,26.241642 74.5847132,24.5167037 74.5581278,22.784358 C74.5511122,22.3413951 74.5561585,21.8980617 74.5560355,21.4546049 C74.5479121,20.0976914 74.5666204,18.7407778 74.682439,17.3888025 C74.8031809,15.9762099 74.9766012,14.571642 75.3982746,13.2110247 C75.6125576,12.5190494 75.8876423,11.8555926 76.3322087,11.2763333 C76.7277891,10.7601605 77.2130951,10.3701605 77.8596364,10.2158395 C78.8812037,9.97238272 79.7623363,10.2260864 80.4919569,10.9805309 C80.9585547,11.4626296 81.2564092,12.0512716 81.4928467,12.6723827 C81.8315639,13.5612716 82.0288618,14.4860864 82.1686811,15.4238642 C82.5601999,18.0485556 82.5766926,20.6915185 82.5173679,23.3363333 M87.8492107,21.8254691 C87.8455183,19.7555926 87.7645314,18.0453457 87.5402789,16.343 C87.3807667,15.1267037 87.1504833,13.925716 86.8013042,12.7489259 C86.3960005,11.3847284 85.8484158,10.0858395 85.0259925,8.91571605 C84.2688019,7.83793827 83.3292062,6.96806173 82.1386495,6.38732099 C81.1761608,5.9175679 80.1552089,5.67991358 79.0877326,5.63016049 C78.2445088,5.59090123 77.4075621,5.63053086 76.5800926,5.81509877 C74.7881651,6.21534568 73.361171,7.17954321 72.2545551,8.63658025 C71.4373013,9.71225926 70.8740854,10.9189259 70.4501965,12.1963333 C69.7524537,14.2984321 69.4581685,16.4723827 69.3147798,18.6731235 C69.2453625,19.7406543 69.2367468,20.8105309 69.2419162,21.8806543 C69.2500395,23.3785556 69.3299187,24.8706543 69.5122008,26.3578148 C69.6676513,27.6276914 69.8984271,28.8818889 70.2546217,30.1112716 C70.6305093,31.4099136 71.1367389,32.653 71.8813753,33.7870741 C72.7149989,35.055716 73.7790289,36.0658395 75.1775915,36.6871975 C76.0731244,37.0848519 77.0146895,37.288679 77.9934248,37.3349753 C78.9160355,37.3784321 79.829292,37.3249753 80.7265481,37.0954691 C82.4603817,36.6542346 83.8273126,35.6726296 84.8870348,34.2420123 C85.7546285,33.0699136 86.3291678,31.7548519 86.7536721,30.3680617 C87.3194727,28.5225062 87.592465,26.6239877 87.7358537,24.7044815 C87.8153636,23.6281852 87.8569648,22.5501605 87.8492107,21.8254691' />\n <path fill='#000000' d='M26.047343,21.2081852 C26.0953444,21.3353457 26.0629743,21.465963 26.0627281,21.5947284 C26.0660513,24.7610247 26.0664205,27.927321 26.0678975,31.0937407 C26.0678975,31.400037 26.0678975,31.400037 25.7707814,31.400284 C22.5789374,31.4009012 19.3874627,31.4018889 16.1962342,31.4033704 L16.0917389,31.4032469 C15.8925949,31.404358 15.8935795,31.420037 15.8932103,31.2062099 C15.8923487,27.9006543 15.8905025,24.5947284 15.8891486,21.2889259 L15.9015797,21.2123827 C15.9995517,21.1174444 16.1258322,21.1309012 16.2453433,21.1309012 C19.397063,21.1276914 22.5492751,21.1263333 25.701364,21.1271975 C25.8218598,21.127321 25.9458017,21.1226296 26.047343,21.2081852' />\n <path fill='#B41400' d='M26.047343,21.2081852 L15.9015797,21.2123827 C15.897395,21.1258395 15.8905025,21.0392963 15.8903794,20.9526296 C15.888287,17.7853457 15.8876716,14.6184321 15.8864408,11.451642 L15.8858254,11.3212716 C15.8677326,11.1796667 15.935673,11.1342346 16.0660151,11.1483086 L16.1962342,11.1490494 C19.3793394,11.1483086 22.5623216,11.1464568 25.7461653,11.1462099 C26.0777439,11.1469506 26.0578049,11.0995432 26.0576818,11.4475679 C26.0586664,14.6148519 26.0602665,17.7818889 26.0605126,20.9485556 C26.0603896,21.0355926 26.0517739,21.1221358 26.047343,21.2081852' />\n </g>\n </svg>\n)\n\nexport default Logo\n","// Generated by https://react-svgr.com/playground/\r\nimport * as React from 'react'\r\n\r\nfunction SvgComponent (props) {\r\n return (\r\n <svg\r\n id='prefix__Layer_1'\r\n xmlns='http://www.w3.org/2000/svg'\r\n x={0}\r\n y={0}\r\n viewBox='0 0 498.5 164.7'\r\n xmlSpace='preserve'\r\n {...props}\r\n >\r\n <style>\r\n {\r\n '.prefix__st1{fill:#262626}.prefix__st2{fill:#fff}.prefix__st3{fill:#fff000}'\r\n }\r\n </style>\r\n <path fill='#b60028' d='M0 0h498.5v164.7H0z' />\r\n <path\r\n className='prefix__st1'\r\n d='M198.2 75.3c34.6 0 53.3 14.4 53.3 43.2 0 29.5-18.8 46.3-53.3 46.3-34.7 0-53.2-16.7-53.2-46.3 0-28.8 18.4-43.2 53.2-43.2zm0 64.8c8.1 0 9.2-9.2 9.2-21.7 0-10.2-1.2-18.6-9.2-18.6s-9 8.4-9 18.6c-.1 12.5.9 21.7 9 21.7zM302.2 68.2h-41.5V39.7h41.5v28.5zm-41.5 9h41.5v85.5h-41.5V77.2zM395.3 160.5c-9.2 2.9-18.4 4.3-30.8 4.3-34.7 0-53.1-16.7-53.1-46.3 0-28.7 18.4-43.2 53.1-43.2 12.3 0 21.5 1.1 30.1 3.6v25.3c-5.8-2.8-12.2-4.2-18.6-4.3-12.4 0-20.6 6.4-20.6 19.2 0 13.3 8.2 21 20.6 21 6.8.2 13.5-1.6 19.3-5.1v25.5zM441.2 129.9c.7 10.7 10.7 13.1 22.9 13.1 11.4 0 21.6-2 28.1-5.4v22.1c-11 3.4-24.2 4.9-38.7 4.9-34.7 0-53.1-16.7-53.1-46.3 0-28.7 18.4-43.2 53.1-43.2 33.2 0 44.9 20.7 44.9 49.6v5.1l-57.2.1zm21.4-18c0-6.6-1-16.9-10.4-16.9-9.5 0-11.7 10.2-11.2 16.9h21.6zM1 1h56l25.3 97.5h.4L108.3 1h53.4l-50.3 162.8H49.6z'\r\n />\r\n <path\r\n className='prefix__st2'\r\n d='M197.5 73.7c34.6 0 53.3 14.4 53.3 43.2 0 29.5-18.8 46.3-53.3 46.3-34.7 0-53.1-16.7-53.1-46.3-.1-28.8 18.4-43.2 53.1-43.2zm0 64.8c8.1 0 9.2-9.2 9.2-21.7 0-10.2-1.1-18.6-9.2-18.6s-9 8.4-9 18.6c-.1 12.5.9 21.7 9 21.7zM301.3 66.6h-41.5V38.1h41.5v28.5zm-41.5 9h41.5v85.5h-41.5V75.6zM394.4 158.9c-9.2 3-18.4 4.3-30.8 4.3-34.7 0-53.1-16.7-53.1-46.3 0-28.7 18.4-43.2 53.1-43.2 12.3 0 21.6 1.2 30.1 3.6v25.3c-5.8-2.8-12.2-4.2-18.6-4.3-12.3 0-20.6 6.4-20.6 19.2 0 13.3 8.2 21 20.6 21 6.8.2 13.4-1.6 19.2-5.1l.1 25.5zM440.3 128.4c.7 10.6 10.7 13.1 22.9 13.1 11.4 0 21.5-2 28.1-5.4v22.2c-11 3.4-24.2 4.9-38.7 4.9-34.7 0-53.1-16.7-53.1-46.3 0-28.7 18.4-43.2 53.1-43.2 33.2 0 44.9 20.7 44.9 49.6v5.1h-57.2zm21.4-18.1c0-6.6-1-16.9-10.4-16.9-9.5 0-11.7 10.2-11.2 16.9h21.6zM0 0h56l25.3 97.5h.4L107.3 0h53.4l-50.3 162.8H48.6z'\r\n />\r\n <path\r\n className='prefix__st3'\r\n d='M174.3 38c1.6.5 3 1.7 3.7 3.2.7 1.3 1 2.7 1 4.2 0 4.7-1.5 9.3-4.3 13-2.3 3.1-5.9 4.9-9.7 4.8h-11.1l5.5-25.9h11.1c1.3.1 2.6.3 3.8.7zm-10.7 3.9L160 58.8h5c2.5 0 4.6-1.3 6.1-3.8.9-1.5 1.5-3.2 1.9-4.9.6-2.6.6-4.6.1-6s-2-2.1-4.5-2.1l-5-.1zM191.2 37.4h6.1l3.6 25.9h-5.8l-.5-5.3H185l-2.9 5.3h-5.6l14.7-25.9zm-3.8 16.1h6.6l-1.1-10.2-5.5 10.2zM209.1 63.3h-5.4l5.5-25.9h5.4zM219.6 37.4h5.4l-4.5 21.2h12.7l-1 4.7h-18.1zM249.5 37.4h6.1l-12.1 16.1-2 9.8h-5.4l2.1-9.8-5.5-16.1h6.3l3 11.3z'\r\n />\r\n </svg>\r\n )\r\n}\r\n\r\nexport default SvgComponent\r\n","// Generated by https://react-svgr.com/playground/\n\nimport * as React from 'react'\n\nfunction SvgComponent (props) {\n return (\n <svg\n id='prefix__Layer_1'\n data-name='Layer 1'\n xmlns='http://www.w3.org/2000/svg'\n viewBox='0 0 703.47 694.42'\n {...props}\n >\n <defs>\n <style>\n {\n '.prefix__cls-1{fill:#fff}.prefix__cls-2{fill:#f9fdfe}.prefix__cls-3{fill:#fafdfe}.prefix__cls-4{fill:#f9fcfd}'\n }\n </style>\n </defs>\n <path\n className='prefix__cls-1'\n d='M351.12 0h5.46l14.74.55c4.09.22 8.19.33 12.28.66a427 427 0 0144.63 5.84 389.25 389.25 0 0159.48 16.06 381.25 381.25 0 0188.45 45.25 364.24 364.24 0 0171.14 64.25 343.47 343.47 0 0144.54 66.9c.36.7.64 1.44 1.1 2.52h-84.67q-54.13 136.22-108.09 272c-.2.5-.34 1-.49 1.55 0 .08 0 .17.07.26s.08.16.12.24H576c.48-1.26.91-2.35 1.32-3.46l50.88-138.28q10.8-29.42 21.8-58.83c.31-.84.33-1.91 1.43-2.48l52.07 140.66h-49.81c-6.86 20.74-12.89 41.58-19.47 62.6 22.24.17 44 .16 66.1.66L699 480a339.1 339.1 0 01-28.59 51.48 352.31 352.31 0 01-44.81 53.88 368.72 368.72 0 01-57.8 46.47 379.61 379.61 0 01-63.8 33.42 390.12 390.12 0 01-70.42 21.27 353.6 353.6 0 01-35.85 5.56c-11 1.07-22 1.58-33 2.34-1.34 0-2.69-.09-4-.09l-17.83.09c-3.36-.17-6.72-.39-10.09-.52a360.66 360.66 0 01-36.68-3.52 389.39 389.39 0 01-147.22-52.76 366.45 366.45 0 01-77.31-62.87 343.19 343.19 0 01-63.53-95.81c-.25-.56-.44-1.15-.81-2.16l61.47-.54c-.21-.92-.3-1.53-.48-2.12q-8.07-26.36-16.18-52.69c-.79-2.59-1.84-5.1-2.84-7.84H0c17-47.25 34.48-93.91 51.71-140.66l.59.05 74.78 203.16c7.69.6 76.2.31 78.41-.4L96.71 202H14.4c2.38-4.52 4.43-8.56 6.62-12.53a345.17 345.17 0 0139.86-57.61 362.29 362.29 0 0158.22-54.65 376.38 376.38 0 0162.16-37.89 387.34 387.34 0 0177.67-27.88 342.74 342.74 0 0146.17-8.27C315.51 2.11 326 1.41 336.38.56c3 0 5.91 0 8.87-.05 1.96-.07 3.91-.33 5.87-.51zm135.15 476.16V202.23H417a3.39 3.39 0 00-.23.43 3.31 3.31 0 00-.06.55v154.05a2.5 2.5 0 01-.07.54.37.37 0 01-.16.17 2 2 0 01-.42.16l-2.28-3.31q-51.54-75.24-103-150.52a4.64 4.64 0 00-4.42-2.31q-42.48.1-85 0h-2.87c-.64 3.72-.46 272.11.15 274.09h69.23V289.07l.59-.21L413 476.16zm54.92 66.25c-.4-.55-.6-.85-.83-1.13-8.55-10.2-25.57-11.57-36-2.9-11.38 9.47-11.57 25.29-.36 35 6.54 5.64 14.23 7 22.51 5.44A23.93 23.93 0 00543 567.65a20.76 20.76 0 003-11.73h-26v7.94h9.91c1.63 0 3.19-.37 4.85.45a11.44 11.44 0 01-.88 1.24 17.3 17.3 0 01-17.42 5.15 15 15 0 01-.53-29.29 16.87 16.87 0 0116.51 3.83c.6.53 1.18 1.09 1.84 1.7zM274 555.11c.48-.75.94-1.41 1.35-2.11a11.6 11.6 0 001.64-7.84 13 13 0 00-12-10.85c-3.72-.22-7.46-.18-11.19-.25h-3.73v44.46c5.46-.15 10.73-.15 16-.51a13.45 13.45 0 005.37-1.79 12.69 12.69 0 003.78-19.59zm144.42 23.18c.6-4.33.39-42.22-.26-44.24-2.62.14-5.3-.27-8.22.3v17.86h-14.58v-18h-8.63v44a60.56 60.56 0 008.73 0V560.5h14.65v17.78zm31.76-43.92v43.57h8.52v-8c0-2.55-.05-5.09 0-7.64s-.27-5.15.29-8.09l8.35 8c2.77 2.64 5.52 5.29 8.3 7.91s5.17 5.2 8.18 7.8v-43.56h-8.51V550c0 2.55.29 5.16-.32 8.11-8.37-7.98-16.42-15.69-24.84-23.74zm-244.61-.08a4.7 4.7 0 00-.19.88c0 9.27-.21 18.56 0 27.83.17 8.57 6.12 14.85 14.65 16 8.05 1.06 16.07-3.8 18.18-11.2a25 25 0 00.81-6.46c.1-8.37 0-16.74 0-25.11 0-.61-.1-1.22-.15-1.94h-8.59V559.3c0 1.45 0 2.91-.12 4.36a8 8 0 01-15.94.53 17.53 17.53 0 01-.17-3v-27.1h-6.89a12.25 12.25 0 00-1.62.2zm-30.69 29c1.75 0 3 .08 4.26 0a22.49 22.49 0 004.57-.66c7.66-2.21 12.26-9.65 10.6-17a15.26 15.26 0 00-14-11.39c-3.91-.16-7.82-.15-11.72-.19-.7 0-1.4.12-2.14.18v44h8.47zm198.74-22.19c-3.74-7.27-15.91-9.82-22.78-3.29a11.39 11.39 0 00-1.32 15.57 13.55 13.55 0 005.79 4.42c1.68.67 3.47 1.09 5.18 1.69A21.47 21.47 0 01364 561a4.42 4.42 0 012.37 4.82 4.88 4.88 0 01-3.74 3.93 7.08 7.08 0 01-8.66-3.8c-.19-.38-.41-.75-.66-1.22l-8.22 1.09a13.11 13.11 0 005.2 9 16.66 16.66 0 0013.71 3c6.12-1.22 10.5-5.83 11.15-11.55.59-5.28-2.79-10.64-8.38-13.15-1.32-.59-2.77-.9-4.14-1.38a36.49 36.49 0 01-4.58-1.72 3.72 3.72 0 01-2.16-3.8 3.85 3.85 0 012.88-3.6 5.72 5.72 0 013.16-.19 36.66 36.66 0 014.79 2.28zm-59 37.14v-8.08h-7.79a62.48 62.48 0 01-8-.2v-35.9h-8.43v44.19zm10.53-44v44.19h6.7a12.47 12.47 0 001.63-.2v-44zm113.35 44.07v-44h-8.4c-.56 5.59-.31 42.07.3 44z'\n />\n <path\n className='prefix__cls-2'\n d='M541.19 542.41l-6.83 4.59c-.66-.61-1.24-1.17-1.84-1.7a16.87 16.87 0 00-16.52-3.84 15 15 0 00.53 29.29A17.3 17.3 0 00534 565.6a11.44 11.44 0 00.88-1.24c-1.66-.82-3.29-.37-4.85-.45s-3.27 0-4.91 0h-5v-7.94h26a20.76 20.76 0 01-3 11.73 23.93 23.93 0 01-16.46 11.12c-8.28 1.61-16 .2-22.51-5.44-11.21-9.66-11-25.48.36-35 10.43-8.67 27.45-7.3 36 2.9.08.28.28.58.68 1.13z'\n />\n <path\n className='prefix__cls-3'\n d='M274 555.11l1.22 1.52a12.69 12.69 0 01-3.78 19.59A13.45 13.45 0 01266 578c-5.25.36-10.52.36-16 .51v-44.45h3.73c3.73.07 7.47 0 11.19.25a13 13 0 0112 10.85 11.6 11.6 0 01-1.64 7.84c-.37.7-.83 1.36-1.28 2.11zm-15.25 15a45.66 45.66 0 006.1-.05 5.19 5.19 0 000-10.34 48.7 48.7 0 00-6.06-.05zm-.18-18.77h3a24.46 24.46 0 002.71-.08 4.44 4.44 0 004-4.08 4.24 4.24 0 00-3.58-4.71 41.91 41.91 0 00-5.94-.06 9.51 9.51 0 00-.21 1.43c-.02 2.35-.01 4.7-.01 7.5z'\n />\n <path\n className='prefix__cls-4'\n d='M418.39 578.29h-8.28v-17.78h-14.65v17.77a60.56 60.56 0 01-8.73 0v-44h8.63v18h14.55v-17.93c2.92-.57 5.6-.16 8.22-.3.65 2.02.87 39.95.26 44.24z'\n />\n <path\n className='prefix__cls-3'\n d='M450.15 534.37c8.42 8 16.47 15.76 24.81 23.75.61-3 .26-5.55.32-8.11s0-5.1 0-7.64v-8h8.51v43.55c-3-2.6-5.51-5.29-8.18-7.8s-5.53-5.27-8.3-7.91l-8.35-8c-.56 2.94-.23 5.53-.29 8.09s0 5.09 0 7.64v8h-8.52zM205.54 534.29a12.25 12.25 0 011.58-.22h6.89v27.1a17.53 17.53 0 00.17 3 8 8 0 0015.94-.53c.13-1.45.11-2.91.12-4.36V534.27h8.59c0 .72.14 1.33.15 1.94 0 8.37.05 16.74 0 25.11a25 25 0 01-.81 6.46C236 575.17 228 580 220 579c-8.53-1.12-14.48-7.4-14.65-16-.18-9.27 0-18.56 0-27.83a4.7 4.7 0 01.19-.88z'\n />\n <path\n d='M174.85 563.32v14.9h-8.47v-44c.74-.06 1.44-.18 2.14-.18 3.9 0 7.81 0 11.72.19a15.26 15.26 0 0114 11.39c1.66 7.33-2.94 14.77-10.6 17a22.49 22.49 0 01-4.57.66c-1.21.12-2.47.04-4.22.04zm.14-8.13h3.38a13.12 13.12 0 002.17-.15 6.57 6.57 0 005.35-6.35 6.35 6.35 0 00-5.16-6.18 47.65 47.65 0 00-5.74-.36z'\n fill='#fcfefe'\n />\n <path\n className='prefix__cls-2'\n d='M373.62 541.1l-6.92 3.52a36.66 36.66 0 00-4.79-2.28 5.72 5.72 0 00-3.16.19 3.85 3.85 0 00-2.88 3.6 3.72 3.72 0 002.16 3.8 36.49 36.49 0 004.58 1.72c1.37.48 2.82.79 4.14 1.38 5.59 2.51 9 7.87 8.38 13.15-.65 5.72-5 10.33-11.15 11.55a16.66 16.66 0 01-13.71-3 13.11 13.11 0 01-5.2-9l8.22-1.09c.25.47.47.84.66 1.22a7.08 7.08 0 008.66 3.8 4.88 4.88 0 003.74-3.93A4.42 4.42 0 00364 561a21.47 21.47 0 00-3.49-1.47c-1.71-.6-3.5-1-5.18-1.69a13.55 13.55 0 01-5.79-4.42 11.39 11.39 0 011.32-15.57c6.85-6.57 19.02-4.02 22.76 3.25z'\n />\n <path\n d='M314.59 578.24h-24.25v-44.19h8.43V570a62.48 62.48 0 008 .2h7.79z'\n fill='#f7fbfd'\n />\n <path\n className='prefix__cls-4'\n d='M325.12 534.22h8.33v44a12.47 12.47 0 01-1.63.2h-6.7z'\n />\n <path\n d='M438.47 578.29h-8.1c-.61-2-.86-38.45-.3-44h8.4z'\n fill='#f9fcfe'\n />\n <path className='prefix__cls-1' d='M141.57 518.12h412.94v73.41H141.57z' />\n </svg>\n )\n}\n\nexport default SvgComponent\n","import React, { useEffect, useRef } from 'react'\nimport { createRoot } from 'react-dom/client'\nimport videojs from 'video.js'\nimport 'videojs-contrib-ads'\nimport 'videojs-ima'\nimport 'video.js/dist/video-js.min.css'\nimport 'videojs-contrib-ads/dist/videojs.ads.css'\nimport 'videojs-ima/dist/videojs.ima.css'\n\nimport iolLogo from '../../app/images/brands/video/iol-wht'\nimport dvdLogo from '../../app/images/brands/video/daily-voice-red'\nimport anaLogo from '../../app/images/brands/video/ana-white'\n\nconst Logo = (props) => (\n <div className='ion-video-logo'>\n <svg className='ion-video-svg' width={props.width} height={props.height} viewBox={'0 0 ' + props.w + ' ' + props.h} dangerouslySetInnerHTML={{ __html: props.path }} />\n </div>\n)\n\nconst Branding = {\n IndependentOnline: iolLogo,\n DailyVoice: dvdLogo,\n AfricanNewsAgency: anaLogo\n}\n\nconst VideoPlayer = (props) => {\n const videoNode = useRef(null)\n let player = {}\n let brandingPath = ''\n let width = 40\n let height = 22\n let w = 501 // viewBox dimensions\n let h = 222\n let BrandingLogo = false\n if (props.branding && props.branding.logo) {\n width = props.branding.logo.tw || width\n height = props.branding.logo.th || height\n w = props.branding.logo.w || w\n h = props.branding.logo.h || h\n }\n\n if (props.branding && props.branding.logo && props.branding.logo.path) {\n brandingPath = props.branding.logo.path\n BrandingLogo = () => (<Logo width={width} height={height} w={w} h={h} path={brandingPath} />)\n } else if (props.channel) {\n if (Branding[props.channel]) {\n const ChannelBrandingLogo = Branding[props.channel]\n BrandingLogo = () => (\n <div className='ion-video-logo'>\n <ChannelBrandingLogo width={width} height={height} />\n </div>\n )\n }\n }\n\n useEffect(() => {\n player = videojs(videoNode.current, props)\n if (BrandingLogo) {\n const img = player.controlBar.addChild('Component', {})\n img.addClass('ion-video-logo')\n const logoRoot = createRoot(img.contentEl())\n logoRoot.render(<BrandingLogo />)\n }\n player.ima({\n id: videoNode.current,\n adLabel: 'Video Advertisement',\n adTagUrl: 'https://pubads.g.doubleclick.net/gampad/ads?sz=400x300|640x480&iu=/22491887924/IOL/Video&ciu_szs=300x250,300x600,728x90&impl=s&gdfp_req=1&env=vp&output=xml_vast2&unviewed_position_start=1'\n // adTagUrl: 'https://pubads.g.doubleclick.net/gampad/ads?sz=640x480&iu=/124319096/external/ad_rule_samples&ciu_szs=300x250&ad_rule=1&impl=s&gdfp_req=1&env=vp&output=xml_vmap1&unviewed_position_start=1&cust_params=sample_ar%3Dpremidpostpod%26deployment%3Dgmf-js&cmsid=496&vid=short_onecue&correlator='\n })\n return () => player.dispose\n }, [])\n\n return (\n <div data-vjs-player>\n <video ref={videoNode} className='video-js ion-video-js vjs-big-play-centered' width={props.width} />\n </div>\n )\n}\n\nexport default VideoPlayer\n","import React, { Fragment } from 'react'\n// import { squareImage } from 'ion-article'\n\nconst RelatedArticles = ({ relatedArticles, abstract }) => {\n return (\n <>\n <h2><span>More on this</span></h2>\n <ul>\n {relatedArticles.map(relatedArticle => (\n <li key={relatedArticle.id}>\n <article>\n <a href={relatedArticle.externalUrl}>\n <h3>{relatedArticle.headline}</h3>\n </a>\n </article>\n </li>\n ))}\n </ul>\n </>\n )\n}\n\nexport default RelatedArticles\n","import React from 'react'\nimport {\n FacebookShareButton,\n // GooglePlusShareButton,\n // LinkedinShareButton,\n TwitterShareButton,\n PinterestShareButton,\n // VKShareButton,\n // OKShareButton,\n // TelegramShareButton,\n WhatsappShareButton,\n // RedditShareButton,\n EmailShareButton,\n // TumblrShareButton,\n // LivejournalShareButton,\n // MailruShareButton,\n FacebookIcon,\n // TwitterIcon,\n // GooglePlusIcon,\n // LinkedinIcon,\n PinterestIcon,\n // VKIcon,\n // OKIcon,\n // TelegramIcon,\n WhatsappIcon,\n // RedditIcon,\n // TumblrIcon,\n // MailruIcon,\n EmailIcon\n // LivejournalIcon,\n} from 'react-share'\nimport sT from '../static/social-icons/x.svg'\n\nconst ArticleSocialShare = (props) => (\n <div className='sharethis-inline-share-buttons'>\n <p>Share this article:</p>\n <FacebookShareButton className={props.className} quote={props.quote} url={props.url}>\n <FacebookIcon size={32} /><span>Share</span>\n </FacebookShareButton>\n\n <TwitterShareButton {...props}>\n <img src={sT} style={{ height: 31, marginBottom: 6 }} title='Share on Twitter' alt='Share on Twitter' /><span>Tweet</span>\n </TwitterShareButton>\n\n {props.media &&\n <PinterestShareButton {...props}>\n <PinterestIcon size={32} /><span>Share</span>\n </PinterestShareButton>}\n\n <WhatsappShareButton {...props} separator=' '>\n <WhatsappIcon size={32} /><span>Share</span>\n </WhatsappShareButton>\n\n <EmailShareButton {...props} separator=' '>\n <EmailIcon size={32} /><span>Email</span>\n </EmailShareButton>\n </div>\n)\n\nexport default ArticleSocialShare\n","import React, { Component } from 'react'\nimport Lightbox from 'react-18-image-lightbox'\nimport NoImage from '../static/no-image.png'\nimport PropTypes from 'prop-types'\nimport { ImageOrNoImage } from 'ion-image'\nimport { Link } from 'react-router-dom'\nimport 'react-18-image-lightbox/style.css'\n\nexport default class ArticleGallery extends Component {\n constructor (props) {\n super(props)\n this.state = {\n photoIndex: 0,\n isOpen: false\n }\n }\n\n render () {\n const gallery = this.props.gallery\n const width = this.props.width || 650\n const resizeURL = process.env.RAZZLE_RESIZE_URL + '/' + width + 'x' + width * 100 + '?source='\n return (\n <div className='article-gallery'>\n {gallery.map((image, index) => {\n return (\n <Link to='#' onClick={() => this.setState({ isOpen: true, photoIndex: index })} key={index}>\n <ImageOrNoImage image={image} width={200} shape='square' noImage={NoImage} alt={'Gallery image ' + index} />\n </Link>\n )\n })}\n {this.state.isOpen && (\n <div id='lighbox'>\n <Lightbox\n mainSrc={resizeURL + gallery[this.state.photoIndex].url}\n nextSrc={resizeURL + (gallery[(this.state.photoIndex + 1) % gallery.length].url)}\n prevSrc={resizeURL + (gallery[(this.state.photoIndex + gallery.length - 1) % gallery.length].url)}\n imageCaption={gallery[(this.state.photoIndex + gallery.length) % gallery.length].caption}\n onCloseRequest={() => this.setState({ isOpen: false })}\n onMovePrevRequest={() =>\n this.setState({\n photoIndex: (this.state.photoIndex + gallery.length - 1) % gallery.length\n })}\n onMoveNextRequest={() =>\n this.setState({\n photoIndex: (this.state.photoIndex + 1) % gallery.length\n })}\n />\n </div>\n )}\n </div>\n )\n }\n}\n\nArticleGallery.propTypes = {\n gallery: PropTypes.array.isRequired\n}\n\nArticleGallery.defaultProps = {\n gallery: []\n}\n","import React, { Fragment, Component } from 'react'\nimport Helmet from 'react-helmet'\n\nexport class Klangoo extends Component {\n UNSAFE_componentWillMount () {\n if (typeof window !== 'undefined' && typeof __magnetLaunch === 'function') {\n __magnetLaunch() // eslint-disable-line no-undef\n }\n }\n\n render () {\n return (\n <>\n <Helmet>\n <script src='//magnetapi.klangoo.com/w/Widgets_320.js' type='text/javascript' async />\n </Helmet>\n <div className='related-articles'>\n <div data-widget-id={this.props.widgetId} />\n </div>\n </>\n )\n }\n}\n\nexport default Klangoo\n","import React from 'react'\nimport { OutbrainWidget } from 'react-outbrain-widget'\n\nexport default class Outbrain extends React.Component {\n render () {\n return (\n <OutbrainWidget dataSrc={process.env.RAZZLE_SITE_URL + this.props.canonical} dataWidgetId='AR_1' />\n )\n }\n}\n","import React, { Component, Fragment } from 'react'\nimport { bindActionCreators } from 'redux'\nimport { connect } from 'react-redux'\nimport { Redirect } from 'react-router'\nimport { Link } from 'react-router-dom'\nimport { createRoot } from 'react-dom/client'\nimport Helmet from 'react-helmet'\nimport { PulseLoader } from 'react-spinners'\n\nimport { fetchArticle, setPreviewArticle, submitCompetition, serverArticleRender } from '../../store/article'\nimport { getAllFormFields } from 'ion-dom'\nimport IonArticle from 'ion-article'\nimport { ArticleMeta } from 'ion-article-cmp'\nimport Ad from '../components/Ad'\nimport { FORMATS, MAPPINGS } from '../components/AdFormats'\nimport Video from '../components/Video'\nimport WingBanners from '../components/WingBanners'\nimport RelatedArticles from '../components/RelatedArticles'\nimport { defaultWidth, Mobile, MobileElse } from 'ion-media'\nimport { ImageOrNoImage, ImageCalculator, calcImageSrcUrl } from 'ion-image'\nimport ArticleSocialShare from '../components/ArticleSocialShare'\nimport ArticleGallery from '../components/ArticleGallery'\nimport NotFound from './NotFound'\nimport NoImage from '../static/no-image.png'\nimport Sidebar from '../components/Sidebar'\nimport Klangoo from '../components/Klangoo'\nimport Outbrain from '../components/OutbrainWidget'\nimport Lyftitec from '../components/Lyftitec'\n\nconst LeaderboardTop = [\n [[1024, 0], [[728, 90], [970, 90]]],\n [[640, 0], [[460, 60]]],\n [[0, 0], [[320, 100], [320, 50], [300, 100], [300, 50]]]\n]\n\nconst Leaderboard = [\n [[1024, 0], [[728, 90], [970, 90], [970, 250]]],\n [[640, 0], [[460, 60]]],\n [[0, 0], [[300, 600], [336, 280], [320, 100], [320, 50], [300, 250], [300, 100], [300, 50]]]\n]\n\nconst mpuRHS = [\n [[1024, 0], [[300, 250], [3, 3]]],\n [[640, 0], [[300, 250], [336, 280], [3, 3]]],\n [[0, 0], [[300, 600], [336, 280], [320, 100], [320, 50], [300, 250], [300, 100], [300, 50], [3, 3]]]\n]\nconst Wing = [\n [[1024, 0], [[160, 600], [120, 600]]],\n [[640, 0], []],\n [[0, 0], []]\n]\n\n// Pulled from siteProps\nexport class Article extends Component {\n constructor (props) {\n super(props)\n this.state = { hasMounted: false }\n this.scriptloaded = this.scriptloaded.bind(this)\n this.handleSubmit = this.handleSubmit.bind(this)\n this.processVideo = true\n if (this.props.article && (this.props.previewArticle || this.props.article.contentKey === this.props.contentKey)) {\n this.props.serverArticleRender(this.props.article)\n }\n }\n\n validateEmail (email) {\n const re = /^[^.@][^@]+@{1}[^@]+\\.[^@]+[^.@]$/i\n return email.match(re)\n }\n\n validateName (name) {\n const re = /^[`a-zA-ZàèìòùÀÈÌÒÙáéíóúýÁÉÍÓÚÝâêîôûÂÊÎÔÛãñõÃÑÕäëïöüÿÄËÏÖÜŸçÇßØøÅåÆæœ' -]{2,45}$/i\n return name.match(re)\n }\n\n validateField (field) {\n if (field.name.match('email')) {\n if (!field.value || !this.validateEmail(field.value)) {\n return 'Please a provide a valid email'\n } else {\n return true\n }\n } else if (field.name.match('fullNameShort')) {\n if (!field.value || !this.validateName(field.value)) {\n return 'Please provide a valid Name'\n } else {\n return true\n }\n } else {\n return true\n }\n }\n\n isUserLoggedIn () {\n return !!this.props.userToken\n }\n\n showErrorMessage (id, result) {\n const competitionFormNode = document.getElementById(this.props.article.competition.form)\n if (competitionFormNode) {\n const input = document.getElementById(id)\n input.insertAdjacentHTML('afterend', '<p class=\"form-error-validation\" style=\"color:red\">' + result + '</p>')\n }\n }\n\n handleSubmit (event) {\n event.preventDefault()\n const elements = document.getElementById(this.props.article.competition.form).elements\n this.props.submitCompetition(getAllFormFields(elements))\n }\n\n componentDidUpdate (prevProps) {\n // Re-fetch articles when the contentKey changes\n if (this.props.article && this.props.article.previewArticle) {\n return\n }\n if (prevProps.contentKey !== this.props.contentKey ||\n (prevProps.hasError && !prevProps.isConnected && this.props.isConnected)) {\n this.props.fetchArticle(this.props.contentKey)\n }\n if (this.props.article) {\n this.scripts = 0\n this.processArticle()\n }\n if (this.props.message) {\n const errorNode = document.getElementsByClassName('form-error-validation')\n while (errorNode.length > 0) {\n errorNode[0].parentNode.removeChild(errorNode[0])\n }\n const errors = this.props.message\n Object.keys(errors).map((errElement) =>\n errors[errElement].map((message) => this.showErrorMessage('fields-' + errElement, message))\n )\n }\n }\n\n UNSAFE_componentWillMount () {\n // Fetch the first time this component is mounted\n if (this.props.ArticlePushContext) {\n this.props.setPreviewArticle(this.props.ArticlePushContext)\n } else {\n if (this.props.article && this.props.previewArticle) {\n return\n }\n const now = new Date()\n const lastFetch = new Date(this.props.lastFetch ? this.props.lastFetch : 0)\n // eslint-disable-next-line eqeqeq\n if (!this.props.article || this.props.contentKey != this.props.article.contentKey || now - lastFetch > (60 * 1000)) {\n this.props.fetchArticle(this.props.contentKey)\n }\n }\n }\n\n scriptloaded () {\n this.scripts--\n console.log('Script loaded', this.scripts, 'left to load')\n if (this.scripts === 0) {\n console.log('All scripts loaded')\n this.nodeScriptReplace(document.getElementById('article-more-body'), false)\n }\n }\n\n nodeScriptIs (node) {\n return node.tagName === 'SCRIPT'\n }\n\n nodeScriptClone (node, src, callback) {\n if (!src && node.src) {\n return node\n }\n if (src && !node.src) {\n return node\n }\n const script = document.createElement('script')\n script.text = node.innerHTML\n for (let i = node.attributes.length - 1; i >= 0; i--) {\n script.setAttribute(node.attributes[i].name, node.attributes[i].value)\n }\n if (callback) {\n return callback(script)\n }\n return script\n }\n\n nodeScriptReplace (node, src, callback) {\n if (!node) { return }\n if (this.nodeScriptIs(node) === true) {\n node.parentNode.replaceChild(this.nodeScriptClone(node, src, callback), node)\n } else {\n let i = 0\n const children = node.childNodes\n while (i < children.length) {\n this.nodeScriptReplace(children[i++], src, callback)\n }\n }\n }\n\n resizeImages (width, bodyHTML) {\n const images = bodyHTML.match(/<img [^>]+>/g)\n if (images) {\n const calc = new ImageCalculator()\n const shape = 'original'\n const resizeURL = process.env.RAZZLE_RESIZE_URL\n\n for (let i = 0; i < images.length; i++) {\n const image = JSON.parse(images[i]\n .replace(/['\"][ ]+/g, '\",')\n .replace(/([ ,])([a-z0-9-]+)=/gi, '$1\"$2\":')\n .replace(/<img\\s+/, '{')\n .replace(/[,/ ]*>$/, '}')\n )\n\n let imgOffsetX = parseInt(image.offsetx) || 0\n let imgOffsetY = parseInt(image.offsety) || 0\n let imgCropWidth = parseInt(image.cropwidth) || 0\n let imgCropHeight = parseInt(image.cropwidth) || 0\n const imageWidth = parseInt(image.imageWidth)\n const imageHeight = parseInt(image.imageHeight)\n if ('imageCrop' in image) {\n const crops = image.imageCrop.split('/')\n imgOffsetX = Math.round((parseFloat(crops[0]) || 0) * imageWidth)\n imgOffsetY = Math.round((parseFloat(crops[1]) || 0) * imageHeight)\n imgCropWidth = Math.round((parseFloat(crops[2]) || 1) * imageWidth)\n imgCropHeight = Math.round((parseFloat(crops[3]) || 1) * imageHeight)\n }\n const height = calc.calcHeight(shape, width) || width * 100\n const { offsetx, offsety, cropWidth, cropHeight } = calc.getCropCoordsForShape(shape,\n width, height, imageWidth, imageHeight,\n imgOffsetX, imgOffsetY, imgCropWidth, imgCropHeight,\n 0, 0)\n const src = calc.buildImageUrl(resizeURL, '', width, height, image.src, offsetx, offsety, cropWidth, cropHeight)\n bodyHTML = bodyHTML.replace(images[i], `<img class=\"${image.class}\" src=\"${src}\" loading=\"lazy\" width=\"${width}\">`)\n }\n }\n return bodyHTML\n }\n\n renderAuthors (article) {\n if (article.authors) {\n return article.authors.map((author, index, arr) => {\n if (arr.length - 1 === index) {\n // last one\n return <strong key={index}>{author.hasAuthorPage ? <Link to={'/' + author.slug}> {author.name} </Link> : author.name}</strong>\n } else {\n return <strong key={index}>{author.hasAuthorPage ? <Link to={'/' + author.slug}> {author.name}, </Link> : author.name + ', '}</strong>\n }\n })\n }\n }\n\n processArticle () {\n const articleNode = document.getElementById('article-more-body')\n if (articleNode) {\n this.scripts = 0\n this.nodeScriptReplace(articleNode, true, (node) => {\n this.scripts++\n node.async = false\n node.onload = this.scriptLoaded\n return node\n })\n }\n if (!this.scripts) {\n this.nodeScriptReplace(articleNode, false)\n this.scripts++\n }\n if (articleNode && this.processVideo) {\n for (const v of articleNode.querySelectorAll('video.ion-video')) {\n const sources = []\n for (const s of v.getElementsByTagName('source')) {\n sources.push({\n src: s.getAttribute('src'),\n type: s.getAttribute('type')\n })\n }\n const v2 = document.createElement('div')\n v2.style.cssText = 'clear:both;'\n let branding = {}\n try {\n if (v.hasAttribute('data-channel')) {\n branding = JSON.parse(decodeURIComponent(v.getAttribute('data-channel')))\n }\n } catch (e) {\n branding = {}\n }\n const videoRoot = createRoot(v2)\n videoRoot.render(\n <div className='video'>\n <Video\n sources={sources}\n poster={v.getAttribute('poster')}\n channel={v.getAttribute('data-channel')}\n branding={branding}\n autoplay={false}\n width='650'\n fluid\n preload='metadata'\n controls\n />\n </div>)\n v.parentElement.replaceChild(v2, v)\n console.log('Updated videojs video')\n }\n this.processVideo = false\n }\n if (this.props.article.competition) {\n const competitionFormNode = document.getElementById(this.props.article.competition.form)\n if (competitionFormNode) {\n competitionFormNode.onsubmit = this.handleSubmit\n }\n }\n }\n\n componentDidMount () {\n if (this.props.article) {\n this.processArticle()\n }\n this.setState({ hasMounted: true })\n }\n\n render () {\n // Redirect to the correct canonical\n if (this.props.checkCanonical && (this.props.canonical !== this.props.match.url)) {\n return <Redirect to={this.props.canonical} />\n }\n // Server-side render doesn't always catch the state changes, so check always\n if (typeof window === 'undefined' && this.props.canonical && (this.props.canonical !== this.props.location.pathname)) {\n return <Redirect to={this.props.canonical} />\n }\n if (this.props.hasError && !this.props.is404) {\n if (this.props.isConnected) {\n return (\n <div>\n <Helmet title='ERROR' />\n <div className='wrapper'>\n <div className='article-page'>\n <article role='contentinfo' aria-label='article' className='no-elated'>\n <h1>Unexpected Error</h1>\n <p>Error: {this.props.error}</p>\n </article>\n </div>\n </div>\n </div>\n )\n } else {\n return (\n <div>\n <Helmet title='Offline' />\n <div className='wrapper'>\n <div className='article-page'>\n <article role='contentinfo' aria-label='article' className='no-elated'>\n <h1>You are offline</h1>\n <p>This article is not available as you are currently offline. Please re-establish your Internet connection and try again.</p>\n </article>\n </div>\n </div>\n </div>\n )\n }\n }\n if (this.props.is404 || (this.props.hasFetched && this.props.article)) {\n if (this.props.is404 || (!this.props.ArticlePushContext && this.props.article.titleKey !== process.env.RAZZLE_TITLE_KEY)) {\n return (\n <>\n <Ad isConnected={this.props.isConnected} path={`/${process.env.RAZZLE_DFP_CODE}/404`} slotId='leaderboard-top' targeting={{ leaderboard: 'top' }} collapseEmptyDiv className='advert-leaderboard-top' mapping={LeaderboardTop} {...FORMATS.leaderboardtop} />\n <NotFound />\n {this.state.hasMounted &&\n <MobileElse>\n <Ad isConnected={this.props.isConnected} path={`/${process.env.RAZZLE_DFP_CODE}/404`} slotId='leaderboard-bot' targeting={{ leaderboard: 'bot' }} collapseEmptyDiv className='advert-leaderboard-top' mapping={LeaderboardTop} {...FORMATS.leaderboard} />\n </MobileElse>}\n </>\n )\n }\n const article = new IonArticle(this.props.article)\n const resizeURL = process.env.RAZZLE_RESIZE_URL\n const gallery = article.images && article.images.length > 1 ? article.images.slice(1) : []\n let tagsList = []\n if (article.primaryTag) {\n tagsList.push(article.primaryTag)\n }\n if (article.secondaryTags) {\n tagsList = tagsList.concat(article.secondaryTags)\n }\n const tags = tagsList.slice(0, 3)\n const published = article.formatDate()\n const mainImage = !article.videos && article.getImageObject()\n const headline = article.headline\n let imageWidth = 420\n if (defaultWidth > 500) {\n imageWidth = 610\n }\n if (defaultWidth > 1024) {\n imageWidth = 610\n }\n const competitionSlug = article.getCompetitionSlug()\n let competitionPayload = '<p>This competition has expired</p>'\n if (competitionSlug && !article.competitionExpired) {\n competitionPayload = article.competition.competition\n if (this.props.hasErrorSubmit || !this.props.hasSubmitted) {\n competitionPayload += `<script>errors=${JSON.stringify(this.props.message || false)};formData=${JSON.stringify(this.props.formData || {})}</script>`\n }\n if (this.props.hasSubmitted) {\n competitionPayload = `<form name='${competitionSlug}-form'>Thank you for your submission</form>`\n }\n }\n const socialImageSrcUrl = article.socialTeaserImage ? calcImageSrcUrl(article.socialTeaserImage, 960, '16x9', false) : undefined\n const canonicalUri = article.getCanonicalUri()\n article.bodyHTML = this.resizeImages(imageWidth, article.bodyHTML)\n article.bodyHTML = article.bodyHTML.replace('<!-- [AD_SLOT] -->', '<ad-slot/>')\n article.bodyHTML = article.setCompetition(competitionSlug, competitionPayload)\n article.bodyHTML = '<!-- C-ON- TEXT_CONTENT_START --><!--sse-->' + article.bodyHTML + '<!--/sse--><!-- C-ON- TEXT_CONTENT_END -->'\n const bodyElements = article.bodyHTML.split('<ad-slot/>')\n const relatedArticlesPresent = article.relatedArticles.length > 0\n const proposedArticles = []\n if (this.props.readNext) {\n const lengthArray = this.props.readNext.length < 9 ? this.props.readNext.length : 9\n for (let i = 0; i < lengthArray; i++) {\n // eslint-disable-next-line eqeqeq\n if (this.props.readNext[i].contentKey != this.props.contentKey) {\n proposedArticles.push(new IonArticle(this.props.readNext[i]))\n }\n }\n }\n if (proposedArticles.length > 8) {\n proposedArticles.pop()\n }\n let videoSources = []\n if (article.videos && article.videos[0].sources) {\n const sources = article.videos[0].sources\n videoSources = Object.keys(sources).map(key => {\n return { src: sources[key].url || sources[key].mp4.url, type: sources[key].type || 'video/mp4', label: key }\n })\n }\n return (\n <>\n <WingBanners useSmall={this.props.useSmall} isConnected={this.props.isConnected} location={{ pathname: `/${canonicalUri}` }} onSlotRenderEndedLeft={this.props.onSlotRenderEndedLeft} onSlotRenderEndedRight={this.props.onSlotRenderEndedRight} mappingLeft={Wing} mappingRight={Wing} />\n <div className='main-article'>\n <Helmet title={headline}>\n <meta property='fb:app_id' content='293175074032541' />\n <meta property='og:type' content='article' />\n <meta property='og:title' content={article.socialTeaserHeadline || headline} />\n <meta property='og:description' content={article.socialAbstract || article.abstract} />\n <meta property='og:url' content={this.props.canonical} />\n <meta property='keywords' content={this.props.keywords || [].concat(article.primaryTag).concat(article.secondaryTags).map(tag => tag && tag.label).join(', ')} />\n <meta property='og:image' content={resizeURL + (socialImageSrcUrl || calcImageSrcUrl(article.getImageObject(), 960, '16x9', false))} />\n <meta itemProp='headline' content={headline} />\n <meta itemProp='description' name='description' content={article.abstract} />\n <meta itemProp='dateModified' content={article.modified} />\n <meta itemProp='datePublished' content={article.published} />\n <meta itemProp='identifier' content={article.contentKey} />\n <meta name='twitter:site' content={this.props.twitterName} />\n <meta name='twitter:creator' content={this.props.twitterName} />\n <meta name='twitter:title' content={headline} />\n <meta name='twitter:description' content={article.abstract} />\n <meta itemprop='image' content={resizeURL + calcImageSrcUrl(article.getImageObject(), 960, '16x9', false)} />\n <meta itemprop='thumbnailUrl' content={resizeURL + calcImageSrcUrl(article.getImageObject(), 100, '16x9', false)} />\n <meta name='twitter:card' content='summary_large_image' />\n <meta name='twitter:image:src' content={resizeURL + (socialImageSrcUrl || calcImageSrcUrl(article.getImageObject(), 960, '16x9', false))} />\n <meta itemProp='inLanguage' content='en' />\n {article.canonicalUrl &&\n <link rel='canonical' itemprop='url' href={article.canonicalUrl} />}\n </Helmet>\n <ArticleMeta article={article} />\n <Ad isConnected={this.props.isConnected} path={`/${process.env.RAZZLE_DFP_CODE}/${canonicalUri}`} slotId='interstitial' targeting={{ interstitial: 'interstitial' }} collapseEmptyDiv className='advert-leaderboard' anchor='interstitial' mapping={MAPPINGS.Interstitial} {...FORMATS.interstitial} />\n <Ad isConnected={this.props.isConnected} path={`/${process.env.RAZZLE_DFP_CODE}/${canonicalUri}`} slotId='leaderboard-top' targeting={{ leaderboard: 'top' }} collapseEmptyDiv className='advert-leaderboard-top' mapping={LeaderboardTop} {...FORMATS.leaderboardtop} />\n <div className='wrapper'>\n <div className='article-page'>\n <article role='contentinfo' aria-label='article' className={(this.props.article.relatedArticles && this.props.article.relatedArticles.length ? 'no-elated' : 'no-related')}>\n <p className='section'><Link to={'/' + article.getSectionId()}>{article.sectionLabel}</Link></p>\n <h1><span>{headline}</span></h1>\n <div itemProp='articleBody' className='article-body'>\n {mainImage && mainImage.url && article.images.length === 1 &&\n <figure>\n <Mobile>\n <ImageOrNoImage image={article.getImageObject()} shape='16x9' width='320' alt={mainImage.altText || article.formatImageCaption()} />\n </Mobile>\n {this.state.hasMounted &&\n <MobileElse>\n <span>\n <ImageOrNoImage image={article.getImageObject()} shape='16x9' width='650' alt={mainImage.altText || article.formatImageCaption()} />\n </span>\n </MobileElse>}\n <figcaption>{article.formatImageCaption()}</figcaption>\n </figure>}\n {!mainImage && article.videos && article.videos[0].sources &&\n <div className='video'>\n <Video\n sources={videoSources}\n poster={article.videos[0].thumbnailURL}\n autoplay={false}\n width='670'\n fluid\n preload='metadata'\n channel={article.videos[0].channel}\n branding={article.videos[0].branding}\n controls\n />\n </div>}\n <aside className='meta'>\n <p>{this.renderAuthors(article) || article.author} | {published}</p>\n </aside>\n <div className='articleBodyMore' id='article-more-body'>\n {\n bodyElements.map((element, index) => {\n switch (index) {\n case 0:\n return (\n <div key={'div-' + index} dangerouslySetInnerHTML={{ __html: element }} />\n )\n case 1: // inarticle-top ad\n return (\n <Fragment key={index}>\n <div className='in-article-ad'>\n <Ad isConnected={this.props.isConnected} path={`/${process.env.RAZZLE_DFP_CODE}/${article.getCanonicalUri()}`} slotId='Inarticle-top' targeting={{ Inarticle: 'top' }} collapseEmptyDiv className='advert-inarticle' mapping={mpuRHS} {...FORMATS.inarticle} />\n </div>\n <div key={'div-' + index} dangerouslySetInnerHTML={{ __html: element }} />\n </Fragment>\n )\n case 2: // inarticle-middle ad\n return (\n <Fragment key={index}>\n <div className='in-article-ad'>\n <Ad isConnected={this.props.isConnected} path={`/${process.env.RAZZLE_DFP_CODE}/${article.getCanonicalUri()}`} slotId='Inarticle-middle' targeting={{ Inarticle: 'middle' }} collapseEmptyDiv className='advert-inarticle' mapping={mpuRHS} {...FORMATS.inarticle} />\n </div>\n <div key={'div-' + index} dangerouslySetInnerHTML={{ __html: element }} />\n </Fragment>\n )\n case 3: // Related Articles or Teads if none\n return (\n <Fragment key={index}>\n <div className='in-article-vid-ad'>\n {process.env.RAZZLE_ENABLE_LYTITEC && <Lyftitec />}\n </div>\n {relatedArticlesPresent &&\n <div id='related-articles' className='related-articles'>\n <RelatedArticles relatedArticles={article.relatedArticles} unknownImage={NoImage} />\n </div>}\n {!!relatedArticlesPresent &&\n <div className='in-article-ad'>\n <Ad isConnected={this.props.isConnected} path={`/${process.env.RAZZLE_DFP_CODE}/${article.getCanonicalUri()}`} slotId='Inarticle-related' targeting={{ Inarticle: 'related' }} collapseEmptyDiv className='advert-inarticle' mapping={mpuRHS} {...FORMATS.inarticle} />\n </div>}\n <div key={'div-' + index} dangerouslySetInnerHTML={{ __html: element }} />\n </Fragment>\n )\n case 4: // inarticle-bot ad\n return (\n <Fragment key={index}>\n <div className='in-article-ad'>\n <Ad isConnected={this.props.isConnected} path={`/${process.env.RAZZLE_DFP_CODE}/${article.getCanonicalUri()}`} slotId='Inarticle-bot' targeting={{ Inarticle: 'bot' }} collapseEmptyDiv className='advert-inarticle' mapping={mpuRHS} {...FORMATS.mpu} />\n </div>\n <div key={'div-' + index} dangerouslySetInnerHTML={{ __html: element }} />\n </Fragment>\n )\n case (index > 4 ? index : undefined): // inarticle-bot + (index - 3) ad\n return (\n <Fragment key={index}>\n <div className='in-article-ad'>\n <Ad isConnected={this.props.isConnected} path={`/${process.env.RAZZLE_DFP_CODE}/${article.getCanonicalUri()}`} slotId={`Inarticle-bot${index - 3}`} targeting={{ Inarticle: `bot${index - 4}` }} collapseEmptyDiv className='advert-inarticle' mapping={mpuRHS} {...FORMATS.mpu} />\n </div>\n <div key={'div-' + index} dangerouslySetInnerHTML={{ __html: element }} />\n </Fragment>\n )\n }\n // Remainder of the article\n return (\n <div key={'div-' + index} dangerouslySetInnerHTML={{ __html: element }} />\n )\n })\n }\n </div>\n {gallery.length > 0 &&\n <ArticleGallery gallery={gallery} />}\n <div className='article-tags'>\n {tags.map((tag, index) => (\n <Fragment key={tag.sectionSlug + '/' + tag.slug}><Link to={'/' + tag.sectionSlug + '/' + tag.slug} key={index}>{tag.label}</Link>{tags.length > index + 1 ? ' | ' : ''}</Fragment>\n ))}\n </div>\n <ArticleSocialShare className='inline-share-buttons' url={typeof (window) !== 'undefined' ? window.location.href : this.props.canonical} title={headline} quote={headline} media={resizeURL + (socialImageSrcUrl || calcImageSrcUrl(article.getImageObject(), 960, '16x9', false))} />\n </div>\n {typeof window !== 'undefined' &&\n <Outbrain canonical={this.props.canonical} />}\n </article>\n <Sidebar {...this.props} section={canonicalUri}>\n <Klangoo widgetId={process.env.RAZZLE_KLANGOO_ID} article={article} />\n </Sidebar>\n </div>\n </div>\n {this.state.hasMounted &&\n <MobileElse>\n <Ad isConnected={this.props.isConnected} path={`/${process.env.RAZZLE_DFP_CODE}/${canonicalUri}`} slotId='leaderboard-bot' targeting={{ leaderboard: 'bot' }} collapseEmptyDiv className='advert-leaderboard-bot' mapping={Leaderboard} {...FORMATS.leaderboard} />\n </MobileElse>}\n </div>\n </>\n )\n } else {\n return (\n <>\n <Helmet title='Article' />\n <div className='main-article'>\n <Ad isConnected={this.props.isConnected} path={`/${process.env.RAZZLE_DFP_CODE}/${this.props.location.pathname.substr(1)}`} slotId='leaderboard-top' targeting={{ leaderboard: 'top' }} collapseEmptyDiv className='advert-leaderboard-top' mapping={LeaderboardTop} {...FORMATS.leaderboardtop} />\n <div className='wrapper'>\n <div className='article-page'>\n <div className='loading-article'>\n Loading article...\n <PulseLoader color='#B10015' loading margin='10px' />\n </div>\n <Sidebar {...this.props} section={this.props.location.pathname.substr(1)} />\n </div>\n </div>\n <Ad isConnected={this.props.isConnected} path={`/${process.env.RAZZLE_DFP_CODE}/${this.props.location.pathname.substr(1)}`} slotId='leaderboard-bot' targeting={{ leaderboard: 'bot' }} collapseEmptyDiv className='advert-leaderboard-bot' mapping={Leaderboard} {...FORMATS.leaderboard} />\n </div>\n </>\n )\n }\n }\n}\n\nconst mapStateToProps = (state) => (Object.assign({}, state.article, state.user))\nconst mapDispatchToProps = (dispatch) => bindActionCreators({\n fetchArticle,\n setPreviewArticle,\n serverArticleRender,\n submitCompetition\n}, dispatch)\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Article)\n","export function getFormFields(formElements) {\n var formElementsArray = [];\n for (var i in formElements) {\n var element = {};\n element.name = formElements[i].name;\n element.value = formElements[i].value;\n formElementsArray.push(element);\n }\n return formElementsArray.filter(function (element) {\n return element.name ? element.name.match('fields') !== 'null' : null;\n });\n}\n\nexport function getAllFormFields(formElements) {\n var formEntries = {};\n for (var i = 0; i < formElements.length; i++) {\n if (formElements[i].type === 'checkbox') {\n if (!formEntries[formElements[i].name]) {\n formEntries[formElements[i].name] = [];\n }\n if (formElements[i].checked) {\n formEntries[formElements[i].name].push(formElements[i].value);\n }\n } else if (formElements[i].type === 'radio') {\n if (formElements[i].checked) {\n formEntries[formElements[i].name] = formElements[i].value;\n }\n } else {\n formEntries[formElements[i].name] = formElements[i].value;\n }\n }\n return formEntries;\n}\n\nfunction nodeScriptClone(node, src, callback) {\n if (!src && node.src) {\n return node;\n }\n if (src && !node.src) {\n return node;\n }\n var script = document.createElement('script');\n script.text = node.innerHTML;\n for (var i = node.attributes.length - 1; i >= 0; i--) {\n script.setAttribute(node.attributes[i].name, node.attributes[i].value);\n }\n if (callback) {\n return callback(script);\n }\n return script;\n}\n\nexport function nodeScriptReplace(node, src, callback) {\n if (!node) {\n return;\n }\n if (node.tagName === 'SCRIPT') {\n try {\n node.parentNode.replaceChild(nodeScriptClone(node, src, callback), node);\n } catch (e) {\n console.error(e.message);\n }\n } else {\n var i = 0;\n var children = node.childNodes;\n while (i < children.length) {\n nodeScriptReplace(children[i++], src, callback);\n }\n }\n}\n\nexport function executeScripts(parentNode) {\n var scripts = 0;\n if (parentNode) {\n nodeScriptReplace(parentNode, true, function (node) {\n scripts++;\n node.async = false;\n node.onload = function () {\n scripts--;\n if (scripts === 0) {\n // All scripts have been loaded\n nodeScriptReplace(parentNode, false);\n }\n };\n return node;\n });\n }\n if (scripts === 0) {\n // No loadable scripts, execute any javascript code\n nodeScriptReplace(parentNode, false);\n }\n}","module.exports = __webpack_public_path__ + \"static/media/no-search-results-v2.f76581a0.svg\";","module.exports = __webpack_public_path__ + \"static/media/cloudy.f97c2f8d.svg\";","module.exports = __webpack_public_path__ + \"static/media/x.d9c40b69.svg\";","import React, { Component, Fragment } from 'react'\nimport PropTypes from 'prop-types'\nimport { Link } from 'react-router-dom'\nimport { connect } from 'react-redux'\nimport { bindActionCreators } from 'redux'\nimport { fetchMostReadArticles } from '../../store/mostReadArticles'\n\nimport { Articles } from 'ion-article-cmp'\nimport NoImage from '../static/no-image.png'\n\nclass MostReadArticles extends Component {\n render () {\n return (\n <div className='most-read'>\n <h3><span>Most Read</span></h3>\n <Articles\n className='article-list paged' section='news' page0Limit={5} pageSize={5} fetchArticles={this.props.fetchMostReadArticles}\n noImage={NoImage} notFound={() => (<div>Oops!</div>)} fetchMoreArticles={() => { }} articles={this.props.articles}\n component={({ articles, authorName, noImage, moreButton }) => (\n <>\n {articles.map((article, index) => (\n <article key={article.contentKey}>\n <Link to={'/' + article.getCanonicalUri()}>\n <span>{index + 1}</span>\n <h4>{article.headline}</h4>\n </Link>\n </article>\n ))}\n </>)}\n />\n </div>\n )\n }\n}\n\nMostReadArticles.propTypes = {\n articles: PropTypes.object.isRequired,\n fetchMostReadArticles: PropTypes.func.isRequired\n}\n\nMostReadArticles.defaultProps = {\n pageSize: 5\n}\n\nconst mapStateToProps = (state) => ({ articles: state.mostReadArticles })\nconst mapDispatchToProps = (dispatch) => bindActionCreators({ fetchMostReadArticles }, dispatch)\n\nexport default connect(mapStateToProps, mapDispatchToProps)(MostReadArticles)\n","import React, { Component } from 'react'\nimport PropTypes from 'prop-types'\nimport { Link } from 'react-router-dom'\nimport { bindActionCreators } from 'redux'\nimport { connect } from 'react-redux'\nimport { fetchEditorsChoiceArticles } from '../../store/editorsChoice'\nimport IonArticle from 'ion-article'\n\nclass EditorsChoice extends Component {\n constructor (props) {\n super(props)\n const articles = props.articles[props.section]\n if (!articles || !articles.length) {\n props.fetchEditorsChoiceArticles(props.section)\n }\n }\n\n componentDidUpdate (prevProps) {\n if (prevProps.section !== this.props.section) {\n this.props.fetchEditorsChoiceArticles(this.props.section)\n }\n }\n\n render () {\n const rawArticles = this.props.articles\n if (rawArticles && rawArticles.length) {\n const articles = rawArticles.map(article => new IonArticle(article))\n return (\n <div className='editors-choice'>\n <h3><span>Editor's Choice</span></h3>\n {articles.slice(0, this.props.pageSize).map((article, index) => {\n return (\n <article key={article.contentKey}>\n <Link to={'/' + article.getCanonicalUri()}>\n <span>{index + 1}</span>\n <h4>{article.headline}</h4>\n </Link>\n </article>\n )\n })}\n </div>\n )\n } else if (this.props.isFetching) {\n return (\n <div>\n <p>Fetching most read articles...</p>\n </div>\n )\n } else {\n return ''\n }\n }\n}\n\nEditorsChoice.propTypes = {\n fetchEditorsChoiceArticles: PropTypes.func.isRequired,\n pageSize: PropTypes.number,\n title: PropTypes.string.isRequired,\n section: PropTypes.string.isRequired\n}\n\nEditorsChoice.defaultProps = {\n pageSize: 5\n}\n\nconst mapStateToProps = (state) => (state.editorsChoice)\nconst mapDispatchToProps = (dispatch) => bindActionCreators({ fetchEditorsChoiceArticles }, dispatch)\n\nexport default connect(mapStateToProps, mapDispatchToProps)(EditorsChoice)\n","import React, { Component, Fragment } from 'react'\nimport { bindActionCreators } from 'redux'\nimport { connect } from 'react-redux'\nimport { Dimmer, Loader, Segment } from 'semantic-ui-react/dist/commonjs'\nimport Helmet from 'react-helmet'\nimport { Link } from 'react-router-dom'\nimport 'semantic-ui-css/components/sticky.min.css'\nimport { Sticky } from 'semantic-ui-react'\nimport Ad from './Ad'\nimport FORMATS from './AdFormats'\nimport MostRead from '../components/MostReadArticles'\nimport EditorsChoice from '../components/EditorsChoice'\nimport { subscribeNewsletter, updateForm, reinitialize } from '../../store/subscribe'\nimport { fetchMagazineCover } from '../../store/magazineCover'\nimport { fetchWeather } from '../../store/weather'\nimport { setMostReadTab } from '../../store/app'\nimport { Twitter, Facebook, Instagram, RightArrow, RSS as Rss } from 'ion-icon'\nimport cloudy from '../static/weather/cloudy.svg'\nimport pcloudy from '../static/weather/pcloudy.svg'\nimport rain from '../static/weather/rain.svg'\nimport sunny from '../static/weather/sunny.svg'\nimport thunder from '../static/weather/thunder.svg'\nimport windy from '../static/weather/windy.svg'\nimport SACovidButton from '../static/general/SAcoronavirus-button.jpg'\n\nconst pictures = {\n sunny,\n windy,\n cloudy,\n partlycloudyday: pcloudy,\n showersday: rain,\n modheavyrain: rain,\n rainy: rain,\n thunder\n}\n\nconst mpuRHS = [\n [[1024, 0], [[300, 250], [3, 3]]],\n [[640, 0], [[300, 250], [336, 280], [3, 3]]],\n [[0, 0], [[300, 600], [336, 280], [320, 100], [320, 50], [300, 250], [300, 100], [300, 50], [3, 3]]]\n]\n\nexport class Sidebar extends Component {\n constructor (props) {\n super(props)\n this.state = {\n sticky: null\n }\n this.handleSubmit = this.handleSubmit.bind(this)\n this.handleChange = this.handleChange.bind(this)\n this.onTabMostReadSelected = this.onTabMostReadSelected.bind(this)\n this.onTabEditorsChoiceSelected = this.onTabEditorsChoiceSelected.bind(this)\n }\n\n setStickyRef = (element) => {\n this.setState({ sticky: element })\n }\n\n handleChange (event) {\n const newState = {}\n newState[event.target.name] = event.target.value\n this.props.updateForm(newState)\n }\n\n validateEmail (email) {\n const re = /^[^.@][^@]+@{1}[^@]+\\.[^@]+[^.@]$/i\n return email.match(re)\n }\n\n handleSubmit (event) {\n event.preventDefault()\n if (!this.validateEmail(this.props.email)) {\n this.props.updateForm({ error: 'Please enter a valid email address' })\n return false\n }\n this.props.subscribeNewsletter(this.props.email)\n return true\n }\n\n onTabMostReadSelected (e) {\n this.props.setMostReadTab(0)\n }\n\n onTabEditorsChoiceSelected (e) {\n this.props.setMostReadTab(1)\n }\n\n componentDidMount () {\n this.props.reinitialize()\n this.props.fetchWeather()\n if (!this.props.magazineCover) {\n this.props.fetchMagazineCover()\n }\n }\n\n renderDate () {\n const monthNumbers = {\n '01': 'January',\n '02': 'February',\n '03': 'March',\n '04': 'April',\n '05': 'May',\n '06': 'June',\n '07': 'July',\n '08': 'August',\n '09': 'September',\n 10: 'October',\n 11: 'November',\n 12: 'December'\n }\n let today = new Date()\n let dd = today.getDate()\n let mm = today.getMonth() + 1\n const yyyy = today.getFullYear()\n if (dd < 10) {\n dd = '0' + dd\n }\n if (mm < 10) {\n mm = '0' + mm\n }\n today = dd + ' ' + monthNumbers[mm] + ' ' + yyyy\n return today\n }\n\n render () {\n const props = this.props\n const showForm = !props.hasSubmited && !props.isSubmiting\n const submitting = props.isSubmiting\n const showThankYou = props.hasSubmited\n return (\n <aside className='sidebar' ref={this.setStickyRef}>\n <Sticky context={this.sticky}>\n <div className='read-choice'>\n <input id='most-read' type='radio' name='tabs' checked={this.props.mostReadTab === 0} onChange={() => this.onTabMostReadSelected()} />\n <label htmlFor='most-read'>Most Read</label>\n <input id='editors-choice' type='radio' name='tabs' checked={this.props.mostReadTab === 1} onChange={() => this.onTabEditorsChoiceSelected()} />\n <label htmlFor='editors-choice'>Editor's Choice</label>\n <div className='content' id='sidebar-articles'>\n {this.props.mostReadTab === 0\n ? (<MostRead {...props} section='' title='Daily Voice' />)\n : (<EditorsChoice {...props} section='' title='Daily Voice' />)}\n </div>\n </div>\n <Ad isConnected={props.isConnected} path={`/${process.env.RAZZLE_DFP_CODE}/${props.adPath || props.section}`} slotId='mpu-topright1' targeting={{ mpu: 'topright1' }} collapseEmptyDiv className='advert-sidebar' mapping={mpuRHS} {...FORMATS.mpu} />\n <div className='follow-us'>\n <h3>\n <span>Follow us</span>\n </h3>\n <a href={process.env.RAZZLE_SITE_FACEBOOK} className='facebook' target='_blank' rel='noopener noreferrer'>\n <Facebook width='24' height='24' />\n <span>Like Daily Voice on Facebook</span>\n </a>\n <a href={process.env.RAZZLE_SITE_TWITTER} className='twitter' target='_blank' rel='noopener noreferrer'>\n <Twitter width='24' height='24' fill='white' />\n <span>Follow Daily Voice on Twitter</span>\n </a>\n <a href={process.env.RAZZLE_SITE_INSTAGRAM} className='instagram' target='_blank' rel='noopener noreferrer'>\n <Instagram width='24' height='24' />\n <span>Follow Daily Voice on Instagram</span>\n </a>\n <a href={process.env.RAZZLE_SITE_RSS} target='_blank' className='instagram' rel='noopener noreferrer'>\n <Rss width='24' height='24' />\n <span>Subscribe to Daily Voice RSS Feed</span>\n </a>\n </div>\n <div className='banner-button'>\n <a href='https://sacoronavirus.co.za/' target='_blank' rel='noopener noreferrer nofollow'>\n <img src={SACovidButton} title='COVID-19 Resource Portal' alt='COVID-19 Resource Portal' />\n </a>\n </div>\n <div className='weather'>\n <h3><span>Weather</span></h3>\n <h4>Today<br />{this.renderDate()}</h4>\n {this.props.hasFetched && this.props.weather &&\n <section className='forecast'>\n <img src={pictures[props.weather.Forecasts.ForecastDay1.Day.Weather.Picture]} alt={props.weather.Forecasts.ForecastDay1.Day.Weather.WeatherFull} /> <span>{props.weather.Forecasts.ForecastDay1.Temperature.AppTemp}°</span>\n </section>}\n {this.props.hasError &&\n <section className='forecast'>\n <p>Error: {this.props.error}</p>\n </section>}\n <Link to='/weather'>View 7 day forecast <RightArrow width='16' height='16' /></Link>\n </div>\n <div className='newsletter-subscribe'>\n <h3>\n <span>On Sale Now</span>\n </h3>\n {this.props.magazineCover &&\n <img src={this.props.magazineCover.image} alt='magazine cover' />}\n </div>\n {this.props.children}\n <div className='newsletter-subscribe'>\n <h3>\n <span>Subscribe</span>\n </h3>\n {showForm &&\n <>\n <form name='item-form' id='item-form' onSubmit={this.handleSubmit}>\n <label htmlFor='email'>Sign up to receive breaking news in your inbox.</label>\n {props.error &&\n <small style={{ color: 'red' }}>{this.props.error ? this.props.error : 'An error occured, please try again'}</small>}\n <input type='email' name='email' id='email' value={props.email} placeholder='Email Address' onChange={this.handleChange} required />\n <button type='submit'>Subscribe</button>\n </form>\n </>}\n {submitting &&\n <>\n <Helmet title='Article' />\n <Segment>\n <Dimmer active>\n <Loader indeterminate size='large'>Submitting subscription.....</Loader>\n </Dimmer>\n </Segment>\n </>}\n {showThankYou &&\n <>\n <Helmet title='Article' />\n <h3>Thank you for Subscribing!</h3>\n <p>We have sent a confirmation email to the email address that you provided. Click on the link in the email to confirm your subscription to our newsletter.</p>\n </>}\n </div>\n <Ad isConnected={props.isConnected} path={`/${process.env.RAZZLE_DFP_CODE}/${props.adPath || props.section}`} slotId='mpu-bot' targeting={{ mpu: 'bot' }} collapseEmptyDiv className='advert-sidebar' {...FORMATS.mpu600} />\n </Sticky>\n </aside>\n )\n }\n}\n\nconst mapStateToProps = (state) => (Object.assign({}, state.subscribe, state.weather, state.app, state.magazineCover))\n\nconst mapDispatchToProps = (dispatch) => bindActionCreators({\n subscribeNewsletter,\n updateForm,\n reinitialize,\n fetchWeather,\n setMostReadTab,\n fetchMagazineCover\n}, dispatch)\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Sidebar)\n","module.exports = __webpack_public_path__ + \"static/media/thunder.6910377f.svg\";","import React, { Component, Fragment } from 'react'\nimport { withRouter } from 'react-router'\nimport { connect } from 'react-redux'\nimport { bindActionCreators } from 'redux'\nimport { fetchMostReadArticles } from '../../store/mostReadArticles'\nimport NoResults from '../static/icons/no-search-results-v2.svg'\nimport NoImage from '../static/no-image.png'\nimport { Articles } from 'ion-article-cmp'\nimport ArticleCard from '../components/ArticleCard'\n\nconst MostReadArticles = ({ articles, authorName, noImage, moreButton }) => {\n // Note that we don't have the format of a v2 endpoint section so must supply image\n return (\n <>\n {articles.map((article, index) => {\n article.image = article.images[0]\n return (\n <ArticleCard key={article.contentKey} article={article} noImage={noImage} />\n )\n })}\n </>\n )\n}\n\nclass NotFound extends Component {\n constructor (props) {\n super(props)\n const { staticContext } = props\n if (staticContext) {\n staticContext.is404 = true\n }\n }\n\n render () {\n // console.log('404', this.props)\n return (\n <>\n <div className='main-content'>\n <div className='wrapper no-results'>\n <img src={NoResults} alt='404 Page not found' />\n <h1>404 Page not found</h1>\n </div>\n </div>\n <div className='wrapper'>\n <div className='search-page' itemType='http://schema.org/ItemList'>\n <h1><span>Most Read</span></h1>\n <Articles\n className='search-results' component={MostReadArticles} page0Limit={8} pageSize={8}\n fetchArticles={this.props.fetchMostReadArticles} noImage={NoImage} articles={this.props.articles}\n notFound={() => (<div>Oops! No articles found.</div>)} fetchMoreArticles={() => {}}\n />\n </div>\n </div>\n </>\n )\n }\n}\n\nconst mapStateToProps = (state) => ({ articles: state.mostReadArticles })\nconst mapDispatchToProps = (dispatch) => bindActionCreators({ fetchMostReadArticles }, dispatch)\n\n// export default NotFound\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(NotFound))\n","import React from 'react'\nimport { Desktop, defaultWidth } from 'ion-media'\nimport Ad from './Ad'\nimport FORMATS from './AdFormats'\n\nconst WingBanners = ({ useSmall, isConnected, location, onSlotRenderEndedLeft, onSlotRenderEndedRight, mappingRight, mappingLeft }) => {\n return (\n <span>\n {process.env.NODE_ENV === 'production' &&\n <Desktop values={{ deviceWidth: defaultWidth }}>\n <div className={'wing-banners horizontal-center' + (useSmall ? ' reduced-header' : '')}>\n <Ad isConnected={isConnected} path={`/${process.env.RAZZLE_DFP_CODE}${location.pathname === '/' ? '/homepage' : location.pathname}`} slotId='wingbanner-left' targeting={{ wingbanner: 'left' }} onSlotRenderEnded={onSlotRenderEndedLeft} collapseEmptyDiv className='advert-wingbanner-left' mapping={mappingLeft} {...FORMATS.wingbanner} />\n <Ad isConnected={isConnected} path={`/${process.env.RAZZLE_DFP_CODE}${location.pathname === '/' ? '/homepage' : location.pathname}`} slotId='wingbanner-right' targeting={{ wingbanner: 'right' }} onSlotRenderEnded={onSlotRenderEndedRight} collapseEmptyDiv className='advert-wingbanner-right' apping={mappingRight} {...FORMATS.wingbanner} />\n </div>\n </Desktop>}\n </span>\n )\n}\n\nexport default WingBanners\n","module.exports = __webpack_public_path__ + \"static/media/sunny.456930e2.svg\";","import React, { useEffect } from 'react'\nimport { useLocation } from 'react-router-dom'\n\nconst Lyftitec = () => {\n const location = useLocation()\n useEffect(() => {\n if (typeof window !== 'undefined') {\n const script = document.createElement('script')\n script.defer = true\n script.async = true\n script.src = `${window.location.protocol}//a.vdo.ai/core/v-dailyvoice-co-za/vdo.ai.js`\n script.setAttribute('data-cfasync', 'false')\n\n document.head.appendChild(script)\n return () => {\n document.head.removeChild(script)\n }\n }\n }, [location])\n return (\n <div id='v-dailyvoice-co-za' />\n )\n}\n\nexport default Lyftitec\n","module.exports = __webpack_public_path__ + \"static/media/pcloudy.638586d7.svg\";"],"sourceRoot":""}