Skeleton scratch link landing page based on EV3 page

This commit is contained in:
Karishma Chadha 2022-06-07 18:25:32 -04:00
parent 3771dca338
commit 21f08e5ac9
5 changed files with 460 additions and 0 deletions

View file

@ -300,6 +300,19 @@
"view": "download/scratch2/download", "view": "download/scratch2/download",
"title": "Scratch 2.0" "title": "Scratch 2.0"
}, },
{
"name": "download-scratch-link",
"pattern": "^/download/scratch-link/?(\\?.*)?$",
"routeAlias": "/download/scratch-link",
"view": "download/scratch-link/download",
"title": "Scratch Link Download"
},
{
"name": "download-scratch-link-redirect",
"pattern": "^/download/link/?(\\?.*)?$",
"routeAlias": "/download/link",
"redirect": "/download/scratch-link"
},
{ {
"name": "search", "name": "search",
"pattern": "^/search/:projects/?$", "pattern": "^/search/:projects/?$",

View file

@ -0,0 +1,367 @@
const injectIntl = require('react-intl').injectIntl;
const intlShape = require('react-intl').intlShape;
const FormattedMessage = require('react-intl').FormattedMessage;
const React = require('react');
const Page = require('../../../components/page/www/page.jsx');
const render = require('../../../lib/render.jsx');
const FlexRow = require('../../../components/flex-row/flex-row.jsx');
const OSChooser = require('../../../components/os-chooser/os-chooser.jsx');
const ExtensionLanding = require('../../../components/extension-landing/extension-landing.jsx');
const ExtensionHeader = require('../../../components/extension-landing/extension-header.jsx');
const ExtensionVideo = require('../../../components/extension-landing/extension-video.jsx');
const ExtensionRequirements = require('../../../components/extension-landing/extension-requirements.jsx');
const ExtensionSection = require('../../../components/extension-landing/extension-section.jsx');
const InstallScratchLink = require('../../../components/extension-landing/install-scratch-link.jsx');
const InstallScratch = require('../../../components/install-scratch/install-scratch.jsx');
// TODO: We can remove this if we remove the ev3 related section below
// const TipBox = require('../../../components/extension-landing/tip-box.jsx');
// const ProjectCard = require('../../../components/extension-landing/project-card.jsx');
// const Steps = require('../../../components/steps/steps.jsx');
// const Step = require('../../../components/steps/step.jsx');
// const OS_ENUM = require('../../../lib/os-enum.js');
const {isDownloaded, isFromGooglePlay} = require('../../../components/install-scratch/install-util.js');
require('../../../components/extension-landing/extension-landing.scss');
require('./download.scss');
class ScratchLink extends ExtensionLanding {
render () {
return (
<div className="extension-landing ev3">
<ExtensionHeader
renderCopy={
<FlexRow className="column extension-copy">
<h1><img
alt=""
width="40px"
src="/images/scratchlink/scratch-link-logo.svg"
/>Scratch Link</h1>
<FormattedMessage id="scratchLink.headerText" />
</FlexRow>
}
renderImage={
<ExtensionVideo
videoId="0huu6wfiki"
/>}
renderRequirements={
<ExtensionRequirements bluetoothStandard />
}
/>
<OSChooser
currentOS={this.state.OS}
handleSetOS={this.onSetOS}
/>
{(isDownloaded(this.state.OS)) && (
<InstallScratchLink
currentOS={this.state.OS}
/>
)}
{(isFromGooglePlay(this.state.OS)) && (
<InstallScratch
currentOS={this.state.OS}
/>
)}
{/* TODO We can remove the commented out section below if we don't need
additional step-by-step instructions */}
{/* <ExtensionSection className="getting-started">
<h2><FormattedMessage id="scratchLink.gettingStarted" /></h2>
<FlexRow className="column getting-started-section">
<h3><FormattedMessage id="scratchLink.connectingEV3" /></h3>
<Steps>
<Step number={1}>
<div className="step-image">
<img
alt=""
src="/images/ev3/ev3-connect-1.png"
/>
</div>
<p><FormattedMessage id="scratchLink.turnOnEV3" /></p>
</Step>
<Step number={2}>
<div className="step-image">
<img
alt=""
className="screenshot"
src="/images/ev3/ev3-connect-2.png"
/>
</div>
<p>
{(isDownloaded(this.state.OS)) && (
<FormattedMessage
id="scratchLink.useScratch3"
values={{
scratch3Link: (
<a
href="/projects/editor/?tutorial=ev3"
rel="noopener noreferrer"
target="_blank"
>
Scratch
</a>
)
}}
/>
)}
{(isFromGooglePlay(this.state.OS)) && (
<FormattedMessage id="installScratch.useScratchApp" />
)}
</p>
</Step>
<Step number={3}>
<div className="step-image">
<img
alt={this.props.intl.formatMessage({id: 'extensionInstallation.addExtension'})}
className="screenshot"
src="/images/ev3/ev3-connect-3.png"
/>
</div>
<p><FormattedMessage id="scratchLink.addExtension" /></p>
</Step>
</Steps>
<TipBox title={this.props.intl.formatMessage({id: 'ev3.firstTimeConnecting'})}>
<p><FormattedMessage id="scratchLink.pairingDescription" /></p>
<Steps>
<Step>
<div className="step-image">
<img
alt={this.props.intl.formatMessage({id: 'ev3.imgAltAcceptConnection'})}
src="/images/ev3/ev3-accept-connection.png"
/>
</div>
<p><FormattedMessage id="scratchLink.acceptConnection" /></p>
</Step>
<Step>
<div className="step-image">
<img
alt={this.props.intl.formatMessage({id: 'ev3.imgAltAcceptPasscode'})}
src="/images/ev3/ev3-pin.png"
/>
</div>
<p><FormattedMessage id="scratchLink.acceptPasscode" /></p>
</Step>
<Step>
{this.state.OS === OS_ENUM.WINDOWS && (
<React.Fragment>
<div className="step-image">
<img
alt={this.props.intl.formatMessage(
{id: 'ev3.imgAltWaitForWindows'})}
className="screenshot"
src="/images/ev3/win-device-ready.png"
/>
</div>
<p>
<FormattedMessage id="scratchLink.windowsFinalizePairing" />
</p>
</React.Fragment>
)}
{this.state.OS === OS_ENUM.MACOS && (
<React.Fragment>
<div className="step-image">
<img
alt={this.props.intl.formatMessage(
{id: 'ev3.imgAltEnterPasscodeMac'})}
className="screenshot"
src="/images/ev3/mac-enter-passcode.png"
/>
</div>
<p>
<FormattedMessage id="scratchLink.macosFinalizePairing" />
</p>
</React.Fragment>
)}
{this.state.OS === OS_ENUM.CHROMEOS && (
<React.Fragment>
<div className="step-image tall">
<img
alt={this.props.intl.formatMessage(
{id: 'ev3.imgAltEnterPasscodeChrome'})}
className="screenshot"
src="/images/ev3/chromeos-enter-passcode.png"
/>
</div>
<p>
<FormattedMessage id="scratchLink.chromeosFinalizePairing" />
</p>
</React.Fragment>
)}
</Step>
</Steps>
</TipBox>
</FlexRow>
</ExtensionSection>
<ExtensionSection className="blue things-to-try">
<h2><FormattedMessage id="scratchLink.thingsToTry" /></h2>
<h3><FormattedMessage id="scratchLink.makeMotorMove" /></h3>
<Steps>
<Step
compact
number={1}
>
<span className="step-description">
<FormattedMessage
id="scratchLink.plugMotorIn"
values={{
portA: (
<strong><FormattedMessage id="scratchLink.portA" /></strong>
)
}}
/>
</span>
<div className="step-image">
<img
alt={this.props.intl.formatMessage({id: 'ev3.imgAltPlugInMotor'})}
src="/images/ev3/ev3-motor-port-a.png"
/>
</div>
</Step>
<Step
compact
number={2}
>
<span className="step-description">
<FormattedMessage
id="scratchLink.clickMotorBlock"
values={{
motorBlockText: (
<strong><FormattedMessage id="scratchLink.motorBlockText" /></strong>
)
}}
/>
</span>
<div className="step-image">
<img
alt=""
src="/images/ev3/motor-turn-block.png"
/>
</div>
</Step>
</Steps>
<hr />
<h3><FormattedMessage id="scratchLink.starterProjects" /></h3>
<Steps>
<ProjectCard
cardUrl="/projects/269442346/editor?tutorial=ev3"
description={this.props.intl.formatMessage({id: 'ev3.starter1BasketballDescription'})}
imageAlt={this.props.intl.formatMessage({id: 'ev3.imgAltStarter1Basketball'})}
imageSrc="/images/ev3/ev3-starter1.png"
title={this.props.intl.formatMessage({id: 'ev3.starter1BasketballTitle'})}
/>
<ProjectCard
cardUrl="/projects/269442350/editor?tutorial=ev3"
description={this.props.intl.formatMessage({id: 'ev3.starter2MusicDescription'})}
imageAlt={this.props.intl.formatMessage({id: 'ev3.imgAltStarter2Music'})}
imageSrc="/images/ev3/ev3-starter2.png"
title={this.props.intl.formatMessage({id: 'ev3.starter2MusicTitle'})}
/>
<ProjectCard
cardUrl="/projects/269442354/editor?tutorial=ev3"
description={this.props.intl.formatMessage({id: 'ev3.starter3SpaceDescription'})}
imageAlt={this.props.intl.formatMessage({id: 'ev3.imgAltStarter3Space'})}
imageSrc="/images/ev3/ev3-starter3.png"
title={this.props.intl.formatMessage({id: 'ev3.starter3SpaceTitle'})}
/>
</Steps>
</ExtensionSection> */}
<ExtensionSection className="faq">
<h2><FormattedMessage id="scratchLink.troubleshootingTitle" /></h2>
{isDownloaded(this.state.OS) && (
<React.Fragment>
<h3 className="faq-title"><FormattedMessage id="scratchLink.checkOSVersionTitle" /></h3>
<p>
<FormattedMessage
id="scratchLink.checkOSVersionText"
values={{
winOSVersionLink: (
<a
href="https://support.microsoft.com/en-us/help/13443/windows-which-operating-system"
rel="noopener noreferrer"
target="_blank"
>
<FormattedMessage id="scratchLink.winOSVersionLinkText" />
</a>
),
macOSVersionLink: (
<a
href="https://support.apple.com/en-us/HT201260"
rel="noopener noreferrer"
target="_blank"
>
<FormattedMessage id="scratchLink.macOSVersionLinkText" />
</a>
)
}}
/>
</p>
</React.Fragment>
)}
{/* <h3 className="faq-title"><FormattedMessage id="scratchLink.makeSurePairedTitle" /></h3>
<p>
<FormattedMessage
id="scratchLink.makeSurePairedText"
values={{
pairingInstructionLink: (
<a
href="https://www.lego.com/en-us/service/help/products/themes-sets/mindstorms/connecting-your-lego-mindstorms-ev3-to-bluetooth-408100000007886"
rel="noopener noreferrer"
target="_blank"
>
<FormattedMessage id="scratchLink.pairingInstructionText" />
</a>
)
}}
/>
</p>
<h3 className="faq-title"><FormattedMessage id="scratchLink.reconnectTitle" /></h3>
<p>
<FormattedMessage id="scratchLink.reconnectText" />
</p>
<h3 className="faq-title"><FormattedMessage id="scratchLink.closeScratchCopiesTitle" /></h3>
<p>
<FormattedMessage id="scratchLink.closeScratchCopiesText" />
</p>
<h3 className="faq-title"><FormattedMessage id="scratchLink.otherComputerConnectedTitle" /></h3>
<p>
<FormattedMessage id="scratchLink.otherComputerConnectedText" />
</p>
<h3 className="faq-title"><FormattedMessage id="scratchLink.updateFirmwareTitle" /></h3>
<p>
<FormattedMessage
id="scratchLink.updateFirmwareText"
values={{
firmwareUpdateLink: (
<a
href="https://education.lego.com/en-us/support/mindstorms-ev3/firmware-update"
rel="noopener noreferrer"
target="_blank"
>
<FormattedMessage id="scratchLink.firmwareUpdateText" />
</a>
)
}}
/>
</p> */}
<h3 className="faq-title"><FormattedMessage id="bluetooth.enableLocationServicesTitle" /></h3>
<p>
<FormattedMessage id="bluetooth.enableLocationServicesText" />
</p>
</ExtensionSection>
</div>
);
}
}
ScratchLink.propTypes = {
intl: intlShape.isRequired
};
const WrappedScratchLink = injectIntl(ScratchLink);
render(<Page><WrappedScratchLink /></Page>, document.getElementById('app'));

View file

@ -0,0 +1,11 @@
@import "../../../colors";
.ev3 {
.extension-header {
background-color: $ui-blue-dark;
background-image: url("/images/ev3/ev3-pattern.svg");
}
.step-image.tall {
height: 16rem;
}
}

View file

@ -0,0 +1,55 @@
{
"scratchLink.headerText": "Scratch Link is ....",
"scratchLink.gettingStarted": "Getting Started",
"scratchLink.connectingEV3": "Connecting EV3 to Scratch",
"scratchLink.turnOnEV3": "Turn on your EV3 by holding down the center button.",
"scratchLink.useScratch3": "Use the {scratch3Link} editor.",
"scratchLink.addExtension": "Add the EV3 extension.",
"scratchLink.firstTimeConnecting": "First time connecting your EV3?",
"scratchLink.pairingDescription": "After clicking the connect button in Scratch, you will need to pair it with your computer:",
"scratchLink.acceptConnection": "Accept the connection.",
"scratchLink.acceptPasscode": "Accept the passcode.",
"scratchLink.windowsFinalizePairing": "Wait for your device to be ready.",
"scratchLink.macosFinalizePairing": "Enter the passcode on your computer.",
"scratchLink.chromeosFinalizePairing": "Enter the passcode on your Chromebook.",
"scratchLink.thingsToTry": "Things to Try",
"scratchLink.makeMotorMove": "Make a motor move",
"scratchLink.plugMotorIn": "Plug a motor into {portA} on the EV3 hub",
"scratchLink.portA": "port A",
"scratchLink.clickMotorBlock": "Find the {motorBlockText} block and click on it.",
"scratchLink.motorBlockText": "\"motor A turn this way\"",
"scratchLink.starterProjects": "Starter Projects",
"scratchLink.starter1BasketballTitle": "Play Basketball",
"scratchLink.starter1BasketballDescription": "Move in front of the distance sensor to bounce the ball.",
"scratchLink.starter2MusicTitle": "Make Music",
"scratchLink.starter2MusicDescription": "Press the buttons to play saxophone and drums.",
"scratchLink.starter3SpaceTitle": "Space Tacos",
"scratchLink.starter3SpaceDescription": "Build your own controller to catch tacos in space.",
"scratchLink.troubleshootingTitle": "Troubleshooting",
"scratchLink.checkOSVersionTitle": "Make sure your operating system is compatible with Scratch Link",
"scratchLink.checkOSVersionText": "The minimum operating system versions are listed at the top of this page. See instructions for checking your version of {winOSVersionLink} or {macOSVersionLink}.",
"scratchLink.winOSVersionLinkText": "Windows",
"scratchLink.macOSVersionLinkText": "Mac OS",
"scratchLink.makeSurePairedTitle": "Make sure your computer is paired with your EV3",
"scratchLink.makeSurePairedText": "Your computer needs to be paired with your EV3 before it can connect to Scratch. We try to do this automatically the first time you add the EV3 extension, but if it isn't working you can try these {pairingInstructionLink}.",
"scratchLink.pairingInstructionText": "bluetooth pairing instructions from LEGO",
"scratchLink.reconnectTitle": "On Windows, try un-pairing before connecting",
"scratchLink.reconnectText": "If you have connected before and are unable to reconnect, try manually un-pairing your EV3 from your computer: open your Bluetooth settings, find your EV3, and remove it.",
"scratchLink.closeScratchCopiesTitle": "Close other copies of Scratch",
"scratchLink.closeScratchCopiesText": "Only one copy of Scratch can connect with the EV3 at a time. If you have Scratch open in other browser tabs, close it and try again.",
"scratchLink.otherComputerConnectedTitle": "Make sure no other computer is connected to your EV3",
"scratchLink.otherComputerConnectedText": "Only one computer can be connected to an EV3 at a time. If you have another computer connected to your EV3, disconnect the EV3 or close Scratch on that computer and try again.",
"scratchLink.updateFirmwareTitle": "Try updating your EV3 firmware",
"scratchLink.updateFirmwareText": "We recommend updating to EV3 firmware version 1.10E or above. See {firmwareUpdateLink}.",
"scratchLink.firmwareUpdateText": "firmware update instructions from LEGO",
"scratchLink.imgAltEv3Illustration": "Illustration of an EV3 hub, featuring some examples of interacting with it.",
"scratchLink.imgAltAcceptConnection": "Use the buttons on your EV3 to accept the connection.",
"scratchLink.imgAltAcceptPasscode": "Use the center button on your EV3 to accept the passcode.",
"scratchLink.imgAltWaitForWindows": "Windows will notify you when the EV3 is ready.",
"scratchLink.imgAltEnterPasscodeMac": "Enter the passcode into the connection request window opening on your Mac.",
"scratchLink.imgAltEnterPasscodeChrome": "Enter the passcode into the connection request window opening on your Chromebook.",
"scratchLink.imgAltPlugInMotor": "To find port A: hold the EV3 with the screen and buttons facing you, with the screen above the buttons. Port A is on top, and it is the left-most one",
"scratchLink.imgAltStarter1Basketball": "A Scratch project with a basketball.",
"scratchLink.imgAltStarter2Music": "A Scratch project with musical instruments.",
"scratchLink.imgAltStarter3Space": "A Scratch project with Scratch Cat and a taco in space."
}

View file

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="1024px" height="1024px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 51.2 (57519) - http://www.bohemiancoding.com/sketch -->
<title>Master 1024x1024 </title>
<desc>Created with Sketch.</desc>
<defs></defs>
<g id="Master-1024x1024-" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<path d="M864,32 C934.692,32 992,89.308 992,160 L992,864 C992,934.692 934.692,992 864,992 L160,992 C89.308,992 32,934.692 32,864 L32,160 C32,89.308 89.308,32 160,32 L864,32 Z" id="bg" fill="#0FBD8C"></path>
<path d="M575.040199,579.119317 C575.784506,641.504968 548.860009,701.556404 501.224361,743.740188 C463.313246,777.678653 415.483431,797.175219 365.744307,799.072817 C342.751693,817.796909 314.872542,828.930606 285.019359,830.895376 C281.831783,831.113684 278.644208,831.248027 275.456632,831.248027 C199.197526,831.248027 135.025318,769.433336 129.184126,690.506671 C129.119404,689.599854 129.054682,688.323594 128.989959,686.694681 C128.909056,686.140516 128.844334,685.569557 128.844334,684.948219 C127.35572,651.715056 128.100027,624.258652 129.054682,606.777236 C129.928433,590.656045 130.478573,561.654694 130.543296,554.903945 L130.543296,554.484122 C130.94781,530.890088 136.578655,507.867012 146.820966,487.228529 C143.90846,464.138281 143.973183,439.435915 147.096036,413.524459 L147.500551,409.494161 C147.581454,409.007167 147.581454,408.436208 147.629995,407.949213 C147.710898,407.529391 147.775621,407.042396 147.840343,406.555402 C150.413056,384.506315 154.895079,348.384771 173.891088,311.356411 C205.507955,249.256239 265.48939,212.211086 334.273065,212.211086 L337.185571,212.211086 C358.835196,199.683577 383.18698,193 408.218348,193 L410.871964,193 C490.512813,194.477776 555.299883,262.77453 555.299883,345.294876 C555.299883,346.201693 552.581544,445.195882 549.523413,479.067176 C566.011431,508.992137 574.700406,542.930602 575.040199,579.119317" id="scratch-outline-2" fill="#FFFFFF"></path>
<path d="M507.345453,579.495657 C507.895593,620.823002 489.579168,661.243529 457.072369,690.043365 C429.468288,714.762525 394.194609,728.415159 357.901552,728.415159 C351.655846,728.347987 345.345417,727.995336 339.164433,727.138898 C337.740541,729.120461 336.251927,731.018059 334.698591,732.848486 C320.718564,749.255157 301.447484,758.97825 280.412722,760.237718 C278.794663,760.372061 277.225146,760.439233 275.607087,760.439233 C234.556938,760.439233 200.027566,727.071726 196.969435,684.552085 C196.904712,683.712439 196.83999,682.856001 196.83999,681.949184 L196.775268,681.311054 C195.416098,651.033442 196.095683,626.112767 196.904712,610.545742 C197.924089,592.526953 198.474229,561.89669 198.538952,555.280284 C198.878744,534.57463 206.532162,515.783367 218.958852,501.47581 C212.777868,479.309172 210.803837,452.692414 214.606275,421.222506 L215.091692,416.638042 C215.156415,416.285391 215.156415,415.93274 215.221137,415.580089 C217.389336,397.141476 220.641633,369.886588 234.006798,343.840789 C253.957462,304.696522 290.590311,282.227612 334.423521,282.227612 C336.866789,282.227612 339.439503,282.294784 342.093119,282.44592 C346.704586,282.731399 351.380776,283.285565 355.927521,284.142003 C370.166437,270.825228 389.097724,262.57991 409.857417,263.016526 C452.735972,263.789 487.605137,300.531881 487.605137,344.898742 C487.605137,345.872731 483.802699,464.380277 481.974293,474.657537 C480.890193,481.072427 479.061787,487.185045 476.683241,492.961806 C496.423557,516.623012 507.070383,546.12815 507.345453,579.495657" id="scratch-outline-1" fill="#F9A83A"></path>
<path d="M336.175207,494.929302 C315.83621,491.637892 304.979036,477.515057 310.367171,433.819912 L310.998214,428.546939 C315.528779,390.578176 319.331216,382.131343 336.935695,383.122125 C342.081122,383.457983 348.019397,386.833357 353.941492,391.888022 C359.442891,398.487635 371.659235,407.035225 378.535984,423.962475 C383.471063,436.389227 385.170025,444.500201 385.88197,453.21572 L386.96607,463.912802 L386.96607,463.862423 C388.422323,471.184131 393.826639,477.195992 401.30207,478.505838 C410.929519,480.336265 420.217176,473.686274 421.899957,463.694494 C422.126485,462.502198 426.479063,347.420404 426.479063,345.539598 C426.479063,335.396682 418.647659,327.168158 408.809862,327.000229 C399.004426,326.94985 391.043578,335.228753 391.043578,345.338083 C391.043578,345.556391 390.995036,361.442482 390.671424,377.462915 C376.691397,361.677582 358.795668,347.537954 338.764101,346.312072 C285.141636,343.339728 279.284264,394.507716 275.756896,423.996061 L275.222937,429.218655 C267.990214,487.490044 286.727334,524.249718 330.72235,531.386703 C378.535984,539.178612 410.460282,550.580996 410.751532,581.110502 C410.929519,592.983087 404.910341,605.157945 394.40914,614.528387 C381.755921,625.695671 364.831027,630.71675 348.876968,627.996299 C343.925709,627.207032 339.28188,625.796428 334.832219,624.268274 C328.570332,620.641006 312.794259,610.682812 304.784869,599.17967 C298.037564,589.47337 295.691379,574.22541 294.963253,564.552695 C295.044156,560.220125 295.060336,557.348538 295.060336,557.029473 C295.238323,546.836178 287.358377,538.540482 277.650025,538.305381 C267.796047,538.07028 259.705754,546.298805 259.527767,556.475307 C259.527767,556.811165 259.090891,592.865537 257.812625,614.578766 C255.984219,649.558392 257.812625,679.18108 257.812625,680.474134 C258.540751,690.633843 266.954657,698.291409 276.760092,697.619693 C286.533167,697.08232 293.976237,688.282836 293.296652,678.106334 C293.296652,677.938405 292.4229,663.58047 292.536165,643.748046 C305.545356,652.362808 322.632056,660.742468 342.971054,664.33615 C369.507216,668.9542 396.642061,660.994362 417.369393,642.505371 C435.928526,626.031529 446.559171,603.51224 446.267921,580.724265 C445.636878,512.696198 371.659235,500.739648 336.175207,494.929302" id="scratch-fill" fill="#FFFFFF"></path>
<path d="M779.06356,762 C774.622648,762 770.327887,760.232486 767.091541,756.9623 C760.463197,750.216229 760.493012,739.265542 767.164319,732.573091 C825.831943,673.602502 858.131554,595.271768 858.131554,512.008111 C858.131554,428.736438 825.837379,350.418889 767.168472,291.43153 C760.491766,284.733659 760.461915,273.777012 767.091595,267.053866 C773.685978,260.342534 784.355971,260.312853 790.978619,266.980568 C856.109373,332.454236 892,419.492628 892,512.008111 C892,604.509927 856.107892,691.547704 790.974256,757.024264 C787.755641,760.253082 783.483577,762 779.06356,762 Z M718.103479,684.394903 C713.646999,684.394903 709.350112,682.632852 706.13146,679.357203 C699.503117,672.611133 699.53293,661.676216 706.203319,654.984689 C744.245892,616.728832 765.175937,565.977155 765.175937,512.009688 C765.175937,458.028454 744.247305,407.276194 706.208391,369.024011 C699.53293,362.327389 699.503117,351.392472 706.13146,344.646402 C712.710213,337.950802 723.395834,337.921079 730.003105,344.573224 C774.499695,389.307818 799.028775,448.794707 799.028775,512.009688 C799.028775,575.213322 774.496547,634.69936 730.013648,679.403984 C726.808089,682.643006 722.530133,684.394903 718.103479,684.394903 Z M656.923332,606.581635 C652.482419,606.581635 648.187659,604.814121 644.951312,601.543935 C638.322969,594.797865 638.352782,583.862948 645.022003,577.172595 C662.37045,559.717134 671.906607,536.594539 671.906607,512.008111 C671.906607,487.406332 662.370826,464.284648 645.020683,446.842297 C638.354008,440.130259 638.324233,429.2013 644.951312,422.456516 C651.534978,415.755916 662.22635,415.733611 668.820535,422.396675 C692.628442,446.304212 705.759445,478.158031 705.759445,512.008111 C705.759445,545.844592 692.626914,577.697773 668.8335,601.590716 C665.627941,604.829738 661.349985,606.581635 656.923332,606.581635 Z" id="signal" fill="#FFFFFF" fill-rule="nonzero"></path>
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.7 KiB