Merge pull request #3 from bjoernellens1/webgui

Webgui
This commit is contained in:
bjoernellens1 2024-03-27 11:51:28 +01:00 committed by GitHub
commit ef103d289d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
39 changed files with 4370 additions and 85 deletions

View File

@ -4,6 +4,7 @@ on:
push:
branches:
- master # Change this to your main branch name
#- tuning
jobs:
build:

6
.gitignore vendored
View File

@ -1 +1,5 @@
.vscode
.vscode
config/npm/keys.json
config/npm/logs
maps/

27
config/box_filter.yaml Normal file
View File

@ -0,0 +1,27 @@
scan_to_scan_filter_chain:
ros__parameters:
filter1:
name: box_filter
type: laser_filters/LaserScanBoxFilter
params:
box_frame: laser_frame
max_x: 0.80 #was 0.16
max_y: 0.18 #was 0.17
max_z: 0.1
min_x: -0.41 #was -0.41
min_y: -0.18 # was -0.17
min_z: -0.2
invert: false # activate to remove all points outside of the box
name: shadows
type: laser_filters/ScanShadowsFilter
params:
min_angle: 10
max_angle: 170
neighbors: 20
window: 1
name: dark_shadows
type: laser_filters/LaserScanIntensityFilter
params:
lower_threshold: 100
upper_threshold: 10000
disp_histogram: 0

34
config/caddy/Caddyfile Normal file
View File

