moving out mobile, random hue, ambience & blackout modes

This commit is contained in:
lone-cloud 2017-05-29 21:01:24 -07:00
parent a886ea1c53
commit 86d5a3de0a
159 changed files with 267 additions and 16512 deletions

View file

@ -1,4 +0,0 @@
{
"directory": "bower_components",
"analytics": false
}

View file

@ -1,20 +0,0 @@
# EditorConfig helps developers define and maintain consistent
# coding styles between different editors and IDEs
# editorconfig.org
root = true
[*]
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
indent_style = space
indent_size = 2
[*.hbs]
insert_final_newline = false
[*.{diff,md}]
trim_trailing_whitespace = false

View file

@ -1,10 +0,0 @@
{
/**
Ember CLI sends analytics information by default. The data is completely
anonymous, but there are times when you might want to disable this behavior.
Setting `disableAnalytics` to true will prevent any data from being sent.
*/
"disableAnalytics": true,
"usePods": true
}

26
mobile/.gitignore vendored
View file

@ -1,26 +0,0 @@
# See http://help.github.com/ignore-files/ for more about ignoring files.
# compiled output
/dist
/tmp
# dependencies
/node_modules
/bower_components
# misc
/.sass-cache
/connect.lock
/coverage/*
/libpeerconnection.log
npm-debug.log
testem.log
/.idea/
ember-cordova/tmp-livereload
ember-cordova/cordova/www/*
!ember-cordova/cordova/www/.gitkeep
ember-cordova/cordova/plugins/*
!ember-cordova/cordova/plugins/.gitkeep
ember-cordova/cordova/platforms/*
!ember-cordova/cordova/platforms/.gitkeep

View file

@ -1,38 +0,0 @@
{
"predef": [
"document",
"window",
"-Promise",
"Dancer",
"ID3",
"FileAPIReader",
"SC",
"introJs",
"Ps"
],
"browser": true,
"boss": true,
"curly": true,
"debug": false,
"devel": true,
"eqeqeq": true,
"evil": true,
"forin": false,
"immed": false,
"laxbreak": false,
"newcap": true,
"noarg": true,
"noempty": false,
"nonew": false,
"nomen": false,
"onevar": false,
"plusplus": false,
"regexp": false,
"undef": true,
"sub": true,
"strict": false,
"white": false,
"eqnull": true,
"esversion": 6,
"unused": true
}

View file

@ -1,24 +0,0 @@
---
language: node_js
node_js:
- "4"
sudo: false
cache:
directories:
- $HOME/.npm
- $HOME/.cache # includes bowers cache
before_install:
- npm config set spin false
- npm install -g bower phantomjs-prebuilt
- bower --version
- phantomjs --version
install:
- npm install
- bower install
script:
- npm test

View file

@ -1 +0,0 @@
{"ignore_dirs":["tmp","dist","ember-cordova"]}

View file

@ -1,44 +0,0 @@
# Huegasm
This README outlines the details of collaborating on this Ember application.
Music awesomeness for hue lights.
## Prerequisites
You will need the following things properly installed on your computer.
* [Git](http://git-scm.com/)
* [Node.js](http://nodejs.org/) (with NPM)
* [Bower](http://bower.io/)
* [Ember CLI](http://ember-cli.com/)
* [PhantomJS](http://phantomjs.org/)
## Installation
* `git clone <repository-url>` this repository
* `cd huegasm`
* `npm install`
* `bower install`
## Running / Development
* `ember serve`
* Visit your app at [http://localhost:4200](http://localhost:4200).
### Code Generators
Make use of the many generators for code, try `ember help generate` for more details
### Building
* `ember build` (development)
* `ember build --environment production` (production)
## Further Reading / Useful Links
* [ember.js](http://emberjs.com/)
* [ember-cli](http://ember-cli.com/)
* Development Browser Extensions
* [ember inspector for chrome](https://chrome.google.com/webstore/detail/ember-inspector/bmdblncegkenkacieihfhpjfppoconhi)
* [ember inspector for firefox](https://addons.mozilla.org/en-US/firefox/addon/ember-inspector/)

View file

@ -1,18 +0,0 @@
import Ember from 'ember';
import Resolver from './resolver';
import loadInitializers from 'ember-load-initializers';
import config from './config/environment';
let App;
Ember.MODEL_FACTORY_INJECTIONS = true;
App = Ember.Application.extend({
modulePrefix: config.modulePrefix,
podModulePrefix: config.podModulePrefix,
Resolver
});
loadInitializers(App, config.modulePrefix);
export default App;

View file

@ -1,30 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Huegasm</title>
<meta name="description" content="Huegasm is a free web application for managing and synchronizing your Philips Hue lights with the beat of your music.">
<meta name="keywords" content="huegasm,hue,philips hue,music player">
<meta name="author" content="Egor Philippov">
<meta name="viewport" content="width=device-width, initial-scale=1"> {{content-for 'head'}}
<link href='https://fonts.googleapis.com/css?family=Open+Sans|Raleway' rel='stylesheet' type='text/css'>
<link rel="stylesheet" integrity="" href="assets/vendor.css">
<link rel="stylesheet" integrity="" href="assets/huegasm_mobile.css"> {{content-for 'head-footer'}}
<script src="https://connect.soundcloud.com/sdk/sdk-3.1.2.js"></script>
</head>
<body>
{{content-for 'body'}}
<script src="assets/vendor.js"></script>
<script src="assets/huegasm_mobile.js"></script>
{{content-for 'body-footer'}}
</body>
</html>

View file

@ -1 +0,0 @@
{{huegasm-app}}

View file

@ -1,167 +0,0 @@
import Ember from 'ember';
const {
Component,
observer,
computed,
on,
isNone,
run: { later },
$,
String: { htmlSafe }
} = Ember;
export default Component.extend({
elementId: 'bridge-finder',
classNames: ['container'],
bridgeIp: null,
trial: false,
bridgeUsername: null,
bridgeFindStatus: null,
bridgeFindSuccess: computed.equal('bridgeFindStatus', 'success'),
bridgeFindMultiple: computed.equal('bridgeFindStatus', 'multiple'),
bridgeFindFail: computed.equal('bridgeFindStatus', 'fail'),
bridgeUsernamePingMaxTime: 30000, // 30 seconds
bridgeUsernamePingIntervalTime: 1500,
bridgeUserNamePingIntervalProgress: 0,
bridgePingIntervalHandle: null,
manualBridgeIp: null,
manualBridgeIpNotFound: false,
multipleBridgeIps: [],
isAuthenticating: computed.notEmpty('bridgePingIntervalHandle'),
// try to authenticate against the bridge here
onBridgeIpChange: on('init', observer('bridgeIp', function () {
if (!this.get('trial') && !this.get('isAuthenticating')) {
this.setProperties({
bridgePingIntervalHandle: setInterval(this.pingBridgeUser.bind(this), this.get('bridgeUsernamePingIntervalTime')),
bridgeUserNamePingIntervalProgress: 0
});
}
})),
didInsertElement() {
$(document).keypress((event) => {
if (!isNone(this.get('manualBridgeIp')) && event.which === 13) {
this.send('findBridgeByIp');
}
});
document.addEventListener('resume', () => {
if (this.get('trial') || this.get('bridgeFindFail')) {
this.send('tryAgain');
}
}, false);
},
// find the bridge ip here
init() {
this._super(...arguments);
if (this.get('bridgeIp') === null) {
$.ajax('https://www.meethue.com/api/nupnp', {
timeout: 30000
})
.done((result, status) => {
let bridgeFindStatus = 'fail';
if (status === 'success' && result.length === 1) {
this.set('bridgeIp', result[0].internalipaddress);
this.get('storage').set('huegasm.bridgeIp', result[0].internalipaddress);
bridgeFindStatus = 'success';
} else if (result.length > 1) {
let multipleBridgeIps = this.get('multipleBridgeIps');
result.forEach(function (item) {
multipleBridgeIps.pushObject(item.internalipaddress);
});
bridgeFindStatus = 'multiple';
} else {
bridgeFindStatus = 'fail';
}
this.set('bridgeFindStatus', bridgeFindStatus);
})
.fail(() => {
this.set('bridgeFindStatus', 'fail');
});
}
},
pingBridgeUser() {
let bridgeIp = this.get('bridgeIp'),
bridgeUserNamePingIntervalProgress = this.get('bridgeUserNamePingIntervalProgress'),
bridgeUsernamePingMaxTime = this.get('bridgeUsernamePingMaxTime');
if (bridgeIp !== null && bridgeUserNamePingIntervalProgress < 100) {
$.ajax('http://' + bridgeIp + '/api', {
data: JSON.stringify({ "devicetype": "huegasm" }),
contentType: 'application/json',
type: 'POST'
}).done((result, status) => {
if (!this.isDestroyed) {
if (status === 'success' && !result[0].error) {
this.clearBridgePingIntervalHandle();
this.get('storage').set('huegasm.bridgeUsername', result[0].success.username);
this.set('bridgeUsername', result[0].success.username);
}
}
}).fail(() => {
this.clearBridgePingIntervalHandle();
this.setProperties({
bridgeConnectError: true,
bridgeConnectMessage: htmlSafe('Your network and/or system security settings are preventing Huegasm from connecting to your Hue bridge.' +
'<br><span>Feel free to contact us at <a href="mailto:huegasm.app@gmail.com">huegasm.app@gmail.com</a> if this is unexpected and you need help debugging the problem.</span>')
})
});
this.incrementProperty('bridgeUserNamePingIntervalProgress', this.get('bridgeUsernamePingIntervalTime') / bridgeUsernamePingMaxTime * 100);
} else {
this.clearBridgePingIntervalHandle();
}
},
clearBridgePingIntervalHandle() {
clearInterval(this.get('bridgePingIntervalHandle'));
this.set('bridgePingIntervalHandle', null);
},
actions: {
tryAgain() {
this.get('storage').clear();
location.reload();
},
retry() {
this.onBridgeIpChange();
},
chooseBridge(bridge) {
this.set('bridgeIp', bridge);
this.get('storage').set('huegasm.bridgeIp', bridge);
},
findBridgeByIp() {
let manualBridgeIp = this.get('manualBridgeIp');
if (manualBridgeIp.toLowerCase() === 'trial' || manualBridgeIp.toLowerCase() === 'offline') {
this.setProperties({
trial: true,
bridgeIp: 'trial',
bridgeUsername: 'trial'
});
} else {
$.ajax('http://' + manualBridgeIp + '/api', {
data: JSON.stringify({ "devicetype": "huegasm" }),
contentType: 'application/json',
type: 'POST'
}).fail(() => {
this.set('manualBridgeIpNotFound', true);
later(this, function () {
this.set('manualBridgeIpNotFound', false);
}, 5000);
}).then(() => {
this.send('chooseBridge', manualBridgeIp);
});
}
}
},
});

View file

@ -1,81 +0,0 @@
{{#unless bridgeUsername}}
{{#if bridgeIp}}
{{#unless bridgeConnectError}}
<svg version="1.2" baseProfile="tiny" id="press-bridge-button-img" x="0px" y="0px" viewBox="0 0 345.5 335.5" xml:space="preserve">
<path style=" fill: white; stroke: black;" d="M164.7,288.7c8.3-21.9,40.4-18.1,40.4-18.1l-56.2-88.5c-16.7-0.6-30-14.3-30-31.1c0-17.2,13.9-31.2,31.2-31.2
c17.2,0,31.2,13.9,31.2,31.2c0,5.2-1.3,10.1-3.5,14.4c3.6,5.8,10.6,17.1,18.1,29.3l6,9.8c-7.2-11.8-0.9-20.7,5.3-23.3
c14-9.1,21.4,5.1,21.4,5.1l5.3,8.7c-5.3-8.7-4.8-16.3,2.8-20.7c0,0,4.8-3.4,9.4-2.7c5.1,0.8,11.8,6.2,19.6,19.7
c0.3,0.6,0.6,1.1,0.9,1.6c-2.4-5.9-6-19.8,6.4-25.9c12.2-5.2,18.8,3.1,18.8,3.1s2.2,3.2,5.6,8.4c1.8-9.3,2.7-18.8,2.7-28.6
C300,67.1,232.8,0,150,0C67.1,0,0,67.1,0,150s67.1,150,150,150c4.6,0,9.1-0.2,13.6-0.6C162.2,295.5,163.5,290.9,164.7,288.7z
M150,66.6c6.5,0,11.8,5.3,11.8,11.8c0,6.5-5.3,11.8-11.8,11.8c-6.5,0-11.8-5.3-11.8-11.8C138.2,71.9,143.5,66.6,150,66.6z
M79.7,161.8c-6.5,0-11.8-5.3-11.8-11.8c0-6.5,5.3-11.8,11.8-11.8c6.5,0,11.8,5.3,11.8,11.8C91.5,156.5,86.2,161.8,79.7,161.8z
M98.3,110c-6.5,0-11.8-5.3-11.8-11.8c0-6.5,5.3-11.8,11.8-11.8c6.5,0,11.8,5.3,11.8,11.8C110.1,104.7,104.8,110,98.3,110z"
/>
<path style=" fill: white; stroke: #8089ff; stroke-width: 5px;" d="M150.8,154.6c10.6-6.4,16.8-2.8,20.4,1.2c0.3-1.5,0.5-3.1,0.5-4.7c0-12-9.7-21.8-21.8-21.8c-12,0-21.8,9.7-21.8,21.8
c0,9.7,6.4,17.9,15.1,20.7C141.8,166.6,142.2,159.8,150.8,154.6z" />
<path style=" fill: white; " stroke="#000000" stroke-width="7" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10"
d="
M265.5,191.4c8.9,15.5-12.7-14.5,7.2-24.3c12.2-5.2,18.8,3.1,18.8,3.1s34.7,51.1,47.6,79.2c9.6,35.8-7,57.4-32.7,74
c-25.7,16.6-46,6.2-65.4-4.8c-19.4-11-47-13.6-64.2-12.8c-17.2,0.8-14.5-12.8-12.2-17.1c8.3-21.9,40.4-18.1,40.4-18.1L147.6,180
c0,0-12.9-15.6,3.2-25.4c16.1-9.7,22.2,3.7,24.3,6.6c0.9,1.3,10.2,16.4,20.6,33.3l6,9.8c-7.2-11.8-0.9-20.7,5.3-23.3
c14-9.1,21.4,5.1,21.4,5.1l5.3,8.7c-5.3-8.7-4.8-16.3,2.8-20.7c0,0,4.8-3.4,9.4-2.7C251,172.4,257.8,177.8,265.5,191.4z"
/>
<line fill="none" stroke="#000000" stroke-width="7" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10"
x1="266.9" y1="194.1" x2="278.3" y2="213.9" />
<line fill="none" stroke="#000000" stroke-width="7" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10"
x1="233.1" y1="194.1" x2="252.9" y2="227" />
<line fill="none" stroke="#000000" stroke-width="7" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10"
x1="200.6" y1="203" x2="226" y2="241.6" />
</svg>
{{paper-progress-linear warn=true value=bridgeUserNamePingIntervalProgress}}
{{/unless}}
<p class="bridge-finder-bottom">
{{#if isAuthenticating}}
Your bridge IP is <b>{{bridgeIp}}</b>
<br> Press the button on your bridge to authenticate Huegasm.
{{else}}
{{#if bridgeConnectError}}
{{bridgeConnectMessage}}
{{else}}
<p>You failed to press the button in time. <a class="no-text-decoration" href="#" {{action 'retry'}}>RETRY</a></p>
{{/if}}
{{/if}}
</p>
{{else}}
{{#unless bridgeFindStatus}}
{{paper-progress-circular diameter=100}}
<p>Trying to find your bridge's IP.</p>
{{/unless}}
{{#if bridgeFindMultiple}}
<p>Huegasm found multiple hue bridges. <br> Please select the one you want to use for Huegasm.</p>
<div id="bridge-button-group">
{{#each multipleBridgeIps as |bridge|}}
{{paper-radio value=bridge label=bridge onChange=(action "chooseBridge")}}
{{/each}}
</div>
{{else}}
{{#if bridgeFindFail}}
<p>A hue bridge could not be automatically found on your network. <br> Enter one manually? <br><br> (or type <b>offline</b> to look around)
</p>
<span id="bridge-input">
{{paper-input label="Hue bridge IP address" value=manualBridgeIp onChange=(action (mut manualBridgeIp))}}
<div>
{{paper-button onClick=(action "findBridgeByIp") raised=true primary=true label="Find"}}
</div>
</span>
{{#if manualBridgeIpNotFound}}
<p class="bg-danger">
Could not find a bridge with that IP address.
</p>
{{/if}}
{{/if}}
{{/if}}
{{/if}}
{{/unless}}

View file

@ -1,265 +0,0 @@
import Ember from 'ember';
const {
A,
Component,
computed,
isNone,
inject,
run: { later },
$
} = Ember;
export default Component.extend({
classNames: ['container-fluid'],
elementId: 'hue-controls',
lightsData: null,
activeLights: A(),
tabList: ["Lights", "Music"],
selectedTab: 1,
pauseLightUpdates: false,
dimmerOn: false,
lightsIconsOn: true,
playing: false,
displayFailure: true,
notify: inject.service(),
dimmerOnClass: computed('dimmerOn', function(){
let dimmerOn = this.get('dimmerOn'),
storage = this.get('storage'),
dimmerOnClass = 'md-menu-origin';
if (dimmerOn) {
$('body').addClass('dimmerOn');
$('html').addClass('dimmerOn');
dimmerOnClass += ' dimmerOn';
} else {
$('body').removeClass('dimmerOn');
$('html').removeClass('dimmerOn');
}
storage.set('huegasm.dimmerOn', dimmerOn);
return dimmerOnClass;
}),
ready: computed('lightsData', 'trial', function() {
return this.get('trial') || !isNone(this.get('lightsData'));
}),
apiURL: computed('bridgeIp', 'bridgeUsername', function(){
return 'http://' + this.get('bridgeIp') + '/api/' + this.get('bridgeUsername');
}),
tabData: computed('tabList', 'selectedTab', function(){
let tabData = [], selectedTab = this.get('selectedTab');
this.get('tabList').forEach(function(tab, i){
let selected = false;
if(i === selectedTab){
selected = true;
}
tabData.push({"name": tab, "selected": selected });
});
return tabData;
}),
init() {
this._super(...arguments);
let storage = this.get('storage');
if(!this.get('trial')) {
this.updateLightData();
setInterval(this.updateLightData.bind(this), 2000);
}
if (!isNone(storage.get('huegasm.dimmerOn'))) {
this.set('dimmerOn', storage.get('huegasm.dimmerOn'));
this.get('dimmerOnClass');
}
if (!isNone(storage.get('huegasm.lightsIconsOn'))) {
this.set('lightsIconsOn', storage.get('huegasm.lightsIconsOn'));
}
if (!isNone(this.get('storage').get('huegasm.selectedTab'))) {
this.set('selectedTab', this.get('storage').get('huegasm.selectedTab'));
}
document.addEventListener('backbutton', () => {
if(this.get('isShowingAddSoundCloudModal')){
this.set('isShowingAddSoundCloudModal', false);
} else {
let index = (this.get('selectedTab') + 1) % this.tabList.length;
this.set('selectedTab', index);
this.get('storage').set('huegasm.selectedTab', index);
}
}, false);
document.addEventListener('pause', () => {
this.set('pauseLightUpdates', true);
}, false);
document.addEventListener('resume', () => {
this.set('pauseLightUpdates', false);
}, false);
},
updateLightData(){
let fail = ()=>{
if(isNone(this.get('lightsData'))) {
this.send('clearBridge');
} else if(this.get('displayFailure')) {
this.get('notify').warning({html: '<div class="alert alert-warning" role="alert">Error retrieving data from your lights. Yikes.</div>'});
this.set('displayFailure', false);
later(this, () => {
this.set('displayFailure', true);
}, 30000);
}
};
if(!this.get('pauseLightUpdates')){
$.get(this.get('apiURL') + '/lights', (result, status)=>{
if(!isNone(result[0]) && !isNone(result[0].error)){
fail();
} else if (status === 'success' && JSON.stringify(this.get('lightsData')) !== JSON.stringify(result)) {
this.set('lightsData', result);
}
}).fail(fail);
}
},
actions: {
changeTab(tabName){
let index = this.get('tabList').indexOf(tabName);
this.set('selectedTab', index);
this.get('storage').set('huegasm.selectedTab', index);
},
clearBridge() {
let storage = this.get('storage');
storage.remove('huegasm.bridgeUsername');
storage.remove('huegasm.bridgeIp');
location.reload();
},
clearAllSettings() {
this.get('storage').clear();
location.reload();
},
startIntro(){
let intro = introJs();
if(this.get('dimmerOn')) {
this.send('toggleDimmer');
}
intro.setOptions({
steps: [
{
intro: 'Welcome! This short tutorial will introduce you to Huegasm.'
},
{
element: '#music-tab',
intro: 'This is the music player. You\'ll use this to play music and synchronize it with your active lights.<br><br>' +
'<i><b>TIP</b>: Control which lights are active through the <b>Lights</b> tab.</i>'
},
{
element: '#playlist',
intro: 'You can add and select music to play from your playlist here. You may listen to local audio files or stream music from Soundcloud.<br><br>' +
'<i><b>TIP</b>: Songs added through Soundcloud will be saved for when you visit this page again.</i>'
},
{
element: $('#playlist md-menu')[0],
intro: '<img src="assets/images/soundcloudUrl.png" id="soundcloud-tutorial">You can add songs from SoundCloud by copy and pasting the URL shown here'
},
{
element: '#player-area',
intro: 'The audio playback may be controlled with the controls here. Basic music visualization effects may be shown here by selecting them from the menu (eyeball icon in the bottom right).'
},
{
element: '#beat-option-row',
intro: 'These are the settings for the music tab:<br>' +
'<b>Sensitivity</b> - The sensitivity of the beat detector (more sensitivity results in more registered beats)<br>' +
'<b>Hue Range</b> - The hue range that the lights may change to on beat.<br>' +
'<b>Brightness Range</b> - The minimum (off-beat) and maximum (on-beat) brightness of the lights.<br>' +
'<b>Flashing Transitions</b> - Quickly flash the lights on beat<br>' +
'<b>Colorloop</b> - Slowly cycle the lights through all the colors while the music is playing<br>' +
'<i><b>TIP</b>: Your sensitivity settings are saved per song as indicated by the red star icon in the top left corner. These settings they will be restored if you ever listen to the same song again.</i>',
position: 'top'
},
{
element: '#lights-tab',
intro: 'This is the lights tab. Here you\'ll be able to change various light properties:<br>' +
'<b>Power</b> - Turn the selected lights on/off<br>' +
'<b>Brightness</b> - The brightness level of the selected lights<br>' +
'<b>Color</b> - The color of the selected lights<br>' +
'<b>Strobe</b> - Selected lights will flash in sequential order<br>' +
'<b>Colorloop</b> - Selected lights will slowly cycle through all the colors<br>'
},
{
element: '#active-lights',
intro: 'These icons represent the hue lights in your system. Active lights will be controlled by the application while the inactive lights will have a red X over them and will not be controlled.<br>' +
'You may toggle a light\'s state by clicking on it.'
},
{
element: $('#navigation .ember-basic-dropdown-trigger')[0],
intro: 'A few miscellaneous settings can be found here.<br><br>' +
'<b>WARNING</b>: clearing application settings will restore the application to its original state. This will even delete your playlist and any saved song beat preferences.'
},
{
intro: 'And that\'s it...Hope you enjoy the application. ;)'
}
]
});
intro.onexit(() => {
$('body').velocity('scroll', { duration: 200 });
});
// it's VERY ugly but it works... the jQuery massacre :'(
intro.onchange((element) => {
if(element.id === '' || element.id === 'music-tab' || element.id === 'playlist' || element.id === 'player-area' || element.id === 'beat-option-row' || element.id === 'beat-option-button-group' || element.id === 'using-mic-audio-tooltip' || element.nodeName === 'MD-MENU'){
$('.navigation-item').eq(1).click();
} else {
$('.navigation-item').eq(0).click();
}
});
// skip hidden/missing elements
intro.onafterchange((element)=>{
let elem = $(element);
if(elem.html() === '<!---->') {
$('.introjs-nextbutton').click();
}
if(element.id === ''){
later(this, () => {
$('body').velocity('scroll');
}, 500);
} else {
later(this, () => {
$('.introjs-tooltip').velocity('scroll', { offset: -100 });
}, 500);
}
}).start();
},
toggleDimmer(){
this.toggleProperty('dimmerOn');
},
toggleLightsIcons() {
this.toggleProperty('lightsIconsOn');
let lightsIconsOn = this.get('lightsIconsOn');
this.get('storage').set('huegasm.lightsIconsOn', lightsIconsOn);
}
}
});

View file

@ -1,49 +0,0 @@
{{#if ready}}
<div id="navigation">
{{#each tabData as |tab|}}
<span class="navigation-item text-uppercase {{if tab.selected "active"}}" {{action "changeTab" tab.name}}>{{tab.name}}</span>
{{/each}}
{{#paper-menu as |menu|}}
{{#menu.trigger}}
{{#paper-button iconButton=true}}
{{paper-icon "settings-icon" class=dimmerOnClass size=28}}
{{/paper-button}}
{{/menu.trigger}}
{{#menu.content width=3 as |content|}}
{{#content.menu-item onClick="toggleDimmer"}}
{{paper-icon "highlight" class=dimmerOnClass}} Dark Mode: <strong>{{if dimmerOn "On" "Off"}}</strong>
{{/content.menu-item}}
{{#content.menu-item onClick="toggleLightsIcons"}}
{{paper-icon "lightbulb outline" class=dimmerOnClass}} Active Lights: <strong>{{if lightsIconsOn "Icons" "Text"}}</strong>
{{/content.menu-item}}
{{#content.menu-item onClick="clearBridge"}}
{{paper-icon "compare arrows" class=dimmerOnClass}} Switch bridge
{{/content.menu-item}}
{{#content.menu-item onClick="startIntro"}}
{{paper-icon "cached" class=dimmerOnClass}} Restart tutorial
{{/content.menu-item}}
{{#content.menu-item onClick="clearAllSettings"}}
{{paper-icon "settings backup restore" class=dimmerOnClass}} Reset settings
{{/content.menu-item}}
{{/menu.content}}
{{/paper-menu}}
</div>
{{light-group lightsData=lightsData activeLights=activeLights syncLight=syncLight apiURL=apiURL dimmerOn=dimmerOn lightsIconsOn=lightsIconsOn storage=storage}}
<div id="huegasm-content">
{{lights-tab active=(eq selectedTab 0) apiURL=apiURL lightsData=lightsData activeLights=activeLights syncLight=syncLight trial=trial colorLoopOn=colorLoopOn dimmerOn=dimmerOn playing=playing pauseLightUpdates=pauseLightUpdates}}
{{music-tab active=(eq selectedTab 1) apiURL=apiURL lightsData=lightsData activeLights=activeLights pauseLightUpdates=pauseLightUpdates dimmerOn=dimmerOn playing=playing storage=storage colorLoopOn=colorLoopOn isShowingAddSoundCloudModal=isShowingAddSoundCloudModal action="startIntro"}}
</div>
{{else}}
{{paper-progress-circular diameter=100}}
{{/if}}
{{ember-notify messageStyle='bootstrap' closeAfter=5000}}

View file

@ -1,27 +0,0 @@
import Ember from 'ember';
const {
Component,
isEmpty
} = Ember;
export default Component.extend({
bridgeIp: null,
bridgeUsername: null,
trial: false,
storage: null,
init() {
this._super(...arguments);
let storage = new window.Locally.Store({ compress: true });
this.set('storage', storage);
if (!isEmpty(storage.get('huegasm.bridgeIp')) && !isEmpty(storage.get('huegasm.bridgeUsername'))) {
this.setProperties({
bridgeIp: storage.get('huegasm.bridgeIp'),
bridgeUsername: storage.get('huegasm.bridgeUsername')
});
}
}
});

View file

@ -1,5 +0,0 @@
{{#if bridgeUsername}}
{{hue-controls bridgeIp=bridgeIp bridgeUsername=bridgeUsername trial=trial storage=storage}}
{{else}}
{{bridge-finder bridgeIp=bridgeIp bridgeUsername=bridgeUsername trial=trial storage=storage}}
{{/if}}

View file

@ -1,213 +0,0 @@
import Ember from 'ember';
const {
A,
Component,
computed,
isNone,
observer
} = Ember;
export default Component.extend({
elementId: 'active-lights',
classNames: ['light-group'],
activeLights: A(),
// list of all the lights in the hue system
lightsList: computed('lightsData', 'activeLights.[]', 'dimmerOn', function(){
let lightsData = this.get('lightsData'),
activeLights = this.get('activeLights'),
dimmerOn = this.get('dimmerOn'),
lightsList = A(),
src,
activeClass;
for (let key in lightsData) {
activeClass = 'light-active';
if (lightsData.hasOwnProperty(key) && lightsData[key].state.reachable) {
switch (lightsData[key].modelid) {
case 'BSB001':
src = 'bridge_v1';
break;
case 'BSB002':
src = 'bridge_v2';
break;
case 'LCT001':
case 'LCT007':
case 'LCT010':
case 'LCT014':
case 'LTW010':
case 'LTW001':
case 'LTW004':
case 'LTW015':
case 'LWB004':
case 'LWB006':
src = 'white_and_color_e27';
break;
case 'LWB010':
case 'LWB014':
src = 'white_e27';
break;
case 'LCT002':
src = 'br30';
break;
case 'LCT011':
case 'LTW011':
src = 'br30_slim';
break;
case 'LCT003':
src = 'gu10';
break;
case 'LTW013':
src = 'gu10_perfectfit';
break;
case 'LST002':
case 'LST001':
src = 'lightstrip';
break;
case 'LLC006':
case 'LLC010':
src = 'iris';
break;
case 'LLC005':
case 'LLC011':
case 'LLC012':
case 'LLC007':
src = 'bloom';
break;
case 'LLC014':
src = 'aura';
break;
case 'LLC013':
src = 'storylight';
break;
case 'LLC020':
src = 'go';
break;
case 'HBL001':
case 'HBL002':
case 'HBL003':
src = 'beyond_ceiling_pendant_table';
break;
case 'HIL001':
case 'HIL002':
src = 'impulse';
break;
case 'HEL001':
case 'HEL002':
src = 'entity';
break;
case 'HML001':
case 'HML002':
case 'HML003':
case 'HML004':
case 'HML005':
src = 'phoenix_ceiling';
break;
case 'HML006':
src = 'phoenix_down';
break;
case 'LTP003':
src = 'pendant_square';
break;
case 'LTP002':
case 'LTP003':
src = 'pendant_round';
break;
case 'LTP001':
src = 'pendant_oval';
break;
case 'LDF002':
case 'LTF002':
case 'LTF001':
case 'LTC001':
case 'LTC002':
case 'LDF001':
src = 'ceiling_square';
break;
case 'LTC003':
case 'LTD001':
case 'LTD001':
src = 'ceiling_round';
break;
case 'LDD002':
src = 'floor';
break;
case 'LDD001':
src = 'table';
break;
case 'LDT001':
case 'MWM001':
src = 'recessed';
break;
case 'SWT001':
src = 'tap';
break;
case 'RWL021':
src = 'hds';
break;
case 'SML001':
src = 'motion_sensor';
break;
default:
src = 'white_e27';
}
if (dimmerOn) {
src = `assets/images/lights/filled/${src}.svg`;
} else {
src = `assets/images/lights/outline/${src}.svg`;
}
if(!activeLights.includes(key)){
activeClass = 'light-inactive';
}
lightsList.push({ src, name: lightsData[key].name, id: key, data: lightsData[key], activeClass });
}
}
return lightsList;
}),
onActiveLightsChange: observer('activeLights.[]', function(){
this.get('storage').set('huegasm.activeLights', this.get('activeLights'));
}),
init(){
this._super(...arguments);
let lightsData = this.get('lightsData'),
activeLights = this.get('activeLights'),
activeLightsCache = this.get('storage').get('huegasm.activeLights');
if(!isNone(activeLightsCache)){
activeLightsCache.forEach(function(i){
if (!isNone(lightsData) && lightsData.hasOwnProperty(i) && lightsData[i].state.reachable) {
activeLights.pushObject(i);
}
});
} else {
for (let key in lightsData) {
if (lightsData.hasOwnProperty(key) && lightsData[key].state.reachable) {
activeLights.pushObject(key);
}
}
}
},
actions: {
clickLight(id){
let activeLights = this.get('activeLights'),
lightId = activeLights.indexOf(id);
if(lightId !== -1){
activeLights.removeObject(id);
} else {
activeLights.pushObject(id);
this.set('syncLight', id);
}
}
}
});

View file

@ -1,11 +0,0 @@
{{#each lightsList as |light|}}
{{#if lightsIconsOn}}
<div class="{{light.activeClass}} bootstrap-tooltip toggleable-light" data-toggle="tooltip" data-placement="top auto" data-title={{light.name}} {{action "clickLight" light.id}}>
{{inline-svg light.src class="hue-light"}}
</div>
{{else}}
<div class="{{light.activeClass}} light-text toggleable-light" {{action "clickLight" light.id}}>
<div class="light-text-content">{{light.name}}</div>
</div>
{{/if}}
{{/each}}

View file

@ -1,58 +0,0 @@
import Ember from 'ember';
const {
Component,
$
} = Ember;
export default Component.extend({
elementId: 'color-picker',
rgb: null,
canvas: null,
canvasContext: null,
pressingDown: false,
mouseUp(){
this.set('pressingDown', false);
},
mouseMove(event){
if (this.get('pressingDown')) {
this.mouseDown(event);
}
},
mouseDown(event){
let canvasOffset = $(this.get('canvas')).offset(),
canvasX = Math.floor(event.pageX - canvasOffset.left),
canvasY = Math.floor(event.pageY - canvasOffset.top);
// get current pixel
let imageData = this.get('canvasContext').getImageData(canvasX, canvasY, 1, 1),
pixel = imageData.data;
this.set('pressingDown', true);
if (!(pixel[0] === 0 && pixel[1] === 0 && pixel[2] === 0)) {
this.set('rgb', [pixel[0], pixel[1], pixel[2]]);
}
},
// https://dzone.com/articles/creating-your-own-html5
didInsertElement(){
// handle color changes
let canvas = $('#picker')[0],
canvasContext = canvas.getContext('2d'),
image = new Image();
image.src = 'assets/images/colormap.png';
image.onload = function () {
canvasContext.drawImage(image, 0, 0, image.width, image.height); // draw the image on the canvas
};
this.setProperties({
canvas: canvas,
canvasContext: canvasContext
});
}
});

View file

@ -1 +0,0 @@
<canvas id="picker" width="256" height="256"></canvas>

View file

@ -1,278 +0,0 @@
import Ember from 'ember';
const {
Component,
observer,
computed,
on,
run: { later, once },
$
} = Ember;
export default Component.extend({
classNames: ['col-xs-12'],
classNameBindings: ['active::hidden'],
elementId: 'lights-tab',
rgb: [255, 255, 255],
lightsOn: false,
colorLoopOn: false,
lightsOnTxt: computed('lightsOn', function () {
return this.get('lightsOn') ? 'On' : 'Off';
}),
colorloopOnTxt: computed('colorLoopOn', function () {
return this.get('colorLoopOn') ? 'On' : 'Off';
}),
// determines the average brightness of the hue system for the brightness slider
lightsBrightness: computed('lightsData', 'activeLights.[]', function () {
let lightsData = this.get('lightsData'),
activeLights = this.get('activeLights'),
lightsBrightness = 0;
activeLights.forEach(function (light) {
lightsBrightness += lightsData[light].state.bri;
});
return lightsBrightness / activeLights.length;
}),
brightnessControlDisabled: computed.not('lightsOn'),
onColorLoopOnChange: observer('colorLoopOn', function () {
let lightsData = this.get('lightsData'),
activeLights = this.get('activeLights'),
colorLoopsOn = this.get('colorLoopOn'),
effect = colorLoopsOn ? 'colorloop' : 'none';
let colorLoopsOnSystem = activeLights.some(function (light) {
return lightsData[light].state.effect === 'colorloop';
});
// if the internal lights state is different than the one from lightsData (user manually toggled the switch), send the request to change the bulbs state
if (colorLoopsOn !== colorLoopsOnSystem) {
activeLights.forEach((light) => {
if (this.get('lightsData')[light].state.effect !== effect) {
$.ajax(this.get('apiURL') + '/lights/' + light + '/state', {
data: JSON.stringify({ 'effect': effect }),
contentType: 'application/json',
type: 'PUT'
});
}
});
}
}),
rgbPreview: observer('rgb', function () {
let rgb = this.get('rgb'),
xy = rgbToCie(rgb[0], rgb[1], rgb[2]);
this.set('colorLoopOn', false);
this.get('activeLights').forEach((light) => {
$.ajax(this.get('apiURL') + '/lights/' + light + '/state', {
data: JSON.stringify({ "xy": xy }),
contentType: 'application/json',
type: 'PUT'
});
});
this.set('colorLoopOn', false);
$('.color').css('background', 'rgb(' + rgb[0] + ',' + rgb[1] + ',' + rgb[2] + ')');
}),
onActiveLightsChange: on('init', observer('activeLights.[]', function () {
let lightsData = this.get('lightsData'),
xy = null,
setRGB = true;
this.get('activeLights').forEach((i) => {
let light = lightsData[i];
if (xy !== null && xy[0] !== light.state.xy[0] && xy[1] !== light.state.xy[1]) {
setRGB = false;
}
xy = light.state.xy;
});
if (setRGB && xy) {
let rgb = cieToRgb(xy[0], xy[1]);
$('.color').css('background', 'rgb(' + Math.abs(rgb[0]) + ',' + Math.abs(rgb[1]) + ',' + Math.abs(rgb[2]) + ')');
} else {
$('.color').css('background', 'rgb(' + 255 + ',' + 255 + ',' + 255 + ')');
}
})),
// determines whether the lights are on/off for the lights switch
lightsOnChange: on('init', observer('lightsData.@each.state.on', 'activeLights.[]', function () {
if (!this.get('strobeOn')) {
let lightsData = this.get('lightsData'), lightsOn = this.get('activeLights').some(function (light) {
return lightsData[light].state.on === true;
});
this.set('lightsOn', lightsOn);
}
})),
onLightsOnChange: observer('lightsOn', function () {
let lightsData = this.get('lightsData'),
activeLights = this.get('activeLights'),
lightsOn = this.get('lightsOn');
let lightsOnSystem = activeLights.some(function (light) {
return lightsData[light].state.on === true;
});
// if the internal lights state is different than the one from lightsData (user manually toggled the switch), send the request to change the bulbs state
if (lightsOn !== lightsOnSystem) {
activeLights.forEach((light) => {
$.ajax(this.get('apiURL') + '/lights/' + light + '/state', {
data: JSON.stringify({ "on": lightsOn }),
contentType: 'application/json',
type: 'PUT'
});
});
}
}),
onBrightnessChanged: observer('lightsBrightness', function () {
once(this, function () {
let lightsData = this.get('lightsData'),
lightsBrightnessSystem = false,
lightsBrightness = this.get('lightsBrightness'),
activeLights = this.get('activeLights');
activeLights.forEach(function (light) {
lightsBrightnessSystem += lightsData[light].state.bri;
});
lightsBrightnessSystem /= activeLights.length;
// if the internal lights state is different than the one from lightsData (user manually toggled the switch), send the request to change the bulbs state
if (lightsBrightness !== lightsBrightnessSystem) {
activeLights.forEach((light) => {
$.ajax(this.get('apiURL') + '/lights/' + light + '/state', {
data: JSON.stringify({ "bri": lightsBrightness }),
contentType: 'application/json',
type: 'PUT'
});
});
}
});
}),
// sync the current light settings to the newly added light
onaActiveLightsChange: observer('syncLight', function () {
let options = {
on: this.get('lightsOn'),
bri: this.get('lightsBrightness'),
effect: this.get('colorLoopOn') ? 'colorloop' : 'none'
}, rgb = this.get('rgb'),
syncLight = this.get('syncLight');
if (rgb[0] !== 255 && rgb[1] !== 255 && rgb[2] !== 255) {
options['xy'] = this.rgbToXy(rgb[0], rgb[1], rgb[2]);
}
options['transitiontime'] = 0;
$.ajax(this.get('apiURL') + '/lights/' + syncLight + '/state', {
data: JSON.stringify(options),
contentType: 'application/json',
type: 'PUT'
});
}),
// **************** STROBE LIGHT START ****************
strobeOn: false,
strobeOnInervalHandle: null,
preStrobeOnLightsDataCache: null,
nextLightIdx: 0,
onStrobeOnChange: observer('strobeOn', function () {
let lightsData = this.get('lightsData'),
strobeOn = this.get('strobeOn');
if (strobeOn) {
this.set('preStrobeOnLightsDataCache', lightsData);
let stobeInitRequestData = { 'transitiontime': 0 };
for (let key in lightsData) {
if (lightsData.hasOwnProperty(key)) {
if (lightsData[key].state.on) {
stobeInitRequestData.on = false;
}
$.ajax(this.get('apiURL') + '/lights/' + key + '/state', {
data: JSON.stringify(stobeInitRequestData),
contentType: 'application/json',
type: 'PUT'
});
}
}
this.set('strobeOnInervalHandle', setInterval(this.strobeStep.bind(this), 500));
} else { // revert the light system to pre-strobe
let preStrobeOnLightsDataCache = this.get('preStrobeOnLightsDataCache'), updateLight = (lightIndex) => {
$.ajax(this.get('apiURL') + '/lights/' + lightIndex + '/state', {
data: JSON.stringify({
'on': preStrobeOnLightsDataCache[lightIndex].state.on,
'sat': preStrobeOnLightsDataCache[lightIndex].state.sat
}),
contentType: 'application/json',
type: 'PUT'
});
};
for (let key in lightsData) {
if (lightsData.hasOwnProperty(key)) {
later(this, updateLight, key, 2000);
}
}
later(this, this.onColorLoopOnChange, 2000);
clearInterval(this.get('strobeOnInervalHandle'));
}
this.set('pauseLightUpdates', strobeOn);
}),
strobeStep() {
let nextLightIdx = this.get('nextLightIdx') % this.get('activeLights').length,
nextStrobeLight = this.get('activeLights')[nextLightIdx],
turnOnOptions = { on: true, transitiontime: 0, alert: 'select' };
// random light if in cololoop mode
if (this.get('colorLoopOn')) {
turnOnOptions.hue = Math.floor(Math.random() * 65535);
}
$.ajax(this.get('apiURL') + '/lights/' + nextStrobeLight + '/state', {
data: JSON.stringify(turnOnOptions),
contentType: 'application/json',
type: 'PUT'
});
$.ajax(this.get('apiURL') + '/lights/' + nextStrobeLight + '/state', {
data: JSON.stringify({ 'on': false, 'transitiontime': 0 }),
contentType: 'application/json',
type: 'PUT'
});
this.set('nextLightIdx', ++nextLightIdx);
},
strobeOnTxt: computed('strobeOn', function () {
return this.get('strobeOn') ? 'On' : 'Off';
}),
dimmerOnClass: computed('dimmerOn', function () {
return this.get('dimmerOn') ? 'dimmerOn' : null;
})
});

View file

@ -1,42 +0,0 @@
{{#paper-list}}
{{#paper-item}}
{{paper-icon "power-settings-new" class=dimmerOnClass}}
<p>Power</p>
{{paper-switch value=lightsOn onChange=(action (mut lightsOn)) disabled=(or trial playing) skipProxy=trial label=lightsOnTxt}}
{{/paper-item}}
{{#paper-item}}
{{paper-icon "brightness-4" class=dimmerOnClass}}
<p class="layout flex-60">Brightness</p>
{{paper-slider class="flex" step=10 min=1 max=254 value=lightsBrightness onChange=(action (mut lightsBrightness)) disabled=brightnessControlDisabled}}
{{/paper-item}}
{{#paper-item class="color-row" }}
{{paper-icon "color-lens" class=dimmerOnClass}}
<p>Color</p>
{{#paper-menu offset="0 -100" as |menu|}}
{{#menu.trigger}}
{{#paper-button iconButton=false}}
{{paper-button raised=true class="color" disabled=(or trial playing)}}
{{/paper-button}}
{{/menu.trigger}}
{{#menu.content class="color-content" width=8 as |content|}}
{{#content.menu-item}}
{{lights-tab/color-picker lightsData=lightsData activeLights=activeLights rgb=rgb}}
{{/content.menu-item}}
{{/menu.content}}
{{/paper-menu}}
{{/paper-item}}
{{#paper-item}}
{{paper-icon "flare" class=dimmerOnClass}}
<p>Strobe</p>
{{paper-switch value=strobeOn onChange=(action (mut strobeOn)) disabled=(or trial playing) skipProxy=trial label=strobeOnTxt}}
{{/paper-item}}
{{#paper-item}}
{{paper-icon "color-lens" class=dimmerOnClass}} {{paper-icon "loop" id="loop-addition" class=dimmerOnClass}}
<p>Colorloop</p>
{{paper-switch value=colorLoopOn onChange=(action (mut colorLoopOn)) disabled=(or trial playing) skipProxy=trial label=colorloopOnTxt}}
{{/paper-item}}
{{/paper-list}}

View file

@ -1,46 +0,0 @@
import Ember from 'ember';
const {
Component,
observer,
computed,
isEmpty,
isNone,
run: { later },
$
} = Ember;
export default Component.extend({
url: null,
onIsShowingModalChange: observer('isShowingModal', function(){
if(this.get('isShowingModal')){
this.set('url', null);
later(this, function() {
$('md-input-container input').focus();
}, 500);
}
}),
saveDisabled: computed('url', function(){
return isNone(this.get('url')) || isEmpty(this.get('url').trim());
}),
didInsertElement: function() {
$(document).keypress((event)=>{
if(!this.get('saveDisabled') && event.which === 13) {
this.send('add');
}
});
},
actions: {
close () {
this.sendAction();
},
add (){
this.sendAction('action', this.get('url'));
}
}
});

View file

@ -1,15 +0,0 @@
{{#if isShowingModal}}
{{#paper-dialog fullscreen=fullscreen onClose=(action "close") origin=dialogOrigin clickOutsideToClose=true}}
{{#paper-dialog-content}}
<p>Enter a <a href="https://soundcloud.com" target="_blank" rel="noopener noreferrer">SoundCloud</a> track or playlist/set
URL</p>
<p>(ex. https://soundcloud.com/mrsuicidesheep/tracks)</p>
{{paper-input label="SoundCloud URL" class="full-width" icon="search" value=url onChange=(action (mut url))}}
{{/paper-dialog-content}}
{{#paper-dialog-actions class="layout-row" }}
<span class="flex"></span> {{paper-button onClick=(action "close") label="Close"}} {{paper-button class="pull-right" onClick=(action "add") disabled=saveDisabled primary=true label="Add Music"}}
{{/paper-dialog-actions}}
{{/paper-dialog}}
{{/if}}

View file

@ -1,650 +0,0 @@
import Ember from 'ember';
import helperMixin from './mixins/helpers';
import visualizerMixin from './mixins/visualizer';
const {
Component,
observer,
isEmpty,
isNone,
$,
run: { later, next }
} = Ember;
export default Component.extend(helperMixin, visualizerMixin, {
updatePageTitle: observer('playQueuePointer', function () {
let title = 'Huegasm',
playQueuePointer = this.get('playQueuePointer'),
playQueue = this.get('playQueue');
if (playQueuePointer !== -1) {
let song = playQueue[playQueuePointer];
if (song.title) {
title = song.title;
if (song.artist) {
title += (' - ' + song.artist);
}
} else {
title = song.fileName;
}
title += '- Huegasm';
}
document.title = title;
}),
changePlayerControl(name, value, saveBeatPrefs) {
this.set(name, value);
if (name === 'threshold') {
this.get('kick').set({ threshold: value });
}
if (saveBeatPrefs && this.get('playQueuePointer') !== -1) {
this.saveSongBeatPreferences();
}
this.get('storage').set('huegasm.' + name, value);
},
saveSongBeatPreferences() {
let song = this.get('playQueue')[this.get('playQueuePointer')];
if (song) {
let title = isEmpty(song.artist) ? song.fileName : song.artist + '-' + song.title,
songBeatPreferences = this.get('songBeatPreferences');
songBeatPreferences[title] = { threshold: this.get('threshold') };
this.set('usingBeatPreferences', true);
this.get('storage').set('huegasm.songBeatPreferences', songBeatPreferences);
}
},
loadSongBeatPreferences() {
let song = this.get('playQueue')[this.get('playQueuePointer')],
title = isEmpty(song.artist) ? song.fileName : song.artist + '-' + song.title,
songBeatPreferences = this.get('songBeatPreferences'),
preference = songBeatPreferences[title],
oldBeatPrefCache = this.get('oldBeatPrefCache'),
newOldBeatPrefCache = null;
if (!isNone(preference)) { // load existing beat prefs
newOldBeatPrefCache = { threshold: this.get('threshold') };
this.changePlayerControl('threshold', preference.threshold);
this.set('usingBeatPreferences', true);
} else if (!isNone(oldBeatPrefCache)) { // revert to using beat prefs before the remembered song
this.changePlayerControl('threshold', oldBeatPrefCache.threshold);
this.set('usingBeatPreferences', false);
}
this.set('oldBeatPrefCache', newOldBeatPrefCache);
},
clearCurrentAudio(resetPointer) {
let dancer = this.get('dancer');
if (dancer.audio.pause) {
dancer.pause();
}
if (resetPointer) {
this.set('playQueuePointer', -1);
}
this.setProperties({
timeElapsed: 0,
timeTotal: 0,
playing: false
});
},
simulateKick(/*mag, ratioKickMag*/) {
let activeLights = this.get('activeLights'),
lightsData = this.get('lightsData'),
color = null,
transitiontime = this.get('flashingTransitions'),
brightnessRange = this.get('brightnessRange'),
stimulateLight = (light, brightness, hue) => {
let options = { 'bri': brightness };
if (transitiontime) {
options['transitiontime'] = 0;
} else {
options['transitiontime'] = 1;
}
if (!isNone(hue)) {
options.hue = hue;
}
if (lightsData[light].state.on === false) {
options.on = true;
}
$.ajax(this.get('apiURL') + '/lights/' + light + '/state', {
data: JSON.stringify(options),
contentType: 'application/json',
type: 'PUT'
});
},
timeToBriOff = 100;
if (activeLights.length > 0) {
let lastLightBopIndex = this.get('lastLightBopIndex'),
lightBopIndex,
light;
lightBopIndex = Math.floor(Math.random() * activeLights.length);
// let's try not to select the same light twice in a row
if (activeLights.length > 1) {
while (lightBopIndex === lastLightBopIndex) {
lightBopIndex = Math.floor(Math.random() * activeLights.length);
}
}
light = activeLights[lightBopIndex];
this.set('lastLightBopIndex', lightBopIndex);
if (!this.get('colorloopMode')) {
let hueRange = this.get('hueRange');
color = Math.floor(Math.random() * (hueRange[1] - hueRange[0] + 1) + hueRange[0]);
}
if (transitiontime) {
timeToBriOff = 80;
}
stimulateLight(light, brightnessRange[1]);
later(this, stimulateLight, light, brightnessRange[0], color, timeToBriOff);
}
this.set('paused', true);
later(this, function () {
this.set('paused', false);
}, 200);
//work the music beat area - simulate the speaker vibration by running a CSS animation on it
$('#beat-speaker-center-outer').velocity({ blur: 3 }, 100).velocity({ blur: 0 }, 100);
$('#beat-speaker-center-inner').velocity({ scale: 1.05 }, 100).velocity({ scale: 1 }, 100);
},
init() {
this._super(...arguments);
window.requestAnimationFrame = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.msRequestAnimationFrame;
window.cancelAnimationFrame = window.cancelAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || window.msCancelAnimationFrame;
navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia;
let dancer = new Dancer(),
storage = this.get('storage'),
kick = dancer.createKick({
threshold: this.get('threshold'),
onKick: (mag, ratioKickMag) => {
if (this.get('paused') === false) {
this.simulateKick(mag, ratioKickMag);
}
}
});
kick.on();
this.setProperties({
dancer: dancer,
kick: kick
});
['shuffle', 'repeat', 'threshold', 'playerBottomDisplayed', 'audioMode', 'songBeatPreferences', 'firstVisit', 'currentVisName', 'playQueue', 'playQueuePointer', 'flashingTransitions', 'colorloopMode', 'hueRange', 'brightnessRange'].forEach((item) => {
if (!isNone(storage.get('huegasm.' + item))) {
let itemVal = storage.get('huegasm.' + item);
if (isNone(this.actions[item + 'Changed'])) {
this.set(item, itemVal);
} else {
this.send(item + 'Changed', itemVal);
}
}
});
SC.initialize({
client_id: this.get('SC_CLIENT_ID')
});
this.set('oldPlayQueueLength', this.get('playQueue.length'));
document.addEventListener('stop', () => {
if (this.get('playing')) {
this.send('play');
}
}, false);
},
didInsertElement() {
this._super();
let self = this;
// perfect-scrollbar
Ps.initialize(document.getElementById('play-list-area'), {
swipePropagation: false
});
// file input code
$('#file-input').on('change', function () {
let files = this.files;
self.send('handleNewFiles', files);
this.value = null; // reset in case upload the second file again
});
$(document).on('click', '.alert', (event) => {
$(event.target).addClass('removed');
});
$(document).keypress((event) => {
if (event.which === 32 && event.target.type !== 'text') {
this.send('play');
}
});
// demo tracks
if (this.get('firstVisit')) {
this.send('handleNewSoundCloudURL', 'https://soundcloud.com/mrsuicidesheep/candyland-speechless-feat-rkcb');
this.send('handleNewSoundCloudURL', 'https://soundcloud.com/dillistone/dillistone-lili-n-rude');
this.send('handleNewSoundCloudURL', 'https://soundcloud.com/mrsuicidesheep/vallis-alps-young-feki-remix');
this.send('handleNewSoundCloudURL', 'https://soundcloud.com/mrsuicidesheep/andrew-luce-when-to-love-you-feat-chelsea-cutler');
this.send('handleNewSoundCloudURL', 'https://soundcloud.com/mrsuicidesheep/ahh-ooh-carefree-with-me');
this.send('handleNewSoundCloudURL', 'https://soundcloud.com/mrsuicidesheep/crywolf-slow-burn');
this.send('handleNewSoundCloudURL', 'https://soundcloud.com/mrsuicidesheep/clozee-red-forest');
this.send('handleNewSoundCloudURL', 'https://soundcloud.com/mrsuicidesheep/elo-method-subranger-solace');
this.send('handleNewSoundCloudURL', 'https://soundcloud.com/mrsuicidesheep/90-pounds-of-pete-waited-too-long-feat-devon-baldwin');
this.send('handleNewSoundCloudURL', 'https://soundcloud.com/mrsuicidesheep/draper-eyes-open');
this.send('handleNewSoundCloudURL', 'https://soundcloud.com/itspapaya/sunny');
this.send('handleNewSoundCloudURL', 'https://soundcloud.com/stonesthrow/nxworries-anderson-paak-knxwledge-suede');
this.get('storage').set('huegasm.firstVisit', false);
this.sendAction();
}
if (!this.get('playerBottomDisplayed')) {
$('#player-bottom').hide();
}
},
actions: {
setVisName(name) {
this.set('currentVisName', name);
},
gotoSCURL(URL) {
// need to pause the music since soundcloud is going to start playing this song anyways
if (this.get('playing')) {
this.send('play');
}
this.send('gotoURL', URL);
},
gotoURL(URL) {
window.open(URL, '_blank');
},
handleNewSoundCloudURL(URL) {
if (URL) {
SC.resolve(URL).then((resultObj) => {
let processResult = (result) => {
if (result.kind === 'user') {
this.get('notify').alert({ html: this.get('scUserNotSupportedHtml') });
} else if (result.kind === 'track') {
if (result.streamable === true) {
let picture = null;
if (result.artwork_url) {
picture = result.artwork_url.replace('large', 't67x67');
} else if (result.user.avatar_url) {
picture = result.user.avatar_url;
}
$.get(picture)
.done(() => {
this.get('playQueue').pushObject({ url: result.stream_url + '?client_id=' + this.get('SC_CLIENT_ID'), fileName: result.title + ' - ' + result.user.username, artist: result.user.username, scUrl: result.permalink_url, title: result.title, picture: picture });
}).fail(() => { // no picture
this.get('playQueue').pushObject({ url: result.stream_url + '?client_id=' + this.get('SC_CLIENT_ID'), fileName: result.title + ' - ' + result.user.username, artist: result.user.username, scUrl: result.permalink_url, title: result.title });
});
} else {
failedSongs.push(result.title);
}
} else if (result.kind === 'playlist') {
if (result.streamable === true) {
result.tracks.forEach(processResult);
} else {
failedSongs.push(result.title);
}
}
},
failedSongs = [];
if (resultObj instanceof Array) {
resultObj.forEach(processResult);
} else {
processResult(resultObj);
}
if (failedSongs.length > 0) {
this.get('notify').alert({ html: this.get('notStreamableHtml')(failedSongs) });
}
if (this.get('playQueuePointer') === -1) {
if (this.get('firstVisit')) {
this.send('goToSong', 0);
} else {
this.send('next');
}
}
}, () => {
this.get('notify').alert({ html: this.get('urlNotFoundHtml')(URL) });
});
}
this.set('isShowingAddSoundCloudModal', false);
},
toggleIsShowingAddSoundCloudModal() {
this.toggleProperty('isShowingAddSoundCloudModal');
},
slideTogglePlayerBottom() {
let elem = this.$('#player-bottom');
elem.velocity(elem.is(':visible') ? 'slideUp' : 'slideDown', { duration: 300 });
this.changePlayerControl('playerBottomDisplayed', !this.get('playerBottomDisplayed'));
},
goToSong(index, playSong, scrollToSong) {
let dancer = this.get('dancer'), playQueue = this.get('playQueue');
if (dancer.audio) {
this.clearCurrentAudio(true);
}
if (!isNone(playQueue[index])) {
let audio = new Audio();
audio.src = this.get('playQueue')[index].url;
audio.crossOrigin = "anonymous";
audio.oncanplay = () => {
this.set('timeTotal', Math.floor(audio.duration));
this.set('soundCloudFuckUps', 0);
};
audio.onerror = (event) => {
let playQueuePointer = this.get('playQueuePointer'),
song = this.get('playQueue')[playQueuePointer];
if (this.get('soundCloudFuckUps') >= this.get('maxSoundCloudFuckUps')) {
this.get('notify').alert({ html: this.get('tooManySoundCloudFuckUps') });
this.send('play');
this.set('soundCloudFuckUps', 0);
} else {
if (song.local) {
this.send('removeAudio', playQueuePointer);
} else {
this.send('next', true);
}
if (event.target.error.code === 2) {
this.get('notify').alert({ html: this.get('failedToDecodeFileHtml')(song.fileName) });
} else {
this.get('notify').alert({ html: this.get('failedToPlayFileHtml')(song.fileName) });
}
this.set('usingBeatPreferences', false);
this.incrementProperty('soundCloudFuckUps');
}
};
audio.ontimeupdate = () => {
this.set('timeElapsed', Math.floor(audio.currentTime));
};
audio.onended = () => {
this.send('next');
};
dancer.load(audio, 1);
this.set('playQueuePointer', index);
this.loadSongBeatPreferences();
if (playSong) {
this.send('play');
}
if (scrollToSong) {
next(this, () => {
$('.track' + index).velocity('scroll', { container: $('#play-list-area'), duration: 200 });
});
}
}
},
removeAudio(index) {
this.get('playQueue').removeAt(index);
if (index === this.get('playQueuePointer')) {
this.send('goToSong', index, true, true);
}
},
playerAreaPlay() {
if (isEmpty($('#player-controls:hover')) && this.get('playQueuePointer') !== -1) {
this.send('play');
$('#play-notification').velocity({ opacity: 1, scale: 1 }, 0).velocity({ opacity: 0, scale: 3 }, 500);
}
},
play(replayPause) {
let dancer = this.get('dancer'),
playQueuePointer = this.get('playQueuePointer'),
playing = this.get('playing'),
lightsData = this.get('lightsData');
if (playQueuePointer !== -1) {
if (playing) {
dancer.pause();
let preMusicLightsDataCache = this.get('preMusicLightsDataCache'),
updateLight = (lightIndex) => {
$.ajax(this.get('apiURL') + '/lights/' + lightIndex + '/state', {
data: JSON.stringify({
'on': preMusicLightsDataCache[lightIndex].state.on,
'hue': preMusicLightsDataCache[lightIndex].state.hue,
'bri': preMusicLightsDataCache[lightIndex].state.bri
}),
contentType: 'application/json',
type: 'PUT'
});
};
for (let key in lightsData) {
if (lightsData.hasOwnProperty(key)) {
later(this, updateLight, key, 1000);
}
}
if (!replayPause) {
this.set('timeElapsed', Math.floor(dancer.getTime()));
}
} else {
let timeTotal = this.get('timeTotal');
// replay song
if (this.get('timeElapsed') === timeTotal && timeTotal !== 0) {
this.send('next', true);
return;
}
$(window).trigger('resize'); // workaround to redraw the canvas for the vitualizer
this.set('preMusicLightsDataCache', lightsData);
dancer.play();
}
this.set('pauseLightUpdates', !playing);
this.onColorloopModeChange();
this.toggleProperty('playing');
}
},
next(repeatAll) {
let playQueuePointer = this.get('playQueuePointer'),
playQueue = this.get('playQueue'),
nextSong = (playQueuePointer + 1),
repeat = this.get('repeat'),
shuffle = this.get('shuffle');
if (repeat === 2) { // repeating one song takes precedence over shuffling
if (playQueuePointer === -1 && playQueue.length > 0) {
nextSong = 0;
} else {
nextSong = playQueuePointer;
}
} else if (shuffle) { // next shuffle song
let shufflePlayed = this.get('shufflePlayed');
// played all the song in shuffle mode
if (shufflePlayed.length === playQueue.length) {
shufflePlayed.clear();
this.send('play', true);
return;
}
// we're going to assume that the song URL is the id
do {
nextSong = Math.floor(Math.random() * playQueue.length);
} while (shufflePlayed.includes(playQueue[nextSong].url));
shufflePlayed.pushObject(playQueue[nextSong].url);
} else if (nextSong > playQueue.length - 1) {
if (repeat === 1 || repeatAll) {
nextSong = nextSong % playQueue.length;
} else {
this.send('play', true);
return;
}
}
this.send('goToSong', nextSong, true, true);
},
previous() {
if (this.get('timeElapsed') > 5) {
this.send('seekChanged', 0);
} else {
let nextSong = this.get('playQueuePointer'),
playQueue = this.get('playQueue');
if (this.get('shuffle') && !isNone(playQueue[nextSong])) { // go to the previously shuffled song
let shufflePlayed = this.get('shufflePlayed'),
shuffledSongIndx = this.get('shufflePlayed').indexOf(playQueue[nextSong].url),
i = 0;
if (shufflePlayed.length > 0 && shuffledSongIndx !== -1) { // only if there was one
nextSong = shuffledSongIndx - 1;
if (nextSong < 0) {
nextSong = shufflePlayed.length - 1;
}
playQueue.some(function (item) { // try to find the previous song id
if (item.url === shufflePlayed[nextSong]) {
nextSong = i;
return true;
}
i++;
return false;
});
}
} else {
nextSong--;
if (nextSong < 0) {
nextSong = playQueue.length - 1;
}
}
this.send('goToSong', nextSong, true, true);
}
},
seekChanged(position) {
let dancer = this.get('dancer');
if (dancer.audio) {
dancer.audio.currentTime = Math.floor(this.get('timeTotal') * position / 100);
}
},
addLocalAudio: function () {
$('#file-input').click();
},
shuffleChanged(value) {
this.changePlayerControl('shuffle', isNone(value) ? !this.get('shuffle') : value);
},
repeatChanged(value) {
this.changePlayerControl('repeat', isNone(value) ? (this.get('repeat') + 1) % 3 : value);
},
playerBottomDisplayedChanged(value) {
this.changePlayerControl('playerBottomDisplayed', value);
},
thresholdChanged(value) {
this.changePlayerControl('threshold', value, true);
},
brightnessRangeChanged(value) {
this.changePlayerControl('brightnessRange', value);
},
hueRangeChanged(value) {
this.changePlayerControl('hueRange', value);
},
playQueuePointerChanged(value) {
this.send('goToSong', value, false, true);
},
clickSpeaker() {
this.simulateKick(1);
},
handleNewFiles(files) {
let self = this,
playQueue = this.get('playQueue'),
updatePlayQueue = function () {
let tags = ID3.getAllTags("local"),
picture = null;
if (tags.picture) {
let base64String = "";
for (let i = 0; i < tags.picture.data.length; i++) {
base64String += String.fromCharCode(tags.picture.data[i]);
}
picture = "data:" + tags.picture.format + ";base64," + window.btoa(base64String);
}
playQueue.pushObject({
fileName: this.name.replace(/\.[^/.]+$/, ""),
url: URL.createObjectURL(this),
artist: tags.artist,
title: tags.title,
picture: picture,
local: true
});
ID3.clearAll();
if (self.get('playQueuePointer') === -1) {
self.send('next');
}
};
for (let key in files) {
if (files.hasOwnProperty(key)) {
let file = files[key];
ID3.loadTags("local", updatePlayQueue.bind(file), {
dataReader: new FileAPIReader(file),
tags: ['title', 'artist', 'album', 'track', 'picture']
});
}
}
}
}
});

