--- /dev/null
+/*
+ * SonarQube
+ * Copyright (C) 2009-2016 SonarSource SA
+ * mailto:contact AT sonarsource DOT com
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+import { request } from '../helpers/request';
+
+const basicCheckStatus = response => {
+ if (response.status >= 200 && response.status < 300) {
+ return response;
+ } else {
+ const error = new Error(response.status);
+ error.response = response;
+ throw error;
+ }
+};
+
+export const login = (login, password) => (
+ request('/api/authentication/login')
+ .setMethod('POST')
+ .setData({ login, password })
+ .submit()
+ .then(basicCheckStatus)
+);
import { createHistory } from 'history';
import { Provider } from 'react-redux';
import App from './components/App';
+import aboutRoutes from '../apps/about/routes';
import accountRoutes from '../apps/account/routes';
import projectsRoutes from '../apps/projects/routes';
import qualityGatesRoutes from '../apps/quality-gates/routes';
<Provider store={store}>
<Router history={history}>
<Route path="/" component={App}>
+ <Route path="about">{aboutRoutes}</Route>
<Route path="account">{accountRoutes}</Route>
{projectsRoutes}
{qualityGatesRoutes}
--- /dev/null
+/*
+ * SonarQube
+ * Copyright (C) 2009-2016 SonarSource SA
+ * mailto:contact AT sonarsource DOT com
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+import React from 'react';
+import keyBy from 'lodash/keyBy';
+import LoginSection from './LoginSection';
+import LoginForm from './LoginForm';
+import AboutProjects from './AboutProjects';
+import AboutCleanCode from './AboutCleanCode';
+import AboutIssues from './AboutIssues';
+import AboutQualityGates from './AboutQualityGates';
+import AboutLeakPeriod from './AboutLeakPeriod';
+import AboutStandards from './AboutStandards';
+import AboutScanners from './AboutScanners';
+import { translate } from '../../../helpers/l10n';
+import '../styles.css';
+import { searchProjects } from '../../../api/components';
+import { getFacet } from '../../../api/issues';
+
+export default class AboutApp extends React.Component {
+ state = {
+ loading: true
+ };
+
+ componentDidMount () {
+ this.mounted = true;
+ this.loadData();
+ }
+
+ componentWillUnmount () {
+ this.mounted = false;
+ }
+
+ loadProjects () {
+ return searchProjects({ ps: 1 }).then(r => r.paging.total);
+ }
+
+ loadIssues () {
+ return getFacet({ resolved: false }, 'types').then(r => keyBy(r.facet, 'val'));
+ }
+
+ loadData () {
+ Promise.all([
+ window.sonarqube.appStarted,
+ this.loadProjects(),
+ this.loadIssues()
+ ]).then(responses => {
+ if (this.mounted) {
+ const [options, projectsCount, issueTypes] = responses;
+ this.setState({
+ projectsCount,
+ issueTypes,
+ logoUrl: options.logoUrl,
+ logoWidth: options.logoWidth,
+ loading: false
+ });
+ }
+ });
+ }
+
+ render () {
+ if (this.state.loading) {
+ return null;
+ }
+
+ const isAuthenticated = !!window.SS.user;
+ const { signUpAllowed } = window.sonarqube;
+ const loginFormShown = !isAuthenticated && this.props.location.query.login !== undefined;
+
+ const logoUrl = this.state.logoUrl || `${window.baseUrl}/images/logo.svg`;
+ const logoWidth = this.state.logoWidth || 100;
+ const logoHeight = 30;
+ const logoTitle = this.state.logoUrl ? '' : translate('layout.sonar.slogan');
+
+ return (
+ <div id="about-page" className="about-page">
+ <div className="about-page-entry">
+
+ <div className="about-page-logo">
+ <img src={logoUrl} width={2 * logoWidth} height={2 * logoHeight} alt={logoTitle}/>
+ </div>
+
+ {loginFormShown ? (
+ <div className="about-page-entry-box">
+ <LoginForm/>
+ </div>
+ ) : (
+ <div className="about-page-entry-box">
+ <AboutProjects count={this.state.projectsCount}/>
+ {!isAuthenticated && <LoginSection/>}
+ </div>
+ )}
+
+ {signUpAllowed && (
+ <div className="about-page-sign-up">
+ No account yet? <a href={window.baseUrl + '/users/new'}>Sign up</a>
+ </div>
+ )}
+ </div>
+
+ <AboutCleanCode/>
+
+ <AboutIssues
+ bugs={this.state.issueTypes['BUG'].count}
+ vulnerabilities={this.state.issueTypes['VULNERABILITY'].count}
+ codeSmells={this.state.issueTypes['CODE_SMELL'].count}/>
+
+ <AboutQualityGates/>
+
+ <AboutLeakPeriod/>
+
+ <AboutStandards/>
+
+ <AboutScanners/>
+ </div>
+ );
+ }
+}
--- /dev/null
+/*
+ * SonarQube
+ * Copyright (C) 2009-2016 SonarSource SA
+ * mailto:contact AT sonarsource DOT com
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+import React from 'react';
+import DropImage from './DropImage';
+
+export default class AboutCleanCode extends React.Component {
+ render () {
+ return (
+ <div className="about-page-section">
+ <div className="about-page-center-container">
+ <h2 className="about-page-header">Keep your code clean by fixing the leak</h2>
+ <p className="about-page-text about-page-text-center">
+ By fixing new issues as they appear in code, you create and maintain a clean code base.
+ <br/>
+ Even on legacy projects, focusing on keeping new code clean will eventually yield a code base you can be
+ proud of.
+ </p>
+ <div className="about-page-section-image">
+ <DropImage/>
+ </div>
+ </div>
+ </div>
+ );
+ }
+}
--- /dev/null
+/*
+ * SonarQube
+ * Copyright (C) 2009-2016 SonarSource SA
+ * mailto:contact AT sonarsource DOT com
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+import React from 'react';
+import { formatMeasure } from '../../../helpers/measures';
+import { getIssuesUrl } from '../../../helpers/urls';
+
+export default class AboutIssues extends React.Component {
+ static propTypes = {
+ bugs: React.PropTypes.number.isRequired,
+ vulnerabilities: React.PropTypes.number.isRequired,
+ codeSmells: React.PropTypes.number.isRequired
+ };
+
+ render () {
+ return (
+ <div className="about-page-section about-page-section-gray">
+ <div className="about-page-container">
+ <h2 className="about-page-header text-center">Track incoming issues using the SonarQube Quality Model</h2>
+ <div className="about-page-issues">
+ <div className="about-page-issues-box">
+ <a className="about-page-issues-number" href={getIssuesUrl({ resolved: false, types: 'BUG' })}>
+ {formatMeasure(this.props.bugs, 'SHORT_INT')}
+ </a>
+ <div className="about-page-issues-description">
+ <h3 className="about-page-issues-header">Bugs</h3>
+ <p className="about-page-issues-text">
+ Bugs track code that is demonstrably wrong or highly likely to be yielding unexpected behavior.
+ </p>
+ </div>
+ </div>
+ <div className="about-page-issues-box">
+ <a className="about-page-issues-number"
+ href={getIssuesUrl({ resolved: false, types: 'VULNERABILITY' })}>
+ {formatMeasure(this.props.vulnerabilities, 'SHORT_INT')}
+ </a>
+ <div className="about-page-issues-description">
+ <h3 className="about-page-issues-header">Vulnerabilities</h3>
+ <p className="about-page-issues-text">
+ Vulnerabilities are raised on code that potentially vulnerable to exploitation by hackers.
+ </p>
+ </div>
+ </div>
+ <div className="about-page-issues-box">
+ <a className="about-page-issues-number" href={getIssuesUrl({ resolved: false, types: 'CODE_SMELL' })}>
+ {formatMeasure(this.props.codeSmells, 'SHORT_INT')}
+ </a>
+ <div className="about-page-issues-description">
+ <h3 className="about-page-issues-header">Code Smells</h3>
+ <p className="about-page-issues-text">
+ Code Smells will confuse maintainers or give them pause. They are measured primarily in terms of
+ the time they will take to fix.
+ </p>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ );
+ }
+}
--- /dev/null
+/*
+ * SonarQube
+ * Copyright (C) 2009-2016 SonarSource SA
+ * mailto:contact AT sonarsource DOT com
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+import React from 'react';
+
+const link = 'http://docs.sonarqube.org/display/HOME/Fixing+the+Water+Leak';
+
+export default class AboutLeakPeriod extends React.Component {
+ render () {
+ return (
+ <div className="about-page-section">
+ <div className="about-page-container clearfix">
+ <img className="pull-left" src="/images/understanding-leak-period.svg" width={500} height={175}
+ alt="Understanding the Leak Period"/>
+ <h2 className="about-page-header">Understanding the Leak Period</h2>
+ <p className="about-page-text">
+ The leak metaphor and the default Quality Gate are based on the leak period - the recent period against
+ which you're tracking issues. For some <code>previous_version</code> makes the most sense, for others
+ the last 30 days is a good option.
+ </p>
+ <div className="big-spacer-top">
+ <a className="about-page-link-more" href={link} target="_blank">
+ <span>Read more</span>
+ <i className="icon-detach spacer-left"/>
+ </a>
+ </div>
+ </div>
+ </div>
+ );
+ }
+}
--- /dev/null
+/*
+ * SonarQube
+ * Copyright (C) 2009-2016 SonarSource SA
+ * mailto:contact AT sonarsource DOT com
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+import React from 'react';
+import { Link } from 'react-router';
+import { formatMeasure } from '../../../helpers/measures';
+
+export default class AboutProjects extends React.Component {
+ static propTypes = {
+ count: React.PropTypes.number.isRequired
+ };
+
+ render () {
+ const { count } = this.props;
+ const label = count > 1 ? `${formatMeasure(count, 'INT')} projects` : '1 project';
+
+ return (
+ <div className="about-page-text">
+ {count > 0 ? (
+ <Link to="/projects">{label}</Link>
+ ) : 'Put your projects'}
+ {' '}
+ under continuous<br/>code quality management
+ </div>
+ );
+ }
+}
--- /dev/null
+/*
+ * SonarQube
+ * Copyright (C) 2009-2016 SonarSource SA
+ * mailto:contact AT sonarsource DOT com
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+import React from 'react';
+
+const link = 'http://docs.sonarqube.org/display/SONAR/Quality+Gates';
+
+export default class AboutQualityGates extends React.Component {
+ render () {
+ return (
+ <div className="about-page-section">
+ <div className="about-page-container clearfix">
+ <img className="pull-right" src="/images/understanding-quality-gates.svg" width={500} height={175}
+ alt="Understanding Quality Gates"/>
+ <h2 className="about-page-header">Understanding Quality Gates</h2>
+ <p className="about-page-text">
+ Your project's quality gate is the set of conditions the project must meet before it can be released
+ into production. The quality gate is designed to ensure that the next version's quality will be better
+ than the last.
+ </p>
+ <div className="big-spacer-top">
+ <a className="about-page-link-more" href={link} target="_blank">
+ <span>Read more</span>
+ <i className="icon-detach spacer-left"/>
+ </a>
+ </div>
+ </div>
+ </div>
+ );
+ }
+}
--- /dev/null
+/*
+ * SonarQube
+ * Copyright (C) 2009-2016 SonarSource SA
+ * mailto:contact AT sonarsource DOT com
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+import React from 'react';
+
+const links = {
+ sonarqube: 'http://redirect.sonarsource.com/doc/install-configure-scanner.html',
+ msbuild: 'http://redirect.sonarsource.com/doc/install-configure-scanner-msbuild.html',
+ maven: 'http://redirect.sonarsource.com/doc/install-configure-scanner-maven.html',
+ gradle: 'http://redirect.sonarsource.com/doc/gradle.html',
+ jenkins: 'http://redirect.sonarsource.com/plugins/jenkins.html',
+ ant: 'http://redirect.sonarsource.com/doc/install-configure-scanner-ant.html'
+};
+
+export default class AboutScanners extends React.Component {
+ render () {
+ return (
+ <div className="about-page-section">
+ <div className="about-page-container">
+ <h2 className="about-page-header text-center">Start analyzing your projects with a SonarQube Scanner</h2>
+ <div className="about-page-analyzers">
+ <div className="about-page-analyzer-box">
+ <div className=" big-spacer-bottom">
+ <img src={window.baseUrl + '/images/scanner-logos/sonarqube.svg'} height={80}
+ alt="SonarQube Scanner"/>
+ </div>
+ <p className="about-page-text">
+ This Java-based command-line tool can analyze any languages SonarQube supports.
+ </p>
+ <div className="big-spacer-top">
+ <a className="about-page-link-more" href={links.sonarqube} target="_blank">
+ <span>Read more</span>
+ <i className="icon-detach spacer-left"/>
+ </a>
+ </div>
+ </div>
+ <div className="about-page-analyzer-box">
+ <div className=" big-spacer-bottom">
+ <img src={window.baseUrl + '/images/scanner-logos/msbuild.svg'} height={80}
+ alt="SonarQube Scanner for MSBuild"/>
+ </div>
+ <p className="about-page-text">
+ Built in collaboration with Microsoft this is the recommended way to launch a SonarQube analysis on
+ MSBuild projects and solutions.
+ </p>
+ <div className="big-spacer-top">
+ <a className="about-page-link-more" href={links.msbuild} target="_blank">
+ <span>Read more</span>
+ <i className="icon-detach spacer-left"/>
+ </a>
+ </div>
+ </div>
+ <div className="about-page-analyzer-box">
+ <div className=" big-spacer-bottom">
+ <img src={window.baseUrl + '/images/scanner-logos/maven.svg'} height={80}
+ alt="SonarQube Scanner for Maven"/>
+ </div>
+ <p className="about-page-text">
+ Using the SonarQube Scanner for Maven is as simple as running <code>mvn sonar:sonar</code> on your
+ Maven project.
+ </p>
+ <div className="big-spacer-top">
+ <a className="about-page-link-more" href={links.maven} target="_blank">
+ <span>Read more</span>
+ <i className="icon-detach spacer-left"/>
+ </a>
+ </div>
+ </div>
+ <div className="about-page-analyzer-box">
+ <div className=" big-spacer-bottom">
+ <img src={window.baseUrl + '/images/scanner-logos/gradle.svg'} height={80}
+ alt="SonarQube Scanner for Gradle"/>
+ </div>
+ <p className="about-page-text">
+ The SonarQube Scanner for Gradle provides an easy way to start analysis of a Gradle project.
+ </p>
+ <div className="big-spacer-top">
+ <a className="about-page-link-more" href={links.gradle} target="_blank">
+ <span>Read more</span>
+ <i className="icon-detach spacer-left"/>
+ </a>
+ </div>
+ </div>
+ <div className="about-page-analyzer-box">
+ <div className=" big-spacer-bottom">
+ <img src={window.baseUrl + '/images/scanner-logos/jenkins.svg'} height={80}
+ alt="SonarQube Scanner for Jenkins"/>
+ </div>
+ <p className="about-page-text">
+ The SonarQube Scanner for Jenkins lets you integrate analysis seamlessly into a job or a pipeline.
+ </p>
+ <div className="big-spacer-top">
+ <a className="about-page-link-more" href={links.jenkins} target="_blank">
+ <span>Read more</span>
+ <i className="icon-detach spacer-left"/>
+ </a>
+ </div>
+ </div>
+ <div className="about-page-analyzer-box">
+ <div className=" big-spacer-bottom">
+ <img src={window.baseUrl + '/images/scanner-logos/ant.svg'} height={80}
+ alt="SonarQube Scanner for Ant"/>
+ </div>
+ <p className="about-page-text">
+ The SonarQube Scanner for Ant lets you start an analysis directly from an Apache Ant script.
+ </p>
+ <div className="big-spacer-top">
+ <a className="about-page-link-more" href={links.ant} target="_blank">
+ <span>Read more</span>
+ <i className="icon-detach spacer-left"/>
+ </a>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ );
+ }
+}
--- /dev/null
+/*
+ * SonarQube
+ * Copyright (C) 2009-2016 SonarSource SA
+ * mailto:contact AT sonarsource DOT com
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+import React from 'react';
+
+const link = 'http://docs.sonarqube.org/display/SONAR/Rules';
+
+export default class AboutStandards extends React.Component {
+ render () {
+ return (
+ <div className="about-page-section">
+ <div className="about-page-container clearfix">
+ <img className="pull-right" src="/images/recognized-standards.svg" width={500} height={175}
+ alt="Conform to recognized standards"/>
+ <h2 className="about-page-header">Conform to recognized standards</h2>
+ <p className="about-page-text">
+ SonarAnalyzers offer rules that support industry standards: MISRA, CERT, CWE, OWASP Top 10 and SANS Top
+ 25. Configure your Quality Profile with standard-related rules to ensure adherence.
+ </p>
+ <div className="big-spacer-top">
+ <a className="about-page-link-more" href={link} target="_blank">
+ <span>Read more</span>
+ <i className="icon-detach spacer-left"/>
+ </a>
+ </div>
+ </div>
+ </div>
+ );
+ }
+}
--- /dev/null
+/*
+ * SonarQube
+ * Copyright (C) 2009-2016 SonarSource SA
+ * mailto:contact AT sonarsource DOT com
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+import React from 'react';
+
+export default function () {
+ /* eslint-disable max-len */
+ return (
+ <svg viewBox="0 0 131 230" width={131} height={230} xmlns="http://www.w3.org/2000/svg" fillRule="evenodd" clipRule="evenodd" strokeLinejoin="round" strokeMiterlimit="1.414">
+ <path d="M0 40.99h131v52.113H0V40.99z" fill="#D8D8D8" fillRule="nonzero"/>
+ <path d="M80.223 40.99h38.66v52.113h-38.66V40.99z" fill="#DFDFDF" fillRule="nonzero"/>
+ <path d="M7.812 0h115.476v40.99H7.812V0z" fill="#D8D8D8" fillRule="nonzero"/>
+ <path d="M71.61 0h38.458v41.29h-38.46V0z" fill="#DFDFDF" fillRule="nonzero"/>
+ <path d="M7.812 40.99h115.376v-7.317L7.812 38.383v2.606z" fill="#C9C8C8" fillRule="nonzero"/>
+ <path d="M41.463 181.395l-7.01 8.72 5.308 14.23 6.71 10.122 11.218 6.714 12.82 3.008 9.514-2.506.6-12.828-10.915-8.117-11.518-7.016-16.727-12.325z" fill="#6ABAE4" fillRule="nonzero"/>
+ <path d="M108.065 184.702l-37.457-72.157-37.157 72.157C26.04 209.957 50.178 230 70.81 230c20.532 0 45.87-19.642 37.257-45.298zm-37.758 37.18c-.5 0-1.1 0-1.602-.1 0 0-.7-.1-1.903-.3-.3-.1-.6-.1-1-.2-.502-.1-1.003-.2-1.504-.4-1.1-.302-2.303-.603-3.405-1.104-.6-.2-1.202-.5-1.803-.7-.6-.302-1.202-.603-1.903-.903-1.302-.602-2.503-1.504-3.805-2.305-1.202-.902-2.504-1.804-3.606-3.007-1.202-1.002-2.203-2.305-3.205-3.508-.9-1.302-1.902-2.505-2.603-3.908-.8-1.303-1.302-2.706-1.903-4.01-.4-1.402-1-2.604-1.202-3.907-.1-.602-.3-1.203-.4-1.804-.1-.602-.1-1.203-.2-1.704-.2-1.102-.2-2.104-.2-3.006 0-.902 0-1.604.1-2.305.1-1.202.2-2.004.2-2.004s.1.702.4 1.904c.1.602.3 1.303.5 2.205.2.802.502 1.704.902 2.706l.6 1.504c.302.5.502 1.002.803 1.504.5 1.102 1.302 2.004 1.903 3.106.8 1.002 1.602 2.005 2.503 2.907.902.903 1.903 1.704 2.905 2.606 1.1.702 2.103 1.504 3.205 2.005 1.1.602 2.203 1.003 3.305 1.504 1.1.3 2.103.7 3.205.902l1.502.3c.5 0 .9.1 1.402.1.9.1 1.602.1 2.203.1h.902c.4 0 .7-.1 1-.1 1.203-.1 2.004-.2 2.004-.2 3.305-.3 6.21 2.205 6.51 5.512 0 3.408-2.504 6.314-5.81 6.615z" fill="#429BCD" fillRule="nonzero"/>
+ </svg>
+
+ );
+}
--- /dev/null
+/*
+ * SonarQube
+ * Copyright (C) 2009-2016 SonarSource SA
+ * mailto:contact AT sonarsource DOT com
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+import React from 'react';
+
+export default function () {
+ /* eslint-disable max-len */
+ return (
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 288 448" width="20" height="20">
+ <path fill="#fff" d="M264 192q10 0 17 7t7 17v144q0 10-7 17t-17 7H24q-10 0-17-7t-7-17V216q0-10 7-17t17-7h8v-80q0-46.25 32.875-79.125T144 0t79.125 32.875T256 112q0 6.5-4.75 11.25T240 128h-16q-6.5 0-11.25-4.75T208 112q0-26.5-18.75-45.25T144 48 98.75 66.75 80 112v80h184z"/>
+ </svg>
+ );
+}
--- /dev/null
+/*
+ * SonarQube
+ * Copyright (C) 2009-2016 SonarSource SA
+ * mailto:contact AT sonarsource DOT com
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+import React from 'react';
+import { Link } from 'react-router';
+import { translate } from '../../../helpers/l10n';
+import { login } from '../../../api/auth';
+
+export default class LoginForm extends React.Component {
+ state = {
+ login: '',
+ password: '',
+ error: false
+ };
+
+ handleLogin = () => {
+ this.setState({ error: false });
+ window.location = window.baseUrl + '/projects/favorite';
+ };
+
+ handleFailedLogin = () => {
+ this.setState({ error: true });
+ };
+
+ handleSubmit = e => {
+ e.preventDefault();
+ login(this.state.login, this.state.password)
+ .then(this.handleLogin, this.handleFailedLogin);
+ };
+
+ render () {
+ return (
+ <form onSubmit={this.handleSubmit}>
+ <h2 className="about-login-form-header">Log In to SonarQube</h2>
+
+ {this.state.error && (
+ <div className="alert alert-danger">
+ {translate('session.flash_notice.authentication_failed')}
+ </div>
+ )}
+
+ <div className="big-spacer-bottom">
+ <label htmlFor="login" className="login-label">{translate('login')}</label>
+ <input type="text" id="login" name="login" className="login-input" maxLength="255" required
+ placeholder={translate('login')}
+ value={this.state.login}
+ onChange={e => this.setState({ login: e.target.value })}/>
+ </div>
+
+ <div className="big-spacer-bottom">
+ <label htmlFor="password" className="login-label">{translate('password')}</label>
+ <input type="password" id="password" name="password" className="login-input" required
+ placeholder={translate('password')}
+ value={this.state.password}
+ onChange={e => this.setState({ password: e.target.value })}/>
+ </div>
+
+ <div className="text-right">
+ <button name="commit" type="submit">{translate('sessions.log_in')}</button>
+ <Link className="spacer-left" to="/about">Cancel</Link>
+ </div>
+ </form>
+ );
+ }
+}
--- /dev/null
+/*
+ * SonarQube
+ * Copyright (C) 2009-2016 SonarSource SA
+ * mailto:contact AT sonarsource DOT com
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+import React from 'react';
+import { Link } from 'react-router';
+import OAuthProvider from './OAuthProvider';
+import IconLock from './IconLock';
+
+export default class LoginSection extends React.Component {
+ render () {
+ const { authProviders } = window.sonarqube;
+
+ const loginWithSonarQubeLabel = authProviders.length ? 'Log in with SonarQube' : 'Log in';
+
+ return (
+ <div id="about-login">
+ <div className="about-page-auth-providers">
+ {authProviders.map(provider => (
+ <OAuthProvider key={provider.key} provider={provider}/>
+ ))}
+
+ <Link to={{ pathname: '/about', query: { login: null } }}
+ className="oauth-provider oauth-provider-sonarqube">
+ <IconLock/>
+ <span>{loginWithSonarQubeLabel}</span>
+ </Link>
+ </div>
+ </div>
+ );
+ }
+}
--- /dev/null
+.oauth-provider {
+ display: block;
+ width: 180px;
+ line-height: 22px;
+ padding: 8px 12px;
+ border: none;
+ border-radius: 2px;
+ box-sizing: border-box;
+ background-color: #236a97;
+ color: #fff;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+}
+
+.oauth-provider:hover,
+.oauth-provider:focus {
+ color: #fff;
+ box-shadow: inset 0 0 16px rgba(0, 0, 0, 0.3);
+}
+
+.oauth-provider > span {
+ padding-left: 6px;
+}
+
+.oauth-provider-sonarqube {
+ background-color: #4b9fd5;
+}
--- /dev/null
+/*
+ * SonarQube
+ * Copyright (C) 2009-2016 SonarSource SA
+ * mailto:contact AT sonarsource DOT com
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+import React from 'react';
+import './OAuthProvider.css';
+
+export default class OAuthProvider extends React.Component {
+ static propTypes = {
+ provider: React.PropTypes.shape({
+ key: React.PropTypes.string.isRequired,
+ name: React.PropTypes.string.isRequired,
+ iconPath: React.PropTypes.string.isRequired,
+ backgroundColor: React.PropTypes.string.isRequired
+ }).isRequired
+ };
+
+ render () {
+ const { key, name, iconPath, backgroundColor } = this.props.provider;
+
+ const url = window.baseUrl + '/sessions/init/' + key;
+ const label = 'Log in with ' + name;
+
+ return (
+ <a className="oauth-provider" href={url} style={{ backgroundColor }} title={label}>
+ <img alt={name} width="20" height="20" src={window.baseUrl + iconPath}/>
+ <span>{label}</span>
+ </a>
+ );
+ }
+}
--- /dev/null
+/*
+ * SonarQube
+ * Copyright (C) 2009-2016 SonarSource SA
+ * mailto:contact AT sonarsource DOT com
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+import React from 'react';
+import { IndexRoute } from 'react-router';
+import AboutApp from './components/AboutApp';
+
+export default (
+ <IndexRoute component={AboutApp}/>
+);
--- /dev/null
+.about-page {
+}
+
+.about-page-container {
+ position: relative;
+ width: 1080px;
+ margin-left: auto;
+ margin-right: auto;
+}
+
+.about-page-center-container {
+ position: relative;
+ width: 640px;
+ margin: 0 auto;
+ text-align: center;
+}
+
+.about-page-container .pull-left {
+ margin-right: 40px;
+}
+
+.about-page-container .pull-right {
+ margin-left: 40px;
+}
+
+.about-page-logo {
+ margin-bottom: 30px;
+}
+
+.about-page-entry {
+ padding: 75px 0;
+ background-color: #363636;
+ text-align: center;
+}
+
+.about-page-entry .alert {
+ font-size: 13px;
+}
+
+.about-page-entry-box {
+ width: 320px;
+ margin-left: auto;
+ margin-right: auto;
+ padding: 40px 30px;
+ box-sizing: border-box;
+ border-radius: 2px;
+ background-color: #fff;
+}
+
+.about-login-form-header {
+ margin-bottom: 30px;
+ font-size: 18px;
+ font-weight: bold;
+}
+
+.about-page-sign-up {
+ margin-top: 20px;
+ color: rgba(255, 255, 255, 0.7);
+}
+
+.about-page-sign-up a {
+ color: #4b9fd5;
+ border-color: #4b9fd5;
+}
+
+.about-page-auth-providers {
+}
+
+.about-page-auth-providers .oauth-provider {
+ width: 100%;
+ margin-top: 20px;
+}
+
+.about-page-section {
+ padding-top: 80px;
+ padding-bottom: 80px;
+}
+
+.about-page-section-gray {
+ border-top: 1px solid #e6e6e6;
+ border-bottom: 1px solid #e6e6e6;
+ background-color: #f3f3f3;
+}
+
+.about-page-section-image {
+ position: absolute;
+ z-index: 5;
+ top: -80px;
+ right: 100%;
+}
+
+.about-page-center-container .about-page-section-image {
+ right: auto;
+ left: -210px;
+}
+
+.about-page-header {
+ line-height: 1;
+ margin-bottom: 30px;
+ font-size: 28px;
+ font-weight: bold;
+}
+
+.about-page-text {
+ line-height: 1.5;
+ font-size: 15px;
+}
+
+.about-page-link-more {
+ border: none;
+}
+
+.about-page-link-more > span {
+ border-bottom: 1px solid #cae3f2;
+}
+
+.about-page-issues {
+ display: flex;
+ justify-content: space-around;
+ margin-top: 80px;
+}
+
+.about-page-issues-box {
+ width: 280px;
+ text-align: center;
+}
+
+.about-page-issues-number {
+ display: block;
+ border: none;
+ padding: 20px 0;
+ border-top-left-radius: 2px;
+ border-top-right-radius: 2px;
+ background-color: #4b9fd5;
+ color: #fff;
+ font-size: 50px;
+ font-weight: bold;
+}
+
+.about-page-issues-number:hover {
+ background-color: #236a97;
+ color: #fff;
+}
+
+.about-page-issues-number:focus {
+ color: #fff;
+}
+
+.about-page-issues-description {
+ min-height: 120px;
+ padding: 25px 20px 25px;
+ border: 1px solid #e6e6e6;
+ border-top: none;
+ border-bottom-left-radius: 2px;
+ border-bottom-right-radius: 2px;
+ background-color: #fff;
+}
+
+.about-page-issues-header {
+ margin-bottom: 20px;
+ font-size: 21px;
+ text-transform: uppercase;
+}
+
+.about-page-issues-text {
+ line-height: 1.3;
+ font-size: 14px;
+}
+
+.about-page-analyzers {
+ display: flex;
+ justify-content: space-around;
+ flex-wrap: wrap;
+}
+
+.about-page-analyzer-box {
+ width: 280px;
+ margin-top: 80px;
+}
const serializedQuery = Object.keys(query).map(criterion => (
`${encodeURIComponent(criterion)}=${encodeURIComponent(query[criterion])}`
)).join('|');
- return window.baseUrl + '/issues/search#' + serializedQuery;
+ return window.baseUrl + '/issues#' + serializedQuery;
}
/**
const appOptions = { el: '#content' };
if (navResponse) {
appOptions.rootQualifiers = navResponse.global.qualifiers;
+ appOptions.logoUrl = navResponse.global.logoUrl;
+ appOptions.logoWidth = navResponse.global.logoWidth;
if (navResponse.component) {
appOptions.component = {
id: navResponse.component.uuid,
},
render() {
- const homeController = window.SS.user ? '/projects/favorite' : '/projects';
+ const homeController = window.SS.user ? '/projects/favorite' : '/about';
const homeUrl = window.baseUrl + homeController;
const homeLinkClassName = 'navbar-brand' + (this.props.logoUrl ? ' navbar-brand-custom' : '');
return (
<a href="http://www.sonarqube.org/documentation" target="sonar_doc">Documentation</a> -
<a href="http://www.sonarqube.org/support" target="support">Get Support</a> -
<a href="http://redirect.sonarsource.com/doc/plugin-library.html" target="plugins">Plugins</a> -
+ <a href="{{ link '/about'}}">About</a> -
<a href="{{link '/web_api'}}">Web API</a>
</div>
--- /dev/null
+#
+# SonarQube, open source software quality management tool.
+# Copyright (C) 2008-2014 SonarSource
+# mailto:contact AT sonarsource DOT com
+#
+# SonarQube is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 3 of the License, or (at your option) any later version.
+#
+# SonarQube is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with this program; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+
+class AboutController < ApplicationController
+
+ def index
+
+ end
+
+end
SECTION=Navigation::SECTION_RESOURCE
def index
- if params[:id]
- @resource = Project.by_key(params[:id])
- return project_not_found unless @resource
- @resource = @resource.permanent_resource
+ @resource = Project.by_key(params[:id])
+ return project_not_found unless @resource
+ @resource = @resource.permanent_resource
- access_denied unless has_role?(:user, @resource)
+ access_denied unless has_role?(:user, @resource)
- # for backward compatibility with old widgets
- @project = @resource
+ # for backward compatibility with old widgets
+ @project = @resource
- # if file
- if !@resource.display_dashboard?
- @snapshot = @resource.last_snapshot
- return project_not_analyzed unless @snapshot
- @hide_sidebar = true
- @file = @resource
- @project = @resource.root_project
- @metric=params[:metric]
- render :action => 'no_dashboard'
- else
- # it is a project dashboard
- # if governance plugin is installed and we are opening a view
- if Project.root_qualifiers.include?('VW') && (@resource.qualifier == 'VW' || @resource.qualifier == 'SVW')
- return redirect_to(url_for({:controller => 'governance'}) + '?id=' + url_encode(params[:id]))
- else
- @snapshot = @resource.last_snapshot
- render :action => 'overview'
- end
- end
+ # if file
+ if !@resource.display_dashboard?
+ @snapshot = @resource.last_snapshot
+ return project_not_analyzed unless @snapshot
+ @hide_sidebar = true
+ @file = @resource
+ @project = @resource.root_project
+ @metric=params[:metric]
+ render :action => 'no_dashboard'
else
- if logged_in?
- return redirect_to :controller => 'projects', :action => 'favorite'
+ # it is a project dashboard
+ # if governance plugin is installed and we are opening a view
+ if Project.root_qualifiers.include?('VW') && (@resource.qualifier == 'VW' || @resource.qualifier == 'SVW')
+ return redirect_to(url_for({:controller => 'governance'}) + '?id=' + url_encode(params[:id]))
else
- return redirect_to :controller => 'projects'
+ @snapshot = @resource.last_snapshot
+ render :action => 'overview'
end
end
end
--- /dev/null
+#
+# SonarQube, open source software quality management tool.
+# Copyright (C) 2008-2014 SonarSource
+# mailto:contact AT sonarsource DOT com
+#
+# SonarQube is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 3 of the License, or (at your option) any later version.
+#
+# SonarQube is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with this program; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+
+class LandingController < ApplicationController
+
+ def index
+ if logged_in?
+ return redirect_to :controller => 'projects', :action => 'favorite'
+ else
+ return redirect_to :controller => 'about'
+ end
+ end
+
+end
--- /dev/null
+<% content_for :extra_script do %>
+ <script>
+ window.sonarqube.signUpAllowed = <%= Property.value("sonar.allowUsersToSignUp") == "true" ? "true" : "false" -%>;
+
+ <% auth_providers = Api::Utils.java_facade.getIdentityProviders().to_a %>
+ window.sonarqube.authProviders = [
+ <% auth_providers.each do |provider| %>
+ {
+ key: '<%= provider.getKey().to_s %>',
+ name: '<%= provider.getName().to_s -%>',
+ iconPath: '<%= provider.getDisplay().getIconPath().to_s -%>',
+ backgroundColor: '<%= provider.getDisplay().getBackgroundColor().to_s -%>'
+ },
+ <% end %>
+ ];
+ </script>
+ <script src="<%= ApplicationController.root_context -%>/js/bundles/app.js?v=<%= sonar_version -%>"></script>
+<% end %>
<a href="http://www.sonarqube.org/documentation" target="sonar_doc">Documentation</a> -
<a href="http://www.sonarqube.org/support" target="support">Get Support</a> -
<a href="http://redirect.sonarsource.com/doc/plugin-library.html" target="plugins">Plugins</a> -
+ <a href="<%= ApplicationController.root_context -%>/about">About</a> -
<a href="<%= ApplicationController.root_context -%>/web_api">Web API</a>
</div>
<!--[if lte IE 8 ]><p class="spacer-top alert alert-danger">IE 8 is not supported. Some widgets may not be properly displayed. Please switch to a <a target="_blank" href="http://redirect.sonarsource.com/doc/requirements.html">supported version or another supported browser</a>.</p><!--<![endif]-->
map.resources 'properties', :path_prefix => 'api', :controller => 'api/properties', :requirements => { :id => /.*/ }
# home page
- map.home '', :controller => :dashboard, :action => :index
- map.root :controller => :dashboard, :action => :index
+ map.home '', :controller => :landing, :action => :index
+ map.root :controller => :landing, :action => :index
# page plugins
map.connect 'plugins/configuration/:page', :controller => 'plugins/configuration', :action => 'index', :requirements => { :page => /.*/ }
--- /dev/null
+<svg viewBox="0 0 500 240" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="1.41">
+ <g transform="matrix(.964 0 0 .964 91.858 -35.894)">
+ <path d="M143.7 209.7l79.6 76.2H356s.3-40.2 0-41.2C354.3 238.3 236 121 236 121l-30.3 52.7L168 212l-24.3-2.3z" fill="url(#a)" fill-rule="nonzero"/>
+ <path d="M95.6 64.3l68.8-3.9c3.3-.3 6.2 1 8.5 3.2l87.1 80.9c4.3 4.2 6.9 14.3 2.6 18.8l-75 74.4c-4.3 4.2-11.5 4.2-16 0l-87.1-86.4c-2.3-2.3-3.6-5.2-3.3-8.4l3.9-69.5c.3-5.6 4.9-8.8 10.5-9.1z" fill="#E8201D" fill-rule="nonzero"/>
+ <path d="M95.6 58.8l68.8-3.9c3.3-.3 6.2 1 8.5 3.2l87.1 86.4c4.3 4.2 4.3 11.4 0 15.9l-72.4 71.8c-4.3 4.2-11.5 4.2-16 0l-87.1-86.4c-2.3-2.3-3.6-5.2-3.3-8.4l3.9-67.9c.3-5.9 4.9-10.4 10.5-10.7z" fill="#ED592C" fill-rule="nonzero"/>
+ <path d="M187.6 232.2c-4.3 4.2-11.5 4.2-16 0l-87.1-86.4c-2.3-2.3-3.6-5.2-3.3-8.4l3.9-67.9c.3-5.5 4.9-10.1 10.5-10.4l68.8-4.2c3.3-.3 6.2 1 8.5 3.2" fill="#EC4F22" fill-rule="nonzero"/>
+ <path d="M99.8 91.6c0 10.1 8.2 23.7 18.7 23.7 10.1 0 18.7-13.6 18.7-23.7S129 73 118.5 73s-18.7 8.5-18.7 18.6z" fill="#DF4221" fill-rule="nonzero"/>
+ <ellipse cx="118.1" cy="91.6" rx="18.7" ry="18.5" fill="#DE1B1E"/>
+ <path d="M131.2 78.6c-7.2-7.1-19-7.1-26.2 0-7.2 7.1-7.2 18.8 0 26" fill="#C1081D" fill-rule="nonzero"/>
+ <ellipse cx="118.1" cy="91.6" rx="11.1" ry="11" fill="#EBF0F2"/>
+ <path d="M110.3 83.8c-4.3 4.2-4.3 11 0 15.3 4.3 4.2 11.1 4.2 15.4 0" fill="#C9DFE4" fill-rule="nonzero"/>
+ <g fill="#435A57" fill-rule="nonzero">
+ <path d="M66.1 44.1c-1.3-1.3-1.3-2.9 0-4.2 1.3-1.3 2.9-1.3 4.3 0l50.1 49.7c1.3 1.3 1.3 2.9 0 4.2-1.3 1.3-5.2 3.6-6.5 2.3l-47.9-52z" fill-opacity=".3"/>
+ <path d="M66.1 44.1c-1.3-1.3-1.3-2.9 0-4.2 1.3-1.3 2.9-1.3 4.3 0l50.1 49.7c1.3 1.3 1.3 2.9 0 4.2-1.3 1.3-2.9 1.3-4.3 0L66.1 44.1z"/>
+ </g>
+ <path d="M120.4 93.8c-1.3 1.3-2.9 1.3-4.3 0l-50-49.7c-1.3-1.3-1.3-2.9 0-4.2" fill="#314442" fill-rule="nonzero"/>
+ <path d="M128 163.7c-2 1.9-2 4.9 0 6.8l48.1 47.7c2 1.9 4.9 1.9 6.9 0l62.9-62.4c2-1.9 2-4.9 0-6.8l-48.1-47.7c-2-1.9-4.9-1.9-6.9 0L128 163.7z" fill="#EBF0F2" fill-rule="nonzero"/>
+ <path d="M128 163.7l49.8-49 8.5 100.7-3.3 3.2c-2 1.9-4.9 1.9-6.9 0L128 170.8c-2-2.3-2-5.2 0-7.1z" fill="#C9DFE4" fill-rule="nonzero"/>
+ </g>
+ <defs>
+ <linearGradient id="a" x2="1" gradientUnits="userSpaceOnUse" gradientTransform="scale(110.93) rotate(-128 1.66 .488)">
+ <stop offset="0%" stop-color="#fff"/>
+ <stop offset="100%" stop-color="#ABABAB"/>
+ </linearGradient>
+ </defs>
+</svg>
--- /dev/null
+<svg viewBox="0 0 130 80" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="1.41">
+ <path d="M128.44 47.8s-1.66-1.68-3.1-2.33c-1.45-.65-1.38-1.3-2.24-1.37-.87-.07-2.45-.36-3.75-.94-1.3-.58-4.98-2.1-6.56-2.95-1.6-.86-2.6-1.5-3.04-1.87-.44-.36-1.16-.3-2.53-.1 0 0-3.9.9-5.26 1.54-1.37.65-4.47 2.38-4.98 2.8 0 0-.58 0-.8.3l-.07-.07c-.36-.22-2.67-2.45-2.67-2.45-1.16-1-3.1-3.1-4.33-4.1-1.23-1.02-6.17-2.6-8.22-2.4-1.9.2-2.82 1.45-3.32 2.68-.4-.72-.85-1.44-1.3-1.95l-1.57-1.88s-1.3 0-2.6.87c-.77.52-1.88 1.7-2.63 2.56-.62.02-1.12.17-1.4.4-.93.8-6.27 4.54-6.5 5.48-.12.6-.34.98-.63 1.2-.42-.44-1.28-.82-2.24-.4l-.2.08c-.13-2.6-.5-9.4-.67-10.1-.2-.87-.65-1.52-1.37-1.16-.72.36-1.37 1.37-1.37 2.46 0 1.08.43 1.65.57 2.1.12.35.24 5.7.5 7.8-.96.5-1.83 1.16-2.1 1.92-.5 1.52-.42 2.1-.85 2.53l-.24.18c-.3-.3-.67-.58-.96-.87-.15-.66-.2-1.4.4-1.76.73-.43.73-3.24 0-3.53l-.72-.3s1.3-4.82 1-7.56c-.28-2.74-.56-5.63-1.14-6.06-.58-.43-1.8-.2-1.8-.2s-1.66.92-3.75 2.15c-2.08 1.22-5.84 3.82-6.4 4.7-.6.85-2.97 3.38-2.97 3.38l-.16.2c-1.85-.24-3.8-.3-4.96.08-2.3.8-7.27 3.75-8.07 5.56-.65 1.47-1.35 2.76-1.42 4.37-.9 1.93-1.38 5.25.78 9.9 0 0 1.3.8 3.32.57.45-.04 1.1-.06 1.8-.14-1.76 2.3-3.93 5.16-4.75 5.98-1.23 1.23-9.1 8.15-10.4 8.5-1.3.38-1.72.23-.64.8 1.1.58 3.02.15 3.7-.86.7-1 1.65-2.67 2.44-3.46.8-.8 4.98-3.4 5.34-3.9.35-.5 6.38-6.52 7.04-7.73.43-.2.83-.5 1.15-.85.35-.02.67-.1.97-.2 1.94-.8 5.05-3.26 6.56-5.42.87-1.25 1.65-2.6 2.07-3.7.8-.63 1.45-1.1 1.68-1.13.72-.15 1.87-.5 1.87.72s1.23 3.9 2.3 5.48c1.1 1.6 2.54 2.88 2.54 2.88s-.08.66.65.74c.73.07 1.37-.15 1.52.2.35.88 1.87.23 2.6-.42.72-.65 1 .43 2-.22C57.56 55.86 58 55 58 53.83c0-.5-.24-.9-.6-1.2l.1-.1s.85.07 1.7-.2c-.05.37-.05.86.02 1.5.22 1.8 1.45 2.96 2.17 2.96s1.22.78 1.22.78-.08 1.37.93 1.66c1 .3 3.75-1 4.4-1.58.65-.58 1.95.86 2.52 2.1.58 1.2 3.6 6.33 4.7 7.56 1.07 1.23 2.5 3.25 3.88 4.98 1.38 1.73.6 1.9 1.02 1.9.44 0 .15.3.5.65.37.36 2.32 1.5 2.82 1.88.5.36 2.6 1.08 2.9.86.27-.22.42-.94.42-.94s-.37.14-1.8-.37c-1.46-.5-3.33-1.74-3.55-2.1-.22-.36-.86-.65-.86-.65s-1.95-2.26-3.1-4.5c0 0-.96-2.3-1.97-4.54-1-2.23-4.33-8.8-5.77-9.15-1.44-.36-3.25.07-4.26.94-1 .85-1.44.56-1.94.2-.5-.36.07-1.22-.22-2.45-.1-.43-.3-1.1-.62-1.75.34-.05.63-.25.77-.63.28-.8.2-1.15 1.2-1 .16 0 .38.03.66.03-.14.26-.23.48-.24.62-.02.8.62 2.27 1.57 2.63.95.35 5 2.12 5.84 1.27.85-.85 4.62-2.9 5.3-3.28.66-.37 1.9-.62 2.32-.53.42.1 1.3 3.25 2.77 5.93 1.5 2.68 1.24 3.8 2.2 3.43.98-.38.96.72 1.85.7.9-.03 1.05.6 1.57 1.6.53 1 1.07 2.22 2.35 2.42 1.3.2 6.4 1.53 6.97 1.22.6-.32.6-1.12-.87-1.44-1.48-.33-4.94-.34-5.7-.88-.78-.53-.97-3.38-1.8-3.7-.8-.33-2.04-.75-2.2-1.07-.12-.27-3.02-5.42-4.14-8.16 1.47.63 3.75 1.52 5.13 1.96 2 .65 5.47 1.73 6.92 1.73.9 0 1.27-.32 1.42-.55.1.25.18.45.24.55.28.5.72.87.72.87s-.15.3.28.5c.44.22 3.4.65 4.48 1.66 1.08 1 2.6 2.96 2.74 4.76.14 1.8 1.3 3.75 1.87 3.82.58.08 1.23 0 .65-2.45-.58-2.46-1.44-4.4-2.8-5.5-1.38-1.07-4.92-2.8-5.35-3.02-.43-.22-1-.8-1.22-.8-.22 0-.15-.2-.5-1.43-.07-.22-.14-.46-.2-.72.1-.24.43-1.15.55-2.4.15-1.43-.5-4.6-1.08-5.4 0 0-.06-.5-.07-.92.18.1.36.12.5 0 .43-.36 1.6-1.88 3.4-2.67 1.8-.8 3.52-1.5 5.54-1.66 2-.14 2.3-.3 2.3-.3s.94-.13 2.02.45c1.08.57 7.5 3.82 8.44 4.18.94.36 2.38 1 3.4 1.8 1 .8 1.8.72 1.8.72s.7.8 1.8 1.52c1.08.72 1.44 1.08 2.1 1.22.63.15 1.93.82.28-1.56zm-86.76-.76c.03-.28 0-.52-.07-.7-.13-.32-.15-.8-.12-1.35.36.2 1.08.66 1.73 1-.5.25-.98.64-1.52 1.04zm5.98-6.9c-1.08-.73-3.1.07-3.82.43-.58.3-1.7.48-2.08.55-.15-.52-.44-1.06-1.02-1.35-.53-.26-1.78-.6-3.23-.85l2.3-2.47s1.73-.14 2.96-1c1.23-.87 5.92-5.56 6.56-5.92.65-.36 1.23-.2 1.1.87-.16 1.08-.88 5.48-.95 7.14-.07 1.65.07 5.04.07 5.04s-.9.63-.8 1.33c-.26-.04-.47-.07-.57-.1-.3-.06.58-2.95-.5-3.67zm4.12 14.56c-.44.58-.94.3-.94.3s-1.73-2.9-2.45-5.57l-.3-.9c.57.13 1.1.13 1.5.54.5.5.9 1.7 1.3 2.28-.3.95-.38 1.4.52 1.7 1.08.35 2-.15 2-.15s.14.15.36.34c-.9.52-1.74 1.1-2 1.46zm21.5-19.76c.7-1 1.43-1 1.64-.22.14.48.53 2.23.82 3.56-.7.13-1.2.24-1.5.4-.6-.8-1.3-1.4-2-1.8.27-.57.56-1.28 1.03-1.94zM77.5 49.2s-5.86 1.2-6.94 1.77c-1.08.58-2 1.34-2.68 1.12-.7-.24 1.15-.87 2.74-2.07.62-.48 1.1-1.2 1.18-1.83l.3-.42c1.08-1.6 2.3-2.86 2.92-4.2.23.06.46.1.7.1.05 1.37.68 2.44 1.15 3.3.33.6 1.13 1.3 1.98 1.95-.5.07-.97.18-1.34.28zm10.84.14c-.54.54-1.17.72-2.7-1.35-1.53-2.1-.03-3.2.9-3.08.72.1.72.27 1.44 1.36.73 1.08.9 2.52.36 3.06" fill="#A81C7D" fill-rule="nonzero"/>
+ <path d="M5.33 79.42l-4.9-2.04V76.1l4.9-2.03v1.53l-2.97 1.14 2.97 1.16v1.52M13.4 78.85h-2.2l-.32 1.04h-2l2.38-6.32h2.13l2.36 6.3h-2.04l-.32-1.03zM13 77.5l-.7-2.3-.7 2.3H13M19.46 73.58h3.24c.7 0 1.24.16 1.6.5.34.34.52.82.52 1.44 0 .63-.2 1.13-.58 1.5-.38.35-.96.53-1.75.53H21.4v2.34h-1.96v-6.32zm1.96 2.7h.48c.38 0 .64-.07.8-.2.15-.13.22-.3.22-.5s-.06-.37-.2-.5c-.13-.15-.38-.22-.74-.22h-.56v1.4M32.05 78.85h-2.2l-.32 1.04h-2l2.37-6.32h2.14l2.37 6.3h-2.04l-.3-1.03zm-.4-1.36l-.7-2.3-.7 2.3h1.4M42.16 77.3l1.7.53c-.1.48-.28.88-.53 1.2-.25.32-.55.56-.92.72-.36.17-.82.25-1.4.25-.67 0-1.23-.1-1.67-.3-.43-.2-.8-.55-1.13-1.05-.3-.5-.47-1.15-.47-1.93 0-1.05.28-1.85.83-2.4.56-.57 1.34-.85 2.36-.85.8 0 1.42.16 1.87.48.45.32.8.82 1 1.48l-1.7.4c-.07-.2-.14-.35-.2-.44-.1-.16-.25-.27-.4-.35-.16-.08-.34-.12-.53-.12-.44 0-.78.17-1 .53-.2.26-.28.68-.28 1.24 0 .7.1 1.18.3 1.44.22.26.52.4.9.4.37 0 .65-.1.84-.32.2-.2.33-.5.42-.9M47.9 73.58h1.96v2.2H52v-2.2h1.95v6.3H52v-2.54h-2.14v2.55H47.9v-6.32M58.32 73.58h5.24v1.35h-3.28v1h3.04v1.28h-3.04v1.26h3.37v1.43h-5.33v-6.32M77.68 78.85h-2.2l-.32 1.04h-2l2.38-6.32h2.13l2.37 6.3H78l-.32-1.03zm-.4-1.36l-.7-2.3-.7 2.3h1.4M83.76 73.58h1.82l2.38 3.5v-3.5h1.84v6.3h-1.84l-2.37-3.47v3.5h-1.84v-6.32M93.75 73.58h5.92v1.55h-2v4.76h-1.94v-4.77h-1.98v-1.55M103.45 77.9l2.98-1.16-2.98-1.14v-1.53l4.9 2.03v1.28l-4.9 2.04V77.9" fill="#231F20" fill-rule="nonzero"/>
+ <path d="M0 67.66L80.7 0h.46l28.9 67.66H0" fill="#fff" fill-rule="nonzero"/>
+ <path d="M71.8 48.2c-.1.63-.56 1.35-1.18 1.83-1.6 1.2-3.43 1.83-2.74 2.06.7.2 1.6-.55 2.68-1.13 1.08-.57 6.95-1.76 6.95-1.76.38-.1.84-.2 1.35-.27-.85-.64-1.65-1.34-1.98-1.95-.47-.86-1.1-1.93-1.16-3.3-.22 0-.45-.04-.68-.1-.62 1.34-1.84 2.6-2.9 4.2-.1.14-.2.28-.32.42M75.74 38.28c-.3-1.33-.68-3.08-.82-3.56-.2-.8-.93-.8-1.65.22-.47.66-.76 1.37-1.02 1.95.7.4 1.4.97 1.98 1.78.3-.16.82-.27 1.5-.4M86.54 44.92c-.93-.1-2.43 1-.9 3.07 1.53 2.06 2.16 1.88 2.7 1.34.54-.54.37-1.98-.36-3.06-.72-1.1-.72-1.26-1.44-1.36" fill="#A81C7D" fill-rule="nonzero"/>
+ <path d="M46 30.47c2.1-1.23 3.76-2.16 3.76-2.16s1.22-.2 1.8.22c.58.43.86 3.32 1.15 6.06.3 2.74-1 7.57-1 7.57l.72.3c.73.28.73 3.1 0 3.52-.6.36-.55 1.1-.4 1.76.3.3.65.58.96.88l.24-.17c.43-.44.36-1 .86-2.53.26-.76 1.13-1.4 2.08-1.93-.25-2.1-.37-7.44-.5-7.8-.13-.44-.57-1-.57-2.1 0-1.08.64-2.1 1.36-2.45.72-.36 1.16.3 1.37 1.16.18.7.54 7.5.67 10.1l.2-.08c.96-.42 1.82-.04 2.24.4.3-.22.5-.6.64-1.2.22-.93 5.56-4.68 6.5-5.47.27-.23.77-.38 1.4-.4.74-.85 1.85-2.04 2.63-2.56 1.3-.87 2.6-.87 2.6-.87l1.6 1.88c.43.5.88 1.23 1.28 1.95.5-1.23 1.4-2.5 3.33-2.67 2.06-.2 7 1.37 8.23 2.38 1.23 1 3.17 3.1 4.33 4.1 0 0 2.3 2.24 2.67 2.46l.08.06c.22-.28.8-.28.8-.28.2-.17.84-.56 1.6-1L81.17.7h-.46L42.3 32.9c1.25-.9 2.68-1.83 3.7-2.43M61.37 56.8c-.72 0-1.95-1.16-2.17-2.97-.07-.64-.07-1.13 0-1.5-.87.27-1.73.2-1.73.2l-.1.1c.37.3.6.7.6 1.2 0 1.16-.42 2.03-1.44 2.67-1 .65-1.3-.43-2.02.22-.7.65-2.23 1.3-2.58.43-.15-.36-.8-.14-1.5-.2-.74-.1-.66-.74-.66-.74s-1.45-1.28-2.53-2.87c-1.08-1.6-2.3-4.26-2.3-5.48 0-1.23-1.16-.87-1.88-.72-.23.04-.87.5-1.68 1.13-.42 1.1-1.2 2.45-2.07 3.7-1.5 2.16-4.62 4.6-6.56 5.4-.3.13-.62.2-.97.22-.32.36-.72.64-1.15.85-.66 1.2-6.7 7.24-7.04 7.74-.2.3-1.67 1.26-3.03 2.2H76c-.3-.4-.6-.75-.86-1.05-1.08-1.23-4.1-6.35-4.7-7.57-.56-1.23-1.86-2.67-2.5-2.1-.66.58-3.4 1.88-4.4 1.6-1.02-.3-.95-1.67-.95-1.67s-.5-.8-1.23-.8M23.15 65.08c.82-.82 3-3.67 4.75-5.98-.7.08-1.35.1-1.8.14-2.02.22-3.32-.57-3.32-.57-1.66-3.57-1.75-6.34-1.3-8.32L0 68.35h19.5c1.7-1.46 3.17-2.8 3.65-3.27" fill="#A81C7D" fill-rule="nonzero"/>
+ <path d="M97.35 44.1c-.14.12-.32.1-.5 0 0 .43.07.94.07.94.58.8 1.23 3.96 1.08 5.4-.12 1.24-.46 2.15-.55 2.4.06.25.13.5.2.7.35 1.23.28 1.45.5 1.45.2 0 .8.56 1.22.78.43.22 3.97 1.95 5.34 3.03 1.38 1.1 2.24 3.04 2.82 5.5.58 2.44-.07 2.52-.65 2.44-.58-.07-1.73-2.02-1.87-3.82-.15-1.8-1.66-3.75-2.74-4.76-1.08-1-4.04-1.44-4.48-1.66-.43-.2-.28-.5-.28-.5s-.44-.36-.72-.87c-.06-.1-.15-.3-.24-.55-.15.23-.5.55-1.42.55-1.45 0-4.9-1.08-6.93-1.73-1.4-.44-3.67-1.33-5.14-1.96 1.12 2.74 4.02 7.9 4.15 8.17.16.33 1.4.75 2.2 1.08.83.32 1.02 3.17 1.8 3.7.76.54 4.22.55 5.7.88 1.48.32 1.46 1.12.87 1.44-.58.3-5.68-1-6.97-1.22-1.28-.2-1.82-1.43-2.35-2.43-.52-1-.68-1.62-1.57-1.6-.9.03-.87-1.07-1.84-.7-.97.4-.72-.74-2.2-3.42-1.5-2.68-2.36-5.83-2.78-5.92-.43-.08-1.66.17-2.33.54-.67.37-4.44 2.43-5.3 3.28-.84.85-4.88-.92-5.84-1.27-.96-.36-1.6-1.82-1.58-2.63 0-.14.1-.36.24-.62-.28 0-.5-.02-.65-.04-1-.14-.92.22-1.2 1-.15.4-.44.6-.78.64.3.64.52 1.32.62 1.75.3 1.23-.3 2.1.22 2.45.5.36.94.65 1.94-.2 1-.88 2.82-1.3 4.26-.95 1.44.36 4.76 6.92 5.77 9.16.67 1.5 1.32 3 1.68 3.86h32.95L99 42.5c-.8.68-1.37 1.37-1.65 1.6M36.47 38.76l.16-.2s2.32-2.47 2.93-3.37l-4.1 3.44c.33.03.67.07 1 .12M49.6 49.07c-.4-.4-.93-.4-1.5-.53l.3.9c.7 2.66 2.44 5.55 2.44 5.55s.5.28.94-.3c.26-.35 1.1-.94 2-1.46l-.35-.34s-.93.5-2 .14c-.9-.3-.82-.74-.52-1.7-.4-.58-.8-1.78-1.3-2.27M49.32 29.53c-.64.36-5.33 5.05-6.56 5.92-1.23.86-2.96 1-2.96 1l-2.3 2.47c1.46.25 2.7.6 3.24.85.58.3.87.83 1.02 1.35.4-.07 1.5-.26 2.08-.55.72-.36 2.74-1.16 3.82-.44 1.1.72.22 3.6.5 3.68.1.03.32.06.58.1-.1-.7.8-1.32.8-1.32s-.14-3.4-.07-5.04c.07-1.66.8-6.06.94-7.14.15-1.08-.43-1.23-1.08-.87M43.2 46c-.64-.34-1.36-.8-1.72-1-.03.53 0 1.02.13 1.34.1.18.1.42.08.7.54-.4 1.02-.8 1.53-1.04" fill="#A81C7D" fill-rule="nonzero"/>
+</svg>
--- /dev/null
+<svg viewBox="0 0 121 80" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="1.414">
+ <path d="M40.12 36.842c.926-2.127.903-4.232.348-5.897-.694-2.036-3.54-4.72-4.44-3.655-.116.14-1.758-.046-2.013.3-.393.51-.162.672.023.857.58.51 2.036 1.064 2.706 2.798.278.74.926 2.452-.208 3.493-1.272 1.156-2.706 1.434-8.58-4.025-6.245-5.805-14.618-3.446-17.393-2.52-2.776.925-4.048 1.85-2.96 3.977 1.48 2.915.994 2.013 2.45 4.418 2.29 3.816 7.333-1.758 7.333-1.758-3.747 5.644-6.962 4.28-8.188 2.313-1.11-1.78-1.966-3.816-1.966-3.816C-2.25 36.75.317 51.83.317 51.83h4.718c1.203-5.55 5.505-5.343 6.222 0h3.585c3.168-10.847 9.968 0 9.968 0h4.024c0-5.782-.6-7.956 2.36-8.373 5.042-.67 7.4-3.03 8.927-6.615z" fill="#02303A"/>
+ <g fill="#22DA27" fill-rule="nonzero">
+ <path d="M57.528 35.495v2.325c.493-.845 1.62-2.77 5.284-2.653l-.024 4.015c-.845.024-2.324.047-3.522.963-1.667 1.268-1.738 2.935-1.738 5.636v6.177h-3.78V35.472l3.78.023zM64.385 40.427c.07-.822.14-1.62.658-2.56 1.573-2.84 5.448-2.818 6.504-2.818 1.574 0 3.452.21 4.885 1.056 1.925 1.174 1.95 2.724 1.95 4.485l-.025 8.643c0 1.244 0 1.737.705 2.724h-4.626c-.024-.4-.094-1.15-.094-1.362-.846.704-2.583 1.644-4.838 1.644-3.686-.025-5.894-2.303-5.894-5.12 0-.823.212-1.574.54-2.208 1.174-2.348 3.687-2.865 5.26-3.147 5.33-.892 5.026-1.41 4.932-2.207-.07-.752-.846-1.456-2.654-1.456-1.62 0-2.512.517-2.912 1.033-.422.517-.4.846-.4 1.315h-3.99v-.023zm10.05 3.31c-.774.4-1.667.682-3.428.964-1.41.188-3.264.517-3.264 2.23 0 1.27 1.08 1.927 2.63 1.927 1.996 0 3.405-.892 3.828-1.88.236-.492.236-.985.236-1.454v-1.785zM95.9 28.897l-.072 23.06h-3.874V50.36c-1.22 1.456-2.842 2.043-4.533 2.043-3.873-.024-7.23-2.935-7.208-8.313.024-4.86 2.77-8.994 7.444-8.97 1.597 0 3.077.47 4.32 1.83v-8.053H95.9zM91.06 40.24c-.586-.893-1.55-1.504-2.864-1.504-2.653 0-3.92 2.372-3.92 4.955 0 .306.022 5.19 3.826 5.19 2.02 0 3.852-1.48 3.828-5-.047-1.058-.164-2.56-.87-3.64zM102.71 28.897l-.072 23.06h-3.945v-23.06h4.016zM120.203 48.13c-1.808 3.193-4.11 4.367-7.444 4.367-4.275-.024-8.384-2.724-8.36-8.736.023-5.47 3.545-8.57 8.148-8.546 4.297.023 6.082 2.606 6.41 3.076 1.34 1.902 1.62 4.743 1.644 6.364l-12.07-.047c.446 2.583 2.043 4.062 4.626 4.062 2.677 0 3.382-1.574 3.875-2.255l3.17 1.714zm-3.874-6.365c-.354-2.536-1.904-3.428-3.64-3.428-2.09 0-3.524 1.197-3.993 3.405l7.632.023zM41.7 39.91v3.382h5.778v3.968c-1.48.94-3.17 1.48-5.59 1.48-3.897 0-7.114-3.264-7.114-8.36 0-5.002 2.958-8.336 7.467-8.336 3.617 0 4.98 2.982 5.19 4.11h3.946c0-2.302-2.724-7.962-9.487-7.962-7.163 0-11.39 5.073-11.39 12.21 0 7.422 5.072 12.07 11.13 12.07 8.97 0 9.746-4.484 9.746-4.484V39.91H41.7z"/>
+ </g>
+ <path d="M40.838 32.934c-.856.07-1.71.208-2.52.44-.024.022-.047.07-.07.092-.37.416-.833.81-1.342 1.04-.07.047-.138.07-.208.093l-.14.138c-1.27 1.156-2.82 1.434-8.58-4.025-6.175-5.85-14.617-3.446-17.392-2.52-2.776.925-4.048 1.85-2.96 3.977 1.48 2.915.994 2.013 2.45 4.418 2.29 3.816 7.333-1.758 7.333-1.758-3.748 5.644-6.963 4.28-8.19 2.313-1.11-1.78-1.965-3.816-1.965-3.816C-2.227 36.75.34 51.83.34 51.83h4.718c1.203-5.55 5.505-5.343 6.222 0h3.585c3.168-10.847 9.968 0 9.968 0h4.025c0-5.782-.602-7.956 2.36-8.373 5.064-.694 7.4-3.053 8.926-6.615.555-1.34.764-2.682.694-3.908z" fill="#02303A"/>
+ <path d="M23.746 34.437s2.174.717 5.088 1.688c-.16.787-1.62 2.29-3.492 1.643-2.498-.81-1.596-3.33-1.596-3.33z" fill="#fff"/>
+ <ellipse cx="124.8" cy="98.1" rx="5.7" ry="5.5" fill="#02303A" transform="matrix(.23 -.02442 .02442 .23 -4.88 16.496)"/>
+ <path d="M34.038 28.47c.162.14.37.277.58.416.97-.81 2.242-.786 3.33-1.226-.95-.878-2.476-1.55-2.938-.994-.116.14-.717.6-.972.948-.416.51-.208.67 0 .856z" fill="#02303A"/>
+</svg>
--- /dev/null
+<svg viewBox="0 0 188 80" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd">
+ <path d="M41.107 38.595c0 11.404-9.038 20.65-20.188 20.65C9.77 59.244.73 49.998.73 38.594c0-11.404 9.038-20.65 20.187-20.65 11.15 0 20.187 9.246 20.187 20.65" fill="#D33833"/>
+ <path d="M1.554 43.71s-1.46-21.535 18.38-22.15l-1.383-2.307-10.766 3.615-3.076 3.537-2.692 5.153-1.538 6 .46 3.998" fill="#EF3D3A" fill-rule="nonzero"/>
+ <path d="M7.092 24.508C3.55 28.133 1.36 33.136 1.36 38.672c0 5.534 2.19 10.54 5.732 14.162 3.544 3.624 8.428 5.86 13.827 5.86 5.398 0 10.282-2.236 13.826-5.86 3.54-3.623 5.734-8.628 5.734-14.162 0-5.536-2.193-10.54-5.734-14.164-3.544-3.622-8.428-5.858-13.827-5.86-5.4.002-10.284 2.238-13.828 5.86zM6.196 53.71C2.432 49.86.104 44.54.104 38.673c0-5.87 2.328-11.19 6.092-15.04 3.763-3.85 8.973-6.237 14.723-6.236 5.75 0 10.96 2.386 14.722 6.236 3.765 3.85 6.092 9.17 6.092 15.04 0 5.87-2.327 11.19-6.092 15.04-3.763 3.85-8.973 6.236-14.723 6.236S9.96 57.56 6.195 53.71" fill="#231F20" fill-rule="nonzero"/>
+ <path d="M29.417 38.71l-3.076.46-4.152.462-2.692.077-2.614-.078-2-.615-1.77-1.923-1.383-3.922-.31-.846-1.845-.615L8.5 29.943l-.77-2.538.846-2.23 2-.692 1.614.77.77 1.69.922-.153.308-.385-.308-1.77-.077-2.23.462-3.076-.018-1.758 1.4-2.242 2.462-1.77 4.307-1.845 4.767.693 4.153 3 1.922 3.075 1.23 2.23.308 5.538-.922 4.77-1.692 4.23-1.615 2.23" fill="#F0D6B7"/>
+ <path d="M26.802 52.014l-10.997.46v1.847l.923 6.46-.462.54-7.69-2.615-.54-.923-.768-8.69-1.768-5.23-.385-1.23 6.152-4.23 1.923-.77 1.692 2.077 1.46 1.307 1.693.538.77.23.922 4 .692.846 1.768-.615-1.23 2.384 6.69 3.152-.846.462" fill="#335061"/>
+ <path d="M8.576 25.174l2-.692 1.614.77.77 1.69.922-.153.23-.924-.46-1.77.46-4.23-.384-2.306 1.385-1.615 3-2.384-.847-1.152-4.23 2.076-1.77 1.384-.998 2.154-1.54 2.076-.46 2.46.308 2.616" fill="#6D6B6D"/>
+ <path d="M11.73 17.945s1.152-2.846 5.767-4.23c4.614-1.384.23-1 .23-1l-4.998 1.923-1.924 1.923-.846 1.54 1.77-.155M9.422 24.636s-1.615-5.384 4.537-6.153l-.232-.923-4.23 1-1.23 4 .308 2.614.846-.538" fill="#DCD9D8"/>
+ <path d="M11.883 31.788l1.006-.976s.454.053.53.59c.078.54.308 5.385 3.615 8 .302.238-2.46-.385-2.46-.385l-2.462-3.845M26.034 30.327s.18-2.33.807-2.152c.628.18.628.807.628.807s-1.524.986-1.434 1.345" fill="#F7E4CD"/>
+ <path d="M32.416 21.79s-1.267.268-1.384 1.384c-.117 1.117 1.384.23 1.615.154M23.11 21.867s-1.69.23-1.69 1.307 1.922 1 2.46.54" fill="#F7E4CD" fill-rule="nonzero"/>
+ <path d="M12.652 26.866s-2.923-1.77-3.23-.077c-.308 1.69-1 2.922.46 4.69l-1-.307-.922-2.384-.307-2.308 1.77-1.846 1.998.153 1.155.922.077 1.154M14.036 22.02s1.307-6.767 7.92-8.074c5.446-1.077 8.307.23 9.384 1.46 0 0-4.845-5.767-9.46-3.998-4.614 1.77-7.998 5-7.92 7.075.13 3.536.076 3.538.076 3.538M31.878 16.176s-2.23-.077-2.307 1.923c0 0 0 .306.155.614 0 0 1.77-2 2.845-.923" fill="#F7E4CD"/>
+ <path d="M22.112 18.922s-.384-3.07-3-1.285c-1.692 1.154-1.538 2.77-1.23 3.076.307.308.223.928.457.502.233-.425.156-1.81 1.002-2.193.846-.385 2.233-.815 2.77-.1" fill="#F7E4CD"/>
+ <path d="M14.882 39.71l-7.23 3.23s3 11.92 1.462 15.61l-1.077-.383-.077-4.538-2-8.614-.845-2.384 7.537-5.076 2.23 2.153M15.625 46.302l1.026 1.252v4.614h-1.23s-.153-3.23-.153-3.615c0-.384.153-1.77.153-1.77M15.65 52.86l-3.46.154 1 .692 2.46.385" fill="#49728B"/>
+ <path d="M27.495 52.09l2.845-.076.692 7.075-2.922.384-.615-7.383" fill="#335061"/>
+ <path d="M28.264 52.09l4.306-.23s1.77-4.46 1.77-4.69c0-.232 1.537-6.46 1.537-6.46l-3.46-3.615-.693-.616-1.845 1.845v7.152l-1.616 6.614" fill="#335061"/>
+ <path d="M30.186 51.553l-2.69.538.383 2.154c1 .462 2.69-.77 2.69-.77M30.263 38.094l5.383 4 .154-1.846-4.076-3.77-1.46 1.616" fill="#49728B"/>
+ <path d="M18.32 67.242l-1.592-6.46-.792-4.768-.13-3.54 7.205-.382h4.485l-.408 8.075.692 6.23-.078 1.153-5.845.46-3.537-.768" fill="#fff"/>
+ <path d="M26.495 52.014s-.385 7.998.77 13.69c0 0-2.308 1.46-5.692 1.845l6.46-.232.77-.46-.924-12.614-.232-2.692" fill="#DCD9D8"/>
+ <path d="M31.163 58.475l3-.846 5.69-.31.846-2.613-1.54-4.538-1.767-.232-2.462.77-2.36 1.152-1.253-.23-.977.384" fill="#fff"/>
+ <path d="M31.11 56.936s1.998-.923 2.306-.846l-.846-4.23 1-.384s.692 4 .692 4.46c0 0 4.307.23 4.69.23 0 0 .924-1.768.693-3.614l.847 2.46.076 1.386-1.23 1.845-1.384.308-2.308-.076-.77-1-2.69.385-.846.307" fill="#DCD9D8"/>
+ <path d="M28.087 51.477l-1.692-4.307-1.77-2.538s.385-1.077.924-1.077h1.768l1.692.615-.154 2.846-.77 4.46" fill="#fff" fill-rule="nonzero"/>
+ <path d="M28.417 50.014s-2.153-4.152-2.153-4.768c0 0 .384-.922.923-.692.538.23 1.692.846 1.692.846v-1.46l-2.616-.54-1.77.23 3 7.077.616.077" fill="#DCD9D8"/>
+ <path d="M19.012 39.864l-2.13-.232-2-.615v.692l.977 1.076 3.075 1.385" fill="#fff" fill-rule="nonzero"/>
+ <path d="M15.574 40.094s2.385 1 3.154.77l.076.92-2.153-.46-1.306-.922.23-.308" fill="#DCD9D8"/>
+ <path d="M31.155 43.817c-1.305-.038-2.484-.193-3.516-.485.07-.423-.062-.838.043-1.143.288-.208.77-.205 1.205-.253-.376-.185-.905-.258-1.34-.152-.01-.293-.14-.475-.22-.705.733-.262 2.465-1.98 3.44-1.41.464.27.66 1.815.697 2.566.03.623-.056 1.25-.31 1.58" fill="#D33833"/>
+ <path d="M31.155 43.817c-1.305-.038-2.484-.193-3.516-.485.07-.423-.062-.838.043-1.143.288-.208.77-.205 1.205-.253-.376-.185-.905-.258-1.34-.152-.01-.293-.14-.475-.22-.705.733-.262 2.465-1.98 3.44-1.41.464.27.66 1.815.697 2.566.03.623-.056 1.25-.31 1.58z" fill="none" stroke="#D33833" stroke-width=".46144"/>
+ <path d="M24.915 41.684l-.012.298c-.407.267-1.065.264-1.512.49.66.028 1.18.187 1.628.41l-.03.746c-.746.51-1.428 1.273-2.308 1.752-.415.227-1.874.81-2.317.707-.25-.058-.273-.368-.373-.66-.213-.628-.703-1.626-.746-2.57-.055-1.19-.175-3.19 1.11-2.943 1.036.197 2.24.675 3.043 1.113.49.268.774.6 1.518.657" fill="#D33833"/>
+ <path d="M24.915 41.684l-.012.298c-.407.267-1.065.264-1.512.49.66.028 1.18.187 1.628.41l-.03.746c-.746.51-1.428 1.273-2.308 1.752-.415.227-1.874.81-2.317.707-.25-.058-.273-.368-.373-.66-.213-.628-.703-1.626-.746-2.57-.055-1.19-.175-3.19 1.11-2.943 1.036.197 2.24.675 3.043 1.113.49.268.774.6 1.518.657z" fill="none" stroke="#D33833" stroke-width=".46144"/>
+ <path d="M25.656 43.106c-.114-.65-.245-.835-.194-1.4 1.73-1.156 2.056 1.982.194 1.4" fill="#D33833"/>
+ <path d="M25.656 43.106c-.114-.65-.245-.835-.194-1.4 1.73-1.156 2.056 1.982.194 1.4z" fill="none" stroke="#D33833" stroke-width=".46144"/>
+ <path d="M28.164 43.632s-.54-.77-.154-1c.384-.23.77 0 1-.384.23-.385 0-.615.076-1.077.077-.46.462-.537.847-.614.384-.077 1.46-.23 1.615.154l-.462-1.385-.923-.307-2.922 1.692-.153.846v1.692M20.09 46.17c-.094-1.2-.192-2.4-.3-3.598-.163-1.79.43-1.478 1.982-1.478.237 0 1.46.283 1.547.462.418.856-.703.666.482 1.312 1 .545 2.766-.33 2.362-1.543-.226-.27-1.178-.084-1.52-.26-.6-.312-1.2-.624-1.802-.935-.764-.397-2.53-.975-3.346-.42-2.065 1.403.13 4.912.867 6.377" fill="#EF3D3A"/>
+ <path d="M22.112 18.922c-2.096-.488-3.137.877-3.773 2.293-.568-.137-.342-.91-.2-1.302.376-1.03 1.888-2.405 3.124-2.22.53.08 1.25.567.848 1.23M32.325 21.31l.1.003c.473.984.883 2.026 1.48 2.895-.4.932-3.03 1.757-2.99.083.57-.247 1.55-.05 2.056-.367-.29-.8-.712-1.482-.645-2.614M23.185 21.335c.45.824.596 1.69 1.235 2.312.288.28.847.622.57 1.402-.065.182-.54.592-.812.673-1 .295-3.326.06-2.538-1.184.826.037 1.936.535 2.554-.065-.474-.757-1.32-2.257-1.01-3.14M31.95 29.708c-1.503.966-3.18 2.017-5.644 1.773-.527-.457-.728-1.475-.216-2.148.266.458.1 1.3.84 1.426 1.4.24 3.026-.855 4.032-1.237.624-1.05-.054-1.437-.616-2.114-1.15-1.387-2.693-3.105-2.636-5.18.464-.338.505.514.57.67.602 1.405 2.113 3.202 3.216 4.405.27.297.717.582.767.777.143.57-.372 1.253-.313 1.63M12.125 28.69c-.47-.268-.583-1.453-1.137-1.486-.79-.048-.646 1.537-.643 2.464-.545-.494-.64-2.016-.24-2.797-.456-.223-.66.248-.912.414.325-2.36 3.452-1.095 2.932 1.407M32.908 30.69c-.7 1.334-1.69 2.8-3.744 2.844-.042-.43-.074-1.085.002-1.344 1.57-.15 2.54-.95 3.742-1.5M23.067 31.555c1.31.69 3.718.763 5.5.71.094.39.092.873.095 1.35-2.29.113-4.995-.453-5.595-2.06M22.818 32.84c.906 2.274 4.02 2.012 6.645 1.95-.115.295-.366.644-.677.77-.842.342-3.162.602-4.33-.018-.74-.394-1.217-1.284-1.623-1.806-.196-.25-1.172-.895-.015-.896" fill="#231F20"/>
+ <path d="M31.84 45.387c-1.062 1.82-2.08 3.69-3.34 5.297.528-1.555.754-4.157.834-6.14 1.107-.52 2.054.115 2.507.843" fill="#81B0C4"/>
+ <path d="M37.562 51.93c-1.19.24-2.027 1.396-3.188 1.322.638-.9 1.756-1.28 3.188-1.32M38.087 53.794c-.97.102-2.11.26-3.094.178.466-.71 2.26-.466 3.094-.178M38.423 55.4c-1.09.023-2.445.002-3.482-.085.614-.66 2.776-.245 3.483.085" fill="#231F20"/>
+ <path d="M29.79 59.795c.156 1.37.7 2.757.63 4.256-.602.205-.948.382-1.756.38-.057-1.273-.228-3.222-.177-4.437.398.027.983-.283 1.302-.198" fill="#DCD9D8"/>
+ <path d="M28.032 39.614c-.548.357-1.014.803-1.54 1.185-1.166.056-1.802-.082-2.66-.752.015-.053.1-.03.104-.095 1.25.556 2.835-.227 4.096-.34" fill="#F0D6B7"/>
+ <path d="M21.48 48.122c.342-1.486 1.686-2.256 2.906-3.074 1.26 1.598 2.026 3.654 2.87 5.638-1.994-.6-4.03-1.576-5.777-2.564" fill="#81B0C4"/>
+ <path d="M28.487 59.993c-.05 1.215.12 3.164.177 4.438.808.002 1.154-.175 1.757-.38.07-1.498-.474-2.886-.63-4.255-.32-.085-.905.225-1.303.198zm-12.577-6.91c.533 4.897 1.304 9.013 2.72 13.35 3.14.953 6.925 1.036 9.7.176-.51-2.45-.286-5.428-.584-8.04-.224-1.963-.11-3.938-.418-5.94-3.363-.7-8.117-.164-11.418.454zm12.213-.422c-.028 2.104.095 4.178.255 6.283.808-.12 1.356-.202 2.106-.366-.244-2.027-.214-4.308-.71-6.1-.574.004-1.08-.008-1.65.184zm4.097-.338c-.383-.088-.83-.004-1.196.003.172 1.715.59 3.606.737 5.406.577.02.885-.253 1.36-.345.024-1.58-.14-3.755-.9-5.063zm6.202 5.667c1.2-.293 1.956-1.764 1.62-3.274-.225-1.015-.626-2.927-1.056-3.576-.317-.48-1.178-1.11-1.866-.67-1.118.717-3.087.924-3.903 1.79.41 1.362.536 3.232.705 4.957 1.397.087 3.115-.385 4.277.116-.812.262-1.864.264-2.565.647.573.277 1.913.22 2.787.01zm-11.167-7.304c-.843-1.984-1.61-4.04-2.87-5.638-1.22.818-2.563 1.588-2.906 3.074 1.746.988 3.782 1.963 5.775 2.564zm2.08-6.143c-.08 1.984-.307 4.586-.836 6.14 1.26-1.605 2.278-3.475 3.34-5.296-.452-.728-1.4-1.362-2.506-.844zm-2.358-.838c-.478-.05-.883.55-1.504.29-.143.157-.272.328-.417.48 1.372 1.655 1.996 4.002 3.055 5.945.57-1.867.505-3.912.63-5.95-.782.05-1.215-.707-1.763-.765zm-1.515-2c-.05.566.08.752.194 1.4 1.862.583 1.537-2.555-.194-1.4zm-2.065-.678c-.802-.438-2.007-.916-3.044-1.113-1.284-.246-1.164 1.752-1.11 2.944.044.943.534 1.94.747 2.568.1.293.123.603.373.66.443.105 1.902-.48 2.317-.706.88-.48 1.562-1.24 2.31-1.752.008-.248.018-.497.028-.746-.45-.223-.968-.382-1.627-.41.448-.226 1.106-.223 1.513-.49l.012-.298c-.744-.057-1.028-.39-1.518-.657zm-7.663-1.392c-.666.676 1.868 1.598 2.674 1.647-.004-.427.244-.83.194-1.138-.958-.168-2.217-.057-2.868-.51zm8.202.318c-.003.066-.09.042-.103.095.857.67 1.493.808 2.66.75.525-.38.99-.827 1.54-1.184-1.262.112-2.848.895-4.097.34zm7.53 2.283c-.037-.75-.234-2.296-.698-2.566-.975-.57-2.707 1.148-3.44 1.41.08.23.21.412.22.705.435-.106.964-.033 1.34.152-.435.048-.917.045-1.205.252-.105.304.026.72-.044 1.142 1.03.292 2.21.447 3.515.485.254-.33.34-.958.31-1.58zM14.612 40.29c-.21-.15-1.623-1.99-1.817-1.914-2.56 1.01-4.953 2.755-7.092 4.405 2.04 4.377 2.862 9.737 3.008 14.904 2.336 1.092 4.387 2.667 7.557 2.832-.368-2.595-.702-4.91-.91-7.354-.797-.336-1.94.015-2.685-.104-.006-.898 1.138-.393 1.234-.997.07-.456-.63-.49-.403-1.21.583.212.89.68 1.51.855.568-1.242-.008-3.44.074-4.478.017-.195.1-1.08.535-.925.387.138-.022 2.354.02 3.337.04.904-.11 1.78.258 2.348 3.063-.417 6.175-.686 9.49-.777-.73-.312-1.596-.608-2.546-1.143-.515-.29-2.137-.894-2.286-1.383-.236-.78.623-1.194.77-1.862-1.546.843-1.848-.808-2.214-1.978-.33-1.06-.52-1.852-.6-2.463-1.333-.634-2.756-1.277-3.903-2.09zm15.5-1.69c2.132-1.035 2.516 3.863 1.68 5.44.13.472.574.652.755 1.075-1.19 2.132-2.51 4.122-3.726 6.23.904-.563 2.194-.102 3.257-.523.387-.153.668-1.043.963-1.754.81-1.958 1.658-4.426 2.036-6.294.084-.426.317-1.353.265-1.732-.093-.678-1.013-1.18-1.482-1.6-.862-.775-1.405-1.457-2.305-2.182-.364.54-1.147.9-1.446 1.34zM9.735 19.686c-1.016 1.118-.803 3.213-.68 4.704 1.836-1.155 4.274.092 4.25 2.057.878-.023.33-1.095.17-1.786-.518-2.254.873-4.704.063-6.767-1.574.12-2.866.762-3.804 1.794zm7.27-6.49c-2.3.653-5.248 2.325-6.193 4.39.732-.105 1.24-.474 1.962-.52.273-.018.63.114.944.036.624-.155 1.152-1.556 1.623-2.077.46-.51 1.012-.727 1.39-1.19.243-.12.602-.11.616-.475-.106-.112-.217-.198-.343-.162zm11.976.614c-2.388-1.346-6.43-2.36-8.97-1.093-2.05 1.022-4.82 2.713-5.763 4.855.88 2.067-.263 3.962-.336 6.06-.038 1.118.526 2.093.57 3.31-.303.497-1.225.558-1.864.524-.215-1.076-.59-2.285-1.698-2.406-1.568-.17-2.714 1.126-2.785 2.48-.084 1.595 1.225 4.237 3.08 4.054.716-.07.892-.79 1.672-.782.423.844-.653 1.11-.764 1.713-.03.156.09.766.158 1.052.337 1.39 1.088 3.193 1.827 4.253.94 1.344 2.783 1.546 4.765 1.678.355-.763 1.66-.7 2.51-.5-1.02-.404-1.966-1.382-2.75-2.248-.903-.994-1.817-2.06-1.863-3.358 1.704 2.364 3.112 4.43 6.21 5.468 2.345.787 5.083-.36 6.885-1.625.747-.526 1.193-1.36 1.725-2.124 1.988-2.86 2.915-6.94 2.71-10.897-.083-1.63-.08-3.257-.626-4.355-.573-1.148-2.508-2.175-3.64-1.137-.21-1.115.94-1.805 2.295-1.404-.964-1.245-1.977-2.74-3.348-3.515zm4.448 36.816c1.866-.927 5.352-2.496 6.522.004.432.92.938 2.48 1.162 3.43.315 1.342-.343 4.163-1.722 4.613-1.22.398-2.64.374-4.108.08-.173-.145-.365-.395-.5-.657-1.048-.04-2.03.057-2.857.488.08.775-.445.9-.937 1.06-.364 1.443.73 3.33.467 4.647-.186.94-1.34 1.084-2.19 1.26-.027.52.038.956.096 1.397-.194.715-1.065 1.122-1.89 1.222-2.712.325-6.83.472-9.44-.466-.73-1.787-1.303-3.96-1.91-6-2.545.273-4.603-1.097-6.543-1.994-.673-.312-1.602-.483-1.853-1.018-.243-.518-.144-1.51-.204-2.448-.154-2.394-.285-4.703-.917-7.154-.284-1.1-.78-2.07-1.124-3.13-.32-.983-.877-2.198-1.022-3.177-.216-1.452 1.15-1.533 2.026-2.162 1.35-.972 2.412-1.51 3.875-2.388.435-.26 1.742-.918 1.89-1.22.297-.602-.507-1.45-.72-1.92-.34-.746-.518-1.38-.567-2.114-1.227-.194-2.158-.925-2.72-1.75-.93-1.362-1.575-3.885-.77-5.804.063-.15.377-.448.424-.68.09-.457-.173-1.065-.19-1.55-.083-2.495.423-4.644 2.102-5.396.68-2.715 3.12-3.618 5.42-4.968.858-.504 1.805-.826 2.783-1.186 3.51-1.29 8.892-1.048 11.804 1.154 1.235.934 3.21 2.906 3.915 4.334 1.865 3.77 1.732 10.068.428 14.653-.175.616-.43 1.52-.785 2.26-.247.517-1.017 1.55-.923 2.006.096.472 1.754 1.73 2.11 2.074.64.617 1.856 1.437 1.955 2.217.106.83-.366 1.965-.605 2.765-.798 2.67-1.577 5.14-2.482 7.52" fill="#231F20"/>
+ <path d="M20.982 32.137c.102-.135.658-.34 1.437.035 0 0-.924.154-.847 1.693l-.385-.077s-.397-1.395-.206-1.65" fill="#F7E4CD"/>
+ <path d="M27.725 45.362c0 .233-.19.423-.423.423-.233 0-.423-.19-.423-.423 0-.234.19-.423.422-.423.234 0 .423.188.423.422M28.148 47.323c0 .233-.19.423-.423.423-.233 0-.423-.19-.423-.423 0-.234.19-.423.423-.423.234 0 .423.19.423.423" fill="#1D1919"/>
+ <g>
+ <text font-family="'Georgia-Bold', 'Georgia', serif" font-weight="700" font-size="144" transform="matrix(.23072 0 0 .23072 53.563 51.873)">
+ Jenkins
+ </text>
+ </g>
+</svg>
--- /dev/null
+<svg viewBox="0 0 115 80" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="1.41">
+ <path d="M20.4 37.5v14.54h-5.87V41.8c0-1-.02-1.85-.06-2.55-.05-.7-.16-1.26-.36-1.7-.18-.44-.48-.76-.87-.96-.4-.2-.95-.3-1.67-.3-.57 0-1.13.12-1.67.38-.55.26-1.04.54-1.47.83v14.54H2.58v-20.5h5.85v2.27c1-.88 1.97-1.58 2.9-2.07.9-.5 1.93-.75 3.04-.75 1.2 0 2.26.3 3.18.9.92.6 1.64 1.5 2.16 2.66 1.18-1.1 2.32-1.98 3.42-2.6 1.1-.65 2.2-.96 3.25-.96 1.97 0 3.47.66 4.5 2 1 1.3 1.52 3.22 1.52 5.72v13.34H26.5V41.8c0-1-.02-1.86-.06-2.55-.04-.7-.16-1.26-.35-1.7-.17-.44-.47-.76-.87-.96-.4-.2-.96-.3-1.7-.3-.47 0-.95.08-1.4.27-.48.2-1.05.5-1.72.94z" fill-rule="nonzero"/>
+ <g fill-rule="nonzero">
+ <path d="M47.16 47.63v-3.36c-.7.06-1.45.14-2.27.24-.82.1-1.44.23-1.86.36-.5.16-.9.4-1.18.7-.27.32-.4.73-.4 1.24 0 .33.02.6.08.82.05.2.2.4.43.6.22.2.48.33.8.42.3.1.77.14 1.42.14.5 0 1.03-.1 1.56-.32.53-.2 1-.5 1.4-.83zm0 2.5l-1.03.76c-.4.28-.8.52-1.16.7-.5.22-1.04.4-1.58.5-.56.1-1.16.16-1.8.16-1.54 0-2.82-.47-3.85-1.42-1.03-.94-1.55-2.15-1.55-3.63 0-1.16.26-2.12.8-2.87.5-.75 1.26-1.34 2.23-1.77.95-.43 2.14-.73 3.56-.9 1.4-.2 2.87-.33 4.4-.42v-.08c0-.9-.37-1.5-1.1-1.85-.73-.33-1.8-.5-3.2-.5-.87 0-1.77.16-2.74.46-.97.3-1.66.53-2.08.7h-.47v-3.9c.55-.14 1.44-.3 2.67-.5s2.46-.3 3.7-.3c2.93 0 5.05.45 6.36 1.36 1.3.9 1.95 2.32 1.95 4.25v10.96h-5.12v-1.7z" fill="#FF6804"/>
+ <path d="M73.26 35.72l-6.2 16.1h-5.87L55 35.73h5.47L64.2 46.8l3.7-11.08h5.34zM92 44.73H80.18c.07 1.26.55 2.23 1.44 2.9.88.67 2.2 1 3.9 1 1.1 0 2.16-.2 3.18-.58 1.02-.4 1.83-.82 2.43-1.27h.57v4.15c-1.17.47-2.27.8-3.3 1.02-1.03.2-2.18.3-3.43.3-3.23 0-5.7-.7-7.43-2.17-1.72-1.45-2.6-3.52-2.6-6.2 0-2.67.83-4.78 2.46-6.33 1.63-1.55 3.87-2.33 6.7-2.33 2.63 0 4.6.66 5.92 2 1.32 1.3 1.98 3.22 1.98 5.7v1.8zm-5.14-3.03c-.02-1.08-.3-1.9-.8-2.44s-1.3-.8-2.37-.8c-1 0-1.82.24-2.46.76-.64.52-1 1.35-1.08 2.48h6.7zM111.83 51.83h-5.2v-8c0-.64-.03-1.3-.1-1.93-.06-.65-.18-1.12-.34-1.43-.2-.35-.48-.6-.85-.78-.37-.17-.88-.25-1.54-.25-.46 0-.94.08-1.42.23-.48.15-1 .4-1.57.73v11.43h-5.16v-16.1h5.17v1.77c.93-.72 1.8-1.27 2.66-1.65.84-.38 1.78-.57 2.82-.57 1.74 0 3.1.5 4.08 1.52.98 1 1.47 2.53 1.47 4.54v10.5z"/>
+ </g>
+</svg>
--- /dev/null
+<svg viewBox="0 0 100 80" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="1.414">
+ <path d="M56.88 27.326h.55c.648.083 1.267.424 1.63.972.567.805.472 2.01-.242 2.695-.9.913-2.558.877-3.41-.082-.648-.7-.7-1.84-.163-2.617.36-.55.99-.886 1.634-.967zM20.91 27.415c.44-.003.88 0 1.32 0v5.956c.008 1.436-.017 2.873.013 4.31.342-.492.695-.98 1.13-1.393 1.006-1.022 2.4-1.62 3.822-1.732 1.194-.083 2.43.025 3.53.522 1.016.456 1.903 1.195 2.525 2.12.604.874.995 1.882 1.224 2.917.28 1.217.34 2.474.275 3.718-.07 1.172-.285 2.338-.69 3.44-.564 1.553-1.578 2.976-2.992 3.858-1.042.674-2.274 1.006-3.506 1.07h-.917c-1.138-.06-2.268-.447-3.154-1.172-.492-.39-.883-.886-1.248-1.39-.028.717-.005 1.436-.013 2.154-1.27.002-2.538 0-3.807 0V33.54c0-.08.014-.16.045-.234.817-1.963 1.627-3.928 2.443-5.89m5.136 10.27c-1.147.124-2.225.756-2.89 1.7-.653.914-.953 2.048-.956 3.164.003.834-.004 1.668.003 2.5.043 1.418.81 2.826 2.064 3.522.985.57 2.2.637 3.285.342.867-.24 1.64-.793 2.144-1.537.666-.973.956-2.15 1.07-3.31.104-1.246.09-2.54-.344-3.728-.31-.863-.868-1.662-1.666-2.135-.803-.496-1.785-.62-2.71-.518zM81.13 27.414c1.245 0 2.49-.002 3.734 0v24.393H81.13c-.005-.866.008-1.733-.006-2.6-.453.68-.95 1.348-1.617 1.834-.963.73-2.163 1.093-3.36 1.16h-.904c-.905-.06-1.807-.27-2.617-.685-.778-.388-1.46-.96-2-1.64-.543-.68-.936-1.47-1.22-2.29-.375-1.093-.513-2.253-.534-3.404-.014-1.356.133-2.727.562-4.02.494-1.545 1.408-2.992 2.74-3.945.93-.673 2.034-1.09 3.172-1.23 1.21-.145 2.482-.07 3.602.45.91.412 1.65 1.128 2.177 1.967.013-3.33 0-6.66.006-9.988m-4.284 10.568c-.687.034-1.374.223-1.955.6-.767.477-1.314 1.25-1.634 2.086-.46 1.208-.555 2.52-.498 3.802.046.78.2 1.56.517 2.278.316.727.822 1.386 1.498 1.813.844.528 1.887.698 2.862.53 1.157-.206 2.176-.973 2.76-1.983.518-.883.756-1.91.774-2.928.008-.697.005-1.395 0-2.092-.027-1.292-.646-2.58-1.693-3.35-.75-.56-1.7-.82-2.63-.756zM10.017 27.414c.73-.002 1.46 0 2.19-.002-3.34 8.142-6.688 16.282-10.03 24.424-.726.003-1.45 0-2.177 0V51.8c3.34-8.128 6.68-16.257 10.017-24.386zM5.227 51.837c3.345-8.14 6.686-16.283 10.03-24.425.73.003 1.46 0 2.19.002-3.343 8.14-6.69 16.28-10.03 24.422h-2.19zM62.518 27.414c1.24-.002 2.48 0 3.72 0 0 8.116 0 16.234-.002 24.35h-3.718v-24.35zM86.706 51.837c3.344-8.142 6.687-16.283 10.033-24.423h2.174v.033c-3.342 8.128-6.68 16.26-10.02 24.39h-2.188zM55.254 35.318c1.235-.002 2.47 0 3.705 0v16.446h-3.706V35.318zM36.787 35.317h3.763v9.272c-.016 1.005.07 2.05.54 2.958.355.7 1.017 1.234 1.778 1.426 1.084.29 2.316.143 3.228-.538.687-.495 1.13-1.26 1.374-2.06.19-.636.22-1.306.214-1.966v-9.093h3.734c0 5.484.002 10.966 0 16.448h-3.734c-.003-.83.006-1.66-.004-2.49-.106.07-.152.19-.22.292-.564.873-1.364 1.602-2.308 2.047-.845.405-1.79.59-2.726.546-1.168-.023-2.366-.305-3.325-.996-.87-.614-1.486-1.54-1.83-2.542-.388-1.126-.498-2.33-.483-3.514v-9.79z" fill="#00B0F5" fill-rule="nonzero"/>
+</svg>
--- /dev/null
+<svg viewBox="0 0 165 80" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="1.414">
+ <g fill-rule="nonzero">
+ <path d="M159.602 51.9h-2.013c0-16.19-13.378-29.423-29.903-29.423V20.4c17.603 0 31.956 14.217 31.956 31.5h-.04z" fill="#4B9FD5"/>
+ <path d="M161 41.066c-2.424-10.167-10.658-18.708-21.053-21.653l.467-1.652c10.94 3.184 19.655 12.153 22.174 22.987l-1.587.32zM163.28 31.55c-2.505-5.474-6.703-10.18-11.954-13.35l.668-1.2c5.45 3.278 9.94 8.316 12.46 14.005l-1.174.546z" fill="#4B9FD5"/>
+ <path d="M0 51.14c1.2.654 3.064 1.2 5.144 1.2 4.49 0 6.782-2.186 6.782-5.145-.04-2.29-1.318-3.93-4.263-4.917-1.947-.666-2.52-1.09-2.52-1.865-.04-.76.653-1.2 1.854-1.2 1.304 0 2.744.44 3.398.868l.853-3.385c-.974-.44-2.6-.986-4.466-.986C2.905 35.71.44 38 .44 40.96c-.08 1.865 1.198 3.61 4.477 4.704 1.8.653 2.305.987 2.305 1.866-.012.878-.653 1.306-2.078 1.306-1.493 0-3.398-.654-4.265-1.2L0 51.14zM21.575 39.32c2.225 0 3.158 2.292 3.158 4.704-.026 2.853-1.213 4.704-3.172 4.704-2.09 0-3.184-1.972-3.184-4.704-.026-2.29.88-4.704 3.185-4.704m.174-3.61c-5.104 0-8.488 3.278-8.488 8.42.026 5.145 3.597 8.21 8.196 8.21 4.237 0 8.315-2.733 8.315-8.53.026-4.703-3.17-8.1-7.983-8.1h-.04M31.316 51.9h4.917v-9.075c0-.44-.014-.88.2-1.213.307-.865 1.092-1.85 2.518-1.85 1.733 0 2.413 1.425 2.413 3.383l.04 8.755h4.905v-9.3c0-4.706-2.426-6.784-5.61-6.784-2.693 0-4.266 1.533-4.918 2.52h-.108l-.226-2.188h-4.263c.065 1.428.105 3.066.105 5.04l.028 10.712zM57.154 46.21c0 .226-.04.546-.147.773-.28 1.093-1.318 1.853-2.517 1.853-1.08 0-1.973-.654-1.973-1.853.04-1.865 2.078-2.52 4.597-2.52l.04 1.746m4.744-3.61c0-3.72-1.612-6.89-6.864-6.89-2.93 0-5.143.88-6.235 1.425l.946 3.17c1.037-.65 2.77-1.198 4.41-1.198 2.386 0 2.85 1.2 2.85 2.08l-.01.213c-5.598 0-9.29 1.972-9.29 6.022.013 2.505 1.972 4.917 5.143 4.917 1.838 0 3.505-.76 4.477-1.973h.107l.293 1.533h4.438c-.2-.865-.24-2.293-.24-3.824l-.027-5.477zM64.31 51.9h4.903v-7.98c0-.335.042-.775.042-1.095.386-1.533 1.652-2.52 3.398-2.52.573 0 .986.108 1.304.108l.04-4.597c-.346 0-.585-.107-1.012-.107-1.573 0-3.505.985-4.277 3.278h-.133l-.2-2.84h-4.198c.093 1.307.16 2.84.16 5.144L64.31 51.9zM106.82 47.53c0 1.638.08 3.17.08 4.37h-2.534l-.16-2.625h-.064c-.762 1.318-2.494 3.064-5.345 3.064-2.45 0-5.464-1.426-5.464-6.996v-9.422h2.92v8.876c0 3.052.906 5.13 3.53 5.13 1.987 0 3.29-1.412 3.838-2.733.188-.44.32-.878.32-1.425l-.025-9.848h2.905V47.53zM111.95 45.664c0 .333.093.653.093.987.613 2.078 2.293 3.504 4.37 3.504 3.078 0 4.932-2.517 4.932-6.235-.04-3.173-1.64-5.918-4.824-5.918-1.958 0-3.825 1.318-4.37 3.61-.093.334-.214.666-.214 1.213l.014 2.84m-3 6.342c.067-1.093.135-2.624.135-4.038V28.592h2.865v10.075h.065c1.026-1.76 2.866-2.96 5.492-2.96 3.93 0 6.782 3.28 6.675 8.21.028 5.69-3.61 8.53-7.102 8.53-2.345 0-4.158-.868-5.37-3.065h-.12l-.133 2.624h-2.506zM137.096 42.386c.026-1.865-.76-4.705-4.052-4.705-2.917 0-4.263 2.733-4.478 4.706h8.53m-8.53 2.078c.068 3.944 2.627 5.585 5.464 5.585 2.106 0 3.398-.443 4.492-.882l.453 2.08c-1.026.44-2.76.986-5.265.986-4.983 0-7.888-3.172-7.888-7.995-.028-4.813 2.852-8.636 7.448-8.636 5.238 0 6.677 4.597 6.677 7.54-.053.548-.12.987-.12 1.32h-11.26zM86.577 48.836c-2.704 1.865-6.37 1.213-8.236-1.533-1.81-2.732-1.09-6.343 1.534-8.196 2.746-1.865 6.45-1.105 8.316 1.533 1.785 2.732 1.093 6.45-1.64 8.196m3.68-9.622c-2.613-3.837-7.836-4.81-11.78-2.185-3.8 2.624-4.81 7.875-2.186 11.698 2.318 3.398 6.676 4.597 10.393 3.066l3.225 5.25 2.598-1.746-3.265-5.37c2.826-2.733 3.345-7.21 1.054-10.714h-.04"/>
+ </g>
+</svg>
--- /dev/null
+<svg viewBox="0 0 500 240" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-miterlimit="10">
+ <path d="M284.45 8v42.5H69.35v113h389.3V8h-174.2z" fill="#F7F7F7" fill-rule="nonzero"/>
+ <path fill="#F6F9FD" d="M55.35 38.5h196v113h-196z"/>
+ <path fill="#FAF3DB" d="M250.65 0h196v151.5h-196z"/>
+ <path fill="none" stroke="#E5E5E5" d="M250.65 0h196v38.8h-196zM55.65 38.9h391v112.8h-391z"/>
+ <path d="M302.25 14.6h1.9v8.7h4.2v1.6h-6.1V14.6zM316.35 20.4h-3.9v3h4.4v1.5h-6.2V14.6h6v1.5h-4.1v2.7h3.9v1.6h-.1zM321.25 22l-.9 2.9h-1.9l3.3-10.3h2.4l3.4 10.3h-2l-.9-2.9h-3.4zm3-1.4l-.8-2.5c-.2-.6-.4-1.3-.5-1.9-.2.6-.3 1.3-.5 1.9l-.8 2.5h2.6zM329.75 14.6h1.9v4.7c.2-.4.5-.8.8-1.1l2.7-3.6h2.3l-3.6 4.4 3.8 5.9h-2.2l-2.9-4.7-.9 1.1v3.6h-1.9V14.6zM343.35 14.8c.7-.1 1.6-.2 2.9-.2 1.4 0 2.4.3 3 .8.6.5 1 1.3 1 2.3 0 1-.3 1.8-.9 2.3-.8.8-1.9 1.1-3.3 1.1-.4 0-.7 0-.9-.1v3.9h-1.9V14.8h.1zm1.9 4.8c.2.1.5.1.9.1 1.4 0 2.3-.7 2.3-1.9 0-1.1-.8-1.8-2.1-1.8-.5 0-.9 0-1.1.1v3.5zM358.45 20.4h-3.9v3h4.4v1.5h-6.3V14.6h6v1.5h-4.1v2.7h3.9v1.6zM361.35 14.8c.7-.1 1.8-.2 2.8-.2 1.5 0 2.5.2 3.2.8.6.5.9 1.2.9 2.1 0 1.3-.9 2.2-1.9 2.6.7.3 1.2 1 1.4 2 .3 1.3.6 2.5.8 2.9h-1.9c-.2-.3-.4-1.1-.7-2.4-.3-1.3-.8-1.8-1.9-1.8h-.9V25h-1.9V14.8h.1zm1.8 4.6h1.1c1.3 0 2.1-.7 2.1-1.7 0-1.1-.8-1.7-2-1.7-.6 0-1 0-1.2.1v3.3zM370.75 14.6h1.9v10.3h-1.9zM384.75 19.7c0 3.5-2.1 5.4-4.9 5.4-2.9 0-4.7-2.2-4.7-5.3 0-3.2 2-5.4 4.9-5.4 2.9.1 4.7 2.4 4.7 5.3zm-7.7.2c0 2.1 1.1 3.8 2.9 3.8 1.8 0 2.8-1.7 2.8-3.8 0-1.9-1-3.8-2.8-3.8-1.9-.1-2.9 1.6-2.9 3.8zM387.15 14.8c.8-.1 1.9-.2 3-.2 1.9 0 3.3.4 4.2 1.2 1 .8 1.6 2 1.6 3.8 0 1.8-.6 3.2-1.6 4.1-1 .9-2.7 1.4-4.7 1.4-1.1 0-1.9-.1-2.5-.1V14.8zm1.9 8.7h1c2.5 0 3.9-1.3 3.9-4 0-2.3-1.3-3.6-3.7-3.6-.6 0-1 0-1.3.1v7.5h.1z" fill-rule="nonzero"/>
+ <path d="M322.85 121.1v-10.3h1.5l3.3 5.2c.8 1.2 1.4 2.3 1.9 3.4-.1-1.4-.2-2.6-.2-4.2v-4.3h1.3v10.3h-1.3l-3.3-5.2c-.7-1.1-1.4-2.3-1.9-3.4.1 1.3.1 2.5.1 4.3v4.4h-1.4v-.2zM333.65 117.6c0 1.8 1.2 2.6 2.5 2.6 1 0 1.5-.2 2.1-.4l.2 1c-.5.2-1.3.5-2.5.5-2.3 0-3.6-1.5-3.6-3.7s1.3-4 3.5-4c2.4 0 3.1 2.1 3.1 3.5v.6h-5.3v-.1zm4-1c0-.9-.4-2.2-1.9-2.2-1.4 0-2 1.3-2.1 2.2h4zM341.15 113.6l1 3.8.6 2.4c.2-.8.4-1.5.7-2.3l1.2-3.8h1.1l1.1 3.7c.3.9.5 1.7.7 2.4.1-.8.3-1.5.6-2.4l1.1-3.7h1.3l-2.4 7.4h-1.2l-1.1-3.5c-.3-.8-.5-1.6-.7-2.4-.2.9-.4 1.7-.7 2.5l-1.2 3.5h-1.2l-2.2-7.4h1.3v-.2zM358.55 119.7c.4.3 1.1.5 1.8.5 1 0 1.4-.5 1.4-1.1 0-.6-.4-1-1.4-1.4-1.3-.5-2-1.2-2-2.1 0-1.2 1-2.2 2.6-2.2.8 0 1.4.2 1.8.5l-.3 1c-.3-.2-.8-.4-1.5-.4-.8 0-1.2.5-1.2 1 0 .6.4.9 1.4 1.3 1.3.5 1.9 1.1 1.9 2.2 0 1.3-1 2.2-2.8 2.2-.8 0-1.6-.2-2.1-.5l.4-1zM364.55 119.7c.4.3 1.1.5 1.8.5 1 0 1.4-.5 1.4-1.1 0-.6-.4-1-1.4-1.4-1.3-.5-2-1.2-2-2.1 0-1.2 1-2.2 2.6-2.2.8 0 1.4.2 1.8.5l-.3 1c-.3-.2-.8-.4-1.5-.4-.8 0-1.2.5-1.2 1 0 .6.4.9 1.4 1.3 1.3.5 1.9 1.1 1.9 2.2 0 1.3-1 2.2-2.8 2.2-.8 0-1.6-.2-2.1-.5l.4-1zM377.05 119c0 .8 0 1.4.1 2h-1.2l-.1-1.2c-.4.6-1.1 1.4-2.5 1.4-1.2 0-2.6-.6-2.6-3.2v-4.3h1.3v4.1c0 1.4.4 2.4 1.7 2.4.9 0 1.5-.6 1.8-1.2.1-.2.1-.4.1-.7v-4.5h1.3v5.2h.1zM380.05 117.6c0 1.8 1.2 2.6 2.5 2.6 1 0 1.5-.2 2.1-.4l.2 1c-.5.2-1.3.5-2.5.5-2.3 0-3.6-1.5-3.6-3.7s1.3-4 3.5-4c2.4 0 3.1 2.1 3.1 3.5v.6h-5.3v-.1zm3.9-1c0-.9-.4-2.2-1.9-2.2-1.4 0-2 1.3-2.1 2.2h4zM386.75 119.7c.4.3 1.1.5 1.8.5 1 0 1.4-.5 1.4-1.1 0-.6-.4-1-1.4-1.4-1.3-.5-2-1.2-2-2.1 0-1.2 1-2.2 2.6-2.2.8 0 1.4.2 1.8.5l-.3 1c-.3-.2-.8-.4-1.5-.4-.8 0-1.2.5-1.2 1 0 .6.4.9 1.4 1.3 1.3.5 1.9 1.1 1.9 2.2 0 1.3-1 2.2-2.8 2.2-.8 0-1.6-.2-2.1-.5l.4-1z" fill="#565656" fill-rule="nonzero"/>
+ <path d="M342.35 73l-4.9 2.6-.7-2.9 6.1-3.2h3.2v27.8h-3.6V73h-.1zM374.45 83c0 9.4-3.5 14.6-9.6 14.6-5.4 0-9.1-5.1-9.2-14.3 0-9.3 4-14.4 9.6-14.4 5.9.1 9.2 5.3 9.2 14.1zm-15 .5c0 7.2 2.2 11.3 5.6 11.3 3.8 0 5.7-4.5 5.7-11.6 0-6.8-1.8-11.3-5.6-11.3-3.3 0-5.7 4-5.7 11.6z" fill="#226B94" fill-rule="nonzero"/>
+ <path d="M56.15 109.6s12.2-.3 17.2-2.3c5-2 18.7-4.3 21-4.7 2.3-.3 12.7-.7 14.7 1s9 5 10.3 6.3c1.3 1.3 4.3 4 9.3 3.3 5-.7 12.7-3 15.3-3.7 2.7-.7 4.7-.7 11.3 1.7 6.7 2.3 16 5.7 16 5.7l17.3-3s8 1 12.7 4c4.7 3 14.7 1.7 14.7 1.7l10 2.7 9 3 15.7-1v27H56.15v-41.7z" fill="#E9F1FC" fill-rule="nonzero"/>
+ <path d="M446.15 123.6s-13.1-1-13.6-1 3.2-.3-8.8.5-16.8 1.5-22.7 2.5c-5.8 1-11.7 2.8-19.3 2.2-7.7-.7-15.8-2.2-15.8-2.2l-12.2-1.5-14.2-1.5s-16.2-2-24.7-1-12 5.2-20 4.5c-8-.7-14.8-1.8-14.8-1.8l-15.5-.7-13.8.7v27h195.5v-27.7h-.1z" fill="#EDE7D0" fill-rule="nonzero"/>
+ <path fill="#565656" fill-rule="nonzero" d="M138.75 110.7h1.3V121h-1.3zM354.75 110.7h1.3V121h-1.3zM142.15 119.7c.4.3 1.1.5 1.8.5 1 0 1.4-.5 1.4-1.1 0-.6-.4-1-1.4-1.4-1.3-.5-2-1.2-2-2.1 0-1.2 1-2.2 2.6-2.2.8 0 1.4.2 1.8.5l-.3 1c-.3-.2-.8-.4-1.5-.4-.8 0-1.2.5-1.2 1 0 .6.4.9 1.4 1.3 1.3.5 1.9 1.1 1.9 2.2 0 1.3-1 2.2-2.8 2.2-.8 0-1.6-.2-2.1-.5l.4-1zM148.25 119.7c.4.3 1.1.5 1.8.5 1 0 1.4-.5 1.4-1.1 0-.6-.4-1-1.4-1.4-1.3-.5-2-1.2-2-2.1 0-1.2 1-2.2 2.6-2.2.8 0 1.4.2 1.8.5l-.3 1c-.3-.2-.8-.4-1.5-.4-.8 0-1.2.5-1.2 1 0 .6.4.9 1.4 1.3 1.3.5 1.9 1.1 1.9 2.2 0 1.3-1 2.2-2.8 2.2-.8 0-1.6-.2-2.1-.5l.4-1zM160.65 119c0 .8 0 1.4.1 2h-1.2l-.1-1.2c-.4.6-1.1 1.4-2.5 1.4-1.2 0-2.6-.6-2.6-3.2v-4.3h1.3v4.1c0 1.4.4 2.4 1.7 2.4.9 0 1.5-.6 1.8-1.2.1-.2.1-.4.1-.7v-4.5h1.3v5.2h.1zM163.65 117.6c0 1.8 1.2 2.6 2.5 2.6 1 0 1.5-.2 2.1-.4l.2 1c-.5.2-1.3.5-2.5.5-2.3 0-3.6-1.5-3.6-3.7s1.3-4 3.5-4c2.4 0 3.1 2.1 3.1 3.5v.6h-5.3v-.1zm4-1c0-.9-.4-2.2-1.9-2.2-1.4 0-2 1.3-2.1 2.2h4zM170.45 119.7c.4.3 1.1.5 1.8.5 1 0 1.4-.5 1.4-1.1 0-.6-.4-1-1.4-1.4-1.3-.5-2-1.2-2-2.1 0-1.2 1-2.2 2.6-2.2.8 0 1.4.2 1.8.5l-.3 1c-.3-.2-.8-.4-1.5-.4-.8 0-1.2.5-1.2 1 0 .6.4.9 1.4 1.3 1.3.5 1.9 1.1 1.9 2.2 0 1.3-1 2.2-2.8 2.2-.8 0-1.6-.2-2.1-.5l.4-1z"/>
+ <path d="M125.65 97.2v-2.3l2.9-2.9c7.1-6.7 10.3-10.3 10.3-14.5 0-2.8-1.4-5.4-5.5-5.4-2.5 0-4.6 1.3-5.9 2.3l-1.2-2.6c1.9-1.6 4.7-2.8 7.9-2.8 6 0 8.5 4.1 8.5 8.1 0 5.1-3.7 9.3-9.6 14.9l-2.2 2v.1h12.5v3.1h-17.7zM164.15 72.6h-10.6l-1.1 7.1c.6-.1 1.2-.2 2.3-.2 2.1 0 4.3.5 6 1.5 2.2 1.2 4 3.6 4 7.1 0 5.4-4.3 9.5-10.3 9.5-3 0-5.6-.9-6.9-1.7l.9-2.9c1.2.7 3.4 1.5 5.9 1.5 3.5 0 6.6-2.3 6.6-6 0-3.6-2.4-6.1-8-6.1-1.6 0-2.8.2-3.8.3l1.8-13.3h13.3v3.2h-.1zM169.05 90.2c0-3.5 2.1-6 5.5-7.4v-.1c-3.1-1.5-4.4-3.8-4.4-6.2 0-4.4 3.7-7.4 8.6-7.4 5.4 0 8.1 3.4 8.1 6.8 0 2.3-1.2 4.9-4.6 6.5v.1c3.5 1.4 5.6 3.8 5.6 7.2 0 4.8-4.1 8.1-9.4 8.1-5.9-.1-9.4-3.6-9.4-7.6zm15-.2c0-3.4-2.3-5-6.1-6.1-3.2.9-5 3.1-5 5.7-.1 2.8 2 5.3 5.6 5.3 3.3.1 5.5-2 5.5-4.9zm-10.3-13.9c0 2.8 2.1 4.3 5.3 5.1 2.4-.8 4.2-2.5 4.2-5 0-2.2-1.3-4.5-4.7-4.5-3.1 0-4.8 2-4.8 4.4z" fill="#226B94" fill-rule="nonzero"/>
+</svg>
--- /dev/null
+<svg viewBox="0 0 500 240" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="1.41">
+ <path d="M41 175.5L144 273h183s1-143 0-143-72-82-72-82L39 89l47 45-45 41.5z" fill="url(#a)" fill-rule="nonzero" transform="translate(102.336 -34.6)"/>
+ <path d="M332.74 69.6h-163.7c-18.6 0-33.8-15.2-33.8-33.8 0-18.6 15.2-33.8 33.8-33.8h163.7c18.6 0 33.8 15.2 33.8 33.8 0 18.6-15.2 33.8-33.8 33.8z" fill="#C54045" fill-rule="nonzero"/>
+ <path d="M332.74 151.6h-163.7c-18.6 0-33.8-15.2-33.8-33.8 0-18.6 15.2-33.8 33.8-33.8h163.7c18.6 0 33.8 15.2 33.8 33.8 0 18.6-15.2 33.8-33.8 33.8z" fill="#8FB963" fill-rule="nonzero"/>
+ <g fill="#fff" fill-rule="nonzero">
+ <path d="M213.74 107.9c1.6 1.2 2.4 2.9 2.4 5.3 0 2.5-.8 4.3-2.4 5.5-1.6 1.2-3.7 1.8-6.3 1.8h-2.6v7.7h-4.2V106h6.6c2.7.1 4.9.7 6.5 1.9zm-3.2 8.5c.8-.6 1.2-1.7 1.2-3.3 0-2.6-1.5-4-4.6-4h-2.3v8.2h2.3c1.4.1 2.6-.2 3.4-.9zM231.34 125.3c.2.3.5.6 1 .7l-.9 2.7c-1-.1-1.8-.3-2.4-.7-.6-.4-1.1-1-1.4-1.8-.6.9-1.3 1.5-2.2 1.9-.9.4-1.8.6-2.9.6-1.7 0-3-.5-4-1.4-1-1-1.5-2.2-1.5-3.8 0-1.8.7-3.2 2-4.2s3.2-1.5 5.7-1.5h2.1v-1c0-1.1-.3-1.9-.8-2.3-.5-.4-1.3-.7-2.4-.7-1.2 0-2.7.3-4.5.9l-1-2.8c2.1-.8 4.2-1.2 6.2-1.2 4.3 0 6.5 1.9 6.5 5.8v7.1c.1.9.3 1.3.5 1.7zm-4.4-1.6v-3.4h-1.7c-2.7 0-4 1-4 3 0 .8.2 1.4.6 1.9.4.5 1 .7 1.8.7 1.4-.1 2.5-.8 3.3-2.2zM247.34 112.8l-1.6 2.5c-1.4-1-2.8-1.4-4.2-1.4-.9 0-1.5.2-2 .5s-.7.7-.7 1.2c0 .4.1.7.3 1 .2.3.5.5 1 .7.5.2 1.2.5 2.2.8 1.8.5 3.2 1.1 4.1 2 .9.8 1.3 1.9 1.3 3.4 0 1.7-.7 3-2.1 4-1.4 1-3.1 1.4-5.1 1.4-1.4 0-2.7-.2-3.8-.6-1.1-.4-2.1-1-3-1.8l2.1-2.3c1.4 1.1 2.9 1.7 4.6 1.7.9 0 1.7-.2 2.2-.5.6-.4.8-.8.8-1.4 0-.5-.1-.9-.3-1.2-.2-.3-.6-.6-1.1-.8-.5-.2-1.3-.5-2.5-.8-1.7-.5-3-1.1-3.8-2-.8-.9-1.2-1.9-1.2-3.2 0-.9.3-1.8.8-2.5s1.3-1.3 2.3-1.8c1-.4 2.1-.6 3.4-.6 2.6-.3 4.6.4 6.3 1.7zM262.64 112.8l-1.6 2.5c-1.4-1-2.8-1.4-4.2-1.4-.9 0-1.5.2-2 .5s-.7.7-.7 1.2c0 .4.1.7.3 1 .2.3.5.5 1 .7.5.2 1.2.5 2.2.8 1.8.5 3.2 1.1 4.1 2 .9.8 1.3 1.9 1.3 3.4 0 1.7-.7 3-2.1 4-1.4 1-3.1 1.4-5.1 1.4-1.4 0-2.7-.2-3.8-.6-1.1-.4-2.1-1-3-1.8l2.1-2.3c1.4 1.1 2.9 1.7 4.6 1.7.9 0 1.7-.2 2.2-.5.6-.4.8-.8.8-1.4 0-.5-.1-.9-.3-1.2-.2-.3-.6-.6-1.1-.8-.5-.2-1.3-.5-2.5-.8-1.7-.5-3-1.1-3.8-2-.8-.9-1.2-1.9-1.2-3.2 0-.9.3-1.8.8-2.5s1.3-1.3 2.3-1.8c1-.4 2.1-.6 3.4-.6 2.6-.3 4.6.4 6.3 1.7zM280.34 121.1h-10.7c.1 1.6.6 2.8 1.3 3.5.7.7 1.7 1.1 2.9 1.1.7 0 1.5-.1 2.1-.4.7-.2 1.4-.6 2.1-1.1l1.7 2.3c-1.9 1.5-4 2.3-6.3 2.3-2.6 0-4.6-.8-6-2.4-1.4-1.6-2.1-3.7-2.1-6.5 0-1.7.3-3.3.9-4.7.6-1.4 1.5-2.5 2.6-3.2 1.1-.8 2.5-1.2 4-1.2 2.4 0 4.2.8 5.5 2.3 1.3 1.5 2 3.6 2 6.3.1.2.1.8 0 1.7zm-3.9-2.9c0-3-1.1-4.5-3.3-4.5-1 0-1.8.4-2.4 1.1-.6.7-.9 1.9-1 3.5h6.7v-.1zM298.54 128.3h-3.6l-.3-2.2c-.5.8-1.2 1.5-2 1.9-.8.4-1.8.7-2.8.7-2.1 0-3.7-.8-4.8-2.4-1.1-1.6-1.7-3.8-1.7-6.6 0-1.8.3-3.3.8-4.7.5-1.4 1.4-2.4 2.4-3.2 1-.8 2.3-1.1 3.7-1.1 1.6 0 3 .6 4.2 1.8v-8.6l4.1.4v24zm-5.7-3.2c.6-.4 1.1-.9 1.6-1.7v-7.8c-.5-.6-1-1-1.5-1.3-.5-.3-1.1-.4-1.7-.4-1.1 0-2 .5-2.6 1.5-.6 1-.9 2.4-.9 4.4 0 2.1.3 3.6.8 4.5.5.9 1.4 1.4 2.4 1.4.7 0 1.4-.2 1.9-.6z"/>
+ </g>
+ <g fill="#fff" fill-rule="nonzero">
+ <path d="M208.14 26.2v6.6h6.8v3.1h-6.8v9.2h-4.2v-22h12.6l-.5 3.1h-7.9zM231.24 42.3c.2.3.5.6 1 .7l-.9 2.7c-1-.1-1.8-.3-2.4-.7-.6-.4-1.1-1-1.4-1.8-.6.9-1.3 1.5-2.2 1.9-.9.4-1.8.6-2.9.6-1.7 0-3-.5-4-1.4-1-1-1.5-2.2-1.5-3.8 0-1.8.7-3.2 2-4.2s3.2-1.5 5.7-1.5h2.1v-1c0-1.1-.3-1.9-.8-2.3-.5-.4-1.3-.7-2.4-.7-1.2 0-2.7.3-4.5.9l-1-2.8c2.1-.8 4.2-1.2 6.2-1.2 4.3 0 6.5 1.9 6.5 5.8v7.1c.1.9.2 1.3.5 1.7zm-4.4-1.6v-3.4h-1.7c-2.7 0-4 1-4 3 0 .8.2 1.4.6 1.9.4.5 1 .7 1.8.7 1.4-.1 2.5-.8 3.3-2.2zM239.74 20.4c.5.5.7 1.1.7 1.8s-.2 1.3-.7 1.8c-.5.5-1.1.7-1.9.7-.8 0-1.4-.2-1.8-.7-.5-.5-.7-1.1-.7-1.8s.2-1.3.7-1.8c.5-.5 1.1-.7 1.8-.7.8 0 1.4.2 1.9.7zm-3.9 24.9v-17h4.1v17h-4.1zM249.14 42.2c.1.2.4.3.7.3.3 0 .6-.1 1-.2l.9 2.9c-.9.4-1.9.6-2.9.6-1.3 0-2.3-.4-3-1.1-.7-.7-1-1.8-1-3.2v-20l4.1-.4v20.1c-.1.4 0 .8.2 1zM267.94 38.1h-10.7c.1 1.6.6 2.8 1.3 3.5.7.7 1.7 1.1 2.9 1.1.7 0 1.5-.1 2.1-.4.7-.2 1.4-.6 2.1-1.1l1.7 2.3c-1.9 1.5-4 2.3-6.3 2.3-2.6 0-4.6-.8-6-2.4-1.4-1.6-2.1-3.7-2.1-6.5 0-1.7.3-3.3.9-4.7.6-1.4 1.5-2.5 2.6-3.2 1.1-.8 2.5-1.2 4-1.2 2.4 0 4.2.8 5.5 2.3 1.3 1.5 2 3.6 2 6.3.1.2 0 .8 0 1.7zm-4-2.9c0-3-1.1-4.5-3.3-4.5-1 0-1.8.4-2.4 1.1-.6.7-.9 1.9-1 3.5h6.7v-.1zM286.14 45.3h-3.6l-.3-2.2c-.5.8-1.2 1.5-2 1.9-.8.4-1.8.7-2.8.7-2.1 0-3.7-.8-4.8-2.4-1.1-1.6-1.7-3.8-1.7-6.6 0-1.8.3-3.3.8-4.7.5-1.4 1.4-2.4 2.4-3.2 1-.8 2.3-1.1 3.7-1.1 1.6 0 3 .6 4.2 1.8v-8.6l4.1.4v24zm-5.7-3.2c.6-.4 1.1-.9 1.6-1.7v-7.8c-.5-.6-1-1-1.5-1.3-.5-.3-1.1-.4-1.7-.4-1.1 0-2 .5-2.6 1.5-.6 1-.9 2.4-.9 4.4 0 2.1.3 3.6.8 4.5.5.9 1.4 1.4 2.4 1.4.7 0 1.3-.2 1.9-.6z"/>
+ </g>
+ <defs>
+ <linearGradient id="a" x2="1" gradientUnits="userSpaceOnUse" gradientTransform="scale(175.3) rotate(-128 .864 .24)">
+ <stop offset="0%" stop-color="#fff"/>
+ <stop offset="100%" stop-color="#ABABAB"/>
+ </linearGradient>
+ </defs>
+</svg>