@ -0,0 +1,34 @@
# {
# debug
# }
http://loki {
root * /usr/share/caddy
file_server browse
handle_path /config* {
reverse_proxy http://olivetin:1337
}
handle_path /viz* {
reverse_proxy http://foxglove:8080
}
# this is not working right now
handle_path /joy* {
reverse_proxy http://host.docker.internal:8000
}
}
http://loki.local {
root * /usr/share/caddy
file_server browse
handle_path /config {
reverse_proxy http://olivetin:1337
}
handle_path /viz* {
reverse_proxy http://foxglove:8080
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 5.8 KiB

View File

@ -0,0 +1,95 @@
<!DOCTYPE html>
<html>
<!-- ersetze die Links + QR Codes unter den Kommentaren -->
<head>
<title>CPS Bot Overview</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="style.css">
</head>
<header>
<h1 id="HEADLINE">Loki Overview<img src="CPS_Logo_White_square_TRANSP.png" id="LOGO"></h1>
</header>
<body>
<div class="box" id="RIGHT">
<div id="BLOCK_ONE">
<p class="mini-heads">Teleop:</p>
<!-- again -->
<!-- Replace link at href -->
<!-- hier Link zu Joystick -->
<a href="http://loki:8000/">
<img src="joystick.png" class="qr qr_2"></a>
<br>
</div>
<div id="BLOCK_ONE">
<p class="mini-heads">Robot Configuration:</p>
<!-- again -->
<!-- Replace link at href -->
<!-- hier Link zu WebGui -->
<a href="http://loki/config/">
<img src="wrench.svg" class="qr qr_2"></a>
<br>
</div>
<p id="SPACE"> </p>
<div id="BLOCK_TWO">
<p class="mini-heads">Data View:</p>
<!-- again -->
<!-- hier Link zu Manual -->
<a href="http://loki/viz/">
<img src="safety-glasses.svg" class="qr qr_2">
</a>
<br>
</div>
<p id="SPACE"> </p>
<div id="BLOCK_THREE">
<p class="mini-heads">Manual:</p>
<!-- again -->
<!-- hier Link zu Manual -->
<a href="https://cps.unileoben.ac.at">
<img src="blueprint.svg" class="qr qr_2">
</a>
<br>
</div>
</div>
<div class="box" id="LEFT">
<p class="mini-heads">Connect to Wi-Fi:</p>
<!-- replace mit relativen Link!!!, bei mir spinnts und es wird das gebrochene Bild symbol angezeigt. Anders geht
es allerdings, falls nicht bei dir sags mir -->
<img src="qr-loki.wifi.svg" class="qr">
<div id="NORM_SET">
<table>
<tr>
<td>SSID:</td>
<td>cps-loki</td>
</tr>
<tr>
<td>Password: </td>
<td>cps-loki</td>
</tr>
</table>
</div>
</div>
<div class="info">
<!-- Link zum Lehrstuhl, einfach den ganzen Div Block rausnehmen falls du das nicht willst -->
<a href="https://cps.unileoben.ac.at/">Check us out!</a>
</div>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

View File

@ -0,0 +1,508 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="1160px" height="1160px" viewBox="0 0 1160 1160" enable-background="new 0 0 1160 1160" xml:space="preserve">
<rect x="0" y="0" width="1160" height="1160" fill="rgb(255,255,255)" /><g transform="translate(80,80)"><g transform="translate(320,0) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(360,0) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(560,0) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(640,0) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(400,40) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(440,40) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(520,40) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(560,40) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(320,80) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(400,80) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(520,80) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(600,80) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(400,120) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(440,120) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(480,120) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(520,120) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(560,120) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(600,120) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(360,160) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(480,160) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(520,160) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(560,160) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(320,200) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(400,200) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(440,200) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(520,200) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(640,200) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(320,240) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(400,240) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(480,240) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(560,240) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(640,240) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(400,280) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(440,280) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(480,280) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(560,280) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(0,320) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(80,320) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(240,320) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(280,320) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(400,320) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(480,320) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(600,320) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(640,320) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(760,320) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(880,320) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(960,320) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(40,360) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(80,360) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(120,360) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(160,360) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(280,360) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(360,360) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(400,360) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(480,360) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(520,360) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(600,360) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(640,360) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(720,360) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(760,360) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(840,360) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(920,360) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(960,360) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(0,400) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(40,400) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(120,400) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(200,400) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(240,400) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(280,400) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(360,400) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(440,400) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(600,400) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(680,400) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(840,400) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(880,400) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(960,400) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(0,440) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(40,440) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(360,440) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(480,440) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(560,440) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(600,440) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(680,440) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(720,440) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(760,440) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(800,440) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(840,440) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(40,480) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(200,480) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(240,480) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(280,480) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(400,480) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(440,480) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(480,480) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(600,480) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(640,480) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(720,480) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(760,480) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(960,480) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(40,520) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(80,520) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(120,520) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(200,520) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(280,520) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(320,520) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(360,520) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(400,520) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(480,520) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(520,520) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(600,520) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(640,520) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(720,520) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(760,520) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(920,520) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(960,520) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(0,560) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(40,560) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(80,560) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(240,560) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(280,560) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(320,560) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(400,560) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(480,560) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(600,560) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(680,560) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(760,560) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(800,560) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(840,560) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(880,560) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(960,560) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(160,600) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(320,600) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(440,600) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(480,600) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(600,600) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(640,600) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(680,600) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(760,600) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(800,600) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(0,640) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(40,640) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(120,640) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(160,640) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(240,640) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(280,640) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(320,640) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(400,640) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(480,640) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(640,640) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(680,640) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(720,640) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(760,640) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(800,640) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(920,640) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(320,680) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(640,680) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(800,680) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(880,680) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(960,680) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(320,720) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(360,720) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(440,720) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(640,720) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(720,720) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(800,720) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(840,720) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(960,720) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(360,760) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(440,760) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(480,760) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(600,760) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(640,760) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(800,760) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(920,760) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(360,800) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(480,800) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(600,800) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(640,800) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(680,800) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(720,800) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(760,800) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(800,800) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(840,800) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(920,800) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(400,840) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(440,840) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(520,840) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(800,840) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(840,840) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(880,840) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(920,840) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(320,880) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(440,880) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(520,880) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(560,880) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(680,880) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(800,880) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(920,880) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(960,880) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(360,920) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(440,920) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(480,920) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(560,920) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(640,920) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(680,920) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(720,920) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(760,920) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(800,920) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(320,960) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(360,960) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(400,960) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(440,960) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(480,960) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(640,960) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(680,960) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(840,960) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(960,960) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(0,0) scale(2.8, 2.8)"><g transform="" style="fill: rgb(16, 64, 102);">
<g>
<path style="fill:none;" d="M65.859,15.008H34.141c-4.082,0-7.869,1.258-10.979,3.398c-2.419,1.665-4.428,3.864-5.848,6.421
C15.838,27.484,15,30.526,15,33.758v32.471c0,10.344,8.586,18.76,19.145,18.76L50,84.992l15.855-0.004
C76.414,84.988,85,76.572,85,66.229V33.758C85,23.419,76.414,15.008,65.859,15.008z"/>
<path d="M65.859,0.008H34.141h0C18.683,0.008,5.587,10.221,1.4,24.18c-0.433,1.444-0.771,2.928-1.006,4.445
C0.135,30.299,0,32.013,0,33.758v32.471c0,18.619,15.32,33.76,34.141,33.76L50,99.992l15.859-0.004
c18.82,0,34.141-15.141,34.141-33.76V33.758C100,15.148,84.68,0.008,65.859,0.008z M85,66.229c0,10.344-8.586,18.76-19.145,18.76
L50,84.992l-15.855-0.004C23.586,84.988,15,76.572,15,66.229V33.758c0-3.231,0.838-6.273,2.313-8.931
c1.42-2.557,3.429-4.756,5.848-6.421c3.11-2.141,6.897-3.398,10.979-3.398h31.719C76.414,15.008,85,23.419,85,33.758V66.229z"/>
</g>
</g></g><g transform="translate(720,0) scale(2.8, 2.8)"><g transform="" style="fill: rgb(16, 64, 102);">
<g>
<path style="fill:none;" d="M65.859,15.008H34.141c-4.082,0-7.869,1.258-10.979,3.398c-2.419,1.665-4.428,3.864-5.848,6.421
C15.838,27.484,15,30.526,15,33.758v32.471c0,10.344,8.586,18.76,19.145,18.76L50,84.992l15.855-0.004
C76.414,84.988,85,76.572,85,66.229V33.758C85,23.419,76.414,15.008,65.859,15.008z"/>
<path d="M65.859,0.008H34.141h0C18.683,0.008,5.587,10.221,1.4,24.18c-0.433,1.444-0.771,2.928-1.006,4.445
C0.135,30.299,0,32.013,0,33.758v32.471c0,18.619,15.32,33.76,34.141,33.76L50,99.992l15.859-0.004
c18.82,0,34.141-15.141,34.141-33.76V33.758C100,15.148,84.68,0.008,65.859,0.008z M85,66.229c0,10.344-8.586,18.76-19.145,18.76
L50,84.992l-15.855-0.004C23.586,84.988,15,76.572,15,66.229V33.758c0-3.231,0.838-6.273,2.313-8.931
c1.42-2.557,3.429-4.756,5.848-6.421c3.11-2.141,6.897-3.398,10.979-3.398h31.719C76.414,15.008,85,23.419,85,33.758V66.229z"/>
</g>
</g></g><g transform="translate(0,720) scale(2.8, 2.8)"><g transform="" style="fill: rgb(16, 64, 102);">
<g>
<path style="fill:none;" d="M65.859,15.008H34.141c-4.082,0-7.869,1.258-10.979,3.398c-2.419,1.665-4.428,3.864-5.848,6.421
C15.838,27.484,15,30.526,15,33.758v32.471c0,10.344,8.586,18.76,19.145,18.76L50,84.992l15.855-0.004
C76.414,84.988,85,76.572,85,66.229V33.758C85,23.419,76.414,15.008,65.859,15.008z"/>
<path d="M65.859,0.008H34.141h0C18.683,0.008,5.587,10.221,1.4,24.18c-0.433,1.444-0.771,2.928-1.006,4.445
C0.135,30.299,0,32.013,0,33.758v32.471c0,18.619,15.32,33.76,34.141,33.76L50,99.992l15.859-0.004
c18.82,0,34.141-15.141,34.141-33.76V33.758C100,15.148,84.68,0.008,65.859,0.008z M85,66.229c0,10.344-8.586,18.76-19.145,18.76
L50,84.992l-15.855-0.004C23.586,84.988,15,76.572,15,66.229V33.758c0-3.231,0.838-6.273,2.313-8.931
c1.42-2.557,3.429-4.756,5.848-6.421c3.11-2.141,6.897-3.398,10.979-3.398h31.719C76.414,15.008,85,23.419,85,33.758V66.229z"/>
</g>
</g></g><g transform="translate(80,80) scale(1.2, 1.2)"><g transform="" style="fill: rgb(16, 64, 102);">
<g>
<g id="XMLID_1_">
<g>
<path d="M27.351,100c-15.09,0-27.365-12.032-27.365-26.808V26.794c0-4.616,1.2-8.96,3.301-12.761
c2.029-3.658,4.901-6.802,8.36-9.174C16.09,1.801,21.506,0,27.336,0h45.327c15.076,0,27.351,12.018,27.351,26.793v46.398
c0,14.775-12.274,26.808-27.351,26.808H50H27.351z"/>
</g>
<g>
</g>
</g>
</g>
</g></g><g transform="translate(800,80) scale(1.2, 1.2)"><g transform="" style="fill: rgb(16, 64, 102);">
<g>
<g id="XMLID_1_">
<g>
<path d="M27.351,100c-15.09,0-27.365-12.032-27.365-26.808V26.794c0-4.616,1.2-8.96,3.301-12.761
c2.029-3.658,4.901-6.802,8.36-9.174C16.09,1.801,21.506,0,27.336,0h45.327c15.076,0,27.351,12.018,27.351,26.793v46.398
c0,14.775-12.274,26.808-27.351,26.808H50H27.351z"/>
</g>
<g>
</g>
</g>
</g>
</g></g><g transform="translate(80,800) scale(1.2, 1.2)"><g transform="" style="fill: rgb(16, 64, 102);">
<g>
<g id="XMLID_1_">
<g>
<path d="M27.351,100c-15.09,0-27.365-12.032-27.365-26.808V26.794c0-4.616,1.2-8.96,3.301-12.761
c2.029-3.658,4.901-6.802,8.36-9.174C16.09,1.801,21.506,0,27.336,0h45.327c15.076,0,27.351,12.018,27.351,26.793v46.398
c0,14.775-12.274,26.808-27.351,26.808H50H27.351z"/>
</g>
<g>
</g>
</g>
</g>
</g></g></g></svg>

After

Width:  |  Height:  |  Size: 34 KiB

View File

@ -0,0 +1,728 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="1155px" height="1155px" viewBox="0 0 1155 1155" enable-background="new 0 0 1155 1155" xml:space="preserve">
<rect x="0" y="0" width="1155" height="1155" fill="rgb(255,255,255)" /><g transform="translate(70,70)"><g transform="translate(280,0) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(315,0) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(455,0) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(490,0) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(525,0) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(595,0) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(280,35) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(315,35) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(455,35) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(490,35) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(525,35) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(595,35) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(665,35) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(700,35) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(280,70) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(385,70) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(455,70) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(490,70) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(630,70) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(385,105) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(490,105) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(525,105) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(595,105) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(280,140) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(315,140) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(350,140) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(455,140) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(525,140) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(630,140) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(665,140) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(350,175) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(420,175) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(455,175) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(490,175) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(595,175) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(630,175) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(700,175) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(280,210) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(350,210) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(420,210) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(490,210) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(560,210) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(630,210) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(700,210) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(315,245) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(385,245) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(490,245) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(665,245) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(0,280) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(105,280) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(140,280) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(175,280) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(210,280) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(245,280) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(280,280) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(350,280) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(455,280) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(490,280) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(525,280) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(560,280) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(595,280) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(665,280) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(735,280) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(840,280) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(910,280) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(945,280) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(980,280) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(70,315) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(105,315) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(175,315) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(245,315) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(280,315) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(490,315) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(630,315) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(665,315) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(805,315) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(840,315) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(910,315) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(945,315) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(70,350) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(175,350) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(210,350) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(385,350) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(490,350) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(595,350) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(700,350) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(770,350) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(805,350) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(910,350) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(0,385) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(35,385) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(70,385) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(105,385) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(140,385) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(175,385) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(245,385) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(280,385) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(315,385) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(350,385) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(385,385) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(420,385) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(490,385) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(525,385) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(595,385) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(665,385) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(700,385) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(770,385) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(980,385) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(105,420) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(175,420) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(210,420) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(245,420) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(280,420) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(315,420) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(350,420) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(455,420) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(490,420) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(665,420) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(770,420) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(805,420) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(980,420) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(70,455) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(105,455) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(140,455) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(175,455) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(245,455) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(315,455) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(385,455) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(770,455) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(840,455) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(875,455) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(945,455) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(980,455) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(0,490) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(35,490) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(70,490) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(140,490) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(175,490) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(210,490) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(245,490) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(385,490) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(490,490) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(525,490) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(595,490) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(665,490) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(700,490) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(805,490) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(840,490) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(875,490) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(910,490) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(980,490) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(35,525) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(105,525) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(175,525) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(280,525) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(315,525) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(350,525) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(385,525) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(420,525) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(455,525) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(490,525) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(560,525) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(665,525) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(735,525) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(910,525) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(980,525) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(35,560) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(70,560) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(105,560) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(175,560) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(210,560) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(245,560) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(385,560) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(525,560) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(630,560) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(665,560) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(700,560) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(805,560) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(0,595) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(140,595) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(175,595) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(245,595) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(280,595) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(315,595) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(350,595) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(385,595) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(420,595) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(630,595) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(665,595) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(700,595) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(840,595) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(875,595) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(910,595) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(945,595) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(0,630) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(35,630) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(70,630) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(105,630) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(210,630) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(350,630) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(385,630) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(420,630) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(455,630) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(490,630) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(560,630) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(665,630) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(735,630) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(770,630) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(980,630) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(0,665) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(35,665) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(105,665) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(280,665) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(455,665) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(525,665) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(560,665) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(735,665) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(770,665) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(875,665) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(910,665) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(0,700) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(35,700) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(70,700) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(105,700) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(210,700) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(245,700) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(315,700) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(350,700) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(455,700) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(630,700) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(700,700) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(735,700) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(770,700) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(805,700) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(840,700) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(875,700) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(910,700) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(945,700) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(280,735) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(350,735) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(385,735) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(420,735) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(455,735) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(560,735) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(595,735) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(630,735) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(700,735) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(840,735) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(875,735) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(280,770) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(385,770) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(455,770) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(525,770) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(560,770) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(665,770) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(700,770) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(770,770) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(840,770) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(875,770) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(280,805) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(315,805) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(350,805) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(385,805) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(455,805) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(560,805) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(630,805) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(700,805) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(840,805) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(875,805) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(945,805) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(280,840) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(315,840) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(385,840) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(420,840) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(455,840) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(525,840) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(560,840) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(595,840) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(665,840) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(700,840) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(735,840) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(770,840) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(805,840) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(840,840) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(875,840) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(945,840) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(280,875) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(315,875) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(350,875) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(385,875) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(455,875) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(490,875) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(560,875) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(630,875) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(665,875) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(700,875) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(735,875) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(945,875) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(455,910) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(490,910) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(560,910) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(630,910) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(700,910) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(735,910) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(805,910) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(840,910) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(875,910) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(945,910) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(980,910) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(350,945) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(420,945) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(455,945) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(490,945) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(525,945) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(770,945) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(805,945) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(875,945) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(910,945) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(980,945) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(280,980) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(315,980) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(490,980) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(560,980) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(595,980) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(630,980) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(665,980) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(700,980) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(0,0) scale(2.45, 2.45)"><g transform="" style="fill: rgb(16, 64, 102);">
<g>
<path style="fill:none;" d="M65.859,15.008H34.141c-4.082,0-7.869,1.258-10.979,3.398c-2.419,1.665-4.428,3.864-5.848,6.421
C15.838,27.484,15,30.526,15,33.758v32.471c0,10.344,8.586,18.76,19.145,18.76L50,84.992l15.855-0.004
C76.414,84.988,85,76.572,85,66.229V33.758C85,23.419,76.414,15.008,65.859,15.008z"/>
<path d="M65.859,0.008H34.141h0C18.683,0.008,5.587,10.221,1.4,24.18c-0.433,1.444-0.771,2.928-1.006,4.445
C0.135,30.299,0,32.013,0,33.758v32.471c0,18.619,15.32,33.76,34.141,33.76L50,99.992l15.859-0.004
c18.82,0,34.141-15.141,34.141-33.76V33.758C100,15.148,84.68,0.008,65.859,0.008z M85,66.229c0,10.344-8.586,18.76-19.145,18.76
L50,84.992l-15.855-0.004C23.586,84.988,15,76.572,15,66.229V33.758c0-3.231,0.838-6.273,2.313-8.931
c1.42-2.557,3.429-4.756,5.848-6.421c3.11-2.141,6.897-3.398,10.979-3.398h31.719C76.414,15.008,85,23.419,85,33.758V66.229z"/>
</g>
</g></g><g transform="translate(770,0) scale(2.45, 2.45)"><g transform="" style="fill: rgb(16, 64, 102);">
<g>
<path style="fill:none;" d="M65.859,15.008H34.141c-4.082,0-7.869,1.258-10.979,3.398c-2.419,1.665-4.428,3.864-5.848,6.421
C15.838,27.484,15,30.526,15,33.758v32.471c0,10.344,8.586,18.76,19.145,18.76L50,84.992l15.855-0.004
C76.414,84.988,85,76.572,85,66.229V33.758C85,23.419,76.414,15.008,65.859,15.008z"/>
<path d="M65.859,0.008H34.141h0C18.683,0.008,5.587,10.221,1.4,24.18c-0.433,1.444-0.771,2.928-1.006,4.445
C0.135,30.299,0,32.013,0,33.758v32.471c0,18.619,15.32,33.76,34.141,33.76L50,99.992l15.859-0.004
c18.82,0,34.141-15.141,34.141-33.76V33.758C100,15.148,84.68,0.008,65.859,0.008z M85,66.229c0,10.344-8.586,18.76-19.145,18.76
L50,84.992l-15.855-0.004C23.586,84.988,15,76.572,15,66.229V33.758c0-3.231,0.838-6.273,2.313-8.931
c1.42-2.557,3.429-4.756,5.848-6.421c3.11-2.141,6.897-3.398,10.979-3.398h31.719C76.414,15.008,85,23.419,85,33.758V66.229z"/>
</g>
</g></g><g transform="translate(0,770) scale(2.45, 2.45)"><g transform="" style="fill: rgb(16, 64, 102);">
<g>
<path style="fill:none;" d="M65.859,15.008H34.141c-4.082,0-7.869,1.258-10.979,3.398c-2.419,1.665-4.428,3.864-5.848,6.421
C15.838,27.484,15,30.526,15,33.758v32.471c0,10.344,8.586,18.76,19.145,18.76L50,84.992l15.855-0.004
C76.414,84.988,85,76.572,85,66.229V33.758C85,23.419,76.414,15.008,65.859,15.008z"/>
<path d="M65.859,0.008H34.141h0C18.683,0.008,5.587,10.221,1.4,24.18c-0.433,1.444-0.771,2.928-1.006,4.445
C0.135,30.299,0,32.013,0,33.758v32.471c0,18.619,15.32,33.76,34.141,33.76L50,99.992l15.859-0.004
c18.82,0,34.141-15.141,34.141-33.76V33.758C100,15.148,84.68,0.008,65.859,0.008z M85,66.229c0,10.344-8.586,18.76-19.145,18.76
L50,84.992l-15.855-0.004C23.586,84.988,15,76.572,15,66.229V33.758c0-3.231,0.838-6.273,2.313-8.931
c1.42-2.557,3.429-4.756,5.848-6.421c3.11-2.141,6.897-3.398,10.979-3.398h31.719C76.414,15.008,85,23.419,85,33.758V66.229z"/>
</g>
</g></g><g transform="translate(70,70) scale(1.05, 1.05)"><g transform="" style="fill: rgb(16, 64, 102);">
<g>
<g id="XMLID_1_">
<g>
<path d="M27.351,100c-15.09,0-27.365-12.032-27.365-26.808V26.794c0-4.616,1.2-8.96,3.301-12.761
c2.029-3.658,4.901-6.802,8.36-9.174C16.09,1.801,21.506,0,27.336,0h45.327c15.076,0,27.351,12.018,27.351,26.793v46.398
c0,14.775-12.274,26.808-27.351,26.808H50H27.351z"/>
</g>
<g>
</g>
</g>
</g>
</g></g><g transform="translate(840,70) scale(1.05, 1.05)"><g transform="" style="fill: rgb(16, 64, 102);">
<g>
<g id="XMLID_1_">
<g>
<path d="M27.351,100c-15.09,0-27.365-12.032-27.365-26.808V26.794c0-4.616,1.2-8.96,3.301-12.761
c2.029-3.658,4.901-6.802,8.36-9.174C16.09,1.801,21.506,0,27.336,0h45.327c15.076,0,27.351,12.018,27.351,26.793v46.398
c0,14.775-12.274,26.808-27.351,26.808H50H27.351z"/>
</g>
<g>
</g>
</g>
</g>
</g></g><g transform="translate(70,840) scale(1.05, 1.05)"><g transform="" style="fill: rgb(16, 64, 102);">
<g>
<g id="XMLID_1_">
<g>
<path d="M27.351,100c-15.09,0-27.365-12.032-27.365-26.808V26.794c0-4.616,1.2-8.96,3.301-12.761
c2.029-3.658,4.901-6.802,8.36-9.174C16.09,1.801,21.506,0,27.336,0h45.327c15.076,0,27.351,12.018,27.351,26.793v46.398
c0,14.775-12.274,26.808-27.351,26.808H50H27.351z"/>
</g>
<g>
</g>
</g>
</g>
</g></g></g></svg>

After

Width:  |  Height:  |  Size: 50 KiB

View File

@ -0,0 +1,552 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="1160px" height="1160px" viewBox="0 0 1160 1160" enable-background="new 0 0 1160 1160" xml:space="preserve">
<rect x="0" y="0" width="1160" height="1160" fill="rgb(255,255,255)" /><g transform="translate(80,80)"><g transform="translate(320,0) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(360,0) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(440,0) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(560,0) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(640,0) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(320,40) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(480,40) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(320,80) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(400,80) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(520,80) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(560,80) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(600,80) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(400,120) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(440,120) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(520,120) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(600,120) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(640,120) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(320,160) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(360,160) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(400,160) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(480,160) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(640,160) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(360,200) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(400,200) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(440,200) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(480,200) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(520,200) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(560,200) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(320,240) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(400,240) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(480,240) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(560,240) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(640,240) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(440,280) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(520,280) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(560,280) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(0,320) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(120,320) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(160,320) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(200,320) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(240,320) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(280,320) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(320,320) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(360,320) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(400,320) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(480,320) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(560,320) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(600,320) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(640,320) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(680,320) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(800,320) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(880,320) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(920,320) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(960,320) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(0,360) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(40,360) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(120,360) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(280,360) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(320,360) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(360,360) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(400,360) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(440,360) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(480,360) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(520,360) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(560,360) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(600,360) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(760,360) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(800,360) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(840,360) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(880,360) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(920,360) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(80,400) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(160,400) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(240,400) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(480,400) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(560,400) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(600,400) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(640,400) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(680,400) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(760,400) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(840,400) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(960,400) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(80,440) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(120,440) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(160,440) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(200,440) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(440,440) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(560,440) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(600,440) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(640,440) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(760,440) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(800,440) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(840,440) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(880,440) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(920,440) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(960,440) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(200,480) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(240,480) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(280,480) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(400,480) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(440,480) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(600,480) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(640,480) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(720,480) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(760,480) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(960,480) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(0,520) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(80,520) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(280,520) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(320,520) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(360,520) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(400,520) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(480,520) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(600,520) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(640,520) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(800,520) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(920,520) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(0,560) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(40,560) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(80,560) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(160,560) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(240,560) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(280,560) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(360,560) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(600,560) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(760,560) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(840,560) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(880,560) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(920,560) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(960,560) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(0,600) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(80,600) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(160,600) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(200,600) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(320,600) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(400,600) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(480,600) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(560,600) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(600,600) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(680,600) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(720,600) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(760,600) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(880,600) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(960,600) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(0,640) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(80,640) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(160,640) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(240,640) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(280,640) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(320,640) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(360,640) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(400,640) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(440,640) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(480,640) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(520,640) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(560,640) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(640,640) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(680,640) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(720,640) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(760,640) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(800,640) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(880,640) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(920,640) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(320,680) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(360,680) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(400,680) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(440,680) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(520,680) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(640,680) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(800,680) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(920,680) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(320,720) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(360,720) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(400,720) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(480,720) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(640,720) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(720,720) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(800,720) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(840,720) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(960,720) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(320,760) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(400,760) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(440,760) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(520,760) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(600,760) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(640,760) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(800,760) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(320,800) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(360,800) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(440,800) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(520,800) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(600,800) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(640,800) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(680,800) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(720,800) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(760,800) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(800,800) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(840,800) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(920,800) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(960,800) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(320,840) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(360,840) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(400,840) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(480,840) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(520,840) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(560,840) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(640,840) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(720,840) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(840,840) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(920,840) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(960,840) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(400,880) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(440,880) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(520,880) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(640,880) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(680,880) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(760,880) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(800,880) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(880,880) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(920,880) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(960,880) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(440,920) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(480,920) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(520,920) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(760,920) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(800,920) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(880,920) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(920,920) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(960,920) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(320,960) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(360,960) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(400,960) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(440,960) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(480,960) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(520,960) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(640,960) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(680,960) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(840,960) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(960,960) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
<rect width="100" height="100"/>
</g></g><g transform="translate(0,0) scale(2.8, 2.8)"><g transform="" style="fill: rgb(16, 64, 102);">
<g>
<path style="fill:none;" d="M65.859,15.008H34.141c-4.082,0-7.869,1.258-10.979,3.398c-2.419,1.665-4.428,3.864-5.848,6.421
C15.838,27.484,15,30.526,15,33.758v32.471c0,10.344,8.586,18.76,19.145,18.76L50,84.992l15.855-0.004
C76.414,84.988,85,76.572,85,66.229V33.758C85,23.419,76.414,15.008,65.859,15.008z"/>
<path d="M65.859,0.008H34.141h0C18.683,0.008,5.587,10.221,1.4,24.18c-0.433,1.444-0.771,2.928-1.006,4.445
C0.135,30.299,0,32.013,0,33.758v32.471c0,18.619,15.32,33.76,34.141,33.76L50,99.992l15.859-0.004
c18.82,0,34.141-15.141,34.141-33.76V33.758C100,15.148,84.68,0.008,65.859,0.008z M85,66.229c0,10.344-8.586,18.76-19.145,18.76
L50,84.992l-15.855-0.004C23.586,84.988,15,76.572,15,66.229V33.758c0-3.231,0.838-6.273,2.313-8.931
c1.42-2.557,3.429-4.756,5.848-6.421c3.11-2.141,6.897-3.398,10.979-3.398h31.719C76.414,15.008,85,23.419,85,33.758V66.229z"/>
</g>
</g></g><g transform="translate(720,0) scale(2.8, 2.8)"><g transform="" style="fill: rgb(16, 64, 102);">
<g>
<path style="fill:none;" d="M65.859,15.008H34.141c-4.082,0-7.869,1.258-10.979,3.398c-2.419,1.665-4.428,3.864-5.848,6.421
C15.838,27.484,15,30.526,15,33.758v32.471c0,10.344,8.586,18.76,19.145,18.76L50,84.992l15.855-0.004
C76.414,84.988,85,76.572,85,66.229V33.758C85,23.419,76.414,15.008,65.859,15.008z"/>
<path d="M65.859,0.008H34.141h0C18.683,0.008,5.587,10.221,1.4,24.18c-0.433,1.444-0.771,2.928-1.006,4.445
C0.135,30.299,0,32.013,0,33.758v32.471c0,18.619,15.32,33.76,34.141,33.76L50,99.992l15.859-0.004
c18.82,0,34.141-15.141,34.141-33.76V33.758C100,15.148,84.68,0.008,65.859,0.008z M85,66.229c0,10.344-8.586,18.76-19.145,18.76
L50,84.992l-15.855-0.004C23.586,84.988,15,76.572,15,66.229V33.758c0-3.231,0.838-6.273,2.313-8.931
c1.42-2.557,3.429-4.756,5.848-6.421c3.11-2.141,6.897-3.398,10.979-3.398h31.719C76.414,15.008,85,23.419,85,33.758V66.229z"/>
</g>
</g></g><g transform="translate(0,720) scale(2.8, 2.8)"><g transform="" style="fill: rgb(16, 64, 102);">
<g>
<path style="fill:none;" d="M65.859,15.008H34.141c-4.082,0-7.869,1.258-10.979,3.398c-2.419,1.665-4.428,3.864-5.848,6.421
C15.838,27.484,15,30.526,15,33.758v32.471c0,10.344,8.586,18.76,19.145,18.76L50,84.992l15.855-0.004
C76.414,84.988,85,76.572,85,66.229V33.758C85,23.419,76.414,15.008,65.859,15.008z"/>
<path d="M65.859,0.008H34.141h0C18.683,0.008,5.587,10.221,1.4,24.18c-0.433,1.444-0.771,2.928-1.006,4.445
C0.135,30.299,0,32.013,0,33.758v32.471c0,18.619,15.32,33.76,34.141,33.76L50,99.992l15.859-0.004
c18.82,0,34.141-15.141,34.141-33.76V33.758C100,15.148,84.68,0.008,65.859,0.008z M85,66.229c0,10.344-8.586,18.76-19.145,18.76
L50,84.992l-15.855-0.004C23.586,84.988,15,76.572,15,66.229V33.758c0-3.231,0.838-6.273,2.313-8.931
c1.42-2.557,3.429-4.756,5.848-6.421c3.11-2.141,6.897-3.398,10.979-3.398h31.719C76.414,15.008,85,23.419,85,33.758V66.229z"/>
</g>
</g></g><g transform="translate(80,80) scale(1.2, 1.2)"><g transform="" style="fill: rgb(16, 64, 102);">
<g>
<g id="XMLID_1_">
<g>
<path d="M27.351,100c-15.09,0-27.365-12.032-27.365-26.808V26.794c0-4.616,1.2-8.96,3.301-12.761
c2.029-3.658,4.901-6.802,8.36-9.174C16.09,1.801,21.506,0,27.336,0h45.327c15.076,0,27.351,12.018,27.351,26.793v46.398
c0,14.775-12.274,26.808-27.351,26.808H50H27.351z"/>
</g>
<g>
</g>
</g>
</g>
</g></g><g transform="translate(800,80) scale(1.2, 1.2)"><g transform="" style="fill: rgb(16, 64, 102);">
<g>
<g id="XMLID_1_">
<g>
<path d="M27.351,100c-15.09,0-27.365-12.032-27.365-26.808V26.794c0-4.616,1.2-8.96,3.301-12.761
c2.029-3.658,4.901-6.802,8.36-9.174C16.09,1.801,21.506,0,27.336,0h45.327c15.076,0,27.351,12.018,27.351,26.793v46.398
c0,14.775-12.274,26.808-27.351,26.808H50H27.351z"/>
</g>
<g>
</g>
</g>
</g>
</g></g><g transform="translate(80,800) scale(1.2, 1.2)"><g transform="" style="fill: rgb(16, 64, 102);">
<g>
<g id="XMLID_1_">
<g>
<path d="M27.351,100c-15.09,0-27.365-12.032-27.365-26.808V26.794c0-4.616,1.2-8.96,3.301-12.761
c2.029-3.658,4.901-6.802,8.36-9.174C16.09,1.801,21.506,0,27.336,0h45.327c15.076,0,27.351,12.018,27.351,26.793v46.398
c0,14.775-12.274,26.808-27.351,26.808H50H27.351z"/>
</g>
<g>
</g>
</g>
</g>
</g></g></g></svg>

After

Width:  |  Height:  |  Size: 37 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 80 KiB

View File

@ -0,0 +1 @@
<svg id="icons" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128"><defs><style>.cls-1{fill:#b7e29c;}.cls-2{fill:#97cc83;}.cls-3{fill:#f4d647;}.cls-4{fill:#f4a742;}.cls-5{fill:#5282ef;}.cls-6{fill:#a2bdf4;}.cls-7{fill:none;stroke:#000;stroke-linecap:round;stroke-linejoin:round;stroke-width:2px;}</style></defs><title>safety-glasses</title><path class="cls-1" d="M48,37a33.319,33.319,0,0,1,8.56,1.083A27.63,27.63,0,0,0,64,39a27.643,27.643,0,0,0,7.44-.917A33.308,33.308,0,0,1,80,37h22.474a1,1,0,0,0,.85-1.536C96.759,24.828,84.651,18,64,18S31.241,24.828,24.675,35.464A1,1,0,0,0,25.526,37Z"/><path class="cls-1" d="M90,91c-15.884,0-19.965-7.631-22.665-12.681C65.561,75,64.656,75,64,75s-1.56,0-3.335,3.319C57.964,83.369,53.883,91,38,91c-5.978,0-10.526-1.4-13.985-3.723a1,1,0,0,0-1.487,1.229C28.428,101.418,40.846,110,64,110s35.572-8.582,41.473-21.495a1,1,0,0,0-1.487-1.229C100.526,89.6,95.978,91,90,91Z"/><path class="cls-2" d="M67.33,78.32a26.676,26.676,0,0,0,4.57,6.64,282.35,282.35,0,0,0-15.14,24.73C38.2,108.07,27.78,100,22.53,88.51a1,1,0,0,1,1.48-1.23C27.47,89.6,32.02,91,38,91c15.88,0,19.96-7.63,22.67-12.68C62.44,75,63.34,75,64,75S65.56,75,67.33,78.32Z"/><path class="cls-2" d="M102.47,37H80a33.7,33.7,0,0,0-8.56,1.08c-.89.21-1.73.41-2.67.57A170.727,170.727,0,0,1,91.95,24.34a32.506,32.506,0,0,1,11.37,11.12A1,1,0,0,1,102.47,37Z"/><g id="_Group_" data-name="&lt;Group&gt;"><path class="cls-3" d="M113,46v4a2.006,2.006,0,0,1-2,2h-4.33c-.23,0-.45-.01-.68-.02a11.881,11.881,0,0,1-2.59-.43l-7.39-2.1A12,12,0,0,0,92.74,49s-10.25,2.86-27.5,2.99h-.01c-.41.01-.82.01-1.23.01-5.4,0-10.14-.27-14.14-.65h-.01A91.913,91.913,0,0,1,35.26,49a12,12,0,0,0-3.27.45l-7.39,2.1a11.881,11.881,0,0,1-2.59.43c-.23.01-.45.02-.68.02H17a2.006,2.006,0,0,1-2-2V46a4,4,0,0,1,4-4H48c7,0,8,2,16,2s9-2,16-2h29A4,4,0,0,1,113,46Z"/><path class="cls-4" d="M106.67,52h3.32c0,17-1.04,34-19.99,34C68,86,75,70,64,70S60,86,38,86C19.05,86,18.01,69,18.01,52h3.32c.23,0,.45-.01.68-.02V52c0,7.02.29,12.77,1.22,17.29a21.68,21.68,0,0,0,2.42,6.75C28.03,80.04,31.88,82,38,82c10.49,0,12.45-3.67,14.73-7.92C54.55,70.67,57.05,66,64,66s9.45,4.67,11.27,8.08C77.55,78.33,79.51,82,90,82c13.6,0,15.99-9.67,15.99-30v-.02C106.22,51.99,106.44,52,106.67,52Z"/><path class="cls-5" d="M105.99,51.98V52c0,20.33-2.39,30-15.99,30-10.49,0-12.45-3.67-14.73-7.92C73.45,70.67,70.95,66,64,66s-9.45,4.67-11.27,8.08C50.45,78.33,48.49,82,38,82c-6.12,0-9.97-1.96-12.35-5.96,6.37-7.39,18.66-18.12,39.58-24.05h.01C82.49,51.86,92.74,49,92.74,49a12,12,0,0,1,3.27.45l7.39,2.1A11.881,11.881,0,0,0,105.99,51.98Z"/><path class="cls-6" d="M64,52c.41,0,.82,0,1.23-.01C44.31,57.92,32.02,68.65,25.65,76.04a21.68,21.68,0,0,1-2.42-6.75A60.754,60.754,0,0,1,49.85,51.35h.01C53.86,51.73,58.6,52,64,52Z"/><path class="cls-5" d="M35.26,49a91.913,91.913,0,0,0,14.59,2.35A60.754,60.754,0,0,0,23.23,69.29C22.3,64.77,22.01,59.02,22.01,52v-.02a11.881,11.881,0,0,0,2.59-.43l7.39-2.1A12,12,0,0,1,35.26,49Z"/><path class="cls-7" d="M18.01,52c0,17,1.04,34,19.99,34,22,0,15-16,26-16s4,16,26,16c18.95,0,19.99-17,19.99-34"/><path class="cls-7" d="M65.24,51.99C82.49,51.86,92.74,49,92.74,49a12,12,0,0,1,3.27.45l7.39,2.1a11.881,11.881,0,0,0,2.59.43c.23.01.45.02.68.02H111a2.006,2.006,0,0,0,2-2V46a4,4,0,0,0-4-4H80c-7,0-8,2-16,2s-9-2-16-2H19a4,4,0,0,0-4,4v4a2.006,2.006,0,0,0,2,2h4.33c.23,0,.45-.01.68-.02a11.881,11.881,0,0,0,2.59-.43l7.39-2.1A12,12,0,0,1,35.26,49a91.913,91.913,0,0,0,14.59,2.35"/><path class="cls-7" d="M49.86,51.35c4,.38,8.74.65,14.14.65.41,0,.82,0,1.23-.01"/><path class="cls-7" d="M105.99,51.98V52c0,20.33-2.39,30-15.99,30-10.49,0-12.45-3.67-14.73-7.92C73.45,70.67,70.95,66,64,66s-9.45,4.67-11.27,8.08C50.45,78.33,48.49,82,38,82c-6.12,0-9.97-1.96-12.35-5.96a21.68,21.68,0,0,1-2.42-6.75C22.3,64.77,22.01,59.02,22.01,52v-.02"/><path class="cls-7" d="M23.23,69.29A60.754,60.754,0,0,1,49.85,51.35h.01"/><path class="cls-7" d="M25.65,76.04c6.37-7.39,18.66-18.12,39.58-24.05h.01"/></g></svg>

After

Width:  |  Height:  |  Size: 3.8 KiB

View File

@ -0,0 +1,247 @@
html
{
background-color: rgb(51, 51, 51);
font-family: sans-serif;
padding-bottom: 50px;
}
#HEADLINE
{
font-family:'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif;
text-align: center;
color: white;
background-color: rgb(1, 115, 126);
box-shadow: 0px 15px 0px -5px rgb(1, 89, 97);
margin-top: 2px;
}
#LOGO
{
height: 1em;
width: auto;
float: right;
margin-top: 2px;
padding-left: 12px;
padding-right: 12px;
background-color: inherit;
}
.mini-heads
{
color: white;
font-weight: 700;
}
#LEFT
{
float: left;
max-width: 49.5%;
text-align: center;
}
#RIGHT
{
float: right;
max-width: 49.5%;
flex-direction: row;
text-align: center;
}
.qr
{
max-width: 59.5%;
height: auto;
object-fit: cover;
border-color: black;
border: 3px solid;
border-radius: 10%;
}
.qr_2
{
width: 35%;
height: auto;
}
table, td
{
color: white;
width: 70%;
line-height: 190%;
border: 1px solid rgb(76, 76, 76);
background-color: rgb(34, 34, 34);
border-collapse: collapse;
margin-left: auto;
margin-right: auto;
}
#SPACE
{
padding: 3px;
}
#NORM_SET
{
padding-top: 6px;
}
.link
{
color: white;
background-color: rgb(1, 115, 126);
padding-left: 10px;
padding-right: 10px;
border-radius: 3px;
text-decoration: none;
}
.link:hover
{
color: rgb(206, 206, 206);
}
.link:visited
{
color: rgb(75, 75, 75);
background-color: rgb(1, 89, 97);
}
.info
{
color: white;
background-color: rgb(34, 34, 34);
padding-top: 3px;
padding-right: 6px;
text-indent: 6px;
position: fixed;
bottom: 0px;
right: 6px;
border: 1px solid rgb(76, 76, 76);
}
.info:hover
{
cursor: pointer;
}
.info:visited
{
color: rgb(206, 206, 206);
}
a, a:visited, a:hover, a:active {
text-decoration: none;
color: inherit;
}
/* Phone */ /* pract. ab 400% zoom (inludkiert) am pc */
@media only screen and (max-width : 480px)
{
#LEFT
{
width: 100%;
max-width: none;
clear: both;
text-align: center;
}
#RIGHT
{
max-width: none;
padding-top: 10px;
}
.qr
{
max-width: 43.9%;
}
.qr_2
{
width: 29%;
}
}
/* Tablet / Ipad */ /* pract. ab 200% Zoom (nicht inkludiert) am pc */
@media only screen and (max-width : 767px) and (min-width: 481px)
{
#LEFT
{
max-width: none;
width: 100%;
clear: both;
text-align: center;
}
.qr
{
max-width: 35%;
}
table td
{
font-size: large;
}
.mini-heads
{
font-size: x-large;
}
#RIGHT
{
max-width: none;
}
#SPACE
{
padding: none;
display: none;
}
#BLOCK_ONE
{
max-width: 49.5%;
float: left;
}
#BLOCK_TWO
{
max-width: 49.5%;
float: right;
}
#BLOCK_THREE
{
max-width: 49.5%;
float: right;
}
.qr_2
{
max-width: 80%;
width: 50%;
}
.link
{
font-size: larger;
}
.info
{
font-size: larger;
}
}

View File

@ -0,0 +1 @@
<svg id="icons" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128"><defs><style>.cls-1{fill:#9addf7;}.cls-2{fill:#65c7e5;}.cls-3{fill:#cbccd3;}.cls-4{fill:#a5a7ad;}.cls-5{fill:none;stroke:#000;stroke-linecap:round;stroke-linejoin:round;stroke-width:2px;}.cls-6{opacity:0.16;}</style></defs><title>wrench</title><path class="cls-1" d="M108.91,50.84a1,1,0,0,0-1.57-.62c-5.62,4.09-10.88,5.38-15.64,6.53-3.79.92-7.06,1.71-10.22,3.9a19.456,19.456,0,0,0-3.84,3.7C66.47,78.2,51.65,95.15,42.5,105.22a1,1,0,0,0,.42,1.62A63.082,63.082,0,0,0,64,110a78.244,78.244,0,0,0,8.64-.45,49.668,49.668,0,0,0,17.25-4.75C105.07,97.12,110,81.74,110,64A74.515,74.515,0,0,0,108.91,50.84ZM73.98,18.61A77.519,77.519,0,0,0,64,18c-9.06,0-16.47,1.31-22.5,3.69A33.934,33.934,0,0,0,26.95,32.2C20.39,40.47,18,51.67,18,64a65.914,65.914,0,0,0,2.58,19.37.993.993,0,0,0,1.63.42c4.55-4.21,10.43-9.52,16.74-15.09,2.68-2.37,5.44-4.78,8.21-7.18,5.14-4.45,10.32-8.84,15.12-12.78a19.294,19.294,0,0,0,3.03-3.05c3.47-4.53,3.86-8.9,4.24-13.12.34-3.79.68-7.71,3.6-10.65l1.46-1.66A1,1,0,0,0,73.98,18.61Z"/><path class="cls-2" d="M45.74,30.99l-4.01,7A2,2,0,0,1,39.99,39H32.01a2,2,0,0,1-1.74-1.01L26.95,32.2A33.934,33.934,0,0,1,41.5,21.69a1.858,1.858,0,0,1,.23.32l4.01,7A2,2,0,0,1,45.74,30.99Z"/><path class="cls-2" d="M94.993,70.5H91.007a2,2,0,0,0-1.735,1.006l-2.006,3.5a2,2,0,0,0,0,1.989l2.006,3.5A2,2,0,0,0,91.007,81.5h3.985a2,2,0,0,0,1.735-1.006l2.006-3.5a2,2,0,0,0,0-1.989l-2.006-3.5A2,2,0,0,0,94.993,70.5Z"/><path class="cls-2" d="M47.16,61.52c-2.77,2.4-5.53,4.81-8.21,7.18a1.934,1.934,0,0,1-.68-.71l-2.01-3.5a2,2,0,0,1,0-1.98l2.01-3.5A2,2,0,0,1,40.01,58h3.98a2,2,0,0,1,1.74,1.01Z"/><path class="cls-2" d="M89.89,104.8a49.668,49.668,0,0,1-17.25,4.75l-1.53-5.65a1.991,1.991,0,0,1,.51-1.94l5.65-5.65a2,2,0,0,1,1.94-.52L87,97.9a2.011,2.011,0,0,1,1.4,1.41Z"/><g id="_Group_" data-name="&lt;Group&gt;"><path class="cls-3" d="M92.89,42l-1.76,3.63c-.04.08-.08.16-.13.24a1.986,1.986,0,0,1-1.47.88,1.574,1.574,0,0,1-.53-.01,1.721,1.721,0,0,1-.54-.18l-.85-.42-.61-.3-1.18-.58-1.8-.88L83,43.88l-.78-.38-.97-.48a1.274,1.274,0,0,1-.25-.15,1.869,1.869,0,0,1-.47-.46,2.012,2.012,0,0,1-.2-2.09L81,38.93l1.09-2.25a1.98,1.98,0,0,1,.91-.92,2.107,2.107,0,0,1,.73-.21,1.9,1.9,0,0,1,1.03.2l.24.12.63.31,1.37.67.43.21,1.57.78.23.11,1.77.87.02.01.95.47a2.03,2.03,0,0,1,.92,2.7Z"/><path class="cls-3" d="M94.4,16.02a2,2,0,0,1,1.66,2.86L90.14,31.7,79.35,26.67a15.038,15.038,0,0,1,3.72-6.24A14.881,14.881,0,0,1,94.4,16.02Z"/><path class="cls-4" d="M111.47,22.16c1.8,5.55,3.17,14.29-2.91,20.43-11.01,11.11-20.5,7.4-29.93,13.96a23.949,23.949,0,0,0-4.88,4.66C58.54,80.07,37.58,103.5,32.09,109.04a9.941,9.941,0,0,1-14.16,0,10.171,10.171,0,0,1,0-14.29c5.5-5.55,28.81-26.79,47.52-42.15a24.047,24.047,0,0,0,3.82-3.86c7.55-9.83,3.53-19.36,7.43-23.3l2.65,1.23L90.14,31.7l4.02,1.87a4.013,4.013,0,0,0,1.99.36l5.43-.42a4.014,4.014,0,0,0,3.53-2.86l2.54-8.43A2,2,0,0,1,111.47,22.16ZM92.89,42a2.032,2.032,0,0,0-.92-2.7l-7.21-3.55a1.987,1.987,0,0,0-2.67.93l-1.76,3.64a2.035,2.035,0,0,0,.92,2.7l7.21,3.54a1.979,1.979,0,0,0,2.67-.93ZM25.02,106A3.952,3.952,0,0,0,29,102.02,4.046,4.046,0,0,0,24.98,98,3.952,3.952,0,0,0,21,101.98,4.046,4.046,0,0,0,25.02,106Z"/><path class="cls-5" d="M79.35,26.67,76.7,25.44c-3.9,3.94.12,13.47-7.43,23.3a24.047,24.047,0,0,1-3.82,3.86C46.74,67.96,23.43,89.2,17.93,94.75a10.171,10.171,0,0,0,0,14.29,9.941,9.941,0,0,0,14.16,0c5.49-5.54,26.45-28.97,41.66-47.83a23.949,23.949,0,0,1,4.88-4.66c9.43-6.56,18.92-2.85,29.93-13.96,6.08-6.14,4.71-14.88,2.91-20.43a2,2,0,0,0-3.82.06l-2.54,8.43a4.014,4.014,0,0,1-3.53,2.86l-5.43.42a4.013,4.013,0,0,1-1.99-.36L90.14,31.7Z"/><path class="cls-5" d="M21,101.98A3.952,3.952,0,0,1,24.98,98,4.046,4.046,0,0,1,29,102.02,3.952,3.952,0,0,1,25.02,106,4.046,4.046,0,0,1,21,101.98Z"/><path class="cls-5" d="M79.35,26.67a15.038,15.038,0,0,1,3.72-6.24A14.881,14.881,0,0,1,94.4,16.02a2,2,0,0,1,1.66,2.86L90.14,31.7"/><path class="cls-5" d="M80.33,40.32l1.76-3.64a1.987,1.987,0,0,1,2.67-.93l7.21,3.55a2.032,2.032,0,0,1,.92,2.7l-1.76,3.63a1.979,1.979,0,0,1-2.67.93l-7.21-3.54A2.035,2.035,0,0,1,80.33,40.32Z"/><line class="cls-5" x1="86.72" y1="36.71" x2="83.3" y2="44.03"/><line class="cls-5" x1="90.31" y1="38.48" x2="86.9" y2="45.79"/></g><g class="cls-6"><path d="M30.172,91.172,58.879,63.879a3,3,0,0,1,4.243,4.243L35.828,96.828a4,4,0,0,1-5.8-5.514C30.072,91.269,30.127,91.215,30.172,91.172Z"/></g></svg>

After

Width:  |  Height:  |  Size: 4.3 KiB

View File

@ -0,0 +1,155 @@
{
"configById": {
"virtual-joystick.Virtual Joystick!26sdvuh": {
"topic": "/cmd_vel",
"publishRate": 60,
"maxLinearSpeed": 0.5,
"maxAngularSpeed": 2
},
"3D!18i6zy7": {
"layers": {
"845139cb-26bc-40b3-8161-8ab60af4baf5": {
"visible": true,
"frameLocked": true,
"label": "Grid",
"instanceId": "845139cb-26bc-40b3-8161-8ab60af4baf5",
"layerId": "foxglove.Grid",
"size": 10,
"divisions": 10,
"lineWidth": 1,
"color": "#248eff",
"position": [
0,
0,
0
],
"rotation": [
0,
0,
0
],
"order": 1
}
},
"cameraState": {
"distance": 20,
"perspective": true,
"phi": 60,
"target": [
0,
0,
0
],
"targetOffset": [
0,
0,
0
],
"targetOrientation": [
0,
0,
0,
1
],
"thetaOffset": 45,
"fovy": 45,
"near": 0.5,
"far": 5000
},
"followMode": "follow-pose",
"scene": {},
"transforms": {},
"topics": {},
"publish": {
"type": "point",
"poseTopic": "/move_base_simple/goal",
"pointTopic": "/clicked_point",
"poseEstimateTopic": "/initialpose",
"poseEstimateXDeviation": 0.5,
"poseEstimateYDeviation": 0.5,
"poseEstimateThetaDeviation": 0.26179939
},
"imageMode": {}
},
"Image!3mnp456": {
"cameraState": {
"distance": 20,
"perspective": true,
"phi": 60,
"target": [
0,
0,
0
],
"targetOffset": [
0,
0,
0
],
"targetOrientation": [
0,
0,
0,
1
],
"thetaOffset": 45,
"fovy": 45,
"near": 0.5,
"far": 5000
},
"followMode": "follow-pose",
"scene": {},
"transforms": {},
"topics": {},
"layers": {},
"publish": {
"type": "point",
"poseTopic": "/move_base_simple/goal",
"pointTopic": "/clicked_point",
"poseEstimateTopic": "/initialpose",
"poseEstimateXDeviation": 0.5,
"poseEstimateYDeviation": 0.5,
"poseEstimateThetaDeviation": 0.26179939
},
"imageMode": {}
},
"RawMessages!os6rgs": {
"diffEnabled": false,
"diffMethod": "custom",
"diffTopicPath": "",
"showFullMessageForDiff": false,
"topicPath": ""
},
"Battery Indicator.Battery display!3gjrnnu": {
"batteryTopic": "",
"topic": {
"batteryTopic": ""
}
}
},
"globalVariables": {},
"userNodes": {},
"playbackConfig": {
"speed": 1
},
"layout": {
"direction": "row",
"first": "virtual-joystick.Virtual Joystick!26sdvuh",
"second": {
"first": "3D!18i6zy7",
"second": {
"first": "Image!3mnp456",
"second": {
"first": "RawMessages!os6rgs",
"second": "Battery Indicator.Battery display!3gjrnnu",
"direction": "column",
"splitPercentage": 79.02494331065759
},
"direction": "column",
"splitPercentage": 30
},
"direction": "row",
"splitPercentage": 70
}
}
}

169
config/foxglove/index.html Normal file
View File

@ -0,0 +1,169 @@
<!doctype html><html><head><meta charset="utf-8"><meta name="apple-mobile-web-app-capable" content="yes"><title>Foxglove Studio</title><link rel="apple-touch-icon" sizes="180x180" href="apple-touch-icon.png"/><link rel="icon" type="image/png" sizes="32x32" href="favicon-32x32.png"/><link rel="icon" type="image/png" sizes="16x16" href="favicon-16x16.png"/><style id="loading-styles">body {
margin: 0;
}
#root {
height: 100vh;
background-color: #f4f4f5;
color: #393939;
}
@media (prefers-color-scheme: dark) {
#root {
background-color: #15151a};
color: #e1e1e4;
}
}</style><script defer="defer" src="main.c33a35baf28db3973be7.js"></script></head><script>global = globalThis;
globalThis.FOXGLOVE_STUDIO_DEFAULT_LAYOUT = [{
"configById": {
"virtual-joystick.Virtual Joystick!26sdvuh": {
"topic": "/cmd_vel",
"publishRate": 60,
"maxLinearSpeed": 0.5,
"maxAngularSpeed": 2
},
"3D!18i6zy7": {
"layers": {
"845139cb-26bc-40b3-8161-8ab60af4baf5": {
"visible": true,
"frameLocked": true,
"label": "Grid",
"instanceId": "845139cb-26bc-40b3-8161-8ab60af4baf5",
"layerId": "foxglove.Grid",
"size": 10,
"divisions": 10,
"lineWidth": 1,
"color": "#248eff",
"position": [
0,
0,
0
],
"rotation": [
0,
0,
0
],
"order": 1
}
},
"cameraState": {
"distance": 20,
"perspective": true,
"phi": 60,
"target": [
0,
0,
0
],
"targetOffset": [
0,
0,
0
],
"targetOrientation": [
0,
0,
0,
1
],
"thetaOffset": 45,
"fovy": 45,
"near": 0.5,
"far": 5000
},
"followMode": "follow-pose",
"scene": {},
"transforms": {},
"topics": {},
"publish": {
"type": "point",
"poseTopic": "/move_base_simple/goal",
"pointTopic": "/clicked_point",
"poseEstimateTopic": "/initialpose",
"poseEstimateXDeviation": 0.5,
"poseEstimateYDeviation": 0.5,
"poseEstimateThetaDeviation": 0.26179939
},
"imageMode": {}
},
"Image!3mnp456": {
"cameraState": {
"distance": 20,
"perspective": true,
"phi": 60,
"target": [
0,
0,
0
],
"targetOffset": [
0,
0,
0
],
"targetOrientation": [
0,
0,
0,
1
],
"thetaOffset": 45,
"fovy": 45,
"near": 0.5,
"far": 5000
},
"followMode": "follow-pose",
"scene": {},
"transforms": {},
"topics": {},
"layers": {},
"publish": {
"type": "point",
"poseTopic": "/move_base_simple/goal",
"pointTopic": "/clicked_point",
"poseEstimateTopic": "/initialpose",
"poseEstimateXDeviation": 0.5,
"poseEstimateYDeviation": 0.5,
"poseEstimateThetaDeviation": 0.26179939
},
"imageMode": {}
},
"RawMessages!os6rgs": {
"diffEnabled": false,
"diffMethod": "custom",
"diffTopicPath": "",
"showFullMessageForDiff": false,
"topicPath": ""
},
"Battery Indicator.Battery display!3gjrnnu": {
"batteryTopic": "",
"topic": {
"batteryTopic": ""
}
}
},
"globalVariables": {},
"userNodes": {},
"playbackConfig": {
"speed": 1
},
"layout": {
"direction": "row",
"first": "virtual-joystick.Virtual Joystick!26sdvuh",
"second": {
"first": "3D!18i6zy7",
"second": {
"first": "Image!3mnp456",
"second": {
"first": "RawMessages!os6rgs",
"second": "Battery Indicator.Battery display!3gjrnnu",
"direction": "column",
"splitPercentage": 79.02494331065759
},
"direction": "column",
"splitPercentage": 30
},
"direction": "row",
"splitPercentage": 70
}
}
}][0];</script><body><div id="root"></div></body></html>