View file

@ -1,325 +0,0 @@
import Ember from 'ember';
const {
Mixin,
observer,
computed,
run,
isNone,
inject,
$,
A
} = Ember;
export default Mixin.create({
classNames: ['col-xs-12'],
classNameBindings: ['active::hidden'],
elementId: 'music-tab',
dancer: null,
notify: inject.service('notify'),
beatOptions: {
threshold: {
range: { min: 0, max: 0.5 },
step: 0.01,
defaultValue: 0.3,
pips: {
mode: 'values',
values: [0, 0.25, 0.5],
density: 10,
format: {
to: function (value) {
if (value === 0) {
value = 'High';
} else if (value === 0.25) {
value = '';
} else {
value = 'Low';
}
return value;
},
from: function (value) { return value; }
}
}
},
hueRange: {
range: { min: 0, max: 65535 },
step: 1,
defaultValue: 0.3,
pips: {
mode: 'values',
values: [0, 25500, 46920, 65535],
density: 10,
format: {
to: function (value) {
if (value === 0 || value === 65535) {
value = 'Red';
} else if (value === 25500) {
value = 'Green';
} else {
value = 'Blue';
}
return value;
},
from: function (value) { return value; }
}
}
},
brightnessRange: {
range: { min: 1, max: 254 },
step: 1,
defaultValue: 0,
pips: {
mode: 'values',
values: [1, 63, 127, 190, 254],
density: 10,
format: {
to: function (value) {
if (value === 63) {
value = 25;
} else if (value === 127) {
value = 50;
} else if (value === 190) {
value = 75;
} else if (value === 254) {
value = 100;
}
return value;
},
from: function (value) { return value; }
}
}
}
},
threshold: 0.3,
hueRange: [0, 65535],
brightnessRange: [1, 254],
oldThreshold: null,
playQueuePointer: -1,
playQueue: A(),
timeElapsed: 0,
timeTotal: 0,
lastLightBopIndex: 0,
playerBottomDisplayed: true,
dragging: false,
draggingOverPlayListArea: false,
isShowingAddSoundCloudModal: false,
colorloopMode: false,
flashingTransitions: false,
// 0 - no repeat, 1 - repeat all, 2 - repeat one
repeat: 0,
shuffle: false,
volume: 100,
// beat detection related pausing
paused: false,
// audio: playing or paused
playing: false,
songBeatPreferences: {},
usingBeatPreferences: false,
oldBeatPrefCache: null,
storage: null,
firstVisit: true,
soundCloudFuckUps: 0,
maxSoundCloudFuckUps: 3,
// used to insure that we don't replay the same thing multiple times in shuffle mode
shufflePlayed: [],
// noUiSlider connection specification
filledConnect: [true, false],
hueRangeConnect: [false, true, false],
SC_CLIENT_ID: 'aeec0034f58ecd85c2bd1deaecc41594',
scUserNotSupportedHtml: '<div class="alert alert-danger" role="alert">SoundCloud user URLs are not supported.</div>',
tooManySoundCloudFuckUps: '<div class="alert alert-danger" role="alert">The SoundCloud API is not seving the audio properly. More details <a href="https://www.soundcloudcommunity.com/soundcloud/topics/some-soundcloud-cdn-hosted-tracks-dont-have-access-control-allow-origin-header" target="_blank" rel="noopener noreferrer">HERE</a>.</div>',
notStreamableHtml(fileNames) {
let html = '<div class="alert alert-danger" role="alert">The following file(s) could not be added because they are not allowed to be streamed:<br>' + fileNames.toString().replace(/,/g, '<br>') + '</div>';
return html;
},
urlNotFoundHtml(url) {
return '<div class="alert alert-danger" role="alert">The URL (' + url + ') could not be resolved.</div>';
},
failedToPlayFileHtml(fileName) {
return '<div class="alert alert-danger" role="alert">Failed to play file (' + fileName + ').</div>';
},
failedToDecodeFileHtml(fileName) {
return '<div class="alert alert-danger" role="alert">Failed to decode file (' + fileName + ').</div>';
},
scUrl: computed('playQueuePointer', 'playQueue.[]', function () {
let rtn = null,
currentSong = this.get('playQueue')[this.get('playQueuePointer')];
if (currentSong && currentSong.scUrl) {
rtn = currentSong.scUrl;
}
return rtn;
}),
playQueueEmpty: computed.empty('playQueue'),
playQueueNotEmpty: computed.notEmpty('playQueue'),
playQueueMultiple: computed('playQueue.[]', function () {
return this.get('playQueue').length > 1;
}),
seekPosition: computed('timeElapsed', 'timeTotal', function () {
let timeTotal = this.get('timeTotal'),
timeElapsed = this.get('timeElapsed');
if (timeTotal === 0) {
return 0;
}
return timeElapsed / timeTotal * 100;
}),
largeArtworkPic: computed('playQueuePointer', 'currentVisName', function () {
let pic = '',
currentVisName = this.get('currentVisName'),
playQueuePointer = this.get('playQueuePointer'),
playQueue = this.get('playQueue');
if (playQueuePointer !== -1 && currentVisName === 'None') {
let song = playQueue[playQueuePointer];
if (!isNone(song.picture)) {
pic = song.picture;
if (song.scUrl) {
pic = pic.replace('67x67', '500x500');
}
}
}
return pic;
}),
repeatIcon: computed('repeat', function () {
if (this.get('repeat') === 2) {
return 'repeat-one';
}
return 'repeat';
}),
playingIcon: computed('playing', function () {
if (this.get('playing')) {
return 'pause';
} else if (this.get('timeElapsed') === this.get('timeTotal') && this.get('timeTotal') !== 0) {
return 'replay';
} else {
return 'play-arrow';
}
}),
playerAreaClickIcon: computed('playing', function () {
if (this.get('playing')) {
return 'play-arrow';
} else {
return 'pause';
}
}),
playListAreaClass: computed('dragging', 'draggingOverPlayListArea', 'dimmerOn', function () {
let classes = 'pointer';
if (this.get('dragging')) {
classes += ' drag-here-highlight';
}
if (this.get('draggingOverPlayListArea')) {
classes += ' dragging-over';
}
if (this.get('dimmerOn')) {
classes += ' dimmerOn';
}
return classes;
}),
dimmerOnClass: computed('dimmerOn', function () {
return this.get('dimmerOn') ? 'dimmerOn' : null;
}),
repeatClass: computed('repeat', function () {
return this.get('repeat') !== 0 ? 'player-control-icon active' : 'player-control-icon';
}),
shuffleClass: computed('shuffle', function () {
return this.get('shuffle') ? 'player-control-icon active' : 'player-control-icon';
}),
beatDetectionAreaArrowIcon: computed('playerBottomDisplayed', function () {
if (!this.get('playerBottomDisplayed')) {
return 'keyboard-arrow-down';
} else {
return 'keyboard-arrow-up';
}
}),
timeElapsedTxt: computed('timeElapsed', function () {
return this.formatTime(this.get('timeElapsed'));
}),
timeTotalTxt: computed('timeTotal', function () {
return this.formatTime(this.get('timeTotal'));
}),
onPlayQueueChange: observer('playQueue.length', function () {
let playQueueLength = this.get('playQueue.length');
if (playQueueLength > this.get('oldPlayQueueLength')) {
run.once(this, () => {
run.next(this, function () {
$(`.track${playQueueLength - 1}`).velocity('scroll', { container: $('#play-list-area'), duration: 200 });
Ps.update(document.getElementById('play-list-area'));
});
});
} else {
run.once(this, () => {
run.next(this, function () {
Ps.update(document.getElementById('play-list-area'));
});
});
}
this.set('oldPlayQueueLength', playQueueLength);
}),
onColorloopModeChange: observer('colorloopMode', 'playing', function () {
this.set('colorLoopOn', this.get('playing') && this.get('colorloopMode'));
}),
onOptionChange: observer('flashingTransitions', 'playQueue.[]', 'playQueuePointer', 'colorloopMode', function (self, option) {
option = option.replace('.[]', '');
let value = this.get(option);
// can't really save local music
if (option === 'playQueue') {
value = value.filter((song) => {
return !song.url.startsWith('blob:');
});
}
this.get('storage').set('huegasm.' + option, value);
}),
formatTime(time) {
return this.pad(Math.floor(time / 60), 2) + ':' + this.pad(time % 60, 2);
},
pad(num, size) { return ('000000000' + num).substr(-size); }
});

View file

