2016-08-30 20:55:00 +02:00
|
|
|
namespace pxsim.visuals {
|
2016-08-31 20:14:16 +02:00
|
|
|
const MB_STYLE = `
|
|
|
|
svg.sim {
|
|
|
|
margin-bottom:1em;
|
|
|
|
}
|
|
|
|
svg.sim.grayscale {
|
|
|
|
-moz-filter: grayscale(1);
|
|
|
|
-webkit-filter: grayscale(1);
|
|
|
|
filter: grayscale(1);
|
|
|
|
}
|
|
|
|
.sim-button {
|
|
|
|
pointer-events: none;
|
|
|
|
}
|
|
|
|
|
|
|
|
.sim-button-outer:hover {
|
|
|
|
stroke:grey;
|
|
|
|
stroke-width: 3px;
|
|
|
|
}
|
|
|
|
.sim-button-nut {
|
|
|
|
fill:#704A4A;
|
|
|
|
pointer-events:none;
|
|
|
|
}
|
|
|
|
.sim-button-nut:hover {
|
|
|
|
stroke:1px solid #704A4A;
|
|
|
|
}
|
|
|
|
.sim-pin:hover {
|
|
|
|
stroke:#D4AF37;
|
|
|
|
stroke-width:2px;
|
|
|
|
}
|
|
|
|
|
|
|
|
.sim-pin-touch.touched:hover {
|
|
|
|
stroke:darkorange;
|
|
|
|
}
|
|
|
|
|
|
|
|
.sim-led-back:hover {
|
2016-10-13 08:40:33 +02:00
|
|
|
stroke:#fff;
|
2016-08-31 20:14:16 +02:00
|
|
|
stroke-width:3px;
|
|
|
|
}
|
|
|
|
.sim-led:hover {
|
|
|
|
stroke:#ff7f7f;
|
|
|
|
stroke-width:3px;
|
|
|
|
}
|
|
|
|
|
|
|
|
.sim-systemled {
|
|
|
|
fill:#333;
|
|
|
|
stroke:#555;
|
|
|
|
stroke-width: 1px;
|
|
|
|
}
|
|
|
|
|
|
|
|
.sim-light-level-button {
|
2016-10-13 08:14:38 +02:00
|
|
|
stroke:#ccc;
|
|
|
|
stroke-width: 2px;
|
2016-08-31 20:14:16 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
.sim-antenna {
|
|
|
|
stroke:#555;
|
|
|
|
stroke-width: 2px;
|
|
|
|
}
|
|
|
|
|
|
|
|
.sim-text {
|
|
|
|
font-family:"Lucida Console", Monaco, monospace;
|
2016-10-13 07:44:05 +02:00
|
|
|
font-size:10px;
|
2016-08-31 20:14:16 +02:00
|
|
|
fill:#fff;
|
2016-10-13 07:44:05 +02:00
|
|
|
pointer-events: none; user-select: none;
|
2016-08-31 20:14:16 +02:00
|
|
|
}
|
2016-09-27 20:00:21 +02:00
|
|
|
.sim-text.inverted {
|
|
|
|
fill:#000;
|
|
|
|
}
|
2016-08-31 20:14:16 +02:00
|
|
|
|
|
|
|
.sim-text-pin {
|
|
|
|
font-family:"Lucida Console", Monaco, monospace;
|
|
|
|
font-size:20px;
|
|
|
|
fill:#fff;
|
|
|
|
pointer-events: none;
|
|
|
|
}
|
|
|
|
|
|
|
|
.sim-thermometer {
|
|
|
|
stroke:#aaa;
|
2016-10-13 08:14:38 +02:00
|
|
|
stroke-width: 2px;
|
2016-08-31 20:14:16 +02:00
|
|
|
}
|
|
|
|
|
2016-10-13 07:44:05 +02:00
|
|
|
#rgbledcircle:hover {
|
|
|
|
r:8px;
|
|
|
|
}
|
|
|
|
|
2016-08-31 20:14:16 +02:00
|
|
|
/* animations */
|
|
|
|
.sim-theme-glow {
|
|
|
|
animation-name: sim-theme-glow-animation;
|
|
|
|
animation-timing-function: ease-in-out;
|
|
|
|
animation-direction: alternate;
|
|
|
|
animation-iteration-count: infinite;
|
|
|
|
animation-duration: 1.25s;
|
|
|
|
}
|
|
|
|
@keyframes sim-theme-glow-animation {
|
|
|
|
from { opacity: 1; }
|
|
|
|
to { opacity: 0.75; }
|
|
|
|
}
|
|
|
|
|
|
|
|
.sim-flash {
|
|
|
|
animation-name: sim-flash-animation;
|
|
|
|
animation-duration: 0.1s;
|
|
|
|
}
|
|
|
|
|
|
|
|
@keyframes sim-flash-animation {
|
|
|
|
from { fill: yellow; }
|
|
|
|
to { fill: default; }
|
|
|
|
}
|
|
|
|
|
|
|
|
.sim-flash-stroke {
|
|
|
|
animation-name: sim-flash-stroke-animation;
|
|
|
|
animation-duration: 0.4s;
|
|
|
|
animation-timing-function: ease-in;
|
|
|
|
}
|
|
|
|
|
|
|
|
@keyframes sim-flash-stroke-animation {
|
|
|
|
from { stroke: yellow; }
|
|
|
|
to { stroke: default; }
|
|
|
|
}
|
|
|
|
|
|
|
|
/* wireframe */
|
|
|
|
.sim-wireframe * {
|
|
|
|
fill: none;
|
|
|
|
stroke: black;
|
|
|
|
}
|
2016-08-31 22:39:47 +02:00
|
|
|
.sim-wireframe .sim-display,
|
|
|
|
.sim-wireframe .sim-led,
|
|
|
|
.sim-wireframe .sim-led-back,
|
|
|
|
.sim-wireframe .sim-head,
|
|
|
|
.sim-wireframe .sim-theme,
|
|
|
|
.sim-wireframe .sim-button-group,
|
|
|
|
.sim-wireframe .sim-button-label,
|
|
|
|
.sim-wireframe .sim-button,
|
|
|
|
.sim-wireframe .sim-text-pin
|
|
|
|
{
|
|
|
|
visibility: hidden;
|
|
|
|
}
|
2016-08-31 22:59:20 +02:00
|
|
|
.sim-wireframe .sim-label
|
|
|
|
{
|
|
|
|
stroke: none;
|
|
|
|
fill: #777;
|
|
|
|
}
|
2016-08-31 22:39:47 +02:00
|
|
|
.sim-wireframe .sim-board {
|
|
|
|
stroke-width: 2px;
|
|
|
|
}
|
2016-08-31 20:14:16 +02:00
|
|
|
`;
|
2016-10-17 05:09:13 +02:00
|
|
|
const BOARD_SVG = `<?xml version="1.0" encoding="utf-8"?>
|
2016-10-13 07:44:05 +02:00
|
|
|
<!-- Generator: Adobe Illustrator 18.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
|
|
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
|
|
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
|
|
|
viewBox="0 0 251.8 222.2" enable-background="new 0 0 251.8 222.2" xml:space="preserve">
|
|
|
|
<symbol id="Mini_front" viewBox="-121.4 -112.4 242.4 214.1">
|
|
|
|
<g>
|
|
|
|
|
|
|
|
<use xlink:href="#calliope_mini_backside" width="296.7" height="262.1" id="XMLID_2_" x="-149.4" y="-131" transform="matrix(0.8169 0 0 0.8169 0.6672 -5.3582)" overflow="visible"/>
|
|
|
|
</g>
|
|
|
|
<g>
|
|
|
|
<g>
|
|
|
|
<polygon id="LED_0_0" fill="#FFFFFF" points="-20.9,36.6 -23,36.6 -23,42 -20.9,42 "/>
|
|
|
|
<polygon id="LED_1_0" fill="#FFFFFF" points="-9.9,36.6 -12.1,36.6 -12.1,42 -9.9,42 "/>
|
|
|
|
<polygon id="LED_2_0" fill="#FFFFFF" points="1,36.6 -1.1,36.6 -1.1,42 1,42 "/>
|
|
|
|
<polygon id="LED_3_0" fill="#FFFFFF" points="12,36.6 9.8,36.6 9.8,42 12,42 "/>
|
|
|
|
<polygon id="LED_4_0" fill="#FFFFFF" points="22.9,36.6 20.8,36.6 20.8,42 22.9,42 "/>
|
|
|
|
</g>
|
|
|
|
<g>
|
|
|
|
<polygon id="LED_0_1" fill="#FFFFFF" points="-20.9,25.9 -23,25.9 -23,31.3 -20.9,31.3 "/>
|
|
|
|
<polygon id="LED_1_1" fill="#FFFFFF" points="-9.9,25.9 -12.1,25.9 -12.1,31.3 -9.9,31.3 "/>
|
|
|
|
<polygon id="LED_2_1" fill="#FFFFFF" points="1,25.9 -1.1,25.9 -1.1,31.3 1,31.3 "/>
|
|
|
|
<polygon id="LED_3_1" fill="#FFFFFF" points="12,25.9 9.8,25.9 9.8,31.3 12,31.3 "/>
|
|
|
|
<polygon id="LED_4_1" fill="#FFFFFF" points="22.9,25.9 20.8,25.9 20.8,31.3 22.9,31.3 "/>
|
|
|
|
</g>
|
|
|
|
<g>
|
|
|
|
<polygon id="LED_0_2" fill="#FFFFFF" points="-20.9,15.2 -23,15.2 -23,20.6 -20.9,20.6 "/>
|
|
|
|
<polygon id="LED_1_2" fill="#FFFFFF" points="-9.9,15.2 -12.1,15.2 -12.1,20.6 -9.9,20.6 "/>
|
|
|
|
<polygon id="LED_2_2" fill="#FFFFFF" points="1,15.2 -1.1,15.2 -1.1,20.6 1,20.6 "/>
|
|
|
|
<polygon id="LED_3_2" fill="#FFFFFF" points="12,15.2 9.8,15.2 9.8,20.6 12,20.6 "/>
|
|
|
|
<polygon id="LED_4_2" fill="#FFFFFF" points="22.9,15.2 20.8,15.2 20.8,20.6 22.9,20.6 "/>
|
|
|
|
</g>
|
|
|
|
<g>
|
|
|
|
<polygon id="LED_0_3" fill="#FFFFFF" points="-20.9,4.4 -23,4.4 -23,9.9 -20.9,9.9 "/>
|
|
|
|
<polygon id="LED_1_3" fill="#FFFFFF" points="-9.9,4.4 -12.1,4.4 -12.1,9.9 -9.9,9.9 "/>
|
|
|
|
<polygon id="LED_2_3" fill="#FFFFFF" points="1,4.4 -1.1,4.4 -1.1,9.9 1,9.9 "/>
|
|
|
|
<polygon id="LED_3_3" fill="#FFFFFF" points="12,4.4 9.8,4.4 9.8,9.9 12,9.9 "/>
|
|
|
|
<polygon id="LED_4_3" fill="#FFFFFF" points="22.9,4.4 20.8,4.4 20.8,9.9 22.9,9.9 "/>
|
|
|
|
</g>
|
|
|
|
<g>
|
|
|
|
<polygon id="LED_0_4" fill="#FFFFFF" points="-20.9,-6.3 -23,-6.3 -23,-0.8 -20.9,-0.8 "/>
|
|
|
|
<polygon id="LED_1_4" fill="#FFFFFF" points="-9.9,-6.3 -12.1,-6.3 -12.1,-0.8 -9.9,-0.8 "/>
|
|
|
|
<polygon id="LED_2_4" fill="#FFFFFF" points="1,-6.3 -1.1,-6.3 -1.1,-0.8 1,-0.8 "/>
|
|
|
|
<polygon id="LED_3_4" fill="#FFFFFF" points="12,-6.3 9.8,-6.3 9.8,-0.8 12,-0.8 "/>
|
|
|
|
<polygon id="LED_4_4" fill="#FFFFFF" points="22.9,-6.3 20.8,-6.3 20.8,-0.8 22.9,-0.8 "/>
|
|
|
|
</g>
|
|
|
|
</g>
|
|
|
|
<path fill="#BDD1CF" d="M8.8,66.6H-8.8c-0.7,0-1.2,0.5-1.2,1.2v13.5c0,0.7,0.5,1.2,1.2,1.2H8.8c0.7,0,1.2-0.5,1.2-1.2V67.9
|
|
|
|
C10,67.2,9.4,66.6,8.8,66.6z"/>
|
|
|
|
<g id="EXT_PWR">
|
|
|
|
<path fill="#FFFFFF" d="M65.5-65.6L49.9-59c-0.8,0.3-1.1,1.2-0.8,2l8.1,19.3c0.3,0.8,1.2,1.1,2,0.8l15.6-6.6
|
|
|
|
c0.8-0.3,1.1-1.2,0.8-2l-8.1-19.3C67.2-65.6,66.3-65.9,65.5-65.6z"/>
|
|
|
|
<polygon fill="#FFFFFF" points="60.3,-41.1 50.8,-37.1 52.1,-34 61.6,-38 "/>
|
|
|
|
<polygon fill="#FFFFFF" points="52.3,-60 42.8,-56 44.1,-52.9 53.6,-56.9 "/>
|
|
|
|
</g>
|
|
|
|
<path id="SPKR" fill="#1D1D1B" d="M75.8-1.1c-9.9,0-17.9-8-17.9-17.9S65.9-37,75.8-37s17.9,8,17.9,17.9S85.7-1.1,75.8-1.1z"/>
|
|
|
|
<path fill="#333333" d="M75.8-15.6c-1.9,0-3.4-1.5-3.4-3.4s1.5-3.4,3.4-3.4c1.9,0,3.4,1.5,3.4,3.4S77.7-15.6,75.8-15.6z"/>
|
|
|
|
<polygon fill="#F8B133" points="37.1,-46 25.4,-46 25.4,-25 37.1,-25 "/>
|
|
|
|
<polygon fill="#1D1D1B" points="-31.8,-47.4 -43.7,-35.5 -31.8,-23.6 -19.9,-35.5 "/>
|
|
|
|
<polygon fill="#BDD1CF" points="-36.8,-54.6 -43.6,-59 -47.5,-52.9 -40.7,-48.5 "/>
|
|
|
|
</symbol>
|
|
|
|
<symbol id="calliope_mini_backside" viewBox="-149.4 -131 296.7 262.1">
|
|
|
|
<g>
|
|
|
|
<g>
|
|
|
|
<path fill="#034854" d="M-78.2,127.5L-78.2,127.5c6.2,4.6,14.6,4.8,20.9,0.5c12.5-8.4,34.7-21,56-21c23.2,0,45.7,13.5,56.4,21
|
|
|
|
c4.3,3,9.8,3.8,14.7,2l0.6-0.2c7.3-2.6,11.8-9.8,11-17.4c-1.7-15.4-3-41.9,13-62.9c16.8-21.9,31.7-31.2,42.3-34.8
|
|
|
|
c5.9-2,9.9-7.4,10.4-13.6v0c0.5-8-5.1-13.6-12.3-17c-12-5.7-30.8-15.7-42.8-36.2C77.6-77,79-103.4,80.6-114.8
|
|
|
|
c0.7-5.1-1.6-10.1-5.9-12.8c-4.8-3-11.9-4.6-21.4,1.5c-5.5,3.6-12,8.6-20.8,12c-10.8,4.1-16.9,5.5-20.3,5.8
|
|
|
|
c-2.4,0.2-4.4,1.8-5.2,4c-1.1,2.9-3.4,6.2-8.2,6.2c-5,0-7.2-3.6-8.2-6.6c-0.8-2.5-3.3-3.4-5.9-3.7c-4.9-0.4-12.5-2.4-20.5-6.1
|
|
|
|
c-7.1-3.3-14-7.9-20.4-12.7c-5.5-4.1-15-5.5-20.4-1.3l0,0c-5.7,4.4-7.4,11.7-6.5,18.8c1.9,15.3,1.1,43.3-16.7,64.2
|
|
|
|
C-117.4-24.6-128-19.2-137-16.3c-3.9,1.3-11.4,5.4-12.3,14.1s3,14.5,10.9,18.4c12.3,6.1,30.5,17.2,42.1,34.1
|
|
|
|
c15.1,22,15.1,48.1,13.1,61.7C-83.9,117.7-82.8,124.1-78.2,127.5z"/>
|
|
|
|
<g id="holes_5_">
|
|
|
|
<g display="none">
|
|
|
|
<g display="inline">
|
|
|
|
<path fill="#EFDA48" d="M-54.6-89.3c-1.4,0-2.6-1.2-2.6-2.6s1.2-2.6,2.6-2.6s2.6,1.2,2.6,2.6S-53.1-89.3-54.6-89.3z
|
|
|
|
M-54.6-93.1c-0.7,0-1.2,0.6-1.2,1.2s0.6,1.2,1.2,1.2c0.7,0,1.2-0.6,1.2-1.2S-53.9-93.1-54.6-93.1z"/>
|
|
|
|
<path fill="#1D1D1B" d="M-54.6-93.1c-0.7,0-1.2,0.6-1.2,1.2s0.6,1.2,1.2,1.2c0.7,0,1.2-0.6,1.2-1.2S-53.9-93.1-54.6-93.1z"/>
|
|
|
|
</g>
|
|
|
|
<g display="inline">
|
|
|
|
<path fill="#EFDA48" d="M-45.8-89.3c-1.4,0-2.6-1.2-2.6-2.6s1.2-2.6,2.6-2.6s2.6,1.2,2.6,2.6S-44.3-89.3-45.8-89.3z
|
|
|
|
M-45.8-93.1c-0.7,0-1.2,0.6-1.2,1.2s0.6,1.2,1.2,1.2c0.7,0,1.2-0.6,1.2-1.2S-45.1-93.1-45.8-93.1z"/>
|
|
|
|
<path fill="#1D1D1B" d="M-45.8-93.1c-0.7,0-1.2,0.6-1.2,1.2s0.6,1.2,1.2,1.2c0.7,0,1.2-0.6,1.2-1.2S-45.1-93.1-45.8-93.1z"/>
|
|
|
|
</g>
|
|
|
|
<g display="inline">
|
|
|
|
<path fill="#EFDA48" d="M-37-89.3c-1.4,0-2.6-1.2-2.6-2.6s1.2-2.6,2.6-2.6c1.4,0,2.6,1.2,2.6,2.6S-35.5-89.3-37-89.3z
|
|
|
|
M-37-93.1c-0.7,0-1.2,0.6-1.2,1.2s0.6,1.2,1.2,1.2c0.7,0,1.2-0.6,1.2-1.2S-36.3-93.1-37-93.1z"/>
|
|
|
|
<path fill="#1D1D1B" d="M-37-93.1c-0.7,0-1.2,0.6-1.2,1.2s0.6,1.2,1.2,1.2c0.7,0,1.2-0.6,1.2-1.2S-36.3-93.1-37-93.1z"/>
|
|
|
|
</g>
|
|
|
|
<g display="inline">
|
|
|
|
<path fill="#EFDA48" d="M-28.2-89.3c-1.4,0-2.6-1.2-2.6-2.6s1.2-2.6,2.6-2.6c1.4,0,2.6,1.2,2.6,2.6S-26.7-89.3-28.2-89.3z
|
|
|
|
M-28.2-93.1c-0.7,0-1.2,0.6-1.2,1.2s0.6,1.2,1.2,1.2s1.2-0.6,1.2-1.2S-27.5-93.1-28.2-93.1z"/>
|
|
|
|
<path fill="#1D1D1B" d="M-28.2-93.1c-0.7,0-1.2,0.6-1.2,1.2s0.6,1.2,1.2,1.2s1.2-0.6,1.2-1.2S-27.5-93.1-28.2-93.1z"/>
|
|
|
|
</g>
|
|
|
|
<g display="inline">
|
|
|
|
<path fill="#EFDA48" d="M-19.3-89.3c-1.4,0-2.6-1.2-2.6-2.6s1.2-2.6,2.6-2.6c1.4,0,2.6,1.2,2.6,2.6S-17.9-89.3-19.3-89.3z
|
|
|
|
M-19.3-93.1c-0.7,0-1.2,0.6-1.2,1.2s0.6,1.2,1.2,1.2s1.2-0.6,1.2-1.2S-18.7-93.1-19.3-93.1z"/>
|
|
|
|
<path fill="#1D1D1B" d="M-19.3-93.1c-0.7,0-1.2,0.6-1.2,1.2s0.6,1.2,1.2,1.2s1.2-0.6,1.2-1.2S-18.7-93.1-19.3-93.1z"/>
|
|
|
|
</g>
|
|
|
|
<g display="inline">
|
|
|
|
<path fill="#EFDA48" d="M-10.5-89.3c-1.4,0-2.6-1.2-2.6-2.6s1.2-2.6,2.6-2.6s2.6,1.2,2.6,2.6S-9.1-89.3-10.5-89.3z
|
|
|
|
M-10.5-93.1c-0.7,0-1.2,0.6-1.2,1.2s0.6,1.2,1.2,1.2s1.2-0.6,1.2-1.2S-9.8-93.1-10.5-93.1z"/>
|
|
|
|
<path fill="#1D1D1B" d="M-10.5-93.1c-0.7,0-1.2,0.6-1.2,1.2s0.6,1.2,1.2,1.2s1.2-0.6,1.2-1.2S-9.8-93.1-10.5-93.1z"/>
|
|
|
|
</g>
|
|
|
|
<g display="inline">
|
|
|
|
<path fill="#EFDA48" d="M-1.7-89.3c-1.4,0-2.6-1.2-2.6-2.6s1.2-2.6,2.6-2.6s2.6,1.2,2.6,2.6S-0.3-89.3-1.7-89.3z M-1.7-93.1
|
|
|
|
c-0.7,0-1.2,0.6-1.2,1.2s0.6,1.2,1.2,1.2s1.2-0.6,1.2-1.2S-1-93.1-1.7-93.1z"/>
|
|
|
|
<path fill="#1D1D1B" d="M-1.7-93.1c-0.7,0-1.2,0.6-1.2,1.2s0.6,1.2,1.2,1.2s1.2-0.6,1.2-1.2S-1-93.1-1.7-93.1z"/>
|
|
|
|
</g>
|
|
|
|
<g display="inline">
|
|
|
|
<path fill="#EFDA48" d="M7.1-89.3c-1.4,0-2.6-1.2-2.6-2.6s1.2-2.6,2.6-2.6s2.6,1.2,2.6,2.6S8.5-89.3,7.1-89.3z M7.1-93.1
|
|
|
|
c-0.7,0-1.2,0.6-1.2,1.2s0.6,1.2,1.2,1.2s1.2-0.6,1.2-1.2S7.8-93.1,7.1-93.1z"/>
|
|
|
|
<path fill="#1D1D1B" d="M7.1-93.1c-0.7,0-1.2,0.6-1.2,1.2s0.6,1.2,1.2,1.2s1.2-0.6,1.2-1.2S7.8-93.1,7.1-93.1z"/>
|
|
|
|
</g>
|
|
|
|
<g display="inline">
|
|
|
|
<path fill="#EFDA48" d="M15.9-89.3c-1.4,0-2.6-1.2-2.6-2.6s1.2-2.6,2.6-2.6s2.6,1.2,2.6,2.6S17.3-89.3,15.9-89.3z M15.9-93.1
|
|
|
|
c-0.7,0-1.2,0.6-1.2,1.2s0.6,1.2,1.2,1.2c0.7,0,1.2-0.6,1.2-1.2S16.6-93.1,15.9-93.1z"/>
|
|
|
|
<path fill="#1D1D1B" d="M15.9-93.1c-0.7,0-1.2,0.6-1.2,1.2s0.6,1.2,1.2,1.2c0.7,0,1.2-0.6,1.2-1.2S16.6-93.1,15.9-93.1z"/>
|
|
|
|
</g>
|
|
|
|
<g display="inline">
|
|
|
|
<path fill="#EFDA48" d="M24.7-89.3c-1.4,0-2.6-1.2-2.6-2.6s1.2-2.6,2.6-2.6c1.4,0,2.6,1.2,2.6,2.6S26.1-89.3,24.7-89.3z
|
|
|
|
M24.7-93.1c-0.7,0-1.2,0.6-1.2,1.2s0.6,1.2,1.2,1.2c0.7,0,1.2-0.6,1.2-1.2S25.4-93.1,24.7-93.1z"/>
|
|
|
|
<path fill="#1D1D1B" d="M24.7-93.1c-0.7,0-1.2,0.6-1.2,1.2s0.6,1.2,1.2,1.2c0.7,0,1.2-0.6,1.2-1.2S25.4-93.1,24.7-93.1z"/>
|
|
|
|
</g>
|
|
|
|
<g display="inline">
|
|
|
|
<path fill="#EFDA48" d="M33.5-89.3c-1.4,0-2.6-1.2-2.6-2.6s1.2-2.6,2.6-2.6s2.6,1.2,2.6,2.6S35-89.3,33.5-89.3z M33.5-93.1
|
|
|
|
c-0.7,0-1.2,0.6-1.2,1.2s0.6,1.2,1.2,1.2c0.7,0,1.2-0.6,1.2-1.2S34.2-93.1,33.5-93.1z"/>
|
|
|
|
<path fill="#1D1D1B" d="M33.5-93.1c-0.7,0-1.2,0.6-1.2,1.2s0.6,1.2,1.2,1.2c0.7,0,1.2-0.6,1.2-1.2S34.2-93.1,33.5-93.1z"/>
|
|
|
|
</g>
|
|
|
|
<g display="inline">
|
|
|
|
<path fill="#EFDA48" d="M42.3-89.3c-1.4,0-2.6-1.2-2.6-2.6s1.2-2.6,2.6-2.6s2.6,1.2,2.6,2.6S43.8-89.3,42.3-89.3z M42.3-93.1
|
|
|
|
c-0.7,0-1.2,0.6-1.2,1.2s0.6,1.2,1.2,1.2c0.7,0,1.2-0.6,1.2-1.2S43-93.1,42.3-93.1z"/>
|
|
|
|
<path fill="#1D1D1B" d="M42.3-93.1c-0.7,0-1.2,0.6-1.2,1.2s0.6,1.2,1.2,1.2c0.7,0,1.2-0.6,1.2-1.2S43-93.1,42.3-93.1z"/>
|
|
|
|
</g>
|
|
|
|
<g display="inline">
|
|
|
|
<path fill="#EFDA48" d="M51.1-89.3c-1.4,0-2.6-1.2-2.6-2.6s1.2-2.6,2.6-2.6s2.6,1.2,2.6,2.6S52.6-89.3,51.1-89.3z M51.1-93.1
|
|
|
|
c-0.7,0-1.2,0.6-1.2,1.2s0.6,1.2,1.2,1.2c0.7,0,1.2-0.6,1.2-1.2S51.8-93.1,51.1-93.1z"/>
|
|
|
|
<path fill="#1D1D1B" d="M51.1-93.1c-0.7,0-1.2,0.6-1.2,1.2s0.6,1.2,1.2,1.2c0.7,0,1.2-0.6,1.2-1.2S51.8-93.1,51.1-93.1z"/>
|
|
|
|
</g>
|
|
|
|
</g>
|
|
|
|
<g display="none">
|
|
|
|
<g display="inline">
|
|
|
|
<path fill="#EFDA48" d="M-54.6-80.4c-1.4,0-2.6-1.2-2.6-2.6s1.2-2.6,2.6-2.6s2.6,1.2,2.6,2.6S-53.1-80.4-54.6-80.4z
|
|
|
|
M-54.6-84.3c-0.7,0-1.2,0.6-1.2,1.2c0,0.7,0.6,1.2,1.2,1.2c0.7,0,1.2-0.6,1.2-1.2C-53.3-83.7-53.9-84.3-54.6-84.3z"/>
|
|
|
|
<path fill="#1D1D1B" d="M-54.6-84.3c-0.7,0-1.2,0.6-1.2,1.2c0,0.7,0.6,1.2,1.2,1.2c0.7,0,1.2-0.6,1.2-1.2
|
|
|
|
C-53.3-83.7-53.9-84.3-54.6-84.3z"/>
|
|
|
|
</g>
|
|
|
|
<g display="inline">
|
|
|
|
<path fill="#EFDA48" d="M-45.8-80.4c-1.4,0-2.6-1.2-2.6-2.6s1.2-2.6,2.6-2.6s2.6,1.2,2.6,2.6S-44.3-80.4-45.8-80.4z
|
|
|
|
M-45.8-84.3c-0.7,0-1.2,0.6-1.2,1.2c0,0.7,0.6,1.2,1.2,1.2c0.7,0,1.2-0.6,1.2-1.2C-44.5-83.7-45.1-84.3-45.8-84.3z"/>
|
|
|
|
<path fill="#1D1D1B" d="M-45.8-84.3c-0.7,0-1.2,0.6-1.2,1.2c0,0.7,0.6,1.2,1.2,1.2c0.7,0,1.2-0.6,1.2-1.2
|
|
|
|
C-44.5-83.7-45.1-84.3-45.8-84.3z"/>
|
|
|
|
</g>
|
|
|
|
<g display="inline">
|
|
|
|
<path fill="#EFDA48" d="M-37-80.4c-1.4,0-2.6-1.2-2.6-2.6s1.2-2.6,2.6-2.6c1.4,0,2.6,1.2,2.6,2.6S-35.5-80.4-37-80.4z
|
|
|
|
M-37-84.3c-0.7,0-1.2,0.6-1.2,1.2c0,0.7,0.6,1.2,1.2,1.2c0.7,0,1.2-0.6,1.2-1.2C-35.7-83.7-36.3-84.3-37-84.3z"/>
|
|
|
|
<path fill="#1D1D1B" d="M-37-84.3c-0.7,0-1.2,0.6-1.2,1.2c0,0.7,0.6,1.2,1.2,1.2c0.7,0,1.2-0.6,1.2-1.2
|
|
|
|
C-35.7-83.7-36.3-84.3-37-84.3z"/>
|
|
|
|
</g>
|
|
|
|
<g display="inline">
|
|
|
|
<path fill="#EFDA48" d="M-28.2-80.4c-1.4,0-2.6-1.2-2.6-2.6s1.2-2.6,2.6-2.6c1.4,0,2.6,1.2,2.6,2.6S-26.7-80.4-28.2-80.4z
|
|
|
|
M-28.2-84.3c-0.7,0-1.2,0.6-1.2,1.2c0,0.7,0.6,1.2,1.2,1.2s1.2-0.6,1.2-1.2C-26.9-83.7-27.5-84.3-28.2-84.3z"/>
|
|
|
|
<path fill="#1D1D1B" d="M-28.2-84.3c-0.7,0-1.2,0.6-1.2,1.2c0,0.7,0.6,1.2,1.2,1.2s1.2-0.6,1.2-1.2
|
|
|
|
C-26.9-83.7-27.5-84.3-28.2-84.3z"/>
|
|
|
|
</g>
|
|
|
|
<g display="inline">
|
|
|
|
<path fill="#EFDA48" d="M-19.3-80.4c-1.4,0-2.6-1.2-2.6-2.6s1.2-2.6,2.6-2.6c1.4,0,2.6,1.2,2.6,2.6S-17.9-80.4-19.3-80.4z
|
|
|
|
M-19.3-84.3c-0.7,0-1.2,0.6-1.2,1.2c0,0.7,0.6,1.2,1.2,1.2s1.2-0.6,1.2-1.2C-18.1-83.7-18.7-84.3-19.3-84.3z"/>
|
|
|
|
<path fill="#1D1D1B" d="M-19.3-84.3c-0.7,0-1.2,0.6-1.2,1.2c0,0.7,0.6,1.2,1.2,1.2s1.2-0.6,1.2-1.2
|
|
|
|
C-18.1-83.7-18.7-84.3-19.3-84.3z"/>
|
|
|
|
</g>
|
|
|
|
<g display="inline">
|
|
|
|
<path fill="#EFDA48" d="M-10.5-80.4c-1.4,0-2.6-1.2-2.6-2.6s1.2-2.6,2.6-2.6s2.6,1.2,2.6,2.6S-9.1-80.4-10.5-80.4z
|
|
|
|
M-10.5-84.3c-0.7,0-1.2,0.6-1.2,1.2c0,0.7,0.6,1.2,1.2,1.2s1.2-0.6,1.2-1.2C-9.3-83.7-9.8-84.3-10.5-84.3z"/>
|
|
|
|
<path fill="#1D1D1B" d="M-10.5-84.3c-0.7,0-1.2,0.6-1.2,1.2c0,0.7,0.6,1.2,1.2,1.2s1.2-0.6,1.2-1.2
|
|
|
|
C-9.3-83.7-9.8-84.3-10.5-84.3z"/>
|
|
|
|
</g>
|
|
|
|
<g display="inline">
|
|
|
|
<path fill="#EFDA48" d="M-1.7-80.4c-1.4,0-2.6-1.2-2.6-2.6s1.2-2.6,2.6-2.6s2.6,1.2,2.6,2.6S-0.3-80.4-1.7-80.4z M-1.7-84.3
|
|
|
|
c-0.7,0-1.2,0.6-1.2,1.2c0,0.7,0.6,1.2,1.2,1.2s1.2-0.6,1.2-1.2C-0.5-83.7-1-84.3-1.7-84.3z"/>
|
|
|
|
<path fill="#1D1D1B" d="M-1.7-84.3c-0.7,0-1.2,0.6-1.2,1.2c0,0.7,0.6,1.2,1.2,1.2s1.2-0.6,1.2-1.2C-0.5-83.7-1-84.3-1.7-84.3z
|
|
|
|
"/>
|
|
|
|
</g>
|
|
|
|
<g display="inline">
|
|
|
|
<path fill="#EFDA48" d="M7.1-80.4c-1.4,0-2.6-1.2-2.6-2.6s1.2-2.6,2.6-2.6s2.6,1.2,2.6,2.6S8.5-80.4,7.1-80.4z M7.1-84.3
|
|
|
|
c-0.7,0-1.2,0.6-1.2,1.2c0,0.7,0.6,1.2,1.2,1.2s1.2-0.6,1.2-1.2C8.3-83.7,7.8-84.3,7.1-84.3z"/>
|
|
|
|
<path fill="#1D1D1B" d="M7.1-84.3c-0.7,0-1.2,0.6-1.2,1.2c0,0.7,0.6,1.2,1.2,1.2s1.2-0.6,1.2-1.2C8.3-83.7,7.8-84.3,7.1-84.3z
|
|
|
|
"/>
|
|
|
|
</g>
|
|
|
|
<g display="inline">
|
|
|
|
<path fill="#EFDA48" d="M15.9-80.4c-1.4,0-2.6-1.2-2.6-2.6s1.2-2.6,2.6-2.6s2.6,1.2,2.6,2.6S17.3-80.4,15.9-80.4z M15.9-84.3
|
|
|
|
c-0.7,0-1.2,0.6-1.2,1.2c0,0.7,0.6,1.2,1.2,1.2c0.7,0,1.2-0.6,1.2-1.2C17.1-83.7,16.6-84.3,15.9-84.3z"/>
|
|
|
|
<path fill="#1D1D1B" d="M15.9-84.3c-0.7,0-1.2,0.6-1.2,1.2c0,0.7,0.6,1.2,1.2,1.2c0.7,0,1.2-0.6,1.2-1.2
|
|
|
|
C17.1-83.7,16.6-84.3,15.9-84.3z"/>
|
|
|
|
</g>
|
|
|
|
<g display="inline">
|
|
|
|
<path fill="#EFDA48" d="M24.7-80.4c-1.4,0-2.6-1.2-2.6-2.6s1.2-2.6,2.6-2.6c1.4,0,2.6,1.2,2.6,2.6S26.1-80.4,24.7-80.4z
|
|
|
|
M24.7-84.3c-0.7,0-1.2,0.6-1.2,1.2c0,0.7,0.6,1.2,1.2,1.2c0.7,0,1.2-0.6,1.2-1.2C25.9-83.7,25.4-84.3,24.7-84.3z"/>
|
|
|
|
<path fill="#1D1D1B" d="M24.7-84.3c-0.7,0-1.2,0.6-1.2,1.2c0,0.7,0.6,1.2,1.2,1.2c0.7,0,1.2-0.6,1.2-1.2
|
|
|
|
C25.9-83.7,25.4-84.3,24.7-84.3z"/>
|
|
|
|
</g>
|
|
|
|
<g display="inline">
|
|
|
|
<path fill="#EFDA48" d="M33.5-80.4c-1.4,0-2.6-1.2-2.6-2.6s1.2-2.6,2.6-2.6s2.6,1.2,2.6,2.6S35-80.4,33.5-80.4z M33.5-84.3
|
|
|
|
c-0.7,0-1.2,0.6-1.2,1.2c0,0.7,0.6,1.2,1.2,1.2c0.7,0,1.2-0.6,1.2-1.2C34.8-83.7,34.2-84.3,33.5-84.3z"/>
|
|
|
|
<path fill="#1D1D1B" d="M33.5-84.3c-0.7,0-1.2,0.6-1.2,1.2c0,0.7,0.6,1.2,1.2,1.2c0.7,0,1.2-0.6,1.2-1.2
|
|
|
|
C34.8-83.7,34.2-84.3,33.5-84.3z"/>
|
|
|
|
</g>
|
|
|
|
<g display="inline">
|
|
|
|
<path fill="#EFDA48" d="M42.3-80.4c-1.4,0-2.6-1.2-2.6-2.6s1.2-2.6,2.6-2.6s2.6,1.2,2.6,2.6S43.8-80.4,42.3-80.4z M42.3-84.3
|
|
|
|
c-0.7,0-1.2,0.6-1.2,1.2c0,0.7,0.6,1.2,1.2,1.2c0.7,0,1.2-0.6,1.2-1.2C43.6-83.7,43-84.3,42.3-84.3z"/>
|
|
|
|
<path fill="#1D1D1B" d="M42.3-84.3c-0.7,0-1.2,0.6-1.2,1.2c0,0.7,0.6,1.2,1.2,1.2c0.7,0,1.2-0.6,1.2-1.2
|
|
|
|
C43.6-83.7,43-84.3,42.3-84.3z"/>
|
|
|
|
</g>
|
|
|
|
<g display="inline">
|
|
|
|
<path fill="#EFDA48" d="M51.1-80.4c-1.4,0-2.6-1.2-2.6-2.6s1.2-2.6,2.6-2.6s2.6,1.2,2.6,2.6S52.6-80.4,51.1-80.4z M51.1-84.3
|
|
|
|
c-0.7,0-1.2,0.6-1.2,1.2c0,0.7,0.6,1.2,1.2,1.2c0.7,0,1.2-0.6,1.2-1.2C52.4-83.7,51.8-84.3,51.1-84.3z"/>
|
|
|
|
<path fill="#1D1D1B" d="M51.1-84.3c-0.7,0-1.2,0.6-1.2,1.2c0,0.7,0.6,1.2,1.2,1.2c0.7,0,1.2-0.6,1.2-1.2
|
|
|
|
C52.4-83.7,51.8-84.3,51.1-84.3z"/>
|
|
|
|
</g>
|
|
|
|
</g>
|
|
|
|
<g display="none">
|
|
|
|
<g display="inline">
|
|
|
|
<path fill="#EFDA48" d="M-19.3-63.5c-1.4,0-2.6-1.2-2.6-2.6s1.2-2.6,2.6-2.6c1.4,0,2.6,1.2,2.6,2.6S-17.9-63.5-19.3-63.5z
|
|
|
|
M-19.3-67.4c-0.7,0-1.2,0.6-1.2,1.2c0,0.7,0.6,1.2,1.2,1.2s1.2-0.6,1.2-1.2C-18.1-66.8-18.7-67.4-19.3-67.4z"/>
|
|
|
|
<path fill="#1D1D1B" d="M-19.3-67.4c-0.7,0-1.2,0.6-1.2,1.2c0,0.7,0.6,1.2,1.2,1.2s1.2-0.6,1.2-1.2
|
|
|
|
C-18.1-66.8-18.7-67.4-19.3-67.4z"/>
|
|
|
|
</g>
|
|
|
|
<g display="inline">
|
|
|
|
<path fill="#EFDA48" d="M-10.5-63.5c-1.4,0-2.6-1.2-2.6-2.6s1.2-2.6,2.6-2.6s2.6,1.2,2.6,2.6S-9.1-63.5-10.5-63.5z
|
|
|
|
M-10.5-67.4c-0.7,0-1.2,0.6-1.2,1.2c0,0.7,0.6,1.2,1.2,1.2s1.2-0.6,1.2-1.2C-9.3-66.8-9.8-67.4-10.5-67.4z"/>
|
|
|
|
<path fill="#1D1D1B" d="M-10.5-67.4c-0.7,0-1.2,0.6-1.2,1.2c0,0.7,0.6,1.2,1.2,1.2s1.2-0.6,1.2-1.2
|
|
|
|
C-9.3-66.8-9.8-67.4-10.5-67.4z"/>
|
|
|
|
</g>
|
|
|
|
<g display="inline">
|
|
|
|
<path fill="#EFDA48" d="M-1.7-63.5c-1.4,0-2.6-1.2-2.6-2.6s1.2-2.6,2.6-2.6s2.6,1.2,2.6,2.6S-0.3-63.5-1.7-63.5z M-1.7-67.4
|
|
|
|
c-0.7,0-1.2,0.6-1.2,1.2c0,0.7,0.6,1.2,1.2,1.2s1.2-0.6,1.2-1.2C-0.5-66.8-1-67.4-1.7-67.4z"/>
|
|
|
|
<path fill="#1D1D1B" d="M-1.7-67.4c-0.7,0-1.2,0.6-1.2,1.2c0,0.7,0.6,1.2,1.2,1.2s1.2-0.6,1.2-1.2C-0.5-66.8-1-67.4-1.7-67.4z
|
|
|
|
"/>
|
|
|
|
</g>
|
|
|
|
<g display="inline">
|
|
|
|
<path fill="#EFDA48" d="M7.1-63.5c-1.4,0-2.6-1.2-2.6-2.6s1.2-2.6,2.6-2.6s2.6,1.2,2.6,2.6S8.5-63.5,7.1-63.5z M7.1-67.4
|
|
|
|
c-0.7,0-1.2,0.6-1.2,1.2c0,0.7,0.6,1.2,1.2,1.2s1.2-0.6,1.2-1.2C8.3-66.8,7.8-67.4,7.1-67.4z"/>
|
|
|
|
<path fill="#1D1D1B" d="M7.1-67.4c-0.7,0-1.2,0.6-1.2,1.2c0,0.7,0.6,1.2,1.2,1.2s1.2-0.6,1.2-1.2C8.3-66.8,7.8-67.4,7.1-67.4z
|
|
|
|
"/>
|
|
|
|
</g>
|
|
|
|
<g display="inline">
|
|
|
|
<path fill="#EFDA48" d="M15.9-63.5c-1.4,0-2.6-1.2-2.6-2.6s1.2-2.6,2.6-2.6s2.6,1.2,2.6,2.6S17.3-63.5,15.9-63.5z M15.9-67.4
|
|
|
|
c-0.7,0-1.2,0.6-1.2,1.2c0,0.7,0.6,1.2,1.2,1.2c0.7,0,1.2-0.6,1.2-1.2C17.1-66.8,16.6-67.4,15.9-67.4z"/>
|
|
|
|
<path fill="#1D1D1B" d="M15.9-67.4c-0.7,0-1.2,0.6-1.2,1.2c0,0.7,0.6,1.2,1.2,1.2c0.7,0,1.2-0.6,1.2-1.2
|
|
|
|
C17.1-66.8,16.6-67.4,15.9-67.4z"/>
|
|
|
|
</g>
|
|
|
|
</g>
|
|
|
|
<g display="none">
|
|
|
|
<g display="inline">
|
|
|
|
<polygon fill="#EFDA48" points="96,28 92.4,31.6 96,35.2 99.6,31.6 "/>
|
|
|
|
<path fill="#1D1D1B" d="M95.1,30.8c-0.5,0.5-0.5,1.3,0,1.8c0.5,0.5,1.3,0.5,1.8,0c0.5-0.5,0.5-1.3,0-1.8
|
|
|
|
C96.4,30.3,95.6,30.3,95.1,30.8z"/>
|
|
|
|
</g>
|
|
|
|
<g display="inline">
|
|
|
|
<path fill="#EFDA48" d="M103,28.6c-1,1-2.7,1-3.7,0s-1-2.7,0-3.7s2.7-1,3.7,0S104,27.5,103,28.6z M100.3,25.8
|
|
|
|
c-0.5,0.5-0.5,1.3,0,1.8c0.5,0.5,1.3,0.5,1.8,0c0.5-0.5,0.5-1.3,0-1.8C101.6,25.3,100.8,25.3,100.3,25.8z"/>
|
|
|
|
<path fill="#1D1D1B" d="M100.3,25.8c-0.5,0.5-0.5,1.3,0,1.8c0.5,0.5,1.3,0.5,1.8,0c0.5-0.5,0.5-1.3,0-1.8
|
|
|
|
C101.6,25.3,100.8,25.3,100.3,25.8z"/>
|
|
|
|
</g>
|
|
|
|
<g display="inline">
|
|
|
|
<path fill="#EFDA48" d="M107.7,24c-1,1-2.7,1-3.7,0c-1-1-1-2.7,0-3.7s2.7-1,3.7,0S108.7,23,107.7,24z M104.9,21.3
|
|
|
|
c-0.5,0.5-0.5,1.3,0,1.8c0.5,0.5,1.3,0.5,1.8,0c0.5-0.5,0.5-1.3,0-1.8C106.2,20.8,105.4,20.8,104.9,21.3z"/>
|
|
|
|
<path fill="#1D1D1B" d="M104.9,21.3c-0.5,0.5-0.5,1.3,0,1.8c0.5,0.5,1.3,0.5,1.8,0c0.5-0.5,0.5-1.3,0-1.8
|
|
|
|
C106.2,20.8,105.4,20.8,104.9,21.3z"/>
|
|
|
|
</g>
|
|
|
|
<g display="inline">
|
|
|
|
<path fill="#EFDA48" d="M113,18.7c-1,1-2.7,1-3.7,0s-1-2.7,0-3.7c1-1,2.7-1,3.7,0S114,17.7,113,18.7z M110.2,16
|
|
|
|
c-0.5,0.5-0.5,1.3,0,1.8c0.5,0.5,1.3,0.5,1.8,0c0.5-0.5,0.5-1.3,0-1.8C111.5,15.5,110.7,15.5,110.2,16z"/>
|
|
|
|
<path fill="#1D1D1B" d="M110.2,16c-0.5,0.5-0.5,1.3,0,1.8c0.5,0.5,1.3,0.5,1.8,0c0.5-0.5,0.5-1.3,0-1.8
|
|
|
|
C111.5,15.5,110.7,15.5,110.2,16z"/>
|
|
|
|
</g>
|
|
|
|
</g>
|
|
|
|
<g display="none">
|
|
|
|
<g display="inline">
|
|
|
|
<polygon fill="#EFDA48" points="-110.4,17 -114,13.4 -117.7,17 -114,20.7 "/>
|
|
|
|
<path fill="#1D1D1B" d="M-113.2,16.2c-0.5-0.5-1.3-0.5-1.8,0c-0.5,0.5-0.5,1.3,0,1.8c0.5,0.5,1.3,0.5,1.8,0
|
|
|
|
C-112.7,17.5-112.7,16.7-113.2,16.2z"/>
|
|
|
|
</g>
|
|
|
|
<g display="inline">
|
|
|
|
<path fill="#EFDA48" d="M-111,24.1c-1-1-1-2.7,0-3.7s2.7-1,3.7,0c1,1,1,2.7,0,3.7S-110,25.1-111,24.1z M-108.3,21.3
|
|
|
|
c-0.5-0.5-1.3-0.5-1.8,0c-0.5,0.5-0.5,1.3,0,1.8c0.5,0.5,1.3,0.5,1.8,0C-107.8,22.6-107.8,21.8-108.3,21.3z"/>
|
|
|
|
<path fill="#1D1D1B" d="M-108.3,21.3c-0.5-0.5-1.3-0.5-1.8,0c-0.5,0.5-0.5,1.3,0,1.8c0.5,0.5,1.3,0.5,1.8,0
|
|
|
|
C-107.8,22.6-107.8,21.8-108.3,21.3z"/>
|
|
|
|
</g>
|
|
|
|
<g display="inline">
|
|
|
|
<path fill="#EFDA48" d="M-106.4,28.7c-1-1-1-2.7,0-3.7c1-1,2.7-1,3.7,0c1,1,1,2.7,0,3.7C-103.7,29.8-105.4,29.8-106.4,28.7z
|
|
|
|
M-103.7,26c-0.5-0.5-1.3-0.5-1.8,0c-0.5,0.5-0.5,1.3,0,1.8s1.3,0.5,1.8,0C-103.2,27.3-103.2,26.5-103.7,26z"/>
|
|
|
|
<path fill="#1D1D1B" d="M-103.7,26c-0.5-0.5-1.3-0.5-1.8,0c-0.5,0.5-0.5,1.3,0,1.8s1.3,0.5,1.8,0
|
|
|
|
C-103.2,27.3-103.2,26.5-103.7,26z"/>
|
|
|
|
</g>
|
|
|
|
<g display="inline">
|
|
|
|
<path fill="#EFDA48" d="M-101.2,34c-1-1-1-2.7,0-3.7c1-1,2.7-1,3.7,0c1,1,1,2.7,0,3.7C-98.5,35-100.1,35-101.2,34z
|
|
|
|
M-98.4,31.3c-0.5-0.5-1.3-0.5-1.8,0c-0.5,0.5-0.5,1.3,0,1.8s1.3,0.5,1.8,0C-97.9,32.6-97.9,31.8-98.4,31.3z"/>
|
|
|
|
<path fill="#1D1D1B" d="M-98.4,31.3c-0.5-0.5-1.3-0.5-1.8,0c-0.5,0.5-0.5,1.3,0,1.8s1.3,0.5,1.8,0
|
|
|
|
C-97.9,32.6-97.9,31.8-98.4,31.3z"/>
|
|
|
|
</g>
|
|
|
|
</g>
|
|
|
|
</g>
|
|
|
|
<path fill="#FFFFFF" d="M130.1-10.2c-5,0-10.1,5.1-10.1,10.1S125.1,10,130.1,10c5,0,10.1-5.1,10.1-10.1S135-10.2,130.1-10.2z"/>
|
|
|
|
<path fill="#FFFFFF" d="M64.4,104.8c-5.4,0-9.9,4.4-9.9,9.9c0,5.4,4.4,9.9,9.9,9.9s9.9-4.4,9.9-9.9
|
|
|
|
C74.3,109.2,69.8,104.8,64.4,104.8z"/>
|
|
|
|
<path fill="#FFFFFF" d="M-67.6,104.3c-5.7,0-10.4,4.6-10.4,10.4s4.6,10.4,10.4,10.4s10.4-4.6,10.4-10.4S-61.9,104.3-67.6,104.3z"
|
|
|
|
/>
|
|
|
|
<path fill="#FFFFFF" d="M-134.6-10.2c-5.6,0-10.1,4.5-10.1,10.1s4.5,11.4,10.1,11.4s10.1-5.8,10.1-11.4S-129-10.2-134.6-10.2z"/>
|
|
|
|
<path fill="#FFFFFF" d="M-67.6-124.7c-5.6,0-10.1,4.5-10.1,10.1s4.5,10.1,10.1,10.1c5.6,0,10.1-4.5,10.1-10.1
|
|
|
|
S-62-124.7-67.6-124.7z"/>
|
|
|
|
<path fill="#FFFFFF" d="M64.4-124c-5.7,0-10.4,4.6-10.4,10.4s4.6,10.4,10.4,10.4s10.4-4.6,10.4-10.4S70.1-124,64.4-124z"/>
|
|
|
|
</g>
|
|
|
|
</g>
|
|
|
|
</symbol>
|
|
|
|
<g id="Ebene_1">
|
|
|
|
|
|
|
|
<use xlink:href="#Mini_front" width="242.4" height="214.1" id="XMLID_11_" x="-121.4" y="-112.4" transform="matrix(1 0 0 -1 126.0595 105.6499)" overflow="visible"/>
|
|
|
|
<rect x="69.7" y="101.1" fill="#1D1D1B" width="10.1" height="6.1"/>
|
|
|
|
<path fill="#FFFFFF" d="M30.1,125.2c0,0.3,0,0.5-0.1,0.7c-0.1,0.2-0.1,0.4-0.2,0.5c-0.1,0.1-0.2,0.2-0.4,0.3
|
|
|
|
c-0.2,0.1-0.3,0.1-0.5,0.1c-0.2,0-0.4,0-0.5-0.1c-0.2-0.1-0.3-0.2-0.4-0.3c-0.1-0.1-0.2-0.3-0.3-0.5c-0.1-0.2-0.1-0.4-0.1-0.7v-0.9
|
|
|
|
c0-0.3,0-0.5,0.1-0.7c0.1-0.2,0.1-0.4,0.2-0.5c0.1-0.1,0.2-0.2,0.4-0.3c0.2-0.1,0.3-0.1,0.5-0.1c0.2,0,0.4,0,0.5,0.1
|
|
|
|
c0.2,0.1,0.3,0.2,0.4,0.3c0.1,0.1,0.2,0.3,0.3,0.5c0.1,0.2,0.1,0.4,0.1,0.7V125.2z M28,125.1l1.5-1.2c0-0.3-0.1-0.5-0.2-0.6
|
|
|
|
c-0.1-0.1-0.3-0.2-0.5-0.2c-0.3,0-0.5,0.1-0.6,0.3c-0.1,0.2-0.2,0.4-0.2,0.8V125.1z M29.6,124.4l-1.5,1.2c0,0.3,0.1,0.4,0.2,0.6
|
|
|
|
c0.1,0.1,0.3,0.2,0.5,0.2c0.3,0,0.5-0.1,0.6-0.3c0.1-0.2,0.2-0.4,0.2-0.8V124.4z"/>
|
|
|
|
<path fill="#FFFFFF" d="M92.7,18h-4v-0.8h4V18z"/>
|
|
|
|
<path fill="#FFFFFF" d="M162.3,17.3h1.7v0.8h-1.7v1.9h-0.8v-1.9h-1.7v-0.8h1.7v-1.8h0.8V17.3z"/>
|
|
|
|
<path fill="#FFFFFF" d="M222.1,124.5h0.4c0.1,0,0.2,0,0.3-0.1c0.1,0,0.2-0.1,0.2-0.1c0.1-0.1,0.1-0.1,0.2-0.2
|
|
|
|
c0-0.1,0.1-0.2,0.1-0.3c0-0.2-0.1-0.4-0.2-0.5c-0.1-0.1-0.3-0.2-0.5-0.2c-0.1,0-0.2,0-0.3,0c-0.1,0-0.2,0.1-0.2,0.1
|
|
|
|
c-0.1,0.1-0.1,0.1-0.1,0.2s-0.1,0.2-0.1,0.3h-0.5c0-0.1,0-0.3,0.1-0.4c0.1-0.1,0.1-0.2,0.2-0.3c0.1-0.1,0.2-0.2,0.4-0.2
|
|
|
|
c0.1-0.1,0.3-0.1,0.5-0.1c0.2,0,0.3,0,0.5,0.1c0.1,0,0.3,0.1,0.4,0.2c0.1,0.1,0.2,0.2,0.2,0.3c0.1,0.1,0.1,0.3,0.1,0.5
|
|
|
|
c0,0.1,0,0.2,0,0.2s-0.1,0.2-0.1,0.2c0,0.1-0.1,0.1-0.2,0.2c-0.1,0.1-0.2,0.1-0.3,0.2c0.1,0,0.2,0.1,0.3,0.2
|
|
|
|
c0.1,0.1,0.2,0.1,0.2,0.2c0.1,0.1,0.1,0.2,0.1,0.3s0,0.2,0,0.3c0,0.2,0,0.3-0.1,0.5c-0.1,0.1-0.2,0.3-0.3,0.4
|
|
|
|
c-0.1,0.1-0.2,0.2-0.4,0.2c-0.2,0.1-0.3,0.1-0.5,0.1c-0.2,0-0.3,0-0.5-0.1c-0.2,0-0.3-0.1-0.4-0.2c-0.1-0.1-0.2-0.2-0.3-0.3
|
|
|
|
c-0.1-0.1-0.1-0.3-0.1-0.5h0.5c0,0.1,0,0.2,0.1,0.3c0,0.1,0.1,0.2,0.1,0.2s0.1,0.1,0.2,0.1c0.1,0,0.2,0,0.3,0c0.1,0,0.2,0,0.3,0
|
|
|
|
c0.1,0,0.2-0.1,0.2-0.1c0.1-0.1,0.1-0.1,0.2-0.2c0-0.1,0.1-0.2,0.1-0.3c0-0.1,0-0.2-0.1-0.3c0-0.1-0.1-0.2-0.2-0.2
|
|
|
|
c-0.1-0.1-0.2-0.1-0.3-0.1c-0.1,0-0.2,0-0.3,0h-0.4V124.5z"/>
|
|
|
|
<path fill="#FFFFFF" d="M90.2,203.7h-0.5v-3.3l-1,0.4v-0.5l1.5-0.6h0V203.7z"/>
|
|
|
|
<path fill="#FFFFFF" d="M163.8,203.7h-2.6v-0.4l1.3-1.4c0.1-0.1,0.2-0.2,0.3-0.3c0.1-0.1,0.1-0.2,0.2-0.3c0-0.1,0.1-0.2,0.1-0.2
|
|
|
|
c0-0.1,0-0.2,0-0.2c0-0.1,0-0.2,0-0.3c0-0.1-0.1-0.2-0.1-0.2c-0.1-0.1-0.1-0.1-0.2-0.1c-0.1,0-0.2-0.1-0.3-0.1
|
|
|
|
c-0.1,0-0.2,0-0.3,0.1c-0.1,0-0.2,0.1-0.2,0.2c-0.1,0.1-0.1,0.2-0.1,0.3c0,0.1,0,0.2,0,0.3h-0.5c0-0.2,0-0.3,0.1-0.5
|
|
|
|
c0.1-0.1,0.1-0.3,0.2-0.4c0.1-0.1,0.2-0.2,0.4-0.3c0.2-0.1,0.3-0.1,0.5-0.1c0.2,0,0.4,0,0.5,0.1c0.1,0.1,0.3,0.1,0.4,0.2
|
|
|
|
c0.1,0.1,0.2,0.2,0.2,0.3c0.1,0.1,0.1,0.3,0.1,0.4c0,0.1,0,0.2-0.1,0.3c0,0.1-0.1,0.2-0.2,0.3c-0.1,0.1-0.1,0.2-0.2,0.3
|
|
|
|
c-0.1,0.1-0.2,0.2-0.3,0.3l-1.1,1.1h2V203.7z"/>
|
|
|
|
<path fill="#FFFFFF" d="M131.7,128.3v-3.9h1.2c0.2,0,0.3,0,0.5,0.1c0.2,0,0.3,0.1,0.4,0.2s0.2,0.2,0.3,0.3c0.1,0.1,0.1,0.3,0.1,0.5
|
|
|
|
c0,0.1,0,0.2-0.1,0.3c0,0.1-0.1,0.2-0.1,0.2c-0.1,0.1-0.1,0.1-0.2,0.2c-0.1,0.1-0.2,0.1-0.2,0.1c0.1,0,0.2,0.1,0.3,0.1
|
|
|
|
c0.1,0.1,0.2,0.1,0.2,0.2s0.1,0.2,0.1,0.3c0,0.1,0.1,0.2,0.1,0.3c0,0.2,0,0.3-0.1,0.5c-0.1,0.1-0.2,0.3-0.3,0.4
|
|
|
|
c-0.1,0.1-0.3,0.2-0.4,0.2c-0.2,0.1-0.3,0.1-0.5,0.1H131.7z M132.2,126h0.7c0.1,0,0.2,0,0.3,0c0.1,0,0.2-0.1,0.2-0.1
|
|
|
|
c0.1-0.1,0.1-0.1,0.2-0.2c0-0.1,0.1-0.2,0.1-0.3c0-0.1,0-0.2-0.1-0.3c0-0.1-0.1-0.1-0.2-0.2c-0.1,0-0.2-0.1-0.2-0.1
|
|
|
|
c-0.1,0-0.2,0-0.3,0h-0.7V126z M132.2,126.4v1.4h0.8c0.1,0,0.2,0,0.3-0.1c0.1,0,0.2-0.1,0.2-0.1c0.1-0.1,0.1-0.1,0.2-0.2
|
|
|
|
c0-0.1,0.1-0.2,0.1-0.3c0-0.1,0-0.2-0.1-0.3c0-0.1-0.1-0.2-0.2-0.2c-0.1-0.1-0.1-0.1-0.2-0.1c-0.1,0-0.2-0.1-0.3-0.1H132.2z"/>
|
|
|
|
<path fill="#FFFFFF" d="M136.9,127.3h-1.3l-0.3,1h-0.5l1.3-3.9h0.4l1.2,3.9h-0.5L136.9,127.3z M135.7,126.8h1l-0.5-1.7L135.7,126.8
|
|
|
|
z"/>
|
|
|
|
<path fill="#FFFFFF" d="M141,124.8h-1.2v3.5h-0.5v-3.5H138v-0.4h2.9V124.8z"/>
|
|
|
|
<path fill="#FFFFFF" d="M144.3,124.8h-1.2v3.5h-0.5v-3.5h-1.2v-0.4h2.9V124.8z"/>
|
|
|
|
<path fill="#FFFFFF" d="M147.1,126.5h-1.6v1.4h1.9v0.4H145v-3.9h2.4v0.4h-1.9v1.3h1.6V126.5z"/>
|
|
|
|
<path fill="#FFFFFF" d="M149.6,126.7h-0.8v1.6h-0.5v-3.9h1.2c0.2,0,0.4,0,0.5,0.1s0.3,0.1,0.4,0.2c0.1,0.1,0.2,0.2,0.3,0.4
|
|
|
|
c0.1,0.1,0.1,0.3,0.1,0.5c0,0.1,0,0.2-0.1,0.4c0,0.1-0.1,0.2-0.2,0.3c-0.1,0.1-0.1,0.2-0.2,0.2c-0.1,0.1-0.2,0.1-0.3,0.2l0.8,1.7
|
|
|
|
l0,0h-0.5L149.6,126.7z M148.8,126.3h0.7c0.1,0,0.2,0,0.3-0.1c0.1,0,0.2-0.1,0.3-0.1c0.1-0.1,0.1-0.1,0.2-0.2
|
|
|
|
c0-0.1,0.1-0.2,0.1-0.3c0-0.1,0-0.2-0.1-0.3c0-0.1-0.1-0.2-0.2-0.2c-0.1-0.1-0.2-0.1-0.3-0.1s-0.2,0-0.3-0.1h-0.7V126.3z"/>
|
|
|
|
<path fill="#FFFFFF" d="M151.6,124.3h2.4v0.4H153v3.1h0.9v0.4h-2.4v-0.4h0.9v-3.1h-0.9V124.3z"/>
|
|
|
|
<path fill="#FFFFFF" d="M157.1,126.5h-1.6v1.4h1.9v0.4h-2.4v-3.9h2.4v0.4h-1.9v1.3h1.6V126.5z"/>
|
|
|
|
<path fill="#FFFFFF" d="M132.2,121.5h1.9v0.4h-2.4V118h0.5V121.5z"/>
|
|
|
|
<path fill="#FFFFFF" d="M136.8,120.9h-1.3l-0.3,1h-0.5l1.3-3.9h0.4l1.2,3.9h-0.5L136.8,120.9z M135.6,120.4h1l-0.5-1.7L135.6,120.4
|
|
|
|
z"/>
|
|
|
|
<path fill="#FFFFFF" d="M140.7,118l0,2.7c0,0.2,0,0.4-0.1,0.5c-0.1,0.2-0.2,0.3-0.3,0.4c-0.1,0.1-0.2,0.2-0.4,0.3
|
|
|
|
c-0.2,0.1-0.3,0.1-0.5,0.1c-0.2,0-0.4,0-0.5-0.1c-0.2-0.1-0.3-0.2-0.4-0.3c-0.1-0.1-0.2-0.3-0.3-0.4c-0.1-0.2-0.1-0.3-0.1-0.5
|
|
|
|
l0-2.7h0.5l0,2.7c0,0.1,0,0.2,0.1,0.3c0,0.1,0.1,0.2,0.2,0.3s0.1,0.1,0.2,0.2c0.1,0.1,0.2,0.1,0.3,0.1s0.2,0,0.3-0.1
|
|
|
|
c0.1,0,0.2-0.1,0.2-0.2c0.1-0.1,0.1-0.2,0.2-0.3c0-0.1,0.1-0.2,0.1-0.3l0-2.7H140.7z"/>
|
|
|
|
<path fill="#FFFFFF" d="M144.2,118.4H143v3.5h-0.5v-3.5h-1.2V118h2.9V118.4z"/>
|
|
|
|
<path fill="#FFFFFF" d="M147,120.9c0-0.1,0-0.2-0.1-0.3s-0.1-0.2-0.2-0.2c-0.1-0.1-0.2-0.1-0.3-0.1c-0.1,0-0.2-0.1-0.3-0.1
|
|
|
|
c-0.1,0-0.3-0.1-0.4-0.2c-0.1-0.1-0.3-0.1-0.4-0.2s-0.2-0.2-0.3-0.3c-0.1-0.1-0.1-0.3-0.1-0.4c0-0.2,0-0.3,0.1-0.5
|
|
|
|
c0.1-0.1,0.2-0.2,0.3-0.3c0.1-0.1,0.3-0.2,0.4-0.2c0.2,0,0.3-0.1,0.5-0.1c0.2,0,0.3,0,0.5,0.1c0.2,0.1,0.3,0.1,0.4,0.2
|
|
|
|
s0.2,0.2,0.3,0.4s0.1,0.3,0.1,0.5H147c0-0.1,0-0.2-0.1-0.3s-0.1-0.2-0.2-0.2c-0.1-0.1-0.2-0.1-0.2-0.2c-0.1,0-0.2-0.1-0.3-0.1
|
|
|
|
c-0.1,0-0.2,0-0.3,0c-0.1,0-0.2,0.1-0.2,0.1c-0.1,0.1-0.1,0.1-0.2,0.2s-0.1,0.2-0.1,0.3c0,0.1,0,0.2,0.1,0.3
|
|
|
|
c0.1,0.1,0.1,0.1,0.2,0.2c0.1,0.1,0.2,0.1,0.3,0.1c0.1,0,0.2,0.1,0.3,0.1c0.1,0,0.2,0.1,0.3,0.1c0.1,0,0.2,0.1,0.3,0.1
|
|
|
|
c0.1,0.1,0.2,0.1,0.3,0.2s0.1,0.1,0.2,0.2c0.1,0.1,0.1,0.2,0.1,0.3c0,0.1,0,0.2,0,0.3c0,0.2,0,0.3-0.1,0.5
|
|
|
|
c-0.1,0.1-0.2,0.2-0.3,0.3s-0.3,0.2-0.4,0.2c-0.2,0-0.3,0.1-0.5,0.1c-0.2,0-0.3,0-0.5-0.1c-0.2-0.1-0.3-0.1-0.4-0.2
|
|
|
|
c-0.1-0.1-0.2-0.2-0.3-0.4c-0.1-0.1-0.1-0.3-0.1-0.5h0.5c0,0.1,0,0.2,0.1,0.3c0.1,0.1,0.1,0.2,0.2,0.2c0.1,0.1,0.2,0.1,0.3,0.1
|
|
|
|
c0.1,0,0.2,0,0.3,0c0.1,0,0.2,0,0.3,0c0.1,0,0.2-0.1,0.3-0.1c0.1-0.1,0.1-0.1,0.2-0.2C146.9,121.1,147,121,147,120.9z"/>
|
|
|
|
<path fill="#FFFFFF" d="M148.8,120.3v1.6h-0.5V118h1.3c0.2,0,0.3,0,0.5,0.1c0.2,0.1,0.3,0.1,0.4,0.2s0.2,0.2,0.3,0.4
|
|
|
|
c0.1,0.1,0.1,0.3,0.1,0.5s0,0.4-0.1,0.5c-0.1,0.1-0.2,0.3-0.3,0.4s-0.3,0.2-0.4,0.2c-0.2,0.1-0.3,0.1-0.5,0.1H148.8z M148.8,119.9
|
|
|
|
h0.8c0.1,0,0.2,0,0.3-0.1c0.1,0,0.2-0.1,0.3-0.1c0.1-0.1,0.1-0.1,0.2-0.2c0-0.1,0.1-0.2,0.1-0.3c0-0.1,0-0.2-0.1-0.3
|
|
|
|
c0-0.1-0.1-0.2-0.2-0.2c-0.1-0.1-0.2-0.1-0.3-0.2c-0.1,0-0.2-0.1-0.3-0.1h-0.8V119.9z"/>
|
|
|
|
<path fill="#FFFFFF" d="M152.9,120.3h-0.8v1.6h-0.5V118h1.2c0.2,0,0.4,0,0.5,0.1c0.2,0,0.3,0.1,0.4,0.2c0.1,0.1,0.2,0.2,0.3,0.4
|
|
|
|
c0.1,0.1,0.1,0.3,0.1,0.5c0,0.1,0,0.2-0.1,0.4s-0.1,0.2-0.2,0.3c-0.1,0.1-0.1,0.2-0.2,0.2c-0.1,0.1-0.2,0.1-0.3,0.2l0.8,1.7l0,0
|
|
|
|
h-0.5L152.9,120.3z M152.1,119.9h0.7c0.1,0,0.2,0,0.3-0.1c0.1,0,0.2-0.1,0.3-0.1c0.1-0.1,0.1-0.1,0.2-0.2c0-0.1,0.1-0.2,0.1-0.3
|
|
|
|
c0-0.1,0-0.2-0.1-0.3c0-0.1-0.1-0.2-0.2-0.2s-0.2-0.1-0.3-0.1s-0.2,0-0.3-0.1h-0.7V119.9z"/>
|
|
|
|
<path fill="#FFFFFF" d="M157,120.1h-1.6v1.4h1.9v0.4h-2.4V118h2.4v0.4h-1.9v1.3h1.6V120.1z"/>
|
|
|
|
<path fill="#FFFFFF" d="M160.7,120.7c0,0.2-0.1,0.3-0.1,0.5c-0.1,0.2-0.2,0.3-0.3,0.4c-0.1,0.1-0.2,0.2-0.4,0.3
|
|
|
|
c-0.2,0.1-0.3,0.1-0.5,0.1c-0.2,0-0.3,0-0.4-0.1c-0.1,0-0.3-0.1-0.4-0.2c-0.1-0.1-0.2-0.2-0.3-0.3c-0.1-0.1-0.1-0.2-0.2-0.4
|
|
|
|
c-0.1-0.1-0.1-0.3-0.1-0.4c0-0.1,0-0.3,0-0.4v-0.5c0-0.1,0-0.3,0-0.4c0-0.1,0.1-0.3,0.1-0.4c0-0.1,0.1-0.3,0.2-0.4
|
|
|
|
c0.1-0.1,0.2-0.2,0.3-0.3c0.1-0.1,0.2-0.1,0.4-0.2c0.1,0,0.3-0.1,0.4-0.1c0.2,0,0.4,0,0.5,0.1c0.2,0.1,0.3,0.1,0.4,0.3
|
|
|
|
c0.1,0.1,0.2,0.2,0.3,0.4c0.1,0.2,0.1,0.3,0.1,0.5h-0.5c0-0.1,0-0.2-0.1-0.3s-0.1-0.2-0.2-0.3c-0.1-0.1-0.1-0.1-0.2-0.2
|
|
|
|
c-0.1,0-0.2-0.1-0.3-0.1c-0.1,0-0.2,0-0.3,0.1c-0.1,0-0.2,0.1-0.2,0.2c-0.1,0.1-0.1,0.1-0.2,0.2c0,0.1-0.1,0.2-0.1,0.3
|
|
|
|
c0,0.1,0,0.2-0.1,0.3c0,0.1,0,0.2,0,0.3v0.6c0,0.1,0,0.2,0,0.3c0,0.1,0,0.2,0.1,0.3c0,0.1,0.1,0.2,0.1,0.3c0,0.1,0.1,0.2,0.2,0.2
|
|
|
|
c0.1,0.1,0.1,0.1,0.2,0.2c0.1,0,0.2,0.1,0.3,0.1c0.1,0,0.2,0,0.3-0.1c0.1,0,0.2-0.1,0.2-0.2c0.1-0.1,0.1-0.2,0.2-0.3
|
|
|
|
s0.1-0.2,0.1-0.3H160.7z"/>
|
|
|
|
<path fill="#FFFFFF" d="M164,121.9h-0.5v-1.8h-1.6v1.8h-0.5V118h0.5v1.7h1.6V118h0.5V121.9z"/>
|
|
|
|
<path fill="#FFFFFF" d="M167,120.1h-1.6v1.4h1.9v0.4h-2.4V118h2.4v0.4h-1.9v1.3h1.6V120.1z"/>
|
|
|
|
<path fill="#FFFFFF" d="M169.5,120.3h-0.8v1.6h-0.5V118h1.2c0.2,0,0.4,0,0.5,0.1c0.2,0,0.3,0.1,0.4,0.2c0.1,0.1,0.2,0.2,0.3,0.4
|
|
|
|
c0.1,0.1,0.1,0.3,0.1,0.5c0,0.1,0,0.2-0.1,0.4c0,0.1-0.1,0.2-0.2,0.3s-0.1,0.2-0.2,0.2c-0.1,0.1-0.2,0.1-0.3,0.2l0.8,1.7l0,0h-0.5
|
|
|
|
L169.5,120.3z M168.7,119.9h0.7c0.1,0,0.2,0,0.3-0.1c0.1,0,0.2-0.1,0.3-0.1c0.1-0.1,0.1-0.1,0.2-0.2c0-0.1,0.1-0.2,0.1-0.3
|
|
|
|
c0-0.1,0-0.2-0.1-0.3c0-0.1-0.1-0.2-0.2-0.2c-0.1-0.1-0.2-0.1-0.3-0.1s-0.2,0-0.3-0.1h-0.7V119.9z"/>
|
|
|
|
<path fill="#FFFFFF" d="M38.6,121.8h-0.8v1.6h-0.5v-3.9h1.2c0.2,0,0.4,0,0.5,0.1c0.2,0,0.3,0.1,0.4,0.2c0.1,0.1,0.2,0.2,0.3,0.4
|
|
|
|
c0.1,0.1,0.1,0.3,0.1,0.5c0,0.1,0,0.2-0.1,0.4s-0.1,0.2-0.2,0.3c-0.1,0.1-0.1,0.2-0.2,0.2c-0.1,0.1-0.2,0.1-0.3,0.2l0.8,1.7l0,0
|
|
|
|
h-0.5L38.6,121.8z M37.8,121.4h0.7c0.1,0,0.2,0,0.3-0.1s0.2-0.1,0.3-0.1c0.1-0.1,0.1-0.1,0.2-0.2c0-0.1,0.1-0.2,0.1-0.3
|
|
|
|
c0-0.1,0-0.2-0.1-0.3c0-0.1-0.1-0.2-0.2-0.2c-0.1-0.1-0.2-0.1-0.3-0.1c-0.1,0-0.2,0-0.3-0.1h-0.7V121.4z"/>
|
|
|
|
<path fill="#FFFFFF" d="M43.2,122.9c-0.2,0.2-0.4,0.3-0.6,0.4s-0.4,0.1-0.7,0.1c-0.2,0-0.3,0-0.4-0.1c-0.1,0-0.3-0.1-0.4-0.2
|
|
|
|
c-0.1-0.1-0.2-0.2-0.3-0.3c-0.1-0.1-0.1-0.2-0.2-0.4c-0.1-0.1-0.1-0.3-0.1-0.4c0-0.1,0-0.3,0-0.4v-0.5c0-0.1,0-0.3,0-0.4
|
|
|
|
c0-0.1,0.1-0.3,0.1-0.4c0.1-0.1,0.1-0.3,0.2-0.4c0.1-0.1,0.2-0.2,0.3-0.3c0.1-0.1,0.2-0.2,0.4-0.2c0.1,0,0.3-0.1,0.4-0.1
|
|
|
|
c0.2,0,0.4,0,0.5,0.1c0.2,0.1,0.3,0.1,0.4,0.2c0.1,0.1,0.2,0.2,0.3,0.4c0.1,0.1,0.1,0.3,0.1,0.5h-0.5c0-0.1-0.1-0.2-0.1-0.3
|
|
|
|
s-0.1-0.2-0.2-0.2c-0.1-0.1-0.1-0.1-0.2-0.2c-0.1,0-0.2-0.1-0.3-0.1c-0.1,0-0.2,0-0.3,0.1c-0.1,0-0.2,0.1-0.2,0.2
|
|
|
|
c-0.1,0.1-0.1,0.1-0.2,0.2c0,0.1-0.1,0.2-0.1,0.3c0,0.1,0,0.2-0.1,0.3c0,0.1,0,0.2,0,0.3v0.5c0,0.1,0,0.2,0,0.3
|
|
|
|
c0,0.1,0,0.2,0.1,0.3c0,0.1,0.1,0.2,0.1,0.3c0.1,0.1,0.1,0.2,0.2,0.2c0.1,0.1,0.2,0.1,0.2,0.2c0.1,0,0.2,0.1,0.3,0.1
|
|
|
|
c0.1,0,0.1,0,0.2,0c0.1,0,0.1,0,0.2,0c0.1,0,0.1-0.1,0.2-0.1c0.1,0,0.1-0.1,0.2-0.1l0-0.9h-0.8v-0.4h1.3L43.2,122.9z"/>
|
|
|
|
<path fill="#FFFFFF" d="M43.9,123.4v-3.9h1.2c0.2,0,0.3,0,0.5,0.1c0.2,0,0.3,0.1,0.4,0.2s0.2,0.2,0.3,0.3c0.1,0.1,0.1,0.3,0.1,0.5
|
|
|
|
c0,0.1,0,0.2-0.1,0.3c0,0.1-0.1,0.2-0.1,0.2c-0.1,0.1-0.1,0.1-0.2,0.2c-0.1,0.1-0.2,0.1-0.2,0.1c0.1,0,0.2,0.1,0.3,0.1
|
|
|
|
c0.1,0.1,0.2,0.1,0.2,0.2c0.1,0.1,0.1,0.2,0.1,0.3c0,0.1,0.1,0.2,0.1,0.3c0,0.2,0,0.3-0.1,0.5c-0.1,0.1-0.2,0.3-0.3,0.4
|
|
|
|
c-0.1,0.1-0.3,0.2-0.4,0.2c-0.2,0.1-0.3,0.1-0.5,0.1H43.9z M44.4,121.1h0.7c0.1,0,0.2,0,0.3,0c0.1,0,0.2-0.1,0.2-0.1
|
|
|
|
c0.1-0.1,0.1-0.1,0.2-0.2c0-0.1,0.1-0.2,0.1-0.3c0-0.1,0-0.2-0.1-0.3c0-0.1-0.1-0.1-0.2-0.2c-0.1,0-0.2-0.1-0.2-0.1
|
|
|
|
c-0.1,0-0.2,0-0.3,0h-0.7V121.1z M44.4,121.6v1.4h0.8c0.1,0,0.2,0,0.3-0.1c0.1,0,0.2-0.1,0.2-0.1c0.1-0.1,0.1-0.1,0.2-0.2
|
|
|
|
c0-0.1,0.1-0.2,0.1-0.3c0-0.1,0-0.2-0.1-0.3c0-0.1-0.1-0.2-0.2-0.2s-0.1-0.1-0.2-0.1c-0.1,0-0.2-0.1-0.3-0.1H44.4z"/>
|
|
|
|
<path fill="#FFFFFF" d="M49.3,123h1.9v0.4h-2.4v-3.9h0.5V123z"/>
|
|
|
|
<path fill="#FFFFFF" d="M54.2,121.6h-1.6v1.4h1.9v0.4H52v-3.9h2.4v0.4h-1.9v1.3h1.6V121.6z"/>
|
|
|
|
<path fill="#FFFFFF" d="M55.3,123.4v-3.9h0.9c0.3,0,0.5,0.1,0.7,0.1c0.2,0.1,0.4,0.2,0.5,0.4c0.1,0.2,0.3,0.4,0.3,0.6
|
|
|
|
c0.1,0.2,0.1,0.5,0.1,0.7v0.3c0,0.3,0,0.5-0.1,0.7c-0.1,0.2-0.2,0.4-0.3,0.6c-0.1,0.2-0.3,0.3-0.5,0.4c-0.2,0.1-0.5,0.1-0.7,0.1
|
|
|
|
H55.3z M55.8,119.9v3.1h0.4c0.2,0,0.4,0,0.6-0.1c0.2-0.1,0.3-0.2,0.4-0.3c0.1-0.1,0.2-0.3,0.2-0.4c0-0.2,0.1-0.4,0.1-0.6v-0.3
|
|
|
|
c0-0.2,0-0.4-0.1-0.6c-0.1-0.2-0.1-0.3-0.2-0.4c-0.1-0.1-0.2-0.2-0.4-0.3s-0.3-0.1-0.6-0.1H55.8z"/>
|
|
|
|
<path fill="#FFFFFF" d="M37.8,117h1.9v0.4h-2.4v-3.9h0.5V117z"/>
|
|
|
|
<path fill="#FFFFFF" d="M42.4,116.4h-1.3l-0.3,1h-0.5l1.3-3.9H42l1.2,3.9h-0.5L42.4,116.4z M41.3,116h1l-0.5-1.7L41.3,116z"/>
|
|
|
|
<path fill="#FFFFFF" d="M46.4,116.9c-0.2,0.2-0.4,0.3-0.6,0.4s-0.4,0.1-0.7,0.1c-0.2,0-0.3,0-0.4-0.1c-0.1,0-0.3-0.1-0.4-0.2
|
|
|
|
c-0.1-0.1-0.2-0.2-0.3-0.3c-0.1-0.1-0.1-0.2-0.2-0.4c-0.1-0.1-0.1-0.3-0.1-0.4c0-0.1,0-0.3,0-0.4v-0.5c0-0.1,0-0.3,0-0.4
|
|
|
|
c0-0.1,0.1-0.3,0.1-0.4s0.1-0.3,0.2-0.4c0.1-0.1,0.2-0.2,0.3-0.3c0.1-0.1,0.2-0.2,0.4-0.2s0.3-0.1,0.4-0.1c0.2,0,0.4,0,0.5,0.1
|
|
|
|
c0.2,0.1,0.3,0.1,0.4,0.2c0.1,0.1,0.2,0.2,0.3,0.4c0.1,0.1,0.1,0.3,0.1,0.5h-0.5c0-0.1-0.1-0.2-0.1-0.3c0-0.1-0.1-0.2-0.2-0.2
|
|
|
|
c-0.1-0.1-0.1-0.1-0.2-0.2c-0.1,0-0.2-0.1-0.3-0.1c-0.1,0-0.2,0-0.3,0.1c-0.1,0-0.2,0.1-0.2,0.2s-0.1,0.1-0.2,0.2
|
|
|
|
c0,0.1-0.1,0.2-0.1,0.3c0,0.1,0,0.2-0.1,0.3c0,0.1,0,0.2,0,0.3v0.5c0,0.1,0,0.2,0,0.3c0,0.1,0,0.2,0.1,0.3c0,0.1,0.1,0.2,0.1,0.3
|
|
|
|
c0.1,0.1,0.1,0.2,0.2,0.2c0.1,0.1,0.2,0.1,0.2,0.2c0.1,0,0.2,0.1,0.3,0.1c0.1,0,0.1,0,0.2,0c0.1,0,0.1,0,0.2,0
|
|
|
|
c0.1,0,0.1-0.1,0.2-0.1c0.1,0,0.1-0.1,0.2-0.1l0-0.9h-0.8v-0.4h1.3L46.4,116.9z"/>
|
|
|
|
<path fill="#FFFFFF" d="M49.4,115.6h-1.6v1.4h1.9v0.4h-2.4v-3.9h2.4v0.4h-1.9v1.3h1.6V115.6z"/>
|
|
|
|
<path fill="#FFFFFF" d="M52.6,116.5c0-0.1,0-0.2-0.1-0.3s-0.1-0.2-0.2-0.2c-0.1-0.1-0.2-0.1-0.3-0.1s-0.2-0.1-0.3-0.1
|
|
|
|
c-0.1,0-0.3-0.1-0.4-0.2c-0.1-0.1-0.3-0.1-0.4-0.2s-0.2-0.2-0.3-0.3c-0.1-0.1-0.1-0.3-0.1-0.4c0-0.2,0-0.3,0.1-0.5
|
|
|
|
c0.1-0.1,0.2-0.2,0.3-0.3c0.1-0.1,0.3-0.2,0.4-0.2s0.3-0.1,0.5-0.1c0.2,0,0.3,0,0.5,0.1c0.2,0.1,0.3,0.1,0.4,0.2
|
|
|
|
c0.1,0.1,0.2,0.2,0.3,0.4c0.1,0.1,0.1,0.3,0.1,0.5h-0.5c0-0.1,0-0.2-0.1-0.3s-0.1-0.2-0.2-0.2c-0.1-0.1-0.2-0.1-0.2-0.2
|
|
|
|
c-0.1,0-0.2-0.1-0.3-0.1c-0.1,0-0.2,0-0.3,0c-0.1,0-0.2,0.1-0.2,0.1c-0.1,0.1-0.1,0.1-0.2,0.2c0,0.1-0.1,0.2-0.1,0.3
|
|
|
|
c0,0.1,0,0.2,0.1,0.3c0.1,0.1,0.1,0.1,0.2,0.2c0.1,0.1,0.2,0.1,0.3,0.1c0.1,0,0.2,0.1,0.3,0.1c0.1,0,0.2,0.1,0.3,0.1
|
|
|
|
c0.1,0,0.2,0.1,0.3,0.1c0.1,0.1,0.2,0.1,0.3,0.2c0.1,0.1,0.1,0.1,0.2,0.2c0.1,0.1,0.1,0.2,0.1,0.3c0,0.1,0,0.2,0,0.3
|
|
|
|
c0,0.2,0,0.3-0.1,0.5c-0.1,0.1-0.2,0.2-0.3,0.3c-0.1,0.1-0.3,0.2-0.4,0.2c-0.2,0-0.3,0.1-0.5,0.1c-0.2,0-0.3,0-0.5-0.1
|
|
|
|
c-0.2-0.1-0.3-0.1-0.4-0.2c-0.1-0.1-0.2-0.2-0.3-0.4c-0.1-0.1-0.1-0.3-0.1-0.5h0.5c0,0.1,0,0.2,0.1,0.3c0.1,0.1,0.1,0.2,0.2,0.2
|
|
|
|
c0.1,0.1,0.2,0.1,0.3,0.1s0.2,0,0.3,0c0.1,0,0.2,0,0.3,0c0.1,0,0.2-0.1,0.3-0.1c0.1-0.1,0.1-0.1,0.2-0.2
|
|
|
|
C52.6,116.7,52.6,116.6,52.6,116.5z"/>
|
|
|
|
<path fill="#FFFFFF" d="M56,115.6h-1.6v1.4h1.9v0.4h-2.4v-3.9h2.4v0.4h-1.9v1.3H56V115.6z"/>
|
|
|
|
<path fill="#FFFFFF" d="M59.6,117.4h-0.5l-1.5-2.9l0,2.9h-0.5v-3.9h0.5l1.5,2.9l0-2.9h0.5V117.4z"/>
|
|
|
|
<path fill="#FFFFFF" d="M62.6,116.5c0-0.1,0-0.2-0.1-0.3c-0.1-0.1-0.1-0.2-0.2-0.2c-0.1-0.1-0.2-0.1-0.3-0.1s-0.2-0.1-0.3-0.1
|
|
|
|
c-0.1,0-0.3-0.1-0.4-0.2c-0.1-0.1-0.3-0.1-0.4-0.2c-0.1-0.1-0.2-0.2-0.3-0.3c-0.1-0.1-0.1-0.3-0.1-0.4c0-0.2,0-0.3,0.1-0.5
|
|
|
|
c0.1-0.1,0.2-0.2,0.3-0.3c0.1-0.1,0.3-0.2,0.4-0.2c0.2,0,0.3-0.1,0.5-0.1c0.2,0,0.3,0,0.5,0.1c0.2,0.1,0.3,0.1,0.4,0.2
|
|
|
|
s0.2,0.2,0.3,0.4c0.1,0.1,0.1,0.3,0.1,0.5h-0.5c0-0.1,0-0.2-0.1-0.3s-0.1-0.2-0.2-0.2c-0.1-0.1-0.2-0.1-0.2-0.2
|
|
|
|
c-0.1,0-0.2-0.1-0.3-0.1c-0.1,0-0.2,0-0.3,0c-0.1,0-0.2,0.1-0.2,0.1c-0.1,0.1-0.1,0.1-0.2,0.2c0,0.1-0.1,0.2-0.1,0.3
|
|
|
|
c0,0.1,0,0.2,0.1,0.3c0.1,0.1,0.1,0.1,0.2,0.2c0.1,0.1,0.2,0.1,0.3,0.1c0.1,0,0.2,0.1,0.3,0.1c0.1,0,0.2,0.1,0.3,0.1
|
|
|
|
c0.1,0,0.2,0.1,0.3,0.1s0.2,0.1,0.3,0.2c0.1,0.1,0.1,0.1,0.2,0.2c0.1,0.1,0.1,0.2,0.1,0.3c0,0.1,0,0.2,0,0.3c0,0.2,0,0.3-0.1,0.5
|
|
|
|
c-0.1,0.1-0.2,0.2-0.3,0.3c-0.1,0.1-0.3,0.2-0.4,0.2c-0.2,0-0.3,0.1-0.5,0.1c-0.2,0-0.3,0-0.5-0.1c-0.2-0.1-0.3-0.1-0.4-0.2
|
|
|
|
c-0.1-0.1-0.2-0.2-0.3-0.4c-0.1-0.1-0.1-0.3-0.1-0.5h0.5c0,0.1,0,0.2,0.1,0.3c0.1,0.1,0.1,0.2,0.2,0.2c0.1,0.1,0.2,0.1,0.3,0.1
|
|
|
|
s0.2,0,0.3,0c0.1,0,0.2,0,0.3,0c0.1,0,0.2-0.1,0.3-0.1c0.1-0.1,0.1-0.1,0.2-0.2C62.5,116.7,62.6,116.6,62.6,116.5z"/>
|
|
|
|
<path fill="#FFFFFF" d="M66.4,115.7c0,0.1,0,0.3,0,0.4c0,0.1-0.1,0.3-0.1,0.4c0,0.1-0.1,0.3-0.2,0.4c-0.1,0.1-0.2,0.2-0.3,0.3
|
|
|
|
c-0.1,0.1-0.2,0.2-0.3,0.2c-0.1,0-0.3,0.1-0.4,0.1s-0.3,0-0.4-0.1c-0.1,0-0.2-0.1-0.3-0.2c-0.1-0.1-0.2-0.2-0.3-0.3
|
|
|
|
c-0.1-0.1-0.1-0.2-0.2-0.4s-0.1-0.3-0.1-0.4c0-0.1,0-0.3,0-0.4v-0.4c0-0.1,0-0.3,0-0.4c0-0.1,0.1-0.3,0.1-0.4
|
|
|
|
c0-0.1,0.1-0.3,0.2-0.4c0.1-0.1,0.2-0.2,0.3-0.3c0.1-0.1,0.2-0.2,0.3-0.2c0.1,0,0.3-0.1,0.4-0.1c0.2,0,0.3,0,0.4,0.1
|
|
|
|
c0.1,0.1,0.2,0.1,0.3,0.2s0.2,0.2,0.3,0.3c0.1,0.1,0.1,0.2,0.2,0.4c0,0.1,0.1,0.3,0.1,0.4c0,0.1,0,0.3,0,0.4V115.7z M65.9,115.3
|
|
|
|
c0-0.1,0-0.2,0-0.3c0-0.1,0-0.2-0.1-0.3c0-0.1-0.1-0.2-0.1-0.3c0-0.1-0.1-0.2-0.2-0.2c-0.1-0.1-0.1-0.1-0.2-0.2
|
|
|
|
c-0.1,0-0.2-0.1-0.3-0.1c-0.1,0-0.2,0-0.3,0.1s-0.2,0.1-0.2,0.2c-0.1,0.1-0.1,0.2-0.2,0.2c0,0.1-0.1,0.2-0.1,0.3
|
|
|
|
c0,0.1,0,0.2-0.1,0.3c0,0.1,0,0.2,0,0.3v0.5c0,0.1,0,0.2,0,0.3c0,0.1,0,0.2,0.1,0.3c0,0.1,0.1,0.2,0.1,0.3c0,0.1,0.1,0.2,0.2,0.2
|
|
|
|
s0.1,0.1,0.2,0.2c0.1,0,0.2,0.1,0.3,0.1s0.2,0,0.3-0.1c0.1,0,0.2-0.1,0.2-0.2c0.1-0.1,0.1-0.1,0.2-0.2c0-0.1,0.1-0.2,0.1-0.3
|
|
|
|
c0-0.1,0-0.2,0.1-0.3s0-0.2,0-0.3V115.3z"/>
|
|
|
|
<path fill="#FFFFFF" d="M68.4,115.8h-0.8v1.6h-0.5v-3.9h1.2c0.2,0,0.4,0,0.5,0.1c0.2,0,0.3,0.1,0.4,0.2c0.1,0.1,0.2,0.2,0.3,0.4
|
|
|
|
c0.1,0.1,0.1,0.3,0.1,0.5c0,0.1,0,0.2-0.1,0.4c0,0.1-0.1,0.2-0.2,0.3c-0.1,0.1-0.1,0.2-0.2,0.2c-0.1,0.1-0.2,0.1-0.3,0.2l0.8,1.7
|
|
|
|
l0,0h-0.5L68.4,115.8z M67.7,115.4h0.7c0.1,0,0.2,0,0.3-0.1c0.1,0,0.2-0.1,0.3-0.1c0.1-0.1,0.1-0.1,0.2-0.2c0-0.1,0.1-0.2,0.1-0.3
|
|
|
|
c0-0.1,0-0.2-0.1-0.3c0-0.1-0.1-0.2-0.2-0.2s-0.2-0.1-0.3-0.1c-0.1,0-0.2,0-0.3-0.1h-0.7V115.4z"/>
|
|
|
|
<path fill="#FFFFFF" d="M184.1,49.5c0.2-0.2,0.3-0.4,0.3-0.7c0-0.3-0.1-0.5-0.3-0.7c-0.2-0.2-0.5-0.2-0.9-0.2h-1v1.8h1.1
|
|
|
|
C183.6,49.7,183.9,49.6,184.1,49.5z"/>
|
|
|
|
<path fill="#FFFFFF" d="M183.6,50.7h-1.5v2.1h1.3c0.4,0,0.7-0.1,0.9-0.3c0.2-0.2,0.3-0.4,0.3-0.7c0-0.4-0.1-0.6-0.3-0.8
|
|
|
|
C184.3,50.8,184,50.7,183.6,50.7z"/>
|
|
|
|
<path fill="#FFFFFF" d="M188.5,47.4c-1.3-2.9-4.8-4.2-7.7-2.9l-1.5,0.7c-2.9,1.3-4.2,4.8-2.9,7.7l6.2,13.9l12.1-5.5L188.5,47.4z
|
|
|
|
M185.5,53.6c-0.5,0.4-1.1,0.5-2,0.5H180v-0.9l0.8-0.2v-5.2l-0.8-0.2v-0.9h0.8h2.5c0.9,0,1.5,0.2,2,0.5c0.5,0.3,0.7,0.8,0.7,1.5
|
|
|
|
c0,0.3-0.1,0.6-0.3,0.9c-0.2,0.3-0.4,0.5-0.8,0.6c0.4,0.1,0.8,0.3,1,0.6c0.2,0.3,0.3,0.7,0.3,1.1C186.2,52.7,186,53.2,185.5,53.6z"
|
|
|
|
/>
|
|
|
|
<path fill="#FFFFFF" d="M157.7,98.3h-0.6l-0.1-0.5c-0.1-0.1-0.2-0.1-0.3-0.2c-0.1,0-0.3-0.1-0.4-0.1c-0.3,0-0.6,0.1-0.8,0.4
|
|
|
|
c-0.2,0.2-0.3,0.6-0.3,1V99c0,0.4,0.1,0.7,0.3,1c0.2,0.2,0.4,0.4,0.8,0.4c0.2,0,0.3,0,0.4-0.1c0.1,0,0.2-0.1,0.3-0.2l0.1-0.5h0.6
|
|
|
|
v0.8c-0.2,0.2-0.4,0.3-0.6,0.4c-0.2,0.1-0.5,0.2-0.8,0.2c-0.5,0-1-0.2-1.3-0.5c-0.3-0.4-0.5-0.8-0.5-1.4v-0.1c0-0.6,0.2-1,0.5-1.4
|
|
|
|
c0.3-0.4,0.8-0.5,1.3-0.5c0.3,0,0.6,0.1,0.8,0.2c0.2,0.1,0.4,0.3,0.6,0.4V98.3z"/>
|
|
|
|
<path fill="#FFFFFF" d="M158.4,100.4l0.3,0l1.2-3.4h0.8l1.2,3.4l0.3,0v0.5h-1.3v-0.5l0.3,0l-0.2-0.5h-1.3l-0.2,0.5l0.3,0v0.5h-1.3
|
|
|
|
V100.4z M159.8,99.3h0.9l-0.4-1.4h0L159.8,99.3z"/>
|
|
|
|
<path fill="#FFFFFF" d="M162.7,100.9v-0.5l0.4-0.1v-2.8l-0.4-0.1V97h0.4h0.8h0.4v0.5l-0.4,0.1v2.7h1.1l0-0.5h0.6v1.1H162.7z"/>
|
|
|
|
<path fill="#FFFFFF" d="M166.2,100.9v-0.5l0.4-0.1v-2.8l-0.4-0.1V97h0.4h0.8h0.4v0.5l-0.4,0.1v2.7h1.1l0-0.5h0.6v1.1H166.2z"/>
|
|
|
|
<path fill="#FFFFFF" d="M169.8,97.5V97h1.6v0.5l-0.4,0.1v2.8l0.4,0.1v0.5h-1.6v-0.5l0.4-0.1v-2.8L169.8,97.5z"/>
|
|
|
|
<path fill="#FFFFFF" d="M175.6,99c0,0.6-0.2,1-0.5,1.4c-0.3,0.4-0.8,0.6-1.3,0.6c-0.5,0-1-0.2-1.3-0.6c-0.3-0.4-0.5-0.8-0.5-1.4
|
|
|
|
v-0.1c0-0.6,0.2-1,0.5-1.4c0.3-0.4,0.7-0.6,1.3-0.6c0.5,0,1,0.2,1.3,0.6C175.4,97.9,175.6,98.4,175.6,99L175.6,99z M174.8,98.9
|
|
|
|
c0-0.4-0.1-0.7-0.3-1c-0.2-0.3-0.4-0.4-0.7-0.4s-0.6,0.1-0.7,0.4c-0.2,0.2-0.2,0.6-0.2,1V99c0,0.4,0.1,0.7,0.2,1
|
|
|
|
c0.2,0.3,0.4,0.4,0.7,0.4c0.3,0,0.6-0.1,0.7-0.4C174.7,99.7,174.8,99.4,174.8,98.9L174.8,98.9z"/>
|
|
|
|
<path fill="#FFFFFF" d="M178.1,97c0.4,0,0.8,0.1,1.1,0.3c0.3,0.2,0.4,0.5,0.4,0.9c0,0.4-0.1,0.7-0.4,0.9c-0.3,0.2-0.6,0.3-1.1,0.3
|
|
|
|
h-0.7v0.9l0.4,0.1v0.5h-1.6v-0.5l0.4-0.1v-2.8l-0.4-0.1V97h0.4H178.1z M177.4,98.9h0.7c0.2,0,0.4-0.1,0.5-0.2
|
|
|
|
c0.1-0.1,0.2-0.3,0.2-0.5c0-0.2-0.1-0.3-0.2-0.5c-0.1-0.1-0.3-0.2-0.5-0.2h-0.7V98.9z"/>
|
|
|
|
<path fill="#FFFFFF" d="M182.6,99.2h-1.3v1.1h1.3l0-0.5h0.6v1.1h-3.1v-0.5l0.4-0.1v-2.8l-0.4-0.1V97h0.4h2.7v1.1h-0.6l0-0.5h-1.2v1
|
|
|
|
h1.3V99.2z"/>
|
|
|
|
<path fill="#FFFFFF" d="M155.8,105.7l0,0.7c0.1-0.2,0.3-0.4,0.5-0.6c0.2-0.1,0.5-0.2,0.8-0.2c0.3,0,0.5,0.1,0.7,0.2
|
|
|
|
s0.3,0.3,0.4,0.5c0.1-0.2,0.3-0.4,0.5-0.5c0.2-0.1,0.4-0.2,0.7-0.2c0.2,0,0.4,0,0.6,0.1c0.2,0.1,0.3,0.2,0.4,0.3
|
|
|
|
c0.1,0.1,0.2,0.3,0.3,0.6c0.1,0.2,0.1,0.5,0.1,0.8v4.6h-1.3v-4.6c0-0.3-0.1-0.4-0.2-0.5c-0.1-0.1-0.2-0.1-0.4-0.1
|
|
|
|
c-0.2,0-0.3,0-0.4,0.1c-0.1,0.1-0.2,0.2-0.2,0.3v4.8H157v-4.6c0-0.2,0-0.4-0.1-0.5c-0.1-0.1-0.2-0.1-0.4-0.1c-0.2,0-0.3,0-0.4,0.1
|
|
|
|
c-0.1,0.1-0.2,0.2-0.2,0.3v4.8h-1.3v-6.3H155.8z"/>
|
|
|
|
<path fill="#FFFFFF" d="M162.8,105.7h3.3v5.1h1.9v1.1h-5.2v-1.1h1.9v-4h-1.9V105.7z M164.7,104.1c0-0.2,0.1-0.4,0.2-0.5
|
|
|
|
c0.1-0.1,0.3-0.2,0.6-0.2c0.3,0,0.5,0.1,0.6,0.2c0.1,0.1,0.2,0.3,0.2,0.5c0,0.2-0.1,0.4-0.2,0.5c-0.1,0.1-0.3,0.2-0.6,0.2
|
|
|
|
c-0.3,0-0.4-0.1-0.6-0.2C164.7,104.5,164.7,104.3,164.7,104.1z"/>
|
|
|
|
<path fill="#FFFFFF" d="M171.4,105.7l0.1,0.9c0.2-0.3,0.5-0.6,0.8-0.7c0.3-0.2,0.7-0.3,1.1-0.3c0.3,0,0.6,0,0.9,0.1
|
|
|
|
c0.3,0.1,0.5,0.2,0.7,0.4c0.2,0.2,0.3,0.5,0.4,0.8c0.1,0.3,0.2,0.7,0.2,1.1v3.9h-1.4v-3.9c0-0.3,0-0.5-0.1-0.6
|
|
|
|
c-0.1-0.2-0.1-0.3-0.3-0.4c-0.1-0.1-0.2-0.2-0.4-0.2c-0.2,0-0.3-0.1-0.5-0.1c-0.3,0-0.6,0.1-0.8,0.2c-0.2,0.1-0.4,0.3-0.5,0.5v4.5
|
|
|
|
h-1.4v-6.3H171.4z"/>
|
|
|
|
<path fill="#FFFFFF" d="M178,105.7h3.3v5.1h1.9v1.1H178v-1.1h1.9v-4H178V105.7z M179.8,104.1c0-0.2,0.1-0.4,0.2-0.5
|
|
|
|
c0.1-0.1,0.3-0.2,0.6-0.2c0.3,0,0.5,0.1,0.6,0.2c0.1,0.1,0.2,0.3,0.2,0.5c0,0.2-0.1,0.4-0.2,0.5c-0.1,0.1-0.3,0.2-0.6,0.2
|
|
|
|
c-0.3,0-0.4-0.1-0.6-0.2C179.9,104.5,179.8,104.3,179.8,104.1z"/>
|
2016-10-13 08:30:19 +02:00
|
|
|
<path class="sim-theme-glow" fill="#FFFFFF" d="M165.9,82.8h-2.1c-0.3,0-0.6,0.3-0.6,0.6c0,0,0,1.8,0,1.6c0-1.3-1.1-2.4-2.4-2.4c-1.3,0-2.4,1.1-2.4,2.4
|
2016-10-13 07:44:05 +02:00
|
|
|
c0,0.2,0,1.6,0,2.6l-2.8,2.1c-1.9,1.5-0.9,4.5,1.5,4.5h0.6c0.2-1.8,0.8-3.9,1.9-5.3h0.1h2.5c1.1,1.3,1.6,3.5,1.9,5.3l0.8,0
|
|
|
|
c0.9,0,1.6-0.7,1.6-1.6v-6.1v-3.1C166.5,83.1,166.2,82.8,165.9,82.8z M159.9,84.1h2v1.3c0,0.4-0.3,0.8-0.8,0.8h-0.4
|
|
|
|
c-0.4,0-0.8-0.3-0.8-0.8V84.1z M159.4,88l0.9-1.7l0.5,1.7H159.4z M160.9,88l0.5-1.7l0.9,1.7H160.9z M163.6,86.5v-2.9h2.4v2.9H163.6
|
|
|
|
z"/>
|
2016-10-13 08:30:19 +02:00
|
|
|
<path class="sim-theme-glow" fill="#FFFFFF" d="M162.8,94.3c-1.3-0.9-2.3-3.3-3.2-5.3v5.3L162.8,94.3z"/>
|
2016-10-13 07:44:05 +02:00
|
|
|
<polygon fill="#FFFFFF" points="120.5,134.9 106,134.9 93.1,121.7 59.6,121.6 59.6,120.9 93.4,120.9 106.3,134.2 120.5,134.2 "/>
|
|
|
|
<polygon fill="#FFFFFF" points="110.5,146.8 103.5,146.8 102.1,145.3 102.6,144.7 103.8,146 110.5,146 "/>
|
|
|
|
<path fill="#FFFFFF" d="M112.7,146.9v1.6h-0.5v-3.9h1.3c0.2,0,0.3,0,0.5,0.1c0.2,0.1,0.3,0.1,0.4,0.2c0.1,0.1,0.2,0.2,0.3,0.4
|
|
|
|
c0.1,0.1,0.1,0.3,0.1,0.5s0,0.4-0.1,0.5c-0.1,0.1-0.2,0.3-0.3,0.4c-0.1,0.1-0.3,0.2-0.4,0.2c-0.2,0.1-0.3,0.1-0.5,0.1H112.7z
|
|
|
|
M112.7,146.5h0.8c0.1,0,0.2,0,0.3-0.1c0.1,0,0.2-0.1,0.3-0.1s0.1-0.1,0.2-0.2c0-0.1,0.1-0.2,0.1-0.3c0-0.1,0-0.2-0.1-0.3
|
|
|
|
c0-0.1-0.1-0.2-0.2-0.2s-0.2-0.1-0.3-0.2c-0.1,0-0.2-0.1-0.3-0.1h-0.8V146.5z"/>
|
|
|
|
<path fill="#FFFFFF" d="M116.7,146.9H116v1.6h-0.5v-3.9h1.2c0.2,0,0.4,0,0.5,0.1c0.2,0,0.3,0.1,0.4,0.2c0.1,0.1,0.2,0.2,0.3,0.4
|
|
|
|
c0.1,0.1,0.1,0.3,0.1,0.5c0,0.1,0,0.2-0.1,0.4c0,0.1-0.1,0.2-0.2,0.3s-0.1,0.2-0.2,0.2c-0.1,0.1-0.2,0.1-0.3,0.2l0.8,1.7l0,0h-0.5
|
|
|
|
L116.7,146.9z M116,146.5h0.7c0.1,0,0.2,0,0.3-0.1c0.1,0,0.2-0.1,0.3-0.1c0.1-0.1,0.1-0.1,0.2-0.2c0-0.1,0.1-0.2,0.1-0.3
|
|
|
|
c0-0.1,0-0.2-0.1-0.3c0-0.1-0.1-0.2-0.2-0.2s-0.2-0.1-0.3-0.1c-0.1,0-0.2,0-0.3-0.1H116V146.5z"/>
|
|
|
|
<path fill="#FFFFFF" d="M121.3,146.8c0,0.1,0,0.3,0,0.4c0,0.1-0.1,0.3-0.1,0.4c0,0.1-0.1,0.3-0.2,0.4c-0.1,0.1-0.2,0.2-0.3,0.3
|
|
|
|
s-0.2,0.2-0.3,0.2c-0.1,0-0.3,0.1-0.4,0.1s-0.3,0-0.4-0.1c-0.1,0-0.2-0.1-0.3-0.2s-0.2-0.2-0.3-0.3c-0.1-0.1-0.1-0.2-0.2-0.4
|
|
|
|
c0-0.1-0.1-0.3-0.1-0.4c0-0.1,0-0.3,0-0.4v-0.4c0-0.1,0-0.3,0-0.4c0-0.1,0.1-0.3,0.1-0.4c0-0.1,0.1-0.3,0.2-0.4
|
|
|
|
c0.1-0.1,0.2-0.2,0.3-0.3c0.1-0.1,0.2-0.2,0.3-0.2c0.1,0,0.3-0.1,0.4-0.1c0.2,0,0.3,0,0.4,0.1c0.1,0.1,0.2,0.1,0.3,0.2
|
|
|
|
s0.2,0.2,0.3,0.3c0.1,0.1,0.1,0.2,0.2,0.4c0,0.1,0.1,0.3,0.1,0.4c0,0.1,0,0.3,0,0.4V146.8z M120.8,146.3c0-0.1,0-0.2,0-0.3
|
|
|
|
c0-0.1,0-0.2-0.1-0.3c0-0.1-0.1-0.2-0.1-0.3c0-0.1-0.1-0.2-0.2-0.2c-0.1-0.1-0.1-0.1-0.2-0.2c-0.1,0-0.2-0.1-0.3-0.1
|
|
|
|
c-0.1,0-0.2,0-0.3,0.1c-0.1,0-0.2,0.1-0.2,0.2c-0.1,0.1-0.1,0.2-0.2,0.2c0,0.1-0.1,0.2-0.1,0.3c0,0.1,0,0.2-0.1,0.3
|
|
|
|
c0,0.1,0,0.2,0,0.3v0.5c0,0.1,0,0.2,0,0.3c0,0.1,0,0.2,0.1,0.3c0,0.1,0.1,0.2,0.1,0.3c0,0.1,0.1,0.2,0.2,0.2
|
|
|
|
c0.1,0.1,0.1,0.1,0.2,0.2c0.1,0,0.2,0.1,0.3,0.1s0.2,0,0.3-0.1c0.1,0,0.2-0.1,0.2-0.2c0.1-0.1,0.1-0.1,0.2-0.2
|
|
|
|
c0-0.1,0.1-0.2,0.1-0.3c0-0.1,0-0.2,0.1-0.3s0-0.2,0-0.3V146.3z"/>
|
|
|
|
<path fill="#FFFFFF" d="M122.5,148.1h2v0.4h-2.6l0-0.4l2-3.1H122v-0.4h2.5l0,0.4L122.5,148.1z"/>
|
|
|
|
<path fill="#FFFFFF" d="M127.6,146.7h-1.6v1.4h1.9v0.4h-2.4v-3.9h2.4v0.4h-1.9v1.3h1.6V146.7z"/>
|
|
|
|
<path fill="#FFFFFF" d="M130.8,147.5c0-0.1,0-0.2-0.1-0.3s-0.1-0.2-0.2-0.2c-0.1-0.1-0.2-0.1-0.3-0.1s-0.2-0.1-0.3-0.1
|
|
|
|
c-0.1,0-0.3-0.1-0.4-0.2c-0.1-0.1-0.3-0.1-0.4-0.2c-0.1-0.1-0.2-0.2-0.3-0.3c-0.1-0.1-0.1-0.3-0.1-0.4s0-0.3,0.1-0.5
|
|
|
|
c0.1-0.1,0.2-0.2,0.3-0.3c0.1-0.1,0.3-0.2,0.4-0.2c0.2,0,0.3-0.1,0.5-0.1c0.2,0,0.3,0,0.5,0.1c0.2,0.1,0.3,0.1,0.4,0.2
|
|
|
|
s0.2,0.2,0.3,0.4s0.1,0.3,0.1,0.5h-0.5c0-0.1,0-0.2-0.1-0.3c0-0.1-0.1-0.2-0.2-0.2c-0.1-0.1-0.2-0.1-0.2-0.2
|
|
|
|
c-0.1,0-0.2-0.1-0.3-0.1c-0.1,0-0.2,0-0.3,0c-0.1,0-0.2,0.1-0.2,0.1c-0.1,0.1-0.1,0.1-0.2,0.2c0,0.1-0.1,0.2-0.1,0.3
|
|
|
|
c0,0.1,0,0.2,0.1,0.3c0.1,0.1,0.1,0.1,0.2,0.2c0.1,0.1,0.2,0.1,0.3,0.1c0.1,0,0.2,0.1,0.3,0.1c0.1,0,0.2,0.1,0.3,0.1
|
|
|
|
c0.1,0,0.2,0.1,0.3,0.1c0.1,0.1,0.2,0.1,0.3,0.2s0.1,0.1,0.2,0.2c0.1,0.1,0.1,0.2,0.1,0.3c0,0.1,0,0.2,0,0.3c0,0.2,0,0.3-0.1,0.5
|
|
|
|
c-0.1,0.1-0.2,0.2-0.3,0.3s-0.3,0.2-0.4,0.2c-0.2,0-0.3,0.1-0.5,0.1c-0.2,0-0.3,0-0.5-0.1c-0.2-0.1-0.3-0.1-0.4-0.2
|
|
|
|
c-0.1-0.1-0.2-0.2-0.3-0.4c-0.1-0.1-0.1-0.3-0.1-0.5h0.5c0,0.1,0,0.2,0.1,0.3c0.1,0.1,0.1,0.2,0.2,0.2c0.1,0.1,0.2,0.1,0.3,0.1
|
|
|
|
c0.1,0,0.2,0,0.3,0c0.1,0,0.2,0,0.3,0c0.1,0,0.2-0.1,0.3-0.1c0.1-0.1,0.1-0.1,0.2-0.2C130.8,147.7,130.8,147.6,130.8,147.5z"/>
|
|
|
|
<path fill="#FFFFFF" d="M134.1,147.5c0-0.1,0-0.2-0.1-0.3c-0.1-0.1-0.1-0.2-0.2-0.2c-0.1-0.1-0.2-0.1-0.3-0.1s-0.2-0.1-0.3-0.1
|
|
|
|
c-0.1,0-0.3-0.1-0.4-0.2c-0.1-0.1-0.3-0.1-0.4-0.2c-0.1-0.1-0.2-0.2-0.3-0.3c-0.1-0.1-0.1-0.3-0.1-0.4s0-0.3,0.1-0.5
|
|
|
|
c0.1-0.1,0.2-0.2,0.3-0.3c0.1-0.1,0.3-0.2,0.4-0.2c0.2,0,0.3-0.1,0.5-0.1c0.2,0,0.3,0,0.5,0.1c0.2,0.1,0.3,0.1,0.4,0.2
|
|
|
|
s0.2,0.2,0.3,0.4c0.1,0.1,0.1,0.3,0.1,0.5h-0.5c0-0.1,0-0.2-0.1-0.3c0-0.1-0.1-0.2-0.2-0.2c-0.1-0.1-0.2-0.1-0.2-0.2
|
|
|
|
c-0.1,0-0.2-0.1-0.3-0.1c-0.1,0-0.2,0-0.3,0c-0.1,0-0.2,0.1-0.2,0.1c-0.1,0.1-0.1,0.1-0.2,0.2c0,0.1-0.1,0.2-0.1,0.3
|
|
|
|
c0,0.1,0,0.2,0.1,0.3c0.1,0.1,0.1,0.1,0.2,0.2c0.1,0.1,0.2,0.1,0.3,0.1c0.1,0,0.2,0.1,0.3,0.1c0.1,0,0.2,0.1,0.3,0.1
|
|
|
|
c0.1,0,0.2,0.1,0.3,0.1c0.1,0.1,0.2,0.1,0.3,0.2c0.1,0.1,0.1,0.1,0.2,0.2c0.1,0.1,0.1,0.2,0.1,0.3c0,0.1,0,0.2,0,0.3
|
|
|
|
c0,0.2,0,0.3-0.1,0.5c-0.1,0.1-0.2,0.2-0.3,0.3s-0.3,0.2-0.4,0.2c-0.2,0-0.3,0.1-0.5,0.1c-0.2,0-0.3,0-0.5-0.1
|
|
|
|
c-0.2-0.1-0.3-0.1-0.4-0.2c-0.1-0.1-0.2-0.2-0.3-0.4c-0.1-0.1-0.1-0.3-0.1-0.5h0.5c0,0.1,0,0.2,0.1,0.3c0.1,0.1,0.1,0.2,0.2,0.2
|
|
|
|
c0.1,0.1,0.2,0.1,0.3,0.1c0.1,0,0.2,0,0.3,0c0.1,0,0.2,0,0.3,0c0.1,0,0.2-0.1,0.3-0.1c0.1-0.1,0.1-0.1,0.2-0.2
|
|
|
|
C134.1,147.7,134.1,147.6,134.1,147.5z"/>
|
|
|
|
<path fill="#FFFFFF" d="M137.9,146.8c0,0.1,0,0.3,0,0.4c0,0.1-0.1,0.3-0.1,0.4c0,0.1-0.1,0.3-0.2,0.4c-0.1,0.1-0.2,0.2-0.3,0.3
|
|
|
|
s-0.2,0.2-0.3,0.2c-0.1,0-0.3,0.1-0.4,0.1s-0.3,0-0.4-0.1c-0.1,0-0.2-0.1-0.3-0.2s-0.2-0.2-0.3-0.3c-0.1-0.1-0.1-0.2-0.2-0.4
|
|
|
|
c0-0.1-0.1-0.3-0.1-0.4c0-0.1,0-0.3,0-0.4v-0.4c0-0.1,0-0.3,0-0.4c0-0.1,0.1-0.3,0.1-0.4c0-0.1,0.1-0.3,0.2-0.4
|
|
|
|
c0.1-0.1,0.2-0.2,0.3-0.3c0.1-0.1,0.2-0.2,0.3-0.2c0.1,0,0.3-0.1,0.4-0.1s0.3,0,0.4,0.1c0.1,0.1,0.2,0.1,0.3,0.2s0.2,0.2,0.3,0.3
|
|
|
|
c0.1,0.1,0.1,0.2,0.2,0.4c0,0.1,0.1,0.3,0.1,0.4s0,0.3,0,0.4V146.8z M137.4,146.3c0-0.1,0-0.2,0-0.3c0-0.1,0-0.2-0.1-0.3
|
|
|
|
c0-0.1-0.1-0.2-0.1-0.3c0-0.1-0.1-0.2-0.2-0.2c-0.1-0.1-0.1-0.1-0.2-0.2c-0.1,0-0.2-0.1-0.3-0.1c-0.1,0-0.2,0-0.3,0.1
|
|
|
|
s-0.2,0.1-0.2,0.2c-0.1,0.1-0.1,0.2-0.2,0.2c0,0.1-0.1,0.2-0.1,0.3c0,0.1,0,0.2-0.1,0.3c0,0.1,0,0.2,0,0.3v0.5c0,0.1,0,0.2,0,0.3
|
|
|
|
c0,0.1,0,0.2,0.1,0.3c0,0.1,0.1,0.2,0.1,0.3c0,0.1,0.1,0.2,0.2,0.2c0.1,0.1,0.1,0.1,0.2,0.2s0.2,0.1,0.3,0.1s0.2,0,0.3-0.1
|
|
|
|
c0.1,0,0.2-0.1,0.2-0.2c0.1-0.1,0.1-0.1,0.2-0.2c0-0.1,0.1-0.2,0.1-0.3c0-0.1,0-0.2,0.1-0.3c0-0.1,0-0.2,0-0.3V146.3z"/>
|
|
|
|
<path fill="#FFFFFF" d="M140,146.9h-0.8v1.6h-0.5v-3.9h1.2c0.2,0,0.4,0,0.5,0.1c0.2,0,0.3,0.1,0.4,0.2c0.1,0.1,0.2,0.2,0.3,0.4
|
|
|
|
c0.1,0.1,0.1,0.3,0.1,0.5c0,0.1,0,0.2-0.1,0.4c0,0.1-0.1,0.2-0.2,0.3s-0.1,0.2-0.2,0.2c-0.1,0.1-0.2,0.1-0.3,0.2l0.8,1.7l0,0h-0.5
|
|
|
|
L140,146.9z M139.2,146.5h0.7c0.1,0,0.2,0,0.3-0.1c0.1,0,0.2-0.1,0.3-0.1c0.1-0.1,0.1-0.1,0.2-0.2c0-0.1,0.1-0.2,0.1-0.3
|
|
|
|
c0-0.1,0-0.2-0.1-0.3c0-0.1-0.1-0.2-0.2-0.2c-0.1-0.1-0.2-0.1-0.3-0.1c-0.1,0-0.2,0-0.3-0.1h-0.7V146.5z"/>
|
|
|
|
<polygon fill="#FFFFFF" points="74.3,115.9 71.3,115.9 71.3,115.2 74,115.2 74.5,114.6 74.5,107.2 75.2,107.2 75.2,115 "/>
|
|
|
|
<path fill="#FFFFFF" d="M116.3,54l0,2.7c0,0.2,0,0.4-0.1,0.5s-0.2,0.3-0.3,0.4s-0.2,0.2-0.4,0.3c-0.2,0.1-0.3,0.1-0.5,0.1
|
|
|
|
c-0.2,0-0.4,0-0.5-0.1c-0.2-0.1-0.3-0.2-0.4-0.3c-0.1-0.1-0.2-0.3-0.3-0.4c-0.1-0.2-0.1-0.3-0.1-0.5l0-2.7h0.5l0,2.7
|
|
|
|
c0,0.1,0,0.2,0.1,0.3c0,0.1,0.1,0.2,0.2,0.3c0.1,0.1,0.1,0.1,0.2,0.2c0.1,0.1,0.2,0.1,0.3,0.1c0.1,0,0.2,0,0.3-0.1
|
|
|
|
c0.1,0,0.2-0.1,0.2-0.2c0.1-0.1,0.1-0.2,0.2-0.3s0.1-0.2,0.1-0.3l0-2.7H116.3z"/>
|
|
|
|
<path fill="#FFFFFF" d="M119.2,56.9c0-0.1,0-0.2-0.1-0.3c-0.1-0.1-0.1-0.2-0.2-0.2c-0.1-0.1-0.2-0.1-0.3-0.1s-0.2-0.1-0.3-0.1
|
|
|
|
c-0.1,0-0.3-0.1-0.4-0.2c-0.1-0.1-0.3-0.1-0.4-0.2c-0.1-0.1-0.2-0.2-0.3-0.3c-0.1-0.1-0.1-0.3-0.1-0.4c0-0.2,0-0.3,0.1-0.5
|
|
|
|
c0.1-0.1,0.2-0.2,0.3-0.3c0.1-0.1,0.3-0.2,0.4-0.2s0.3-0.1,0.5-0.1c0.2,0,0.3,0,0.5,0.1c0.2,0.1,0.3,0.1,0.4,0.2s0.2,0.2,0.3,0.4
|
|
|
|
c0.1,0.1,0.1,0.3,0.1,0.5h-0.5c0-0.1,0-0.2-0.1-0.3s-0.1-0.2-0.2-0.2c-0.1-0.1-0.2-0.1-0.2-0.2c-0.1,0-0.2-0.1-0.3-0.1
|
|
|
|
c-0.1,0-0.2,0-0.3,0c-0.1,0-0.2,0.1-0.2,0.1c-0.1,0.1-0.1,0.1-0.2,0.2c0,0.1-0.1,0.2-0.1,0.3c0,0.1,0,0.2,0.1,0.3
|
|
|
|
c0.1,0.1,0.1,0.1,0.2,0.2c0.1,0.1,0.2,0.1,0.3,0.1c0.1,0,0.2,0.1,0.3,0.1c0.1,0,0.2,0.1,0.3,0.1c0.1,0,0.2,0.1,0.3,0.1
|
|
|
|
c0.1,0.1,0.2,0.1,0.3,0.2c0.1,0.1,0.1,0.1,0.2,0.2c0.1,0.1,0.1,0.2,0.1,0.3c0,0.1,0,0.2,0,0.3c0,0.2,0,0.3-0.1,0.5
|
|
|
|
c-0.1,0.1-0.2,0.2-0.3,0.3s-0.3,0.2-0.4,0.2c-0.2,0-0.3,0.1-0.5,0.1c-0.2,0-0.3,0-0.5-0.1c-0.2-0.1-0.3-0.1-0.4-0.2
|
|
|
|
c-0.1-0.1-0.2-0.2-0.3-0.4c-0.1-0.1-0.1-0.3-0.1-0.5h0.5c0,0.1,0,0.2,0.1,0.3c0.1,0.1,0.1,0.2,0.2,0.2c0.1,0.1,0.2,0.1,0.3,0.1
|
|
|
|
s0.2,0,0.3,0c0.1,0,0.2,0,0.3,0c0.1,0,0.2-0.1,0.3-0.1c0.1-0.1,0.1-0.1,0.2-0.2C119.1,57.1,119.2,57.1,119.2,56.9z"/>
|
|
|
|
<path fill="#FFFFFF" d="M120.4,57.9V54h1.2c0.2,0,0.3,0,0.5,0.1c0.2,0,0.3,0.1,0.4,0.2c0.1,0.1,0.2,0.2,0.3,0.3
|
|
|
|
c0.1,0.1,0.1,0.3,0.1,0.5c0,0.1,0,0.2-0.1,0.3c0,0.1-0.1,0.2-0.1,0.2c-0.1,0.1-0.1,0.1-0.2,0.2s-0.2,0.1-0.2,0.1
|
|
|
|
c0.1,0,0.2,0.1,0.3,0.1c0.1,0.1,0.2,0.1,0.2,0.2c0.1,0.1,0.1,0.2,0.1,0.3c0,0.1,0.1,0.2,0.1,0.3c0,0.2,0,0.3-0.1,0.5
|
|
|
|
s-0.2,0.3-0.3,0.4c-0.1,0.1-0.3,0.2-0.4,0.2c-0.2,0.1-0.3,0.1-0.5,0.1H120.4z M120.9,55.7h0.7c0.1,0,0.2,0,0.3,0
|
|
|
|
c0.1,0,0.2-0.1,0.2-0.1c0.1-0.1,0.1-0.1,0.2-0.2s0.1-0.2,0.1-0.3c0-0.1,0-0.2-0.1-0.3c0-0.1-0.1-0.1-0.2-0.2
|
|
|
|
c-0.1,0-0.2-0.1-0.2-0.1c-0.1,0-0.2,0-0.3,0h-0.7V55.7z M120.9,56.1v1.4h0.8c0.1,0,0.2,0,0.3-0.1c0.1,0,0.2-0.1,0.2-0.1
|
|
|
|
c0.1-0.1,0.1-0.1,0.2-0.2c0-0.1,0.1-0.2,0.1-0.3c0-0.1,0-0.2-0.1-0.3c0-0.1-0.1-0.2-0.2-0.2c-0.1-0.1-0.1-0.1-0.2-0.1
|
|
|
|
s-0.2-0.1-0.3-0.1H120.9z"/>
|
|
|
|
<polygon fill="#FFFFFF" points="126.6,56 124.6,56 124.6,55.2 126.2,55.2 126.7,54.7 126.7,39 127.5,39 127.5,55.1 "/>
|
|
|
|
<polygon fill="#FFFFFF" points="153.8,33.2 151,33.2 151,34 153.5,34 154,34.5 154,45.7 153.5,46.2 152.9,46.2 152.9,47 153.8,47
|
|
|
|
154.8,46 154.8,34.2 "/>
|
|
|
|
<polygon fill="#FFFFFF" points="169.8,125.6 159,125.6 159,126.4 169.5,126.4 180.4,137.3 186.4,137.3 190.8,141.8 190.8,147.2
|
|
|
|
191.6,147.2 191.6,141.4 186.7,136.5 180.7,136.5 "/>
|
|
|
|
<polygon fill="#FFFFFF" points="184.5,120.1 172.4,120.1 172.4,119.3 184.8,119.3 "/>
|
|
|
|
<polygon fill="#FFFFFF" points="183.3,17.6 180.8,17.6 180.8,15.1 180.5,15.1 180.5,17.6 178,17.6 178,17.8 180.5,17.8 180.5,20.6
|
|
|
|
180.8,20.6 180.8,17.8 183.3,17.8 "/>
|
|
|
|
<path fill="#FFFFFF" d="M138.1,47.1h-0.8v1.6h-0.5v-3.9h1.2c0.2,0,0.4,0,0.5,0.1c0.2,0,0.3,0.1,0.4,0.2c0.1,0.1,0.2,0.2,0.3,0.4
|
|
|
|
c0.1,0.1,0.1,0.3,0.1,0.5c0,0.1,0,0.2-0.1,0.4c0,0.1-0.1,0.2-0.2,0.3c-0.1,0.1-0.1,0.2-0.2,0.2c-0.1,0.1-0.2,0.1-0.3,0.2l0.8,1.7
|
|
|
|
l0,0h-0.5L138.1,47.1z M137.3,46.6h0.7c0.1,0,0.2,0,0.3-0.1c0.1,0,0.2-0.1,0.3-0.1c0.1-0.1,0.1-0.1,0.2-0.2c0-0.1,0.1-0.2,0.1-0.3
|
|
|
|
c0-0.1,0-0.2-0.1-0.3c0-0.1-0.1-0.2-0.2-0.2c-0.1-0.1-0.2-0.1-0.3-0.1c-0.1,0-0.2,0-0.3-0.1h-0.7V46.6z"/>
|
|
|
|
<path fill="#FFFFFF" d="M142.3,46.8h-1.6v1.4h1.9v0.4h-2.4v-3.9h2.4v0.4h-1.9v1.3h1.6V46.8z"/>
|
|
|
|
<path fill="#FFFFFF" d="M145.5,47.7c0-0.1,0-0.2-0.1-0.3c-0.1-0.1-0.1-0.2-0.2-0.2c-0.1-0.1-0.2-0.1-0.3-0.1
|
|
|
|
c-0.1,0-0.2-0.1-0.3-0.1c-0.1,0-0.3-0.1-0.4-0.2c-0.1-0.1-0.3-0.1-0.4-0.2c-0.1-0.1-0.2-0.2-0.3-0.3c-0.1-0.1-0.1-0.3-0.1-0.4
|
|
|
|
s0-0.3,0.1-0.5c0.1-0.1,0.2-0.2,0.3-0.3c0.1-0.1,0.3-0.2,0.4-0.2c0.2,0,0.3-0.1,0.5-0.1c0.2,0,0.3,0,0.5,0.1
|
|
|
|
c0.2,0.1,0.3,0.1,0.4,0.2s0.2,0.2,0.3,0.4c0.1,0.1,0.1,0.3,0.1,0.5h-0.5c0-0.1,0-0.2-0.1-0.3c0-0.1-0.1-0.2-0.2-0.2
|
|
|
|
c-0.1-0.1-0.2-0.1-0.2-0.2c-0.1,0-0.2-0.1-0.3-0.1c-0.1,0-0.2,0-0.3,0c-0.1,0-0.2,0.1-0.2,0.1c-0.1,0.1-0.1,0.1-0.2,0.2
|
|
|
|
c0,0.1-0.1,0.2-0.1,0.3c0,0.1,0,0.2,0.1,0.3c0.1,0.1,0.1,0.1,0.2,0.2c0.1,0.1,0.2,0.1,0.3,0.1c0.1,0,0.2,0.1,0.3,0.1
|
|
|
|
c0.1,0,0.2,0.1,0.3,0.1c0.1,0,0.2,0.1,0.3,0.1c0.1,0.1,0.2,0.1,0.3,0.2s0.1,0.1,0.2,0.2c0.1,0.1,0.1,0.2,0.1,0.3c0,0.1,0,0.2,0,0.3
|
|
|
|
c0,0.2,0,0.3-0.1,0.5c-0.1,0.1-0.2,0.2-0.3,0.3c-0.1,0.1-0.3,0.2-0.4,0.2c-0.2,0-0.3,0.1-0.5,0.1c-0.2,0-0.3,0-0.5-0.1
|
|
|
|
c-0.2-0.1-0.3-0.1-0.4-0.2c-0.1-0.1-0.2-0.2-0.3-0.4c-0.1-0.1-0.1-0.3-0.1-0.5h0.5c0,0.1,0,0.2,0.1,0.3c0.1,0.1,0.1,0.2,0.2,0.2
|
|
|
|
c0.1,0.1,0.2,0.1,0.3,0.1c0.1,0,0.2,0,0.3,0c0.1,0,0.2,0,0.3,0c0.1,0,0.2-0.1,0.3-0.1c0.1-0.1,0.1-0.1,0.2-0.2
|
|
|
|
C145.5,47.9,145.5,47.8,145.5,47.7z"/>
|
|
|
|
<path fill="#FFFFFF" d="M148.9,46.8h-1.6v1.4h1.9v0.4h-2.4v-3.9h2.4v0.4h-1.9v1.3h1.6V46.8z"/>
|
|
|
|
<path fill="#FFFFFF" d="M152.8,45.2h-1.2v3.5H151v-3.5h-1.2v-0.4h2.9V45.2z"/>
|
|
|
|
<polygon fill="#FFFFFF" points="70.8,77.8 70,80.3 71.6,80.3 70.8,77.8 "/>
|
|
|
|
<path fill="#FFFFFF" d="M76.5,77.7l-8.6-14.3l-11.4,6.8L65,84.5c1.6,2.8,5.2,3.7,8,2l1.4-0.8C77.2,84,78.1,80.5,76.5,77.7z
|
|
|
|
M74.3,83.4h-2.5v-0.9l0.5-0.1l-0.3-1h-2.4l-0.3,1l0.5,0.1v0.9h-2.5v-0.9l0.5-0.1l2.2-6.3h1.5l2.2,6.3l0.5,0.1V83.4z"/>
|
|
|
|
<path fill="#FFFFFF" d="M46.6,100h-1.3l-0.3,1h-0.5l1.3-3.9h0.4l1.2,3.9h-0.5L46.6,100z M45.4,99.5h1L46,97.9L45.4,99.5z"/>
|
|
|
|
<path fill="#FFFFFF" d="M51.7,99.5c0,0.2,0,0.5-0.1,0.7c-0.1,0.2-0.1,0.4-0.2,0.5c-0.1,0.1-0.2,0.2-0.4,0.3s-0.3,0.1-0.5,0.1
|
|
|
|
c-0.2,0-0.4,0-0.5-0.1c-0.2-0.1-0.3-0.2-0.4-0.3c-0.1-0.1-0.2-0.3-0.2-0.5c-0.1-0.2-0.1-0.4-0.1-0.7v-0.9c0-0.2,0-0.5,0.1-0.7
|
|
|
|
c0.1-0.2,0.1-0.4,0.2-0.5c0.1-0.1,0.2-0.2,0.4-0.3c0.2-0.1,0.3-0.1,0.5-0.1c0.2,0,0.4,0,0.5,0.1c0.2,0.1,0.3,0.2,0.4,0.3
|
|
|
|
c0.1,0.1,0.2,0.3,0.2,0.5c0.1,0.2,0.1,0.4,0.1,0.7V99.5z M49.7,99.4l1.5-1.2c0-0.3-0.1-0.5-0.2-0.6c-0.1-0.1-0.3-0.2-0.5-0.2
|
|
|
|
c-0.3,0-0.5,0.1-0.6,0.3c-0.1,0.2-0.2,0.4-0.2,0.8V99.4z M51.2,98.7l-1.5,1.2c0,0.3,0.1,0.4,0.2,0.6c0.1,0.1,0.3,0.2,0.5,0.2
|
|
|
|
c0.3,0,0.5-0.1,0.6-0.3c0.1-0.2,0.2-0.4,0.2-0.8V98.7z"/>
|
|
|
|
<path fill="#FFFFFF" d="M203.5,100h-1.3l-0.3,1h-0.5l1.3-3.9h0.4l1.2,3.9h-0.5L203.5,100z M202.3,99.5h1l-0.5-1.7L202.3,99.5z"/>
|
|
|
|
<path fill="#FFFFFF" d="M207.7,101h-0.5v-3.3l-1,0.4v-0.5l1.5-0.6h0V101z"/>
|
|
|
|
|
|
|
|
<rect x="59.4" y="51.6" transform="matrix(0.8923 0.4514 -0.4514 0.8923 31.0258 -21.4341)" fill="#F9EBA7" width="2.1" height="5.4"/>
|
|
|
|
|
|
|
|
<rect x="69.8" y="56.9" transform="matrix(0.8923 0.4514 -0.4514 0.8923 34.5226 -25.5642)" fill="#F9EBA7" width="2.1" height="5.4"/>
|
|
|
|
|
|
|
|
<rect x="50.1" y="69.9" transform="matrix(0.8923 0.4514 -0.4514 0.8923 38.3019 -15.2737)" fill="#F9EBA7" width="2.1" height="5.4"/>
|
|
|
|
|
|
|
|
<rect x="60.5" y="75.2" transform="matrix(0.8923 0.4514 -0.4514 0.8923 41.7987 -19.4037)" fill="#F9EBA7" width="2.1" height="5.4"/>
|
|
|
|
<path id="BTN_A_BOX" fill="#BDD1CF" d="M63.6,76l-12.2-6.1c-0.5-0.3-0.7-0.9-0.5-1.5l6.2-12.3c0.3-0.5,0.9-0.7,1.5-0.5l12.2,6.1
|
|
|
|
c0.5,0.3,0.7,0.9,0.5,1.5l-6.2,12.3C64.8,76.1,64.1,76.3,63.6,76z"/>
|
|
|
|
<circle id="BTN_A" fill="#186A8C" cx="61.1" cy="65.9" r="4.9"/>
|
|
|
|
<circle fill="#1D1D1B" cx="58.6" cy="58" r="1.6"/>
|
|
|
|
<circle fill="#1D1D1B" cx="69" cy="63.3" r="1.6"/>
|
|
|
|
<circle fill="#1D1D1B" cx="53.3" cy="68.3" r="1.6"/>
|
|
|
|
<circle fill="#1D1D1B" cx="63.7" cy="73.6" r="1.6"/>
|
|
|
|
|
|
|
|
<rect x="179.7" y="56.7" transform="matrix(0.8998 -0.4362 0.4362 0.8998 -7.8105 84.8091)" fill="#F9EBA7" width="2.1" height="5.4"/>
|
|
|
|
|
|
|
|
<rect x="190.2" y="51.6" transform="matrix(0.8998 -0.4362 0.4362 0.8998 -4.5406 88.8767)" fill="#F9EBA7" width="2.1" height="5.4"/>
|
|
|
|
|
|
|
|
<rect x="188.7" y="75.2" transform="matrix(0.8998 -0.4362 0.4362 0.8998 -14.9765 90.5698)" fill="#F9EBA7" width="2.1" height="5.4"/>
|
|
|
|
|
|
|
|
<rect x="199.2" y="70.1" transform="matrix(0.8998 -0.4362 0.4362 0.8998 -11.7066 94.6374)" fill="#F9EBA7" width="2.1" height="5.4"/>
|
|
|
|
<path id="BTN_B_BOX" fill="#BDD1CF" d="M200,70L187.7,76c-0.5,0.3-1.2,0-1.4-0.5l-6-12.4c-0.3-0.5,0-1.2,0.5-1.4l12.3-5.9c0.5-0.3,1.2,0,1.4,0.5
|
|
|
|
l6,12.4C200.7,69.1,200.5,69.8,200,70z"/>
|
|
|
|
<circle id="BTN_B" fill="#D82E50" cx="190.4" cy="65.9" r="4.9"/>
|
|
|
|
<circle fill="#1D1D1B" cx="182.6" cy="63.1" r="1.6"/>
|
|
|
|
<circle fill="#1D1D1B" cx="193.1" cy="58" r="1.6"/>
|
|
|
|
<circle fill="#1D1D1B" cx="187.6" cy="73.6" r="1.6"/>
|
|
|
|
<circle fill="#1D1D1B" cx="198.1" cy="68.5" r="1.6"/>
|
|
|
|
<path fill="#BDD1CF" d="M151.7,39h-13.6c-0.6,0-1.1-0.5-1.1-1.1V24.1c0-0.6,0.5-1.1,1.1-1.1h13.6c0.6,0,1.1,0.5,1.1,1.1v13.7
|
|
|
|
C152.8,38.5,152.3,39,151.7,39z"/>
|
|
|
|
<circle fill="#53787C" cx="144.9" cy="31" r="4.9"/>
|
|
|
|
<rect x="156.9" y="33.6" fill="#1D1D1B" width="10.7" height="13.1"/>
|
|
|
|
</g>
|
|
|
|
<g id="EDGE_P0">
|
|
|
|
<path fill="#EFDA48" d="M17.1,97.1c-7.7,0-13.9,6.2-13.9,13.9S9.4,125,17.1,125S31,118.8,31,111.1S24.8,97.1,17.1,97.1z
|
|
|
|
M17.1,117.7c-3.7,0-6.6-3-6.6-6.6s3-6.6,6.6-6.6s6.6,3,6.6,6.6S20.7,117.7,17.1,117.7z"/>
|
|
|
|
</g>
|
|
|
|
<g id="EDGE_GND">
|
|
|
|
<path fill="#EFDA48" d="M71.8,3.4c-7.7,0-13.9,6.2-13.9,13.9s6.2,13.9,13.9,13.9s13.9-6.2,13.9-13.9S79.5,3.4,71.8,3.4z M71.8,24
|
|
|
|
c-3.7,0-6.6-3-6.6-6.6s3-6.6,6.6-6.6c3.7,0,6.6,3,6.6,6.6S75.5,24,71.8,24z"/>
|
|
|
|
</g>
|
|
|
|
<g id="EDGE_VCC">
|
|
|
|
<path fill="#EFDA48" d="M179.6,3.4c-7.7,0-13.9,6.2-13.9,13.9s6.2,13.9,13.9,13.9s13.9-6.2,13.9-13.9S187.3,3.4,179.6,3.4z
|
|
|
|
M179.6,24c-3.7,0-6.6-3-6.6-6.6s3-6.6,6.6-6.6c3.7,0,6.6,3,6.6,6.6S183.3,24,179.6,24z"/>
|
|
|
|
</g>
|
|
|
|
<g id="EDGE_P3">
|
|
|
|
<path fill="#EFDA48" d="M233.3,97.1c-7.7,0-13.9,6.2-13.9,13.9s6.2,13.9,13.9,13.9s13.9-6.2,13.9-13.9S241,97.1,233.3,97.1z
|
|
|
|
M233.3,117.7c-3.7,0-6.6-3-6.6-6.6c0-3.7,3-6.6,6.6-6.6c3.7,0,6.6,3,6.6,6.6C239.9,114.7,236.9,117.7,233.3,117.7z"/>
|
|
|
|
</g>
|
|
|
|
<g id="EDGE_P2">
|
|
|
|
<path fill="#EFDA48" d="M179.9,190.1c-7.7,0-13.9,6.2-13.9,13.9s6.2,13.9,13.9,13.9s13.9-6.2,13.9-13.9S187.6,190.1,179.9,190.1z
|
|
|
|
M179.9,210.7c-3.7,0-6.6-3-6.6-6.6s3-6.6,6.6-6.6c3.7,0,6.6,3,6.6,6.6S183.5,210.7,179.9,210.7z"/>
|
|
|
|
</g>
|
|
|
|
<g id="EDGE_P1">
|
|
|
|
<path fill="#EFDA48" d="M71.8,190.7c-7.7,0-13.9,6.2-13.9,13.9c0,7.7,6.2,13.9,13.9,13.9s13.9-6.2,13.9-13.9
|
|
|
|
C85.7,196.9,79.5,190.7,71.8,190.7z M71.8,211.2c-3.7,0-6.6-3-6.6-6.6c0-3.7,3-6.6,6.6-6.6s6.6,3,6.6,6.6
|
|
|
|
C78.4,208.3,75.5,211.2,71.8,211.2z"/>
|
|
|
|
</g>
|
|
|
|
<g id="motor">
|
|
|
|
<path id="C_GND1" fill="#EFDA48" d="M83.6,183.9c-1.2,0-2.1,1-2.1,2.1s1,2.1,2.1,2.1s2.1-1,2.1-2.1S84.8,183.9,83.6,183.9z M83.6,187
|
|
|
|
c-0.6,0-1-0.5-1-1s0.5-1,1-1s1,0.5,1,1S84.2,187,83.6,187z"/>
|
|
|
|
<circle fill="#1D1D1B" cx="83.6" cy="186" r="1"/>
|
|
|
|
<path id="C_P0" fill="#EFDA48" d="M90.8,183.9c-1.2,0-2.1,1-2.1,2.1s1,2.1,2.1,2.1s2.1-1,2.1-2.1S92,183.9,90.8,183.9z M90.8,187
|
|
|
|
c-0.6,0-1-0.5-1-1s0.5-1,1-1s1,0.5,1,1S91.4,187,90.8,187z"/>
|
|
|
|
<circle fill="#1D1D1B" cx="90.8" cy="186" r="1"/>
|
|
|
|
<path id="C_P2" fill="#EFDA48" d="M98,183.9c-1.2,0-2.1,1-2.1,2.1s1,2.1,2.1,2.1s2.1-1,2.1-2.1S99.2,183.9,98,183.9z M98,187
|
|
|
|
c-0.6,0-1-0.5-1-1s0.5-1,1-1s1,0.5,1,1S98.6,187,98,187z"/>
|
|
|
|
<circle fill="#1D1D1B" cx="98" cy="186" r="1"/>
|
|
|
|
<path id="C_P4" fill="#EFDA48" d="M105.2,183.9c-1.2,0-2.1,1-2.1,2.1s1,2.1,2.1,2.1s2.1-1,2.1-2.1S106.4,183.9,105.2,183.9z M105.2,187
|
|
|
|
c-0.6,0-1-0.5-1-1s0.5-1,1-1s1,0.5,1,1S105.8,187,105.2,187z"/>
|
|
|
|
<circle fill="#1D1D1B" cx="105.2" cy="186" r="1"/>
|
|
|
|
<path id="C_P6" fill="#EFDA48" d="M112.4,183.9c-1.2,0-2.1,1-2.1,2.1s1,2.1,2.1,2.1s2.1-1,2.1-2.1S113.6,183.9,112.4,183.9z M112.4,187
|
|
|
|
c-0.6,0-1-0.5-1-1s0.5-1,1-1c0.6,0,1,0.5,1,1S113,187,112.4,187z"/>
|
|
|
|
<circle fill="#1D1D1B" cx="112.4" cy="186" r="1"/>
|
|
|
|
<path id="C_P8" fill="#EFDA48" d="M119.6,183.9c-1.2,0-2.1,1-2.1,2.1s1,2.1,2.1,2.1c1.2,0,2.1-1,2.1-2.1S120.8,183.9,119.6,183.9z M119.6,187
|
|
|
|
c-0.6,0-1-0.5-1-1s0.5-1,1-1c0.6,0,1,0.5,1,1S120.2,187,119.6,187z"/>
|
|
|
|
<circle fill="#1D1D1B" cx="119.6" cy="186" r="1"/>
|
|
|
|
<path id="C_GND2" fill="#EFDA48" d="M126.8,183.9c-1.2,0-2.1,1-2.1,2.1s1,2.1,2.1,2.1c1.2,0,2.1-1,2.1-2.1S128,183.9,126.8,183.9z M126.8,187
|
|
|
|
c-0.6,0-1-0.5-1-1s0.5-1,1-1c0.6,0,1,0.5,1,1S127.4,187,126.8,187z"/>
|
|
|
|
<circle fill="#1D1D1B" cx="126.8" cy="186" r="1"/>
|
|
|
|
<path id="C_P10" fill="#EFDA48" d="M134,183.9c-1.2,0-2.1,1-2.1,2.1s1,2.1,2.1,2.1s2.1-1,2.1-2.1S135.2,183.9,134,183.9z M134,187
|
|
|
|
c-0.6,0-1-0.5-1-1s0.5-1,1-1c0.6,0,1,0.5,1,1S134.5,187,134,187z"/>
|
|
|
|
<circle fill="#1D1D1B" cx="134" cy="186" r="1"/>
|
|
|
|
<path id="C_P12" fill="#EFDA48" d="M141.2,183.9c-1.2,0-2.1,1-2.1,2.1s1,2.1,2.1,2.1s2.1-1,2.1-2.1S142.4,183.9,141.2,183.9z M141.2,187
|
|
|
|
c-0.6,0-1-0.5-1-1s0.5-1,1-1c0.6,0,1,0.5,1,1S141.7,187,141.2,187z"/>
|
|
|
|
<circle fill="#1D1D1B" cx="141.2" cy="186" r="1"/>
|
|
|
|
<path id="C_P14" fill="#EFDA48" d="M148.4,183.9c-1.2,0-2.1,1-2.1,2.1s1,2.1,2.1,2.1s2.1-1,2.1-2.1S149.6,183.9,148.4,183.9z M148.4,187
|
|
|
|
c-0.6,0-1-0.5-1-1s0.5-1,1-1c0.6,0,1,0.5,1,1S148.9,187,148.4,187z"/>
|
|
|
|
<circle fill="#1D1D1B" cx="148.4" cy="186" r="1"/>
|
|
|
|
<path id="C_P16" fill="#EFDA48" d="M155.6,183.9c-1.2,0-2.1,1-2.1,2.1s1,2.1,2.1,2.1s2.1-1,2.1-2.1S156.8,183.9,155.6,183.9z M155.6,187
|
|
|
|
c-0.6,0-1-0.5-1-1s0.5-1,1-1c0.6,0,1,0.5,1,1S156.1,187,155.6,187z"/>
|
|
|
|
<circle fill="#1D1D1B" cx="155.6" cy="186" r="1"/>
|
|
|
|
<path id="C_P20" fill="#EFDA48" d="M162.8,183.9c-1.2,0-2.1,1-2.1,2.1s1,2.1,2.1,2.1s2.1-1,2.1-2.1S163.9,183.9,162.8,183.9z M162.8,187
|
|
|
|
c-0.6,0-1-0.5-1-1s0.5-1,1-1c0.6,0,1,0.5,1,1S163.3,187,162.8,187z"/>
|
|
|
|
<circle fill="#1D1D1B" cx="162.8" cy="186" r="1"/>
|
|
|
|
<path id="C_VCC1" fill="#EFDA48" d="M170,183.9c-1.2,0-2.1,1-2.1,2.1s1,2.1,2.1,2.1s2.1-1,2.1-2.1S171.1,183.9,170,183.9z M170,187
|
|
|
|
c-0.6,0-1-0.5-1-1s0.5-1,1-1s1,0.5,1,1S170.5,187,170,187z"/>
|
|
|
|
<circle fill="#1D1D1B" cx="170" cy="186" r="1"/>
|
|
|
|
<path id="C_VCC2" fill="#EFDA48" d="M83.6,176.6c-1.2,0-2.1,1-2.1,2.1c0,1.2,1,2.1,2.1,2.1s2.1-1,2.1-2.1C85.8,177.6,84.8,176.6,83.6,176.6z
|
|
|
|
M83.6,179.8c-0.6,0-1-0.5-1-1s0.5-1,1-1s1,0.5,1,1S84.2,179.8,83.6,179.8z"/>
|
|
|
|
<circle fill="#1D1D1B" cx="83.6" cy="178.8" r="1"/>
|
|
|
|
<path id="C_P1" fill="#EFDA48" d="M90.8,176.6c-1.2,0-2.1,1-2.1,2.1c0,1.2,1,2.1,2.1,2.1s2.1-1,2.1-2.1C93,177.6,92,176.6,90.8,176.6z
|
|
|
|
M90.8,179.8c-0.6,0-1-0.5-1-1s0.5-1,1-1s1,0.5,1,1S91.4,179.8,90.8,179.8z"/>
|
|
|
|
<circle fill="#1D1D1B" cx="90.8" cy="178.8" r="1"/>
|
|
|
|
<path id="C_P22" fill="#EFDA48" d="M98,176.6c-1.2,0-2.1,1-2.1,2.1c0,1.2,1,2.1,2.1,2.1s2.1-1,2.1-2.1C100.2,177.6,99.2,176.6,98,176.6z
|
|
|
|
M98,179.8c-0.6,0-1-0.5-1-1s0.5-1,1-1s1,0.5,1,1S98.6,179.8,98,179.8z"/>
|
|
|
|
<circle fill="#1D1D1B" cx="98" cy="178.8" r="1"/>
|
|
|
|
<path id="C_P5" fill="#EFDA48" d="M105.2,176.6c-1.2,0-2.1,1-2.1,2.1c0,1.2,1,2.1,2.1,2.1s2.1-1,2.1-2.1C107.3,177.6,106.4,176.6,105.2,176.6
|
|
|
|
z M105.2,179.8c-0.6,0-1-0.5-1-1s0.5-1,1-1s1,0.5,1,1S105.8,179.8,105.2,179.8z"/>
|
|
|
|
<circle fill="#1D1D1B" cx="105.2" cy="178.8" r="1"/>
|
|
|
|
<path id="C_P7" fill="#EFDA48" d="M112.4,176.6c-1.2,0-2.1,1-2.1,2.1c0,1.2,1,2.1,2.1,2.1s2.1-1,2.1-2.1C114.5,177.6,113.6,176.6,112.4,176.6
|
|
|
|
z M112.4,179.8c-0.6,0-1-0.5-1-1s0.5-1,1-1c0.6,0,1,0.5,1,1S113,179.8,112.4,179.8z"/>
|
|
|
|
<circle fill="#1D1D1B" cx="112.4" cy="178.8" r="1"/>
|
|
|
|
<path id="C_P9" fill="#EFDA48" d="M119.6,176.6c-1.2,0-2.1,1-2.1,2.1c0,1.2,1,2.1,2.1,2.1c1.2,0,2.1-1,2.1-2.1
|
|
|
|
C121.7,177.6,120.8,176.6,119.6,176.6z M119.6,179.8c-0.6,0-1-0.5-1-1s0.5-1,1-1c0.6,0,1,0.5,1,1S120.2,179.8,119.6,179.8z"/>
|
|
|
|
<circle fill="#1D1D1B" cx="119.6" cy="178.8" r="1"/>
|
|
|
|
<path id="C_GND3" fill="#EFDA48" d="M126.8,176.6c-1.2,0-2.1,1-2.1,2.1c0,1.2,1,2.1,2.1,2.1c1.2,0,2.1-1,2.1-2.1
|
|
|
|
C128.9,177.6,128,176.6,126.8,176.6z M126.8,179.8c-0.6,0-1-0.5-1-1s0.5-1,1-1c0.6,0,1,0.5,1,1S127.4,179.8,126.8,179.8z"/>
|
|
|
|
<circle fill="#1D1D1B" cx="126.8" cy="178.8" r="1"/>
|
|
|
|
<path id="C_P11" fill="#EFDA48" d="M134,176.6c-1.2,0-2.1,1-2.1,2.1c0,1.2,1,2.1,2.1,2.1s2.1-1,2.1-2.1C136.1,177.6,135.2,176.6,134,176.6z
|
|
|
|
M134,179.8c-0.6,0-1-0.5-1-1s0.5-1,1-1c0.6,0,1,0.5,1,1S134.5,179.8,134,179.8z"/>
|
|
|
|
<circle fill="#1D1D1B" cx="134" cy="178.8" r="1"/>
|
|
|
|
<path id="C_P13" fill="#EFDA48" d="M141.2,176.6c-1.2,0-2.1,1-2.1,2.1c0,1.2,1,2.1,2.1,2.1s2.1-1,2.1-2.1C143.3,177.6,142.4,176.6,141.2,176.6
|
|
|
|
z M141.2,179.8c-0.6,0-1-0.5-1-1s0.5-1,1-1c0.6,0,1,0.5,1,1S141.7,179.8,141.2,179.8z"/>
|
|
|
|
<circle fill="#1D1D1B" cx="141.2" cy="178.8" r="1"/>
|
|
|
|
<path id="C_P15" fill="#EFDA48" d="M148.4,176.6c-1.2,0-2.1,1-2.1,2.1c0,1.2,1,2.1,2.1,2.1s2.1-1,2.1-2.1C150.5,177.6,149.6,176.6,148.4,176.6
|
|
|
|
z M148.4,179.8c-0.6,0-1-0.5-1-1s0.5-1,1-1c0.6,0,1,0.5,1,1S148.9,179.8,148.4,179.8z"/>
|
|
|
|
<circle fill="#1D1D1B" cx="148.4" cy="178.8" r="1"/>
|
|
|
|
<path id="C_P21" fill="#EFDA48" d="M155.6,176.6c-1.2,0-2.1,1-2.1,2.1c0,1.2,1,2.1,2.1,2.1s2.1-1,2.1-2.1C157.7,177.6,156.8,176.6,155.6,176.6
|
|
|
|
z M155.6,179.8c-0.6,0-1-0.5-1-1s0.5-1,1-1c0.6,0,1,0.5,1,1S156.1,179.8,155.6,179.8z"/>
|
|
|
|
<circle fill="#1D1D1B" cx="155.6" cy="178.8" r="1"/>
|
|
|
|
<path id="C_P19" fill="#EFDA48" d="M162.8,176.6c-1.2,0-2.1,1-2.1,2.1c0,1.2,1,2.1,2.1,2.1s2.1-1,2.1-2.1C164.9,177.6,163.9,176.6,162.8,176.6
|
|
|
|
z M162.8,179.8c-0.6,0-1-0.5-1-1s0.5-1,1-1c0.6,0,1,0.5,1,1S163.3,179.8,162.8,179.8z"/>
|
|
|
|
<circle fill="#1D1D1B" cx="162.8" cy="178.8" r="1"/>
|
|
|
|
<path id="C_GND4" fill="#EFDA48" d="M170,176.6c-1.2,0-2.1,1-2.1,2.1c0,1.2,1,2.1,2.1,2.1s2.1-1,2.1-2.1C172.1,177.6,171.1,176.6,170,176.6z
|
|
|
|
M170,179.8c-0.6,0-1-0.5-1-1s0.5-1,1-1s1,0.5,1,1S170.5,179.8,170,179.8z"/>
|
|
|
|
<circle fill="#1D1D1B" cx="170" cy="178.8" r="1"/>
|
|
|
|
<path id="M_GND1" fill="#EFDA48" d="M112.4,162.8c-1.2,0-2.1,1-2.1,2.1c0,1.2,1,2.1,2.1,2.1s2.1-1,2.1-2.1C114.5,163.8,113.6,162.8,112.4,162.8
|
|
|
|
z M112.4,166c-0.6,0-1-0.5-1-1c0-0.6,0.5-1,1-1c0.6,0,1,0.5,1,1C113.4,165.5,113,166,112.4,166z"/>
|
|
|
|
<circle fill="#1D1D1B" cx="112.4" cy="165" r="1"/>
|
|
|
|
<path id="M_OUT1" fill="#EFDA48" d="M119.6,162.8c-1.2,0-2.1,1-2.1,2.1c0,1.2,1,2.1,2.1,2.1c1.2,0,2.1-1,2.1-2.1
|
|
|
|
C121.7,163.8,120.8,162.8,119.6,162.8z M119.6,166c-0.6,0-1-0.5-1-1c0-0.6,0.5-1,1-1c0.6,0,1,0.5,1,1
|
|
|
|
C120.6,165.5,120.2,166,119.6,166z"/>
|
|
|
|
<circle fill="#1D1D1B" cx="119.6" cy="165" r="1"/>
|
|
|
|
<path id="M_OUT2" fill="#EFDA48" d="M126.8,162.8c-1.2,0-2.1,1-2.1,2.1c0,1.2,1,2.1,2.1,2.1c1.2,0,2.1-1,2.1-2.1
|
|
|
|
C128.9,163.8,128,162.8,126.8,162.8z M126.8,166c-0.6,0-1-0.5-1-1c0-0.6,0.5-1,1-1c0.6,0,1,0.5,1,1
|
|
|
|
C127.8,165.5,127.4,166,126.8,166z"/>
|
|
|
|
<circle fill="#1D1D1B" cx="126.8" cy="165" r="1"/>
|
|
|
|
<path id="M_GND2" fill="#EFDA48" d="M134,162.8c-1.2,0-2.1,1-2.1,2.1c0,1.2,1,2.1,2.1,2.1s2.1-1,2.1-2.1C136.1,163.8,135.2,162.8,134,162.8z
|
|
|
|
M134,166c-0.6,0-1-0.5-1-1c0-0.6,0.5-1,1-1c0.6,0,1,0.5,1,1C135,165.5,134.5,166,134,166z"/>
|
|
|
|
<circle fill="#1D1D1B" cx="134" cy="165" r="1"/>
|
|
|
|
<path id="M_VM" fill="#EFDA48" d="M141.2,162.8c-1.2,0-2.1,1-2.1,2.1c0,1.2,1,2.1,2.1,2.1s2.1-1,2.1-2.1C143.3,163.8,142.4,162.8,141.2,162.8
|
|
|
|
z M141.2,166c-0.6,0-1-0.5-1-1c0-0.6,0.5-1,1-1c0.6,0,1,0.5,1,1C142.2,165.5,141.7,166,141.2,166z"/>
|
|
|
|
<circle fill="#1D1D1B" cx="141.2" cy="165" r="1"/>
|
|
|
|
</g>
|
|
|
|
<g id="rgbled">
|
|
|
|
<g>
|
|
|
|
<rect x="120.6" y="130.6" fill="#FFFFFF" width="10.8" height="10.5"/>
|
|
|
|
<circle id="rgbledcircle" fill="#BDD1CF" cx="126" cy="135.9" r="4.1"/>
|
|
|
|
</g>
|
|
|
|
</g>
|
|
|
|
<g id="a0">
|
|
|
|
|
|
|
|
<rect x="36.6" y="78" transform="matrix(-0.7113 -0.7029 0.7029 -0.7113 5.9446 184.6141)" fill="#FFFFFF" width="8.6" height="26.1"/>
|
|
|
|
<circle id="G_A0_GND" fill="#BDD1CF" cx="47.9" cy="84.2" r="1.2"/>
|
|
|
|
<circle id="G_A0_VCC" fill="#BDD1CF" cx="43.1" cy="88.8" r="1.2"/>
|
|
|
|
<circle id="G_A0_SDA" fill="#BDD1CF" cx="38.8" cy="93.1" r="1.2"/>
|
|
|
|
<circle id="G_A0_SCL" fill="#BDD1CF" cx="33.9" cy="98" r="1.2"/>
|
|
|
|
</g>
|
|
|
|
<g id="a1">
|
|
|
|
|
|
|
|
<rect x="206.6" y="77.1" transform="matrix(0.7113 -0.7029 0.7029 0.7113 -2.4835 174.2752)" fill="#FFFFFF" width="8.6" height="26.1"/>
|
|
|
|
<circle id="G_A1_RX" fill="#BDD1CF" cx="203.9" cy="83.2" r="1.2"/>
|
|
|
|
<circle id="G_A1_TX" fill="#BDD1CF" cx="208.7" cy="87.9" r="1.2"/>
|
|
|
|
<circle id="G_A1_VCC" fill="#BDD1CF" cx="213" cy="92.2" r="1.2"/>
|
|
|
|
<circle id="G_A1_GND" fill="#BDD1CF" cx="217.9" cy="97.1" r="1.2"/>
|
|
|
|
</g>
|
|
|
|
</svg>
|
|
|
|
`
|
|
|
|
|
2016-08-30 20:55:00 +02:00
|
|
|
const pinNames = [
|
2016-10-13 11:16:10 +02:00
|
|
|
"EXT_PWR", "SPKR", "BTN_A", "BTN_B",
|
|
|
|
"EDGE_P0", "EDGE_P1", "EDGE_P2", "EDGE_P3", "EDGE_GND", "EDGE_VCC",
|
|
|
|
"C_GND1", "C_GND2", "C_GND3", "C_GND4", "C_VCC1", "C_VCC2",
|
|
|
|
"C_P0", "C_P2", "C_P4", "C_P6", "C_P8", "C_P10", "C_P12", "C_P14", "C_P16", "C_P20",
|
|
|
|
"C_P1", "C_P22", "C_P5", "C_P7", "C_P9", "C_P11", "C_P13", "C_P15", "C_P21", "C_P19",
|
|
|
|
"M_GND1", "M_GND2", "M_OUT1", "M_OUT2", "M_VM",
|
|
|
|
"G_A0_GND", "G_A0_VCC", "G_A0_SDA", "G_A0_SCL",
|
|
|
|
"G_A1_RX", "G_A1_TX", "G_A1_VCC", "G_A1_GND"
|
|
|
|
];
|
2016-08-30 20:55:00 +02:00
|
|
|
const pinTitles = [
|
2016-10-13 11:16:10 +02:00
|
|
|
"External Power", "Speaker", "Button A", "Button B",
|
|
|
|
"0, ANALOG IN", "1, ANALOG IN", "2, ANALOG IN", "3, ANALOG IN", "GND", "+3v3",
|
|
|
|
"GND", "GND", "GND", "GND", "+3v3", "+3v3",
|
|
|
|
"C0, ANALOG IN", "C2, ANALOG IN", "C4", "C6", "C8", "C10", "C12", "C14", "C16", "C18",
|
|
|
|
"C1, ANALOG IN", "C3, ANALOG IN", "C5", "C7", "C9", "C11", "C13", "C15", "C17", "C19",
|
|
|
|
"GND", "GND", "MOTOR1", "MOTOR2", "MOTOR VM",
|
|
|
|
"GND", "+3v3", "C18, I2C - SDA", "C19, I2C - SCL",
|
|
|
|
"C16, Serial - RX", "C17, Serial - TX", "+3v3", "GND"
|
2016-08-30 20:55:00 +02:00
|
|
|
];
|
2016-10-13 07:44:05 +02:00
|
|
|
const MB_WIDTH = 251.8;
|
2016-10-17 05:25:55 +02:00
|
|
|
const MB_HEIGHT = 222.2;
|
2016-03-11 01:24:11 +01:00
|
|
|
export interface IBoardTheme {
|
|
|
|
accent?: string;
|
|
|
|
display?: string;
|
|
|
|
pin?: string;
|
|
|
|
pinTouched?: string;
|
|
|
|
pinActive?: string;
|
|
|
|
ledOn?: string;
|
|
|
|
ledOff?: string;
|
|
|
|
buttonOuter?: string;
|
2016-10-13 07:44:05 +02:00
|
|
|
buttonUps: string[];
|
2016-03-11 01:24:11 +01:00
|
|
|
buttonDown?: string;
|
2016-03-18 21:55:07 +01:00
|
|
|
virtualButtonOuter?: string;
|
|
|
|
virtualButtonUp?: string;
|
|
|
|
virtualButtonDown?: string;
|
2016-05-05 08:31:55 +02:00
|
|
|
lightLevelOn?: string;
|
2016-03-11 22:17:49 +01:00
|
|
|
lightLevelOff?: string;
|
2016-03-11 01:24:11 +01:00
|
|
|
}
|
|
|
|
|
2016-09-27 00:05:06 +02:00
|
|
|
export var themes: IBoardTheme[] = ["#3ADCFE"].map(accent => {
|
2016-03-11 01:24:11 +01:00
|
|
|
return {
|
|
|
|
accent: accent,
|
|
|
|
pin: "#D4AF37",
|
|
|
|
pinTouched: "#FFA500",
|
2016-05-05 08:31:55 +02:00
|
|
|
pinActive: "#FF5500",
|
2016-09-27 00:10:37 +02:00
|
|
|
ledOn: "#ff7777",
|
2016-10-13 08:40:33 +02:00
|
|
|
ledOff: "#fff",
|
2016-03-11 01:24:11 +01:00
|
|
|
buttonOuter: "#979797",
|
2016-10-13 07:44:05 +02:00
|
|
|
buttonUps: ["#186A8C", "#D82E50"],
|
2016-03-11 01:24:11 +01:00
|
|
|
buttonDown: "#FFA500",
|
2016-09-27 20:00:21 +02:00
|
|
|
virtualButtonDown: "#FFA500",
|
2016-03-18 21:55:07 +01:00
|
|
|
virtualButtonOuter: "#333",
|
|
|
|
virtualButtonUp: "#fff",
|
2016-03-11 22:17:49 +01:00
|
|
|
lightLevelOn: "yellow",
|
|
|
|
lightLevelOff: "#555"
|
2016-05-05 08:31:55 +02:00
|
|
|
}
|
|
|
|
});
|
2016-03-11 01:24:11 +01:00
|
|
|
|
2016-05-05 08:31:55 +02:00
|
|
|
export function randomTheme(): IBoardTheme {
|
2016-03-11 01:24:11 +01:00
|
|
|
return themes[Math.floor(Math.random() * themes.length)];
|
|
|
|
}
|
|
|
|
|
|
|
|
export interface IBoardProps {
|
2016-08-31 20:14:16 +02:00
|
|
|
runtime?: pxsim.Runtime;
|
2016-03-11 01:24:11 +01:00
|
|
|
theme?: IBoardTheme;
|
2016-05-05 08:31:55 +02:00
|
|
|
disableTilt?: boolean;
|
2016-08-31 20:14:16 +02:00
|
|
|
wireframe?: boolean;
|
2016-03-11 01:24:11 +01:00
|
|
|
}
|
2016-05-05 08:31:55 +02:00
|
|
|
|
2016-08-30 23:13:44 +02:00
|
|
|
export class MicrobitBoardSvg implements BoardView {
|
2016-05-05 08:31:55 +02:00
|
|
|
public element: SVGSVGElement;
|
2016-03-24 21:56:51 +01:00
|
|
|
private style: SVGStyleElement;
|
2016-05-05 08:31:55 +02:00
|
|
|
private defs: SVGDefsElement;
|
2016-08-30 20:55:00 +02:00
|
|
|
private g: SVGGElement;
|
2016-05-05 08:31:55 +02:00
|
|
|
|
2016-03-11 01:24:11 +01:00
|
|
|
private buttons: SVGElement[];
|
|
|
|
private buttonsOuter: SVGElement[];
|
|
|
|
private pins: SVGElement[];
|
|
|
|
private pinGradients: SVGLinearGradientElement[];
|
|
|
|
private pinTexts: SVGTextElement[];
|
|
|
|
private ledsOuter: SVGElement[];
|
|
|
|
private leds: SVGElement[];
|
|
|
|
private systemLed: SVGCircleElement;
|
|
|
|
private antenna: SVGPolylineElement;
|
2016-03-11 22:17:49 +01:00
|
|
|
private lightLevelButton: SVGCircleElement;
|
2016-05-05 08:31:55 +02:00
|
|
|
private lightLevelGradient: SVGLinearGradientElement;
|
2016-03-12 00:10:36 +01:00
|
|
|
private lightLevelText: SVGTextElement;
|
2016-05-05 08:31:55 +02:00
|
|
|
private thermometerGradient: SVGLinearGradientElement;
|
2016-03-14 22:03:31 +01:00
|
|
|
private thermometer: SVGRectElement;
|
|
|
|
private thermometerText: SVGTextElement;
|
2016-09-27 20:00:21 +02:00
|
|
|
private shakeButton: SVGElement;
|
2016-08-30 21:42:30 +02:00
|
|
|
public board: pxsim.DalBoard;
|
2016-09-27 22:35:48 +02:00
|
|
|
private rgbLed: SVGElement;
|
2016-10-17 05:25:55 +02:00
|
|
|
private pinNmToCoord: Map<Coord> = {
|
|
|
|
"EXT_PWR": [
|
|
|
|
92.30997467041016,
|
|
|
|
-42.92474937438965
|
|
|
|
],
|
|
|
|
"SPKR": [
|
|
|
|
106.44635391235352,
|
|
|
|
-16.370698928833008
|
|
|
|
],
|
|
|
|
"BTN_A": [
|
|
|
|
93.8138427734375,
|
|
|
|
56.631452560424805
|
|
|
|
],
|
|
|
|
"BTN_B": [
|
|
|
|
204.92835235595703,
|
|
|
|
56.631452560424805
|
|
|
|
],
|
2016-10-25 08:17:16 +02:00
|
|
|
// rings
|
2016-10-17 05:25:55 +02:00
|
|
|
"EDGE_P0": [
|
|
|
|
56.002254486083984,
|
|
|
|
95.43130111694336
|
|
|
|
],
|
|
|
|
"EDGE_P1": [
|
|
|
|
103.00893783569336,
|
|
|
|
175.82388305664062
|
|
|
|
],
|
|
|
|
"EDGE_P2": [
|
|
|
|
195.90512084960938,
|
|
|
|
175.3082733154297
|
|
|
|
],
|
|
|
|
"EDGE_P3": [
|
|
|
|
241.79466247558594,
|
|
|
|
95.3883285522461
|
|
|
|
],
|
|
|
|
"EDGE_GND": [
|
|
|
|
103.00893783569336,
|
|
|
|
14.86682915687561
|
|
|
|
],
|
|
|
|
"EDGE_VCC": [
|
|
|
|
195.64733123779297,
|
|
|
|
14.86682915687561
|
|
|
|
],
|
|
|
|
"C_GND1": [
|
|
|
|
113.1493148803711,
|
|
|
|
159.83989715576172
|
|
|
|
],
|
|
|
|
"C_GND2": [
|
|
|
|
150.27342987060547,
|
|
|
|
159.83989715576172
|
|
|
|
],
|
|
|
|
"C_GND3": [
|
|
|
|
150.27342987060547,
|
|
|
|
153.5666275024414
|
|
|
|
],
|
|
|
|
"C_GND4": [
|
|
|
|
187.39752960205078,
|
|
|
|
153.5666275024414
|
|
|
|
],
|
|
|
|
"C_VCC1": [
|
|
|
|
187.39752960205078,
|
|
|
|
159.83989715576172
|
|
|
|
],
|
|
|
|
"C_VCC2": [
|
|
|
|
113.1922836303711,
|
|
|
|
153.5666275024414
|
|
|
|
],
|
|
|
|
"C_P0": [
|
|
|
|
119.33667373657227,
|
|
|
|
159.83989715576172
|
2016-10-25 08:17:16 +02:00
|
|
|
],
|
2016-10-17 05:25:55 +02:00
|
|
|
"C_P2": [
|
|
|
|
125.52401733398438,
|
|
|
|
159.83989715576172
|
|
|
|
],
|
|
|
|
"C_P4": [
|
|
|
|
131.71136474609375,
|
|
|
|
159.83989715576172
|
|
|
|
],
|
|
|
|
"C_P6": [
|
|
|
|
137.89871978759766,
|
|
|
|
159.83989715576172
|
|
|
|
],
|
|
|
|
"C_P8": [
|
|
|
|
144.08607482910156,
|
|
|
|
159.83989715576172
|
|
|
|
],
|
|
|
|
"C_P10": [
|
|
|
|
156.46077728271484,
|
|
|
|
159.83989715576172
|
|
|
|
],
|
|
|
|
"C_P12": [
|
|
|
|
162.64812469482422,
|
|
|
|
159.83989715576172
|
|
|
|
],
|
|
|
|
"C_P14": [
|
|
|
|
168.83545684814453,
|
|
|
|
159.83989715576172
|
|
|
|
],
|
|
|
|
"C_P16": [
|
|
|
|
175.02281951904297,
|
|
|
|
159.83989715576172
|
|
|
|
],
|
|
|
|
"C_P20": [
|
|
|
|
181.2101821899414,
|
|
|
|
159.83989715576172
|
|
|
|
],
|
|
|
|
"C_P1": [
|
|
|
|
119.379638671875,
|
|
|
|
153.5666275024414
|
|
|
|
],
|
|
|
|
"C_P22": [
|
|
|
|
125.56698226928711,
|
|
|
|
153.5666275024414
|
|
|
|
],
|
|
|
|
"C_P5": [
|
|
|
|
131.71136474609375,
|
|
|
|
153.5666275024414
|
|
|
|
],
|
|
|
|
"C_P7": [
|
|
|
|
137.89871978759766,
|
|
|
|
153.5666275024414
|
|
|
|
],
|
|
|
|
"C_P9": [
|
|
|
|
144.08607482910156,
|
|
|
|
153.5666275024414
|
|
|
|
],
|
|
|
|
"C_P11": [
|
|
|
|
156.46077728271484,
|
|
|
|
153.5666275024414
|
|
|
|
],
|
|
|
|
"C_P13": [
|
|
|
|
162.64812469482422,
|
|
|
|
153.5666275024414
|
|
|
|
],
|
|
|
|
"C_P15": [
|
|
|
|
168.83545684814453,
|
|
|
|
153.5666275024414
|
|
|
|
],
|
|
|
|
"C_P21": [
|
|
|
|
175.02281951904297,
|
|
|
|
153.5666275024414
|
|
|
|
],
|
|
|
|
"C_P19": [
|
|
|
|
181.2101821899414,
|
|
|
|
153.5666275024414
|
|
|
|
],
|
|
|
|
"M_GND1": [
|
|
|
|
137.89871978759766,
|
|
|
|
141.70752716064453
|
|
|
|
],
|
|
|
|
"M_GND2": [
|
|
|
|
156.46077728271484,
|
|
|
|
141.70752716064453
|
|
|
|
],
|
|
|
|
"M_OUT1": [
|
|
|
|
144.08607482910156,
|
|
|
|
141.70752716064453
|
|
|
|
],
|
|
|
|
"M_OUT2": [
|
|
|
|
150.27342987060547,
|
|
|
|
141.70752716064453
|
|
|
|
],
|
|
|
|
"M_VM": [
|
|
|
|
162.64812469482422,
|
|
|
|
141.70752716064453
|
|
|
|
],
|
|
|
|
"G_A0_GND": [
|
|
|
|
82.47036743164062,
|
|
|
|
72.35763549804688
|
|
|
|
],
|
|
|
|
"G_A0_VCC": [
|
|
|
|
78.34546279907227,
|
|
|
|
76.3106689453125
|
|
|
|
],
|
|
|
|
"G_A0_SDA": [
|
|
|
|
74.65023803710938,
|
|
|
|
80.00588989257812
|
|
|
|
],
|
|
|
|
"G_A0_SCL": [
|
|
|
|
70.43940734863281,
|
|
|
|
84.21672821044922
|
|
|
|
],
|
|
|
|
"G_A1_RX": [
|
|
|
|
216.52963256835938,
|
|
|
|
71.4982795715332
|
|
|
|
],
|
|
|
|
"G_A1_TX": [
|
|
|
|
220.65453338623047,
|
|
|
|
75.53724670410156
|
|
|
|
],
|
|
|
|
"G_A1_VCC": [
|
|
|
|
224.34976959228516,
|
|
|
|
79.23247528076172
|
|
|
|
],
|
|
|
|
"G_A1_GND": [
|
|
|
|
228.56060028076172,
|
|
|
|
83.44330978393555
|
|
|
|
]
|
|
|
|
};
|
2016-05-05 08:31:55 +02:00
|
|
|
|
2016-03-11 01:24:11 +01:00
|
|
|
constructor(public props: IBoardProps) {
|
2016-08-30 23:13:44 +02:00
|
|
|
this.buildDom();
|
2016-08-31 20:14:16 +02:00
|
|
|
if (props && props.wireframe)
|
|
|
|
svg.addClass(this.element, "sim-wireframe");
|
2016-08-30 20:55:00 +02:00
|
|
|
|
2016-08-31 20:14:16 +02:00
|
|
|
if (props && props.theme)
|
|
|
|
this.updateTheme();
|
|
|
|
|
|
|
|
if (props && props.runtime) {
|
|
|
|
this.board = this.props.runtime.board as pxsim.DalBoard;
|
|
|
|
this.board.updateSubscribers.push(() => this.updateState());
|
|
|
|
this.updateState();
|
|
|
|
this.attachEvents();
|
|
|
|
}
|
2016-03-11 01:24:11 +01:00
|
|
|
}
|
2016-05-05 08:31:55 +02:00
|
|
|
|
2016-08-30 23:13:44 +02:00
|
|
|
public getView(): SVGAndSize<SVGSVGElement> {
|
|
|
|
return {
|
|
|
|
el: this.element,
|
|
|
|
y: 0,
|
|
|
|
x: 0,
|
|
|
|
w: MB_WIDTH,
|
|
|
|
h: MB_HEIGHT
|
|
|
|
};
|
2016-08-30 20:55:00 +02:00
|
|
|
}
|
2016-08-30 23:13:44 +02:00
|
|
|
|
|
|
|
public getCoord(pinNm: string): Coord {
|
|
|
|
return this.pinNmToCoord[pinNm];
|
2016-08-30 20:55:00 +02:00
|
|
|
}
|
2016-08-30 23:13:44 +02:00
|
|
|
|
2016-08-31 20:14:16 +02:00
|
|
|
public highlightPin(pinNm: string): void {
|
|
|
|
//TODO: for instructions
|
|
|
|
}
|
|
|
|
|
2016-08-30 23:13:44 +02:00
|
|
|
public getPinDist(): number {
|
2016-10-14 08:53:24 +02:00
|
|
|
return 10;
|
2016-08-30 20:55:00 +02:00
|
|
|
}
|
2016-08-30 23:13:44 +02:00
|
|
|
|
2016-10-17 05:25:55 +02:00
|
|
|
private recordPinCoords() {
|
|
|
|
pinNames.forEach((nm, i) => {
|
2016-10-14 15:46:56 +02:00
|
|
|
const p = this.pins[i];
|
|
|
|
const r = p.getBoundingClientRect();
|
|
|
|
this.pinNmToCoord[nm] = [r.left + r.width / 2, r.top + r.height / 2];
|
2016-08-30 20:55:00 +02:00
|
|
|
});
|
2016-10-17 05:25:55 +02:00
|
|
|
console.log(JSON.stringify(this.pinNmToCoord, null, 2))
|
2016-08-30 20:55:00 +02:00
|
|
|
}
|
|
|
|
|
2016-03-11 01:24:11 +01:00
|
|
|
private updateTheme() {
|
|
|
|
let theme = this.props.theme;
|
2016-05-05 08:31:55 +02:00
|
|
|
|
2016-05-05 17:57:44 +02:00
|
|
|
svg.fills(this.leds, theme.ledOn);
|
|
|
|
svg.fills(this.ledsOuter, theme.ledOff);
|
|
|
|
svg.fills(this.buttonsOuter.slice(0, 2), theme.buttonOuter);
|
2016-10-13 07:44:05 +02:00
|
|
|
svg.fill(this.buttons[0], theme.buttonUps[0]);
|
|
|
|
svg.fill(this.buttons[1], theme.buttonUps[1]);
|
2016-05-05 17:57:44 +02:00
|
|
|
svg.fill(this.buttonsOuter[2], theme.virtualButtonOuter);
|
|
|
|
svg.fill(this.buttons[2], theme.virtualButtonUp);
|
2016-05-05 08:31:55 +02:00
|
|
|
|
2016-05-05 17:57:44 +02:00
|
|
|
this.pinGradients.forEach(lg => svg.setGradientColors(lg, theme.pin, theme.pinActive));
|
|
|
|
svg.setGradientColors(this.lightLevelGradient, theme.lightLevelOn, theme.lightLevelOff);
|
2016-05-05 08:31:55 +02:00
|
|
|
|
2016-05-05 17:57:44 +02:00
|
|
|
svg.setGradientColors(this.thermometerGradient, theme.ledOff, theme.ledOn);
|
2016-03-11 01:24:11 +01:00
|
|
|
}
|
2016-05-05 08:31:55 +02:00
|
|
|
|
2016-03-11 01:24:11 +01:00
|
|
|
public updateState() {
|
2016-08-30 21:42:30 +02:00
|
|
|
let state = this.board;
|
2016-03-11 01:24:11 +01:00
|
|
|
if (!state) return;
|
|
|
|
let theme = this.props.theme;
|
2016-05-05 08:31:55 +02:00
|
|
|
|
2016-08-30 20:55:00 +02:00
|
|
|
let bpState = state.buttonPairState;
|
|
|
|
let buttons = [bpState.aBtn, bpState.bBtn, bpState.abBtn];
|
|
|
|
buttons.forEach((btn, index) => {
|
2016-10-13 07:44:05 +02:00
|
|
|
svg.fill(this.buttons[index], btn.pressed ? (btn.virtual ? theme.virtualButtonDown : theme.buttonDown) : (btn.virtual ? theme.virtualButtonUp : theme.buttonUps[index]));
|
2016-03-11 01:24:11 +01:00
|
|
|
});
|
2016-05-05 08:31:55 +02:00
|
|
|
|
2016-08-30 20:55:00 +02:00
|
|
|
let bw = state.ledMatrixState.displayMode == pxsim.DisplayMode.bw
|
|
|
|
let img = state.ledMatrixState.image;
|
2016-05-05 08:31:55 +02:00
|
|
|
this.leds.forEach((led, i) => {
|
|
|
|
let sel = (<SVGStylable><any>led)
|
2016-03-11 01:24:11 +01:00
|
|
|
sel.style.opacity = ((bw ? img.data[i] > 0 ? 255 : 0 : img.data[i]) / 255.0) + "";
|
|
|
|
})
|
|
|
|
this.updatePins();
|
|
|
|
this.updateTilt();
|
2016-05-05 08:31:55 +02:00
|
|
|
this.updateHeading();
|
2016-03-14 22:03:31 +01:00
|
|
|
this.updateLightLevel();
|
2016-05-05 08:31:55 +02:00
|
|
|
this.updateTemperature();
|
|
|
|
this.updateButtonAB();
|
|
|
|
this.updateGestures();
|
2016-09-27 22:35:48 +02:00
|
|
|
this.updateRgbLed();
|
2016-05-05 08:31:55 +02:00
|
|
|
|
2016-05-05 17:57:44 +02:00
|
|
|
if (!runtime || runtime.dead) svg.addClass(this.element, "grayscale");
|
|
|
|
else svg.removeClass(this.element, "grayscale");
|
2016-03-18 22:54:27 +01:00
|
|
|
}
|
2016-05-05 08:31:55 +02:00
|
|
|
|
2016-09-27 22:35:48 +02:00
|
|
|
private updateRgbLed() {
|
|
|
|
let state = this.board;
|
|
|
|
if (state.rgbLedState) {
|
|
|
|
if (!this.rgbLed)
|
2016-10-13 07:44:05 +02:00
|
|
|
this.rgbLed = this.element.getElementById("rgbledcircle") as SVGCircleElement;
|
2016-10-11 20:41:51 +02:00
|
|
|
const c = state.rgbLedState;
|
|
|
|
const b = c & 0xFF;
|
|
|
|
const g = (c >> 8) & 0xFF;
|
|
|
|
const r = (c >> 16) & 0xFF;
|
|
|
|
const w = (c >> 24) & 0xFF;
|
2016-10-17 05:25:55 +02:00
|
|
|
const ch = `rgba(${r}, ${g}, ${b}, 1)`;
|
2016-10-11 20:41:51 +02:00
|
|
|
svg.fill(this.rgbLed, ch);
|
|
|
|
} else if (this.rgbLed) {
|
|
|
|
svg.fill(this.rgbLed, 'white');
|
2016-09-27 22:35:48 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2016-03-18 22:54:27 +01:00
|
|
|
private updateGestures() {
|
2016-08-30 21:42:30 +02:00
|
|
|
let state = this.board;
|
2016-08-30 20:55:00 +02:00
|
|
|
if (state.accelerometerState.useShake && !this.shakeButton) {
|
2016-10-13 07:44:05 +02:00
|
|
|
let shake = this.mkBtn(26, MB_HEIGHT - 67);
|
2016-09-27 20:00:21 +02:00
|
|
|
this.shakeButton = shake.inner;
|
2016-05-05 17:57:44 +02:00
|
|
|
svg.fill(this.shakeButton, this.props.theme.virtualButtonUp)
|
2016-09-27 20:00:21 +02:00
|
|
|
svg.buttonEvents(shake.outer,
|
2016-09-27 22:35:48 +02:00
|
|
|
ev => { },
|
2016-09-27 20:00:21 +02:00
|
|
|
(ev) => {
|
|
|
|
svg.fill(this.shakeButton, this.props.theme.virtualButtonDown)
|
|
|
|
},
|
|
|
|
(ev) => {
|
|
|
|
svg.fill(this.shakeButton, this.props.theme.virtualButtonUp);
|
|
|
|
this.board.bus.queue(DAL.MICROBIT_ID_GESTURE, 11); // GESTURE_SHAKE
|
|
|
|
}
|
|
|
|
)
|
2016-10-13 07:44:05 +02:00
|
|
|
let shakeText = svg.child(shake.outer, "text", { x: 20, y: MB_HEIGHT - 40, class: "sim-text inverted" }) as SVGTextElement;
|
2016-09-27 20:00:21 +02:00
|
|
|
shakeText.textContent = "SHAKE"
|
2016-05-05 08:31:55 +02:00
|
|
|
}
|
2016-03-18 21:55:07 +01:00
|
|
|
}
|
2016-05-05 08:31:55 +02:00
|
|
|
|
2016-03-18 21:55:07 +01:00
|
|
|
private updateButtonAB() {
|
2016-08-30 21:42:30 +02:00
|
|
|
let state = this.board;
|
2016-09-27 20:00:21 +02:00
|
|
|
if (state.buttonPairState.usesButtonAB && (<any>this.buttons[2]).style.visibility != "visible") {
|
2016-05-05 08:31:55 +02:00
|
|
|
(<any>this.buttonsOuter[2]).style.visibility = "visible";
|
|
|
|
(<any>this.buttons[2]).style.visibility = "visible";
|
2016-03-18 21:55:07 +01:00
|
|
|
this.updateTheme();
|
2016-05-05 08:31:55 +02:00
|
|
|
}
|
2016-03-11 01:24:11 +01:00
|
|
|
}
|
2016-05-05 08:31:55 +02:00
|
|
|
|
|
|
|
private updatePin(pin: Pin, index: number) {
|
2016-03-11 01:24:11 +01:00
|
|
|
if (!pin) return;
|
|
|
|
let text = this.pinTexts[index];
|
2016-05-05 08:31:55 +02:00
|
|
|
let v = "";
|
2016-06-04 08:15:51 +02:00
|
|
|
if (pin.mode & PinFlags.Analog) {
|
2016-05-05 08:31:55 +02:00
|
|
|
v = Math.floor(100 - (pin.value || 0) / 1023 * 100) + "%";
|
|
|
|
if (text) text.textContent = (pin.period ? "~" : "") + (pin.value || 0) + "";
|
2016-03-11 01:24:11 +01:00
|
|
|
}
|
2016-06-04 08:15:51 +02:00
|
|
|
else if (pin.mode & PinFlags.Digital) {
|
2016-06-09 23:08:15 +02:00
|
|
|
v = pin.value > 0 ? "0%" : "100%";
|
2016-03-11 01:24:11 +01:00
|
|
|
if (text) text.textContent = pin.value > 0 ? "1" : "0";
|
|
|
|
}
|
2016-06-04 08:15:51 +02:00
|
|
|
else if (pin.mode & PinFlags.Touch) {
|
|
|
|
v = pin.touched ? "0%" : "100%";
|
2016-03-11 01:24:11 +01:00
|
|
|
if (text) text.textContent = "";
|
2016-03-14 17:10:13 +01:00
|
|
|
} else {
|
2016-06-04 08:15:51 +02:00
|
|
|
v = "100%";
|
|
|
|
if (text) text.textContent = "";
|
2016-03-11 01:24:11 +01:00
|
|
|
}
|
2016-05-05 17:57:44 +02:00
|
|
|
if (v) svg.setGradientValue(this.pinGradients[index], v);
|
2016-03-11 01:24:11 +01:00
|
|
|
}
|
2016-05-05 08:31:55 +02:00
|
|
|
|
2016-03-14 22:03:31 +01:00
|
|
|
private updateTemperature() {
|
2016-08-30 21:42:30 +02:00
|
|
|
let state = this.board;
|
2016-08-30 20:55:00 +02:00
|
|
|
if (!state || !state.thermometerState.usesTemperature) return;
|
2016-05-05 08:31:55 +02:00
|
|
|
|
2016-03-14 22:03:31 +01:00
|
|
|
let tmin = -5;
|
|
|
|
let tmax = 50;
|
2016-05-05 08:31:55 +02:00
|
|
|
if (!this.thermometer) {
|
2016-03-14 22:03:31 +01:00
|
|
|
let gid = "gradient-thermometer";
|
2016-05-05 17:57:44 +02:00
|
|
|
this.thermometerGradient = svg.linearGradient(this.defs, gid);
|
2016-10-13 08:30:19 +02:00
|
|
|
const ty = MB_HEIGHT - 192;
|
2016-05-05 17:57:44 +02:00
|
|
|
this.thermometer = <SVGRectElement>svg.child(this.g, "rect", {
|
2016-05-05 08:31:55 +02:00
|
|
|
class: "sim-thermometer",
|
2016-10-13 08:14:38 +02:00
|
|
|
x: 85,
|
2016-10-13 08:30:19 +02:00
|
|
|
y: ty,
|
2016-10-13 08:14:38 +02:00
|
|
|
width: 10,
|
|
|
|
height: 80,
|
2016-05-05 08:31:55 +02:00
|
|
|
rx: 5, ry: 5,
|
|
|
|
fill: `url(#${gid})`
|
2016-03-14 22:03:31 +01:00
|
|
|
});
|
2016-10-17 05:25:55 +02:00
|
|
|
this.thermometerText = svg.child(this.g, "text", {
|
|
|
|
class: 'sim-text',
|
|
|
|
x: 100, y: MB_HEIGHT - 174
|
|
|
|
}) as SVGTextElement;
|
2016-03-14 22:03:31 +01:00
|
|
|
this.updateTheme();
|
2016-05-05 08:31:55 +02:00
|
|
|
|
2016-03-14 22:03:31 +01:00
|
|
|
let pt = this.element.createSVGPoint();
|
2016-05-05 17:57:44 +02:00
|
|
|
svg.buttonEvents(this.thermometer,
|
2016-03-14 22:03:31 +01:00
|
|
|
(ev) => {
|
2016-05-05 17:57:44 +02:00
|
|
|
let cur = svg.cursorPoint(pt, this.element, ev);
|
2016-10-13 08:30:19 +02:00
|
|
|
let t = Math.max(0, Math.min(1, (cur.y - ty - 5) / 70))
|
|
|
|
state.thermometerState.temperature = Math.floor(tmax - t * (tmax - tmin));
|
2016-03-14 22:03:31 +01:00
|
|
|
this.updateTemperature();
|
2016-05-05 08:31:55 +02:00
|
|
|
}, ev => { }, ev => { })
|
2016-03-14 22:03:31 +01:00
|
|
|
}
|
2016-05-05 08:31:55 +02:00
|
|
|
|
2016-08-30 20:55:00 +02:00
|
|
|
let t = Math.max(tmin, Math.min(tmax, state.thermometerState.temperature))
|
|
|
|
let per = Math.floor((state.thermometerState.temperature - tmin) / (tmax - tmin) * 100)
|
2016-05-17 06:48:54 +02:00
|
|
|
svg.setGradientValue(this.thermometerGradient, 100 - per + "%");
|
|
|
|
this.thermometerText.textContent = t + "°C";
|
2016-03-14 22:03:31 +01:00
|
|
|
}
|
2016-05-05 08:31:55 +02:00
|
|
|
|
2016-03-11 01:24:11 +01:00
|
|
|
private updateHeading() {
|
|
|
|
let xc = 258;
|
|
|
|
let yc = 75;
|
2016-08-30 21:42:30 +02:00
|
|
|
let state = this.board;
|
2016-08-30 20:55:00 +02:00
|
|
|
if (!state || !state.compassState.usesHeading) return;
|
2016-09-27 00:05:06 +02:00
|
|
|
/*
|
2016-03-11 01:24:11 +01:00
|
|
|
if (!this.headInitialized) {
|
2016-05-17 06:48:54 +02:00
|
|
|
let p = this.head.firstChild.nextSibling as SVGPathElement;
|
|
|
|
p.setAttribute("d", "m269.9,50.134647l0,0l-39.5,0l0,0c-14.1,0.1 -24.6,10.7 -24.6,24.8c0,13.9 10.4,24.4 24.3,24.7l0,0l39.6,0c14.2,0 40.36034,-22.97069 40.36034,-24.85394c0,-1.88326 -26.06034,-24.54606 -40.16034,-24.64606m-0.2,39l0,0l-39.3,0c-7.7,-0.1 -14,-6.4 -14,-14.2c0,-7.8 6.4,-14.2 14.2,-14.2l39.1,0c7.8,0 14.2,6.4 14.2,14.2c0,7.9 -6.4,14.2 -14.2,14.2l0,0l0,0z");
|
2016-05-13 07:23:23 +02:00
|
|
|
this.updateTheme();
|
2016-03-11 01:24:11 +01:00
|
|
|
let pt = this.element.createSVGPoint();
|
2016-05-05 17:57:44 +02:00
|
|
|
svg.buttonEvents(
|
2016-03-11 01:24:11 +01:00
|
|
|
this.head,
|
2016-05-05 08:31:55 +02:00
|
|
|
(ev: MouseEvent) => {
|
2016-05-05 17:57:44 +02:00
|
|
|
let cur = svg.cursorPoint(pt, this.element, ev);
|
2016-08-30 20:55:00 +02:00
|
|
|
state.compassState.heading = Math.floor(Math.atan2(cur.y - yc, cur.x - xc) * 180 / Math.PI + 90);
|
|
|
|
if (state.compassState.heading < 0) state.compassState.heading += 360;
|
2016-05-05 08:31:55 +02:00
|
|
|
this.updateHeading();
|
2016-03-11 01:24:11 +01:00
|
|
|
});
|
|
|
|
this.headInitialized = true;
|
|
|
|
}
|
2016-05-05 08:31:55 +02:00
|
|
|
|
2016-08-30 20:55:00 +02:00
|
|
|
let txt = state.compassState.heading.toString() + "°";
|
2016-05-05 08:31:55 +02:00
|
|
|
if (txt != this.headText.textContent) {
|
2016-08-30 20:55:00 +02:00
|
|
|
svg.rotateElement(this.head, xc, yc, state.compassState.heading + 180);
|
2016-03-11 01:24:11 +01:00
|
|
|
this.headText.textContent = txt;
|
2016-09-27 00:05:06 +02:00
|
|
|
} */
|
2016-03-11 01:24:11 +01:00
|
|
|
}
|
2016-05-05 08:31:55 +02:00
|
|
|
|
|
|
|
private lastFlashTime: number = 0;
|
2016-03-11 01:24:11 +01:00
|
|
|
public flashSystemLed() {
|
|
|
|
if (!this.systemLed)
|
2016-10-13 07:44:05 +02:00
|
|
|
this.systemLed = <SVGCircleElement>svg.child(this.g, "circle", { class: "sim-systemled", cx: 75, cy: MB_HEIGHT - 171, r: 2 })
|
2016-03-11 01:24:11 +01:00
|
|
|
let now = Date.now();
|
|
|
|
if (now - this.lastFlashTime > 150) {
|
|
|
|
this.lastFlashTime = now;
|
2016-05-13 07:23:23 +02:00
|
|
|
svg.animate(this.systemLed, "sim-flash")
|
2016-03-11 01:24:11 +01:00
|
|
|
}
|
|
|
|
}
|
2016-05-05 08:31:55 +02:00
|
|
|
|
|
|
|
private lastAntennaFlash: number = 0;
|
2016-03-11 01:24:11 +01:00
|
|
|
public flashAntenna() {
|
2016-05-05 08:31:55 +02:00
|
|
|
if (!this.antenna) {
|
2016-03-11 01:24:11 +01:00
|
|
|
let ax = 380;
|
|
|
|
let dax = 18;
|
|
|
|
let ayt = 10;
|
|
|
|
let ayb = 40;
|
2016-05-05 17:57:44 +02:00
|
|
|
this.antenna = <SVGPolylineElement>svg.child(this.g, "polyline", { class: "sim-antenna", points: `${ax},${ayb} ${ax},${ayt} ${ax += dax},${ayt} ${ax},${ayb} ${ax += dax},${ayb} ${ax},${ayt} ${ax += dax},${ayt} ${ax},${ayb} ${ax += dax},${ayb} ${ax},${ayt} ${ax += dax},${ayt}` })
|
2016-03-11 01:24:11 +01:00
|
|
|
}
|
|
|
|
let now = Date.now();
|
|
|
|
if (now - this.lastAntennaFlash > 200) {
|
|
|
|
this.lastAntennaFlash = now;
|
2016-05-05 17:57:44 +02:00
|
|
|
svg.animate(this.antenna, 'sim-flash-stroke')
|
2016-03-11 01:24:11 +01:00
|
|
|
}
|
|
|
|
}
|
2016-05-05 08:31:55 +02:00
|
|
|
|
2016-03-11 01:24:11 +01:00
|
|
|
private updatePins() {
|
2016-08-30 21:42:30 +02:00
|
|
|
let state = this.board;
|
2016-03-11 01:24:11 +01:00
|
|
|
if (!state) return;
|
2016-05-05 08:31:55 +02:00
|
|
|
|
2016-08-30 20:55:00 +02:00
|
|
|
state.edgeConnectorState.pins.forEach((pin, i) => this.updatePin(pin, i));
|
2016-05-05 08:31:55 +02:00
|
|
|
}
|
|
|
|
|
2016-03-11 22:17:49 +01:00
|
|
|
private updateLightLevel() {
|
2016-08-30 21:42:30 +02:00
|
|
|
let state = this.board;
|
2016-08-30 20:55:00 +02:00
|
|
|
if (!state || !state.lightSensorState.usesLightLevel) return;
|
2016-05-05 08:31:55 +02:00
|
|
|
|
2016-03-11 22:17:49 +01:00
|
|
|
if (!this.lightLevelButton) {
|
2016-05-05 08:31:55 +02:00
|
|
|
let gid = "gradient-light-level";
|
2016-05-05 17:57:44 +02:00
|
|
|
this.lightLevelGradient = svg.linearGradient(this.defs, gid)
|
2016-10-13 08:14:38 +02:00
|
|
|
const cx = 30;
|
|
|
|
const cy = 45;
|
|
|
|
const r = 20;
|
2016-05-05 17:57:44 +02:00
|
|
|
this.lightLevelButton = svg.child(this.g, "circle", {
|
2016-10-13 08:14:38 +02:00
|
|
|
cx: `${cx}px`, cy: `${cy}px`, r: `${r}px`,
|
2016-05-05 08:31:55 +02:00
|
|
|
class: 'sim-light-level-button',
|
|
|
|
fill: `url(#${gid})`
|
|
|
|
}) as SVGCircleElement;
|
2016-03-11 22:17:49 +01:00
|
|
|
let pt = this.element.createSVGPoint();
|
2016-05-05 17:57:44 +02:00
|
|
|
svg.buttonEvents(this.lightLevelButton,
|
2016-03-11 22:17:49 +01:00
|
|
|
(ev) => {
|
2016-05-05 17:57:44 +02:00
|
|
|
let pos = svg.cursorPoint(pt, this.element, ev);
|
2016-05-05 08:31:55 +02:00
|
|
|
let rs = r / 2;
|
|
|
|
let level = Math.max(0, Math.min(255, Math.floor((pos.y - (cy - rs)) / (2 * rs) * 255)));
|
2016-08-30 21:42:30 +02:00
|
|
|
if (level != this.board.lightSensorState.lightLevel) {
|
|
|
|
this.board.lightSensorState.lightLevel = level;
|
2016-03-12 00:10:36 +01:00
|
|
|
this.applyLightLevel();
|
2016-03-11 22:17:49 +01:00
|
|
|
}
|
2016-05-05 08:31:55 +02:00
|
|
|
}, ev => { },
|
|
|
|
ev => { })
|
2016-10-17 05:25:55 +02:00
|
|
|
this.lightLevelText = svg.child(this.g, "text", { x: cx - r - 7, y: cy + r + 8, text: '', class: 'sim-text inverted' }) as SVGTextElement;
|
2016-03-11 22:17:49 +01:00
|
|
|
this.updateTheme();
|
2016-05-05 08:31:55 +02:00
|
|
|
}
|
|
|
|
|
2016-08-30 20:55:00 +02:00
|
|
|
svg.setGradientValue(this.lightLevelGradient, Math.min(100, Math.max(0, Math.floor(state.lightSensorState.lightLevel * 100 / 255))) + '%')
|
|
|
|
this.lightLevelText.textContent = state.lightSensorState.lightLevel.toString();
|
2016-05-05 08:31:55 +02:00
|
|
|
}
|
|
|
|
|
2016-03-12 00:10:36 +01:00
|
|
|
private applyLightLevel() {
|
2016-08-30 21:42:30 +02:00
|
|
|
let lv = this.board.lightSensorState.lightLevel;
|
2016-05-05 17:57:44 +02:00
|
|
|
svg.setGradientValue(this.lightLevelGradient, Math.min(100, Math.max(0, Math.floor(lv * 100 / 255))) + '%')
|
2016-05-05 08:31:55 +02:00
|
|
|
this.lightLevelText.textContent = lv.toString();
|
2016-03-12 00:10:36 +01:00
|
|
|
}
|
2016-05-05 08:31:55 +02:00
|
|
|
|
2016-03-11 01:24:11 +01:00
|
|
|
private updateTilt() {
|
|
|
|
if (this.props.disableTilt) return;
|
2016-08-30 21:42:30 +02:00
|
|
|
let state = this.board;
|
2016-08-30 20:55:00 +02:00
|
|
|
if (!state || !state.accelerometerState.accelerometer.isActive) return;
|
2016-03-11 01:24:11 +01:00
|
|
|
|
2016-08-30 20:55:00 +02:00
|
|
|
let x = state.accelerometerState.accelerometer.getX();
|
|
|
|
let y = state.accelerometerState.accelerometer.getY();
|
2016-03-20 03:15:20 +01:00
|
|
|
let af = 8 / 1023;
|
|
|
|
|
2016-05-05 08:31:55 +02:00
|
|
|
this.element.style.transform = "perspective(30em) rotateX(" + y * af + "deg) rotateY(" + x * af + "deg)"
|
2016-03-20 03:15:20 +01:00
|
|
|
this.element.style.perspectiveOrigin = "50% 50% 50%";
|
2016-05-05 08:31:55 +02:00
|
|
|
this.element.style.perspective = "30em";
|
2016-03-11 01:24:11 +01:00
|
|
|
}
|
2016-05-05 08:31:55 +02:00
|
|
|
|
2016-03-11 01:24:11 +01:00
|
|
|
private buildDom() {
|
2016-10-17 05:09:13 +02:00
|
|
|
this.element = new DOMParser().parseFromString(BOARD_SVG, "image/svg+xml").querySelector("svg") as SVGSVGElement;
|
2016-05-05 17:57:44 +02:00
|
|
|
svg.hydrate(this.element, {
|
2016-05-05 08:31:55 +02:00
|
|
|
"version": "1.0",
|
2016-08-30 20:55:00 +02:00
|
|
|
"viewBox": `0 0 ${MB_WIDTH} ${MB_HEIGHT}`,
|
2016-05-05 08:31:55 +02:00
|
|
|
"class": "sim",
|
2016-03-11 01:24:11 +01:00
|
|
|
"x": "0px",
|
2016-08-30 20:55:00 +02:00
|
|
|
"y": "0px",
|
|
|
|
"width": MB_WIDTH + "px",
|
|
|
|
"height": MB_HEIGHT + "px",
|
2016-05-05 08:31:55 +02:00
|
|
|
});
|
2016-05-05 17:57:44 +02:00
|
|
|
this.style = <SVGStyleElement>svg.child(this.element, "style", {});
|
2016-08-31 20:14:16 +02:00
|
|
|
this.style.textContent = MB_STYLE;
|
2016-05-05 08:31:55 +02:00
|
|
|
|
2016-05-05 17:57:44 +02:00
|
|
|
this.defs = <SVGDefsElement>svg.child(this.element, "defs", {});
|
2016-08-30 20:55:00 +02:00
|
|
|
this.g = <SVGGElement>svg.elt("g");
|
2016-03-11 01:24:11 +01:00
|
|
|
this.element.appendChild(this.g);
|
2016-05-05 08:31:55 +02:00
|
|
|
|
2016-03-20 08:44:30 +01:00
|
|
|
// filters
|
2016-05-05 17:57:44 +02:00
|
|
|
let glow = svg.child(this.defs, "filter", { id: "filterglow", x: "-5%", y: "-5%", width: "120%", height: "120%" });
|
|
|
|
svg.child(glow, "feGaussianBlur", { stdDeviation: "5", result: "glow" });
|
|
|
|
let merge = svg.child(glow, "feMerge", {});
|
|
|
|
for (let i = 0; i < 3; ++i) svg.child(merge, "feMergeNode", { in: "glow" })
|
2016-05-05 08:31:55 +02:00
|
|
|
|
2016-03-11 01:24:11 +01:00
|
|
|
// leds
|
|
|
|
this.leds = [];
|
|
|
|
this.ledsOuter = [];
|
2016-10-13 07:44:05 +02:00
|
|
|
const left = 103.04, top = MB_HEIGHT - 158.59;
|
|
|
|
const ledoffw = 10.91, ledoffh = 10.68;
|
|
|
|
const ledw = 2.7;
|
|
|
|
const ledh = 5.47;
|
2016-05-05 08:31:55 +02:00
|
|
|
for (let i = 0; i < 5; ++i) {
|
|
|
|
let ledtop = i * ledoffh + top;
|
|
|
|
for (let j = 0; j < 5; ++j) {
|
|
|
|
let ledleft = j * ledoffw + left;
|
|
|
|
let k = i * 5 + j;
|
2016-10-13 08:40:33 +02:00
|
|
|
this.ledsOuter.push(svg.child(this.g, "rect", { class: "sim-led-back", x: ledleft, y: ledtop, width: ledw, height: ledh }));
|
2016-09-27 00:05:06 +02:00
|
|
|
this.leds.push(svg.child(this.g, "rect", { class: "sim-led", x: ledleft - 1, y: ledtop - 1, width: ledw + 2, height: ledh + 2, rx: 2, ry: 2, title: `(${j},${i})` }));
|
2016-03-11 01:24:11 +01:00
|
|
|
}
|
|
|
|
}
|
2016-05-05 08:31:55 +02:00
|
|
|
|
2016-03-21 05:34:16 +01:00
|
|
|
// https://www.microbit.co.uk/device/pins
|
2016-03-11 01:24:11 +01:00
|
|
|
// P0, P1, P2
|
2016-10-14 08:53:24 +02:00
|
|
|
this.pins = pinNames.map(n => {
|
|
|
|
let p = this.element.getElementById(n) as SVGElement;
|
|
|
|
svg.addClass(p, "sim-pin");
|
|
|
|
return p;
|
|
|
|
});
|
2016-05-05 08:31:55 +02:00
|
|
|
|
2016-09-27 00:05:06 +02:00
|
|
|
this.pins.forEach((p, i) => svg.hydrate(p, { title: pinTitles[i] }));
|
2016-05-05 08:31:55 +02:00
|
|
|
|
|
|
|
this.pinGradients = this.pins.map((pin, i) => {
|
|
|
|
let gid = "gradient-pin-" + i
|
2016-05-05 17:57:44 +02:00
|
|
|
let lg = svg.linearGradient(this.defs, gid)
|
2016-03-11 01:24:11 +01:00
|
|
|
pin.setAttribute("fill", `url(#${gid})`);
|
|
|
|
return lg;
|
|
|
|
})
|
2016-05-05 08:31:55 +02:00
|
|
|
|
2016-06-09 23:08:15 +02:00
|
|
|
this.pinTexts = [67, 165, 275].map(x => <SVGTextElement>svg.child(this.g, "text", { class: "sim-text-pin", x: x, y: 345 }));
|
2016-08-30 20:55:00 +02:00
|
|
|
|
2016-10-13 07:44:05 +02:00
|
|
|
// BTN A, B
|
|
|
|
const btnids = ["BTN_A", "BTN_B"];
|
|
|
|
this.buttonsOuter = btnids.map(n => this.element.getElementById(n + "_BOX") as SVGElement);
|
|
|
|
this.buttonsOuter.forEach(b => svg.addClass(b, "sim-button-outer"));
|
|
|
|
this.buttons = btnids.map(n => this.element.getElementById(n) as SVGElement);
|
|
|
|
this.buttons.forEach(b => svg.addClass(b, "sim-button"));
|
2016-06-09 23:08:15 +02:00
|
|
|
|
2016-10-13 07:44:05 +02:00
|
|
|
// BTN A+B
|
2016-06-09 23:08:15 +02:00
|
|
|
const outerBtn = (left: number, top: number) => {
|
2016-09-27 20:00:21 +02:00
|
|
|
const button = this.mkBtn(left, top);
|
|
|
|
this.buttonsOuter.push(button.outer);
|
|
|
|
this.buttons.push(button.inner);
|
|
|
|
|
|
|
|
return button;
|
2016-06-09 23:08:15 +02:00
|
|
|
}
|
|
|
|
|
2016-10-13 07:44:05 +02:00
|
|
|
let ab = outerBtn(210, MB_HEIGHT - 168);
|
|
|
|
let abtext = svg.child(ab.outer, "text", { x: 208, y: MB_HEIGHT - 173, class: "sim-text inverted" }) as SVGTextElement;
|
2016-09-27 20:00:21 +02:00
|
|
|
abtext.textContent = "A+B";
|
2016-06-09 23:08:15 +02:00
|
|
|
(<any>this.buttonsOuter[2]).style.visibility = "hidden";
|
|
|
|
(<any>this.buttons[2]).style.visibility = "hidden";
|
2016-03-11 01:24:11 +01:00
|
|
|
}
|
2016-05-05 08:31:55 +02:00
|
|
|
|
2016-09-27 20:00:21 +02:00
|
|
|
private mkBtn(left: number, top: number): { outer: SVGElement, inner: SVGElement } {
|
2016-10-13 07:44:05 +02:00
|
|
|
const btnr = 2;
|
|
|
|
const btnw = 16;
|
|
|
|
const btnn = 1.6;
|
|
|
|
const btnnm = 2;
|
2016-09-27 20:00:21 +02:00
|
|
|
const btnb = 5;
|
|
|
|
let btng = svg.child(this.g, "g", { class: "sim-button-group" });
|
|
|
|
svg.child(btng, "rect", { class: "sim-button-outer", x: left, y: top, rx: btnr, ry: btnr, width: btnw, height: btnw });
|
|
|
|
svg.child(btng, "circle", { class: "sim-button-nut", cx: left + btnnm, cy: top + btnnm, r: btnn });
|
|
|
|
svg.child(btng, "circle", { class: "sim-button-nut", cx: left + btnnm, cy: top + btnw - btnnm, r: btnn });
|
|
|
|
svg.child(btng, "circle", { class: "sim-button-nut", cx: left + btnw - btnnm, cy: top + btnw - btnnm, r: btnn });
|
|
|
|
svg.child(btng, "circle", { class: "sim-button-nut", cx: left + btnw - btnnm, cy: top + btnnm, r: btnn });
|
|
|
|
|
|
|
|
const outer = btng;
|
|
|
|
const inner = svg.child(btng, "circle", {
|
|
|
|
class: "sim-button",
|
|
|
|
cx: left + btnw / 2,
|
|
|
|
cy: top + btnw / 2,
|
|
|
|
r: btnb
|
|
|
|
});
|
|
|
|
|
|
|
|
return { outer, inner };
|
|
|
|
}
|
|
|
|
|
2016-03-11 01:24:11 +01:00
|
|
|
private attachEvents() {
|
|
|
|
Runtime.messagePosted = (msg) => {
|
2016-07-29 22:42:21 +02:00
|
|
|
switch (msg.type || "") {
|
|
|
|
case "serial": this.flashSystemLed(); break;
|
|
|
|
case "radiopacket": this.flashAntenna(); break;
|
2016-03-11 01:24:11 +01:00
|
|
|
}
|
|
|
|
}
|
2016-03-30 06:14:27 +02:00
|
|
|
let tiltDecayer = 0;
|
2016-04-11 19:58:09 +02:00
|
|
|
this.element.addEventListener(pointerEvents.move, (ev: MouseEvent) => {
|
2016-08-30 21:42:30 +02:00
|
|
|
let state = this.board;
|
2016-08-30 20:55:00 +02:00
|
|
|
if (!state.accelerometerState.accelerometer.isActive) return;
|
2016-05-05 08:31:55 +02:00
|
|
|
|
2016-03-30 06:14:27 +02:00
|
|
|
if (tiltDecayer) {
|
|
|
|
clearInterval(tiltDecayer);
|
|
|
|
tiltDecayer = 0;
|
|
|
|
}
|
2016-03-20 03:15:20 +01:00
|
|
|
|
2016-03-11 01:24:11 +01:00
|
|
|
let ax = (ev.clientX - this.element.clientWidth / 2) / (this.element.clientWidth / 3);
|
|
|
|
let ay = (ev.clientY - this.element.clientHeight / 2) / (this.element.clientHeight / 3);
|
2016-05-05 08:31:55 +02:00
|
|
|
|
2016-03-20 03:15:20 +01:00
|
|
|
let x = - Math.max(- 1023, Math.min(1023, Math.floor(ax * 1023)));
|
|
|
|
let y = Math.max(- 1023, Math.min(1023, Math.floor(ay * 1023)));
|
2016-05-05 08:31:55 +02:00
|
|
|
let z2 = 1023 * 1023 - x * x - y * y;
|
|
|
|
let z = Math.floor((z2 > 0 ? -1 : 1) * Math.sqrt(Math.abs(z2)));
|
|
|
|
|
2016-08-30 20:55:00 +02:00
|
|
|
state.accelerometerState.accelerometer.update(x, y, z);
|
2016-03-11 01:24:11 +01:00
|
|
|
this.updateTilt();
|
|
|
|
}, false);
|
2016-04-11 19:58:09 +02:00
|
|
|
this.element.addEventListener(pointerEvents.leave, (ev: MouseEvent) => {
|
2016-08-30 21:42:30 +02:00
|
|
|
let state = this.board;
|
2016-08-30 20:55:00 +02:00
|
|
|
if (!state.accelerometerState.accelerometer.isActive) return;
|
2016-05-05 08:31:55 +02:00
|
|
|
|
2016-03-30 06:14:27 +02:00
|
|
|
if (!tiltDecayer) {
|
|
|
|
tiltDecayer = setInterval(() => {
|
2016-08-30 20:55:00 +02:00
|
|
|
let accx = state.accelerometerState.accelerometer.getX(MicroBitCoordinateSystem.RAW);
|
2016-03-30 06:14:27 +02:00
|
|
|
accx = Math.floor(Math.abs(accx) * 0.85) * (accx > 0 ? 1 : -1);
|
2016-08-30 20:55:00 +02:00
|
|
|
let accy = state.accelerometerState.accelerometer.getY(MicroBitCoordinateSystem.RAW);
|
2016-03-30 06:14:27 +02:00
|
|
|
accy = Math.floor(Math.abs(accy) * 0.85) * (accy > 0 ? 1 : -1);
|
2016-05-05 08:31:55 +02:00
|
|
|
let accz = -Math.sqrt(Math.max(0, 1023 * 1023 - accx * accx - accy * accy));
|
2016-03-30 06:14:27 +02:00
|
|
|
if (Math.abs(accx) <= 24 && Math.abs(accy) <= 24) {
|
2016-05-05 08:31:55 +02:00
|
|
|
clearInterval(tiltDecayer);
|
|
|
|
tiltDecayer = 0;
|
2016-03-30 06:14:27 +02:00
|
|
|
accx = 0;
|
|
|
|
accy = 0;
|
2016-05-05 08:31:55 +02:00
|
|
|
accz = -1023;
|
|
|
|
}
|
2016-08-30 20:55:00 +02:00
|
|
|
state.accelerometerState.accelerometer.update(accx, accy, accz);
|
2016-05-05 08:31:55 +02:00
|
|
|
this.updateTilt();
|
|
|
|
}, 50)
|
2016-03-30 06:14:27 +02:00
|
|
|
}
|
2016-03-11 01:24:11 +01:00
|
|
|
}, false);
|
2016-05-05 08:31:55 +02:00
|
|
|
|
2016-03-11 01:24:11 +01:00
|
|
|
this.pins.forEach((pin, index) => {
|
2016-08-30 21:42:30 +02:00
|
|
|
if (!this.board.edgeConnectorState.pins[index]) return;
|
2016-03-11 01:24:11 +01:00
|
|
|
let pt = this.element.createSVGPoint();
|
2016-05-05 17:57:44 +02:00
|
|
|
svg.buttonEvents(pin,
|
2016-03-11 01:24:11 +01:00
|
|
|
// move
|
|
|
|
ev => {
|
2016-08-30 21:42:30 +02:00
|
|
|
let state = this.board;
|
2016-08-30 20:55:00 +02:00
|
|
|
let pin = state.edgeConnectorState.pins[index];
|
2016-03-11 01:24:11 +01:00
|
|
|
let svgpin = this.pins[index];
|
2016-06-04 08:15:51 +02:00
|
|
|
if (pin.mode & PinFlags.Input) {
|
2016-05-05 17:57:44 +02:00
|
|
|
let cursor = svg.cursorPoint(pt, this.element, ev);
|
2016-03-11 01:24:11 +01:00
|
|
|
let v = (400 - cursor.y) / 40 * 1023
|
|
|
|
pin.value = Math.max(0, Math.min(1023, Math.floor(v)));
|
|
|
|
}
|
2016-05-05 08:31:55 +02:00
|
|
|
this.updatePin(pin, index);
|
2016-03-11 01:24:11 +01:00
|
|
|
},
|
|
|
|
// start
|
|
|
|
ev => {
|
2016-08-30 21:42:30 +02:00
|
|
|
let state = this.board;
|
2016-08-30 20:55:00 +02:00
|
|
|
let pin = state.edgeConnectorState.pins[index];
|
2016-03-11 01:24:11 +01:00
|
|
|
let svgpin = this.pins[index];
|
2016-05-05 17:57:44 +02:00
|
|
|
svg.addClass(svgpin, "touched");
|
2016-06-04 08:15:51 +02:00
|
|
|
if (pin.mode & PinFlags.Input) {
|
2016-05-05 17:57:44 +02:00
|
|
|
let cursor = svg.cursorPoint(pt, this.element, ev);
|
2016-03-11 01:24:11 +01:00
|
|
|
let v = (400 - cursor.y) / 40 * 1023
|
|
|
|
pin.value = Math.max(0, Math.min(1023, Math.floor(v)));
|
|
|
|
}
|
2016-05-05 08:31:55 +02:00
|
|
|
this.updatePin(pin, index);
|
2016-03-11 01:24:11 +01:00
|
|
|
},
|
|
|
|
// stop
|
|
|
|
(ev: MouseEvent) => {
|
2016-08-30 21:42:30 +02:00
|
|
|
let state = this.board;
|
2016-08-30 20:55:00 +02:00
|
|
|
let pin = state.edgeConnectorState.pins[index];
|
2016-03-11 01:24:11 +01:00
|
|
|
let svgpin = this.pins[index];
|
2016-05-05 17:57:44 +02:00
|
|
|
svg.removeClass(svgpin, "touched");
|
2016-03-11 01:24:11 +01:00
|
|
|
this.updatePin(pin, index);
|
|
|
|
return false;
|
2016-05-05 08:31:55 +02:00
|
|
|
});
|
2016-03-11 01:24:11 +01:00
|
|
|
})
|
2016-05-05 08:31:55 +02:00
|
|
|
this.pins.slice(0, 3).forEach((btn, index) => {
|
2016-04-11 19:58:09 +02:00
|
|
|
btn.addEventListener(pointerEvents.down, ev => {
|
2016-08-30 21:42:30 +02:00
|
|
|
let state = this.board;
|
2016-08-30 20:55:00 +02:00
|
|
|
state.edgeConnectorState.pins[index].touched = true;
|
|
|
|
this.updatePin(state.edgeConnectorState.pins[index], index);
|
2016-03-23 23:09:48 +01:00
|
|
|
})
|
2016-04-11 19:58:09 +02:00
|
|
|
btn.addEventListener(pointerEvents.leave, ev => {
|
2016-08-30 21:42:30 +02:00
|
|
|
let state = this.board;
|
2016-08-30 20:55:00 +02:00
|
|
|
state.edgeConnectorState.pins[index].touched = false;
|
|
|
|
this.updatePin(state.edgeConnectorState.pins[index], index);
|
2016-03-23 23:09:48 +01:00
|
|
|
})
|
2016-04-11 19:58:09 +02:00
|
|
|
btn.addEventListener(pointerEvents.up, ev => {
|
2016-08-30 21:42:30 +02:00
|
|
|
let state = this.board;
|
2016-08-30 20:55:00 +02:00
|
|
|
state.edgeConnectorState.pins[index].touched = false;
|
|
|
|
this.updatePin(state.edgeConnectorState.pins[index], index);
|
2016-08-30 21:42:30 +02:00
|
|
|
this.board.bus.queue(state.edgeConnectorState.pins[index].id, DAL.MICROBIT_BUTTON_EVT_UP);
|
|
|
|
this.board.bus.queue(state.edgeConnectorState.pins[index].id, DAL.MICROBIT_BUTTON_EVT_CLICK);
|
2016-05-05 08:31:55 +02:00
|
|
|
})
|
2016-03-23 23:09:48 +01:00
|
|
|
})
|
2016-08-30 20:55:00 +02:00
|
|
|
|
2016-08-30 21:42:30 +02:00
|
|
|
let bpState = this.board.buttonPairState;
|
2016-08-30 20:55:00 +02:00
|
|
|
let stateButtons = [bpState.aBtn, bpState.bBtn, bpState.abBtn];
|
2016-05-05 08:31:55 +02:00
|
|
|
this.buttonsOuter.slice(0, 2).forEach((btn, index) => {
|
2016-04-11 19:58:09 +02:00
|
|
|
btn.addEventListener(pointerEvents.down, ev => {
|
2016-08-30 21:42:30 +02:00
|
|
|
let state = this.board;
|
2016-08-30 20:55:00 +02:00
|
|
|
stateButtons[index].pressed = true;
|
2016-05-05 17:57:44 +02:00
|
|
|
svg.fill(this.buttons[index], this.props.theme.buttonDown);
|
2016-03-11 01:24:11 +01:00
|
|
|
})
|
2016-04-11 19:58:09 +02:00
|
|
|
btn.addEventListener(pointerEvents.leave, ev => {
|
2016-08-30 21:42:30 +02:00
|
|
|
let state = this.board;
|
2016-08-30 20:55:00 +02:00
|
|
|
stateButtons[index].pressed = false;
|
2016-10-13 07:44:05 +02:00
|
|
|
svg.fill(this.buttons[index], this.props.theme.buttonUps[index]);
|
2016-03-18 21:55:07 +01:00
|
|
|
})
|
2016-04-11 19:58:09 +02:00
|
|
|
btn.addEventListener(pointerEvents.up, ev => {
|
2016-08-30 21:42:30 +02:00
|
|
|
let state = this.board;
|
2016-08-30 20:55:00 +02:00
|
|
|
stateButtons[index].pressed = false;
|
2016-10-13 07:44:05 +02:00
|
|
|
svg.fill(this.buttons[index], this.props.theme.buttonUps[index]);
|
2016-08-30 21:42:30 +02:00
|
|
|
this.board.bus.queue(stateButtons[index].id, DAL.MICROBIT_BUTTON_EVT_UP);
|
|
|
|
this.board.bus.queue(stateButtons[index].id, DAL.MICROBIT_BUTTON_EVT_CLICK);
|
2016-03-11 01:24:11 +01:00
|
|
|
})
|
|
|
|
})
|
2016-04-11 19:58:09 +02:00
|
|
|
this.buttonsOuter[2].addEventListener(pointerEvents.down, ev => {
|
2016-08-30 21:42:30 +02:00
|
|
|
let state = this.board;
|
2016-08-30 20:55:00 +02:00
|
|
|
stateButtons[0].pressed = true;
|
|
|
|
stateButtons[1].pressed = true;
|
|
|
|
stateButtons[2].pressed = true;
|
2016-05-05 17:57:44 +02:00
|
|
|
svg.fill(this.buttons[0], this.props.theme.buttonDown);
|
|
|
|
svg.fill(this.buttons[1], this.props.theme.buttonDown);
|
|
|
|
svg.fill(this.buttons[2], this.props.theme.buttonDown);
|
2016-05-05 08:31:55 +02:00
|
|
|
})
|
2016-04-11 19:58:09 +02:00
|
|
|
this.buttonsOuter[2].addEventListener(pointerEvents.leave, ev => {
|
2016-08-30 21:42:30 +02:00
|
|
|
let state = this.board;
|
2016-08-30 20:55:00 +02:00
|
|
|
stateButtons[0].pressed = false;
|
|
|
|
stateButtons[1].pressed = false;
|
|
|
|
stateButtons[2].pressed = false;
|
2016-10-13 07:44:05 +02:00
|
|
|
svg.fill(this.buttons[0], this.props.theme.buttonUps[0]);
|
|
|
|
svg.fill(this.buttons[1], this.props.theme.buttonUps[1]);
|
2016-05-05 17:57:44 +02:00
|
|
|
svg.fill(this.buttons[2], this.props.theme.virtualButtonUp);
|
2016-03-18 21:55:07 +01:00
|
|
|
})
|
2016-04-11 19:58:09 +02:00
|
|
|
this.buttonsOuter[2].addEventListener(pointerEvents.up, ev => {
|
2016-08-30 21:42:30 +02:00
|
|
|
let state = this.board;
|
2016-08-30 20:55:00 +02:00
|
|
|
stateButtons[0].pressed = false;
|
|
|
|
stateButtons[1].pressed = false;
|
|
|
|
stateButtons[2].pressed = false;
|
2016-10-13 07:44:05 +02:00
|
|
|
svg.fill(this.buttons[0], this.props.theme.buttonUps[0]);
|
|
|
|
svg.fill(this.buttons[1], this.props.theme.buttonUps[1]);
|
2016-05-05 17:57:44 +02:00
|
|
|
svg.fill(this.buttons[2], this.props.theme.virtualButtonUp);
|
2016-05-05 08:31:55 +02:00
|
|
|
|
2016-08-30 21:42:30 +02:00
|
|
|
this.board.bus.queue(stateButtons[2].id, DAL.MICROBIT_BUTTON_EVT_UP);
|
|
|
|
this.board.bus.queue(stateButtons[2].id, DAL.MICROBIT_BUTTON_EVT_CLICK);
|
2016-05-05 08:31:55 +02:00
|
|
|
})
|
2016-03-11 01:24:11 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|