504
config/nav2_params.yaml Normal file
View File

@ -0,0 +1,504 @@
slam_toolbox:
ros__parameters:
# Plugin params
solver_plugin: solver_plugins::CeresSolver
ceres_linear_solver: SPARSE_NORMAL_CHOLESKY
ceres_preconditioner: SCHUR_JACOBI
ceres_trust_strategy: LEVENBERG_MARQUARDT
ceres_dogleg_type: TRADITIONAL_DOGLEG
ceres_loss_function: None
# ROS Parameters
odom_frame: odom
map_frame: map
base_frame: base_footprint
scan_topic: /scan_filtered
mode: mapping #localization
# if you'd like to immediately start continuing a map at a given pose
# or at the dock, but they are mutually exclusive, if pose is given
# will use pose
#map_file_name: /home/bjorn/Documents/ros-projects/cps_bot_mini_ws/my_map_serial
# map_start_pose: [0.0, 0.0, 0.0]
map_start_at_dock: true
debug_logging: false
throttle_scans: 1
transform_publish_period: 0.02 #if 0 never publishes odometry
map_update_interval: 1.0 #was 5.0
resolution: 0.05
max_laser_range: 200.0 #for rastering images, standard was 20
minimum_time_interval: 0.5
transform_timeout: 0.2
tf_buffer_duration: 30.
stack_size_to_use: 40000000 #// program needs a larger stack size to serialize large maps
enable_interactive_mode: true
# General Parameters
use_scan_matching: true
use_scan_barycenter: true
minimum_travel_distance: 0.5
minimum_travel_heading: 0.5
scan_buffer_size: 10
scan_buffer_maximum_scan_distance: 10.0
link_match_minimum_response_fine: 0.1
link_scan_maximum_distance: 1.5
loop_search_maximum_distance: 3.0
do_loop_closing: true
loop_match_minimum_chain_size: 10
loop_match_maximum_variance_coarse: 3.0
loop_match_minimum_response_coarse: 0.35
loop_match_minimum_response_fine: 0.45
# Correlation Parameters - Correlation Parameters
correlation_search_space_dimension: 0.5
correlation_search_space_resolution: 0.01
correlation_search_space_smear_deviation: 0.1
# Correlation Parameters - Loop Closure Parameters
loop_search_space_dimension: 8.0
loop_search_space_resolution: 0.05
loop_search_space_smear_deviation: 0.03
# Scan Matcher Parameters
distance_variance_penalty: 0.5
angle_variance_penalty: 1.0
fine_search_angle_offset: 0.00349
coarse_search_angle_offset: 0.349
coarse_angle_resolution: 0.0349
minimum_angle_penalty: 0.9
minimum_distance_penalty: 0.5
use_response_expansion: true
amcl:
ros__parameters:
use_sim_time: True
alpha1: 0.2
alpha2: 0.2
alpha3: 0.2
alpha4: 0.2
alpha5: 0.2
base_frame_id: "base_footprint"
beam_skip_distance: 0.5
beam_skip_error_threshold: 0.9
beam_skip_threshold: 0.3
do_beamskip: false
global_frame_id: "map"
lambda_short: 0.1
laser_likelihood_max_dist: 2.0
laser_max_range: 7.0 #was 100.0
laser_min_range: -1.0
laser_model_type: "likelihood_field"
max_beams: 60
max_particles: 2000
min_particles: 500
odom_frame_id: "odom"
pf_err: 0.05
pf_z: 0.99
recovery_alpha_fast: 0.0
recovery_alpha_slow: 0.0
resample_interval: 1
robot_model_type: "nav2_amcl::DifferentialMotionModel"
save_pose_rate: 0.5
sigma_hit: 0.2
tf_broadcast: true
transform_tolerance: 1.0
update_min_a: 0.2
update_min_d: 0.25
z_hit: 0.5
z_max: 0.05
z_rand: 0.5
z_short: 0.05
scan_topic: scan_filtered
bt_navigator:
ros__parameters:
use_sim_time: True
global_frame: map
robot_base_frame: base_link
odom_topic: /odometry/filtered
bt_loop_duration: 10
default_server_timeout: 20
# 'default_nav_through_poses_bt_xml' and 'default_nav_to_pose_bt_xml' are use defaults:
# nav2_bt_navigator/navigate_to_pose_w_replanning_and_recovery.xml
# nav2_bt_navigator/navigate_through_poses_w_replanning_and_recovery.xml
# They can be set here or via a RewrittenYaml remap from a parent launch file to Nav2.
plugin_lib_names:
- nav2_compute_path_to_pose_action_bt_node
- nav2_compute_path_through_poses_action_bt_node
- nav2_smooth_path_action_bt_node
- nav2_follow_path_action_bt_node
- nav2_spin_action_bt_node
- nav2_wait_action_bt_node
- nav2_assisted_teleop_action_bt_node
- nav2_back_up_action_bt_node
- nav2_drive_on_heading_bt_node
- nav2_clear_costmap_service_bt_node
- nav2_is_stuck_condition_bt_node
- nav2_goal_reached_condition_bt_node
- nav2_goal_updated_condition_bt_node
- nav2_globally_updated_goal_condition_bt_node
- nav2_is_path_valid_condition_bt_node
- nav2_initial_pose_received_condition_bt_node
- nav2_reinitialize_global_localization_service_bt_node
- nav2_rate_controller_bt_node
- nav2_distance_controller_bt_node
- nav2_speed_controller_bt_node
- nav2_truncate_path_action_bt_node
- nav2_truncate_path_local_action_bt_node
- nav2_goal_updater_node_bt_node
- nav2_recovery_node_bt_node
- nav2_pipeline_sequence_bt_node
- nav2_round_robin_node_bt_node
- nav2_transform_available_condition_bt_node
- nav2_time_expired_condition_bt_node
- nav2_path_expiring_timer_condition
- nav2_distance_traveled_condition_bt_node
- nav2_single_trigger_bt_node
- nav2_goal_updated_controller_bt_node
- nav2_is_battery_low_condition_bt_node
- nav2_navigate_through_poses_action_bt_node
- nav2_navigate_to_pose_action_bt_node
- nav2_remove_passed_goals_action_bt_node
- nav2_planner_selector_bt_node
- nav2_controller_selector_bt_node
- nav2_goal_checker_selector_bt_node
- nav2_controller_cancel_bt_node
- nav2_path_longer_on_approach_bt_node
- nav2_wait_cancel_bt_node
- nav2_spin_cancel_bt_node
- nav2_back_up_cancel_bt_node
- nav2_assisted_teleop_cancel_bt_node
- nav2_drive_on_heading_cancel_bt_node
- nav2_is_battery_charging_condition_bt_node
bt_navigator_navigate_through_poses_rclcpp_node:
ros__parameters:
use_sim_time: True
bt_navigator_navigate_to_pose_rclcpp_node:
ros__parameters:
use_sim_time: True
# controller_server:
# ros__parameters:
# use_sim_time: True
# controller_frequency: 20.0
# min_x_velocity_threshold: 0.001
# min_y_velocity_threshold: 0.5
# min_theta_velocity_threshold: 0.001
# failure_tolerance: 0.3
# progress_checker_plugin: "progress_checker"
# goal_checker_plugins: ["general_goal_checker"] # "precise_goal_checker"
# controller_plugins: ["FollowPath"]
# # Progress checker parameters
# progress_checker:
# plugin: "nav2_controller::SimpleProgressChecker"
# required_movement_radius: 0.5
# movement_time_allowance: 10.0
# # Goal checker parameters
# #precise_goal_checker:
# # plugin: "nav2_controller::SimpleGoalChecker"
# # xy_goal_tolerance: 0.25
# # yaw_goal_tolerance: 0.25
# # stateful: True
# general_goal_checker:
# stateful: True
# plugin: "nav2_controller::SimpleGoalChecker"
# xy_goal_tolerance: 0.25
# yaw_goal_tolerance: 0.25
# # DWB parameters
# FollowPath:
# plugin: "dwb_core::DWBLocalPlanner"
# debug_trajectory_details: True
# min_vel_x: -0.1
# min_vel_y: 0.0
# max_vel_x: 0.26
# max_vel_y: 0.0
# max_vel_theta: 1.0
# min_speed_xy: 0.0
# max_speed_xy: 0.26
# min_speed_theta: 0.0
# # Add high threshold velocity for turtlebot 3 issue.
# # https://github.com/ROBOTIS-GIT/turtlebot3_simulations/issues/75
# acc_lim_x: 2.5
# acc_lim_y: 0.0
# acc_lim_theta: 3.2
# decel_lim_x: -2.5
# decel_lim_y: 0.0
# decel_lim_theta: -3.2
# vx_samples: 20
# vy_samples: 5
# vtheta_samples: 20
# sim_time: 1.7
# linear_granularity: 0.05
# angular_granularity: 0.025
# transform_tolerance: 0.2
# xy_goal_tolerance: 0.25
# trans_stopped_velocity: 0.25
# short_circuit_trajectory_evaluation: True
# stateful: True
# critics: ["RotateToGoal", "Oscillation", "BaseObstacle", "GoalAlign", "PathAlign", "PathDist", "GoalDist", "ObstacleFootprint", "PreferForward"]
# BaseObstacle.scale: 0.02
# PathAlign.scale: 32.0
# PathAlign.forward_point_distance: 0.1
# GoalAlign.scale: 24.0
# GoalAlign.forward_point_distance: 0.1
# PathDist.scale: 32.0
# GoalDist.scale: 24.0
# RotateToGoal.scale: 32.0
# RotateToGoal.slowing_factor: 5.0
# RotateToGoal.lookahead_time: -1.0
controller_server:
ros__parameters:
use_sim_time: True
controller_frequency: 100.0 # was 20.0
min_x_velocity_threshold: 0.001
min_y_velocity_threshold: 0.5
min_theta_velocity_threshold: 0.001
progress_checker_plugins: ["progress_checker"] # progress_checker_plugin: "progress_checker" For Humble and older
goal_checker_plugins: ["goal_checker"]
controller_plugins: ["FollowPath"]
progress_checker:
plugin: "nav2_controller::SimpleProgressChecker"
required_movement_radius: 0.5
movement_time_allowance: 10.0
goal_checker:
plugin: "nav2_controller::SimpleGoalChecker"
xy_goal_tolerance: 0.25 # was 0.25
yaw_goal_tolerance: 0.25 # was 0.25
stateful: True
FollowPath:
plugin: "nav2_regulated_pure_pursuit_controller::RegulatedPurePursuitController"
desired_linear_vel: 0.5
lookahead_dist: 0.6
min_lookahead_dist: 0.3
max_lookahead_dist: 0.9
lookahead_time: 1.5
rotate_to_heading_angular_vel: 1.8
transform_tolerance: 0.1
use_velocity_scaled_lookahead_dist: false
min_approach_linear_velocity: 0.007 # was 0.05
approach_velocity_scaling_dist: 0.6
use_collision_detection: true
max_allowed_time_to_collision_up_to_carrot: 1.0
use_regulated_linear_velocity_scaling: true
use_fixed_curvature_lookahead: false
curvature_lookahead_dist: 0.25
use_cost_regulated_linear_velocity_scaling: false
regulated_linear_scaling_min_radius: 0.9
regulated_linear_scaling_min_speed: 0.25
use_rotate_to_heading: false # was true, cannot be set together with allow_reversing
allow_reversing: true # was false
rotate_to_heading_min_angle: 0.785
max_angular_accel: 3.2
max_robot_pose_search_dist: 10.0
use_interpolation: true # was false
local_costmap:
local_costmap:
ros__parameters:
update_frequency: 5.0
publish_frequency: 2.0
global_frame: odom
robot_base_frame: base_link
use_sim_time: True
rolling_window: true
width: 3
height: 3
resolution: 0.05
#robot_radius: 0.22
footprint: "[ [0.065, 0.160], [0.065, -0.160], [-0.28, -0.13], [-0.28, 0.13] ]" # gave another points for the polygon "[ [0.18, 0.255], [0.18, -0.255], [-0.54, -0.165], [-0.54, 0.165] ]"
plugins: ["voxel_layer", "inflation_layer"]
inflation_layer:
plugin: "nav2_costmap_2d::InflationLayer"
cost_scaling_factor: 10.0 # was 3.0
inflation_radius: 0.55
voxel_layer:
plugin: "nav2_costmap_2d::VoxelLayer"
enabled: True
publish_voxel_map: True
origin_z: 0.0
z_resolution: 0.05
z_voxels: 16
max_obstacle_height: 2.0
mark_threshold: 0
observation_sources: rplidar oakd
rplidar:
topic: /scan_filtered
max_obstacle_height: 2.0
clearing: True
marking: True
data_type: "LaserScan"
raytrace_max_range: 3.0
raytrace_min_range: 0.0
obstacle_max_range: 2.5
obstacle_min_range: 0.0
oak-d: # no frame set, uses frame from message
topic: /stereo/points
max_obstacle_height: 1.5
min_obstacle_height: 0.02
obstacle_max_range: 3.0
obstacle_min_range: 0.0
raytrace_max_range: 3.2
raytrace_min_range: 0.0
clearing: True
marking: True
data_type: "PointCloud2"
static_layer:
plugin: "nav2_costmap_2d::StaticLayer"
map_subscribe_transient_local: True
always_send_full_costmap: True
global_costmap:
global_costmap:
ros__parameters:
update_frequency: 1.0
publish_frequency: 1.0
global_frame: map
robot_base_frame: base_link
use_sim_time: True
#robot_radius: 0.22
footprint: "[ [0.065, 0.160], [0.065, -0.160], [-0.28, -0.13], [-0.28, 0.13] ]" # gave another points for the polygon
resolution: 0.05
track_unknown_space: true
plugins: ["static_layer", "obstacle_layer", "inflation_layer"]
obstacle_layer:
plugin: "nav2_costmap_2d::ObstacleLayer"
enabled: True
observation_sources: scan
scan:
topic: /scan_filtered
max_obstacle_height: 2.0
clearing: True
marking: True
data_type: "LaserScan"
raytrace_max_range: 3.0
raytrace_min_range: 0.0
obstacle_max_range: 2.5
obstacle_min_range: 0.0
static_layer:
plugin: "nav2_costmap_2d::StaticLayer"
map_subscribe_transient_local: True
inflation_layer:
plugin: "nav2_costmap_2d::InflationLayer"
cost_scaling_factor: 10.0 # was 3.0
inflation_radius: 0.55
always_send_full_costmap: True
map_server:
ros__parameters:
use_sim_time: True
# Overridden in launch by the "map" launch configuration or provided default value.
# To use in yaml, remove the default "map" value in the tb3_simulation_launch.py file & provide full path to map below.
yaml_filename: ""
map_saver:
ros__parameters:
use_sim_time: True
save_map_timeout: 5.0
free_thresh_default: 0.25
occupied_thresh_default: 0.65
map_subscribe_transient_local: True
# planner_server:
# ros__parameters:
# expected_planner_frequency: 20.0
# use_sim_time: True
# planner_plugins: ["GridBased"]
# GridBased:
# plugin: "nav2_navfn_planner/NavfnPlanner"
# tolerance: 0.5
# use_astar: false
# allow_unknown: true
planner_server:
ros__parameters:
planner_plugins: ["GridBased"]
use_sim_time: True
GridBased:
plugin: "nav2_smac_planner/SmacPlanner2D"
tolerance: 0.125 # tolerance for planning if unable to reach exact pose, in meters
downsample_costmap: false # whether or not to downsample the map
downsampling_factor: 1 # multiplier for the resolution of the costmap layer (e.g. 2 on a 5cm costmap would be 10cm)
allow_unknown: true # allow traveling in unknown space
max_iterations: 1000000 # maximum total iterations to search for before failing (in case unreachable), set to -1 to disable
max_on_approach_iterations: 1000 # maximum number of iterations to attempt to reach goal once in tolerance
max_planning_time: 2.0 # max time in s for planner to plan, smooth
cost_travel_multiplier: 2.0 # Cost multiplier to apply to search to steer away from high cost areas. Larger values will place in the center of aisles more exactly (if non-`FREE` cost potential field exists) but take slightly longer to compute. To optimize for speed, a value of 1.0 is reasonable. A reasonable tradeoff value is 2.0. A value of 0.0 effective disables steering away from obstacles and acts like a naive binary search A*.
use_final_approach_orientation: true # Whether to set the final path pose at the goal's orientation to the requested orientation (false) or in line with the approach angle so the robot doesn't rotate to heading (true)
smoother:
max_iterations: 1000
w_smooth: 0.3
w_data: 0.2
tolerance: 0.1
smoother_server:
ros__parameters:
use_sim_time: True
smoother_plugins: ["simple_smoother"]
simple_smoother:
plugin: "nav2_smoother::SimpleSmoother"
tolerance: 1.0e-10
max_its: 1000
do_refinement: True
behavior_server:
ros__parameters:
costmap_topic: local_costmap/costmap_raw
footprint_topic: local_costmap/published_footprint
cycle_frequency: 10.0
behavior_plugins: ["spin", "backup", "drive_on_heading", "assisted_teleop", "wait"]
spin:
plugin: "nav2_behaviors/Spin"
backup:
plugin: "nav2_behaviors/BackUp"
drive_on_heading:
plugin: "nav2_behaviors/DriveOnHeading"
wait:
plugin: "nav2_behaviors/Wait"
assisted_teleop:
plugin: "nav2_behaviors/AssistedTeleop"
global_frame: odom
robot_base_frame: base_link
transform_tolerance: 0.1
use_sim_time: true
simulate_ahead_time: 2.0
max_rotational_vel: 1.0
min_rotational_vel: 0.4
rotational_acc_lim: 3.2
robot_state_publisher:
ros__parameters:
use_sim_time: True
waypoint_follower:
ros__parameters:
use_sim_time: True
loop_rate: 20
stop_on_failure: false
waypoint_task_executor_plugin: "wait_at_waypoint"
wait_at_waypoint:
plugin: "nav2_waypoint_follower::WaitAtWaypoint"
enabled: True
waypoint_pause_duration: 200
velocity_smoother:
ros__parameters:
use_sim_time: True
smoothing_frequency: 20.0
scale_velocities: False
feedback: "CLOSED_LOOP" # was OPEN_LOOP
max_velocity: [0.26, 0.0, 1.0]
min_velocity: [-0.26, 0.0, -1.0]
max_accel: [2.5, 0.0, 3.2]
max_decel: [-2.5, 0.0, -3.2]
odom_topic: "/odometry/filtered"
odom_duration: 0.1 # was 0.1
deadband_velocity: [0.0, 0.0, 0.0]
velocity_timeout: 1.0