@ -1,94 +0,0 @@
import Ember from 'ember';
const {
Mixin,
observer,
$
} = Ember;
export default Mixin.create({
currentVisName: 'None',
visNames: ['None', 'Bars', 'Wave'],
onCurrentVisNameChange: observer('currentVisName', function () {
let currentVisName = this.get('currentVisName');
if(currentVisName === 'None'){
let canvasEl = $('#visualization')[0],
ctx = canvasEl.getContext('2d');
ctx.clearRect(0, 0, canvasEl.width, canvasEl.height);
}
this.get('storage').set('huegasm.currentVisName', currentVisName);
}),
didInsertElement(){
let dancer = this.get('dancer'),
canvas = $('#visualization')[0],
playerArea = $('#player-area'),
ctx = canvas.getContext('2d'),
spacing = 2,
h = playerArea.height(), w;
canvas.height = h;
// must be done to preserver resolution so that things don't appear blurry
// note that the height is set to 400px via css so it doesn't need to be recalculated
let syncCanvasHeight = ()=>{
w = playerArea.width();
canvas.width = w;
};
syncCanvasHeight();
$(window).on('resize', syncCanvasHeight);
dancer.bind('update', () => {
let currentVisName = this.get('currentVisName'),
gradient = ctx.createLinearGradient(0, 0, 0, h),
pageHidden = document.hidden || document.msHidden || document.webkitHidden || document.mozHidden;
// dont do anything if the page is hidden or no visualization
if(currentVisName === 'None' || pageHidden || !this.get('active')){
return;
}
ctx.clearRect(0, 0, w, h);
if (currentVisName === 'Wave') {
let width = 3,
count = 1024;
gradient.addColorStop(0.6, 'white');
gradient.addColorStop(0, '#0036FA');
ctx.lineWidth = 1;
ctx.strokeStyle = gradient;
let waveform = dancer.getWaveform();
ctx.beginPath();
ctx.moveTo(0, h / 2);
for (let i = 0, l = waveform.length; i < l && i < count; i++) {
ctx.lineTo(i * ( spacing + width ), ( h / 2 ) + waveform[i] * ( h / 2 ));
}
ctx.stroke();
ctx.closePath();
} else if (currentVisName === 'Bars') {
let width = 4,
count = 128;
gradient.addColorStop(1, '#0f0');
gradient.addColorStop(0.6, '#ff0');
gradient.addColorStop(0.2, '#F12B24');
ctx.fillStyle = gradient;
let spectrum = dancer.getSpectrum();
for (let i = 0, l = spectrum.length; i < l && i < count; i++) {
ctx.fillRect(i * ( spacing + width ), h, width, -spectrum[i] * h - 60);
}
}
});
}
});

View file