BIN
config/npm/database.sqlite Normal file

Binary file not shown.

View File

@ -0,0 +1,18 @@
# ------------------------------------------------------------
# Default Site
# ------------------------------------------------------------
server {
listen 80 default;
listen [::]:80 default;
server_name default-host.localhost;
access_log /data/logs/default-host_access.log combined;
error_log /data/logs/default-host_error.log warn;
include conf.d/include/letsencrypt-acme-challenge.conf;
location / {
return 301 http://192.168.20.10:1337/;
}
}

View File

@ -0,0 +1,58 @@
# ------------------------------------------------------------
# overview.loki
# ------------------------------------------------------------
map $scheme $hsts_header {
https "max-age=63072000; preload";
}
server {
set $forward_scheme http;
set $server "host.docker.internal";
set $port 1337;
listen 80;
listen [::]:80;
server_name overview.loki;
access_log /data/logs/proxy-host-3_access.log proxy;
error_log /data/logs/proxy-host-3_error.log warn;
location / {
# Proxy!
include conf.d/include/proxy.conf;
}
# Custom
include /data/nginx/custom/server_proxy[.]conf;
}

View File

@ -1,11 +0,0 @@
actions:
- title: "Start Navigation Stack"
shell: docker compose -f /repo/docker-compose.yaml up -d navigation
- title: "Stop Navigation Stack"
shell: docker compose -f /repo/docker-compose.yaml down navigation
- title: "Start Mapping"
shell: docker compose -f /repo/docker-compose.yaml up -d mapping
- title: "Stop Mapping"
shell: docker compose -f /repo/docker-compose.yaml down mapping
- title: "Restart Teleop"
shell: docker compose -f /repo/docker-compose.yaml restart teleop

View File

@ -0,0 +1,35 @@
showNavigation: false
logLevel: "INFO"
showNewVersions: false
showFooter: false
actions:
- title: "Start Navigation Stack"
shell: docker start cps_loki-navigation-1
icon: '<img src = "customIcons/nav2_start.png" width = "48px"/>'
- title: "Stop Navigation Stack"
shell: docker stop cps_loki-navigation-1
icon: '<img src = "customIcons/nav2_stop.png" width = "48px"/>'
- title: "Start Mapping"
shell: docker start cps_loki-mapping-1
icon: '<img src = "customIcons/mapping_start.gif" width = "48px"/>'
- title: "Stop Mapping"
shell: docker stop cps_loki-mapping-1
icon: '<img src = "customIcons/mapping_stop.gif" width = "48px"/>'
- title: "Restart Teleop"
icon: '<img src = "customIcons/gamepad.png" width = "48px"/>'
shell: docker restart cps_loki-teleop-1
- title: Restart or Shutdown System
icon: restart
shell: systemctl {{ choice }}
arguments:
- name: choice
title: Pick one
choices:
- value: reboot
- value: shutdown
# This will SSH into a server an run the command 'service httpd restart'
# - title: Restart httpd on Server 1
# shell: ssh bjorn@loki.local 'echo "it works"'
# icon: ping
# timeout: 5

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 137 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