@ -1,165 +0,0 @@
<div class="row" id="step1">
<div id="player-area" class="col-xs-12 {{if (eq "None" currentVisName) "display-icon"}}" {{action "playerAreaPlay"}}>
<canvas id="visualization"></canvas>
<div id="artwork">
<img src={{largeArtworkPic}}>
</div>
{{paper-icon playerAreaClickIcon id="play-notification"}}
<div id="player-controls">
{{range-slider start=seekPosition min=0 max=100 connect=filledConnect id="seek-slider" on-change="seekChanged"}}
{{#if playQueueNotEmpty}}
<span {{action "previous"}}>{{paper-icon "skip-previous" class="player-control-icon"}}</span><!--
-->{{/if}}<!--
--><span {{action "play"}}>{{paper-icon playingIcon class="player-control-icon"}}</span><!--
-->{{#if playQueueMultiple}}<!--
--><span {{action "next" true}}>{{paper-icon "skip-next" action="" class="player-control-icon"}}</span><!--
-->{{/if}}
<div id="player-time-controls">{{timeElapsedTxt}} / {{timeTotalTxt}}</div>
{{#paper-menu as |menu|}}
{{#menu.trigger}}
{{#paper-button iconButton=true}}
{{paper-icon "remove-red-eye" class="player-control-icon"}}
{{/paper-button}}
{{/menu.trigger}}
{{#menu.content width=2 as |content|}}
{{#each visNames as |name|}}
{{#content.menu-item onClick=(action "setVisName" name)}}
{{name}}
{{#if (eq currentVisName name)}}
{{paper-icon "check" classNames=dimmerOnClass}}
{{/if}}
{{/content.menu-item}}
{{/each}}
{{/menu.content}}
{{/paper-menu}}
{{#if scUrl}}
<a href={{scUrl}} class="sound-cloud-link"{{action "gotoSCURL" scUrl}}>
<img src="assets/images/sc-white.png" class="hidden-xs" />
<img src="assets/images/sc-white-sm.png" class="visible-xs-inline" />
</a>
{{/if}}
</div>
</div>
<div id="playlist" class="col-xs-12">
<input id="file-input" type="file" accept="audio/*" multiple="true"/>
<div id="play-list-controls">
{{#paper-menu as |menu|}}
{{#menu.trigger}}
{{#paper-button iconButton=false}}
{{paper-icon "playlist add" class="player-control-icon"}} Add new music
{{/paper-button}}
{{/menu.trigger}}
{{#menu.content width=3 as |content|}}
{{#content.menu-item onClick="addLocalAudio"}}
{{paper-icon "attachment" class=shuffleClass}} Local file
{{/content.menu-item}}
{{#content.menu-item onClick="toggleIsShowingAddSoundCloudModal"}}
{{paper-icon "cloud" class=shuffleClass}} SoundCloud
{{/content.menu-item}}
{{/menu.content}}
{{/paper-menu}}
<span {{action "shuffleChanged"}}>{{paper-icon "shuffle" class=shuffleClass}}</span>
<span {{action "repeatChanged"}}>{{paper-icon repeatIcon class=repeatClass}}</span>
</div>
<div id="play-list-area" class="{{playListAreaClass}} ps-container ps-theme-default ps-active-y" {{action "addLocalAudio"}}>
{{#if playQueueEmpty}}
<div id="dragHere">
Add your music files here
</div>
{{paper-icon "library-music" class=dimmerOnClass}}
{{/if}}
{{#each playQueue as |item index|}}
<div class="playlist-item track{{index}} {{if (eq index playQueuePointer) "active"}} {{if dragging "hidden"}}" {{action "goToSong" index true bubbles=false}}>
{{#if item.picture}}
<img class="album-art" src={{item.picture}}>
{{else}}
<img class="album-art" src="assets/images/missingArtwork.png">
{{/if}}
<div class="song-info">
{{#if item.title}}
<div class="song-title">{{item.title}}</div>
<div class="song-artist">
{{#if item.artistUrl}}
<a href="#" {{action "gotoURL" item.artistUrl bubbles=false}}>{{item.artist}}</a>
{{else}}
{{item.artist}}
{{/if}}
</div>
{{else}}
{{item.fileName}}
{{/if}}
</div>
<span class="audio-remove-button" {{action "removeAudio" index bubbles=false}}>{{paper-icon "close" classNames="close"}}</span>
</div>
{{/each}}
</div>
</div>
</div>
<div id="slide-toggle" class="text-center row" {{action "slideTogglePlayerBottom"}}>
<div class="col-xs-offset-5 col-xs-2">
{{paper-icon beatDetectionAreaArrowIcon id="beat-detection-area-arrow-icon"}}
</div>
</div>
<div id="player-bottom" class="row {{if dimmerOn "dimmerOn"}}">
<div id="beat-area" class="col-xs-12">
{{#if usingBeatPreferences}}
<span id="save-beat-preferences-star">
{{paper-icon "star" class=dimmerOnClass}}
</span>
{{/if}}
<div class="row" id="beat-option-row">
<div class="beat-option col-xs-4">
<span class="option-description">
Hue Range
</span>
{{range-slider start=hueRange orientation="vertical" step=beatOptions.hueRange.step range=beatOptions.hueRange.range connect=hueRangeConnect on-change="hueRangeChanged" pips=beatOptions.hueRange.pips}}
</div>
<div class="beat-option col-xs-4">
<span data-toggle="tooltip" data-placement="top" data-title="The minimum (off-beat) and maximum (on-beat) brightness of the lights" class="option-description bootstrap-tooltip">
Brightness Range
</span>
{{range-slider start=brightnessRange orientation="vertical" step=beatOptions.brightnessRange.step range=beatOptions.brightnessRange.range on-change="brightnessRangeChanged" pips=beatOptions.brightnessRange.pips}}
</div>
<div id="sensitivity-settings" class="beat-option col-xs-4">
<span class="option-description">
Sensitivity
</span>
{{range-slider start=threshold orientation="vertical" step=beatOptions.threshold.step range=beatOptions.threshold.range on-change="thresholdChanged" pips=beatOptions.threshold.pips}}
</div>
</div>
</div>
<div class="beat-option col-xs-6">
{{paper-checkbox value=flashingTransitions onChange=(action (mut flashingTransitions)) label="Flashing Transitions"}}
</div>
<div class="beat-option col-xs-6">
{{paper-checkbox value=colorloopMode onChange=(action (mut colorloopMode)) label="Colorloop"}}
</div>
</div>
{{music-tab/add-soundcloud-sound-modal action="handleNewSoundCloudURL" isShowingModal=isShowingAddSoundCloudModal}}

View file

@ -1,3 +0,0 @@
import Resolver from 'ember-resolver';
export default Resolver;

View file

@ -1,12 +0,0 @@
import Ember from 'ember';
import config from './config/environment';
const Router = Ember.Router.extend({
location: config.locationType,
rootURL: config.rootURL
});
Router.map(function() {
});
export default Router;

View file

@ -1,49 +0,0 @@
@import 'huegasm-variables';
@import 'bootstrap'; // used to take out bootstrap scss modules that we don't need
@import 'paper';
@import 'bridge-finder';
@import 'common';
@import 'dimmer';
@import 'introjs';
@import 'hue-controls';
@import 'light-group';
@import 'music-tab';
@import 'noui-slider';
[data-ember-action] {
cursor: pointer;
text-decoration: none;
}
-webkit-tap-highlight-color {
rgba: (0, 0, 0, 0);
}
body, button {
font-family: 'Raleway', sans-serif;
}
.full-width {
width: 100%;
}
md-dialog {
p {
word-break: break-word;
}
}
.alert {
margin-bottom: 0;
border: none;
}
button.md-warn {
background: $secondaryThemeColor;
}
.ps-scrollbar-y-rail {
opacity: 1 !important;
}

View file

@ -1,56 +0,0 @@
/*!
* Bootstrap v3.3.7 (http://getbootstrap.com)
* Copyright 2011-2016 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
// Core variables and mixins
@import "bower_components/bootstrap-sass/assets/stylesheets/bootstrap/variables";
@import "bower_components/bootstrap-sass/assets/stylesheets/bootstrap/mixins";
// Reset and dependencies
@import "bower_components/bootstrap-sass/assets/stylesheets/bootstrap/normalize";
//@import "bower_components/bootstrap-sass/assets/stylesheets/bootstrap/print";
@import "bower_components/bootstrap-sass/assets/stylesheets/bootstrap/glyphicons";
// Core CSS
@import "bower_components/bootstrap-sass/assets/stylesheets/bootstrap/scaffolding";
@import "bower_components/bootstrap-sass/assets/stylesheets/bootstrap/type";
//@import "bower_components/bootstrap-sass/assets/stylesheets/bootstrap/code";
@import "bower_components/bootstrap-sass/assets/stylesheets/bootstrap/grid";
//@import "bower_components/bootstrap-sass/assets/stylesheets/bootstrap/tables";
@import "bower_components/bootstrap-sass/assets/stylesheets/bootstrap/forms";
@import "bower_components/bootstrap-sass/assets/stylesheets/bootstrap/buttons";
// Components
//@import "bower_components/bootstrap-sass/assets/stylesheets/bootstrap/component-animations";
@import "bower_components/bootstrap-sass/assets/stylesheets/bootstrap/dropdowns";
//@import "bower_components/bootstrap-sass/assets/stylesheets/bootstrap/button-groups";
@import "bower_components/bootstrap-sass/assets/stylesheets/bootstrap/input-groups";
//@import "bower_components/bootstrap-sass/assets/stylesheets/bootstrap/navs";
//@import "bower_components/bootstrap-sass/assets/stylesheets/bootstrap/navbar";
//@import "bower_components/bootstrap-sass/assets/stylesheets/bootstrap/breadcrumbs";
//@import "bower_components/bootstrap-sass/assets/stylesheets/bootstrap/pagination";
//@import "bower_components/bootstrap-sass/assets/stylesheets/bootstrap/pager";
//@import "bower_components/bootstrap-sass/assets/stylesheets/bootstrap/labels";
//@import "bower_components/bootstrap-sass/assets/stylesheets/bootstrap/badges";
//@import "bower_components/bootstrap-sass/assets/stylesheets/bootstrap/jumbotron";
//@import "bower_components/bootstrap-sass/assets/stylesheets/bootstrap/thumbnails";
@import "bower_components/bootstrap-sass/assets/stylesheets/bootstrap/alerts";
//@import "bower_components/bootstrap-sass/assets/stylesheets/bootstrap/progress-bars";
//@import "bower_components/bootstrap-sass/assets/stylesheets/bootstrap/media";
//@import "bower_components/bootstrap-sass/assets/stylesheets/bootstrap/list-group";
//@import "bower_components/bootstrap-sass/assets/stylesheets/bootstrap/panels";
//@import "bower_components/bootstrap-sass/assets/stylesheets/bootstrap/responsive-embed";
//@import "bower_components/bootstrap-sass/assets/stylesheets/bootstrap/wells";
//@import "bower_components/bootstrap-sass/assets/stylesheets/bootstrap/close";
// Components w/ JavaScript
//@import "bower_components/bootstrap-sass/assets/stylesheets/bootstrap/modals";
//@import "bower_components/bootstrap-sass/assets/stylesheets/bootstrap/tooltip";
@import "bower_components/bootstrap-sass/assets/stylesheets/bootstrap/popovers";
//@import "bower_components/bootstrap-sass/assets/stylesheets/bootstrap/carousel";
// Utility classes
@import "bower_components/bootstrap-sass/assets/stylesheets/bootstrap/utilities";
@import "bower_components/bootstrap-sass/assets/stylesheets/bootstrap/responsive-utilities";

View file

@ -1,36 +0,0 @@
#press-bridge-button-img {
width: 200px;
margin: 0 auto 30px auto;
display: inherit;
}
#bridge-button-group {
width: 150px;
margin: 30px auto;
text-align: left;
}
#bridge-input md-input-container{
max-width: 200px;
margin: 30px auto 20px;
}
#bridge-finder {
text-align: center;
padding: 20px 15px 0;
font-size: 16px;
flex-direction: column;
display: flex;
justify-content: center;
height: 100vh;
}
#bridge-finder .md-bar {
background-color: $secondaryThemeColor !important;
}
.bridge-finder-bottom {
margin-top: 30px;
width: 100%;
font-size: 18px;
}

View file

@ -1,11 +0,0 @@
.text-left {
text-align: left !important;
}
.relative {
position: relative !important;
}
.no-text-decoration {
text-decoration: none !important;
}

View file

@ -1,80 +0,0 @@
div.dimmerOn {
color: $whitish !important;
background: $blackish !important;
}
html.dimmerOn {
color: white;
background: $blackish;
}
body.dimmerOn {
color: $whitish;
background: $blackish;
md-dialog {
background-color: rgba(0, 0, 0, 0.9) !important;
}
md-input-container {
label {
color: #3f51b5 !important;
}
.md-input {
color: $whitish !important;
border-color: #3f51b5 !important;
}
}
.md-track {
background: $whitish;
}
.color {
border: 1px solid white;
}
.playlist-item, .ember-basic-dropdown-content md-menu-content {
color: $whitish;
background-color: $dimmerOnButtonColor;
}
.ember-basic-dropdown-content a {
color: $whitish;
}
.playlist-item {
&.active {
background: darken($dimmerOnButtonColor, 15%) !important;
}
.audio-remove-button .paper-icon {
color: $whitish !important;
}
}
.light-inactive::before {
display: none;
}
.hue-light {
-webkit-filter: drop-shadow(0 0 5px #228DFF);
fill: $whitish;
path {
fill: $whitish;
}
}
.md-container {
color: $whitish;
}
.add-new-music:hover {
background: darken($dimmerOnButtonColor, 5%);
}
.md-bar {
background-color: darken(white, 60%) !important;
}
}
.paper-icon.dimmerOn {
text-shadow: $glowingText;
opacity: 0.9 !important;
}
#dimmer-container {
float: left;
cursor: pointer;
padding: 5px 10px;
position: relative;
bottom: 5px;
}

View file

@ -1,82 +0,0 @@
#lights-tab {
padding: 0;
margin-top: 5vh;
.paper-icon {
line-height: 0.8 !important;
}
}
#hue-controls {
max-width: 1200px;
position: relative;
min-height: 100vh;
md-progress-circular {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
}
#navigation {
padding: 15px 0 4vh;
text-align: center;
position: relative;
.ember-basic-dropdown-trigger {
z-index: 3;
text-align: right;
position: absolute;
top: 5px;
right: -10px;
transform: scale(1.1);
}
}
.navigation-item {
font-size: 20px;
padding: 0 10px 0 10px;
&.active {
font-weight: bold;
text-decoration: none !important;
}
}
.color {
border: 1px solid rgb(164, 164, 164);
}
.color-row .md-list-item-inner {
padding-right: 0;
}
#color-picker {
padding: 5px;
background: rgba(0, 0, 0, 0.7);
box-shadow: 5px 10px 15px 5px rgba(0, 0, 0, 0.3);
color: #FFFFFF;
position: absolute;
width: 266px;
height: 266px;
right: 6px;
top: -9px;
z-index: 3;
}
.color-content {
box-shadow: none !important;
md-menu-content, md-menu-item {
background-color: transparent !important;
}
}
#loop-addition {
position: absolute;
left: 33px;
top: 15px;
font-size: 16px !important;
}
#huegasm-content {
height: 80%;
max-height: 500px;
}

View file

@ -1,8 +0,0 @@
$playerHeight: 400px;
$playerDefaultIconColor: #BBBBBB;
$secondaryThemeColor: #F12B24;
$glowingText: 0 0 2px #fff, 0 0 4px #fff, 0 0 20px #228DFF;
$dimmerOnButtonColor: #404040;
$blackish: #242424;
$whitish: #e0e0e0;
$paperThemeColor: #3f51b5;

View file

@ -1,18 +0,0 @@
#settings.introjs-fixParent {
position: inherit !important;
}
.introjs-tooltip {
width: 300px;
}
.introjs-skipbutton {
color: $secondaryThemeColor;
}
.introjs-bullets ul li a.active {
position: relative;
height: 10px;
width: 10px;
top: -2px;
}

View file

@ -1,66 +0,0 @@
.light-group {
max-width: 800px;
margin: 0 auto;
display: flex;
justify-content: center;
flex-wrap: wrap;
}
.hue-light {
width: 35px;
}
.toggleable-light {
cursor: pointer;
position: relative;
border-radius: 30%;
border: 2px solid $whitish;
margin: 0 2px;
display: flex;
height: 50px;
align-items: center;
justify-content: center;
padding: 3px;
}
.light-inactive {
border-color: rgba($secondaryThemeColor, 0.4);
}
.light-inactive::before {
font-weight: bold;
position: absolute;
top: -5px;
content: "\e014";
font-family: 'Glyphicons Halflings';
font-size: 40px;
color: rgba($secondaryThemeColor, 0.6);
}
.light-active {
border-color: rgba(green, 0.4);
.hue-light {
transition-duration: 0.3s;
transition-property: transform;
box-shadow: 0 0 1px rgba(0, 0, 0, 0);
}
}
.remove-button {
margin: 10px 0 10px 60px;
}
.light-text {
padding: 0 7px;
&.light-inactive::before {
left: 10px;
}
}
.light-text-content {
display: block;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
max-width: 100px;
}

View file

@ -1,360 +0,0 @@
.row {
margin: 0;
}
#music-tab {
padding: 0;
margin: 10px 0 20px;
}
#slide-toggle {
font-size: 22px;
color: $playerDefaultIconColor;
background: #730B07;
div .paper-icon {
color: inherit !important;
font-size: 24px;
font-weight: bold;
}
}
#player-controls {
transition: all 0.2s ease-in-out;
position: absolute;
bottom: 0;
left: 0;
padding: 15px 10px;
width: 100%;
color: white !important;
z-index: 20;
background: linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 1));
.ember-basic-dropdown-trigger {
position: absolute;
right: 0;
bottom: 10px;
}
md-menu-item > .md-button md-icon {
margin: auto 0 5px 10px;
}
.play-arrow, .pause, .replay {
font-size: 30px;
}
}
#player-time-controls {
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
font-size: 14px;
display: inline-block;
margin-left: 1em;
}
.player-control-icon {
color: $playerDefaultIconColor !important;
transition-duration: 0.1s;
margin-right: 10px;
font-size: 22px;
}
.player-control-icon.active {
color: $secondaryThemeColor !important;
}
#play-notification {
position: relative;
color: white !important;
background: black;
top: 50%;
left: 50%;
opacity: 0;
border-radius: 100%;
}
#player-area {
height: $playerHeight;
background-color: black;
display: inline-block;
padding: 0;
}
#playlist {
height: $playerHeight;
background-color: #1E1E1E;
padding: 0 5px 0 5px;
}
#player-area * .noUi-origin {
background-color: $blackish;
border-radius: 5px;
}
#player-area * .noUi-base {
background-color: $blackish;
border-radius: 5px;
}
#volume-bar {
width: 5em;
height: 0.5em;
display: inline-block;
}
#player-area * .noUi-handle::after, #player-area * .noUi-handle::before {
content: none;
}
#seek-slider {
margin-bottom: 15px;
transition-duration: 0.2s;
height: 8px;
.noUi-handle {
opacity: 1 !important;
}
}
#seek-slider * .noUi-handle {
border: none;
height: 13px;
width: 13px;
border-radius: 50%;
top: -4px;
left: -6px;
opacity: 0;
transition-duration: 0.1s;
background-color: $secondaryThemeColor !important;
box-shadow: none;
}
#play-list-controls {
min-height: 40px;
margin-top: 5px;
border-bottom: 1px solid #3a3a3a;
position: relative;
font-size: 20px;
button .player-control-icon {
margin: 0 5px 1px 3px;
}
.ember-basic-dropdown-trigger {
position: absolute;
bottom: 0;
right: 0;
color: $whitish;
.paper-button {
margin: 0;
}
}
}
#play-list-area {
background-color: white;
width: 100%;
height: 350px;
margin: 0 auto;
border-radius: 5px;
transition: 0.1s all ease-in-out;
position: relative;
overflow: hidden;
#dragHere {
position: absolute;
top: 27%;
font-size: 20px;
text-align: center;
width: 100%;
}
[md-font-icon="library-music"] {
position: absolute;
top: 40%;
font-size: 100px;
opacity: 0.5;
width: 100%;
text-align: center;
}
}
.song-artist {
font-weight: bold;
}
#file-input {
width: 1px;
height: 1px;
visibility: hidden;
}
.playlist-item {
margin-right: 5px;
border-bottom: 1px solid rgba(128, 128, 128, 0.3);
border-top: 1px solid rgba(128,128,128,0.3);
height: 62px;
font-family: 'Open Sans', sans-serif;
padding: 0 20px 0 5px;
position: relative;
color: $blackish;
background: darken(white, 5%);
.close {
font-size: 18px;
}
.album-art {
height: 60px;
float: left;
margin-right: 5px;
border: 1px solid rgba(0, 0, 0, 0.5);
}
.song-info {
.song-title {
max-height: 40px;
overflow: hidden;
}
.song-artist {
max-height: 20px;
overflow: hidden;
}
}
.audio-remove-button {
position: absolute;
top: 10px;
right: 0;
padding: 10px;
}
}
.playlist-item.active {
background: darken(white, 15%) !important;
border-top: 1px solid $secondaryThemeColor;
border-bottom: 1px solid $secondaryThemeColor;
}
.playlist-item:hover {
background: darken(white, 10%);
}
#beat-area {
position: relative;
padding: 0;
margin-bottom: 20px;
}
#beat-option-button-group {
margin: 20px 0 10px 0;
}
.beat-option {
padding: 5px 0;
text-align: center;
md-switch {
margin: 0;
}
.option-description {
display: inline-flex;
font-size: 20px;
justify-content: center;
flex-direction: column;
}
button {
margin-top: 0;
}
}
#player-bottom {
color: $blackish;
border: 1px solid black;
width: 100%;
background: white;
border-bottom-left-radius: 5px;
border-bottom-right-radius: 5px;
.md-label {
width: 100%;
}
}
#add-music-choices {
min-width: initial;
right: 0;
left: initial;
width: 100px;
top: 25px;
}
.add-new-music {
padding: 0 5px 0 10px;
font-size: 16px;
border-radius: 5px;
background: #f8f8f8;
border: none;
}
.sound-cloud-link {
position: absolute;
right: 55px;
bottom: 22px;
}
#visualization {
position: absolute;
top: 0;
left: 0;
}
#save-beat-preferences-star {
position: absolute;
top: 3px;
z-index: 1000;
left: 5px;
md-icon {
color: $secondaryThemeColor !important;
font-size: 25px;
}
}
.visualizers-menu {
left: -135px;
}
.display-icon {
background: url(images/huegasm.png) center center no-repeat;
background-size: 80px 80px;
}
#artwork {
position: absolute;
width: 100%;
overflow: hidden;
img {
display: block;
margin: 0 auto;
max-height: 400px;
}
}
.keyboard-arrow-down {
font-size: 20px;
}
.visualizers-menu .paper-icon {
margin-left: 10px;
position: relative;
top: -4px;
}
.close {
font-size: 18px !important;
color: rgb(51, 51, 51);
text-shadow: none;
}
.ember-notify-default.ember-notify-cn {
top: 0;
bottom: initial;
}
#soundcloud-tutorial {
width: 100%;
}
@media(max-width: 500px) {
#sensitivity-settings .noUi-value-vertical {
display: none;
}
.option-description {
height: 55px;
}
}

View file

@ -1,44 +0,0 @@
.noUi-value-vertical {
margin-top: -10px;
transform: none;
}
.noUi-value-vertical, .noUi-pips {
color: inherit !important;
}
.noUi-vertical .noUi-handle {
border: 1px solid #A3A0A0;
width: 26px;
}
.noUi-vertical .noUi-handle:after, .noUi-vertical .noUi-handle:before{
background: grey;
}
.noUi-connect {
background-color: $secondaryThemeColor;
}
.noUi-horizontal .noUi-handle {
width: 0.4em;
height: 1.3em;
left: -0.071em;
top: -0.550em;
transition-duration: 0.1s;
background: $playerDefaultIconColor !important;
}
.noUi-target {
margin: 0 auto;
}
.noUi-base {
background-color: #ADADAD;
border: 1px solid #797979;
}
.noUi-vertical {
height: 200px;
margin: 15px auto 10px;
}

View file

@ -1,55 +0,0 @@
@import 'ember-paper';
md-checkbox .md-icon, .md-off, .md-on {
border-color: inherit !important;
}
md-checkbox.md-default-theme.md-checked .md-icon {
background: $secondaryThemeColor;
}
md-checkbox .md-label {
width: 125px;
text-align: left;
}
.md-button {
font-size: 13px;
flex-direction: unset;
span {
width: 100%;
}
}
.ember-basic-dropdown-trigger {
outline: none !important;
}
md-progress-circular {
margin: 0 auto 20px auto !important;
}
md-progress-linear {
margin-bottom: 50px !important;
}
md-slider.md-default-theme .md-thumb:after {
border-color: $secondaryThemeColor;
background-color: $secondaryThemeColor;
}
md-icon {
color: rgba(0, 0, 0, 0.54) !important;
}
md-switch.md-default-theme.md-checked .md-thumb {
background-color: $secondaryThemeColor;
}
md-list-item {
margin-bottom: 2vh;
}
.md-thumb-text {
user-select: none;
}

View file

@ -1,13 +0,0 @@
{
"name": "huegasm",
"dependencies": {
"JavaScript-ID3-Reader": "https://github.com/aadsm/JavaScript-ID3-Reader.git",
"bootstrap-sass": "^3.3.5",
"hammer.js": "^2.0.8",
"intro.js": "^2.1.0",
"locallyjs": "^0.3.2",
"matchMedia": "^0.3.0",
"velocity": "^1.3.1",
"perfect-scrollbar": "^0.7.0"
}
}

View file

@ -1,47 +0,0 @@
/* jshint node: true */
module.exports = function(environment) {
var ENV = {
modulePrefix: 'huegasm_mobile',
podModulePrefix: 'huegasm_mobile/pods',
environment,
rootURL: '',
locationType: 'hash',
EmberENV: {
FEATURES: {
// Here you can enable experimental features on an ember canary build
// e.g. 'with-controller': true
}
},
APP: {
// Here you can pass flags/options to your application instance
// when it is created
}
};
if (environment === 'development') {
// ENV.APP.LOG_RESOLVER = true;
// ENV.APP.LOG_ACTIVE_GENERATION = true;
// ENV.APP.LOG_TRANSITIONS = true;
// ENV.APP.LOG_TRANSITIONS_INTERNAL = true;
// ENV.APP.LOG_VIEW_LOOKUPS = true;
}
if (environment === 'test') {
// Testem prefers this...
ENV.locationType = 'none';
// keep test console output quieter
ENV.APP.LOG_ACTIVE_GENERATION = false;
ENV.APP.LOG_VIEW_LOOKUPS = false;
ENV.APP.rootElement = '#ember-testing';
}
if (environment === 'production') {
}
return ENV;
};

View file

@ -1,26 +0,0 @@
/* global require, module */
var EmberApp = require('ember-cli/lib/broccoli/ember-app');
var Funnel = require('broccoli-funnel');
module.exports = function(defaults) {
var app = new EmberApp(defaults);
var extraAssets = new Funnel('bower_components/bootstrap-sass/assets/fonts/bootstrap/', {
srcDir: '/',
include: ['**'],
destDir: '/fonts/bootstrap'
});
app.import('vendor/dancer.js');
app.import('vendor/cie-rgb-converter.js');
app.import('bower_components/intro.js/intro.js');
app.import('bower_components/intro.js/introjs.css');
app.import('bower_components/intro.js/themes/introjs-nassim.css');
app.import('bower_components/JavaScript-ID3-Reader/dist/id3-minimized.js');
app.import('bower_components/locallyjs/dist/locally.min.js');
app.import('bower_components/velocity/velocity.js');
app.import('bower_components/perfect-scrollbar/js/perfect-scrollbar.js');
app.import('bower_components/perfect-scrollbar/css/perfect-scrollbar.css');
return app.toTree(extraAssets);
};

View file

@ -1,40 +0,0 @@
<?xml version='1.0' encoding='utf-8'?>
<widget id="com.hoboman313.huegasm" version="1.2.4" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
<name>Huegasm</name>
<content src="index.html" />
<plugin name="cordova-plugin-inappbrowser" spec="~1.6.1" />
<plugin name="cordova-plugin-splashscreen" spec="~4.0.1" />
<plugin name="cordova-plugin-whitelist" spec="~1.3.1" />
<access origin="*" />
<allow-intent href="http://*/*" />
<allow-intent href="https://*/*" />
<allow-intent href="tel:*" />
<allow-intent href="sms:*" />
<allow-intent href="mailto:*" />
<allow-intent href="geo:*" />
<allow-navigation href="http://*/*" />
<allow-navigation href="https://*/*" />
<preference name="ShowSplashScreenSpinner" value="false" />
<engine name="android" spec="~6.1.2" />
<platform name="android">
<allow-intent href="market:*" />
<splash density="port-ldpi" src="res/screen/android/port-ldpi.png" />
<splash density="land-ldpi" src="res/screen/android/land-ldpi.png" />
<splash density="port-mdpi" src="res/screen/android/port-mdpi.png" />
<splash density="land-mdpi" src="res/screen/android/land-mdpi.png" />
<splash density="port-hdpi" src="res/screen/android/port-hdpi.png" />
<splash density="land-hdpi" src="res/screen/android/land-hdpi.png" />
<splash density="port-xhdpi" src="res/screen/android/port-xhdpi.png" />
<splash density="land-xhdpi" src="res/screen/android/land-xhdpi.png" />
<splash density="port-xxhdpi" src="res/screen/android/port-xxhdpi.png" />
<splash density="land-xxhdpi" src="res/screen/android/land-xxhdpi.png" />
<splash density="port-xxxhdpi" src="res/screen/android/port-xxxhdpi.png" />
<splash density="land-xxxhdpi" src="res/screen/android/land-xxxhdpi.png" />
<icon density="ldpi" src="res/icon/android/ldpi.png" />
<icon density="mdpi" src="res/icon/android/mdpi.png" />
<icon density="hdpi" src="res/icon/android/hdpi.png" />
<icon density="xhdpi" src="res/icon/android/xhdpi.png" />
<icon density="xxhdpi" src="res/icon/android/xxhdpi.png" />
<icon density="xxxhdpi" src="res/icon/android/xxxhdpi.png" />
</platform>
</widget>

View file

@ -1,23 +0,0 @@
<!--
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#
-->
# Cordova Hooks
Cordova Hooks represent special scripts which could be added by application and plugin developers or even by your own build system to customize cordova commands. See Hooks Guide for more details: http://cordova.apache.org/docs/en/edge/guide_appdev_hooks_index.md.html#Hooks%20Guide.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

View file

@ -1,599 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 612 759.0723267" enable-background="new 0 0 612 759.0723267" xml:space="preserve">
<g>
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="4.9999762" y1="376.5135803" x2="607.9945679" y2="376.5135803">
<stop offset="0" style="stop-color:#EB2227"/>
<stop offset="0.5" style="stop-color:#FCEE21"/>
<stop offset="1" style="stop-color:#29ABE2"/>
</linearGradient>
<path fill="url(#SVGID_1_)" d="M581.9107056,97.315155c-8.1942749-16.6652756-19.1679688-31.0324631-34.4998779-41.7709007
c-6.6992798-4.692318-13.7386475-8.8071861-21.5976562-11.3221931c-0.203064-0.103054-0.4064941-0.2064056-0.6095581-0.3097572
c-0.9022217-0.3022461-1.8048096-0.6044922-2.7073364-0.9067383c-0.3199463-0.124382-0.6398926-0.2484665-0.9602051-0.3728485
c-2.7091064-0.8133011-5.4181519-1.6263008-8.1281738-2.4398994c-3.1871033-0.812397-6.3742065-1.6244965-9.5613098-2.4365921
c-0.2472534-0.1018524-0.4945068-0.203701-0.7417908-0.3055496c-0.4071045-0.0411606-0.8139038-0.082325-1.2210083-0.1234856
c-0.1523132-0.0823212-0.3043213-0.164341-0.456665-0.2466621c-0.4509583-0.0414619-0.9016113-0.0832214-1.3522949-0.1246834
c-0.2247314-0.0931358-0.4494629-0.1865768-0.6744995-0.280014c-0.4365234-0.0504723-0.8733826-0.1012497-1.3102112-0.1520233
c-0.0955505-0.0441666-0.1914062-0.0883293-0.2869263-0.1324959c-0.5627441-0.0730057-1.1257629-0.1463165-1.6885071-0.2193222
c-0.2845154-0.0832253-0.5687256-0.1664467-0.8529358-0.2496681c-0.4005127-0.0336494-0.8009949-0.0670013-1.2011719-0.1006508
c-0.2295532-0.1291885-0.4458618-0.3349915-0.6904297-0.3767548c-4.5177612-0.7697334-9.0316162-1.5680122-13.5617065-2.2599335
c-3.8597717-0.5894661-7.7391052-1.0518494-11.6094055-1.5704136c-3.6969604-0.5386944-7.3939209-1.0773888-11.0908508-1.6163845
c-3.2835388-0.4055977-6.5671082-0.8117962-9.850647-1.2173958c-0.2000732-0.0486717-0.400177-0.0973434-0.6002808-0.1460152
c-0.1982727-0.0691013-0.3965759-0.1388035-0.5951843-0.2079067c-1.8179626-0.1790638-3.6359558-0.3578262-5.4539185-0.5365906
c-0.3647461-0.0895329-0.7294922-0.1790638-1.0942383-0.2685966c-0.7408752-0.0444641-1.4820862-0.0883293-2.2229614-0.1327953
c-0.3503113-0.0841236-0.7009277-0.1682472-1.051239-0.2523727c-0.7171631-0.0267391-1.4346313-0.0537777-2.1517944-0.0805187
c-0.3755493-0.0943394-0.7510986-0.1883774-1.1269531-0.2824154c-1.0166931-0.0688019-2.0331116-0.1376038-3.0498047-0.2064056
c-0.188385-0.0360527-0.3767395-0.071806-0.5648193-0.1078587c-0.593689-0.0219326-1.1870728-0.0435638-1.780426-0.0654964
c-3.0179443-0.2538738-6.0359192-0.5077477-9.0538635-0.7616234c-0.6862183-0.0760117-1.3721313-0.1523247-2.0580444-0.2286358
c-0.4031677-0.044466-0.8060608-0.088932-1.209259-0.1333981c-1.3742371-0.0865269-2.7481689-0.1727543-4.1221008-0.2589817
c-0.5462036-0.0498734-1.0924072-0.1000481-1.6386108-0.1502209c-2.8674316-0.1243839-5.7345581-0.2487679-8.6016846-0.3731499
c-2.2671509-0.1568317-4.5342712-0.3139629-6.8014221-0.471096c-0.8811951-0.1108627-1.762085-0.2217255-2.6430054-0.3325901
c-3.2829285-0.1333961-6.5655823-0.2664928-9.8482056-0.399889c-2.4612427-0.1559296-4.9221802-0.3115597-7.3830872-0.4674892
c-1.088501-0.114769-2.1767273-0.2295399-3.2652283-0.3440075c-6.036499-0.2929325-12.072998-0.585865-18.1083069-0.8784962
c-1.1966553-0.1126652-2.3936157-0.2250309-3.5903015-0.3373966c-3.1609497-0.1898804-6.3215942-0.3797607-9.4825745-0.5693398
c-0.389679-0.0949402-0.7793579-0.2725029-1.1690063-0.2725029c-7.2818604,0.0012016-14.563385,0.023735-21.8452148,0.0414619
c-11.3543396,0.0006008-22.7089844,0.0012016-34.0633545,0.001503
c-10.8078308,0.2721996-21.6159668,0.5441017-32.4241028,0.8163033c-4.9260559,0.1345978-9.8524323,0.2691975-14.7784882,0.4040947
c-0.6787109-0.0291424-1.3598022-0.1108627-2.0358124-0.0790157c-8.8979187,0.4188175-17.7949371,0.8532581-26.6922607,1.2840939
c-4.1043549,0.2655907-8.2089996,0.5308819-12.3133545,0.7961731c-0.138504,0.0012016-0.2770081,0.0024052-0.4155121,0.0033054
c-1.2291107,0.1367016-2.4582214,0.2731037-3.6876373,0.4098053c-1.5058136,0.1315937-3.0116425,0.2634869-4.5174561,0.3950825
c-0.1358032,0.005106-0.2716064,0.0102139-0.4076996,0.0153217c-4.1247864,0.3662395-8.2498779,0.732481-12.3749542,1.0987206
c-3.2625122,0.2908287-6.5250244,0.5816574-9.7872314,0.8721867c-0.2637939,0.0411606-0.5272827,0.0826206-0.7910614,0.1237812
c-0.8361359,0.0594883-1.6725769,0.1189766-2.5090027,0.1787643c-0.2634888,0.063694-0.5269775,0.127388-0.7907715,0.191082
c-0.5528107,0.0582848-1.1056366,0.116272-1.6584473,0.1745567c-3.7077637,0.4119072-7.423645,0.7616234-11.1203003,1.2555523
c-2.8743286,0.3836651-5.7249451,0.9469967-8.5863647,1.4304085c-0.5576172,0.0321484-1.1149445,0.0645962-1.6725616,0.0967426
c-0.2682953,0.0892315-0.5368958,0.1787643-0.805481,0.2679958c-0.537796,0.0402584-1.075592,0.0805187-1.6133881,0.1210785
c-0.2944336,0.1030521-0.588562,0.2064037-0.8829956,0.3097572c-4.359726,0.8319263-8.7197571,1.6638527-13.0794907,2.4957809
c-0.2718964,0.0102158-0.5435028,0.0204277-0.8151016,0.0306435c-0.2827148,0.1117668-0.5654297,0.2238312-0.847847,0.3358955
c-4.642746,1.067173-9.2854919,2.134346-13.9279404,3.2018204c-8.4133072,2.202549-16.4817047,5.3085289-24.2295303,9.2536469
c-0.2535782,0.0850258-0.5224686,0.1397057-0.758316,0.2598839c-8.7960739,4.478405-16.9825478,9.8827744-24.3566208,16.4459534
c-2.7280235,2.4278755-5.1474915,5.2027702-7.7078667,7.8196297c-1.3369713,1.4445267-2.7577667,2.8205566-3.9976959,4.3441086
c-12.6138,15.4974518-19.3488312,33.4774628-21.2887917,53.1420593c-0.9187546,9.31073-0.3160667,18.7428436,1.6548405,28.0415497
c2.3479614,11.0773468,5.59515,21.8235931,10.6140499,31.9737549c4.0136185,8.1170654,8.2838173,16.1070557,12.4404449,24.1535187
c1.0602646,2.2115631,2.0538292,4.4582672,3.1919098,6.6292725c6.1044006,11.6451721,12.2027931,23.2942505,18.3886185,34.8964691
c3.6533813,6.8530884,7.4648056,13.6217957,11.2053223,20.4283142c0.8382339,1.623291,1.6683578,3.2514038,2.5168076,4.8695984
c5.1129456,9.7499695,10.0552292,19.5293884,13.115242,30.2209473c2.0979919,7.3299255,5.1850433,14.3771057,7.8301468,21.5504761
c0.0679016,0.2686157,0.1358032,0.5372009,0.2040024,0.8060913c0.1123657,0.3572388,0.225029,0.714447,0.3373947,1.0716858
c0.1634445,0.519165,0.3367996,1.035614,0.4885254,1.5581055c3.6305542,12.5281677,7.3166885,25.0404053,10.8586121,37.5938416
c1.3348694,4.7322693,2.3347397,9.5594788,3.4875412,14.3434448c0.1054535,0.4437561,0.210907,0.8875122,0.3163681,1.3315735
c0.0360489,0.377655,0.0721054,0.7553101,0.1081543,1.1332703c0.1087646,0.2854004,0.2172241,0.5705261,0.3259811,0.855957
c-0.0318451,0.1324768-0.011116,0.2559814,0.0621948,0.3710327c0.113266,0.4813232,0.2262344,0.9632263,0.3395004,1.4448242
c0.0249329,0.2025146,0.0501709,0.4049988,0.0754089,0.6075134c0.1072617,0.4533691,0.2142181,0.9070435,0.3214798,1.3606873
c-0.059494,0.1063843-0.0414658,0.197113,0.0540771,0.272522c0.0378571,0.468689,0.0333481,0.9451904,0.1195755,1.4045715
c0.846344,4.5153503,1.7780228,9.015686,2.5501633,13.5436707c1.4460297,8.4836121,2.8779373,16.9711304,4.1689453,25.4790649
c0.8448486,5.5681152,1.458046,11.1722717,2.1253281,16.7662354c0.4909363,4.114563,0.9334869,8.2354431,1.3387756,12.359314
c0.3857727,3.9237976,0.7354889,7.8520813,1.0284271,11.7839661c0.4392395,5.8937988,0.7841492,11.7947998,1.2263947,17.6882935
c0.4539795,6.0500183,0.9818573,12.094635,1.4676666,18.1422729c0.5185699,6.4595032,1.8702698,12.7186584,4.4522705,18.6857605
c0.1234894,0.2827148,0.2466583,0.5654297,0.3701477,0.8481445l-0.0057068,0.0065918
c1.8008575,5.1646118,4.4062958,9.9353638,7.9431152,14.0562134c2.9809875,3.4725342,6.4619293,6.5157471,9.7211304,9.7487793
c0.5017395,0.4485474,0.962616,0.9562988,1.5115356,1.3360596c3.3012543,2.2839966,6.4721375,4.6863403,8.5028381,9.3185425
c-0.2024994,1.5545044-0.2301483,4.0331421-0.8806,6.3363647c-2.0805664,7.3647461-2.6856689,14.800415-1.7813263,22.3851318
c0.261673,2.192627,0.8397369,4.4606323,0.5314789,6.5866089c-0.993866,6.8494873-1.4003601,13.6611328-0.1333923,20.5021973
c0.5275726,2.8482056,1.3703156,5.6615601,1.6298981,8.5305176c0.3668365,4.052063,0.0444641,8.1747437,0.5245667,12.206665
c0.7159576,6.0161133,2.474762,11.7797852,5.6062775,17.0462646c0.3557281,0.7303467,0.6621704,1.489563,1.0743866,2.1863403
c5.5302429,9.3449707,14.1322327,15.9039307,21.4528351,23.6256104
c4.6682739,5.4893799,10.0714417,10.1264648,16.1776581,13.9480591c0.4122009,0.2511597,0.8244019,0.5026855,1.236618,0.7538452
l0.0405579,0.0459595c0.5332794,0.2958984,1.0662689,0.5915527,1.5995636,0.8875122
c1.5839386,0.8944092,3.1816864,1.765686,4.7466888,2.6925659c0.9037323,0.5350952,1.9324493,1.0055542,2.5955353,1.7728882
c2.0685425,2.3927612,3.9898834,4.913147,5.9682922,7.3840332c-0.0077972,0.1625366,0.0682068,0.2496338,0.2286377,0.2616577
l0.1135712,0.1334229c0.103653,0.1084595,0.2076111,0.2172241,0.311264,0.3256836l0.0940399,0.1135254
c0.0973358,0.1063843,0.1949921,0.2127075,0.2926331,0.3187866l0.0787048,0.0925293
c0.1099701,0.1132812,0.219635,0.2262573,0.3292999,0.3392334l0.0699921,0.0705566
c0.1135712,0.116272,0.2268372,0.2322388,0.3404083,0.3485107l0.0558777,0.0621948
c0.1174774,0.1190186,0.2349548,0.2379761,0.3527222,0.3569336l0.0573883,0.0543823
c0.1174622,0.1159668,0.2349396,0.2319336,0.352417,0.3479004l0.0636902,0.0631104
c0.1153717,0.1123657,0.2307434,0.2247314,0.3464203,0.3370972l0.0838165,0.0718384
c0.1090546,0.0988159,0.2184296,0.1976929,0.3274841,0.296814l0.1315918,0.1075439
c0.0952454,0.0907593,0.1904755,0.1814575,0.2854156,0.2722168c0.0162354,0.0823364,0.0661011,0.1240845,0.1499329,0.1253052
c0.0952301,0.0775146,0.1904755,0.1552734,0.2857208,0.2327881c6.710083,6.1113281,14.3761902,10.3809204,23.3546295,12.1213989
c0.2160187,0.026123,0.4317474,0.0523071,0.6474609,0.0784302c0.3289795,0.1246948,0.6576691,0.2493286,0.9863586,0.3740234
c5.8850861,0.940979,11.7701569,1.882019,17.6549225,2.8233032c1.2050781,0.1472168,2.4077454,0.3950806,3.6158447,0.4266357
c10.1558838,0.2661743,20.3129578,0.4926758,30.4691162,0.7306519c8.3409119-0.1339722,16.6815186-0.2683105,25.0223999-0.4025879
c3.4494019-0.2667847,6.8987732-0.5335693,10.348175-0.800415c0.519165-0.1087036,1.0383301-0.2177734,1.5574951-0.3265381
c4.1037598-0.8145142,8.207489-1.6287231,12.311554-2.4429321c3.5590515-1.1635742,7.1184082-2.3272095,10.6777344-3.4905396
c0.1427307-0.0829468,0.2854309-0.1652222,0.4278259-0.2478638l-0.0135193,0.0098877
c3.4124451-1.9230957,6.824585-3.8462524,10.2369995-5.7693481c3.1059875-2.7073364,6.2122803-5.414917,9.3185425-8.1221924
c2.3876343-2.8647461,4.775238-5.7297363,7.2791443-8.7338867c2.3903198-1.3042603,5.0038757-2.7304077,7.6174316-4.1566162
c3.5599365-2.7058105,7.1202087-5.4116211,10.6801453-8.1176758c0.7895813-0.7457275,1.6181946-1.4547729,2.3623962-2.2437134
c2.8569031-3.0287476,5.6266785-6.1422729,8.5412903-9.1142578c4.0178223-4.0974121,7.8031006-8.3565063,10.5046997-13.4715576
c0.1303711-0.2127075,0.2607727-0.4257202,0.3911743-0.6387329c0.1895752-0.3845825,0.3791504-0.769165,0.5684204-1.1536865
c0.4702148-0.8205566,1.0203247-1.6062012,1.3979797-2.4672852c4.2059021-9.5823364,6.7232971-19.5810547,7.3329163-30.043396
c0.0057068-0.1264648,0.0114136-0.2526855,0.0171204-0.3791504c0.0062866-0.2839355,0.0122986-0.5678101,0.0186157-0.8517456
c-0.0003052-0.3989868-0.0003052-0.7979736-0.0006104-1.1969604c-0.0072021-0.4224243-0.0144043-0.845459-0.0216064-1.2681885
c0.8571472-1.7050171,1.7557678-3.3905029,2.5639648-5.1186523c3.7720642-8.0680542,5.5245361-16.5198364,4.8605652-25.4475098
c-0.3331909-4.4802246-0.5383911-8.8925171,0.1499329-13.4529419c0.6885986-4.56073,0.4221191-9.3924561-0.2148132-13.9961548
c-0.9292908-6.71521-1.230011-6.6734009,2.7199097-10.8757324c10.1315308-6.4009399,17.4836731-15.2432861,22.7573547-25.9108276
c0.1676331-0.2938232,0.3512268-0.579834,0.5005188-0.8826904c5.257782-10.6516113,6.0596619-22.2258606,7.0436096-33.7736816
c0.3268738-3.8354492,0.5462036-7.7346191,1.4364014-11.4559021c1.7371826-7.2637939,3.9126892-14.42276,5.9064331-21.6252747
c0.4999084-1.6088867,1.0377197-3.2069397,1.4925842-4.8284302c1.4208069-5.0645752,2.8103333-10.1375427,4.2122192-15.2072144
c0.0991516-0.1601562,0.197998-0.3199768,0.2968445-0.4798279c0.0312195-0.2713013,0.0621948-0.5426025,0.0931396-0.8135986
c0.0937195-0.2601624,0.1880493-0.5203552,0.2817993-0.7802429c0.0510864-0.2592773,0.1021423-0.51828,0.1532288-0.7772522
c0.0856323-0.1604309,0.1715393-0.3205566,0.2574768-0.4807129c0.0441589-0.2760925,0.0883179-0.5522156,0.1325073-0.8280029
c0.0603943-0.1255798,0.1210632-0.2511902,0.1817627-0.3764648c1.8161621-6.3681946,3.6470642-12.7324829,5.4455261-19.1054688
c3.1871033-11.2939453,6.3546753-22.5933228,9.5303345-33.8905945
c10.9544678-29.8664246,21.9086304-59.7331848,32.9472046-89.8297424
c-3.8946533-0.1751709-7.5531616-0.3761597-11.2143555-0.4972534c-7.6369629-0.2523499-15.2753906-0.462677-22.913269-0.690094
c-7.2490845-0.0015259-14.4984741-0.0027161-21.7475586-0.0039062c-4.9293823,0.0005798-9.8590393,0.0014954-14.7887268,0.0020752
c-7.7949829-0.0026855-15.5899963-0.0050964-23.3852844-0.0078125c-3.2844238,0.0003052-6.5694885,0.0009155-9.8539124,0.0012207
c-3.0113525,0.0006104-6.0227051,0.0011902-9.0340271,0.0014954c-6.428894-0.0003052-12.8577576-0.0006104-19.2866516-0.0011902
c-4.6514587,0.0003052-9.3026123,0.0003052-13.954071,0.0005798c-4.1046448,0-8.2093201,0-12.3139648,0
c-3.4202271,0-6.8404846,0-10.2610168,0c-3.4199524,0-6.8399048,0-10.2598572,0
c-6.2918701-0.0005798-12.5837402-0.0014954-18.8759155-0.0021057c-5.0627747,0.0003052-10.125824,0.0009155-15.1889038,0.0015259
c-5.343689-0.0054016-10.6876526-0.0102234-16.0316467-0.015625c-10.5575562,0-21.1148376,0-31.7529297,0
c0.125885,0.8965149,0.1932068,1.575531,0.3190918,2.2437134c4.5910645,24.3653259,9.1779175,48.731842,13.7909241,73.0929871
c1.1801453,6.2314758,2.4461975,12.4467468,3.6729126,18.6695251c0.7808533,0.1060486,1.5617065,0.3043518,2.342865,0.304657
c36.8460388,0.0147095,73.6923523,0.0122986,110.5383911,0.0116882c0.7859802,0,1.5722351,0,2.5765991,0
c-1.2125854,3.1763-2.3368225,6.0803833-3.4307556,8.9958801c-1.3787231,3.6738281-2.7325134,7.3569641-4.0971375,11.0355835
c-0.2616882,1.1122437-0.5233765,2.2241821-0.7850647,3.3361206c-0.0925293,0.1508179-0.1850586,0.3016357-0.2778931,0.4524536
c-0.0444641,0.3971863-0.088623,0.7943726-0.1331177,1.1915588c-0.0898132,0.1493225-0.1793518,0.298645-0.2694702,0.4482727
c-0.0273438,0.3247681-0.0546875,0.6495361-0.0823364,0.9743347c-0.1111755,0.2208252-0.2223206,0.4419556-0.3338013,0.6630554
c-0.0339355,0.3019714-0.0681763,0.6039124-0.1024475,0.9061584c-0.0733032,0.1033325-0.1466064,0.2070007-0.2199097,0.3106384
c-0.0570984,0.3223877-0.1144714,0.6447754-0.1718445,0.9674377c-0.0958557,0.2259216-0.1919861,0.4518738-0.288147,0.6781006
c-0.0600891,0.2785034-0.1204834,0.5570068-0.1805725,0.8355408c-0.0651855,0.1276855-0.1303711,0.2556763-0.1955872,0.3833618
c-0.0654907,0.298645-0.1309814,0.59729-0.1964722,0.8959045c-0.0540771,0.015625-0.1469116,0.0204468-0.1547241,0.0489807
c-0.0246582,0.088623-0.0171204,0.1859741-0.0222473,0.280304c-0.0775146,0.3016663-0.1556396,0.6029968-0.2331543,0.9046326
c-0.0510559,0.0159302-0.1420898,0.025238-0.1459961,0.0489807c-0.0138245,0.0844421,0.0018005,0.1736755,0.006012,0.2613831
c-0.0907288,0.3064575-0.1817627,0.612915-0.2727966,0.9196777c-0.150238,0.3953552-0.3004456,0.7910461-0.4506836,1.1864319
c-1.1969604,3.4283447-2.3936157,6.85672-3.5903015,10.2853699c-0.0769043,0.1255798-0.0823059,0.2544861-0.0162048,0.3860779
c-0.9394836,5.6089783-1.8789673,11.2182312-2.8184509,16.8275146c-0.0381775,1.0906067-0.0766296,2.1815186-0.1150818,3.2721252
c-0.0943298,0.6849976-0.18927,1.3700256-0.2836304,2.0550232c-0.0483704,1.2267151-0.0967407,2.4537048-0.1448059,3.6804199
c-0.0835266,0.5510254-0.1673279,1.1023254-0.2511597,1.6533508c-0.0513916,1.066864-0.1030579,2.133728-0.1544189,3.2006226
c-0.0790405,0.4359436-0.1580505,0.871582-0.2370605,1.3072205c-0.0592041,1.0921021-0.1183777,2.1842346-0.1778564,3.2763367
c-0.0724182,0.4143066-0.1445312,0.8286133-0.2172241,1.2429199c-0.0625,1.2077942-0.1252747,2.415863-0.1877747,3.6236572
c-0.0628052,0.2902222-0.1253052,0.5801392-0.1877747,0.8703613c-0.0667114,1.3754578-0.1333923,2.7511597-0.2001038,4.1268921
c-0.0657959,0.405304-0.1312866,0.8106079-0.1970825,1.2159119c-0.0595093,0.8129883-0.1186829,1.6257019-0.1856689,2.5450439
c-4.6496582,3.4454651-9.2356262,7.0640259-12.6000061,11.9558411l-0.1039429,0.1276855
c-0.1400146,0.1982727-0.2797241,0.3962708-0.4194031,0.594574c-0.1760864,0.1982727-0.3521423,0.3965759-0.5281982,0.5948792
c-0.3406982,0.3479004-0.6813965,0.6958313-1.0220947,1.0437317c-2.2067566,2.1947327-4.4135132,4.3894653-6.6202698,6.5845032
c-4.915863,5.2860107-8.0840149,11.5105896-9.9113159,18.4552917c-0.414917,1.7870483-0.829834,3.5737915-1.2447205,5.3605347
c-0.1195984,0.394165-0.2391663,0.7886353-0.3587341,1.1828613c-0.0231323,0.4277954-0.04599,0.855957-0.0691223,1.2840576
c-0.1138611,0.5167847-0.2280273,1.0338135-0.3421936,1.5509033c-0.1565247,2.3804321-0.4608765,4.6911011-1.7302551,6.826355
c-0.8235168,1.3856812-1.3718262,2.9455566-1.959198,4.460083c-3.4355469,8.8582764-4.5694275,17.9664917-3.0687256,27.3947144
c0.3151855,1.9813843,0.2980652,4.0301514,0.2806396,6.0466919c-0.0414734,4.8095093-0.194397,9.6177979-0.2619934,14.4273071
c-0.0327454,2.3419189,0.2848206,4.7193604-0.0186462,7.0198364c-0.4659729,3.5344238-1.3147278,7.0192261-2.032196,10.519104
c-0.3998718,1.951355-0.8622742,3.8901367-1.2963867,5.8345947c-4.5114746,1.9228516-9.2608643,3.4389038-13.4625549,5.892334
c-3.6071167,2.1063843-6.5887146,5.2841797-9.8470459,7.9881592c-1.8948669,2.4473877-3.7897644,4.8945312-5.8066406,7.4990234
c-3.9460144,0-8.1005554-0.0420532-12.2535706,0.0168457c-2.2262878,0.03125-4.4501648,0.236145-6.6752625,0.3623657
c-0.7399902-0.0577393-1.4793701-0.1481323-2.2205505-0.1682739c-6.5373535-0.1760864-13.0749817-0.3394775-18.6539307-0.4822388
c-4.1680298-4.2947998-7.744812-7.9806519-11.3212891-11.6665039c-4.1427917-3.8345337-9.0174866-6.3912964-14.3206177-8.199646
c-0.1658325-0.0931396-0.3313904-0.1865845-0.4972229-0.2800293c-0.2409668-0.0438843-0.4819031-0.0883179-0.7228699-0.1322021
c-0.1676636-0.0934448-0.3352966-0.1865845-0.502655-0.2800293c-0.2592773-0.0348511-0.5185547-0.0697021-0.777832-0.1045532
c-0.1550293-0.0991211-0.3103638-0.1982422-0.4656982-0.2971191c-0.0865173-0.0778198-0.1874695-0.1246948-0.3022461-0.1412354
c-0.1427002-0.4434204-0.2851257-0.8865967-0.4275208-1.3300171c-0.0219421-0.4990234-0.0438538-0.9981079-0.0657959-1.4971313
c-0.1243896-0.4293213-0.2487793-0.8586426-0.3731384-1.2879639c-0.0063171-0.2653198-0.0126343-0.5305786-0.0186462-0.7962036
c-0.1264954-0.4260254-0.2529602-0.8517456-0.3797607-1.2774658c0.0123291-0.1018677,0.0129395-0.2037354,0.0018005-0.3058472
c0.1168823-0.3100586,0.2337646-0.6204224,0.3506165-0.930481c0.0165405-0.3788452,0.0333557-0.7574463,0.0501709-1.1362915
c0.1225891-0.4335327,0.2451782-0.8670654,0.3674622-1.3005981c0.0183105-0.5092773,0.0369568-1.0184937,0.0549622-1.527771
c0.1201782-0.7081299,0.2400513-1.4162598,0.3599548-2.1244507c-0.0012207-3.2838135-0.0027161-6.5682373-0.0042114-9.8521118
c-0.125-0.6951904-0.2499695-1.3901367-0.3749695-2.085083c0.1370239-0.9343872,0.2740173-1.8690186,0.4107056-2.8037109
c0.1126709-0.3070679,0.225647-0.6138306,0.3385925-0.9208374c0.0246582-0.3734741,0.0492859-0.7466431,0.0739136-1.119812
c0.1180725-0.4307861,0.236145-0.8613281,0.3545227-1.2918701c0.015625-0.3959961,0.03125-0.7919922,0.0471802-1.1879272
c0.1204834-0.5591431,0.2412415-1.1182861,0.36203-1.6776733c0.0237427-0.7433472,0.0474854-1.4863281,0.0711975-2.2293091
c0.0057068-2.4161987,0.0114136-4.8323364,0.0171509-7.2484741c-0.0318604-0.8007202-0.0637207-1.6016846-0.0958557-2.4026489
c-0.1108704-0.454895-0.2220154-0.9100342-0.3328857-1.3649292c-0.0291443-0.4933472-0.0579834-0.9863281-0.0871277-1.4793701
c-0.1117859-0.3112793-0.2238464-0.6225586-0.3356018-0.9337769c-0.5684509-2.1655884-1.1371765-4.3311768-1.7059174-6.4967651
c-0.5501099-1.5220947-0.9767456-3.1035767-1.6788788-4.552063c-1.0695648-2.2076416-1.3576965-4.4197998-1.2372131-6.8897095
c0.5296783-10.8493042-0.9767456-21.3155518-5.9626007-31.1737061c-4.6172028-9.1286621-12.082016-15.8354492-18.929718-23.0881348
c-2.9431305-2.7060852-5.8862762-5.4124756-9.0577545-8.3285828c-0.6618805-8.6022949-1.3507843-17.5521851-2.0393982-26.5020752
c-0.1297913-0.8749084-0.2598877-1.7500916-0.3899841-2.6249695c-0.0150146-0.2235413-0.0297394-0.4467773-0.0447693-0.6702881
c0.0129242-0.1688538,0.0258484-0.3377075,0.0387573-0.5065613c0.0063171-0.3764648,0.012619-0.7528992,0.0192413-1.1290588
c-0.1309967-0.8995361-0.2613983-1.7987671-0.3920898-2.6982727c-0.0216217-0.1893005-0.0432587-0.3788757-0.0648956-0.5681458
c0.1099701-0.1171875,0.11026-0.2346497,0.0009003-0.3521118c0.0201416-0.56604,0.0402679-1.1320801,0.0603943-1.6981201
c-0.1345978-0.7658081-0.2691956-1.5313416-0.4040985-2.296875c-0.0162201-0.1826782-0.0324402-0.3650513-0.0486755-0.547699
c0.0324554-0.0414734,0.0943451-0.0844421,0.0919495-0.1238098c-0.006012-0.0985413-0.040863-0.1955872-0.0643005-0.2932129
c0.0117188-0.4167175,0.0234375-0.8331299,0.0351562-1.2498474c-0.0946503-0.5209656-0.1889801-1.0422363-0.2836304-1.5635071
c-0.0273285-0.7102356-0.0543671-1.4208069-0.0817108-2.1313477c-0.0766144-0.4326477-0.1529236-0.8652649-0.2298431-1.2979126
c-0.0751038-0.2796936-0.1502228-0.5591125-0.2253265-0.8385315c0.1051483-0.109375,0.1138611-0.2259216,0.0258331-0.3497314
c0.0183258-0.280304,0.0366516-0.5603027,0.0546875-0.8406372c-0.0964508-0.4125061-0.1928864-0.824707-0.2896271-1.236908
c-0.0483856-0.6648865-0.0964508-1.3297729-0.1448212-1.9943542c-0.0874329-0.2920227-0.1751556-0.5840454-0.2625885-0.8760681
c-0.0270386-0.5444031-0.053772-1.0891113-0.0805206-1.6338196c-0.0847168-0.2662048-0.1694489-0.532074-0.2541656-0.7982788
c-0.0402679-0.5537109-0.0805206-1.1071472-0.1204834-1.6608582c-0.1051483-0.3863525-0.2106171-0.7727356-0.3157654-1.1590881
c-0.034256-0.5699463-0.0688019-1.1395874-0.1030579-1.7095337c-0.0910339-0.2779236-0.1817627-0.5561218-0.2731018-0.8340454
c-0.0405579-0.558197-0.0814209-1.1161194-0.1222687-1.6743469c-0.0676117-0.1796875-0.1355133-0.3590393-0.2033997-0.5386963
c-0.0637054-0.6372375-0.1270905-1.2747803-0.1904907-1.9120178c0.0177307-0.0615845,0.0697021-0.1445312,0.046875-0.1811829
c-0.0585938-0.0940247-0.1502228-0.1679382-0.2283325-0.2499695l-0.0147247-0.069397
c-0.9953766-6.4243774-1.8314972-12.8778992-3.0179596-19.2668152
c-2.7643738-14.8848572-5.5653992-29.7654724-8.6170044-44.5932617c-1.5650024-7.602417-3.7002563-15.0876465-5.5777283-22.6257629
c-0.0144196-0.1931763,0.0090179-0.3986816-0.0492706-0.5774536c-5.6573334-17.3184204-11.3209839-34.6347656-16.9843445-51.951416
c-0.2166138-0.4963074-0.4329376-0.9923401-0.6495514-1.488678c-0.0201263-0.182373-0.0399628-0.3644409-0.0600891-0.5471191
c-0.1144714-0.2199097-0.229248-0.4398499-0.3437042-0.6597595c-0.0219421-0.1889954-0.0441742-0.377655-0.0664062-0.5666504
c0.0294495-0.054657,0.097641-0.1339722,0.0811157-0.1604309c-0.0612793-0.0991516-0.1505127-0.1808472-0.2292328-0.2691956
c-0.088623-0.3100586-0.1769562-0.6204224-0.2652893-0.9307556l0.0727081-0.0817261l-0.1243896-0.0348511
c-0.0624847-0.1929016-0.1249847-0.3857727-0.1874695-0.5786743c-0.0625-0.1598206-0.1249847-0.3196716-0.1874847-0.4794922
c-0.0901337-0.2932434-0.1805573-0.5864563-0.2706909-0.8796997l0.0429535-0.15802l-0.1688385-0.0778198
c-0.1997986-0.5846558-0.3998871-1.169342-0.5999908-1.7539978c-0.0700073-0.12677-0.1403046-0.2535706-0.2103119-0.3803711
c-0.1829681-0.4085999-0.3659363-0.8171997-0.5489044-1.2254944c-0.6585693-1.4003601-1.2967072-2.8106384-1.9793243-4.1990051
c-4.0866241-8.3114319-8.1834564-16.6180878-12.2767029-24.9259491c-1.1098328-2.2845612-2.2196655-4.5691376-3.3292084-6.8536987
c-0.1108551-0.22052-0.2217255-0.4410553-0.3325806-0.6615753l0.050766-0.1024475l-0.1180725-0.0603943l-0.0399628-0.1249847
c-0.1237793-0.242157-0.2472534-0.4846191-0.371048-0.7267761c-3.3505402-6.9958038-6.6752319-14.003952-10.0618286-20.9820404
c-1.9000092-3.9144745-3.9018555-7.7793732-5.8577423-11.6665039c0.0432587-0.1297913,0.0066071-0.2304382-0.1093597-0.302536
c-0.104248-0.1874847-0.2082062-0.3749542-0.3121643-0.5627289c-2.0586395-4.1193848-4.0677032-8.2648926-6.1867218-12.3530273
c-4.0247345-7.7655487-8.1128616-15.4983521-12.1748505-23.2443695l-0.0360565-0.0024109
c-0.1475143-0.2827148-0.2950363-0.5654297-0.4425507-0.8478394l0.0276413,0.0312347
c-0.1463165-0.2836151-0.2926331-0.5678253-0.4389496-0.8517456l0.0258408,0.0387573
c-0.157135-0.3295898-0.3145676-0.6588745-0.4720001-0.9881592l0.035759-0.1204834l-0.1000519-0.0763092
c-0.1195755-0.210907-0.239151-0.4221191-0.3590317-0.6333313c-2.2154617-4.4231262-4.5496063-8.7918701-6.6097412-13.2861938
c-1.7125244-3.7357178-9.724144-19.2325592-9.724144-19.2325592l57.8896713-7.838562
c4.6048889-0.540802,9.2097778-1.0815964,13.8146667-1.6223907c1.3492889-0.1294937,2.698288-0.2589874,4.0472717-0.388176
c0.4326324-0.0657959,0.864975-0.1315918,1.2973175-0.1973877c0.8075867-0.0543823,1.6151733-0.1087646,2.42276-0.163147
c0.4287415-0.0702972,0.8574677-0.1403046,1.2859039-0.2106094c0.9542084-0.0465698,1.9081116-0.0934372,2.8620148-0.1403046
c0.4239349-0.0748138,0.8478546-0.1496201,1.2714844-0.2241287c1.0785828-0.0525818,2.1571808-0.1048584,3.2357635-0.157135
c0.5612335-0.0841217,1.122757-0.1679459,1.6842804-0.2520676c0.3956909-0.0703049,0.7916718-0.1406097,1.1873627-0.2109146
c0.6826019,0.0270386,1.3652039,0.0540771,2.047821,0.0814209c0.833725-0.0964432,1.66745-0.1925812,2.5014801-0.2887268
c1.217392-0.0357513,2.4347992-0.0715027,3.6524811-0.1069565c1.106842-0.1207809,2.2136688-0.2415543,3.3205109-0.3623352
c1.0830841-0.0087128,2.1658936-0.0174255,3.2489777-0.0258408c1.1149445-0.0997467,2.2301941-0.1991882,3.3454437-0.2986374
c1.481781-0.0324478,2.963562-0.0651932,4.4453583-0.097641c1.113739-0.1054611,2.227478-0.2106171,3.341217-0.3157654
c1.3535004-0.0249405,2.7066956-0.0498734,4.0601959-0.0748138c1.3787231-0.111763,2.7577667-0.223526,4.136795-0.3352966
c1.3576965-0.0207291,2.7154083-0.0414581,4.07341-0.0621872c1.506424-0.1087646,3.0131378-0.2175217,4.5198669-0.3262863
l0.0222321-0.0282364c1.4977112-0.0234375,2.9954071-0.0465698,4.4934235-0.0697021
c1.2831879-0.0958405,2.5663757-0.1913834,3.8498688-0.2872238c1.9979553-0.0381622,3.9956055-0.0763168,5.9935455-0.114769
c0.4113007-0.0003052,0.8229065-0.0009079,1.2342224-0.0012054c2.1003876-0.097641,4.2007904-0.1949844,6.3008881-0.2926331
c7.8803101-0.0384521,15.7606506-0.0772095,23.6409607-0.1159668c19.5137634,0.1201782,39.0278625,0.2403488,58.5458374,0.360527
c2.7436523,0.0829239,5.4873047,0.1658478,8.2309265,0.2487717c4.1578369,0.2259293,8.315979,0.451561,12.4735107,0.6772003
c0.8099976,0.1078568,1.6193848,0.2157135,2.4293823,0.3235703c1.2218933,0.0345535,2.4437866,0.0688019,3.6665955,0.1033554
c0.8322449,0.0994492,1.6644592,0.1991959,2.4969788,0.2986374c1.0906067,0.0315475,2.1815186,0.0627975,3.2721252,0.0943451
c0.8184204,0.1000443,1.6365356,0.2003937,2.4546204,0.3007431c1.119751,0.0327454,2.239502,0.0654907,3.3589478,0.0982437
c0.7946777,0.099144,1.5893555,0.1985931,2.3840332,0.2977371c1.1095276,0.0258408,2.2187805,0.0516739,3.3283081,0.0775146
c0.8039856,0.1033554,1.6079712,0.2067032,2.4119568,0.3103561c1.2399292,0.0375595,2.4801636,0.0748138,3.7203674,0.1123657
c0.6700134,0.0871277,1.3399963,0.1739578,2.0099792,0.2610855c1.3910522,0.0390625,2.7821045,0.0781174,4.1728516,0.1168747
c0.9503174,0.096138,1.9002991,0.1925812,2.8503113,0.2887268c1.2378235,0.0456619,2.475647,0.0910339,3.7134705,0.1366959
c0.5056458,0.0591888,1.0115967,0.1186752,1.5172424,0.1778641c1.4111633,0.0706024,2.8223572,0.1412125,4.2332458,0.2118149
c0.3683472,0.0480728,0.736969,0.096138,1.1053162,0.1442108c1.2693787,0.0967407,2.5384521,0.1940842,3.8075256,0.2908325
c0.3085632,0.0378571,0.6170959,0.0757065,0.925354,0.1135635c0.7240601,0.0093155,1.4484253,0.018631,2.1725159,0.0279465
c3.3418274,0.3854675,6.6836548,0.7709351,10.0254822,1.1564026c2.407135,0.2914276,4.8143005,0.5834579,7.2214355,0.8751907
c0.3226929,0.1000443,0.6453552,0.2003937,0.9680481,0.3007431c3.6984253,0.4116058,7.3974915,0.8232117,11.0959473,1.2348175
c3.2700195,0.4762039,6.5400391,0.9524078,9.8103638,1.4286118c3.8465881,0.5924683,7.6931458,1.1849442,11.5397339,1.7777176
c8.2120056,1.6749649,16.4240112,3.3499374,24.6360168,5.02491c0.5708313,0.2193298,1.1281738,0.4852142,1.714325,0.6504669
c5.6146851,1.5833282,8.6497498,5.4277954,10.5783081,10.8348694c2.0895691,5.8583374,4.9320679,11.4480896,7.4461975,17.1549988
c0.0814209,0.1865692,0.1628418,0.3731537,0.2445679,0.559433l-0.024353,0.1790619l0.1685181,0.0943298
c0.0718384,0.1730652,0.1436157,0.3461151,0.2151489,0.5188751c0.0630493,0.1078491,0.1261597,0.2157135,0.1889648,0.3235779
l0.0285645,0.0492706c0.298645,0.0150146,0.5975342,0.0300446,0.8961792,0.0450592
c2.8202515-0.975235,5.6402588-1.9501801,8.4605103-2.925415c0.2033691-0.1018524,0.4071045-0.2036896,0.6104736-0.305542
l0.1270752,0.0492706l0.1141968-0.0736084c1.0377197-0.4071045,2.0754395-0.8139038,3.112915-1.2207031
c0.1790161-0.0210266,0.3583984-0.0420685,0.5374756-0.0630951c0.8361206-0.2899323,1.671936-0.5798492,2.5081177-0.8697815
c0.2962036-0.0958405,0.5927734-0.1919861,0.8892822-0.2878265l0.1370239,0.0429688l0.0669556-0.1424103
c0.1835938-0.0396576,0.3668823-0.0796204,0.5507202-0.119278c0.1989136-0.107254,0.3980713-0.2145233,0.59729-0.3217773
c0.2061157-0.0330505,0.4122314-0.0661011,0.6182861-0.0991364c0.1349487-0.087738,0.2698364-0.1751709,0.4050293-0.2625885
c5.8967896-2.0547333,11.7990112-4.0944366,17.6897583-6.1672058c11.1503906-3.9234772,22.2955933-7.8616943,33.4399414-11.8029022
c2.40802-0.8517456,4.8025513-1.7413635,7.2199707-2.6195526c-0.578064-3.6488953-1.2297363-7.0484009-1.6377563-10.4770584
C589.0128784,114.8970795,586.1394653,105.9159393,581.9107056,97.315155z"/>
<path fill="#020202" d="M585.5040283,70.8890839c-5.5371704-7.9040565-11.895752-15.1249046-19.2791748-21.4059677
c-7.6116943-6.4751472-15.7001953-12.2400475-24.7017822-16.6259155
c-13.9264526-6.7852058-28.9044189-10.135746-43.9707642-13.0593586
c-9.8352966-1.9087143-19.7433167-3.459301-29.6459045-4.9951658c-6.4411926-0.9992733-12.9292603-1.7002068-19.3999023-2.5041924
c-5.8691711-0.729476-11.7368164-1.4805832-17.6174011-2.105505c-5.2141724-0.5540171-10.440094-1.0224075-15.6708069-1.3934546
c-6.5289307-0.4632835-13.0698547-0.7580185-19.6020813-1.1807418c-7.4738464-0.4834127-14.9425354-1.0407343-22.4154663-1.540071
c-4.2783203-0.2854209-8.5587158-0.5513129-12.8409424-0.7697349c-8.5016479-0.4335394-17.0014648-1.0347261-25.5088196-1.1876516
c-11.4198303-0.2049019-22.8465881-0.1024508-34.2697144-0.0372548
c-12.9815674,0.0742097-25.9631042,0.2301393-38.9443359,0.3950825c-6.1410675,0.0778151-12.2812195,0.256278-18.4216766,0.3941813
c-6.0040436,0.1351995-12.0084076,0.2770085-18.0127563,0.4161139c-0.1367035,0.003305-0.2737122,0.0021033-0.4101105,0.0105157
c-8.2204132,0.5206676-16.4402466,1.0494475-24.6612701,1.5608015c-4.5565186,0.2833176-9.1256561,0.4155126-13.6698456,0.8307252
c-8.6140137,0.7874613-17.2229004,1.648531-25.8167725,2.6303787c-8.6410522,0.9869556-17.3037262,1.9021044-25.8789673,3.3204966
c-8.6653748,1.4334135-17.2460327,3.3962088-25.8450089,5.2147894
c-15.1444321,3.2033234-29.7796173,7.988781-43.1421204,15.8694038
c-12.8024788,7.5501328-24.5630226,16.5075417-34.0792542,28.1539154
C21.9263363,74.84021,14.0877771,87.8409805,10.2847691,102.9160156
c-2.0454159,8.1083527-4.1569295,16.328476-4.8539577,24.6149979c-0.7967749,9.4660568-0.5690389,19.0600967,1.3667154,28.5321732
c2.9864039,14.6135559,6.9856009,28.8776855,13.730547,42.2341766
c6.5610752,12.9929657,13.2837887,25.9054108,20.0143147,38.8118439c4.7800484,9.1668091,9.6724625,18.27565,14.550457,27.3913727
c3.3712692,6.2997131,6.8936653,12.5197754,10.1850166,18.860321c3.7576447,7.2391663,8.0272369,14.3152161,10.8456955,21.9179382
c6.0809708,16.4020691,11.446579,33.0724487,16.9744339,49.6764526
c6.2687454,18.8299561,9.9254303,38.2896423,13.4910889,57.7538452c1.4811859,8.0855408,2.5597763,16.2473755,3.7233963,24.3884888
c0.9911575,6.9327087,1.988327,13.8699341,2.7136002,20.8330078c0.7057419,6.7774048,1.0353241,13.5926514,1.5920486,20.386261
c0.7339783,8.9571228,1.753685,17.8973999,2.2229767,26.8674316c0.3506165,6.7058716,1.4349136,13.2351074,2.8584137,19.7679443
c3.4725189,15.9351807,11.4072189,29.1847534,23.611824,39.9225464c1.831192,1.6110229,3.7819672,3.0858765,5.6417084,4.5947266
c-0.0546722,0.376709-0.0697021,0.652832-0.1363983,0.9157104c-2.0261841,7.9945068-2.7310181,16.0626221-1.6193848,24.2803345
c0.3049469,2.2559814,0.408905,4.6051636,0.1484222,6.8587646c-0.7469025,6.4568481-0.9364777,12.8911133,0.0859222,19.321228
c0.427536,2.6880493,1.5818329,5.3704224,1.4667664,8.0142822c-0.3247833,7.4515991,0.8352356,14.6565552,2.4522095,21.8665771
c2.2737579,10.1387329,6.6734467,19.3400879,13.5181427,26.9954224
c7.7261963,8.6416016,16.0124054,16.828125,24.5269623,24.7020874c4.9134521,4.5439453,10.7474518,8.0960693,16.1941833,12.0576782
c1.3637085,0.9917603,3.0509949,1.6230469,4.2107086,2.7947388c3.7816772,3.8201294,7.1559601,8.0668945,11.1115875,11.6848145
c7.4509888,6.8143921,16.0791168,11.6178589,25.963089,14.1226807c12.3836517,3.1381226,24.899826,5.6582031,37.674942,5.8252563
c17.4302063,0.2280273,34.8685303-0.1646118,52.302948-0.3286743c1.6938782-0.0162354,3.409729-0.164978,5.0744629-0.4741211
c6.1572876-1.1434937,12.3259888-2.2503052,18.4382019-3.605896c18.2074585-4.0391846,33.2076721-13.1669312,44.3754272-28.2915039
c0.4185181-0.5669556,1.0924072-1.001709,1.7305603-1.3417969c7.155365-3.8150024,13.7059021-8.4815063,19.4350586-14.2109375
c4.0487671-4.0484619,7.7646484-8.4280396,11.7851868-12.5059814c5.659729-5.7405396,10.3075867-12.2358398,13.8314819-19.40979
c4.817627-9.8076782,6.5671082-20.5740356,8.7185669-31.1781616c0.4996338-2.4633789,0.1802673-5.2280273,1.177124-7.428772
c2.381012-5.2568359,3.846283-10.7357178,5.1381836-16.3011475c1.3901672-5.989624,2.4425964-11.9924927,1.6257019-18.1975098
c-0.3343811-2.541748-0.697937-5.1922607-0.3382874-7.69104c0.9259644-6.4334106,1.5469666-12.8340454,0.5843506-18.6100464
c4.6130066-4.7674561,9.0892944-8.9832764,13.0758972-13.6196899c4.7626038-5.5386963,8.816803-11.6547852,11.6349487-18.4279785
c5.1958618-12.4870605,7.1838989-25.6620483,7.995697-39.0783386c0.2088013-3.4476013,0.6324158-6.9333191,1.4478149-10.282074
c1.4830017-6.0905762,3.3199158-12.0958252,5.0324402-18.1299438
c5.3406372-18.8167419,10.6765137-37.6343689,16.0454712-56.4427185c2.4329834-8.5235596,4.65625-17.1213379,7.484314-25.5136108
c3.3430176-9.9197388,7.2623291-19.6441956,10.8868408-29.4698792
c6.3805542-17.2965088,12.7628174-34.5927124,19.0652466-51.9177551c1.7597046-4.8380432,2.87854-9.750885,0.894104-14.907074
c-1.8248901-4.7409973-4.8647461-8.1351013-9.7824097-9.5892334c-8.2129517-2.4284973-16.7674561-2.3437805-25.1416626-2.3702087
c-79.6192322-0.2508545-159.2393494-0.2349548-238.8594666-0.2088013
c-4.5024414,0.0014954-8.9390869,0.9145508-12.5972595,4.0046082c-4.249176,3.589386-6.0731812,8.5163574-5.5494995,13.6340942
c0.8220215,8.0380554,2.6616211,15.9745483,4.1286926,23.943512c2.2710571,12.3364868,4.5132446,24.6792908,6.9119873,36.9911499
c2.4621277,12.6369324,4.9561157,25.2720642,7.781189,37.8299866c0.5398865,2.3990479,2.3695984,4.7457886,4.1587219,6.5742798
c3.3908081,3.466217,8.0401611,4.2981567,12.6393433,4.3128662c29.2766724,0.0949402,58.5536499,0.0483704,87.8306274,0.0483704
c0.777832,0,1.5559692,0,2.6796265,0c-1.3432617,4.287323-2.3374329,8.3378906-3.8657837,12.1757507
c-4.9416809,12.4110107-7.3413391,25.3321533-8.2510681,38.5892029c-0.3956909,5.7691345-0.8045959,11.537323-1.2357178,17.3040161
c-0.1138916,1.5229492-0.6279297,2.8473206-1.9303589,3.8378601c-1.1356812,0.8638-2.2121582,1.8300171-3.1954956,2.8644409
c-2.9969177,3.1537476-5.9208374,6.3771973-8.9066467,9.5417786c-1.0773926,1.1419678-2.3545837,2.1063843-3.3610535,3.3030701
c-7.1742859,8.528656-12.5717468,17.9631958-14.7145081,29.055542c-0.7096252,3.6741333-1.3850403,7.3734741-2.4185486,10.9628906
c-1.5406799,5.3511353-3.5834045,10.5608521-5.0489502,15.9297485c-1.8077698,6.6217651-2.5519714,13.3814697-1.6665649,20.2799072
c0.3779602,2.9440308,0.4194336,5.9458008,0.4164124,8.9210815c-0.0042114,4.569397-0.6528625,9.1932373-0.1361084,13.6914673
c0.4428711,3.8562012,0.135498,7.4350586-0.8833008,11.0668335c-9.0015564,4.3044434-17.1279602,9.7905273-23.4135132,17.4536133
c-8.058197,0-15.9147644,0-23.826355,0c-5.5061951-6.8654175-12.5635986-11.8140259-20.0578613-16.138855
c0-4.381958-0.0162354-8.6621094,0.0111084-12.9415894c0.0069275-1.0809937,0.0345459-2.1851196,0.25177-3.2376099
c1.1654358-5.6420288,2.0874939-11.4264526,1.182251-17.0612183c-1.1825562-7.3599854-3.3451233-14.5628052-5.0846863-21.8334961
c-0.125-0.5228271-0.3599548-1.0548706-0.3352966-1.5731201c0.3482056-7.3428345-0.682312-14.5129395-2.1607971-21.7001343
c-2.1833191-10.6155396-6.1260376-20.3841553-13.252243-28.5826416
c-5.8643494-6.7470398-12.1850739-13.0971985-18.2738495-19.6507874c-0.4605713-0.4957275-0.9226532-1.1903381-0.9806366-1.8291016
c-0.6630859-7.322998-1.2216034-14.6556091-1.8612518-21.9807129c-0.6165161-7.0582886-1.0076904-14.1520691-2.0102692-21.1568909
c-1.7530823-12.2481689-3.8835144-24.4428406-5.8829651-36.6552429
c-3.7942963-23.1767883-8.3508148-46.2087402-14.7505646-68.808075
c-4.0397491-14.2653198-8.8032684-28.3317871-13.4775696-42.4096375
c-2.6799469-8.0704956-5.561203-16.0974426-8.8498535-23.9350891c-2.8902588-6.8891602-6.4745483-13.4868927-9.7508698-20.2141113
c-8.0179291-16.4639893-15.9364014-32.9772339-24.0871277-49.375412
c-5.4485321-10.9610596-11.2362671-21.7532806-16.8533478-32.6311188
c-2.7102966-5.2481384-5.3767242-10.5191193-8.2522736-16.1509247c3.7411194-0.7814484,7.2220459-1.7041016,10.7624817-2.2136536
c13.4042664-1.9294586,26.8073273-3.8964539,40.2512512-5.510437c9.0487366-1.0863953,18.1593781-1.6947937,27.2543945-2.3461609
c7.5372009-0.5398865,15.0909424-0.858963,22.6398773-1.2212982c6.4682465-0.3106537,12.9379883-0.62883,19.4107208-0.7907562
c8.7383881-0.2184296,17.4803925-0.3749542,26.2214813-0.4077148c16.6217041-0.0621796,33.2443237-0.0399475,49.866333,0
c3.473114,0.0084229,6.9456482,0.2373505,10.4178467,0.3797607c9.7355652,0.399292,19.4720154,0.7760468,29.2051697,1.2237091
c4.3504333,0.1997986,8.6954346,0.5305786,13.040741,0.8316345c7.1959229,0.4990234,14.3897095,1.0323181,21.5859375,1.5316467
c4.41922,0.3064575,8.8582458,0.4206238,13.2588501,0.8956299c9.4089661,1.0151978,18.8113403,2.114212,28.1932678,3.3544464
c10.5089111,1.3892517,21.0111694,2.8527069,31.4789124,4.5183563c5.643219,0.8977203,11.2083435,2.2857666,15.9496155,3.2733307
c3.5656738,7.8568878,6.5863342,14.8196564,9.8809814,21.6502228c1.7843323,3.6993561,4.6409607,6.6394958,8.4715881,8.2700043
c4.8627014,2.0697479,9.8277893,1.7092133,14.7460632-0.0411682c8.8522339-3.1507416,17.7177124-6.2654419,26.5699463-9.4167786
c14.8839722-5.2992249,29.7664185-10.6035461,44.6392212-15.9340057c3.0570068-1.0957184,6.1452637-2.0409088,8.7711792-4.1887817
c4.5276489-3.7038574,6.1193848-8.7777405,6.100769-14.136734c-0.0167847-4.778244-1.1837158-9.5637054-1.9655151-14.3260345
C603.1114502,101.4510498,595.7578125,85.5260696,585.5040283,70.8890839z M584.5657349,137.5315552
c-11.1443481,3.9412079-22.2895508,7.879425-33.4399414,11.8029022
c-5.8907471,2.0727692-11.7929688,4.1124725-17.6897583,6.1672058c-0.1351929,0.0874176-0.2700806,0.1748505-0.4050293,0.2625885
c-0.2060547,0.0330353-0.4121704,0.0660858-0.6182861,0.0991364c-0.1992188,0.107254-0.3983765,0.2145233-0.59729,0.3217773
c-0.1838379,0.0396576-0.3671265,0.0796204-0.5507202,0.119278l-0.0669556,0.1424103l-0.1370239-0.0429688
c-0.2965088,0.0958405-0.5930786,0.1919861-0.8892822,0.2878265c-0.8361816,0.2899323-1.6719971,0.5798492-2.5081177,0.8697815
c-0.1790771,0.0210266-0.3584595,0.0420685-0.5374756,0.0630951c-1.0374756,0.4067993-2.0751953,0.8135986-3.112915,1.2207031
l-0.1141968,0.0736084l-0.1270752-0.0492706c-0.2033691,0.1018524-0.4071045,0.2036896-0.6104736,0.305542
c-2.8202515,0.975235-5.6402588,1.9501801-8.4605103,2.925415c-0.298645-0.0150146-0.5975342-0.0300446-0.8961792-0.0450592
l-0.0285645-0.0492706c-0.0628052-0.1078644-0.1259155-0.2157288-0.1889648-0.3235779
c-0.0715332-0.17276-0.1433105-0.3458099-0.2151489-0.5188751l-0.1685181-0.0943298l0.024353-0.1790619
c-0.0817261-0.1862793-0.163147-0.3728638-0.2445679-0.559433c-2.5141296-5.7069092-5.3566284-11.2966614-7.4461975-17.1549988
c-1.9285583-5.407074-4.963623-9.2515411-10.5783081-10.8348694c-0.5861511-0.1652527-1.1434937-0.4311371-1.714325-0.6504669
c-8.2120056-1.6749725-16.4240112-3.3499451-24.6360168-5.02491c-3.8465881-0.5927734-7.6931458-1.1852493-11.5397339-1.7777176
c-3.2703247-0.4762039-6.5403442-0.9524078-9.8103638-1.4286118c-3.6984558-0.4116058-7.397522-0.8232117-11.0959473-1.2348175
c-0.3226929-0.1003494-0.6453552-0.2006989-0.9680481-0.3007431c-2.407135-0.2917328-4.8143005-0.5837631-7.2214355-0.8751907
c-3.3418274-0.3854675-6.6836548-0.7709351-10.0254822-1.1564026c-0.7240906-0.0093155-1.4484558-0.018631-2.1725159-0.0279465
c-0.3082581-0.0378571-0.6167908-0.0757065-0.925354-0.1135635c-1.2690735-0.0967484-2.538147-0.1940918-3.8075256-0.2908325
c-0.3683472-0.0480728-0.736969-0.096138-1.1053162-0.1442108c-1.4108887-0.0706024-2.8220825-0.1412125-4.2332458-0.2118149
c-0.5056458-0.0591888-1.0115967-0.1186752-1.5172424-0.1778641c-1.2378235-0.0456619-2.475647-0.0910339-3.7134705-0.1366959
c-0.9500122-0.0961456-1.8999939-0.1925888-2.8503113-0.2887268c-1.3907471-0.0387573-2.7817993-0.0778122-4.1728516-0.1168747
c-0.6699829-0.0871277-1.3399658-0.1739578-2.0099792-0.2610855c-1.2402039-0.0375519-2.4804382-0.0748062-3.7203674-0.1123657
c-0.8039856-0.103653-1.6079712-0.2070007-2.4119568-0.3103561c-1.1095276-0.0258408-2.2187805-0.0516739-3.3283081-0.0775146
c-0.7946777-0.099144-1.5893555-0.1985931-2.3840332-0.2977371c-1.1194458-0.032753-2.2391968-0.0654984-3.3589478-0.0982437
c-0.8180847-0.1003494-1.6362-0.2006989-2.4546204-0.3007431c-1.0906067-0.0315475-2.1815186-0.0627975-3.2721252-0.0943451
c-0.8325195-0.0994415-1.6647339-0.1991882-2.4969788-0.2986374c-1.2228088-0.0345535-2.4447021-0.0688019-3.6665955-0.1033554
c-0.8099976-0.1078568-1.6193848-0.2157135-2.4293823-0.3235703c-4.1575317-0.2256393-8.3156738-0.4512711-12.4735107-0.6772003
c-2.7436218-0.0829239-5.4872742-0.1658478-8.2309265-0.2487717c-19.5179749-0.1201782-39.032074-0.2403488-58.5458374-0.360527
c-7.8803101,0.0387573-15.7606506,0.0775146-23.6409607,0.1159668c-2.1000977,0.0976486-4.2005005,0.1949921-6.3008881,0.2926331
c-0.4113159,0.0002975-0.8229218,0.0009003-1.2342224,0.0012054c-1.9979401,0.0384521-3.9955902,0.0766068-5.9935455,0.114769
c-1.283493,0.0958405-2.5666809,0.1913834-3.8498688,0.2872238c-1.4980164,0.0231323-2.9957123,0.0462646-4.4934235,0.0697021
l-0.0222321,0.0282364c-1.5067291,0.1087646-3.013443,0.2175217-4.5198669,0.3262863
c-1.3580017,0.0207291-2.7157135,0.0414581-4.07341,0.0621872c-1.3790283,0.1117706-2.7580719,0.2235336-4.136795,0.3352966
c-1.3535004,0.0249405-2.7066956,0.0498734-4.0601959,0.0748138c-1.113739,0.1051483-2.227478,0.2103043-3.341217,0.3157654
c-1.4817963,0.0324478-2.9635773,0.0651932-4.4453583,0.097641c-1.1152496,0.0994492-2.2304993,0.1988907-3.3454437,0.2986374
c-1.0830841,0.0084152-2.1658936,0.017128-3.2489777,0.0258408c-1.106842,0.1207809-2.2136688,0.2415543-3.3205109,0.3623352
c-1.2176819,0.0354538-2.4350891,0.0712051-3.6524811,0.1069565c-0.8340302,0.0961456-1.6677551,0.1922836-2.5014801,0.2887268
c-0.6826172-0.0273438-1.3652191-0.0543823-2.047821-0.0814209c-0.3956909,0.0703049-0.7916718,0.1406097-1.1873627,0.2109146
c-0.5615234,0.0841217-1.1230469,0.1679459-1.6842804,0.2520676c-1.0785828,0.0522766-2.1571808,0.1045532-3.2357635,0.157135
c-0.4236298,0.0745087-0.8475494,0.1493149-1.2714844,0.2241287c-0.9539032,0.0468674-1.9078064,0.0937347-2.8620148,0.1403046
c-0.4284363,0.0703049-0.8571625,0.1403122-1.2859039,0.2106094c-0.8075867,0.0543823-1.6151733,0.1087646-2.42276,0.163147
c-0.4323425,0.0657959-0.8646851,0.1315918-1.2973175,0.1973877c-1.3489838,0.1291885-2.6979828,0.2586823-4.0472717,0.388176
c-4.6048889,0.5407944-9.2097778,1.0815887-13.8146667,1.6223907l-57.8896713,7.838562
c0,0,8.0116196,15.4968414,9.724144,19.2325592c2.0601349,4.4943237,4.3942795,8.8630676,6.6097412,13.2861938
c0.1198807,0.2112122,0.2394562,0.4224243,0.3590317,0.6333313l0.1000519,0.0763092l-0.035759,0.1204834
c0.1574326,0.3292847,0.3148651,0.6585693,0.4720001,0.9881592l-0.0258408-0.0387573
c0.1463165,0.2839203,0.2926331,0.5681305,0.4389496,0.8517456l-0.0276413-0.0312347
c0.1475143,0.2824097,0.2950363,0.5651245,0.4425507,0.8478394l0.0360565,0.0024109
c4.0619888,7.7460175,8.150116,15.4788208,12.1748505,23.2443695c2.1190186,4.0881348,4.1280823,8.2336426,6.1867218,12.3530273
c0.1039581,0.1877747,0.2079163,0.3752441,0.3121643,0.5627289c0.1159668,0.0720978,0.1526184,0.1727448,0.1093597,0.302536
c1.9558868,3.8871307,3.9577332,7.7520294,5.8577423,11.6665039c3.3865967,6.9780884,6.7112885,13.9862366,10.0618286,20.9820404
c0.1237946,0.242157,0.2472687,0.4846191,0.371048,0.7267761l0.0399628,0.1249847l0.1180725,0.0603943l-0.050766,0.1024475
c0.1108551,0.22052,0.2217255,0.4410553,0.3325806,0.6615753c1.1095428,2.2845612,2.2193756,4.5691376,3.3292084,6.8536987
c4.0932465,8.3078613,8.1900787,16.6145172,12.2767029,24.9259491c0.6826172,1.3883667,1.320755,2.798645,1.9793243,4.1990051
c0.1829681,0.4082947,0.3659363,0.8168945,0.5489044,1.2254944c0.0700073,0.1268005,0.1403046,0.2536011,0.2103119,0.3803711
c0.2001038,0.5846558,0.4001923,1.169342,0.5999908,1.7539978l0.1688385,0.0778198l-0.0429535,0.15802
c0.0901337,0.2932434,0.1805573,0.5864563,0.2706909,0.8796997c0.0625,0.1598206,0.1249847,0.3196716,0.1874847,0.4794922
c0.0624847,0.1929016,0.1249847,0.3857727,0.1874695,0.5786743l0.1243896,0.0348511l-0.0727081,0.0817261
c0.0883331,0.3103333,0.1766663,0.620697,0.2652893,0.9307556c0.0787201,0.0883484,0.1679535,0.1700439,0.2292328,0.2691956
c0.0165253,0.0264587-0.0516663,0.1057739-0.0811157,0.1604309c0.0222321,0.1889954,0.0444641,0.377655,0.0664062,0.5666504
c0.1144562,0.2199097,0.2292328,0.4398499,0.3437042,0.6597595c0.0201263,0.1826782,0.0399628,0.3647461,0.0600891,0.5471191
c0.2166138,0.4963379,0.4329376,0.9923706,0.6495514,1.488678c5.6633606,17.3166504,11.3270111,34.6329956,16.9843445,51.951416
c0.0582886,0.178772,0.0348511,0.3842773,0.0492706,0.5774536c1.8774719,7.5381165,4.0127258,15.0233459,5.5777283,22.6257629
c3.0516052,14.8277893,5.8526306,29.7084045,8.6170044,44.5932617c1.1864624,6.388916,2.022583,12.8424377,3.0179596,19.2668152
l0.0147247,0.069397c0.0781097,0.0820312,0.1697388,0.1559448,0.2283325,0.2499695
c0.0228271,0.0366516-0.0291443,0.1195984-0.046875,0.1811829c0.0634003,0.6372375,0.1267853,1.2747803,0.1904907,1.9120178
c0.0678864,0.179657,0.135788,0.3590088,0.2033997,0.5386963c0.0408478,0.5582275,0.0817108,1.1161499,0.1222687,1.6743469
c0.0913391,0.2779236,0.1820679,0.5561218,0.2731018,0.8340454c0.034256,0.5699463,0.0688019,1.1395874,0.1030579,1.7095337
c0.1051483,0.3863525,0.2106171,0.7727356,0.3157654,1.1590881c0.0399628,0.5537109,0.0802155,1.1071472,0.1204834,1.6608582
c0.0847168,0.2662048,0.1694489,0.532074,0.2541656,0.7982788c0.0267487,0.5447083,0.0534821,1.0894165,0.0805206,1.6338196
c0.0874329,0.2920227,0.1751556,0.5840454,0.2625885,0.8760681c0.0483704,0.6645813,0.0964355,1.3294678,0.1448212,1.9943542
c0.0967407,0.4122009,0.1931763,0.8244019,0.2896271,1.236908c-0.0180359,0.2803345-0.0363617,0.5603333-0.0546875,0.8406372
c0.088028,0.1238098,0.0793152,0.2403564-0.0258331,0.3497314c0.0751038,0.2794189,0.1502228,0.5588379,0.2253265,0.8385315
c0.0769196,0.4326477,0.1532288,0.8652649,0.2298431,1.2979126c0.0273438,0.7105408,0.0543823,1.4211121,0.0817108,2.1313477
c0.0946503,0.5212708,0.1889801,1.0425415,0.2836304,1.5635071c-0.0117188,0.4167175-0.0234375,0.8331299-0.0351562,1.2498474
c0.0234375,0.0976257,0.0582886,0.1946716,0.0643005,0.2932129c0.0023956,0.0393677-0.059494,0.0823364-0.0919495,0.1238098
c0.0162354,0.1826477,0.0324554,0.3650208,0.0486755,0.547699c0.134903,0.7655334,0.2695007,1.5310669,0.4040985,2.296875
c-0.0201263,0.56604-0.0402527,1.1320801-0.0603943,1.6981201c0.1093597,0.1174622,0.1090698,0.2349243-0.0009003,0.3521118
c0.021637,0.18927,0.0432739,0.3788452,0.0648956,0.5681458c0.1306915,0.8995056,0.2610931,1.7987366,0.3920898,2.6982727
c-0.0066223,0.3761597-0.0129242,0.752594-0.0192413,1.1290588c-0.0129089,0.1688538-0.0258331,0.3377075-0.0387573,0.5065613
c0.0150299,0.2235107,0.0297546,0.4467468,0.0447693,0.6702881c0.1300964,0.8748779,0.2601929,1.750061,0.3899841,2.6249695
c0.6886139,8.9498901,1.3775177,17.8997803,2.0393982,26.5020752c3.1714783,2.9161072,6.114624,5.6224976,9.0577545,8.3285828
c6.847702,7.2526855,14.3125153,13.9594727,18.929718,23.0881348c4.9858551,9.8581543,6.4922791,20.3244019,5.9626007,31.1737061
c-0.1204834,2.4699097,0.1676483,4.6820679,1.2372131,6.8897095c0.7021332,1.4484863,1.1287689,3.0299683,1.6788788,4.552063
c0.5687408,2.1655884,1.1374664,4.3311768,1.7059174,6.4967651c0.1117554,0.3112183,0.2238159,0.6224976,0.3356018,0.9337769
c0.0291443,0.493042,0.0579834,0.9860229,0.0871277,1.4793701c0.1108704,0.454895,0.2220154,0.9100342,0.3328857,1.3649292
c0.032135,0.8009644,0.0639954,1.6019287,0.0958557,2.4026489c-0.0057373,2.4161377-0.0114441,4.8322754-0.0171509,7.2484741
c-0.0237122,0.742981-0.0474548,1.4859619-0.0711975,2.2293091c-0.1207886,0.5593872-0.2415466,1.1185303-0.36203,1.6776733
c-0.0159302,0.3959351-0.0315552,0.7919312-0.0471802,1.1879272c-0.1183777,0.430542-0.2364502,0.861084-0.3545227,1.2918701
c-0.0246277,0.3731689-0.0492554,0.7463379-0.0739136,1.119812c-0.1129456,0.3070068-0.2259216,0.6137695-0.3385925,0.9208374
c-0.1366882,0.9346924-0.2736816,1.8693237-0.4107056,2.8037109c0.125,0.6949463,0.2499695,1.3898926,0.3749695,2.085083
c0.0014954,3.2838745,0.0029907,6.5682983,0.0042114,9.8521118c-0.1199036,0.7081909-0.2397766,1.4163208-0.3599548,2.1244507
c-0.0180054,0.5092773-0.0366516,1.0184937-0.0549622,1.527771c-0.1222839,0.4335327-0.244873,0.8670654-0.3674622,1.3005981
c-0.0168152,0.3788452-0.0336304,0.7574463-0.0501709,1.1362915c-0.1168518,0.3100586-0.2337341,0.6204224-0.3506165,0.930481
c0.0111389,0.1021118,0.0105286,0.2039795-0.0018005,0.3058472c0.1268005,0.4257202,0.2532654,0.8514404,0.3797607,1.2774658
c0.006012,0.265625,0.0123291,0.5308838,0.0186462,0.7962036c0.1243591,0.4293213,0.2487488,0.8586426,0.3731384,1.2879639
c0.0219421,0.4990234,0.0438538,0.9981079,0.0657959,1.4971313c0.142395,0.4434204,0.2848206,0.8865967,0.4275208,1.3300171
c0.1147766,0.0165405,0.2157288,0.0634155,0.3022461,0.1412354c0.1553345,0.098877,0.3106689,0.197998,0.4656982,0.2971191
c0.2592773,0.0348511,0.5185547,0.0697021,0.777832,0.1045532c0.1673584,0.0934448,0.3349915,0.1865845,0.502655,0.2800293
c0.2409668,0.0438843,0.4819031,0.0883179,0.7228699,0.1322021c0.1658325,0.0934448,0.3313904,0.1868896,0.4972229,0.2800293
c5.3031311,1.8083496,10.1778259,4.3651123,14.3206177,8.199646c3.5764771,3.6858521,7.1532593,7.3717041,11.3212891,11.6665039
c5.578949,0.1427612,12.1165771,0.3061523,18.6539307,0.4822388c0.7411804,0.0201416,1.4805603,0.1105347,2.2205505,0.1682739
c2.2250977-0.1262207,4.4489746-0.3311157,6.6752625-0.3623657c4.1530151-0.0588989,8.3075562-0.0168457,12.2535706-0.0168457
c2.0168762-2.6044922,3.9117737-5.0516357,5.8066406-7.4990234c3.2583313-2.7039795,6.2399292-5.8817749,9.8470459-7.9881592
c4.2016907-2.4534302,8.9510803-3.9694824,13.4625549-5.892334c0.4341125-1.944458,0.8965149-3.8832397,1.2963867-5.8345947
c0.7174683-3.4998779,1.5662231-6.9846802,2.032196-10.519104c0.3034668-2.3004761-0.0140991-4.6779175,0.0186462-7.0198364
c0.0675964-4.8095093,0.22052-9.6177979,0.2619934-14.4273071c0.0174255-2.0165405,0.0345459-4.0653076-0.2806396-6.0466919
c-1.5007019-9.4282227-0.3668213-18.536438,3.0687256-27.3947144c0.5873718-1.5145264,1.1356812-3.0744019,1.959198-4.460083
c1.2693787-2.1352539,1.5737305-4.4459229,1.7302551-6.826355c0.1141663-0.5170898,0.2283325-1.0341187,0.3421936-1.5509033
c0.0231323-0.4281006,0.04599-0.8562622,0.0691223-1.2840576c0.1195679-0.3942261,0.2391357-0.7886963,0.3587341-1.1828613
c0.4148865-1.7867432,0.8298035-3.5734863,1.2447205-5.3605347c1.827301-6.9447021,4.9954529-13.169281,9.9113159-18.4552917
c2.2067566-2.1950378,4.4135132-4.3897705,6.6202698-6.5845032c0.3406982-0.3479004,0.6813965-0.6958313,1.0220947-1.0437317
c0.1760559-0.1983032,0.3521118-0.3966064,0.5281982-0.5948792c0.139679-0.1983032,0.2793884-0.3963013,0.4194031-0.594574
l0.1039429-0.1276855c3.3643799-4.8918152,7.9503479-8.510376,12.6000061-11.9558411
c0.0669861-0.919342,0.1261597-1.7320557,0.1856689-2.5450439c0.0657959-0.405304,0.1312866-0.8106079,0.1970825-1.2159119
c0.0667114-1.3757324,0.1333923-2.7514343,0.2001038-4.1268921c0.0624695-0.2902222,0.1249695-0.5801392,0.1877747-0.8703613
c0.0625-1.2077942,0.1252747-2.415863,0.1877747-3.6236572c0.0726929-0.4143066,0.1448059-0.8286133,0.2172241-1.2429199
c0.0594788-1.0921021,0.1186523-2.1842346,0.1778564-3.2763367c0.07901-0.4356384,0.15802-0.8712769,0.2370605-1.3072205
c0.0513611-1.0668945,0.1030273-2.1337585,0.1544189-3.2006226c0.0838318-0.5510254,0.1676331-1.1023254,0.2511597-1.6533508
c0.0480652-1.2267151,0.0964355-2.4537048,0.1448059-3.6804199c0.0943604-0.6849976,0.1893005-1.3700256,0.2836304-2.0550232
c0.0384521-1.0906067,0.0769043-2.1815186,0.1150818-3.2721252c0.9394836-5.6092834,1.8789673-11.2185364,2.8184509-16.8275146
c-0.0661011-0.1315918-0.0606995-0.260498,0.0162048-0.3860779c1.1966858-3.4286499,2.3933411-6.8570251,3.5903015-10.2853699
c0.150238-0.3953857,0.3004456-0.7910767,0.4506836-1.1864319c0.0910339-0.3067627,0.1820679-0.6132202,0.2727966-0.9196777
c-0.0042114-0.0877075-0.0198364-0.1769409-0.006012-0.2613831c0.0039062-0.0237427,0.0949402-0.0330505,0.1459961-0.0489807
c0.0775146-0.3016357,0.1556396-0.6029663,0.2331543-0.9046326c0.005127-0.0943298-0.0024109-0.1916809,0.0222473-0.280304
c0.0078125-0.0285339,0.100647-0.0333557,0.1547241-0.0489807c0.0654907-0.2986145,0.1309814-0.5972595,0.1964722-0.8959045
c0.0652161-0.1276855,0.1304016-0.2556763,0.1955872-0.3833618c0.0600891-0.2785339,0.1204834-0.5570374,0.1805725-0.8355408
c0.0961609-0.2262268,0.1922913-0.452179,0.288147-0.6781006c0.057373-0.3226624,0.1147461-0.64505,0.1718445-0.9674377
c0.0733032-0.1036377,0.1466064-0.2073059,0.2199097-0.3106384c0.0342712-0.3022461,0.068512-0.604187,0.1024475-0.9061584
c0.1114807-0.2210999,0.2226257-0.4422302,0.3338013-0.6630554c0.0276489-0.3247986,0.0549927-0.6495667,0.0823364-0.9743347
c0.0901184-0.1496277,0.179657-0.2989502,0.2694702-0.4482727c0.0444946-0.3971863,0.0886536-0.7943726,0.1331177-1.1915588
c0.0928345-0.1508179,0.1853638-0.3016357,0.2778931-0.4524536c0.2616882-1.1119385,0.5233765-2.223877,0.7850647-3.3361206
c1.364624-3.6786194,2.7184143-7.3617554,4.0971375-11.0355835c1.0939331-2.9154968,2.2181702-5.8195801,3.4307556-8.9958801
c-1.004364,0-1.7906189,0-2.5765991,0c-36.8460388,0.0006104-73.6923523,0.0030212-110.5383911-0.0116882
c-0.7811584-0.0003052-1.5620117-0.1986084-2.342865-0.304657c-1.2267151-6.2227783-2.4927673-12.4380493-3.6729126-18.6695251
c-4.6130066-24.361145-9.1998596-48.7276611-13.7909241-73.0929871c-0.125885-0.6681824-0.1932068-1.3471985-0.3190918-2.2437134
c10.638092,0,21.1953735,0,31.7529297,0c5.3439941,0.0054016,10.6879578,0.0102234,16.0316467,0.015625
c5.0630798-0.0006104,10.1261292-0.0012207,15.1889038-0.0015259c6.2921753,0.0006104,12.5840454,0.0015259,18.8759155,0.0021057
c3.4199524,0,6.8399048,0,10.2598572,0c3.4205322,0,6.8407898,0,10.2610168,0c4.1046448,0,8.2093201,0,12.3139648,0
c4.6514587-0.0002747,9.3026123-0.0002747,13.954071-0.0005798c6.428894,0.0005798,12.8577576,0.000885,19.2866516,0.0011902
c3.011322-0.0003052,6.0226746-0.000885,9.0340271-0.0014954c3.2844238-0.0003052,6.5694885-0.0009155,9.8539124-0.0012207
c7.7952881,0.0027161,15.5903015,0.005127,23.3852844,0.0078125c4.9296875-0.0005798,9.8593445-0.0014954,14.7887268-0.0020752
c7.2490845,0.0011902,14.4984741,0.0023804,21.7475586,0.0039062c7.6378784,0.227417,15.2763062,0.4377441,22.913269,0.690094
c3.6611938,0.1210938,7.3197021,0.3220825,11.2143555,0.4972534
c-11.0385742,30.0965576-21.9927368,59.9633179-32.9472046,89.8297424
c-3.1756592,11.2972717-6.3432312,22.5966492-9.5303345,33.8905945c-1.7984619,6.3729858-3.629364,12.7372742-5.4455261,19.1054688
c-0.0606995,0.1252747-0.1213684,0.250885-0.1817627,0.3764648c-0.0441895,0.2757874-0.0883484,0.5519104-0.1325073,0.8280029
c-0.0859375,0.1601562-0.1718445,0.320282-0.2574768,0.4807129c-0.0510864,0.2589722-0.1021423,0.5179749-0.1532288,0.7772522
c-0.09375,0.2598877-0.1880798,0.5200806-0.2817993,0.7802429c-0.0309448,0.2709961-0.0619202,0.5422974-0.0931396,0.8135986
c-0.0988464,0.1598511-0.1976929,0.3196716-0.2968445,0.4798279c-1.401886,5.0696716-2.7914124,10.1426392-4.2122192,15.2072144
c-0.4548645,1.6214905-0.9926758,3.2195435-1.4925842,4.8284302c-1.9937439,7.2025146-4.1692505,14.3614807-5.9064331,21.6252747
c-0.8901978,3.721283-1.1095276,7.6204529-1.4364014,11.4559021c-0.9839478,11.547821-1.7858276,23.1220703-7.0436096,33.7736816
c-0.149292,0.3028564-0.3328857,0.5888672-0.5005188,0.8826904c-5.2736816,10.6675415-12.625824,19.5098877-22.7573547,25.9108276
c-3.9499207,4.2023315-3.6492004,4.1605225-2.7199097,10.8757324c0.6369324,4.6036987,0.9034119,9.4354248,0.2148132,13.9961548
c-0.688324,4.5604248-0.4831238,8.9727173-0.1499329,13.4529419c0.6639709,8.9276733-1.088501,17.3794556-4.8605652,25.4475098
c-0.808197,1.7281494-1.7068176,3.4136353-2.5639648,5.1186523c0.0072021,0.4227295,0.0144043,0.8457642,0.0216064,1.2681885
c0.0003052,0.3989868,0.0003052,0.7979736,0.0006104,1.1969604c-0.0063171,0.2839355-0.0123291,0.5678101-0.0186157,0.8517456
c-0.0057068,0.1264648-0.0114136,0.2526855-0.0171204,0.3791504c-0.6096191,10.4623413-3.1270142,20.4610596-7.3329163,30.043396
c-0.377655,0.861084-0.9277649,1.6467285-1.3979797,2.4672852c-0.18927,0.3845215-0.3788452,0.769104-0.5684204,1.1536865
c-0.1304016,0.2130127-0.2608032,0.4260254-0.3911743,0.6387329c-2.7015991,5.1150513-6.4868774,9.3741455-10.5046997,13.4715576
c-2.9146118,2.9719849-5.6843872,6.0855103-8.5412903,9.1142578c-0.7442017,0.7889404-1.5728149,1.4979858-2.3623962,2.2437134
c-3.5599365,2.7060547-7.1202087,5.4118652-10.6801453,8.1176758c-2.6135559,1.4262085-5.2271118,2.852356-7.6174316,4.1566162
c-2.5039062,3.0041504-4.89151,5.8691406-7.2791443,8.7338867c-3.1062622,2.7072754-6.2125549,5.414856-9.3185425,8.1221924
c-3.4124146,1.9230957-6.8245544,3.8462524-10.2369995,5.7693481l0.0135193-0.0098877
c-0.142395,0.0826416-0.2850952,0.164917-0.4278259,0.2478638c-3.5593262,1.1633301-7.1186829,2.3269653-10.6777344,3.4905396
c-4.1040649,0.814209-8.2077942,1.628418-12.311554,2.4429321c-0.519165,0.1087646-1.0383301,0.2178345-1.5574951,0.3265381
c-3.4494019,0.2668457-6.8987732,0.5336304-10.348175,0.800415c-8.3408813,0.1342773-16.681488,0.2686157-25.0223999,0.4025879
c-10.1561584-0.2379761-20.3132324-0.4644775-30.4691162-0.7306519c-1.2080994-0.0315552-2.4107666-0.2794189-3.6158447-0.4266357
c-5.8847656-0.9412842-11.7698364-1.8823242-17.6549225-2.8233032c-0.3286896-0.1246948-0.6573792-0.2493286-0.9863586-0.3740234
c-0.2157135-0.026123-0.4314423-0.0523071-0.6474609-0.0784302c-8.9784393-1.7404785-16.6445465-6.0100708-23.3546295-12.1213989
c-0.0952454-0.0775146-0.1904907-0.1552734-0.2857208-0.2327881c-0.0838318-0.0012207-0.1336975-0.0429688-0.1499329-0.1253052
c-0.0949402-0.0907593-0.1901703-0.1814575-0.2854156-0.2722168l-0.1315918-0.1075439
c-0.1090546-0.0991211-0.2184296-0.197998-0.3274841-0.296814l-0.0838165-0.0718384
c-0.1156769-0.1123657-0.2310486-0.2247314-0.3464203-0.3370972l-0.0636902-0.0631104
c-0.1174774-0.1159668-0.2349548-0.2319336-0.352417-0.3479004l-0.0573883-0.0543823
c-0.1177673-0.1189575-0.2352448-0.237915-0.3527222-0.3569336l-0.0558777-0.0621948
c-0.1135712-0.116272-0.2268372-0.2322388-0.3404083-0.3485107l-0.0699921-0.0705566
c-0.1096649-0.1129761-0.2193298-0.2259521-0.3292999-0.3392334l-0.0787048-0.0925293
c-0.097641-0.1060791-0.1952972-0.2124023-0.2926331-0.3187866l-0.0940399-0.1135254
c-0.103653-0.1084595-0.2076111-0.2172241-0.311264-0.3256836l-0.1135712-0.1334229
c-0.1604309-0.0120239-0.2364349-0.0991211-0.2286377-0.2616577c-1.9784088-2.4708862-3.8997498-4.991272-5.9682922-7.3840332
c-0.6630859-0.767334-1.691803-1.237793-2.5955353-1.7728882c-1.5650024-0.9268799-3.1627502-1.7981567-4.7466888-2.6925659
c-0.5332947-0.2959595-1.0662842-0.5916138-1.5995636-0.8875122l-0.0405579-0.0459595
c-0.4122162-0.2511597-0.8244171-0.5026855-1.236618-0.7538452c-6.1062164-3.8215942-11.5093842-8.4586792-16.1776581-13.9480591
c-7.3206024-7.7216797-15.9225922-14.2806396-21.4528351-23.6256104c-0.4122162-0.6967773-0.7186584-1.4559937-1.0743866-2.1863403
c-3.1315155-5.2664795-4.8903198-11.0301514-5.6062775-17.0462646c-0.4801025-4.0319214-0.1577301-8.1546021-0.5245667-12.206665
c-0.2595825-2.8689575-1.1023254-5.682312-1.6298981-8.5305176c-1.2669678-6.8410645-0.8604736-13.65271,0.1333923-20.5021973
c0.3082581-2.1259766-0.2698059-4.3939819-0.5314789-6.5866089c-0.9043427-7.5847168-0.2992401-15.0203857,1.7813263-22.3851318
c0.6504517-2.3032227,0.6781006-4.7818604,0.8806-6.3363647c-2.0307007-4.6322021-5.2015839-7.0345459-8.5028381-9.3185425
c-0.5489197-0.3797607-1.0097961-0.8875122-1.5115356-1.3360596c-3.259201-3.2330322-6.7401428-6.2762451-9.7211304-9.7487793
c-3.5368195-4.1208496-6.1422577-8.8916016-7.9431152-14.0562134l0.0057068-0.0065918
c-0.1234894-0.2827148-0.2466583-0.5654297-0.3701477-0.8481445c-2.5820007-5.9671021-3.9337006-12.2262573-4.4522705-18.6857605
c-0.4858093-6.0476379-1.0136871-12.0922546-1.4676666-18.1422729c-0.4422455-5.8934937-0.7871552-11.7944946-1.2263947-17.6882935
c-0.2929382-3.9318848-0.6426544-7.8601685-1.0284271-11.7839661c-0.4052887-4.1238708-0.8478394-8.244751-1.3387756-12.359314
c-0.6672821-5.5939636-1.2804794-11.1981201-2.1253281-16.7662354c-1.291008-8.5079346-2.7229156-16.9954529-4.1689453-25.4790649
c-0.7721405-4.5279846-1.7038193-9.0283203-2.5501633-13.5436707c-0.0862274-0.4593811-0.0817184-0.9358826-0.1195755-1.4045715
c-0.0955429-0.0754089-0.1135712-0.1661377-0.0540771-0.272522c-0.1072617-0.4536438-0.2142181-0.9073181-0.3214798-1.3606873
c-0.025238-0.2025146-0.0504761-0.4049988-0.0754089-0.6075134c-0.113266-0.4815979-0.2262344-0.963501-0.3395004-1.4448242
c-0.0733109-0.1150513-0.0940399-0.2385559-0.0621948-0.3710327c-0.108757-0.2854309-0.2172165-0.5705566-0.3259811-0.855957
c-0.0360489-0.3779602-0.0721054-0.7556152-0.1081543-1.1332703c-0.1054611-0.4440613-0.2109146-0.8878174-0.3163681-1.3315735
c-1.1528015-4.7839661-2.1526718-9.6111755-3.4875412-14.3434448
c-3.5419235-12.5534363-7.2280579-25.0656738-10.8586121-37.5938416c-0.1517258-0.5224915-0.3250809-1.0389404-0.4885254-1.5581055
c-0.1123657-0.3572388-0.225029-0.714447-0.3373947-1.0716858c-0.0681992-0.2688904-0.1361008-0.5374756-0.2040024-0.8060913
c-2.6451035-7.1733704-5.7321548-14.2205505-7.8301468-21.5504761
c-3.0600128-10.6915588-8.0022964-20.4709778-13.115242-30.2209473c-0.8484497-1.6181946-1.6785736-3.2463074-2.5168076-4.8695984
c-3.7405167-6.8065186-7.5519409-13.5752258-11.2053223-20.4283142
c-6.1858253-11.6022186-12.2842178-23.251297-18.3886185-34.8964691c-1.1380806-2.1710052-2.1316452-4.4177094-3.1919098-6.6292725
c-4.1566277-8.046463-8.4268265-16.0364532-12.4404449-24.1535187
c-5.0188999-10.1501617-8.2660885-20.8964081-10.6140499-31.9737549
c-1.9709072-9.2987061-2.573595-18.7308197-1.6548405-28.0415497c1.9399605-19.6645966,8.6749916-37.6446075,21.2887917-53.1420593
c1.2399292-1.5235519,2.6607246-2.8995819,3.9976959-4.3441086c2.5603752-2.6168594,4.9798431-5.3917542,7.7078667-7.8196297
c7.374073-6.563179,15.5605469-11.9675484,24.3566208-16.4459534c0.2358475-0.1201782,0.5047379-0.1748581,0.758316-0.2598839
c7.7478256-3.945118,15.8162231-7.0510979,24.2295303-9.2536469c4.6424484-1.0674744,9.2851944-2.1346474,13.9279404-3.2018204
c0.2824173-0.1120644,0.5651321-0.2241287,0.847847-0.3358955c0.2715988-0.0102158,0.5432053-0.0204277,0.8151016-0.0306435
c4.3597336-0.8319283,8.7197647-1.6638546,13.0794907-2.4957809c0.2944336-0.1033535,0.588562-0.2067051,0.8829956-0.3097572
c0.537796-0.0405598,1.075592-0.0808201,1.6133881-0.1210785c0.2685852-0.0892315,0.5371857-0.1787643,0.805481-0.2679958
c0.5576172-0.0321465,1.1149445-0.0645943,1.6725616-0.0967426c2.8614197-0.4834118,5.7120361-1.0467434,8.5863647-1.4304085
c3.6966553-0.4939289,7.4125366-0.8436451,11.1203003-1.2555523c0.5528107-0.0582848,1.1056366-0.116272,1.6584473-0.1745567
c0.2637939-0.063694,0.5272827-0.127388,0.7907715-0.191082c0.8364258-0.0597878,1.6728668-0.119276,2.5090027-0.1787643
c0.2637787-0.0411606,0.5272675-0.0826206,0.7910614-0.1237812c3.262207-0.2905293,6.5247192-0.581358,9.7872314-0.8721867
c4.1250763-0.3662395,8.2501678-0.732481,12.3749542-1.0987206c0.1360931-0.0051079,0.2718964-0.0102158,0.4076996-0.0153217
c1.5058136-0.1315956,3.0116425-0.2634888,4.5174561-0.3950825c1.2294159-0.1367016,2.4585266-0.2731037,3.6876373-0.4098053
c0.138504-0.0009003,0.2770081-0.0021038,0.4155121-0.0033054c4.1043549-0.2652912,8.2089996-0.5305824,12.3133545-0.7961731
c8.8973236-0.4308357,17.794342-0.8652763,26.6922607-1.2840939c0.6760101-0.031847,1.3571014,0.0498734,2.0358124,0.0790157
c4.9260559-0.1348972,9.8524323-0.2694969,14.7784882-0.4040947c10.808136-0.2722015,21.616272-0.5441036,32.4241028-0.8163033
c11.3543701-0.0003014,22.7090149-0.0009022,34.0633545-0.001503c7.2818298-0.0177269,14.5633545-0.0402603,21.8452148-0.0414619
c0.3896484,0,0.7793274,0.1775627,1.1690063,0.2725029c3.1609802,0.189579,6.3216248,0.3794594,9.4825745,0.5693398
c1.1966858,0.1123657,2.3936462,0.2247314,3.5903015,0.3373966c6.0353088,0.2926311,12.0718079,0.5855637,18.1083069,0.8784962
c1.088501,0.1144676,2.1767273,0.2292385,3.2652283,0.3440075c2.460907,0.1559296,4.9218445,0.3115597,7.3830872,0.4674892
c3.2826233,0.1333961,6.5652771,0.2664928,9.8482056,0.399889c0.8809204,0.1108646,1.7618103,0.2217274,2.6430054,0.3325901
c2.2671509,0.1571331,4.5342712,0.3142643,6.8014221,0.471096c2.8671265,0.124382,5.7342529,0.2487659,8.6016846,0.3731499
c0.5462036,0.0501728,1.0924072,0.1003475,1.6386108,0.1502209c1.3739319,0.0862274,2.7478638,0.1724548,4.1221008,0.2589817
c0.4031982,0.044466,0.8060913,0.088932,1.209259,0.1333981c0.6859131,0.0763111,1.3718262,0.1526241,2.0580444,0.2286358
c3.0179443,0.2538757,6.0359192,0.5077496,9.0538635,0.7616234c0.5933533,0.0219326,1.1867371,0.0435638,1.780426,0.0654964
c0.1880798,0.0360527,0.3764343,0.071806,0.5648193,0.1078587c1.0166931,0.0688019,2.0331116,0.1376038,3.0498047,0.2064056
c0.3758545,0.094038,0.7514038,0.188076,1.1269531,0.2824154c0.7171631,0.026741,1.4346313,0.0537796,2.1517944,0.0805187
c0.3503113,0.0841255,0.7009277,0.1682491,1.051239,0.2523727c0.7408752,0.044466,1.4820862,0.0883312,2.2229614,0.1327953
c0.3647461,0.0895329,0.7294922,0.1790638,1.0942383,0.2685966c1.8179626,0.1787643,3.6359558,0.3575268,5.4539185,0.5365906
c0.1986084,0.0691032,0.3969116,0.1388054,0.5951843,0.2079067c0.2001038,0.0486717,0.4002075,0.0973434,0.6002808,0.1460152
c3.2835388,0.4055996,6.5671082,0.8117981,9.850647,1.2173958c3.6969299,0.5389957,7.3938904,1.0776901,11.0908508,1.6163845
c3.8703003,0.5185642,7.7496338,0.9809475,11.6094055,1.5704136c4.5300903,0.6919212,9.0439453,1.4902,13.5617065,2.2599335
c0.2445679,0.0417633,0.4608765,0.2475662,0.6904297,0.3767548c0.400177,0.0336494,0.8006592,0.0670013,1.2011719,0.1006508
c0.2842102,0.0832214,0.5684204,0.1664429,0.8529358,0.2496681c0.5627441,0.0730057,1.1257629,0.1463165,1.6885071,0.2193222
c0.09552,0.0441666,0.1913757,0.0883293,0.2869263,0.1324959c0.4368286,0.0507736,0.8736877,0.1015511,1.3102112,0.1520233
c0.2250366,0.0934372,0.4497681,0.1868782,0.6744995,0.280014c0.4506836,0.0414619,0.9013367,0.0832214,1.3522949,0.1246834
c0.1523438,0.0823212,0.3043518,0.164341,0.456665,0.2466621c0.4071045,0.0411606,0.8139038,0.082325,1.2210083,0.1234856
c0.2472839,0.1018486,0.4945374,0.2036972,0.7417908,0.3055496c3.1871033,0.8120956,6.3742065,1.6241951,9.5613098,2.4365921
c2.710022,0.8135986,5.4190674,1.6265984,8.1281738,2.4398994c0.3203125,0.124382,0.6402588,0.2484665,0.9602051,0.3728485
c0.9025269,0.3022461,1.8051147,0.6044922,2.7073364,0.9067383c0.203064,0.1033516,0.4064941,0.2067032,0.6095581,0.3097572
c7.8590088,2.515007,14.8983765,6.6298752,21.5976562,11.3221931
c15.3319092,10.7384377,26.305603,25.1056252,34.4998779,41.7709007
c4.2287598,8.6007843,7.1021729,17.5819244,8.2372437,27.1197891c0.40802,3.4286575,1.0596924,6.8281631,1.6377563,10.4770584
C589.3682861,135.7901917,586.9737549,136.6798096,584.5657349,137.5315552z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 68 KiB

View file

@ -1,228 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 17.9 612 759.1" style="enable-background:new 0 17.9 612 759.1;" xml:space="preserve">
<style type="text/css">
.st0{fill:url(#SVGID_1_);}
.st1{fill:#020202;}
</style>
<g>
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="203.6162" y1="340.0756" x2="419.5191" y2="340.0756" gradientTransform="matrix(1 0 0 1 0 5.8553)">
<stop offset="0" style="stop-color:#EB2227"/>
<stop offset="0.5" style="stop-color:#FCEE21"/>
<stop offset="1" style="stop-color:#29ABE2"/>
</linearGradient>
<path class="st0" d="M410.2,247.2c-3-5.9-6.8-10.9-12.3-14.8c-2.4-1.7-4.9-3.1-7.8-4c-0.1-0.1-0.1-0.1-0.2-0.1
c-0.4-0.1-0.6-0.2-1-0.3c-0.1-0.1-0.2-0.1-0.4-0.1c-1-0.3-1.9-0.6-2.9-0.9c-1.1-0.3-2.3-0.6-3.5-0.9c-0.1-0.1-0.2-0.1-0.3-0.1
c-0.1,0-0.3,0-0.4-0.1c-0.1,0-0.1-0.1-0.1-0.1c-0.1,0-0.4,0-0.5-0.1c-0.1,0-0.1-0.1-0.2-0.1c-0.1,0-0.3,0-0.5-0.1
c0,0-0.1,0-0.1-0.1c-0.2,0-0.4-0.1-0.6-0.1c-0.1,0-0.2-0.1-0.3-0.1c-0.1,0-0.3,0-0.4,0c-0.1-0.1-0.1-0.1-0.3-0.1
c-1.6-0.3-3.2-0.6-4.9-0.8c-1.4-0.2-2.8-0.4-4.2-0.6c-1.3-0.2-2.7-0.4-4-0.6c-1.2-0.1-2.3-0.3-3.5-0.4c-0.1,0-0.1,0-0.2-0.1
c-0.1,0-0.1-0.1-0.2-0.1c-0.6-0.1-1.3-0.1-2-0.2c-0.1,0-0.3-0.1-0.4-0.1c-0.3,0-0.6,0-0.8-0.1c-0.1,0-0.3-0.1-0.4-0.1
c-0.3,0-0.5,0-0.8,0c-0.1,0-0.3-0.1-0.4-0.1c-0.4,0-0.7-0.1-1.1-0.1c-0.1,0-0.1,0-0.2-0.1c-0.2,0-0.4,0-0.6,0
c-1.1-0.1-2.2-0.1-3.2-0.3c-0.2,0-0.5-0.1-0.7-0.1c-0.1,0-0.3,0-0.4-0.1c-0.5,0-1-0.1-1.5-0.1c-0.2,0-0.4,0-0.6-0.1
c-1.1-0.1-2-0.1-3.1-0.1c-0.8-0.1-1.6-0.1-2.5-0.1c-0.3-0.1-0.6-0.1-0.9-0.1c-1.2-0.1-2.3-0.1-3.5-0.1c-0.8-0.1-1.8-0.1-2.6-0.1
c-0.4-0.1-0.8-0.1-1.2-0.1c-2.2-0.1-4.3-0.2-6.5-0.3c-0.4-0.1-0.8-0.1-1.3-0.1c-1.1-0.1-2.3-0.1-3.4-0.2c-0.1,0-0.3-0.1-0.4-0.1
c-2.6,0-5.2,0-7.8,0c-4.1,0-8.1,0-12.2,0c-3.9,0.1-7.8,0.2-11.6,0.3c-1.8,0.1-3.5,0.1-5.3,0.1c-0.2,0-0.5-0.1-0.7,0
c-3.2,0.1-6.4,0.3-9.5,0.4c-1.5,0.1-3,0.2-4.4,0.3c-0.1,0-0.1,0-0.1,0c-0.4,0.1-0.8,0.1-1.3,0.1c-0.6,0.1-1.1,0.1-1.6,0.1
c-0.1,0-0.1,0-0.1,0c-1.5,0.1-3,0.3-4.4,0.4c-1.2,0.1-2.3,0.2-3.5,0.3c-0.1,0-0.2,0-0.3,0.1c-0.3,0-0.6,0.1-0.9,0.1
c-0.1,0-0.2,0.1-0.3,0.1c-0.2,0-0.4,0.1-0.6,0.1c-1.3,0.1-2.7,0.3-4,0.4c-1.1,0.1-2,0.4-3.1,0.5c-0.2,0-0.4,0-0.6,0
c-0.1,0-0.2,0.1-0.3,0.1c-0.2,0-0.4,0-0.6,0.1c-0.1,0.1-0.2,0.1-0.3,0.1c-1.6,0.3-3.1,0.6-4.7,0.9c-0.1,0-0.2,0-0.3,0
c-0.1,0.1-0.2,0.1-0.3,0.1c-1.7,0.4-3.3,0.7-5,1.2c-3,0.8-5.9,1.9-8.7,3.2c-0.1,0-0.2,0.1-0.3,0.1c-3.2,1.6-6.1,3.5-8.7,5.8
c-1,0.9-1.8,1.9-2.8,2.7c-0.5,0.5-1,1-1.4,1.5c-4.5,5.5-6.9,11.8-7.6,18.8c-0.4,3.3-0.1,6.6,0.6,9.9c0.8,3.9,2,7.7,3.8,11.3
c1.4,2.9,3,5.7,4.4,8.6c0.4,0.8,0.7,1.6,1.1,2.4c2.2,4.1,4.4,8.2,6.6,12.3c1.3,2.4,2.7,4.8,4,7.2c0.3,0.6,0.6,1.2,0.9,1.7
c1.8,3.5,3.6,6.9,4.7,10.7c0.8,2.6,1.8,5.1,2.8,7.6c0,0.1,0.1,0.2,0.1,0.3c0.1,0.1,0.1,0.3,0.1,0.4c0.1,0.2,0.1,0.4,0.1,0.6
c1.3,4.5,2.6,8.9,3.9,13.3c0.5,1.7,0.8,3.4,1.3,5c0.1,0.1,0.1,0.3,0.1,0.5c0,0.1,0,0.3,0.1,0.4c0.1,0.1,0.1,0.2,0.1,0.3
c0,0.1,0,0.1,0,0.1c0.1,0.1,0.1,0.4,0.1,0.5c0,0.1,0,0.1,0,0.2c0.1,0.1,0.1,0.3,0.1,0.5c0,0.1,0,0.1,0,0.1c0,0.1,0,0.4,0.1,0.5
c0.3,1.6,0.6,3.2,0.9,4.8c0.5,3,1.1,6,1.5,9c0.3,1.9,0.5,4,0.8,5.9c0.1,1.4,0.4,2.9,0.5,4.4c0.1,1.4,0.3,2.8,0.4,4.2
c0.1,2.1,0.3,4.2,0.4,6.3c0.1,2.2,0.4,4.2,0.5,6.4c0.2,2.3,0.6,4.5,1.6,6.6c0.1,0.1,0.1,0.2,0.1,0.3l0,0c0.6,1.8,1.6,3.5,2.8,5
c1.1,1.2,2.3,2.3,3.5,3.5c0.2,0.1,0.4,0.4,0.6,0.5c1.2,0.8,2.3,1.7,3,3.3c-0.1,0.6-0.1,1.4-0.3,2.2c-0.8,2.6-1,5.3-0.6,7.9
c0.1,0.8,0.3,1.6,0.2,2.3c-0.4,2.4-0.5,4.8-0.1,7.3c0.2,1,0.5,2,0.6,3c0.1,1.4,0,2.9,0.2,4.3c0.3,2.2,0.9,4.2,2,6
c0.1,0.3,0.2,0.5,0.4,0.8c2,3.3,5.1,5.6,7.7,8.4c1.7,1.9,3.6,3.6,5.8,5c0.1,0.1,0.3,0.1,0.4,0.3l0,0c0.2,0.1,0.4,0.2,0.6,0.3
c0.6,0.3,1.1,0.6,1.7,0.9c0.4,0.2,0.7,0.4,0.9,0.6c0.7,0.9,1.4,1.7,2.1,2.6c0,0.1,0,0.1,0.1,0.1l0.1,0.1c0.1,0.1,0.1,0.1,0.1,0.1
v0.1c0,0.1,0.1,0.1,0.1,0.1l0,0c0.1,0.1,0.1,0.1,0.1,0.1l0,0c0.1,0.1,0.1,0.1,0.1,0.1l0,0c0.1,0.1,0.1,0.1,0.1,0.1l0,0
c0.1,0.1,0.1,0.1,0.1,0.1l0,0c0.1,0.1,0.1,0.1,0.1,0.1l0,0c0.1,0,0.1,0.1,0.1,0.1l0.1,0.1l0.1,0.1c0,0,0,0.1,0.1,0.1l0.1,0.1
c2.4,2.2,5.2,3.7,8.4,4.3c0.1,0,0.1,0,0.2,0c0.1,0.1,0.2,0.1,0.4,0.1c2.1,0.4,4.2,0.6,6.4,1c0.4,0.1,0.8,0.1,1.3,0.1
c3.7,0.1,7.3,0.1,10.9,0.3c3-0.1,6-0.1,9-0.1c1.3-0.1,2.5-0.2,3.7-0.3c0.2-0.1,0.4-0.1,0.6-0.1c1.5-0.3,3-0.6,4.4-0.9
c1.3-0.4,2.5-0.8,3.8-1.2c0.1,0,0.1-0.1,0.1-0.1l0,0c1.2-0.6,2.5-1.4,3.7-2c1.1-0.9,2.3-1.9,3.3-2.9c0.8-1,1.7-2,2.6-3.1
c0.8-0.4,1.8-0.9,2.8-1.4c1.3-0.9,2.5-1.9,3.8-2.9c0.3-0.3,0.6-0.5,0.8-0.8c1-1.1,2-2.2,3-3.2c1.4-1.4,2.8-3,3.7-4.8
c0.1-0.1,0.1-0.1,0.1-0.2c0.1-0.1,0.1-0.3,0.2-0.4c0.1-0.3,0.4-0.6,0.5-0.9c1.5-3.4,2.4-6.9,2.6-10.7c0-0.1,0-0.1,0-0.1
s0-0.2,0-0.3c0-0.1,0-0.3,0-0.4c0-0.1,0-0.3,0-0.4c0.3-0.6,0.6-1.2,0.9-1.8c1.3-2.9,2-5.8,1.8-9c-0.1-1.6-0.2-3.2,0.1-4.8
c0.2-1.6,0.1-3.3-0.1-5c-0.4-2.4-0.4-2.4,1-3.8c3.6-2.2,6.3-5.4,8.1-9.1c0.1-0.1,0.1-0.2,0.2-0.3c1.9-3.7,2.2-7.8,2.5-12
c0.1-1.4,0.2-2.7,0.5-4c0.6-2.6,1.4-5.1,2.1-7.6c0.2-0.6,0.4-1.2,0.6-1.7c0.5-1.8,1-3.6,1.5-5.4c0.1-0.1,0.1-0.1,0.1-0.1
c0-0.1,0-0.2,0-0.3c0-0.1,0.1-0.2,0.1-0.3c0-0.1,0.1-0.2,0.1-0.3c0-0.1,0.1-0.1,0.1-0.1c0-0.1,0-0.2,0.1-0.3c0-0.1,0.1-0.1,0.1-0.1
c0.6-2.2,1.3-4.5,2-6.8c1.1-4,2.3-8,3.4-12c4-10.6,7.8-21.1,11.8-31.8c-1.4-0.1-2.7-0.1-4-0.1c-2.8-0.1-5.5-0.1-8.2-0.2
c-2.6,0-5.2,0-7.8,0c-1.8,0-3.5,0-5.3,0c-2.8,0-5.6,0-8.4,0c-1.2,0-2.3,0-3.5,0c-1.1,0-2.2,0-3.2,0c-2.3,0-4.6,0-6.9,0
c-1.7,0-3.3,0-5,0c-1.5,0-3,0-4.4,0c-1.2,0-2.5,0-3.7,0s-2.5,0-3.7,0c-2.3,0-4.5,0-6.8,0c-1.8,0-3.6,0-5.4,0c-1.9,0-3.8,0-5.7,0
c-3.8,0-7.5,0-11.4,0c0.1,0.3,0.1,0.6,0.1,0.8c1.6,8.6,3.3,17.2,4.9,25.9c0.4,2.2,0.8,4.4,1.3,6.6c0.3,0.1,0.6,0.1,0.8,0.1
c13.2,0,26.4,0,39.6,0c0.3,0,0.6,0,0.9,0c-0.4,1.2-0.8,2.2-1.2,3.2c-0.5,1.3-1,2.6-1.5,3.9c-0.1,0.4-0.2,0.8-0.3,1.2
c0,0.1-0.1,0.1-0.1,0.1c0,0.1,0,0.3-0.1,0.4c0,0.1-0.1,0.1-0.1,0.1c0,0.1,0,0.2,0,0.4c-0.1,0.1-0.1,0.1-0.1,0.2
c0,0.1,0,0.2-0.1,0.3c0,0.1-0.1,0.1-0.1,0.1c0,0.1-0.1,0.2-0.1,0.4c0,0.1-0.1,0.1-0.1,0.2c0,0.1-0.1,0.2-0.1,0.3
c0,0.1-0.1,0.1-0.1,0.1s-0.1,0.2-0.1,0.3h-0.1v0.1c0,0.1-0.1,0.2-0.1,0.3h-0.1v0.1c0,0.1-0.1,0.2-0.1,0.4c-0.1,0.1-0.1,0.3-0.1,0.4
c-0.4,1.2-0.8,2.4-1.3,3.7c0,0.1,0,0.1,0,0.1c-0.4,2-0.7,4-1,6c0,0.4,0,0.8-0.1,1.2c0,0.2-0.1,0.5-0.1,0.7c0,0.4,0,0.9-0.1,1.3
c0,0.2-0.1,0.4-0.1,0.6c0,0.4-0.1,0.7-0.1,1.2c0,0.1-0.1,0.3-0.1,0.4c0,0.4-0.1,0.8-0.1,1.2c0,0.1-0.1,0.3-0.1,0.4
c0,0.4-0.1,0.9-0.1,1.3c0,0.1-0.1,0.2-0.1,0.3c0,0.5-0.1,1-0.1,1.4c0,0.1-0.1,0.3-0.1,0.4c0,0.3-0.1,0.6-0.1,0.9
c-1.7,1.2-3.3,2.5-4.5,4.2l-0.1,0.1c-0.1,0.1-0.1,0.1-0.1,0.2c-0.1,0.1-0.1,0.1-0.2,0.2c-0.1,0.1-0.2,0.2-0.4,0.4
c-0.8,0.8-1.6,1.6-2.4,2.3c-1.8,1.9-2.9,4.1-3.5,6.6c-0.1,0.6-0.3,1.3-0.4,1.9c-0.1,0.1-0.1,0.3-0.1,0.4c0,0.1,0,0.3,0,0.4
c-0.1,0.2-0.1,0.4-0.1,0.6c-0.1,0.9-0.1,1.7-0.6,2.4c-0.3,0.5-0.5,1-0.7,1.6c-1.2,3.2-1.6,6.3-1.1,9.7c0.1,0.7,0.1,1.4,0.1,2.2
c0,1.7-0.1,3.4-0.1,5.1c0,0.9,0.1,1.7,0,2.4c-0.1,1.2-0.5,2.4-0.7,3.7c-0.1,0.7-0.3,1.4-0.5,2.1c-1.6,0.6-3.3,1.2-4.8,2.1
c-1.3,0.7-2.3,1.9-3.5,2.8c-0.7,0.9-1.3,1.7-2,2.7c-1.4,0-2.9,0-4.4,0c-0.8,0-1.6,0.1-2.4,0.1c-0.3,0-0.6-0.1-0.8-0.1
c-2.3-0.1-4.7-0.1-6.7-0.1c-1.5-1.5-2.8-2.8-4-4.1c-1.5-1.4-3.2-2.2-5.2-2.9c-0.1,0-0.1-0.1-0.2-0.1c-0.1,0-0.1,0-0.3-0.1
c-0.1,0-0.1-0.1-0.2-0.1s-0.2,0-0.3-0.1c-0.1,0-0.1-0.1-0.1-0.1s-0.1-0.1-0.1-0.1c-0.1-0.1-0.1-0.3-0.1-0.5c0-0.1,0-0.4,0-0.5
c-0.1-0.1-0.1-0.3-0.1-0.4c0-0.1,0-0.2,0-0.3c-0.1-0.1-0.1-0.3-0.1-0.4c0-0.1,0-0.1,0-0.1c0.1-0.1,0.1-0.2,0.1-0.4
c0-0.1,0-0.3,0-0.4c0.1-0.1,0.1-0.3,0.1-0.4c0-0.2,0-0.4,0-0.6c0.1-0.2,0.1-0.5,0.1-0.7c0-1.2,0-2.3,0-3.5
c-0.1-0.2-0.1-0.5-0.1-0.7c0.1-0.4,0.1-0.6,0.1-1c0.1-0.1,0.1-0.2,0.1-0.4c0-0.1,0-0.3,0-0.4c0.1-0.1,0.1-0.3,0.1-0.4
c0-0.1,0-0.3,0-0.4c0.1-0.2,0.1-0.4,0.1-0.6c0-0.3,0-0.5,0-0.8c0-0.9,0-1.7,0-2.6c0-0.3,0-0.6,0-0.9c-0.1-0.1-0.1-0.3-0.1-0.5
c0-0.1,0-0.4,0-0.5c-0.1-0.1-0.1-0.2-0.1-0.4c-0.2-0.8-0.4-1.5-0.6-2.3c-0.2-0.5-0.4-1.1-0.6-1.6c-0.4-0.8-0.5-1.6-0.4-2.4
c0.2-3.8-0.4-7.6-2.1-11c-1.6-3.2-4.3-5.6-6.8-8.1c-1.1-0.9-2.1-1.9-3.2-3c-0.2-3-0.5-6.2-0.7-9.4c-0.1-0.3-0.1-0.6-0.1-0.9
c0-0.1,0-0.1,0-0.2c0-0.1,0-0.1,0-0.1c0-0.1,0-0.3,0-0.4c-0.1-0.3-0.1-0.6-0.1-0.9c0-0.1,0-0.1,0-0.2c0.1-0.1,0.1-0.1,0-0.1
c0-0.2,0-0.4,0-0.6c-0.1-0.3-0.1-0.6-0.1-0.8c0-0.1,0-0.1,0-0.2c0,0,0,0,0-0.1v-0.1c0-0.1,0-0.3,0-0.4c0-0.2-0.1-0.4-0.1-0.6
c0-0.2,0-0.5,0-0.7c0-0.1-0.1-0.3-0.1-0.4c0-0.1-0.1-0.2-0.1-0.3c0.1-0.1,0.1-0.1,0-0.1c0-0.1,0-0.2,0-0.3c0-0.1-0.1-0.3-0.1-0.4
c0-0.2,0-0.5-0.1-0.7c0-0.1-0.1-0.2-0.1-0.3c0-0.2,0-0.4,0-0.6c0-0.1-0.1-0.2-0.1-0.3c0-0.2,0-0.4-0.1-0.6
c-0.1-0.1-0.1-0.3-0.1-0.4c0-0.2,0-0.4-0.1-0.6c0-0.1-0.1-0.2-0.1-0.3c0-0.2,0-0.4-0.1-0.6c0-0.1-0.1-0.1-0.1-0.2
c0-0.2-0.1-0.4-0.1-0.6v-0.1l-0.1-0.1l0,0c-0.4-2.3-0.6-4.5-1.1-6.8c-1-5.3-2-10.5-3.1-15.8c-0.6-2.7-1.3-5.3-2-8
c0-0.1,0-0.1,0-0.2c-2-6.1-4-12.2-6.1-18.4c-0.1-0.1-0.1-0.4-0.2-0.5c0-0.1,0-0.1,0-0.2c-0.1-0.1-0.1-0.1-0.1-0.2
c0-0.1,0-0.1,0-0.2v-0.1l-0.1-0.1c0-0.1-0.1-0.2-0.1-0.4l0,0h-0.1c0-0.1-0.1-0.1-0.1-0.2c0-0.1-0.1-0.1-0.1-0.1
c0-0.1-0.1-0.2-0.1-0.3v-0.1h-0.1c-0.1-0.2-0.1-0.4-0.2-0.6c0-0.1-0.1-0.1-0.1-0.1c-0.1-0.1-0.1-0.3-0.2-0.4
c-0.2-0.5-0.5-1-0.7-1.5c-1.5-3-3-5.9-4.4-8.8c-0.4-0.8-0.8-1.6-1.2-2.4c-0.1-0.1-0.1-0.1-0.1-0.2v-0.1h-0.1v-0.1
c-0.1-0.1-0.1-0.1-0.1-0.3c-1.2-2.4-2.4-5-3.6-7.4c-0.7-1.4-1.4-2.7-2.1-4.1c0-0.1,0-0.1-0.1-0.1c-0.1-0.1-0.1-0.1-0.1-0.2
c-0.7-1.4-1.5-3-2.2-4.4c-1.4-2.7-2.9-5.5-4.4-8.2l0,0c-0.1-0.1-0.1-0.2-0.1-0.3l0,0c-0.1-0.1-0.1-0.2-0.1-0.3l0,0
c-0.1-0.1-0.1-0.2-0.1-0.4v-0.1H245c-0.1-0.1-0.1-0.1-0.1-0.2c-0.8-1.6-1.6-3.1-2.4-4.7c-0.6-1.3-3.5-6.8-3.5-6.8l20.7-2.8
c1.6-0.2,3.3-0.4,4.9-0.6c0.5-0.1,1-0.1,1.5-0.1c0.1,0,0.3-0.1,0.5-0.1c0.3,0,0.6-0.1,0.8-0.1c0.1,0,0.3-0.1,0.5-0.1
c0.4,0,0.7,0,1.1-0.1c0.1,0,0.3-0.1,0.4-0.1c0.4,0,0.8-0.1,1.1-0.1c0.2,0,0.4-0.1,0.6-0.1c0.1,0,0.3-0.1,0.4-0.1c0.2,0,0.5,0,0.7,0
c0.3,0,0.6-0.1,0.9-0.1c0.4,0,0.8,0,1.3-0.1c0.4-0.1,0.8-0.1,1.2-0.1c0.4,0,0.8,0,1.1,0c0.4,0,0.8-0.1,1.2-0.1c0.6,0,1.1,0,1.6,0
c0.4-0.1,0.8-0.1,1.2-0.1c0.5,0,1,0,1.5,0c0.5-0.1,1-0.1,1.5-0.1c0.5,0,1,0,1.5,0c0.6-0.1,1.1-0.1,1.6-0.1l0,0c0.6,0,1.1,0,1.6,0
c0.5,0,0.9-0.1,1.4-0.1c0.7,0,1.4,0,2.1-0.1c0.1,0,0.3,0,0.4,0c0.8,0,1.5-0.1,2.3-0.1c2.8,0,5.6,0,8.5-0.1c7,0.1,14,0.1,21,0.1
c1,0,2,0.1,3,0.1c1.5,0.1,3,0.1,4.4,0.2c0.3,0.1,0.6,0.1,0.8,0.1c0.4,0,0.8,0,1.3,0.1c0.3,0,0.6,0.1,0.9,0.1c0.4,0,0.8,0,1.2,0
c0.3,0,0.6,0.1,0.8,0.1c0.4,0,0.8,0,1.2,0c0.3,0,0.6,0.1,0.8,0.1c0.4,0,0.8,0,1.2,0c0.3,0.1,0.6,0.1,0.8,0.1c0.4,0,0.9,0,1.3,0.1
c0.2,0,0.5,0.1,0.7,0.1c0.5,0,1,0,1.5,0.1c0.4,0,0.7,0.1,1,0.1c0.4,0,0.9,0,1.3,0.1c0.2,0,0.4,0.1,0.6,0.1c0.5,0,1,0.1,1.5,0.1
c0.1,0,0.3,0,0.4,0.1c0.4,0,0.9,0.1,1.3,0.1c0.1,0,0.2,0,0.4,0.1c0.3,0,0.5,0,0.8,0c1.2,0.1,2.4,0.3,3.6,0.4
c0.8,0.1,1.7,0.2,2.6,0.3c0.1,0,0.2,0.1,0.4,0.1c1.3,0.1,2.7,0.3,4,0.4c1.2,0.1,2.3,0.4,3.5,0.5c1.4,0.2,2.8,0.4,4.2,0.6
c3,0.6,5.9,1.2,8.8,1.8c0.2,0.1,0.4,0.1,0.6,0.2c2,0.6,3.1,1.9,3.8,3.8c0.8,2.1,1.8,4,2.7,6c0,0.1,0.1,0.1,0.1,0.2v0.1h0.1
c0,0.1,0.1,0.1,0.1,0.2c0,0.1,0.1,0.1,0.1,0.1l0,0c0.1,0,0.2,0,0.4,0c1-0.4,2-0.7,3-1c0.1-0.1,0.1-0.1,0.2-0.1h0.1h0.1
c0.4-0.1,0.8-0.3,1.1-0.4c0.1,0,0.1,0,0.2,0c0.3-0.1,0.6-0.2,0.9-0.3c0.1,0,0.2-0.1,0.4-0.1h0.1v-0.1c0.1,0,0.1,0,0.2-0.1
c0.1-0.1,0.1-0.1,0.2-0.1c0.1,0,0.1,0,0.2,0s0.1-0.1,0.1-0.1c2.1-0.7,4.2-1.4,6.4-2.2c4-1.4,8-2.8,12-4.2c0.8-0.3,1.7-0.6,2.6-0.9
c-0.2-1.3-0.4-2.5-0.6-3.7C412.7,253.4,411.7,250.2,410.2,247.2z"/>
<path class="st1" d="M411.5,237.8c-2-2.8-4.2-5.3-6.9-7.6c-2.8-2.3-5.6-4.3-8.8-5.9c-5-2.4-10.4-3.6-15.7-4.6
c-3.5-0.6-7.1-1.2-10.6-1.8c-2.3-0.4-4.7-0.6-6.9-0.9c-2.1-0.3-4.2-0.5-6.3-0.7c-1.8-0.2-3.7-0.4-5.6-0.5c-2.3-0.1-4.7-0.3-7-0.4
c-2.7-0.1-5.4-0.4-8-0.6c-1.6-0.1-3-0.2-4.6-0.3c-3-0.1-6.1-0.4-9.1-0.4c-4.1-0.1-8.2-0.1-12.3,0c-4.7,0-9.3,0.1-14,0.1
c-2.2,0-4.4,0.1-6.6,0.1c-2.1,0.1-4.3,0.1-6.4,0.1c-0.1,0-0.1,0-0.1,0c-3,0.2-5.9,0.4-8.8,0.6c-1.6,0.1-3.2,0.1-4.9,0.3
c-3.1,0.3-6.1,0.6-9.2,0.9c-3.1,0.4-6.2,0.6-9.2,1.2c-3.1,0.5-6.2,1.2-9.2,1.9c-5.4,1.2-10.7,2.8-15.5,5.6
c-4.6,2.7-8.8,5.8-12.2,9.9c-3.5,4.2-6.3,8.9-7.7,14.2c-0.7,2.9-1.5,5.8-1.8,8.7c-0.3,3.4-0.2,6.8,0.5,10.1
c1.1,5.2,2.5,10.2,4.9,14.9c2.3,4.6,4.7,9.1,7.2,13.8c1.7,3.2,3.5,6.5,5.2,9.7c1.2,2.2,2.5,4.5,3.7,6.7c1.3,2.6,2.9,5,3.9,7.8
c2.2,5.8,4.1,11.7,6.1,17.6c2.3,6.7,3.5,13.5,4.8,20.5c0.6,2.9,0.9,5.8,1.3,8.6c0.4,2.4,0.7,4.9,1,7.3c0.3,2.4,0.4,4.8,0.6,7.2
c0.3,3.2,0.6,6.3,0.8,9.5c0.1,2.4,0.5,4.7,1.1,7c1.3,5.6,4.1,10.3,8.5,14.1c0.6,0.6,1.3,1.1,2,1.7c0,0.1,0,0.2-0.1,0.3
c-0.7,2.8-1,5.7-0.6,8.6c0.1,0.8,0.1,1.7,0.1,2.4c-0.3,2.3-0.4,4.5,0,6.8c0.1,0.9,0.6,1.9,0.5,2.8c-0.1,2.7,0.3,5.2,0.8,7.7
c0.8,3.6,2.4,6.8,4.9,9.6c2.8,3,5.7,6,8.7,8.7c1.8,1.6,3.9,2.9,5.8,4.2c0.5,0.4,1.1,0.6,1.5,1c1.3,1.4,2.5,2.9,4,4.1
c2.7,2.4,5.8,4.1,9.3,5c4.4,1.1,8.9,2,13.5,2.1c6.2,0.1,12.5-0.1,18.7-0.1c0.6,0,1.2-0.1,1.8-0.1c2.2-0.4,4.4-0.8,6.6-1.3
c6.5-1.4,11.9-4.7,15.9-10c0.1-0.2,0.4-0.4,0.6-0.5c2.5-1.4,4.9-3,7-5c1.5-1.4,2.8-3,4.2-4.4c2-2,3.7-4.3,4.9-6.8
c1.7-3.5,2.3-7.3,3.1-11c0.2-0.9,0.1-1.9,0.4-2.6c0.8-1.9,1.4-3.8,1.8-5.8c0.5-2.1,0.8-4.2,0.6-6.4c-0.1-0.9-0.3-1.9-0.1-2.7
c0.4-2.3,0.6-4.5,0.2-6.6c1.6-1.7,3.2-3.2,4.7-4.8c1.7-1.9,3.2-4.1,4.2-6.6c1.8-4.4,2.5-9.1,2.9-13.8c0.1-1.2,0.2-2.4,0.5-3.7
c0.6-2.2,1.2-4.2,1.8-6.4c1.9-6.6,3.8-13.3,5.7-19.9c0.8-3,1.7-6,2.7-9c1.2-3.5,2.6-7,3.9-10.4c2.3-6.1,4.6-12.2,6.8-18.4
c0.6-1.7,1.1-3.5,0.4-5.3c-0.6-1.7-1.8-2.9-3.5-3.4c-3-0.9-6-0.9-9-0.9c-28.5-0.1-57-0.1-85.5-0.1c-1.6,0-3.2,0.3-4.5,1.4
c-1.6,1.3-2.2,3-2,4.8c0.3,2.8,1,5.6,1.5,8.5c0.8,4.4,1.6,8.7,2.5,13.1c0.8,4.5,1.8,8.9,2.8,13.4c0.2,0.9,0.8,1.7,1.5,2.3
c1.2,1.2,2.9,1.5,4.5,1.5c10.5,0,21,0,31.5,0c0.3,0,0.6,0,1,0c-0.5,1.5-0.8,3-1.4,4.3c-1.8,4.4-2.6,8.9-3,13.7
c-0.1,2-0.3,4.1-0.4,6.1c-0.1,0.5-0.2,1-0.7,1.4c-0.4,0.3-0.8,0.6-1.1,1c-1.1,1.1-2.1,2.2-3.2,3.4c-0.4,0.4-0.8,0.7-1.2,1.2
c-2.5,3-4.5,6.3-5.3,10.3c-0.3,1.3-0.5,2.6-0.8,3.9c-0.6,1.9-1.3,3.7-1.8,5.6c-0.6,2.4-0.9,4.8-0.6,7.2c0.1,1,0.1,2.1,0.1,3.2
c0,1.6-0.2,3.2-0.1,4.8c0.1,1.4,0.1,2.7-0.3,3.9c-3.2,1.5-6.1,3.5-8.4,6.2c-2.9,0-5.7,0-8.5,0c-2-2.4-4.5-4.2-7.2-5.7
c0-1.6,0-3.1,0-4.6c0-0.4,0-0.8,0.1-1.2c0.4-2,0.8-4,0.4-6c-0.4-2.6-1.2-5.2-1.8-7.7c-0.1-0.2-0.1-0.4-0.1-0.6
c0.1-2.6-0.2-5.1-0.8-7.7c-0.8-3.7-2.2-7.2-4.7-10.1c-2.1-2.4-4.4-4.6-6.6-7c-0.1-0.1-0.4-0.4-0.4-0.6c-0.2-2.6-0.4-5.2-0.6-7.8
c-0.2-2.5-0.4-5-0.7-7.5c-0.6-4.3-1.4-8.6-2.1-13c-1.3-8.2-3-16.3-5.3-24.3c-1.5-5-3.2-10-4.8-15c-1-2.9-2-5.7-3.2-8.5
c-1.1-2.4-2.3-4.8-3.5-7.1c-2.9-5.8-5.7-11.7-8.6-17.5c-2-3.9-4-7.7-6.1-11.5c-1-1.9-1.9-3.7-3-5.7c1.3-0.3,2.6-0.6,3.9-0.8
c4.8-0.6,9.6-1.4,14.4-1.9c3.2-0.4,6.5-0.6,9.7-0.9c2.7-0.2,5.4-0.3,8.1-0.4c2.3-0.1,4.7-0.2,7-0.3c3.1-0.1,6.3-0.1,9.4-0.1
c5.9,0,11.9,0,17.9,0c1.3,0,2.5,0.1,3.7,0.1c3.5,0.1,7,0.3,10.4,0.4c1.6,0.1,3.1,0.2,4.7,0.3c2.6,0.1,5.2,0.4,7.8,0.6
c1.6,0.1,3.2,0.1,4.7,0.3c3.4,0.4,6.7,0.7,10.1,1.2c3.7,0.5,7.5,1,11.3,1.6c2,0.3,4,0.8,5.7,1.2c1.3,2.8,2.3,5.3,3.5,7.6
c0.6,1.3,1.7,2.4,3,3c1.8,0.7,3.5,0.6,5.3,0c3.2-1.1,6.4-2.2,9.5-3.3c5.4-1.9,10.7-3.7,16-5.6c1.1-0.4,2.2-0.7,3.2-1.5
c1.6-1.3,2.2-3.1,2.2-5c0-1.7-0.4-3.4-0.7-5C417.8,248.6,415.1,243,411.5,237.8z M411.1,261.4c-4,1.4-8,2.8-12,4.2
c-2.1,0.7-4.2,1.4-6.4,2.2c-0.1,0-0.1,0.1-0.1,0.1c-0.1,0-0.1,0-0.2,0c-0.1,0.1-0.1,0.1-0.2,0.1c-0.1,0-0.1,0-0.2,0.1v0.1h-0.1
c-0.1,0-0.2,0.1-0.4,0.1c-0.3,0.1-0.6,0.2-0.9,0.3c-0.1,0-0.1,0-0.2,0c-0.4,0.1-0.8,0.3-1.1,0.4h-0.1h-0.1
c-0.1,0.1-0.1,0.1-0.2,0.1c-1,0.4-2,0.7-3,1c-0.1,0-0.2,0-0.4,0l0,0c0-0.1-0.1-0.1-0.1-0.1c0-0.1-0.1-0.1-0.1-0.2h-0.1v-0.1
c0-0.1-0.1-0.1-0.1-0.2c-0.9-2-1.9-4-2.7-6c-0.7-1.9-1.8-3.2-3.8-3.8c-0.2-0.1-0.4-0.1-0.6-0.2c-3-0.6-5.9-1.2-8.8-1.8
c-1.4-0.2-2.8-0.4-4.2-0.6c-1.2-0.1-2.3-0.4-3.5-0.5c-1.3-0.1-2.7-0.3-4-0.4c-0.1,0-0.2-0.1-0.4-0.1c-0.8-0.1-1.7-0.2-2.6-0.3
c-1.2-0.1-2.4-0.3-3.6-0.4c-0.3,0-0.5,0-0.8,0c-0.1,0-0.2,0-0.4-0.1c-0.4,0-0.9-0.1-1.3-0.1c-0.1,0-0.3,0-0.4-0.1
c-0.5,0-1-0.1-1.5-0.1c-0.2,0-0.4-0.1-0.6-0.1c-0.4,0-0.9,0-1.3-0.1c-0.4,0-0.7-0.1-1-0.1c-0.5,0-1,0-1.5-0.1
c-0.2,0-0.5-0.1-0.7-0.1c-0.4,0-0.9,0-1.3-0.1c-0.3-0.1-0.6-0.1-0.8-0.1c-0.4,0-0.8,0-1.2,0c-0.3,0-0.6-0.1-0.8-0.1
c-0.4,0-0.8,0-1.2,0c-0.3,0-0.6-0.1-0.8-0.1c-0.4,0-0.8,0-1.2,0c-0.3,0-0.6-0.1-0.9-0.1c-0.4,0-0.8,0-1.3-0.1
c-0.3-0.1-0.6-0.1-0.8-0.1c-1.5-0.1-3-0.1-4.4-0.2c-1,0-2-0.1-3-0.1c-7-0.1-14-0.1-21-0.1c-2.8,0-5.6,0-8.5,0.1
c-0.8,0-1.5,0.1-2.3,0.1c-0.1,0-0.3,0-0.4,0c-0.7,0-1.4,0-2.1,0.1c-0.5,0-0.9,0.1-1.4,0.1c-0.6,0-1.1,0-1.6,0l0,0
c-0.6,0.1-1.1,0.1-1.6,0.1c-0.5,0-1,0-1.5,0c-0.5,0.1-1,0.1-1.5,0.1c-0.5,0-1,0-1.5,0c-0.4,0.1-0.8,0.1-1.2,0.1c-0.6,0-1.1,0-1.6,0
c-0.4,0-0.8,0.1-1.2,0.1c-0.4,0-0.8,0-1.1,0c-0.4,0.1-0.8,0.1-1.2,0.1c-0.4,0-0.8,0-1.3,0.1c-0.3,0-0.6,0.1-0.9,0.1
c-0.2,0-0.5,0-0.7,0c-0.1,0-0.3,0.1-0.4,0.1c-0.2,0-0.4,0.1-0.6,0.1c-0.4,0-0.8,0.1-1.1,0.1c-0.1,0-0.3,0.1-0.4,0.1
c-0.4,0-0.7,0-1.1,0.1c-0.1,0-0.3,0.1-0.5,0.1c-0.3,0-0.6,0.1-0.8,0.1c-0.1,0-0.3,0.1-0.5,0.1c-0.5,0.1-1,0.1-1.5,0.1
c-1.6,0.2-3.3,0.4-4.9,0.6l-20.7,2.8c0,0,2.9,5.5,3.5,6.8c0.7,1.6,1.6,3.2,2.4,4.7c0.1,0.1,0.1,0.1,0.1,0.2h0.1v0.1
c0.1,0.1,0.1,0.2,0.1,0.4l0,0c0.1,0.1,0.1,0.2,0.1,0.3l0,0c0.1,0.1,0.1,0.2,0.1,0.3l0,0c1.5,2.7,2.9,5.5,4.4,8.2
c0.8,1.4,1.5,2.9,2.2,4.4c0.1,0.1,0.1,0.1,0.1,0.2c0.1,0,0.1,0.1,0.1,0.1c0.7,1.4,1.4,2.7,2.1,4.1c1.2,2.4,2.4,5,3.6,7.4
c0.1,0.1,0.1,0.1,0.1,0.3v0.1h0.1v0.1c0.1,0.1,0.1,0.1,0.1,0.2c0.4,0.8,0.8,1.6,1.2,2.4c1.5,3,3,5.9,4.4,8.8c0.2,0.5,0.5,1,0.7,1.5
c0.1,0.1,0.1,0.3,0.2,0.4c0,0.1,0.1,0.1,0.1,0.1c0.1,0.2,0.1,0.4,0.2,0.6h0.1v0.1c0,0.1,0.1,0.2,0.1,0.3c0,0.1,0.1,0.1,0.1,0.1
c0,0.1,0.1,0.1,0.1,0.2h0.1l0,0c0,0.1,0.1,0.2,0.1,0.4l0.1,0.1v0.1c0,0.1,0,0.1,0,0.2c0.1,0.1,0.1,0.1,0.1,0.2c0,0.1,0,0.1,0,0.2
c0.1,0.1,0.1,0.4,0.2,0.5c2,6.1,4,12.2,6.1,18.4c0,0.1,0,0.1,0,0.2c0.7,2.7,1.4,5.3,2,8c1.1,5.3,2.1,10.5,3.1,15.8
c0.4,2.2,0.7,4.5,1.1,6.8l0,0l0.1,0.1v0.1c0,0.2,0.1,0.4,0.1,0.6c0,0.1,0.1,0.1,0.1,0.2c0,0.2,0,0.4,0.1,0.6c0,0.1,0.1,0.2,0.1,0.3
c0,0.2,0,0.4,0.1,0.6c0.1,0.1,0.1,0.3,0.1,0.4c0,0.2,0,0.4,0.1,0.6c0,0.1,0.1,0.2,0.1,0.3c0,0.2,0,0.4,0,0.6c0,0.1,0.1,0.2,0.1,0.3
c0,0.2,0,0.5,0.1,0.7c0,0.1,0.1,0.3,0.1,0.4c0,0.1,0,0.2,0,0.3c0,0.1,0,0.1,0,0.1s0.1,0.2,0.1,0.3c0,0.1,0.1,0.3,0.1,0.4
c0,0.2,0,0.5,0,0.7c0,0.2,0.1,0.4,0.1,0.6c0,0.1,0,0.3,0,0.4v0.1c0,0,0,0,0,0.1c0,0.1,0,0.1,0,0.2c0.1,0.3,0.1,0.6,0.1,0.8
c0,0.2,0,0.4,0,0.6c0.1,0.1,0.1,0.1,0,0.1c0,0.1,0,0.1,0,0.2c0.1,0.3,0.1,0.6,0.1,0.9c0,0.1,0,0.3,0,0.4c0,0.1,0,0.1,0,0.1
c0,0.1,0,0.1,0,0.2c0.1,0.3,0.1,0.6,0.1,0.9c0.2,3.2,0.5,6.3,0.7,9.4c1.1,1,2.2,2,3.2,3c2.5,2.6,5.2,5,6.8,8.1
c1.8,3.5,2.3,7.2,2.1,11c-0.1,0.9,0.1,1.7,0.4,2.4c0.3,0.5,0.4,1.1,0.6,1.6c0.2,0.8,0.4,1.5,0.6,2.3c0.1,0.1,0.1,0.2,0.1,0.4
c0,0.1,0,0.4,0,0.5c0.1,0.1,0.1,0.3,0.1,0.5c0,0.3,0,0.6,0,0.9c0,0.9,0,1.7,0,2.6c0,0.3,0,0.5,0,0.8c-0.1,0.2-0.1,0.4-0.1,0.6
c0,0.1,0,0.3,0,0.4c-0.1,0.1-0.1,0.3-0.1,0.4c0,0.1,0,0.3,0,0.4c-0.1,0.1-0.1,0.2-0.1,0.4c-0.1,0.4-0.1,0.6-0.1,1
c0.1,0.2,0.1,0.5,0.1,0.7c0,1.2,0,2.3,0,3.5c-0.1,0.2-0.1,0.5-0.1,0.7c0,0.2,0,0.4,0,0.6c-0.1,0.1-0.1,0.3-0.1,0.4
c0,0.1,0,0.3,0,0.4c-0.1,0.1-0.1,0.2-0.1,0.4c0,0.1,0,0.1,0,0.1c0.1,0.1,0.1,0.3,0.1,0.4c0,0.1,0,0.2,0,0.3
c0.1,0.1,0.1,0.3,0.1,0.4c0,0.1,0,0.4,0,0.5c0.1,0.1,0.1,0.3,0.1,0.5c0.1,0,0.1,0,0.1,0.1c0.1,0,0.1,0.1,0.1,0.1
c0.1,0,0.2,0,0.3,0.1c0.1,0,0.1,0.1,0.2,0.1s0.1,0,0.3,0.1c0.1,0,0.1,0.1,0.2,0.1c1.9,0.6,3.7,1.5,5.2,2.9c1.3,1.3,2.5,2.6,4,4.1
c2,0.1,4.3,0.1,6.7,0.1c0.3,0,0.6,0.1,0.8,0.1c0.8-0.1,1.6-0.1,2.4-0.1c1.5,0,3,0,4.4,0c0.7-0.9,1.4-1.8,2-2.7
c1.2-0.9,2.3-2.1,3.5-2.8c1.5-0.9,3.2-1.4,4.8-2.1c0.1-0.7,0.4-1.4,0.5-2.1c0.3-1.2,0.6-2.4,0.7-3.7c0.1-0.8,0-1.7,0-2.4
c0-1.7,0.1-3.4,0.1-5.1c0-0.7,0-1.4-0.1-2.2c-0.6-3.3-0.1-6.6,1.1-9.7c0.2-0.5,0.4-1.1,0.7-1.6c0.4-0.7,0.6-1.6,0.6-2.4
c0.1-0.2,0.1-0.4,0.1-0.6c0-0.1,0-0.3,0-0.4c0.1-0.1,0.1-0.3,0.1-0.4c0.1-0.6,0.3-1.3,0.4-1.9c0.6-2.4,1.8-4.7,3.5-6.6
c0.8-0.8,1.6-1.6,2.4-2.3c0.1-0.1,0.2-0.2,0.4-0.4c0.1-0.1,0.1-0.1,0.2-0.2c0.1-0.1,0.1-0.1,0.1-0.2l0.1-0.1c1.2-1.7,2.8-3,4.5-4.2
c0-0.4,0.1-0.6,0.1-0.9c0-0.1,0.1-0.3,0.1-0.4c0-0.5,0.1-1,0.1-1.4c0-0.1,0.1-0.2,0.1-0.3c0-0.4,0.1-0.9,0.1-1.3
c0-0.1,0.1-0.3,0.1-0.4c0-0.4,0.1-0.8,0.1-1.2c0-0.1,0.1-0.3,0.1-0.4c0-0.4,0.1-0.7,0.1-1.2c0-0.2,0.1-0.4,0.1-0.6
c0-0.4,0-0.9,0.1-1.3c0-0.2,0.1-0.5,0.1-0.7c0-0.4,0-0.8,0.1-1.2c0.4-2,0.7-4,1-6c0-0.1,0-0.1,0-0.1c0.4-1.2,0.8-2.4,1.3-3.7
c0.1-0.1,0.1-0.3,0.1-0.4c0-0.1,0.1-0.2,0.1-0.4v-0.1c0,0,0,0,0.1,0c0-0.1,0.1-0.2,0.1-0.3v-0.1h0.1c0-0.1,0.1-0.2,0.1-0.3
s0.1-0.1,0.1-0.1c0-0.1,0.1-0.2,0.1-0.3c0-0.1,0.1-0.1,0.1-0.2c0-0.1,0.1-0.2,0.1-0.4c0-0.1,0.1-0.1,0.1-0.1s0-0.2,0.1-0.3
c0.1-0.1,0.1-0.1,0.1-0.2c0-0.1,0-0.2,0-0.4c0-0.1,0.1-0.1,0.1-0.1c0-0.1,0-0.3,0.1-0.4c0-0.1,0.1-0.1,0.1-0.1
c0.1-0.4,0.2-0.8,0.3-1.2c0.5-1.3,1-2.6,1.5-3.9c0.4-1,0.8-2.1,1.2-3.2c-0.4,0-0.6,0-0.9,0c-13.2,0-26.4,0-39.6,0
c-0.3,0-0.6-0.1-0.8-0.1c-0.4-2.2-0.9-4.4-1.3-6.6c-1.6-8.6-3.3-17.2-4.9-25.9c-0.1-0.2-0.1-0.5-0.1-0.8c3.8,0,7.6,0,11.4,0
c1.9,0,3.8,0,5.7,0c1.8,0,3.6,0,5.4,0c2.3,0,4.5,0,6.8,0c1.2,0,2.5,0,3.7,0s2.5,0,3.7,0c1.5,0,3,0,4.4,0c1.7,0,3.3,0,5,0
c2.3,0,4.6,0,6.9,0c1.1,0,2.2,0,3.2,0c1.2,0,2.3,0,3.5,0c2.8,0,5.6,0,8.4,0c1.8,0,3.5,0,5.3,0c2.6,0,5.2,0,7.8,0
c2.8,0.1,5.5,0.1,8.2,0.2c1.3,0.1,2.6,0.1,4,0.1c-4,10.7-7.9,21.2-11.8,31.8c-1.1,4-2.3,8-3.4,12c-0.6,2.2-1.3,4.5-2,6.8
c0,0.1-0.1,0.1-0.1,0.1s0,0.2-0.1,0.3c0,0.1-0.1,0.1-0.1,0.1c0,0.1-0.1,0.2-0.1,0.3c0,0.1-0.1,0.2-0.1,0.3c0,0.1,0,0.2,0,0.3
c-0.1,0.1-0.1,0.1-0.1,0.1c-0.5,1.8-1,3.6-1.5,5.4c-0.1,0.6-0.4,1.2-0.6,1.7c-0.7,2.5-1.5,5.1-2.1,7.6c-0.4,1.3-0.4,2.7-0.5,4
c-0.4,4.1-0.6,8.2-2.5,12c-0.1,0.1-0.1,0.2-0.2,0.3c-1.9,3.7-4.5,6.9-8.1,9.1c-1.4,1.5-1.3,1.4-1,3.8c0.2,1.7,0.4,3.3,0.1,5
c-0.2,1.6-0.1,3.2-0.1,4.8c0.2,3.2-0.4,6.1-1.8,9c-0.3,0.6-0.6,1.2-0.9,1.8c0,0.1,0,0.3,0,0.4c0,0.1,0,0.3,0,0.4c0,0.1,0,0.2,0,0.3
c0,0.1,0,0.1,0,0.1c-0.2,3.7-1.1,7.3-2.6,10.7c-0.1,0.3-0.4,0.6-0.5,0.9c-0.1,0.1-0.1,0.3-0.2,0.4c-0.1,0.1-0.1,0.1-0.1,0.2
c-1,1.8-2.3,3.3-3.7,4.8c-1.1,1.1-2,2.2-3,3.2c-0.3,0.3-0.6,0.5-0.8,0.8c-1.3,0.9-2.5,1.9-3.8,2.9c-0.9,0.5-1.9,1-2.8,1.4
c-0.9,1.1-1.8,2.1-2.6,3.1c-1.1,0.9-2.3,1.9-3.3,2.9c-1.2,0.6-2.5,1.4-3.7,2l0,0c-0.1,0-0.1,0.1-0.1,0.1c-1.3,0.4-2.5,0.8-3.8,1.2
c-1.5,0.3-3,0.6-4.4,0.9c-0.2,0.1-0.4,0.1-0.6,0.1c-1.3,0.1-2.5,0.2-3.7,0.3c-3,0.1-6,0.1-9,0.1c-3.7-0.1-7.3-0.1-10.9-0.3
c-0.4,0-0.8-0.1-1.3-0.1c-2.1-0.4-4.2-0.6-6.4-1c-0.1-0.1-0.2-0.1-0.4-0.1c-0.1,0-0.1,0-0.2,0c-3.2-0.6-5.9-2.2-8.4-4.3l-0.1-0.1
c0,0-0.1,0-0.1-0.1l-0.1-0.1l-0.1-0.1c-0.1,0-0.1-0.1-0.1-0.1l0,0c-0.1-0.1-0.1-0.1-0.1-0.1l0,0c-0.1-0.1-0.1-0.1-0.1-0.1l0,0
c-0.1-0.1-0.1-0.1-0.1-0.1l0,0c-0.1-0.1-0.1-0.1-0.1-0.1l0,0c-0.1-0.1-0.1-0.1-0.1-0.1l0,0c0-0.1-0.1-0.1-0.1-0.1v-0.1
c-0.1-0.1-0.1-0.1-0.1-0.1l-0.1-0.1c-0.1,0-0.1,0-0.1-0.1c-0.7-0.9-1.4-1.8-2.1-2.6c-0.2-0.3-0.6-0.4-0.9-0.6
c-0.6-0.4-1.1-0.6-1.7-0.9c-0.2-0.1-0.4-0.2-0.6-0.3l0,0c-0.1-0.1-0.3-0.1-0.4-0.3c-2.2-1.4-4.1-3-5.8-5c-2.6-2.7-5.7-5-7.7-8.4
c-0.1-0.2-0.3-0.5-0.4-0.8c-1.1-1.9-1.8-3.9-2-6c-0.1-1.4-0.1-2.9-0.2-4.3c-0.1-1-0.4-2-0.6-3c-0.4-2.4-0.3-4.8,0.1-7.3
c0.1-0.7-0.1-1.6-0.2-2.3c-0.4-2.7-0.1-5.3,0.6-7.9c0.2-0.8,0.2-1.7,0.3-2.2c-0.7-1.7-1.8-2.5-3-3.3c-0.2-0.1-0.4-0.3-0.6-0.5
c-1.2-1.2-2.4-2.2-3.5-3.5c-1.3-1.4-2.2-3.2-2.8-5l0,0c-0.1-0.1-0.1-0.2-0.1-0.3c-0.9-2.1-1.4-4.3-1.6-6.6
c-0.1-2.2-0.4-4.2-0.5-6.4c-0.1-2.1-0.3-4.2-0.4-6.3c-0.1-1.4-0.2-2.8-0.4-4.2c-0.1-1.4-0.3-3-0.5-4.4c-0.2-1.9-0.4-4-0.8-5.9
c-0.5-3-1-6-1.5-9c-0.3-1.6-0.6-3.2-0.9-4.8c0-0.1,0-0.4-0.1-0.5c0,0-0.1-0.1,0-0.1c-0.1-0.1-0.1-0.3-0.1-0.5c0-0.1,0-0.1,0-0.2
c-0.1-0.1-0.1-0.4-0.1-0.5c0-0.1,0-0.1,0-0.1c-0.1-0.1-0.1-0.2-0.1-0.3c0-0.1,0-0.3-0.1-0.4c-0.1-0.1-0.1-0.3-0.1-0.5
c-0.4-1.7-0.8-3.4-1.3-5c-1.3-4.5-2.6-8.9-3.9-13.3c-0.1-0.2-0.1-0.4-0.1-0.6c-0.1-0.1-0.1-0.3-0.1-0.4c0-0.1-0.1-0.2-0.1-0.3
c-0.9-2.5-2-5-2.8-7.6c-1.1-3.8-2.9-7.3-4.7-10.7c-0.3-0.6-0.6-1.2-0.9-1.7c-1.3-2.4-2.7-4.8-4-7.2c-2.2-4.1-4.4-8.2-6.6-12.3
c-0.4-0.8-0.8-1.6-1.1-2.4c-1.5-2.9-3-5.7-4.4-8.6c-1.8-3.6-3-7.4-3.8-11.3c-0.7-3.3-0.9-6.6-0.6-9.9c0.7-7,3.1-13.3,7.6-18.8
c0.4-0.5,1-1,1.4-1.5c0.9-0.9,1.8-1.9,2.8-2.7c2.6-2.3,5.6-4.2,8.7-5.8c0.1-0.1,0.2-0.1,0.3-0.1c2.8-1.4,5.6-2.5,8.7-3.2
c1.7-0.4,3.3-0.7,5-1.2c0.1-0.1,0.2-0.1,0.3-0.1c0.1,0,0.2,0,0.3,0c1.6-0.3,3.1-0.6,4.7-0.9c0.1-0.1,0.2-0.1,0.3-0.1
c0.2,0,0.4,0,0.6-0.1c0.1,0,0.2-0.1,0.3-0.1c0.2,0,0.4,0,0.6,0c1.1-0.1,2-0.4,3.1-0.5c1.3-0.1,2.7-0.3,4-0.4c0.2,0,0.4-0.1,0.6-0.1
c0.1,0,0.2-0.1,0.3-0.1c0.3,0,0.6-0.1,0.9-0.1c0.1,0,0.2,0,0.3-0.1c1.2-0.1,2.3-0.2,3.5-0.3c1.5-0.1,3-0.3,4.4-0.4
c0.1,0,0.1,0,0.1,0c0.6-0.1,1.1-0.1,1.6-0.1c0.4-0.1,0.8-0.1,1.3-0.1c0.1,0,0.1,0,0.1,0c1.5-0.1,3-0.2,4.4-0.3
c3.2-0.1,6.4-0.3,9.5-0.4c0.2,0,0.5,0,0.7,0c1.8-0.1,3.5-0.1,5.3-0.1c3.9-0.1,7.8-0.2,11.6-0.3c4.1,0,8.1,0,12.2,0
c2.6,0,5.2,0,7.8,0c0.1,0,0.3,0.1,0.4,0.1c1.1,0.1,2.3,0.1,3.4,0.2c0.4,0.1,0.8,0.1,1.3,0.1c2.2,0.1,4.3,0.2,6.5,0.3
c0.4,0.1,0.8,0.1,1.2,0.1c0.8,0.1,1.8,0.1,2.6,0.1c1.2,0.1,2.3,0.1,3.5,0.1c0.3,0.1,0.6,0.1,0.9,0.1c0.8,0.1,1.6,0.1,2.5,0.1
c1.1,0.1,2,0.1,3.1,0.1c0.2,0,0.4,0,0.6,0.1c0.5,0,1,0.1,1.5,0.1c0.1,0,0.3,0,0.4,0.1c0.2,0,0.5,0.1,0.7,0.1
c1.1,0.1,2.2,0.1,3.2,0.3c0.2,0,0.4,0,0.6,0c0.1,0,0.1,0,0.2,0.1c0.4,0,0.7,0.1,1.1,0.1c0.1,0,0.3,0.1,0.4,0.1c0.3,0,0.5,0,0.8,0
c0.1,0,0.3,0.1,0.4,0.1c0.3,0,0.6,0,0.8,0.1c0.1,0,0.3,0.1,0.4,0.1c0.6,0.1,1.3,0.1,2,0.2c0.1,0,0.1,0.1,0.2,0.1
c0.1,0,0.1,0,0.2,0.1c1.2,0.1,2.3,0.3,3.5,0.4c1.3,0.2,2.7,0.4,4,0.6c1.4,0.2,2.8,0.4,4.2,0.6c1.6,0.2,3.2,0.5,4.9,0.8
c0.1,0,0.1,0.1,0.3,0.1c0.1,0,0.3,0,0.4,0c0.1,0,0.2,0.1,0.3,0.1c0.2,0,0.4,0.1,0.6,0.1c0,0,0.1,0,0.1,0.1c0.1,0,0.3,0,0.5,0.1
c0.1,0,0.1,0.1,0.2,0.1c0.1,0,0.4,0,0.5,0.1c0.1,0,0.1,0.1,0.1,0.1c0.1,0,0.3,0,0.4,0.1c0.1,0.1,0.2,0.1,0.3,0.1
c1.1,0.3,2.3,0.6,3.5,0.9c1,0.3,2,0.6,2.9,0.9c0.1,0.1,0.2,0.1,0.4,0.1c0.4,0.1,0.6,0.2,1,0.3c0.1,0.1,0.1,0.1,0.2,0.1
c2.8,0.9,5.4,2.4,7.8,4c5.5,3.8,9.4,8.9,12.3,14.8c1.5,3,2.5,6.2,3,9.6c0.1,1.2,0.4,2.4,0.6,3.7C412.8,260.8,412,261.1,411.1,261.4
z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 25 KiB

View file

@ -1,46 +0,0 @@
{
"name": "huegasm_mobile",
"version": "1.0.0",
"description": "Huegasm is a free web application for managing and synchronizing your Philips Hue lights with the beat of your music.",
"private": true,
"directories": {
"doc": "doc",
"test": "tests"
},
"scripts": {
"start": "ember server",
"build": "ember cordova:build --platform=android --environment=production --release",
"build-test": "ember cordova:build --platform=android",
"cordova": "ember cdv:serve --platform=android"
},
"engines": {
"node": ">= 6"
},
"author": "Egor Philippov",
"devDependencies": {
"broccoli-asset-rev": "^2.2.0",
"ember-cli": "^2.11.0",
"ember-cli-app-version": "^3.0.0",
"ember-cli-babel": "^6.0.0",
"ember-cli-dependency-checker": "^2.0.0",
"ember-cli-htmlbars": "^2.0.0",
"ember-cli-htmlbars-inline-precompile": "^0.4.0",
"ember-cli-inject-live-reload": "^1.3.1",
"ember-cli-nouislider": "^0.13.0",
"ember-cli-release": "^1.0.0-beta.2",
"ember-cli-sass": "^6.0.0",
"ember-cli-shims": "^1.0.2",
"ember-cli-sri": "^2.1.0",
"ember-cli-uglify": "^1.2.0",
"ember-cordova": "^0.4.0",
"ember-export-application-global": "^2.0.0",
"ember-inline-svg": "^0.1.7",
"ember-load-initializers": "^1.0.0",
"ember-notify": "^5.0.4",
"ember-paper": "^1.0.0-alpha.19",
"ember-resolver": "^4.0.0",
"ember-source": "^2.11.0",
"ember-truth-helpers": "^1.2.0",
"loader.js": "^4.0.7"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

View file

@ -1,19 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.2" baseProfile="tiny" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
x="0px" y="0px" viewBox="0 0 24 24" xml:space="preserve">
<g>
<path fill="none" d="M9.9,14.2c2.5,2.3,5,3.6,5.7,2.9c0.6-0.7-0.9-3.1-3.3-5.4c-2.5-2.3-5-3.6-5.7-2.9C5.9,9.5,7.4,11.9,9.9,14.2z"
/>
<path fill="#010202" d="M2.6,20.6L2.6,20.6c0.2,0.8,0.9,1.3,1.6,1.5c0.6,0.1,1,0,2.6-0.2c1.3-0.2,2.9,0,3.5,0
c-3.7-2.1-6.4-5.1-8-7.4c0.1,0.7,0.3,2.1,0.3,3.4C2.6,19.6,2.4,20,2.6,20.6z"/>
<path fill="#010202" d="M1.6,11.1c0.2,0.7,4.1,8.2,12.1,11.3l3.9,0.7c-3-1.4-6.5-3.8-9.7-6.8C5,13.5,2.4,10.4,0.8,7.6
C1,8.6,1.5,10.6,1.6,11.1z"/>
<path fill="#010202" d="M14.9,8.6C7.8,1.9,2.1-0.5,0.4,1.3c-0.9,0.9-0.3,3,1.2,5.6C1.1,5.6,1,4.4,1.7,3.6c0.3-0.4,0.9-0.8,2-0.8
c2.6,0,6.6,2.4,10.8,6.3c3.6,3.4,9,9.8,6.8,12.3c-0.3,0.3-0.8,0.7-1.8,0.7c-0.7,0-1.5-0.2-2.5-0.6c3.1,1.6,5.7,2.2,6.6,1.2
C25.3,20.9,21.2,14.3,14.9,8.6z"/>
<path fill="#010202" d="M9,15.1c4,3.6,8.3,6,10.5,6c0.5,0,0.8-0.1,1.1-0.4c1.2-1.4-2-6.3-6.8-10.9C9.5,5.8,5.8,3.9,3.7,3.9
c-0.6,0-1,0.2-1.3,0.4C1.2,5.7,4.2,10.7,9,15.1z M6.5,8.8c0.6-0.7,3.2,0.6,5.7,2.9c2.5,2.3,4,4.7,3.3,5.4c-0.6,0.7-3.2-0.6-5.7-2.9
C7.4,11.9,5.9,9.5,6.5,8.8z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.3 KiB

View file

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.2" baseProfile="tiny" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
x="0px" y="0px" viewBox="0 0 24 24" xml:space="preserve">
<path fill="#010202" d="M11.9,6.6c0.1,0,0.2,0,0.2,0c4.8,0.2,7.4,2.6,8.4,3.8H3.6C6.7,6.9,10.7,6.6,11.9,6.6z"/>
<path fill="#010202" d="M0,17.4c1.2-3.4,4.2-5.5,4.9-5.9h14.3c3,1.9,4.4,4.8,4.9,5.9H0z"/>
</svg>

Before

Width:  |  Height:  |  Size: 529 B

View file

@ -1,12 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.2" baseProfile="tiny" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
x="0px" y="0px" viewBox="0 0 24 24" xml:space="preserve">
<path fill="#010202" d="M5.8,18.2L5.8,18.2L5.8,18.2c-0.7-0.7-1.3-1.4-1.8-2l-3.8,4.1c0,0-0.5,0.5,0.1,0.7c0.6,0.2,2.5,0.9,7.3,0.6
c0.7,0,1.8-0.1,2.3-0.4C8.1,20.2,6.7,19,6,18.4L5.8,18.2z"/>
<path fill="#010202" d="M1.9,5c-0.7,2.9-0.6,7.5,4.6,12.6c1.2,1.1,5,4.6,10.1,5.1c1.8,0.2,2.8,0,4.3-0.6c0,0,0,0,0,0
c-3.3-0.4-8.1-3-11.8-6.6C5.2,11.9,2.6,8,1.9,5"/>
<path fill="#010202" d="M17,8.1C11.6,2.9,5.3-0.1,3.4,1.8c-2.1,2,0.8,7.8,6.3,13.1c5.5,5.2,11.9,7.4,13.7,5.8
C25.3,18.9,22.5,13.3,17,8.1 M20.3,17.6c-1.3,1.1-5.4-0.5-9.1-4c-3.7-3.6-5.9-7.4-4.5-8.9C7.9,3.5,12.2,5.5,16,9
S21.6,16.5,20.3,17.6"/>
</svg>

Before

Width:  |  Height:  |  Size: 924 B

View file

@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.2" baseProfile="tiny" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
x="0px" y="0px" viewBox="0 0 24 24" xml:space="preserve">
<path fill="#010202" d="M12,2.6c-7.5,0-9.4,0.7-9.4,0.7C2.8-0.1,12,0,12,0s9.2-0.1,9.4,3.2C21.4,3.2,19.7,2.6,12,2.6"/>
<path fill="#010202" d="M5,8h14c0,0,1.7-3,2-4H3C3,4,3.8,6.2,5,8"/>
<path fill="#010202" d="M11,9H6c0,0,3,1.5,3,8l0,1c0,0,0,1,1,1h1h2h1c1,0,1-1,1-1l0-1c0-6.5,3-8,3-8h-5H11z"/>
<path fill="#010202" d="M12,24c-1,0-1-1-1-1c-1,0-1-1-1-1v-2h4v2c0,0,0,1-1,1C13,23,13,24,12,24"/>
</svg>

Before

Width:  |  Height:  |  Size: 719 B

View file

@ -1,15 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.2" baseProfile="tiny" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
x="0px" y="0px" viewBox="0 0 24 24" xml:space="preserve">
<path d="M19.962,2.085C19.401,0.772,16.511,0,12.003,0C7.492,0,4.6,0.773,4.043,2.089C5.242,2.178,11.851,2.61,19.962,2.085z"/>
<path d="M12,20.19L12,20.19c-0.233,0-0.486-0.016-0.741-0.034c-0.42-0.018-0.839-0.05-1.258-0.098c0.01,0.741,0.028,2.206,0,2.622
c-0.018,0.284,0.518,0.614,1.032,0.745c0.428,0.111,0.569,0.345,0.652,0.485c0.014,0.023,0.033,0.055,0.038,0.06
c0.001,0,0.063,0.03,0.277,0.031h0c0.214-0.002,0.276-0.031,0.277-0.031c0.005-0.006,0.024-0.037,0.037-0.06
c0.084-0.14,0.224-0.374,0.652-0.485c0.514-0.131,1.05-0.461,1.032-0.745c-0.029-0.415-0.01-1.88,0-2.622
c-0.42,0.048-0.84,0.08-1.261,0.098C12.484,20.175,12.231,20.19,12,20.19z"/>
<path d="M19.996,3.084c-2.953,0.19-5.714,0.257-8.089,0.257c-4.095,0-7.043-0.19-7.898-0.253C3.968,4.201,4.084,4.666,5.32,6.025
l0.479,0.526C7.508,8.427,8.483,9.511,8.642,10c0.157,0.481,0.454,2.341,0.454,5.936c0,2.228,0.179,2.777,0.448,3.066
c1.629,0.243,3.291,0.243,4.918-0.001c0.268-0.289,0.447-0.84,0.447-3.065c0-3.595,0.297-5.454,0.454-5.936
c0.159-0.489,1.134-1.573,2.843-3.449l0.479-0.526C19.923,4.664,20.037,4.2,19.996,3.084z"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.4 KiB

View file

@ -1,18 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.2" baseProfile="tiny" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
x="0px" y="0px" viewBox="0 0 24 24" xml:space="preserve">
<g>
<circle fill="none" cx="12" cy="5.3" r="0.9"/>
<path fill="none" d="M12,8.7c-1.8,0-3.3,1.5-3.3,3.3s1.5,3.3,3.3,3.3s3.3-1.5,3.3-3.3S13.8,8.7,12,8.7z M12,14c-1.1,0-2-0.9-2-2
s0.9-2,2-2s2,0.9,2,2S13.1,14,12,14z"/>
<circle fill="none" cx="7.3" cy="7.3" r="0.9"/>
<circle fill="none" cx="5.4" cy="12" r="0.9"/>
<circle fill="#010202" cx="12" cy="12" r="2"/>
<path fill="#010202" d="M24,12c0-6.6-5.4-12-12-12H12C5.4,0,0,5.4,0,12c0,6.6,5.4,12,12,12h0C18.6,24,24,18.6,24,12L24,12z M12,4.4
c0.5,0,0.9,0.4,0.9,0.9c0,0.5-0.4,0.9-0.9,0.9c-0.5,0-0.9-0.4-0.9-0.9C11.1,4.8,11.5,4.4,12,4.4z M5.4,12.9c-0.5,0-0.9-0.4-0.9-0.9
c0-0.5,0.4-0.9,0.9-0.9c0.5,0,0.9,0.4,0.9,0.9C6.3,12.5,5.9,12.9,5.4,12.9z M7.3,8.3c-0.5,0-0.9-0.4-0.9-0.9c0-0.5,0.4-0.9,0.9-0.9
c0.5,0,0.9,0.4,0.9,0.9C8.2,7.8,7.8,8.3,7.3,8.3z M12,15.3c-1.8,0-3.3-1.5-3.3-3.3s1.5-3.3,3.3-3.3s3.3,1.5,3.3,3.3
S13.8,15.3,12,15.3z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.2 KiB

View file

@ -1,19 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.2" baseProfile="tiny" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
x="0px" y="0px" viewBox="0 0 24 24" xml:space="preserve">
<g>
<circle fill="none" cx="6.7" cy="4.2" r="0.9"/>
<circle fill="none" cx="11.9" cy="4.2" r="0.9"/>
<circle fill="none" cx="17.2" cy="4.2" r="0.9"/>
<path fill="none" d="M11.9,7.5c-2.5,0-4.6,2-4.6,4.6c0,2.5,2,4.6,4.6,4.6c2.5,0,4.6-2,4.6-4.6C16.5,9.6,14.5,7.5,11.9,7.5z
M11.9,15.3c-1.8,0-3.3-1.5-3.3-3.3c0-1.8,1.5-3.3,3.3-3.3c1.8,0,3.3,1.5,3.3,3.3C15.2,13.9,13.7,15.3,11.9,15.3z"/>
<path fill="#010202" d="M24,18V6c0-0.1,0-1.5-0.7-3C22.6,1.7,21.1,0,18,0H6C6,0,4.5,0,3.1,0.7C1.7,1.4,0,2.9,0,6V18
c0,0.1,0,1.5,0.7,3C1.4,22.3,2.9,24,6,24H18c0.1,0,1.5,0,3-0.7C22.3,22.6,24,21.1,24,18z M11.9,3.3c0.5,0,0.9,0.4,0.9,0.9
c0,0.5-0.4,0.9-0.9,0.9c-0.5,0-0.9-0.4-0.9-0.9C11,3.7,11.4,3.3,11.9,3.3z M5.8,4.2c0-0.5,0.4-0.9,0.9-0.9c0.5,0,0.9,0.4,0.9,0.9
c0,0.5-0.4,0.9-0.9,0.9C6.2,5.1,5.8,4.7,5.8,4.2z M11.9,16.6c-2.5,0-4.6-2-4.6-4.6c0-2.5,2-4.6,4.6-4.6c2.5,0,4.6,2,4.6,4.6
C16.5,14.6,14.5,16.6,11.9,16.6z M17.2,5.1c-0.5,0-0.9-0.4-0.9-0.9c0-0.5,0.4-0.9,0.9-0.9c0.5,0,0.9,0.4,0.9,0.9
C18.1,4.7,17.7,5.1,17.2,5.1z"/>
<circle fill="#010202" cx="11.9" cy="12.1" r="3.3"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.4 KiB

View file

@ -1,11 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.2" baseProfile="tiny" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
x="0px" y="0px" viewBox="0 0 100 100" xml:space="preserve">
<g>
<path fill="#1D1D1B" d="M100,64.612C99.982,54.318,80.432,45.98,50.001,45.98c-30.188,0-50,8.346-50,18.646
s22.592,18.646,50,18.646c27.397,0,49.981-8.339,49.999-18.633V64.612z"/>
<path fill="#1D1D1B" d="M100,49.523V38.152c0-11.833-19.554-21.425-50-21.425c-30.183,0-50,9.592-50,21.425v11.371
c8.333-7.483,27.217-11.875,50-11.875S91.667,42.04,100,49.523z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 701 B

View file

@ -1,13 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.2" baseProfile="tiny" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
x="0px" y="0px" viewBox="0 0 100 100" xml:space="preserve">
<g>
<path fill="#1D1D1B" d="M98.281,30.584L46.368,8.547c-0.204-0.088-0.413-0.167-0.621-0.167c-0.271,0-0.546,0.058-0.804,0.204
L1.535,33.042c-1.042,0.588-1.533,2-1.533,3.408v16.9L40.843,30.33c1.504-0.85,3.2-1.3,4.904-1.3c1.329,0,2.633,0.267,3.867,0.788
l50.379,21.321L100,37.567v-3.401C99.998,32.661,99.425,31.068,98.281,30.584z"/>
<path fill="#1D1D1B" d="M100,62.9c-0.01-1.482-0.585-2.957-1.72-3.438L46.367,37.49c-0.204-0.083-0.412-0.129-0.621-0.129
c-0.271,0-0.546,0.075-0.804,0.221L1.534,62.049c-2.162,1.221-2,6.017,0.237,6.879l47.958,18.5
c0.188,0.075,0.379,0.108,0.571,0.108c0.217,0,0.438-0.046,0.646-0.138l47.362-21c1.13-0.5,1.692-1.982,1.691-3.463V62.9z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1,010 B

View file

@ -1,11 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.2" baseProfile="tiny" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
x="0px" y="0px" viewBox="0 0 24 24" xml:space="preserve">
<g id="Layer_2">
<g>
<path fill="#010202" d="M12,3.7c-6.4,0-11.7,4.8-12,7.8h24C23.7,8.4,18.4,3.7,12,3.7z"/>
<path fill="#010202" d="M12,20.3c6.4,0,11.6-5,12-7.8H0C0.4,15.2,5.6,20.3,12,20.3z"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 539 B

View file

@ -1,10 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.2" baseProfile="tiny" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
x="0px" y="0px" viewBox="0 0 24 24" xml:space="preserve">
<g>
<path d="M4,3h16c0-1.657-1.343-3-3-3H7C5.343,0,4,1.343,4,3z"/>
<path d="M18,23.016v-0.032C18,22.441,17.56,22,17.016,22H13V4h-2v18H6.985C6.441,22,6,22.441,6,22.984v0.032
C6,23.559,6.441,24,6.985,24h10.031C17.56,24,18,23.559,18,23.016z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 580 B

View file

@ -1,10 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.2" baseProfile="tiny" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
x="0px" y="0px" viewBox="0 0 24 24" xml:space="preserve">
<path fill="#010202" d="M4.5,22.8c0.6,0.4,1.5,0.4,2.2-0.1c-1-0.6-2-1.4-2.8-2.2C3.7,21.4,3.9,22.3,4.5,22.8"/>
<path fill="#010202" d="M17.9,7.5c4.4,5.4,6.5,10.9,4.8,12.3c-1.7,1.4-6.7-1.8-11-7.2C7.3,7.2,5.1,1.7,6.9,0.3
C8.6-1.1,13.5,2.1,17.9,7.5"/>
<path fill="#010202" d="M10,13.9c-2.2-2.8-4-5.7-5-8.2C4.2,3.7,4,2.1,4.2,1C1.6,3.9-1.6,9.5,3.1,17.8c2,3.3,6.6,6.1,11.6,6.2
c2.5,0,4.8-0.7,6.7-1.8C17.9,22.1,13.2,17.9,10,13.9"/>
</svg>

Before

Width:  |  Height:  |  Size: 755 B

View file

@ -1,19 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.2" baseProfile="tiny" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
x="0px" y="0px" viewBox="0 0 24 24" xml:space="preserve">
<path d="M10.495,24.005H9.499C9.223,24.005,9,23.78,9,23.504v-0.772c0-0.276,0.223-0.501,0.499-0.501h0.997
c0.276,0,0.501,0.225,0.501,0.501v0.772C10.996,23.78,10.771,24.005,10.495,24.005z"/>
<path d="M14.497,24.005h-0.997c-0.276,0-0.499-0.225-0.499-0.501v-0.772c0-0.276,0.223-0.501,0.499-0.501h0.997
c0.276,0,0.501,0.225,0.501,0.501v0.772C14.998,23.78,14.773,24.005,14.497,24.005z"/>
<g>
<path d="M11.995,0.006C7.579,0.006,4,1.351,4,3.011c0,1.66,3.58,3.005,7.995,3.005c4.416,0,7.995-1.345,7.995-3.005
C19.99,1.351,16.411,0.006,11.995,0.006z M11.995,4.715c-2.959,0-5.358-0.806-5.358-1.8c0-0.994,2.399-1.8,5.358-1.8
c2.959,0,5.358,0.805,5.358,1.8C17.353,3.909,14.954,4.715,11.995,4.715z"/>
</g>
<path d="M12,12c-2.754,0-3.221-3.542-3.296-5.293c-1.55-0.262-2.939-0.702-3.91-1.332c0.122,1.703,0.448,5.096,1.191,6.524
C6.825,13.515,8,15.216,8,15.216v5.135c0,0,1.229,1.631,4,1.65c2.771-0.019,4-1.65,4-1.65v-5.135c0,0,1.175-1.701,2.015-3.317
c0.679-1.304,0.955-4.249,1.065-6.047c-1.048,0.468-2.373,0.785-3.785,0.968C15.215,8.602,14.691,12,12,12z"/>
<path d="M12,11c0.464,0,0.848-0.152,1.161-0.469c0.791-0.802,1.059-2.424,1.129-3.607c-0.635,0.051-1.658,0.079-2.295,0.079
c-0.889,0-1.411-0.052-2.284-0.152c0.071,1.188,0.347,2.855,1.158,3.674C11.186,10.846,11.531,11,12,11z"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.6 KiB

View file

@ -1,19 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.2" baseProfile="tiny" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
x="0px" y="0px" viewBox="0 0 24 24" xml:space="preserve">
<path fill="#010202" d="M10.495,24.005H9.499C9.223,24.005,9,23.78,9,23.504v-0.772c0-0.276,0.223-0.501,0.499-0.501h0.997
c0.276,0,0.501,0.225,0.501,0.501v0.772C10.996,23.78,10.771,24.005,10.495,24.005z"/>
<path fill="#010202" d="M15.495,24.005h-0.997c-0.276,0-0.499-0.225-0.499-0.501v-0.772c0-0.276,0.223-0.501,0.499-0.501h0.997
c0.276,0,0.501,0.225,0.501,0.501v0.772C15.996,23.78,15.771,24.005,15.495,24.005z"/>
<g>
<path fill="#010202" d="M12.246-0.029c-5.419,0-9.814,1.411-9.814,3.149s4.394,3.149,9.814,3.149c5.417,0,9.812-1.411,9.812-3.149
S17.664-0.029,12.246-0.029z M12.245,4.984c-4.466,0-8.087-0.833-8.087-1.865c0-1.029,3.621-1.864,8.087-1.864
c4.468,0,8.089,0.835,8.089,1.864C20.334,4.151,16.713,4.984,12.245,4.984z"/>
</g>
<g>
<path fill="#010202" d="M2.98,5.396c0.958,5.965,3.812,8.333,3.994,8.504c0.196,0.182,0.775,1.018,0.775,1.771v5.191
c0,0.148,2.064,1.22,3.5,1.22h2.487c1.589,0,3.012-1.076,3.012-1.22v-5.191c0-0.871,0.512-1.507,0.766-1.771
c0.236-0.247,3.005-2.548,3.926-8.5c-2.026,1.271-5.699,1.869-9.226,1.869C8.683,7.269,5.005,6.67,2.98,5.396z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.4 KiB

View file

@ -1,8 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.2" baseProfile="tiny" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
x="0px" y="0px" viewBox="0 0 24 24" xml:space="preserve">
<path fill="#010202" d="M18.9,0H5.1C4.9,0,4.8,0.1,4.8,0.3v23.4c0,0.2,0.1,0.3,0.3,0.3h13.9c0.2,0,0.3-0.1,0.3-0.3V0.3
C19.2,0.1,19.1,0,18.9,0z M15,20.9C15,21,15,21,15,20.9l-6,0c0,0,0,0,0,0v-4.4h6V20.9z M15,15.1H9v-2.4h6V15.1z M15,11.3H9V9.1h6
V11.3z M15,7.7H9V3.1c0,0,0,0,0,0H15c0,0,0,0,0,0V7.7z"/>
</svg>

Before

Width:  |  Height:  |  Size: 629 B

View file

@ -1,11 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.2" baseProfile="tiny" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
x="0px" y="0px" viewBox="0 0 24 24" xml:space="preserve">
<g id="Layer_2">
<g>
<path fill="#010202" d="M12,18.8c6.4,0,11.7-2.8,12-6.3H0C0.3,16.1,5.6,18.8,12,18.8z"/>
<path fill="#010202" d="M12,5.2c-6.4,0-11.7,2.8-12,6.3h24C23.7,7.9,18.4,5.2,12,5.2z"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 541 B

View file

@ -1,14 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.2" baseProfile="tiny" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
x="0px" y="0px" viewBox="0 0 24 24" xml:space="preserve">
<path fill="#010202" d="M10.7,17.4c-1.5,0.8-2.8,2.2-3.4,2.9c0.1,0.3,0.2,0.6-0.1,0.7c-0.6,0.5-1.6,0.2-2.6-0.6
c-1-0.8-0.8-1.8-0.5-2.1c0.1-0.1,0.3-0.1,0.5-0.1c1.1-1.1,1.6-2.7,2-4.1c-3.2-3-4.4-5.6-4.8-7.3c-1.2,2.3-2,5-1.7,7.6
c0.7,6.3,6.4,9,9.1,9.3c1.7,0.2,3.6,0,5.4-0.7c1.6-0.6,3.1-1.7,4.5-2.9c-0.2,0-0.4,0-0.6,0C16.9,20.3,14.3,19.7,10.7,17.4"/>
<path fill="#010202" d="M11.2,11.8L11.2,11.8L11.2,11.8C7.5,9,5,5.6,4.3,3C3.8,3.7,3.3,4.4,2.7,5.2C2.7,5.3,2.6,5.5,2.5,5.6
c0.1,1,0.6,4.9,6.7,9.6c6,4.6,9.6,4.5,11.2,3.7c0.1-0.1,0.1-0.1,0.2-0.2c0.6-0.6,1.1-1.3,1.6-2c-0.1,0-0.2,0-0.4,0
C19.1,16.7,15.5,15.1,11.2,11.8"/>
<path fill="#010202" d="M18.8,5.3C14.6,1.7,10.7,0,8.4,0C6.2,0,6.1,1.1,6.1,1.8c0.1,2,2.5,5.5,6.2,8.4c7.3,5.5,10.8,5,11.5,3.6
C24.6,12.1,22.4,8.4,18.8,5.3 M19.1,11c-0.4,0.7-2.1,0.9-5.7-1.9c-1.9-1.5-2.9-2.9-3-4c0-0.3-0.1-1.1,1-1.1c1.2,0,3.1,0.8,5.2,2.7
C17.7,7.5,19.7,9.6,19.1,11"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.2 KiB

View file

@ -1,13 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.2" baseProfile="tiny" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
x="0px" y="0px" viewBox="0 0 24 24" xml:space="preserve">
<path fill="#010202" d="M16.6,0H0v5h16.9c0,0,6.1-0.4,7.1,4.7V5.1C24,5.1,24.2,0,16.6,0 M3,3H2V2h1V3z M8,3H7V2h1V3z M13,3h-1V2h1V3
z M18,3h-1V2h1V3z M22,4.7L21.3,4L22,3.3L22.7,4L22,4.7z"/>
<path fill="#010202" d="M7.2,19c0,0-6.2,0.4-7.2-4.7v4.6c0,0-0.1,5.1,7.4,5.1H24v-5H7.2z M2,20.7L1.3,20L2,19.3L2.7,20L2,20.7z
M7,22H6v-1h1V22z M12,22h-1v-1h1V22z M17,22h-1v-1h1V22z M22,22h-1v-1h1V22z"/>
<path fill="#010202" d="M5.4,15.4c-1.2,0.4-2,0.7-2.4,1.3c0,0-0.1,0.2-0.1,0.4c0,0,0,0,0,0c-0.2-0.1-0.3-0.2-0.5-0.4
c-0.8-0.8-1.4-1.8-1.4-3c0-0.2,0-0.5,0.1-0.8c0.1-0.5,0.3-1,0.5-1.4c0,0,0,0,0,0c2.2-1.8,6.2-1.8,6.2-1.8L13,9.3
c2.1-0.2,4.3-0.4,5.6-0.7C20,8.3,20.7,7.7,21,7l0,0c0,0,0,0,0,0c0,0,0,0,0,0c0,0,0.1,0.1,0.3,0.3c1,0.8,1.7,2,1.7,3.4
c0,0.1,0,0.3,0,0.4c0,0.4-0.1,0.8-0.3,1.2c0,0,0,0,0,0l0,0c-2.2,2-6.5,2-6.5,2S6.2,15.1,5.4,15.4"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

View file

@ -1,15 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.2" baseProfile="tiny" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
x="0px" y="0px" viewBox="0 0 24 24" xml:space="preserve">
<g>
<circle fill="none" cx="12" cy="4.634" r="0.837"/>
<path fill="none" d="M12,6.8c-2.867,0-5.2,2.332-5.2,5.2s2.333,5.2,5.2,5.2c2.868,0,5.2-2.332,5.2-5.2S14.868,6.8,12,6.8z
M12,15.275c-1.807,0-3.276-1.469-3.276-3.275c0-1.807,1.469-3.276,3.276-3.276c1.806,0,3.276,1.469,3.276,3.276
C15.276,13.806,13.806,15.275,12,15.275z"/>
<circle cx="12" cy="12" r="3.276"/>
<path d="M24,19V5c0-2.761-2.238-5-5-5H5C2.24,0,0.002,2.237,0,4.996v14.008C0.002,21.763,2.24,24,5,24h14
C21.762,24,24,21.761,24,19z M12,3.798c0.462,0,0.837,0.375,0.837,0.836S12.462,5.471,12,5.471c-0.461,0-0.836-0.376-0.836-0.837
S11.539,3.798,12,3.798z M12,17.2c-2.867,0-5.2-2.332-5.2-5.2S9.133,6.8,12,6.8c2.868,0,5.2,2.332,5.2,5.2S14.868,17.2,12,17.2z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1 KiB

View file

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.2" baseProfile="tiny" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
x="0px" y="0px" viewBox="0 0 24 24" xml:space="preserve">
<rect x="11" y="0.981" width="2" height="15.969"/>
<path d="M22,18H2c-1.105,0-2,0.895-2,2s0.895,2,2,2h20c1.105,0,2-0.895,2-2S23.105,18,22,18z"/>
</svg>

Before

Width:  |  Height:  |  Size: 475 B

View file

@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.2" baseProfile="tiny" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
x="0px" y="0px" viewBox="0 0 24 24" xml:space="preserve">
<g>
<path d="M21,18H3c-1.657,0-3,1.343-3,3v1h24v-1C24,19.343,22.657,18,21,18z"/>
<rect x="11" y="0.981" width="2" height="15.969"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 469 B

View file

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.2" baseProfile="tiny" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
x="0px" y="0px" viewBox="0 0 24 24" xml:space="preserve">
<rect y="18" width="24" height="4.001"/>
<rect x="11" y="0.982" width="2" height="16"/>
</svg>

Before

Width:  |  Height:  |  Size: 418 B

View file

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.2" baseProfile="tiny" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
x="0px" y="0px" viewBox="0 0 24 24" xml:space="preserve">
<path fill="#010202" d="M0,11.8h24c-2.4,1.5-7.6,4.2-12,4.2C7.6,16.1,2.4,13.3,0,11.8z"/>
<path fill="#010202" d="M24,10.9H0c2.4-1,7.6-2.9,12-2.9C16.4,7.9,21.6,9.8,24,10.9z"/>
</svg>

Before

Width:  |  Height:  |  Size: 504 B

View file

@ -1,8 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.2" baseProfile="tiny" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
x="0px" y="0px" viewBox="0 0 24 24" xml:space="preserve">
<path fill="#010202" d="M12,15.1c-5,0-8.2-0.9-8.7-1.5c0.5-0.6,3.7-1.5,8.7-1.5c5,0,8.2,0.9,8.7,1.5C20.2,14.2,17,15.1,12,15.1z"/>
<path fill="#010202" d="M22.2,13.8c0,0,0-0.1,0-0.1c0-2.8-9.2-2.9-10.2-2.9S1.8,10.8,1.8,13.6c0,0,0,0.1,0,0.1
C0.6,13.3,0,12.7,0,12.2c0-1.3,4.7-3.3,12-3.3c7.3,0,12,1.9,12,3.3C24,12.7,23.4,13.3,22.2,13.8z"/>
</svg>

Before

Width:  |  Height:  |  Size: 664 B

View file

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.2" baseProfile="tiny" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
x="0px" y="0px" viewBox="0 0 24 24" xml:space="preserve">
<polygon points="7,5.001 7,14.001 0,14.001 0,15.001 24,15.001 24,14.001 17,14.001 17,5.001 "/>
<path d="M5,17.001c0,1.657,1.343,3,3,3h8c1.657,0,3-1.343,3-3v-1H5V17.001z"/>
</svg>

Before

Width:  |  Height:  |  Size: 502 B

View file

@ -1,14 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.2" baseProfile="tiny" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
x="0px" y="0px" viewBox="0 0 24 24" xml:space="preserve">
<path fill="#010202" d="M9.3,18.5c-0.5,0.4-0.9,0.9-1,1c-0.1,0.1-0.8,0.6-0.2,1c0.6,0.4,1.6,0.8,3.6,0.8c0.1,0,0.1,0,0.2,0
c-0.4-0.3-0.7-0.6-1.1-0.9C10.3,19.7,9.7,19.1,9.3,18.5"/>
<path fill="#010202" d="M22.3,13.1c-2-2.7-3.5-3.8-4.3-4.3c-0.1-0.1-0.4-0.3-0.1-0.3c0.3,0,1.8,0.2,1.8-1.5c0-1.7-2-3.9-4-4.9
c-2-0.9-3.7-0.3-3.4,1.3C12.6,5,14,6.4,14.7,7c0.1,0.1,0.3,0.3-0.1,0.2c-0.4-0.1-2.1-0.5-3.4-0.1C10,7.4,9.6,8.1,9.5,8.3
c0,0.1-0.1,0.2-0.3-0.1C9.1,8,8.4,5.8,5.7,4.3C4.2,3.4,1.8,2.7,0.5,4S1,8.3,2.1,9.2C3.3,10.1,5.9,12,8.3,11l0,0
c-0.1,1.1-0.7,4.8,3.3,8.6c4,3.8,9.6,3.2,11.6,0.8l0,0C24.9,18.7,23.6,14.8,22.3,13.1 M22.6,20.1c-2.8,2.3-7.3-0.6-9.2-2.3
C7,11.5,9.9,8,11.3,7.6c1.7-0.7,4.4,0.1,6.3,1.4c2,1.3,3.3,3,3.6,3.4C21.8,13,25.3,17.8,22.6,20.1"/>
<path fill="#010202" d="M12.1,9.2c-1.1,0.4-3.4,3.2,1.7,8.3c1.5,1.3,5.2,3.6,7.4,1.8c2.2-1.8-0.6-5.7-1-6.3
c-0.2-0.3-1.3-1.7-2.9-2.7C15.6,9.3,13.5,8.7,12.1,9.2"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.2 KiB

Some files were not shown because too many files have changed in this diff Show more