View File

@ -0,0 +1 @@
ba1fa920-2863-4600-994f-23559acfcab2

View File

@ -36,6 +36,7 @@ services:
# Allows graphical programs in the container.
- /tmp/.X11-unix:/tmp/.X11-unix:rw
- ${XAUTHORITY:-$HOME/.Xauthority}:/root/.Xauthority
restart: unless-stopped
# Overlay image containing the project specific source code.
overlay:
extends: base
@ -82,7 +83,7 @@ services:
devices:
- /dev/ttyUSB0:/dev/ttyUSB0
- /dev/ttyACM0:/dev/ttyACM0
restart: unless-stopped
restart: always
# teleop
teleop:
extends: overlay
@ -90,7 +91,7 @@ services:
ros2 launch cps_loki_bringup robot_joy_teleop.launch.py
devices:
- /dev/input:/dev/input
restart: unless-stopped
restart: always
# scan filter node
lidar_filter:
extends: overlay
@ -120,7 +121,7 @@ services:
command: >
ros2 launch nav2_bringup bringup_launch.py slam:=True map:=/repo/map.yaml
use_sim_time:=False use_composition:=True
params_file:=/overlay_ws/src/cps_loki_bringup/config/nav2_params.yaml
params_file:=/repo/config/nav2_params.yaml
depends_on:
- lidar
- controller
@ -137,61 +138,85 @@ services:
###################################################################################################################################
# Webgui Supervision via Foxglove Studio #
###################################################################################################################################
olivetin:
container_name: olivetin
image: jamesread/olivetin
#image: ghcr.io/bjoernellens1/cps_bot_mini_ws/olivetin
build:
context: .
dockerfile: docker/Dockerfile
tags:
- ghcr.io/bjoernellens1/cps_bot_mini_ws/olivetin
target: olivetin
x-bake:
platforms:
#- linux/arm64
- linux/amd64
user: root
privileged: true
volumes:
- ./config/olivetin/:/config/ # here is config.yaml and icons located
- ./config/olivetin/icons:/var/www/olivetin/customIcons
- .:/repo
- /var/run/docker.sock:/var/run/docker.sock
# - /var/lib/docker:/var/lib/docker
- ~/.ssh/id_rsa:/root/.ssh/id_rsa
networks:
- caddy_network
ports:
- "1337:1337"
restart: always
# config:
# container_name: olivetin
# image: ghcr.io/bjoernellens1/cps_bot_mini_ws/olivetin
# build:
# context: .
# dockerfile: docker/Dockerfile
# tags:
# - ghcr.io/bjoernellens1/cps_bot_mini_ws/olivetin
# target: olivetin
# x-bake:
# platforms:
# #- linux/arm64
# - linux/amd64
# #user: root
# privileged: true
# volumes:
# - ./config/olivetin.yaml:/config/config.yaml # replace host path or volume as needed
# - .:/repo
# - /var/run/docker.sock:/var/run/docker.sock
# - /var/lib/docker:/var/lib/docker
# ports:
# - "88:1337"
# restart: unless-stopped
portainer:
container_name: portainer
#image: jamesread/olivetin
image: portainer/portainer-ce:latest
volumes:
- ./config/olivetin/:/config/ # here is config.yaml and icons located
- ./config/olivetin/icons:/var/www/olivetin/customIcons
- .:/repo
- /var/run/docker.sock:/var/run/docker.sock
- portainer_data:/data
# - /var/lib/docker:/var/lib/docker
- ~/.ssh/id_rsa:/root/.ssh/id_rsa
ports:
- "8000:8000"
- "9443:9443"
restart: unless-stopped
################################################################################################################################
# This section is mostly for supervision from PC #
################################################################################################################################
foxglove-bridge:
image: husarion/foxglove-bridge:humble
# Interactive shell
# Foxglove Studio Bridge
foxglove_bridge:
extends: overlay
command: >
ros2 launch foxglove_bridge foxglove_bridge_launch.xml port:=8765
stdin_open: true
tty: true
# Networking and IPC for ROS 2
network_mode: host
#network_mode: host
ipc: host
# Needed to display graphical applications
#privileged: true
environment:
# Allows graphical programs in the container.
- DISPLAY=${DISPLAY}
- QT_X11_NO_MITSHM=1
- NVIDIA_DRIVER_CAPABILITIES=all
- ROS_DOMAIN_ID=5
- RMW_IMPLEMENTATION=rmw_cyclonedds_cpp
foxglove:
image: husarion/foxglove
#image: husarion/foxglove
image: ghcr.io/foxglove/studio:latest
restart: always
depends_on:
- foxglove-bridge
- foxglove_bridge
networks:
- caddy_network
ports:
- 8080:8080
volumes:
- ./config/foxglove/extensions:/src/extensions
- ./config/foxglove/foxglove-layout.json:/foxglove/default-layout.json
# rviz2
rviz2:
@ -200,4 +225,66 @@ services:
rviz2
# Needed to display graphical applications
privileged: true
networks: {}
################################################################################################################################
# Core Services for Web Management #
################################################################################################################################
caddy:
image: caddy:latest
networks:
- caddy_network
extra_hosts:
- "host.docker.internal:host-gateway"
ports:
- "80:80"
- "443:443"
volumes:
- ./config/caddy/Caddyfile:/etc/caddy/Caddyfile
- ./config/caddy/content:/usr/share/caddy/
restart: always
depends_on:
- foxglove
- olivetin
roscore:
image: husarion/ros1-bridge:foxy-0.9.6-20230327-stable
command: |
bash -c "source /opt/ros/noetic/setup.bash && roscore"
network_mode: host
environment:
- ROS_DOMAIN_ID=5
restart: always
ros1bridge:
image: husarion/ros1-bridge:foxy-0.9.6-20230327-stable
command: |
ros2 run ros1_bridge dynamic_bridge
network_mode: host
ipc: host
environment:
- ROS_DOMAIN_ID=5
- RMW_IMPLEMENTATION=rmw_cyclonedds_cpp
restart: always
webui-joystick:
image: husarion/webui-ros-joystick:noetic-0.0.1-20230510-stable
network_mode: host
# networks:
# - caddy_network
# ports:
# - 8000:8000
ipc: host
environment:
- ROS_DOMAIN_ID=5
restart: always
depends_on:
- ros1bridge
command: roslaunch webui-ros-joystick webui.launch
################################################################################################################################
# Docker related extra stuff #
################################################################################################################################
networks:
caddy_network:
driver: bridge
volumes:
portainer_data:
npm-data:
npm-letsencrypt:

View File

@ -43,6 +43,11 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
ros-${ROS_DISTRO}-xacro \
&& rm -rf /var/lib/apt/lists/*
# Install Foxglove Bridge
RUN apt-get update && apt-get install -y --no-install-recommends \
ros-${ROS_DISTRO}-foxglove-bridge \
&& rm -rf /var/lib/apt/lists/*
ENV RMW_IMPLEMENTATION=rmw_cyclonedds_cpp
###########################################
@ -93,45 +98,45 @@ LABEL org.opencontainers.image.source=https://github.com/bjoernellens1/cps_loki
#############################################
# OliveTin Build #
#############################################
# FROM registry.fedoraproject.org/fedora:39 AS olivetin
FROM registry.fedoraproject.org/fedora:39 AS olivetin
# LABEL org.opencontainers.image.source https://ghcr.io/bjoernellens1/cps_bot_mini_ws/olivetin
# LABEL org.opencontainers.image.title=OliveTin
LABEL org.opencontainers.image.source https://ghcr.io/bjoernellens1/cps_bot_mini_ws/olivetin
LABEL org.opencontainers.image.title=OliveTin
# # Making sure there is newest docker version installed
# RUN dnf -y install dnf-plugins-core \
# && dnf -y install 'dnf-command(config-manager)' \
# && dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo \
# && dnf -y install docker-ce-cli docker-compose-plugin --setopt=install_weak_deps=False
# Making sure there is newest docker version installed
RUN dnf -y install dnf-plugins-core \
&& dnf -y install 'dnf-command(config-manager)' \
&& dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo \
&& dnf -y install docker-ce-cli docker-compose-plugin --setopt=install_weak_deps=False
# # Install OliveTin and dependencies
# RUN mkdir -p /config /var/www/olivetin \
# && dnf install -y --nodocs --noplugins --setopt=keepcache=0 --setopt=install_weak_deps=0 \
# iputils \
# openssh-clients \
# shadow-utils \
# OliveTin \
# && dnf clean all
# Install OliveTin and dependencies
RUN mkdir -p /config /var/www/olivetin \
&& dnf install -y --nodocs --noplugins --setopt=keepcache=0 --setopt=install_weak_deps=0 \
iputils \
openssh-clients \
shadow-utils \
OliveTin \
&& dnf clean all
# RUN useradd --system --create-home olivetin -u 1000
RUN useradd --system --create-home olivetin -u 1000
# EXPOSE 1337/tcp
EXPOSE 1337/tcp
# VOLUME /config
VOLUME /config
# USER olivetin
USER olivetin
# ENTRYPOINT [ "/usr/bin/OliveTin" ]
ENTRYPOINT [ "/usr/bin/OliveTin" ]
# FROM alpine AS olivetin
FROM docker AS olivetin
RUN wget https://github.com/OliveTin/OliveTin/releases/latest/download/OliveTin_linux_amd64.apk
RUN apk add --allow-untrusted OliveTin_linux_amd64.apk
# RUN wget https://github.com/OliveTin/OliveTin/releases/download/2023.12.21/OliveTin_linux_amd64.deb
# RUN apt install ./OliveTin_linux_amd64.deb
# Expose the default OliveTin port
EXPOSE 1337
# RUN wget https://github.com/OliveTin/OliveTin/releases/latest/download/OliveTin_linux_amd64.apk
# RUN apk add --allow-untrusted OliveTin_linux_amd64.apk docker-cli-compose
# # Expose the default OliveTin port
# EXPOSE 1337
# # Set the default command to run OliveTin
# CMD ["OliveTin"]
# Set the default command to run OliveTin
CMD ["OliveTin"]

BIN
docs/loki_overview.odg Normal file

Binary file not shown.

View File

@ -17,4 +17,4 @@ repositories:
cps_loki_bringup:
type: git
url: https://github.com/bjoernellens1/cps_loki_bringup
version: main
version: tuning

View File

@ -0,0 +1,7 @@
#!/bin/bash
# Change directory to where docker-compose.yml is located
cd /home/bjorn/git/cps_loki
# Restart the teleop service using docker-compose
docker compose restart teleop

16
scripts/setup.sh Executable file
View File

@ -0,0 +1,16 @@
#!/bin/bash
# copy script to a system directory
sudo cp ps4_controller_script.sh /etc/udev/rules.d
# Set execute permissions for the script
sudo chmod +x /etc/udev/rules.d/ps4_controller_script.sh
# Create or append the udev rule
echo 'ACTION=="add", SUBSYSTEM=="input", ATTRS{name}=="Wireless Controller", RUN+="/etc/udev/rules.d/ps4_controller_script.sh"' | sudo tee /etc/udev/rules.d/99-ps4-controller.rules
# Reload udev rules
sudo udevadm control --reload-rules
# Provide user feedback
echo "Setup completed. PS4 controller udev rule installed."

1
sudo
View File

@ -1 +0,0 @@
powersave tee /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor