1
0
mirror of https://bitbucket.org/librepilot/librepilot.git synced 2024-11-29 07:24:13 +01:00

Merge branch 'next' into corvuscorax/OP-1900_fixedwingautotakeoff_rebaserc6

This commit is contained in:
Corvus Corax 2016-04-23 02:08:13 +02:00
commit 5285689541
5090 changed files with 114356 additions and 163660 deletions

View File

@ -1,23 +1,14 @@
# *************** OpenPilot commits guidelines ***************
# *************** LibrePilot commits guidelines ***************
# Each commit needs to have a message like the following sample:
# OP-1150 UI for thermal calibration: Connect State machine to UI
# LP-188 Determine AccelTau based on usage
#
# It needs to begin with a reference to one or more Jira tickets followed by a short description.
# If needed add a longer description in the following lines, after an empty line.
#
# Before committing, ensure your code is properly formatted using:
# Before committing, ensure your code is properly formatted using:
# make uncrustify_all
# You can format flight or ground code only using respectively
# uncrustify_flight or uncrustify_ground
#
# To automatically create a review, append the following smart commit messages:
# +review OPReview
#
# To append the commit to an existing review, use the following smart commit message:
# +review OPReview-NNN
# For example "+review OPReview-609"
#
# *NOTE* leave an empty line between the commit message and "smart commit command"
# Smart commits commands need to starts immediately at first column

47
.gitignore vendored
View File

@ -4,6 +4,9 @@
/build
/3rdparty
# Ignore user config
/config
# Exclude temporary and system files
Thumbs.db
.DS_Store
@ -12,7 +15,7 @@ GRTAGS
GSYMS
GTAGS
core
*~
*~
# flight
/flight/*.pnproj
@ -25,29 +28,25 @@ core
/flight/Project/OpenPilotOSX/OpenPilotOSX.xcodeproj/*.pbxuser
# ground
openpilotgcs-build-desktop
ground/openpilotgcs/.cproject
ground/openpilotgcs/.project
ground/openpilotgcs/.settings
gcs-build-desktop
ground/gcs/.cproject
ground/gcs/.project
ground/gcs/.settings
# Ignore some of the .pro.user files
# Ignore .pro.user files
*.pro.user
/ground/openpilotgcs/openpilotgcs.pro.user
/ground/uavobjgenerator/uavobjgenerator.pro.user
/ground/uavobjects/uavobjects.pro.user
/ground/ground.pro.user
/ground/openpilotgcs/src/libs/sdlgamepad.pro.user
# Misc artifacts
/ground/openpilotgcs/share/openpilotgcs/sounds/normalize.exe
/ground/openpilotgcs/share/openpilotgcs/sounds/default/normalize.exe
/ground/openpilotgcs/share/openpilotgcs/translations/extract-mimetypes.xq
/ground/openpilotgcs/src/experimental/tools/DocumentationHelper/ui_mainwindow.h
/ground/openpilotgcs/src/libs/qextserialport/.hg
/ground/openpilotgcs/src/libs/qextserialport/.hgtags
/ground/openpilotgcs/src/libs/qwt/qwt.prf
/ground/openpilotgcs/src/libs/qwt/designer
/ground/openpilotgcs/src/plugins/ipconnection/ui_ipconnectionoptionspage.h
*.exe
*.log
*.opl
/ground/gcs/share/translations/extract-mimetypes.xq
/ground/gcs/src/experimental/tools/DocumentationHelper/ui_mainwindow.h
/ground/gcs/src/libs/qextserialport/.hg
/ground/gcs/src/libs/qextserialport/.hgtags
/ground/gcs/src/libs/qwt/qwt.prf
/ground/gcs/src/libs/qwt/designer
/ground/gcs/src/plugins/ipconnection/ui_ipconnectionoptionspage.h
# Ignore intermediate files generated by command-line android builds
# Couldn't figure out how to force these files into the ./build directory
@ -60,11 +59,12 @@ ground/openpilotgcs/.settings
/androidgcs/gen/
# Ignore Eclipse Projects and Metadata
/.cproject
/.project
.cproject
.project
/.metadata
/.settings
/.pydevproject
/workspace
# Ignore Eclipse temp folder, git plugin based?
RemoteSystemsTempFiles
@ -73,3 +73,6 @@ RemoteSystemsTempFiles
*.rej
*.orig
*.diff~
# ignore ccache storage
.ccache

17
.travis.yml Normal file
View File

@ -0,0 +1,17 @@
language: cpp
sudo: required
dist: trusty
before_install:
- sudo add-apt-repository ppa:librepilot/tools -y
- sudo apt-get update -q
- sudo apt-get install -y libudev-dev libusb-1.0-0-dev libsdl1.2-dev python libopenscenegraph-dev qt56-meta-minimal qt56svg qt56script qt56serialport qt56multimedia qt56translations qt56tools
script: . /opt/qt56/bin/qt56-env.sh && make gcs CCACHE=ccache GCS_EXTRA_CONF=osg
git:
depth: 500
cache: ccache

82
CONTRIBUTING.md Normal file
View File

@ -0,0 +1,82 @@
# How to build from source?
Both development environment and GCS are supported on Windows, Linux and Mac OS X.
# Install prerequisites
The first step is to Install all OS specific prerequisites.
## Mac OS X
Install XCode and its relatated command line tools (follow Apple documentation). Install git, curl and p7zip.
You can use brew with `brew install git curl p7zip` or macport with `sudo port install git curl p7zip`.
## Ubuntu
sudo apt-get install git build-essential curl gdb wget debhelper p7zip-full unzip flex bison libsdl1.2-dev libudev-dev libusb-1.0-0-dev libc6-i386 mesa-common-dev
## Windows
### Install [Msys2](https://msys2.github.io/)
Follow the instructions on the web site. You can either install the i686 (Win32) or x86_64 (Win64) version.
It is recommended to go for the Win64 Shell if possible.
The x86_64 version has both Win32 and Win64 shells and it is possible to build both i686 and x86_64 applications.
### Add the LibrePilot MinGW package repository
Add the following lines at the end of your /etc/pacman.conf file:
[librepilot-mingw]
SigLevel = Optional TrustAll
Server = http://download.librepilot.org/repo/mingw
### Install required packages
#### For i686 applications
Start a MinGW-w64 Win64 Shell or a MinGW-w64 Win32 Shell.
pacman -Sy
pacman -S --needed git unzip tar mingw-w64-i686-toolchain mingw-w64-i686-ccache mingw-w64-i686-qt5 mingw-w64-i686-SDL mingw-w64-i686-mesa mingw-w64-i686-openssl mingw-w64-i686-gdal-minimal mingw-w64-i686-OpenSceneGraph mingw-w64-i686-osgearth
Optionally install debug packages:
pacman -S --needed mingw-w64-i686-OpenSceneGraph-debug mingw-w64-i686-osgearth-debug
#### For x86_64 applications
Start a MinGW-w64 Win64 Shell.
pacman -Sy
pacman -S --needed git unzip tar mingw-w64-x86_64-toolchain mingw-w64-x86_64-ccache mingw-w64-x86_64-qt5 mingw-w64-x86_64-SDL mingw-w64-x86_64-mesa mingw-w64-x86_64-openssl mingw-w64-x86_64-gdal-minimal mingw-w64-x86_64-OpenSceneGraph mingw-w64-x86_64-osgearth
Optionally install debug packages:
pacman -S --needed mingw-w64-x86_64-OpenSceneGraph-debug mingw-w64-x86_64-osgearth-debug
**NOTE** On Windows you need to run the mingw version of make, which is `mingw32-make`
# Setup the build environment and build
The `all_sdk_install` target will automatically retrieve and install all needed tools (qt, arm gcc, etc.) in a local folder `/path/to/LibrePilot_root/tools`
## Ubuntu / Mac OS X
make all_sdk_install
make package
## Windows
mingw32-make all_sdk_install
mingw32-make package
The `package` target will build the complete installable package for the current platform.
You can build the `all` target to just build the software.
Run `make` with no arguments to show the complete list of supported targets.

View File

@ -1,4 +1,4 @@
Connor Abbott
Connor Abbott
Sergiy Anikeyev
David Ankers
Fredrik Arvidsson
@ -6,13 +6,14 @@ Pedro Assuncao
Werner Backes
Jose Barros
Alex Beck
Roy Bekken
Andre Bernet
Mikael Blomqvist
Pete Boehl
Berkely Brown
Joel Brueziere
Thierry Bugeat
Samuel Brugger
Thierry Bugeat
Glenn Campigli
David Carlson
Mike Carr
@ -47,6 +48,7 @@ Andy Honecker
Patrick Huebner
Ryan Hunt
Mark James
Paul Jewell
Michael Johnston
Stefan Karlsson
Ricky King
@ -61,12 +63,13 @@ Edouard Lafargue
Laurent Lalanne
Fredrik Larsson
Xavier Lecluse
Richard Von Lehe
Pablo Lema
Matt Lipski
David Llama
Jasper Van Loenen
Ben Matthews
Greg Matthews
Greg Matthews
Guy McCaldin
Alessio Morale
Gary Mortimer
@ -107,11 +110,9 @@ Rowan Taubitz
Jim Allen Thibodaux
Andrew Thoms
Vladimir Timofeev
Jasper Van Loenen
Philippe Vanhaesendonck
Vassilis Varveropoulos
Kevin Vertucio
Richard Von Lehe
Alex Vrubel
Mike Walters
Sam Wang

View File

@ -1,64 +1,6 @@
The OpenPilot code is licensed under the GPLv3. There are a few minor exceptions to this so please see
The LibrePilot code is licensed under the GPLv3. There are a few minor exceptions to this so please see
the headers of all source code for copyright and license information. The full text of the GPLv3 can be
read here: http://www.gnu.org/licenses/gpl-3.0.txt
Artwork is licensed under the Creative Commons BY-SA v3 license.
Documentation including translations is also licensed under the Creative Commons BY-SA v3 license.
For details please see: http://creativecommons.org/licenses/by-sa/3.0/
Licenses for the hardware files are included in the directories that contain the hardware, not all items
are under the same license and you must check the files for each individual hardware design. Please note
that some of the hardware files are licensed under the Creative Commons BY-NC-SA v3 license, this is a
non-commercial license. OpenPilot is purely a non-profit hobby project with zero commercial intent. If you
just want people to work for free or do your R&D for zero cost, please find a project that allows this as
that not what OpenPilot is about. We are hobbyists and we want to share our work with fellow hobbyists,
additionally we need to ensure the future of the project and make sure it is sustainable.
If you wish to sell/distribute OpenPilot hardware or derivatives of OpenPilot hardware that are under a
non-commercial license, please get in touch with one of the members of OpenPilot Foundation's
administration committee. We can then negotiate a license waiver where a portion of the profits are donated
to the OpenPilot Project to ensure its survival and future progression. Please note that this is in
reference to PCB and Schematic designs. For people wishing to combine OpenPilot in to a Ready to Fly
solution, this is perfectly fine as long as OpenPilot PCBs are bought from the OpenPilot project or one
of the approved distributors.
For details the non-commercial license please see: http://creativecommons.org/licenses/by-nc-sa/3.0/
A quick summary of what this license talk means, firstly using any work that is licensed under a form of
the Creative Commons BY license, requires that credit is to be given. The SA or Share Alike part of the
license means that you must also use the same license in any work derived from the work under this license.
Hardware
The items under the non-commercial license means exactly that: they are for non-commercial use only and
any derivatives that are made are also covered by the same non-commercial license. The hardware files
under a non-commercial license are for reference and for fellow hobbyists; they are not to be used to
generate profit of any kind. Please note that even the OpenPilot project its self is a non-profit project.
For all items both non-commercial and items that allows commercial use, the OP logo must be placed on any
work or derivative work and be clearly visible. If any web addresses are present on the hardware, these
are also required to remain on any replications or any derivative work.
Documentation
In documentation, authors names must be kept along with any logos. If documentation is for a physical
product such as a schematic, the OpenPilot logo should be shown and any web addresses also displayed on
the final physical hardware it was derived from.
Artwork
If artwork is to be reused, the OpenPilot project should be credited. If for example this is a software
application, credit should be given on the application splash screen or in a separate part of the
application that is visible to users. For example the Help/About screen.
Contact Us
If you are unsure, please contact one of the OpenPilot Foundation's administrators. Additionally, if you
plan to use parts of the OpenPilot project in your own work, we would appreciate it if you get in touch
with us anyway, it is possible we could combine efforts or have some work already in progress that might
be helpful. This of course is our baby and we want to see what great things people do with it as well.
A final note, OpenPilot is a non-profit for fun project and we have only volunteers. A great deal of time,
money and effort has been donated to this project; please respect the people that are part of it and their
generosity. OpenPilot is funded entirely by the generous people who donate money and time to the community
and help it grow. Giving full and proper credit is not only a legal requirement of the CC-BY-SA license,
it is also the right thing to do.
Buying hardware from the OpenPilot project is very important to the survival and continuing progress of
the project, a project like OpenPilot is extremely expensive to produce.

708
Makefile
View File

@ -1,5 +1,6 @@
#
# Top level Makefile for the OpenPilot project build system.
# Top level Makefile for the LibrePilot Project build system.
# Copyright (c) 2015, The LibrePilot Project, http://www.librepilot.org
# Copyright (c) 2010-2013, The OpenPilot Team, http://www.openpilot.org
# Use 'make help' for instructions.
#
@ -23,37 +24,63 @@
# Lower level makefiles assume that these variables are defined. To ensure
# that a special magic variable is exported here. It must be checked for
# existance by each sub-make.
export OPENPILOT_IS_COOL := Fuck Yeah!
export TOP_LEVEL_MAKEFILE := TRUE
# It is possible to set OPENPILOT_DL_DIR and/or OPENPILOT_TOOLS_DIR environment
# The root directory that this makefile resides in
export ROOT_DIR := $(realpath $(dir $(lastword $(MAKEFILE_LIST))))
# Include some helper functions
include $(ROOT_DIR)/make/functions.mk
# This file can be used to override default options using the "override" keyword
CONFIG_FILE := config
-include $(CONFIG_FILE)
##############################
# It is possible to set DL_DIR and/or TOOLS_DIR environment
# variables to override local tools download and installation directorys. So the
# same toolchains can be used for all working copies. Particularly useful for CI
# server build agents, but also for local installations.
#
# If no OPENPILOT_* variables found, makefile internal DL_DIR and TOOLS_DIR paths
# will be used. They still can be overriden by the make command line parameters:
# make DL_DIR=/path/to/download/directory TOOLS_DIR=/path/to/tools/directory targets...
# Function for converting Windows style slashes into Unix style
slashfix = $(subst \,/,$(1))
# Function for converting an absolute path to one relative
# to the top of the source tree
toprel = $(subst $(realpath $(ROOT_DIR))/,,$(abspath $(1)))
override DL_DIR := $(if $(DL_DIR),$(call slashfix,$(DL_DIR)),$(ROOT_DIR)/downloads)
override TOOLS_DIR := $(if $(TOOLS_DIR),$(call slashfix,$(TOOLS_DIR)),$(ROOT_DIR)/tools)
export DL_DIR
export TOOLS_DIR
# Set up some macros for common directories within the tree
export ROOT_DIR := $(realpath $(dir $(lastword $(MAKEFILE_LIST))))
export DL_DIR := $(if $(OPENPILOT_DL_DIR),$(call slashfix,$(OPENPILOT_DL_DIR)),$(ROOT_DIR)/downloads)
export TOOLS_DIR := $(if $(OPENPILOT_TOOLS_DIR),$(call slashfix,$(OPENPILOT_TOOLS_DIR)),$(ROOT_DIR)/tools)
export BUILD_DIR := $(ROOT_DIR)/build
export PACKAGE_DIR := $(ROOT_DIR)/build/package
export DIST_DIR := $(ROOT_DIR)/build/dist
export BUILD_DIR := $(CURDIR)/build
export PACKAGE_DIR := $(BUILD_DIR)/package
export DIST_DIR := $(BUILD_DIR)/dist
export OPGCSSYNTHDIR := $(BUILD_DIR)/gcs-synthetics
DIRS = $(DL_DIR) $(TOOLS_DIR) $(BUILD_DIR) $(PACKAGE_DIR) $(DIST_DIR)
DIRS := $(DL_DIR) $(TOOLS_DIR) $(BUILD_DIR) $(PACKAGE_DIR) $(DIST_DIR) $(OPGCSSYNTHDIR)
# Naming for binaries and packaging etc,.
export ORG_BIG_NAME := LibrePilot
GCS_LABEL := GCS
GCS_BIG_NAME := $(ORG_BIG_NAME) $(GCS_LABEL)
# These should be lowercase with no spaces
export ORG_SMALL_NAME := $(call smallify,$(ORG_BIG_NAME))
GCS_SMALL_NAME := $(call smallify,$(GCS_BIG_NAME))
WEBSITE_URL := http://librepilot.org
GIT_URL := https://bitbucket.org/librepilot/librepilot.git
GITWEB_URL := https://bitbucket.org/librepilot/librepilot
# Change this once the DNS is set to http://wiki.librepilot.org/
WIKI_URL_ROOT := https://librepilot.atlassian.net/wiki/display/LPDOC/
USAGETRACKER_URL := https://usagetracker.librepilot.org/
PACKAGING_EMAIL_ADDRESS := packaging@librepilot.org
define DESCRIPTION_SHORT :=
A ground control station and firmware for UAV flight controllers
endef
define DESCRIPTION_LONG :=
The LibrePilot open source project was founded in July 2015.
It focuses on research and development of software and hardware to be used in a variety of applications including vehicle control and stabilization, unmanned autonomous vehicles and robotics.
One of the project's primary goals is to provide an open and collaborative environment making it the ideal home for development of innovative ideas.
endef
# Set up default build configurations (debug | release)
GCS_BUILD_CONF := release
GOOGLE_API_VERSION := 14
# Clean out undesirable variables from the environment and command-line
# to remove the chance that they will cause problems with our build
@ -81,7 +108,7 @@ $(foreach var, $(SANITIZE_DEPRECATED_VARS), $(eval $(call SANITIZE_VAR,$(var),de
# Make sure this isn't being run as root unless installing (no whoami on Windows, but that is ok here)
ifeq ($(shell whoami 2>/dev/null),root)
ifeq ($(filter install,$(MAKECMDGOALS)),)
ifeq ($(filter install uninstall,$(MAKECMDGOALS)),)
ifndef FAKEROOTKEY
$(error You should not be running this as root)
endif
@ -99,14 +126,7 @@ else ifeq ($(V), 0)
else ifeq ($(V), 1)
endif
# Make sure we know few things about the architecture before including
# the tools.mk to ensure that we download/install the right tools.
UNAME := $(shell uname)
ARCH := $(shell uname -m)
# Here and everywhere if not Linux or Mac then assume Windows
ifeq ($(filter Linux Darwin, $(UNAME)), )
UNAME := Windows
endif
ARCH := $(call get_arch)
# Include tools installers
include $(ROOT_DIR)/make/tools.mk
@ -116,14 +136,22 @@ include $(ROOT_DIR)/make/tools.mk
# We almost need to consider autoconf/automake instead of this
ifeq ($(UNAME), Linux)
QT_SPEC = linux-g++
UAVOBJGENERATOR = $(BUILD_DIR)/uavobjgenerator/uavobjgenerator
UAVOBJGENERATOR := $(BUILD_DIR)/uavobjgenerator/uavobjgenerator
else ifeq ($(UNAME), Darwin)
QT_SPEC = macx-g++
UAVOBJGENERATOR = $(BUILD_DIR)/uavobjgenerator/uavobjgenerator
UAVOBJGENERATOR := $(BUILD_DIR)/uavobjgenerator/uavobjgenerator
else ifeq ($(UNAME), Windows)
QT_SPEC = win32-g++
UAVOBJGENERATOR = $(BUILD_DIR)/uavobjgenerator/uavobjgenerator.exe
UAVOBJGENERATOR := $(BUILD_DIR)/uavobjgenerator/uavobjgenerator.exe
endif
export UAVOBJGENERATOR
# Set up default build configurations (debug | release)
GCS_BUILD_CONF := release
# Set extra configuration
GCS_EXTRA_CONF += osg copy_osg
ifeq ($(UNAME), Windows)
GCS_EXTRA_CONF += osgearth
endif
##############################
@ -140,7 +168,7 @@ all_clean:
@$(ECHO) " CLEAN $(call toprel, $(BUILD_DIR))"
$(V1) [ ! -d "$(BUILD_DIR)" ] || $(RM) -rf "$(BUILD_DIR)"
.PONY: clean
.PHONY: clean
clean: all_clean
@ -150,14 +178,16 @@ clean: all_clean
#
##############################
UAVOBJGENERATOR_DIR = $(BUILD_DIR)/uavobjgenerator
UAVOBJGENERATOR_DIR := $(BUILD_DIR)/uavobjgenerator
DIRS += $(UAVOBJGENERATOR_DIR)
.PHONY: uavobjgenerator
uavobjgenerator $(UAVOBJGENERATOR): | $(UAVOBJGENERATOR_DIR)
uavobjgenerator: $(UAVOBJGENERATOR)
$(UAVOBJGENERATOR): | $(UAVOBJGENERATOR_DIR)
$(V1) cd $(UAVOBJGENERATOR_DIR) && \
( [ -f Makefile ] || $(QMAKE) $(ROOT_DIR)/ground/uavobjgenerator/uavobjgenerator.pro \
-spec $(QT_SPEC) CONFIG+=$(GCS_BUILD_CONF) CONFIG+=$(GCS_SILENT) ) && \
CONFIG+='$(GCS_BUILD_CONF) $(GCS_EXTRA_CONF)' ) && \
$(MAKE) --no-print-directory -w
UAVOBJ_TARGETS := gcs flight python matlab java wireshark
@ -168,13 +198,13 @@ uavobjects: $(addprefix uavobjects_, $(UAVOBJ_TARGETS))
UAVOBJ_XML_DIR := $(ROOT_DIR)/shared/uavobjectdefinition
UAVOBJ_OUT_DIR := $(BUILD_DIR)/uavobject-synthetics
uavobjects_%: uavobjgenerator
uavobjects_%: $(UAVOBJGENERATOR)
@$(MKDIR) -p $(UAVOBJ_OUT_DIR)/$*
$(V1) ( cd $(UAVOBJ_OUT_DIR)/$* && \
$(UAVOBJGENERATOR) -$* $(UAVOBJ_XML_DIR) $(ROOT_DIR) ; \
)
uavobjects_test: uavobjgenerator
uavobjects_test: $(UAVOBJGENERATOR)
$(V1) $(UAVOBJGENERATOR) -v $(UAVOBJ_XML_DIR) $(ROOT_DIR)
uavobjects_clean:
@ -187,54 +217,6 @@ uavobjects_clean:
#
##############################
# Define some pointers to the various important pieces of the flight code
# to prevent these being repeated in every sub makefile
export PIOS := $(ROOT_DIR)/flight/pios
export FLIGHTLIB := $(ROOT_DIR)/flight/libraries
export OPMODULEDIR := $(ROOT_DIR)/flight/modules
export OPUAVOBJ := $(ROOT_DIR)/flight/uavobjects
export OPUAVTALK := $(ROOT_DIR)/flight/uavtalk
export OPUAVSYNTHDIR := $(BUILD_DIR)/uavobject-synthetics/flight
export OPGCSSYNTHDIR := $(BUILD_DIR)/openpilotgcs-synthetics
DIRS += $(OPGCSSYNTHDIR)
# Define supported board lists
ALL_BOARDS := oplinkmini revolution osd revoproto simposix discoveryf4bare gpsplatinum revonano
# Short names of each board (used to display board name in parallel builds)
oplinkmini_short := 'oplm'
revolution_short := 'revo'
osd_short := 'osd '
revoproto_short := 'revp'
revonano_short := 'revn'
simposix_short := 'posx'
discoveryf4bare_short := 'df4b'
gpsplatinum_short := 'gps9'
# SimPosix only builds on Linux so drop it from the list for
# all other platforms.
ifneq ($(UNAME), Linux)
ALL_BOARDS := $(filter-out simposix, $(ALL_BOARDS))
endif
# Start out assuming that we'll build fw, bl and bu for all boards
FW_BOARDS := $(ALL_BOARDS)
BL_BOARDS := $(ALL_BOARDS)
BU_BOARDS := $(ALL_BOARDS)
EF_BOARDS := $(ALL_BOARDS)
# SimPosix doesn't have a BL, BU or EF target so we need to
# filter them out to prevent errors on the all_flight target.
BL_BOARDS := $(filter-out simposix, $(BL_BOARDS))
BU_BOARDS := $(filter-out simposix gpsplatinum, $(BU_BOARDS))
EF_BOARDS := $(filter-out simposix, $(EF_BOARDS))
# Generate the targets for whatever boards are left in each list
FW_TARGETS := $(addprefix fw_, $(FW_BOARDS))
BL_TARGETS := $(addprefix bl_, $(BL_BOARDS))
BU_TARGETS := $(addprefix bu_, $(BU_BOARDS))
EF_TARGETS := $(addprefix ef_, $(EF_BOARDS))
# When building any of the "all_*" targets, tell all sub makefiles to display
# additional details on each line of output to describe which build and target
@ -250,190 +232,10 @@ ifneq ($(word 2,$(MAKECMDGOALS)),)
export ENABLE_MSG_EXTRA := yes
endif
# TEMPLATES (used to generate build rules)
FLIGHT_OUT_DIR := $(BUILD_DIR)/firmware
DIRS += $(FLIGHT_OUT_DIR)
# $(1) = Canonical board name all in lower case (e.g. coptercontrol)
# $(2) = Short name for board (e.g cc)
define FW_TEMPLATE
.PHONY: $(1) fw_$(1)
$(1): fw_$(1)_opfw
fw_$(1): fw_$(1)_opfw
fw_$(1)_%: uavobjects_flight
$(V1) $$(ARM_GCC_VERSION_CHECK_TEMPLATE)
$(V1) $(MKDIR) -p $(BUILD_DIR)/fw_$(1)/dep
$(V1) cd $(ROOT_DIR)/flight/targets/boards/$(1)/firmware && \
$$(MAKE) -r --no-print-directory \
BUILD_TYPE=fw \
BOARD_NAME=$(1) \
BOARD_SHORT_NAME=$(2) \
TOPDIR=$(ROOT_DIR)/flight/targets/boards/$(1)/firmware \
OUTDIR=$(BUILD_DIR)/fw_$(1) \
TARGET=fw_$(1) \
$$*
.PHONY: $(1)_clean
$(1)_clean: fw_$(1)_clean
fw_$(1)_clean:
@$(ECHO) " CLEAN $(call toprel, $(BUILD_DIR)/fw_$(1))"
$(V1) $(RM) -fr $(BUILD_DIR)/fw_$(1)
endef
# $(1) = Canonical board name all in lower case (e.g. coptercontrol)
# $(2) = Short name for board (e.g cc)
define BL_TEMPLATE
.PHONY: bl_$(1)
bl_$(1): bl_$(1)_bin
bl_$(1)_bino: bl_$(1)_bin
bl_$(1)_%:
$(V1) $$(ARM_GCC_VERSION_CHECK_TEMPLATE)
$(V1) $(MKDIR) -p $(BUILD_DIR)/bl_$(1)/dep
$(V1) cd $(ROOT_DIR)/flight/targets/boards/$(1)/bootloader && \
$$(MAKE) -r --no-print-directory \
BUILD_TYPE=bl \
BOARD_NAME=$(1) \
BOARD_SHORT_NAME=$(2) \
TOPDIR=$(ROOT_DIR)/flight/targets/boards/$(1)/bootloader \
OUTDIR=$(BUILD_DIR)/bl_$(1) \
TARGET=bl_$(1) \
$$*
.PHONY: unbrick_$(1)
unbrick_$(1): bl_$(1)_hex
$(if $(filter-out undefined,$(origin UNBRICK_TTY)),
$(V0) @$(ECHO) " UNBRICK $(1) via $$(UNBRICK_TTY)"
$(V1) $(STM32FLASH_DIR)/stm32flash \
-w $(BUILD_DIR)/bl_$(1)/bl_$(1).hex \
-g 0x0 \
$$(UNBRICK_TTY)
,
$(V0) @$(ECHO)
$(V0) @$(ECHO) "ERROR: You must specify UNBRICK_TTY=<serial-device> to use for unbricking."
$(V0) @$(ECHO) " eg. $$(MAKE) $$@ UNBRICK_TTY=/dev/ttyUSB0"
)
.PHONY: bl_$(1)_clean
bl_$(1)_clean:
@$(ECHO) " CLEAN $(call toprel, $(BUILD_DIR)/bl_$(1))"
$(V1) $(RM) -fr $(BUILD_DIR)/bl_$(1)
endef
# $(1) = Canonical board name all in lower case (e.g. coptercontrol)
# $(2) = Short name for board (e.g cc)
define BU_TEMPLATE
.PHONY: bu_$(1)
bu_$(1): bu_$(1)_opfw
bu_$(1)_%: bl_$(1)_bino
$(V1) $(MKDIR) -p $(BUILD_DIR)/bu_$(1)/dep
$(V1) cd $(ROOT_DIR)/flight/targets/common/bootloader_updater && \
$$(MAKE) -r --no-print-directory \
BUILD_TYPE=bu \
BOARD_NAME=$(1) \
BOARD_SHORT_NAME=$(2) \
TOPDIR=$(ROOT_DIR)/flight/targets/common/bootloader_updater \
OUTDIR=$(BUILD_DIR)/bu_$(1) \
TARGET=bu_$(1) \
$$*
.PHONY: bu_$(1)_clean
bu_$(1)_clean:
@$(ECHO) " CLEAN $(call toprel, $(BUILD_DIR)/bu_$(1))"
$(V1) $(RM) -fr $(BUILD_DIR)/bu_$(1)
endef
# $(1) = Canonical board name all in lower case (e.g. coptercontrol)
# $(2) = Short name for board (e.g cc)
define EF_TEMPLATE
.PHONY: ef_$(1)
ef_$(1): ef_$(1)_bin
ef_$(1)_%: bl_$(1)_bin fw_$(1)_opfw
$(V1) $(MKDIR) -p $(BUILD_DIR)/ef_$(1)
$(V1) cd $(ROOT_DIR)/flight/targets/common/entire_flash && \
$$(MAKE) -r --no-print-directory \
BUILD_TYPE=ef \
BOARD_NAME=$(1) \
BOARD_SHORT_NAME=$(2) \
DFU_CMD="$(DFUUTIL_DIR)/bin/dfu-util" \
TOPDIR=$(ROOT_DIR)/flight/targets/common/entire_flash \
OUTDIR=$(BUILD_DIR)/ef_$(1) \
TARGET=ef_$(1) \
$$*
.PHONY: ef_$(1)_clean
ef_$(1)_clean:
@$(ECHO) " CLEAN $(call toprel, $(BUILD_DIR)/ef_$(1))"
$(V1) $(RM) -fr $(BUILD_DIR)/ef_$(1)
endef
# $(1) = Canonical board name all in lower case (e.g. coptercontrol)
define BOARD_PHONY_TEMPLATE
.PHONY: all_$(1)
all_$(1): $$(filter fw_$(1), $$(FW_TARGETS))
all_$(1): $$(filter bl_$(1), $$(BL_TARGETS))
all_$(1): $$(filter bu_$(1), $$(BU_TARGETS))
all_$(1): $$(filter ef_$(1), $$(EF_TARGETS))
.PHONY: all_$(1)_clean
all_$(1)_clean: $$(addsuffix _clean, $$(filter fw_$(1), $$(FW_TARGETS)))
all_$(1)_clean: $$(addsuffix _clean, $$(filter bl_$(1), $$(BL_TARGETS)))
all_$(1)_clean: $$(addsuffix _clean, $$(filter bu_$(1), $$(BU_TARGETS)))
all_$(1)_clean: $$(addsuffix _clean, $$(filter ef_$(1), $$(EF_TARGETS)))
endef
# Generate flight build rules
.PHONY: all_fw all_fw_clean
all_fw: $(addsuffix _opfw, $(FW_TARGETS))
all_fw_clean: $(addsuffix _clean, $(FW_TARGETS))
.PHONY: all_bl all_bl_clean
all_bl: $(addsuffix _bin, $(BL_TARGETS))
all_bl_clean: $(addsuffix _clean, $(BL_TARGETS))
.PHONY: all_bu all_bu_clean
all_bu: $(addsuffix _opfw, $(BU_TARGETS))
all_bu_clean: $(addsuffix _clean, $(BU_TARGETS))
.PHONY: all_ef all_ef_clean
all_ef: $(EF_TARGETS)
all_ef_clean: $(addsuffix _clean, $(EF_TARGETS))
.PHONY: all_flight all_flight_clean
all_flight: all_fw all_bl all_bu all_ef
all_flight_clean: all_fw_clean all_bl_clean all_bu_clean all_ef_clean
# Expand the groups of targets for each board
$(foreach board, $(ALL_BOARDS), $(eval $(call BOARD_PHONY_TEMPLATE,$(board))))
# Expand the firmware rules
$(foreach board, $(ALL_BOARDS), $(eval $(call FW_TEMPLATE,$(board),$($(board)_short))))
# Expand the bootloader rules
$(foreach board, $(ALL_BOARDS), $(eval $(call BL_TEMPLATE,$(board),$($(board)_short))))
# Expand the bootloader updater rules
$(foreach board, $(ALL_BOARDS), $(eval $(call BU_TEMPLATE,$(board),$($(board)_short))))
# Expand the entire-flash rules
$(foreach board, $(ALL_BOARDS), $(eval $(call EF_TEMPLATE,$(board),$($(board)_short))))
.PHONY: sim_win32
sim_win32: sim_win32_exe
sim_win32_%: uavobjects_flight
$(V1) $(MKDIR) -p $(BUILD_DIR)/sitl_win32
$(V1) $(MAKE) --no-print-directory \
-C $(ROOT_DIR)/flight/targets/OpenPilot --file=$(ROOT_DIR)/flight/targets/OpenPilot/Makefile.win32 $*
.PHONY: sim_osx
sim_osx: sim_osx_elf
sim_osx_%: uavobjects_flight
$(V1) $(MKDIR) -p $(BUILD_DIR)/sim_osx
$(V1) $(MAKE) --no-print-directory \
-C $(ROOT_DIR)/flight/targets/SensorTest --file=$(ROOT_DIR)/flight/targets/SensorTest/Makefile.osx $*
include $(ROOT_DIR)/flight/Makefile
##############################
#
@ -442,39 +244,37 @@ sim_osx_%: uavobjects_flight
##############################
.PHONY: all_ground
all_ground: openpilotgcs uploader
all_ground: gcs uploader
# Convenience target for the GCS
.PHONY: gcs gcs_qmake gcs_clean
gcs: openpilotgcs
gcs_qmake: openpilotgcs_qmake
gcs_clean: openpilotgcs_clean
ifeq ($(V), 1)
GCS_SILENT :=
else
GCS_SILENT := silent
ifneq ($(V), 1)
GCS_EXTRA_CONF += silent
endif
OPENPILOTGCS_DIR := $(BUILD_DIR)/openpilotgcs_$(GCS_BUILD_CONF)
DIRS += $(OPENPILOTGCS_DIR)
GCS_DIR := $(BUILD_DIR)/$(GCS_SMALL_NAME)_$(GCS_BUILD_CONF)
DIRS += $(GCS_DIR)
OPENPILOTGCS_MAKEFILE := $(OPENPILOTGCS_DIR)/Makefile
GCS_MAKEFILE := $(GCS_DIR)/Makefile
.PHONY: openpilotgcs_qmake
openpilotgcs_qmake $(OPENPILOTGCS_MAKEFILE): | $(OPENPILOTGCS_DIR)
$(V1) cd $(OPENPILOTGCS_DIR) && \
$(QMAKE) $(ROOT_DIR)/ground/openpilotgcs/openpilotgcs.pro \
-spec $(QT_SPEC) -r CONFIG+=$(GCS_BUILD_CONF) CONFIG+=$(GCS_SILENT) $(GCS_QMAKE_OPTS)
.PHONY: gcs_qmake
gcs_qmake $(GCS_MAKEFILE): | $(GCS_DIR)
$(V1) cd $(GCS_DIR) && \
$(QMAKE) $(ROOT_DIR)/ground/gcs/gcs.pro \
-r CONFIG+='$(GCS_BUILD_CONF) $(GCS_EXTRA_CONF)' \
'GCS_BIG_NAME="$(GCS_BIG_NAME)"' GCS_SMALL_NAME=$(GCS_SMALL_NAME) \
'ORG_BIG_NAME="$(ORG_BIG_NAME)"' ORG_SMALL_NAME=$(ORG_SMALL_NAME) \
'WIKI_URL_ROOT="$(WIKI_URL_ROOT)"' \
'USAGETRACKER_URL="$(USAGETRACKER_URL)"' \
'GCS_LIBRARY_BASENAME=$(libbasename)' \
$(GCS_QMAKE_OPTS)
.PHONY: openpilotgcs
openpilotgcs: uavobjgenerator $(OPENPILOTGCS_MAKEFILE)
$(V1) $(MAKE) -w -C $(OPENPILOTGCS_DIR)/$(MAKE_DIR);
.PHONY: gcs
gcs: $(UAVOBJGENERATOR) $(GCS_MAKEFILE)
$(V1) $(MAKE) -w -C $(GCS_DIR)/$(MAKE_DIR);
.PHONY: openpilotgcs_clean
openpilotgcs_clean:
@$(ECHO) " CLEAN $(call toprel, $(OPENPILOTGCS_DIR))"
$(V1) [ ! -d "$(OPENPILOTGCS_DIR)" ] || $(RM) -r "$(OPENPILOTGCS_DIR)"
.PHONY: gcs_clean
gcs_clean:
@$(ECHO) " CLEAN $(call toprel, $(GCS_DIR))"
$(V1) [ ! -d "$(GCS_DIR)" ] || $(RM) -r "$(GCS_DIR)"
@ -492,8 +292,8 @@ UPLOADER_MAKEFILE := $(UPLOADER_DIR)/Makefile
.PHONY: uploader_qmake
uploader_qmake $(UPLOADER_MAKEFILE): | $(UPLOADER_DIR)
$(V1) cd $(UPLOADER_DIR) && \
$(QMAKE) $(ROOT_DIR)/ground/openpilotgcs/src/experimental/USB_UPLOAD_TOOL/upload.pro \
-spec $(QT_SPEC) -r CONFIG+=$(GCS_BUILD_CONF) CONFIG+=$(GCS_SILENT) $(GCS_QMAKE_OPTS)
$(QMAKE) $(ROOT_DIR)/ground/gcs/src/experimental/USB_UPLOAD_TOOL/upload.pro \
-r CONFIG+='$(GCS_BUILD_CONF) $(GCS_EXTRA_CONF)' $(GCS_QMAKE_OPTS)
.PHONY: uploader
uploader: $(UPLOADER_MAKEFILE)
@ -505,209 +305,46 @@ uploader_clean:
$(V1) [ ! -d "$(UPLOADER_DIR)" ] || $(RM) -r "$(UPLOADER_DIR)"
# We want to take snapshots of the UAVOs at each point that they change
# to allow the GCS to be compatible with as many versions as possible.
# We always include a pseudo collection called "srctree" which represents
# the UAVOs in the source tree. So not necessary to add current tree UAVO
# hash here, it is always included.
# Find the git hashes of each commit that changes uavobjects with:
# git log --format=%h -- shared/uavobjectdefinition/ | head -n 2
# List only UAVO hashes of past releases, do not list current hash.
# Past compatible versions are so far: RELEASE-12.10.2
UAVO_GIT_VERSIONS := 5e14f53
# All versions includes also the current source tree UAVO hash
UAVO_ALL_VERSIONS := $(UAVO_GIT_VERSIONS) srctree
# This is where the UAVO collections are stored
UAVO_COLLECTION_DIR := $(BUILD_DIR)/uavo-collections
# $(1) git hash of a UAVO snapshot
define UAVO_COLLECTION_GIT_TEMPLATE
# Make the output directory that will contain all of the synthetics for the
# uavo collection referenced by the git hash $(1)
$$(UAVO_COLLECTION_DIR)/$(1):
$$(V1) $(MKDIR) -p $$(UAVO_COLLECTION_DIR)/$(1)
# Extract the snapshot of shared/uavobjectdefinition from git hash $(1)
$$(UAVO_COLLECTION_DIR)/$(1)/uavo-xml.tar: | $$(UAVO_COLLECTION_DIR)/$(1)
$$(UAVO_COLLECTION_DIR)/$(1)/uavo-xml.tar:
$$(V0) @$(ECHO) " UAVOTAR $(1)"
$$(V1) $(GIT) archive $(1) -o $$@ -- shared/uavobjectdefinition/
# Extract the uavo xml files from our snapshot
$$(UAVO_COLLECTION_DIR)/$(1)/uavo-xml: $$(UAVO_COLLECTION_DIR)/$(1)/uavo-xml.tar
$$(V0) @$(ECHO) " UAVOUNTAR $(1)"
$$(V1) $(RM) -rf $$@
$$(V1) $(MKDIR) -p $$@
$$(V1) $(TAR) -C $$(call toprel, $$@) -xf $$(call toprel, $$<) || $(RM) -rf $$@
endef
# Map the current working directory into the set of UAVO collections
$(UAVO_COLLECTION_DIR)/srctree:
$(V1) $(MKDIR) -p $@
$(UAVO_COLLECTION_DIR)/srctree/uavo-xml: | $(UAVO_COLLECTION_DIR)/srctree
$(UAVO_COLLECTION_DIR)/srctree/uavo-xml: $(UAVOBJ_XML_DIR)
$(V1) $(LN) -sf $(ROOT_DIR) $(UAVO_COLLECTION_DIR)/srctree/uavo-xml
# $(1) git hash (or symbolic name) of a UAVO snapshot
define UAVO_COLLECTION_BUILD_TEMPLATE
# This leaves us with a (broken) symlink that points to the full sha1sum of the collection
$$(UAVO_COLLECTION_DIR)/$(1)/uavohash: $$(UAVO_COLLECTION_DIR)/$(1)/uavo-xml
# Compute the sha1 hash for this UAVO collection
# The sed bit truncates the UAVO hash to 16 hex digits
$$(V1) $$(VERSION_INFO) \
--uavodir=$$(UAVO_COLLECTION_DIR)/$(1)/uavo-xml/shared/uavobjectdefinition \
--format='$$$${UAVO_HASH}' | \
$(SED) -e 's|\(................\).*|\1|' > $$@
$$(V0) @$(ECHO) " UAVOHASH $(1) ->" $$$$(cat $$(UAVO_COLLECTION_DIR)/$(1)/uavohash)
# Generate the java uavobjects for this UAVO collection
$$(UAVO_COLLECTION_DIR)/$(1)/java-build/java: $$(UAVO_COLLECTION_DIR)/$(1)/uavohash
$$(V0) @$(ECHO) " UAVOJAVA $(1) " $$$$(cat $$(UAVO_COLLECTION_DIR)/$(1)/uavohash)
$$(V1) $(MKDIR) -p $$@
$$(V1) ( \
cd $$(UAVO_COLLECTION_DIR)/$(1)/java-build && \
$$(UAVOBJGENERATOR) -java $$(UAVO_COLLECTION_DIR)/$(1)/uavo-xml/shared/uavobjectdefinition $$(ROOT_DIR) ; \
)
# Build a jar file for this UAVO collection
$$(UAVO_COLLECTION_DIR)/$(1)/java-build/uavobjects.jar: | $$(ANDROIDGCS_ASSETS_DIR)/uavos
$$(UAVO_COLLECTION_DIR)/$(1)/java-build/uavobjects.jar: $$(UAVO_COLLECTION_DIR)/$(1)/java-build/java
$$(V0) @$(ECHO) " UAVOJAR $(1) " $$$$(cat $$(UAVO_COLLECTION_DIR)/$(1)/uavohash)
$$(V1) ( \
HASH=$$$$(cat $$(UAVO_COLLECTION_DIR)/$(1)/uavohash) && \
cd $$(UAVO_COLLECTION_DIR)/$(1)/java-build && \
$(JAVAC) java/*.java \
$$(ROOT_DIR)/androidgcs/src/org/openpilot/uavtalk/UAVDataObject.java \
$$(ROOT_DIR)/androidgcs/src/org/openpilot/uavtalk/UAVObject*.java \
$$(ROOT_DIR)/androidgcs/src/org/openpilot/uavtalk/UAVMetaObject.java \
-d . && \
find ./org/openpilot/uavtalk/uavobjects -type f -name '*.class' > classlist.txt && \
$(JAR) cf tmp_uavobjects.jar @classlist.txt && \
$$(ANDROID_DX) \
--dex \
--output $$(ANDROIDGCS_ASSETS_DIR)/uavos/$$$${HASH}.jar \
tmp_uavobjects.jar && \
$(LN) -sf $$(ANDROIDGCS_ASSETS_DIR)/uavos/$$$${HASH}.jar uavobjects.jar \
)
endef
# One of these for each element of UAVO_GIT_VERSIONS so we can extract the UAVOs from git
$(foreach githash, $(UAVO_GIT_VERSIONS), $(eval $(call UAVO_COLLECTION_GIT_TEMPLATE,$(githash))))
# One of these for each UAVO_ALL_VERSIONS which includes the ones in the srctree
$(foreach githash, $(UAVO_ALL_VERSIONS), $(eval $(call UAVO_COLLECTION_BUILD_TEMPLATE,$(githash))))
.PHONY: uavo-collections_java
uavo-collections_java: $(foreach githash, $(UAVO_ALL_VERSIONS), $(UAVO_COLLECTION_DIR)/$(githash)/java-build/uavobjects.jar)
.PHONY: uavo-collections
uavo-collections: uavo-collections_java
.PHONY: uavo-collections_clean
uavo-collections_clean:
@$(ECHO) " CLEAN $(call toprel, $(UAVO_COLLECTION_DIR))"
$(V1) [ ! -d "$(UAVO_COLLECTION_DIR)" ] || $(RM) -r $(UAVO_COLLECTION_DIR)
##############################
#
# Unit Tests
#
##############################
ALL_UNITTESTS := logfs math lednotification
# Build the directory for the unit tests
UT_OUT_DIR := $(BUILD_DIR)/unit_tests
DIRS += $(UT_OUT_DIR)
.PHONY: all_ut
all_ut: $(addsuffix _elf, $(addprefix ut_, $(ALL_UNITTESTS)))
.PHONY: all_ut_xml
all_ut_xml: $(addsuffix _xml, $(addprefix ut_, $(ALL_UNITTESTS)))
.PHONY: all_ut_run
all_ut_run: $(addsuffix _run, $(addprefix ut_, $(ALL_UNITTESTS)))
.PHONY: all_ut_clean
all_ut_clean:
@$(ECHO) " CLEAN $(call toprel, $(UT_OUT_DIR))"
$(V1) [ ! -d "$(UT_OUT_DIR)" ] || $(RM) -r "$(UT_OUT_DIR)"
# $(1) = Unit test name
define UT_TEMPLATE
.PHONY: ut_$(1)
ut_$(1): ut_$(1)_run
ut_$(1)_%: $$(UT_OUT_DIR)
$(V1) $(MKDIR) -p $(UT_OUT_DIR)/$(1)
$(V1) cd $(ROOT_DIR)/flight/tests/$(1) && \
$$(MAKE) -r --no-print-directory \
BUILD_TYPE=ut \
BOARD_SHORT_NAME=$(1) \
TOPDIR=$(ROOT_DIR)/flight/tests/$(1) \
OUTDIR="$(UT_OUT_DIR)/$(1)" \
TARGET=$(1) \
$$*
.PHONY: ut_$(1)_clean
ut_$(1)_clean:
@$(ECHO) " CLEAN $(call toprel, $(UT_OUT_DIR)/$(1))"
$(V1) [ ! -d "$(UT_OUT_DIR)/$(1)" ] || $(RM) -r "$(UT_OUT_DIR)/$(1)"
endef
# Expand the unittest rules
$(foreach ut, $(ALL_UNITTESTS), $(eval $(call UT_TEMPLATE,$(ut))))
# Disable parallel make when the all_ut_run target is requested otherwise the TAP
# output is interleaved with the rest of the make output.
ifneq ($(strip $(filter all_ut_run,$(MAKECMDGOALS))),)
.NOTPARALLEL:
$(info $(EMPTY) NOTE Parallel make disabled by all_ut_run target so we have sane console output)
endif
##############################
#
# Packaging components
#
##############################
# Firmware files to package
PACKAGE_FW_EXCLUDE := fw_simposix $(if $(PACKAGE_FW_INCLUDE_DISCOVERYF4BARE),,fw_discoveryf4bare)
PACKAGE_FW_TARGETS := $(filter-out $(PACKAGE_FW_EXCLUDE), $(FW_TARGETS))
PACKAGE_ELF_TARGETS := $(filter fw_simposix, $(FW_TARGETS))
PACKAGE_FW_TARGETS := fw_coptercontrol fw_oplinkmini fw_revolution fw_osd fw_revoproto fw_gpsplatinum fw_revonano
# Rules to generate GCS resources used to embed firmware binaries into the GCS.
# They are used later by the vehicle setup wizard to update board firmware.
# To open a firmware image use ":/firmware/fw_coptercontrol.opfw"
OPFW_RESOURCE := $(OPGCSSYNTHDIR)/opfw_resource.qrc
OPFW_RESOURCE_PREFIX := ../../
OPFW_FILES := $(foreach fw_targ, $(PACKAGE_FW_TARGETS), $(call toprel, $(BUILD_DIR)/$(fw_targ)/$(fw_targ).opfw))
ifeq ($(WITH_PREBUILT_FW),)
FIRMWARE_DIR := $(FLIGHT_OUT_DIR)
# We need to build the FW targets
$(OPFW_RESOURCE): $(PACKAGE_FW_TARGETS)
else
FIRMWARE_DIR := $(WITH_PREBUILT_FW)
endif
OPFW_FILES := $(foreach fw_targ, $(PACKAGE_FW_TARGETS), $(FIRMWARE_DIR)/$(fw_targ)/$(fw_targ).opfw)
OPFW_CONTENTS := \
<!DOCTYPE RCC><RCC version="1.0"> \
<qresource prefix="/firmware"> \
$(foreach fw_file, $(OPFW_FILES), <file alias="$(notdir $(fw_file))">$(OPFW_RESOURCE_PREFIX)$(fw_file)</file>) \
$(foreach fw_file, $(OPFW_FILES), <file alias="$(notdir $(fw_file))">$(call system_path,$(fw_file))</file>) \
</qresource> \
</RCC>
.PHONY: opfw_resource
opfw_resource: $(OPFW_RESOURCE)
$(OPFW_RESOURCE): $(FW_TARGETS) | $(OPGCSSYNTHDIR)
$(OPFW_RESOURCE): | $(OPGCSSYNTHDIR)
@$(ECHO) Generating OPFW resource file $(call toprel, $@)
$(V1) $(ECHO) $(QUOTE)$(OPFW_CONTENTS)$(QUOTE) > $@
# If opfw_resource or all firmware are requested, GCS should depend on the resource
ifneq ($(strip $(filter opfw_resource all all_fw all_flight package,$(MAKECMDGOALS))),)
$(OPENPILOTGCS_MAKEFILE): $(OPFW_RESOURCE)
$(GCS_MAKEFILE): $(OPFW_RESOURCE)
endif
# Packaging targets: package
@ -717,14 +354,64 @@ endif
# Define some variables
PACKAGE_LBL := $(shell $(VERSION_INFO) --format=\$${LABEL})
PACKAGE_NAME := OpenPilot
PACKAGE_NAME := $(subst $(SPACE),,$(ORG_BIG_NAME))
PACKAGE_SEP := -
PACKAGE_FULL_NAME := $(PACKAGE_NAME)$(PACKAGE_SEP)$(PACKAGE_LBL)
# Source distribution is never dirty because it uses git archive
DIST_LBL := $(subst -dirty,,$(PACKAGE_LBL))
DIST_NAME := $(PACKAGE_NAME)$(PACKAGE_SEP)$(DIST_LBL)
DIST_TAR := $(DIST_DIR)/$(DIST_NAME).tar
DIST_TAR_GZ := $(DIST_TAR).gz
FW_DIST_NAME := $(DIST_NAME)_firmware
FW_DIST_TAR := $(DIST_DIR)/$(FW_DIST_NAME).tar
FW_DIST_TAR_GZ := $(FW_DIST_TAR).gz
DIST_VER_INFO := $(DIST_DIR)/version-info.json
include $(ROOT_DIR)/package/$(UNAME).mk
# Source distribution is never dirty because it uses git archive
DIST_NAME := $(DIST_DIR)/$(subst dirty-,,$(PACKAGE_FULL_NAME)).tar
##############################
#
# Source for distribution
#
##############################
$(DIST_VER_INFO): .git/index | $(DIST_DIR)
$(V1) $(VERSION_INFO) --jsonpath="$(DIST_DIR)"
$(DIST_TAR): $(DIST_VER_INFO) .git/index | $(DIST_DIR)
@$(ECHO) " SOURCE FOR DISTRIBUTION $(call toprel, $(DIST_TAR))"
$(V1) git archive --prefix="$(PACKAGE_NAME)/" -o "$(DIST_TAR)" HEAD
$(V1) tar --append --file="$(DIST_TAR)" \
--transform='s,.*version-info.json,$(PACKAGE_NAME)/version-info.json,' \
$(call toprel, "$(DIST_VER_INFO)")
$(DIST_TAR_GZ): $(DIST_TAR)
@$(ECHO) " SOURCE FOR DISTRIBUTION $(call toprel, $(DIST_TAR_GZ))"
$(V1) gzip -kf "$(DIST_TAR)"
.PHONY: dist_tar_gz
dist_tar_gz: $(DIST_TAR_GZ)
.PHONY: dist
dist: dist_tar_gz
$(FW_DIST_TAR): $(PACKAGE_FW_TARGETS) | $(DIST_DIR)
@$(ECHO) " FIRMWARE FOR DISTRIBUTION $(call toprel, $(FW_DIST_TAR))"
$(V1) tar -c --file="$(FW_DIST_TAR)" --directory=$(FLIGHT_OUT_DIR) \
--transform='s,^,firmware/,' \
$(foreach fw_targ,$(PACKAGE_FW_TARGETS),$(fw_targ)/$(fw_targ).opfw)
$(FW_DIST_TAR_GZ): $(FW_DIST_TAR)
@$(ECHO) " FIRMWARE FOR DISTRIBUTION $(call toprel, $(FW_DIST_TAR_GZ))"
$(V1) gzip -kf "$(FW_DIST_TAR)"
.PHONY: fw_dist_tar_gz
fw_dist_tar_gz: $(FW_DIST_TAR_GZ)
.PHONY: fw_dist
fw_dist: fw_dist_tar_gz
##############################
#
@ -802,26 +489,28 @@ build-info: | $(BUILD_DIR)
##############################
#
# Source for distribution
# Config
#
##############################
DIST_VER_INFO := $(DIST_DIR)/version-info.json
CONFIG_OPTS := $(addsuffix \n,$(MAKEOVERRIDES))
CONFIG_OPTS := $(addprefix override$(SPACE),$(CONFIG_OPTS))
$(DIST_VER_INFO): .git/index | $(DIST_DIR)
$(V1) $(VERSION_INFO) --jsonpath="$(DIST_DIR)"
.PHONY: config_new
config_new:
@printf '$(CONFIG_OPTS)' > $(CONFIG_FILE)
.PHONY: config_append
config_append:
@printf '$(CONFIG_OPTS)' >> $(CONFIG_FILE)
$(DIST_NAME).gz: $(DIST_VER_INFO) .git/index | $(DIST_DIR)
@$(ECHO) " SOURCE FOR DISTRIBUTION $(call toprel, $(DIST_NAME).gz)"
$(V1) git archive --prefix="$(PACKAGE_NAME)/" -o "$(DIST_NAME)" HEAD
$(V1) tar --append --file="$(DIST_NAME)" \
--transform='s,.*version-info.json,$(PACKAGE_NAME)/version-info.json,' \
$(call toprel, "$(DIST_VER_INFO)")
$(V1) gzip -f "$(DIST_NAME)"
.PHONY: config_show
config_show:
@cat $(CONFIG_FILE)
.PHONY: dist
dist: $(DIST_NAME).gz
.PHONY: config_clean
config_clean:
rm -f $(CONFIG_FILE)
##############################
@ -847,7 +536,7 @@ help:
@$(ECHO)
@$(ECHO) " This Makefile is known to work on Linux and Mac in a standard shell environment."
@$(ECHO) " It also works on Windows by following the instructions given on this wiki page:"
@$(ECHO) " http://wiki.openpilot.org/display/Doc/Windows%3A+Building+and+Packaging"
@$(ECHO) " $(WIKI_ROOT_URL)Windows+Building+and+Packaging"
@$(ECHO)
@$(ECHO) " Here is a summary of the available targets:"
@$(ECHO)
@ -857,12 +546,11 @@ help:
@$(ECHO) " arm_sdk_install - Install the GNU ARM gcc toolchain"
@$(ECHO) " qt_sdk_install - Install the QT development tools"
@$(ECHO) " nsis_install - Install the NSIS Unicode (Windows only)"
@$(ECHO) " sdl_install - Install the SDL library (Windows only)"
@$(ECHO) " mesawin_install - Install the OpenGL32 DLL (Windows only)"
@$(ECHO) " openssl_install - Install the OpenSSL libraries (Windows only)"
@$(ECHO) " uncrustify_install - Install the Uncrustify source code beautifier"
@$(ECHO) " doxygen_install - Install the Doxygen documentation generator"
@$(ECHO) " gtest_install - Install the GoogleTest framework"
@$(ECHO) " ccache_install - Install ccache"
@$(ECHO) " These targets are not updated yet and are probably broken:"
@$(ECHO) " openocd_install - Install the OpenOCD JTAG daemon"
@$(ECHO) " stm32flash_install - Install the stm32flash tool for unbricking F1-based boards"
@ -877,7 +565,7 @@ help:
@$(ECHO) " <tool>_distclean - Remove downloaded <tool> distribution file(s)"
@$(ECHO)
@$(ECHO) " [Big Hammer]"
@$(ECHO) " all - Generate UAVObjects, build openpilot firmware and gcs"
@$(ECHO) " all - Generate UAVObjects, build $(ORG_BIG_NAME) firmware and gcs"
@$(ECHO) " all_flight - Build all firmware, bootloaders and bootloader updaters"
@$(ECHO) " all_fw - Build only firmware for all boards"
@$(ECHO) " all_bl - Build only bootloaders for all boards"
@ -930,9 +618,9 @@ help:
@$(ECHO) " ut_<test>_run - Run test and dump output to console"
@$(ECHO)
@$(ECHO) " [Simulation]"
@$(ECHO) " sim_osx - Build OpenPilot simulation firmware for OSX"
@$(ECHO) " sim_osx - Build $(ORG_BIG_NAME) simulation firmware for OSX"
@$(ECHO) " sim_osx_clean - Delete all build output for the osx simulation"
@$(ECHO) " sim_win32 - Build OpenPilot simulation firmware for Windows"
@$(ECHO) " sim_win32 - Build $(ORG_BIG_NAME) simulation firmware for Windows"
@$(ECHO) " using mingw and msys"
@$(ECHO) " sim_win32_clean - Delete all build output for the win32 simulation"
@$(ECHO)
@ -958,9 +646,10 @@ help:
@$(ECHO) " Supported groups are ($(UAVOBJ_TARGETS))"
@$(ECHO)
@$(ECHO) " [Packaging]"
@$(ECHO) " package - Build and package the OpenPilot platform-dependent package (no clean)"
@$(ECHO) " package - Build and package the platform-dependent package (no clean)"
@$(ECHO) " opfw_resource - Generate resources to embed firmware binaries into the GCS"
@$(ECHO) " dist - Generate source archive for distribution"
@$(ECHO) " fw_dist - Generate archive of firmware"
@$(ECHO) " install - Install GCS to \"DESTDIR\" with prefix \"prefix\" (Linux only)"
@$(ECHO)
@$(ECHO) " [Code Formatting]"
@ -975,6 +664,11 @@ help:
@$(ECHO) " docs_<source>_clean - Delete generated documentation for <source>"
@$(ECHO) " docs_all_clean - Delete all generated documentation"
@$(ECHO)
@$(ECHO) " [Configuration]"
@$(ECHO) " config_new - Place your make arguments in the config file"
@$(ECHO) " config_append - Place your make arguments in the config file but append"
@$(ECHO) " config_clean - Removes the config file"
@$(ECHO)
@$(ECHO) " Hint: Add V=1 to your command line to see verbose build output."
@$(ECHO)
@$(ECHO) " Notes: All tool distribution files will be downloaded into $(DL_DIR)"
@ -982,7 +676,7 @@ help:
@$(ECHO) " All build output will be placed in $(BUILD_DIR)"
@$(ECHO)
@$(ECHO) " Tool download and install directories can be changed using environment variables:"
@$(ECHO) " OPENPILOT_DL_DIR full path to downloads directory [downloads if not set]"
@$(ECHO) " OPENPILOT_TOOLS_DIR full path to installed tools directory [tools if not set]"
@$(ECHO) " More info: http://wiki.openpilot.org/display/Doc/OpenPilot+Build+System+Overview"
@$(ECHO) " DL_DIR full path to downloads directory [downloads if not set]"
@$(ECHO) " TOOLS_DIR full path to installed tools directory [tools if not set]"
@$(ECHO) " More info: $(WIKI_URL_ROOT)LibrePilot+Build+System+Overview"
@$(ECHO)

41
README.md Normal file
View File

@ -0,0 +1,41 @@
About the LibrePilot Project
============================
### Open - Collaborative - Free
The LibrePilot open source project was founded in July 2015. It focuses on
research and development of software and hardware to be used in a variety of
applications including vehicle control and stabilization, unmanned autonomous
vehicles and robotics. One of the projects primary goals is to provide an open
and collaborative environment making it the ideal home for development of
innovative ideas.
LibrePilot welcomes and encourages exchange and collaboration with other
projects, like adding support for existing hardware or software in
collaboration under the spirit of open source.
LibrePilot finds its roots in the OpenPilot project and the founding members
are all long-standing contributors in that project.
The LibrePilot Project will be governed by a board of members using consensual
methods to make important decisions and to set the overall direction of the
project.
The LibrePilot source code is released under the OSI approved GPLv3 license.
Integral text of the license can be found at [www.gnu.org](http://www.gnu.org/licenses/gpl-3.0.en.html)
Links for the LibrePilot Project
--------------------------------
- [Main project web site](https://www.librepilot.org)
- [Project forums](https://forum.librepilot.org)
- [Software downloads](https://librepilot.atlassian.net/wiki/display/LPDOC/Downloads)
- [Wiki](https://librepilot.atlassian.net/wiki/display/LPDOC/Welcome)
- [Source code repository](https://bitbucket.org/librepilot)
- [Mirror](https://github.com/librepilot)
- [Issue tracker](https://librepilot.atlassian.net)
- [Gitter Chat](https://gitter.im/librepilot/LibrePilot)
- IRC: #LibrePilot on FreeNode
[![Build Status](https://travis-ci.org/librepilot/LibrePilot.svg?branch=next)](https://travis-ci.org/librepilot/LibrePilot)

View File

@ -1,44 +0,0 @@
What is OpenPilot all about?
----------------------------
The project aims at implementing the best features of all existing similar systems developed by
enthusiasts and combines them into a single, easy-to-use software/hardware package. The ease-of-use
in this case does not imply functional simplicity or compromises. There are no rigidly defined
constraints and settings, but a full-fledged programming language configuration loaded via a
Ground Control Station and other advanced features. OpenPilot is developed as a powerful platform
for all types of vehicles.
This is a non-profit project of the OpenPilot Foundation
--------------------------------------------------------
This is a project using only volunteer personnel who have donated enormous amounts of time, money
and effort. Please respect the people that are part of the project and their generosity. OpenPilot
is funded entirely at the expense of those who spend their time and money in the development of the
public project which helps it grow. Giving complete and correct references to all their work is not
only a legal requirement of the CC-BY-SA license, but also simple respect for their work. The people
who create this project, really deserve it for their very hard work.
The OpenPilot project web sites
-------------------------------
The project provides feature-rich development and collaboration environment using advanced tools such
as GCC compilers, git, Atlassian JIRA, Confluence, FishEye, Crucible, Bamboo, Crowd, forums and blogs.
Main project web site: http://www.openpilot.org/
Project forums: http://forums.openpilot.org/
Wiki, docs and manuals: http://wiki.openpilot.org/
Bug and issue tracker: http://progress.openpilot.org/
Source code repository: http://git.openpilot.org/
Crucible code reviews: http://reviews.openpilot.org/cru
Project build server: http://bamboo.openpilot.org/
Community blogs: http://forums.openpilot.org/blogs/
Software downloads: http://wiki.openpilot.org/display/WIKI/OpenPilot+Downloads
How to build from source?
-------------------------
make all_sdk_install
make all
The project supports Windows, Linux and Mac OS X platforms as well as Android.
Check the wiki for more details: http://wiki.openpilot.org/display/Doc/OpenPilot+Developer+Manual

View File

@ -1,38 +1,133 @@
Release Notes - OpenPilot - Version RELEASE-15.05 RC7
-- RELEASE-15.09 - First LibrePilot Release -- Supermoon Eclipse
This is the first LibrePilot release.
The main focus of this release is to bring back support for CC3D and a general re-branding of the GCS.
RC7 changes relative to RC6:
1. Nano hardware page fixes
2. Upgrade google map version
3. xtal frequency changes again to suit an sbus receiver.
4. OP-1875 reinit EKF on changes to AuxMagSettings
RC6 changes relative to RC5:
1. Altvario AltHold PID updates
2. Fix timer bank assignments
3. Reboot nano in wizard only when needed
4. Fix wizard limits for oneshot/pwmsync
5. Update PFD with latest flight modes
6. Add AccelTau, AccelKp and AccelKi to TxPID
7. Adding support for SRXL in vehicle wizard.
8. OSD TxPID display
9. MPU9k reset fixes and frequency fix affecting baud rate accuracy
The full list of bug fixes and enhancements in this release is available here:
https://librepilot.atlassian.net/issues/?filter=10300
RC5 changes relative to RC4:
1. Landing flight mode now truely disarms to complete its sequence, triggered by a critical guidance alarm. Reset via change of flight mode.
2. VelocityRoam now has its own VelocityRoamHorizontalVelPID to allow independent tuning.
3. Sanity check for PWMSync & OneShot while using PWM receiver. Remove CC in hwsettings.xml
4. Wizard freeze issue on erase settings fixed.
** Bug
* [LP-37] - Memory wasted in pvPortMallocGeneric
* [LP-57] - Errors during NewsPanel data scraping
* [LP-58] - Splash Screen doesn't display
* [LP-59] - Replace openpilot email address in packaging
* [LP-65] - Heli config tab refresh
* [LP-69] - Add SRXL to CC3D target
* [LP-70] - Vehicle Setup Wizard allows a not working CC3D configuration
* [LP-84] - Nano (Revo Nano) does not automatically select correct firmware after Firmware then Halt
* [LP-89] - Port bug fixes from OP HotFix 150501
* [LP-107] - Motors could accidentally turn off with the recent motor output scaling feature
* [LP-115] - TPS and Acro+ settings are initialized incorrectly
* [LP-116] - Add uninstall to Makefile to prevent side effects from Installing over a previous installation
* [LP-123] - EasyTune yaw calculation is active even if easytune is not active
* [LP-125] - PathUtils should return absolute pathes
* [LP-127] - Fix Mac tool install md5 check
* [LP-128] - ElevateAndCompress is broken at full throttle
* [LP-134] - Obsolete Google Satellite Version
* [LP-135] - Aux mag calibration issue
* [LP-136] - Build errors caused by broken uavobjgenerator make dependencies
* [LP-153] - Bug in configrevohwwidget.cpp use MAINPORT enum not FLEXIPORT
* [LP-155] - GCS crashes on OS X 10.11 when the board is halted
* [LP-156] - Update Vehicle templates to work with current UAVO's
RC4 changes relative to RC3:
1. GCS Input flight mode limit fixes hiding unsupported modes.
2. Throttle check on GPSAssist/Stabi whilst in hold removed. Now easy to fly out of hold without reducing throttle.
3. Trialing Rate instead of AxisLock on Yaw during Braking.
4. VelocityRoam now passing throttle position to AltVario. previously it was stuck in AltHold.
5. OP-1905 Fix OPLN in PPM mode blocking telemetry stream of no USB connected
** Epic
* [LP-1] - Code Rebranding
** Story
* [LP-3] - Artwork rebranding
* [LP-4] - Add a Gitter chat link to README.txt
* [LP-5] - Add back CC/CC3D Support
* [LP-6] - Laurent/lp 03 artwork rebranding
* [LP-7] - OP-1879 remove openpilot hardcoding
* [LP-8] - OP-1929 broken package src
* [LP-9] - Hotfix for files that were missed in share directory move due to rebase
* [LP-12] - Openpilot migration
* [LP-13] - some more OP hardcoding fixes
* [LP-14] - Remove some more openpilot hardcoding
* [LP-17] - Laurent/lp 03 artwork icons splashscreen
* [LP-18] - Makefile fix
* [LP-19] - Remove openpilot hardcoding
* [LP-20] - Menu item change
* [LP-21] - udevdir fix
* [LP-22] - Desktopfile migration
* [LP-23] - amorale/lp-05 readd cc rebased
* [LP-24] - filnet/op 1518 osgearth
* [LP-28] - Removed OpenPilot reference in About menu
* [LP-33] - Remove op from gcs dir structure
* [LP-35] - Removed OpenPilot reference in About Menu
* [LP-43] - change links and headers in welcome plugin
* [LP-44] - Review and cleanup to free some memory for CC3D
* [LP-47] - Fixed missing QDataStream includes to make compilation on qt 5.5 work
* [LP-48] - French translation
* [LP-49] - Laurent/lp 48 update rebranding strings translations
* [LP-50] - Make name define available for all by setting in openpilotgcs.pri
* [LP-51] - Wrong config tab contents
* [LP-52] - LP-51 Fix merge issue for Revo / Revonano HW config display
* [LP-53] - Set up Anonymous data collection to send information to the LibrePilot website
* [LP-55] - Config fix for echo without -e
* [LP-62] - Implement rpm spec
** New Feature
* [LP-100] - Make firmware package
* [LP-101] - Make build possible with prebuilt firmware
** Task
* [LP-16] - Vehicle template enhancements.
* [LP-26] - Update Welcome page plugin.
* [LP-27] - LP-16 Vehicle templates enhancements
* [LP-36] - Win install fixes
* [LP-41] - Add support for ccache
* [LP-42] - Added option for config file.
* [LP-60] - Fix project links in readme
* [LP-92] - Remove old Feed Forward
* [LP-98] - SystemHealth refresh
* [LP-99] - Decouple flight build
* [LP-113] - Create new tool install framework
* [LP-129] - Remove broken scaleMotor modes
* [LP-138] - Remove OpenPilot branding from Makefile Help text
* [LP-141] - Missing link for wiki help page on Stabilization Configuration page
* [LP-142] - Replace remaining OpenPilot wiki links with LibrePilot links
** Improvement
* [LP-10] - Cleanup build warnings on OSX
* [LP-56] - Split roll/pitch acro+ factors
* [LP-61] - Make more things configurable with make config
* [LP-64] - Install target for ccache
* [LP-66] - Add differential Roll mixing to Fixed Wing frames
* [LP-67] - Add a txpid option that manage all PID factors at once
* [LP-77] - Jira needs more Component options
* [LP-80] - Extend linux packaging to easily support new distros
* [LP-82] - Define all packaging descriptions and URLs in top Makefile
* [LP-87] - Remove OpenPilot branding from Doxygen Documentation
* [LP-93] - Thermal calibration should calculate also gyro bias
* [LP-94] - Set up Wiki link in Configuration tabs to point to Librepilot Wiki
* [LP-102] - Remove OpenPilot links in "About Plugins" dialog boxes
* [LP-106] - Setup Wizard refresh
* [LP-108] - Fixes for mpu6k
* [LP-110] - Wizard : high rate servos and normal Esc rate for planes and ground vehicles
* [LP-114] - Support to more than three Accessory channels
* [LP-124] - Rename RollRatePID and PitcahRatePID to EasyTuneRateRoll and EasyTuneRatePitch
* [LP-130] - Add an overridable postfix that is appended to GCS name
* [LP-162] - Add more data to usage tracker.
This release introduces new features and new hardware support for the Revolution Nano. Note that the CC3D is not supported by this feature release. New features for multirotors include:
--- RELEASE-15.05.01 HOTFIX --- Banana Split ---
This release fixes an important bug. All Revolution hardware running 15.05 should upgrade to 15.05.01. Note that this is a hotfix; it can
simply be flashed without an erase settings. Furthermore, please review your vtolpathfollowersettings:HorizontalVelMax; a value of around 4m/s would be more appropriate for preliminary trialing of a new release and will be changed in future.
Release Notes - OP Next Generation - Version OP15.05.01
** Bug
* [NG-55] - 15.05 PositionHold exhibits fly-away behaviour at the vtolpathfollowersettings maxRollPitch and HorizontalVelMax values.
--- RELEASE-15.05 --- Banana Split ---
This release introduces new features and new hardware support for the Revolution Nano.
Note that the CC3D is not supported by this feature release.
New features for multirotors include:
- Fully autonomous flight is now possible with auto-takeoff and landing as flight modes available to path plans.
- An all new implementation of altitude vario provides improved altitude maintenance and smoother flight.
- A new RateTrainer flight mode for beginners and aerial photographers makes it easier to use this mode by limiting the pitch and roll extents.
@ -42,10 +137,6 @@ This release introduces new features and new hardware support for the Revolution
- Full speed flight just got faster with new motor constraints that maintain your ability to enact roll without requiring an upper throttle limit of 90%.
- Setup of GPS is now automatic with auto-baud detection.
- Support for dual telemetry and minim OSD programing have been added.
- New control protocols have been introduced.
The full list of bugfixes in this release is accessible here:
Release Notes - OpenPilot - Version RELEASE-15.05
@ -64,10 +155,13 @@ Release Notes - OpenPilot - Version RELEASE-15.05
* [OP-1867] - PathPlanner AutoLand simplification
* [OP-1869] - Allow Analog Airspeed scale
* [OP-1872] - Vehicle Wiz Tricopter tail servo settings don't save
* [OP-1875] - MagSource changes not applied
* [OP-1888] - SIGSEGV after starting simulator in HITL
* [OP-1893] - Deadband changes max stick input
* [OP-1905] - OPLM in PPM mode blocks telemetry stream if no USB connected
* [OP-1906] - Auto land - yaw disarm can cause a crash
* [OP-1915] - google map issue
** Improvement
* [OP-1289] - Need Revo to send two telemetry streams for OSD and GCS
@ -113,9 +207,13 @@ Release Notes - OpenPilot - Version RELEASE-15.05
* [OP-1832] - Need method to get default UAV Object settings in Java UAVObjects
* [OP-1849] - Support programming/update of minimosd using USB VCP port
* [OP-1863] - RateTrainer mode - add maxpitch for beginners and aerial photography
** Sub task
* [OP-1901] - Add SRXL configuration support to Vehicle Setup Wizard.
--- RELEASE-15.02.02 ---
This release fixes a bug that prevents revo onboard mag to work correctly.

Binary file not shown.

After

Width:  |  Height:  |  Size: 162 KiB

View File

Before

Width:  |  Height:  |  Size: 160 KiB

After

Width:  |  Height:  |  Size: 160 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 130 KiB

View File

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 31 KiB

View File

Before

Width:  |  Height:  |  Size: 129 KiB

After

Width:  |  Height:  |  Size: 129 KiB

View File

Before

Width:  |  Height:  |  Size: 188 KiB

After

Width:  |  Height:  |  Size: 188 KiB

View File

Before

Width:  |  Height:  |  Size: 136 KiB

After

Width:  |  Height:  |  Size: 136 KiB

View File

Before

Width:  |  Height:  |  Size: 309 KiB

After

Width:  |  Height:  |  Size: 309 KiB

View File

Before

Width:  |  Height:  |  Size: 129 KiB

After

Width:  |  Height:  |  Size: 129 KiB

View File

Before

Width:  |  Height:  |  Size: 253 KiB

After

Width:  |  Height:  |  Size: 253 KiB

View File

Before

Width:  |  Height:  |  Size: 261 KiB

After

Width:  |  Height:  |  Size: 261 KiB

View File

Before

Width:  |  Height:  |  Size: 344 KiB

After

Width:  |  Height:  |  Size: 344 KiB

View File

Before

Width:  |  Height:  |  Size: 114 KiB

After

Width:  |  Height:  |  Size: 114 KiB

View File

Before

Width:  |  Height:  |  Size: 1.0 MiB

After

Width:  |  Height:  |  Size: 1.0 MiB

View File

Before

Width:  |  Height:  |  Size: 102 KiB

After

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 127 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 126 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

View File

Before

Width:  |  Height:  |  Size: 96 KiB

After

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

View File

Before

Width:  |  Height:  |  Size: 84 KiB

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

View File

Before

Width:  |  Height:  |  Size: 84 KiB

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

View File

Before

Width:  |  Height:  |  Size: 125 KiB

After

Width:  |  Height:  |  Size: 125 KiB

Binary file not shown.

View File

Before

Width:  |  Height:  |  Size: 132 KiB

After

Width:  |  Height:  |  Size: 132 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 93 KiB

After

Width:  |  Height:  |  Size: 93 KiB

View File

Before

Width:  |  Height:  |  Size: 131 KiB

After

Width:  |  Height:  |  Size: 131 KiB

View File

Before

Width:  |  Height:  |  Size: 131 KiB

After

Width:  |  Height:  |  Size: 131 KiB

View File

Before

Width:  |  Height:  |  Size: 127 KiB

After

Width:  |  Height:  |  Size: 127 KiB

View File

Before

Width:  |  Height:  |  Size: 123 KiB

After

Width:  |  Height:  |  Size: 123 KiB

View File

Before

Width:  |  Height:  |  Size: 131 KiB

After

Width:  |  Height:  |  Size: 131 KiB

View File

Before

Width:  |  Height:  |  Size: 96 KiB

After

Width:  |  Height:  |  Size: 96 KiB

View File

Before

Width:  |  Height:  |  Size: 51 KiB

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

BIN
artwork/3D Model/multi/test_quad/test_quad_+-old.3ds Normal file → Executable file

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

After

Width:  |  Height:  |  Size: 113 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

View File

Before

Width:  |  Height:  |  Size: 121 KiB

After

Width:  |  Height:  |  Size: 121 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 114 KiB

View File

Before

Width:  |  Height:  |  Size: 210 KiB

After

Width:  |  Height:  |  Size: 210 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 130 KiB

View File

Before

Width:  |  Height:  |  Size: 143 KiB

After

Width:  |  Height:  |  Size: 143 KiB

View File

Before

Width:  |  Height:  |  Size: 484 KiB

After

Width:  |  Height:  |  Size: 484 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

View File

@ -0,0 +1,725 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="302.05917mm"
height="252.19586mm"
viewBox="0 0 1070.2883 893.60738"
id="svg7377"
version="1.1"
inkscape:version="0.91 r13725"
sodipodi:docname="LibrePilot_logo.svg"
inkscape:export-filename="./librepilot_logo_64.png"
inkscape:export-xdpi="11.52"
inkscape:export-ydpi="11.52">
<title
id="title3513">LibrePilot Logo</title>
<defs
id="defs7379" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.39867996"
inkscape:cx="517.71302"
inkscape:cy="324.03604"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
fit-margin-top="10"
fit-margin-right="10"
fit-margin-left="10"
fit-margin-bottom="10"
inkscape:window-width="1280"
inkscape:window-height="927"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-maximized="1"
inkscape:snap-page="true"
inkscape:snap-bbox="true"
inkscape:bbox-nodes="true"
inkscape:snap-bbox-midpoints="true"
inkscape:snap-midpoints="true" />
<metadata
id="metadata7382">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title>LibrePilot Logo</dc:title>
<dc:date>July 2015</dc:date>
<dc:creator>
<cc:Agent>
<dc:title>LibrePilot</dc:title>
</cc:Agent>
</dc:creator>
<dc:identifier>www.librepilot.org</dc:identifier>
<cc:license
rdf:resource="http://creativecommons.org/licenses/by-nc-nd/3.0/" />
</cc:Work>
<cc:License
rdf:about="http://creativecommons.org/licenses/by-nc-nd/3.0/">
<cc:permits
rdf:resource="http://creativecommons.org/ns#Reproduction" />
<cc:permits
rdf:resource="http://creativecommons.org/ns#Distribution" />
<cc:requires
rdf:resource="http://creativecommons.org/ns#Notice" />
<cc:requires
rdf:resource="http://creativecommons.org/ns#Attribution" />
<cc:prohibits
rdf:resource="http://creativecommons.org/ns#CommercialUse" />
</cc:License>
</rdf:RDF>
</metadata>
<g
inkscape:label="Calque 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(566.91944,446.91581)">
<g
id="g3502"
transform="translate(554.89321,146.32681)"
inkscape:export-xdpi="401.10089"
inkscape:export-ydpi="401.10089">
<path
inkscape:connector-curvature="0"
id="rect8168"
d="M -561.37457,-37.809547 L -112.54027,-37.809547 L -112.54027,121.2776 L -561.37457,121.2776 Z"
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
<g
inkscape:export-ydpi="56.630924"
inkscape:export-xdpi="56.630924"
id="g8170"
transform="translate(-691.00285,-528.64572)">
<g
id="text8172"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:80px;line-height:125%;font-family:paola;-inkscape-font-specification:paola;letter-spacing:0px;word-spacing:0px;fill:#767575;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1">
<path
inkscape:connector-curvature="0"
id="path4625"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Prototype;-inkscape-font-specification:Prototype;fill:#767575;fill-opacity:1"
d="M 184.74482,611.42617 L 163.06482,611.42617 Q 159.94482,611.42617 159.94482,608.78617 L 159.94482,565.26617 Q 159.94482,564.46617 159.14482,564.46617 L 149.14482,564.46617 Q 148.34482,564.46617 148.34482,565.26617 L 148.34482,607.82617 Q 148.34482,614.54617 151.14482,617.90617 Q 153.94482,621.18617 160.58482,621.74617 Q 160.98482,621.82617 161.54482,621.82617 Q 162.10482,621.82617 162.74482,621.82617 L 184.74482,621.82617 Q 185.54482,621.82617 185.54482,621.02617 L 185.54482,612.22617 Q 185.54482,611.42617 184.74482,611.42617 Z" />
<path
inkscape:connector-curvature="0"
id="path4627"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Prototype;-inkscape-font-specification:Prototype;fill:#767575;fill-opacity:1"
d="M 189.36232,621.02617 Q 189.36232,621.82617 190.16232,621.82617 L 198.32232,621.82617 Q 199.12232,621.82617 199.12232,621.02617 L 199.12232,580.94617 Q 199.12232,580.14617 198.32232,580.14617 L 190.16232,580.14617 Q 189.36232,580.14617 189.36232,580.94617 L 189.36232,621.02617 Z M 189.36232,565.26617 L 189.36232,573.42617 Q 189.36232,574.22617 190.16232,574.22617 L 198.32232,574.22617 Q 199.12232,574.22617 199.12232,573.42617 L 199.12232,565.26617 Q 199.12232,564.46617 198.32232,564.46617 L 190.16232,564.46617 Q 189.36232,564.46617 189.36232,565.26617 Z" />
<path
inkscape:connector-curvature="0"
id="path4629"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Prototype;-inkscape-font-specification:Prototype;fill:#767575;fill-opacity:1"
d="M 215.52857,579.34617 L 215.52857,565.26617 Q 215.52857,564.46617 214.72857,564.46617 L 206.56857,564.46617 Q 205.76857,564.46617 205.76857,565.26617 L 205.76857,621.02617 Q 205.76857,621.82617 206.56857,621.82617 L 231.44857,621.82617 Q 235.12857,621.82617 237.84857,619.98617 Q 240.64857,618.06617 242.40857,615.18617 Q 244.16857,612.22617 245.04857,608.54617 Q 245.92857,604.86617 245.92857,601.26617 Q 245.92857,596.54617 245.04857,592.62617 Q 244.24857,588.70617 242.48857,585.98617 Q 240.72857,583.18617 238.00857,581.66617 Q 235.28857,580.14617 231.44857,580.14617 L 216.32857,580.14617 Q 215.52857,580.14617 215.52857,579.34617 Z M 215.52857,590.70617 Q 215.52857,589.90617 216.32857,589.90617 L 225.04857,589.90617 Q 227.52857,589.90617 229.52857,590.38617 Q 231.60857,590.78617 233.04857,592.06617 Q 234.56857,593.26617 235.36857,595.50617 Q 236.16857,597.74617 236.16857,601.26617 Q 236.16857,604.54617 235.36857,606.62617 Q 234.56857,608.70617 233.12857,609.90617 Q 231.68857,611.10617 229.60857,611.58617 Q 227.52857,612.06617 225.04857,612.06617 L 216.32857,612.06617 Q 215.52857,612.06617 215.52857,611.26617 L 215.52857,590.70617 Z" />
<path
inkscape:connector-curvature="0"
id="path4631"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Prototype;-inkscape-font-specification:Prototype;fill:#767575;fill-opacity:1"
d="M 260.77607,580.14617 Q 258.61607,580.14617 256.69607,581.02617 Q 254.77607,581.82617 253.33607,583.26617 Q 251.89607,584.70617 251.01607,586.62617 Q 250.21607,588.54617 250.21607,590.62617 L 250.21607,621.02617 Q 250.21607,621.82617 251.01607,621.82617 L 259.97607,621.82617 Q 260.77607,621.82617 260.77607,621.02617 L 260.77607,593.42617 Q 260.77607,592.94617 261.01607,592.38617 Q 261.25607,591.74617 261.65607,591.26617 Q 262.13607,590.70617 262.69607,590.30617 Q 263.25607,589.90617 263.97607,589.90617 L 271.65607,589.90617 Q 272.45607,589.90617 272.45607,589.10617 L 272.45607,580.94617 Q 272.45607,580.14617 271.65607,580.14617 L 260.77607,580.14617 Z" />
<path
inkscape:connector-curvature="0"
id="path4633"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Prototype;-inkscape-font-specification:Prototype;fill:#767575;fill-opacity:1"
d="M 285.34607,605.66617 L 314.94607,605.66617 Q 315.74607,605.66617 315.74607,604.86617 L 315.74607,596.54617 Q 315.74607,592.78617 314.62607,589.74617 Q 313.58607,586.70617 311.26607,584.62617 Q 308.94607,582.46617 305.34607,581.34617 Q 301.74607,580.14617 296.78607,580.14617 Q 292.78607,580.14617 288.78607,581.18617 Q 284.86607,582.14617 281.66607,584.62617 Q 278.54607,587.10617 276.54607,591.34617 Q 274.62607,595.50617 274.62607,601.90617 Q 274.62607,607.18617 275.74607,610.94617 Q 276.94607,614.70617 279.66607,617.18617 Q 282.46607,619.58617 286.94607,620.70617 Q 291.50607,621.82617 298.22607,621.82617 L 311.74607,621.82617 Q 312.54607,621.82617 312.54607,621.02617 L 312.54607,612.86617 Q 312.54607,612.06617 311.74607,612.06617 L 292.70607,612.06617 Q 291.02607,612.06617 289.50607,611.66617 Q 287.98607,611.18617 286.86607,610.46617 Q 285.82607,609.66617 285.18607,608.70617 Q 284.54607,607.66617 284.54607,606.46617 Q 284.54607,605.66617 285.34607,605.66617 Z M 285.34607,596.30617 Q 284.54607,596.30617 284.54607,595.50617 Q 284.54607,593.98617 285.74607,592.78617 Q 286.94607,591.50617 288.70607,590.70617 Q 290.54607,589.82617 292.46607,589.34617 Q 294.46607,588.86617 296.06607,588.86617 Q 301.10607,588.86617 303.90607,590.70617 Q 306.70607,592.46617 306.70607,595.50617 Q 306.70607,596.30617 305.90607,596.30617 L 285.34607,596.30617 Z" />
</g>
<g
id="text8176"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:85.35001373px;line-height:125%;font-family:paola;-inkscape-font-specification:paola;letter-spacing:0px;word-spacing:0px;fill:#767575;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
transform="scale(1.0668752,0.93731676)">
<path
inkscape:connector-curvature="0"
id="path4636"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Prototype;-inkscape-font-specification:Prototype;fill:#767575;fill-opacity:1"
d="M 368.68865,604.0074 L 368.68865,662.55751 Q 368.68865,663.41101 369.54215,663.41101 L 380.2109,663.41101 Q 381.0644,663.41101 381.0644,662.55751 L 381.0644,643.01236 Q 381.0644,642.15886 381.9179,642.15886 L 396.76881,642.15886 Q 401.54841,642.15886 404.87706,640.79326 Q 408.20571,639.34231 410.25411,636.69646 Q 412.30251,634.05061 413.24136,630.38056 Q 414.18021,626.7105 414.18021,622.18695 Q 414.18021,617.8341 413.24136,614.16405 Q 412.30251,610.494 410.25411,607.84815 Q 408.20571,605.2023 404.87706,603.75135 Q 401.54841,602.21505 396.76881,602.21505 L 369.54215,602.21505 Q 368.68865,602.21505 368.68865,603.06855 L 368.68865,604.0074 Z M 398.21976,613.31055 Q 399.75606,613.31055 400.60956,614.4201 Q 401.54841,615.4443 401.97516,616.89525 Q 402.40191,618.3462 402.48726,619.8825 Q 402.65796,621.33345 402.65796,622.18695 Q 402.65796,623.04045 402.48726,624.57675 Q 402.40186,626.0277 401.97516,627.47865 Q 401.54841,628.92961 400.60956,630.03916 Q 399.75606,631.06336 398.21976,631.06336 L 381.9179,631.06336 Q 381.0644,631.06336 381.0644,630.20986 L 381.0644,614.16405 Q 381.0644,613.31055 381.9179,613.31055 L 398.21976,613.31055 Z" />
<path
inkscape:connector-curvature="0"
id="path4638"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Prototype;-inkscape-font-specification:Prototype;fill:#767575;fill-opacity:1"
d="M 418.69842,662.55751 Q 418.69842,663.41101 419.55192,663.41101 L 428.25763,663.41101 Q 429.11113,663.41101 429.11113,662.55751 L 429.11113,619.79715 Q 429.11113,618.94365 428.25763,618.94365 L 419.55192,618.94365 Q 418.69842,618.94365 418.69842,619.79715 L 418.69842,662.55751 Z M 418.69842,603.06855 L 418.69842,611.77425 Q 418.69842,612.62775 419.55192,612.62775 L 428.25763,612.62775 Q 429.11113,612.62775 429.11113,611.77425 L 429.11113,603.06855 Q 429.11113,602.21505 428.25763,602.21505 L 419.55192,602.21505 Q 418.69842,602.21505 418.69842,603.06855 Z" />
<path
inkscape:connector-curvature="0"
id="path4640"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Prototype;-inkscape-font-specification:Prototype;fill:#767575;fill-opacity:1"
d="M 436.20184,603.06855 L 436.20184,653.68111 L 436.20184,653.85181 L 436.20184,662.55751 Q 436.20184,663.41101 437.05534,663.41101 L 445.76104,663.41101 Q 446.61454,663.41101 446.61454,662.55751 L 446.61454,653.85181 L 446.61454,653.68111 L 446.61454,603.06855 Q 446.61454,602.21505 445.76104,602.21505 L 437.05534,602.21505 Q 436.20184,602.21505 436.20184,603.06855 Z" />
<path
inkscape:connector-curvature="0"
id="path4642"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Prototype;-inkscape-font-specification:Prototype;fill:#767575;fill-opacity:1"
d="M 496.20957,631.74616 Q 496.20957,628.67356 495.01467,626.3691 Q 493.90512,623.9793 492.02742,622.35765 Q 490.23507,620.65065 487.84527,619.79715 Q 485.54082,618.94365 483.23637,618.94365 L 465.99567,618.94365 Q 463.26447,618.94365 460.78932,619.8825 Q 458.39952,620.82135 456.60717,622.6137 Q 454.81482,624.3207 453.70527,626.79585 Q 452.68107,629.27101 452.68107,632.34361 L 452.68107,647.36521 Q 452.68107,650.35246 453.27852,653.25436 Q 453.87597,656.07091 455.41227,658.37536 Q 456.94857,660.59446 459.50907,662.04541 Q 462.06957,663.41101 465.99567,663.41101 L 481.18797,663.41101 Q 485.11407,663.41101 487.93062,662.64286 Q 490.74717,661.87471 492.53952,659.91166 Q 494.41722,657.94861 495.27072,654.61996 Q 496.20957,651.29131 496.20957,646.17031 L 496.20957,631.74616 Z M 485.71152,641.04931 L 485.71152,647.87731 Q 485.71152,650.09641 483.40707,651.54736 Q 481.18797,652.99831 478.11537,652.99831 L 470.26317,652.99831 Q 469.15362,652.99831 467.87337,652.82761 Q 466.59312,652.57156 465.48357,651.97411 Q 464.37402,651.29131 463.60587,650.18176 Q 462.92307,649.07221 462.92307,647.36521 L 462.92307,633.70921 Q 462.92307,632.51431 463.52052,631.66081 Q 464.11797,630.80731 464.97147,630.29521 Q 465.91032,629.78311 467.01987,629.61241 Q 468.12942,629.35636 469.23897,629.35636 L 478.54212,629.35636 Q 479.82237,629.35636 481.10262,629.61241 Q 482.38287,629.86846 483.40707,630.46591 Q 484.43127,630.97801 485.02872,631.83151 Q 485.71152,632.59966 485.71152,633.62386 L 485.71152,641.04931 Z" />
<path
inkscape:connector-curvature="0"
id="path4644"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Prototype;-inkscape-font-specification:Prototype;fill:#767575;fill-opacity:1"
d="M 516.89095,630.20986 Q 516.89095,629.35636 517.74445,629.35636 L 524.74315,629.35636 Q 525.59665,629.35636 525.59665,628.50286 L 525.59665,619.79715 Q 525.59665,618.94365 524.74315,618.94365 L 517.74445,618.94365 Q 516.89095,618.94365 516.89095,618.09015 L 516.89095,607.4214 Q 516.89095,606.5679 516.03745,606.5679 L 507.33175,606.5679 Q 506.47825,606.5679 506.47825,607.4214 L 506.47825,618.09015 Q 506.47825,618.94365 505.62475,618.94365 L 501.1012,618.94365 Q 500.2477,618.94365 500.2477,619.79715 L 500.2477,628.50286 Q 500.2477,629.35636 501.1012,629.35636 L 505.62475,629.35636 Q 506.47825,629.35636 506.47825,630.20986 L 506.47825,656.83906 Q 506.47825,659.48491 508.612,661.44796 Q 510.74575,663.41101 513.98905,663.41101 L 524.74315,663.41101 Q 525.59665,663.41101 525.59665,662.55751 L 525.59665,653.85181 Q 525.59665,653.08366 524.91385,652.99831 L 517.74445,652.99831 Q 516.89095,652.99831 516.89095,652.14481 L 516.89095,630.20986 Z" />
</g>
<g
id="text8180"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:80px;line-height:125%;font-family:paola;-inkscape-font-specification:paola;letter-spacing:0px;word-spacing:0px;fill:#ff6000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1">
<path
inkscape:connector-curvature="0"
id="path4647"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Prototype;-inkscape-font-specification:Prototype;fill:#ff6000;fill-opacity:1"
d="M 183.74482,610.42617 L 162.06482,610.42617 Q 158.94482,610.42617 158.94482,607.78617 L 158.94482,564.26617 Q 158.94482,563.46617 158.14482,563.46617 L 148.14482,563.46617 Q 147.34482,563.46617 147.34482,564.26617 L 147.34482,606.82617 Q 147.34482,613.54617 150.14482,616.90617 Q 152.94482,620.18617 159.58482,620.74617 Q 159.98482,620.82617 160.54482,620.82617 Q 161.10482,620.82617 161.74482,620.82617 L 183.74482,620.82617 Q 184.54482,620.82617 184.54482,620.02617 L 184.54482,611.22617 Q 184.54482,610.42617 183.74482,610.42617 Z" />
<path
inkscape:connector-curvature="0"
id="path4649"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Prototype;-inkscape-font-specification:Prototype;fill:#ff6000;fill-opacity:1"
d="M 188.36232,620.02617 Q 188.36232,620.82617 189.16232,620.82617 L 197.32232,620.82617 Q 198.12232,620.82617 198.12232,620.02617 L 198.12232,579.94617 Q 198.12232,579.14617 197.32232,579.14617 L 189.16232,579.14617 Q 188.36232,579.14617 188.36232,579.94617 L 188.36232,620.02617 Z M 188.36232,564.26617 L 188.36232,572.42617 Q 188.36232,573.22617 189.16232,573.22617 L 197.32232,573.22617 Q 198.12232,573.22617 198.12232,572.42617 L 198.12232,564.26617 Q 198.12232,563.46617 197.32232,563.46617 L 189.16232,563.46617 Q 188.36232,563.46617 188.36232,564.26617 Z" />
<path
inkscape:connector-curvature="0"
id="path4651"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Prototype;-inkscape-font-specification:Prototype;fill:#ff6000;fill-opacity:1"
d="M 214.52857,578.34617 L 214.52857,564.26617 Q 214.52857,563.46617 213.72857,563.46617 L 205.56857,563.46617 Q 204.76857,563.46617 204.76857,564.26617 L 204.76857,620.02617 Q 204.76857,620.82617 205.56857,620.82617 L 230.44857,620.82617 Q 234.12857,620.82617 236.84857,618.98617 Q 239.64857,617.06617 241.40857,614.18617 Q 243.16857,611.22617 244.04857,607.54617 Q 244.92857,603.86617 244.92857,600.26617 Q 244.92857,595.54617 244.04857,591.62617 Q 243.24857,587.70617 241.48857,584.98617 Q 239.72857,582.18617 237.00857,580.66617 Q 234.28857,579.14617 230.44857,579.14617 L 215.32857,579.14617 Q 214.52857,579.14617 214.52857,578.34617 Z M 214.52857,589.70617 Q 214.52857,588.90617 215.32857,588.90617 L 224.04857,588.90617 Q 226.52857,588.90617 228.52857,589.38617 Q 230.60857,589.78617 232.04857,591.06617 Q 233.56857,592.26617 234.36857,594.50617 Q 235.16857,596.74617 235.16857,600.26617 Q 235.16857,603.54617 234.36857,605.62617 Q 233.56857,607.70617 232.12857,608.90617 Q 230.68857,610.10617 228.60857,610.58617 Q 226.52857,611.06617 224.04857,611.06617 L 215.32857,611.06617 Q 214.52857,611.06617 214.52857,610.26617 L 214.52857,589.70617 Z" />
<path
inkscape:connector-curvature="0"
id="path4653"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Prototype;-inkscape-font-specification:Prototype;fill:#ff6000;fill-opacity:1"
d="M 259.77607,579.14617 Q 257.61607,579.14617 255.69607,580.02617 Q 253.77607,580.82617 252.33607,582.26617 Q 250.89607,583.70617 250.01607,585.62617 Q 249.21607,587.54617 249.21607,589.62617 L 249.21607,620.02617 Q 249.21607,620.82617 250.01607,620.82617 L 258.97607,620.82617 Q 259.77607,620.82617 259.77607,620.02617 L 259.77607,592.42617 Q 259.77607,591.94617 260.01607,591.38617 Q 260.25607,590.74617 260.65607,590.26617 Q 261.13607,589.70617 261.69607,589.30617 Q 262.25607,588.90617 262.97607,588.90617 L 270.65607,588.90617 Q 271.45607,588.90617 271.45607,588.10617 L 271.45607,579.94617 Q 271.45607,579.14617 270.65607,579.14617 L 259.77607,579.14617 Z" />
<path
inkscape:connector-curvature="0"
id="path4655"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Prototype;-inkscape-font-specification:Prototype;fill:#ff6000;fill-opacity:1"
d="M 284.34607,604.66617 L 313.94607,604.66617 Q 314.74607,604.66617 314.74607,603.86617 L 314.74607,595.54617 Q 314.74607,591.78617 313.62607,588.74617 Q 312.58607,585.70617 310.26607,583.62617 Q 307.94607,581.46617 304.34607,580.34617 Q 300.74607,579.14617 295.78607,579.14617 Q 291.78607,579.14617 287.78607,580.18617 Q 283.86607,581.14617 280.66607,583.62617 Q 277.54607,586.10617 275.54607,590.34617 Q 273.62607,594.50617 273.62607,600.90617 Q 273.62607,606.18617 274.74607,609.94617 Q 275.94607,613.70617 278.66607,616.18617 Q 281.46607,618.58617 285.94607,619.70617 Q 290.50607,620.82617 297.22607,620.82617 L 310.74607,620.82617 Q 311.54607,620.82617 311.54607,620.02617 L 311.54607,611.86617 Q 311.54607,611.06617 310.74607,611.06617 L 291.70607,611.06617 Q 290.02607,611.06617 288.50607,610.66617 Q 286.98607,610.18617 285.86607,609.46617 Q 284.82607,608.66617 284.18607,607.70617 Q 283.54607,606.66617 283.54607,605.46617 Q 283.54607,604.66617 284.34607,604.66617 Z M 284.34607,595.30617 Q 283.54607,595.30617 283.54607,594.50617 Q 283.54607,592.98617 284.74607,591.78617 Q 285.94607,590.50617 287.70607,589.70617 Q 289.54607,588.82617 291.46607,588.34617 Q 293.46607,587.86617 295.06607,587.86617 Q 300.10607,587.86617 302.90607,589.70617 Q 305.70607,591.46617 305.70607,594.50617 Q 305.70607,595.30617 304.90607,595.30617 L 284.34607,595.30617 Z" />
</g>
<g
id="text8184"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:85.35001373px;line-height:125%;font-family:paola;-inkscape-font-specification:paola;letter-spacing:0px;word-spacing:0px;fill:#ff6000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
transform="scale(1.0668752,0.93731676)">
<path
inkscape:connector-curvature="0"
id="path4658"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Prototype;-inkscape-font-specification:Prototype;fill:#ff6000;fill-opacity:1"
d="M 367.75133,602.94063 L 367.75133,661.49074 Q 367.75133,662.34424 368.60483,662.34424 L 379.27359,662.34424 Q 380.12709,662.34424 380.12709,661.49074 L 380.12709,641.94558 Q 380.12709,641.09208 380.98059,641.09208 L 395.83149,641.09208 Q 400.61109,641.09208 403.93974,639.72648 Q 407.26839,638.27553 409.31679,635.62968 Q 411.36519,632.98383 412.30404,629.31378 Q 413.24289,625.64373 413.24289,621.12018 Q 413.24289,616.76733 412.30404,613.09728 Q 411.36519,609.42723 409.31679,606.78138 Q 407.26839,604.13553 403.93974,602.68458 Q 400.61109,601.14828 395.83149,601.14828 L 368.60483,601.14828 Q 367.75133,601.14828 367.75133,602.00178 L 367.75133,602.94063 Z M 397.28244,612.24378 Q 398.81874,612.24378 399.67224,613.35333 Q 400.61109,614.37753 401.03784,615.82848 Q 401.46459,617.27943 401.54994,618.81573 Q 401.72064,620.26668 401.72064,621.12018 Q 401.72064,621.97368 401.54994,623.50998 Q 401.46454,624.96093 401.03784,626.41188 Q 400.61109,627.86283 399.67224,628.97238 Q 398.81874,629.99658 397.28244,629.99658 L 380.98059,629.99658 Q 380.12709,629.99658 380.12709,629.14308 L 380.12709,613.09728 Q 380.12709,612.24378 380.98059,612.24378 L 397.28244,612.24378 Z" />
<path
inkscape:connector-curvature="0"
id="path4660"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Prototype;-inkscape-font-specification:Prototype;fill:#ff6000;fill-opacity:1"
d="M 417.76111,661.49074 Q 417.76111,662.34424 418.61461,662.34424 L 427.32031,662.34424 Q 428.17381,662.34424 428.17381,661.49074 L 428.17381,618.73038 Q 428.17381,617.87688 427.32031,617.87688 L 418.61461,617.87688 Q 417.76111,617.87688 417.76111,618.73038 L 417.76111,661.49074 Z M 417.76111,602.00178 L 417.76111,610.70748 Q 417.76111,611.56098 418.61461,611.56098 L 427.32031,611.56098 Q 428.17381,611.56098 428.17381,610.70748 L 428.17381,602.00178 Q 428.17381,601.14828 427.32031,601.14828 L 418.61461,601.14828 Q 417.76111,601.14828 417.76111,602.00178 Z" />
<path
inkscape:connector-curvature="0"
id="path4662"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Prototype;-inkscape-font-specification:Prototype;fill:#ff6000;fill-opacity:1"
d="M 435.26453,602.00178 L 435.26453,652.61434 L 435.26453,652.78504 L 435.26453,661.49074 Q 435.26453,662.34424 436.11803,662.34424 L 444.82373,662.34424 Q 445.67723,662.34424 445.67723,661.49074 L 445.67723,652.78504 L 445.67723,652.61434 L 445.67723,602.00178 Q 445.67723,601.14828 444.82373,601.14828 L 436.11803,601.14828 Q 435.26453,601.14828 435.26453,602.00178 Z" />
<path
inkscape:connector-curvature="0"
id="path4664"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Prototype;-inkscape-font-specification:Prototype;fill:#ff6000;fill-opacity:1"
d="M 495.27226,630.67938 Q 495.27226,627.60678 494.07736,625.30233 Q 492.96781,622.91253 491.09011,621.29088 Q 489.29776,619.58388 486.90796,618.73038 Q 484.60351,617.87688 482.29906,617.87688 L 465.05835,617.87688 Q 462.32715,617.87688 459.852,618.81573 Q 457.4622,619.75458 455.66985,621.54693 Q 453.8775,623.25393 452.76795,625.72908 Q 451.74375,628.20423 451.74375,631.27683 L 451.74375,646.29844 Q 451.74375,649.28569 452.3412,652.18759 Q 452.93865,655.00414 454.47495,657.30859 Q 456.01125,659.52769 458.57175,660.97864 Q 461.13225,662.34424 465.05835,662.34424 L 480.25066,662.34424 Q 484.17676,662.34424 486.99331,661.57609 Q 489.80986,660.80794 491.60221,658.84489 Q 493.47991,656.88184 494.33341,653.55319 Q 495.27226,650.22454 495.27226,645.10354 L 495.27226,630.67938 Z M 484.77421,639.98253 L 484.77421,646.81054 Q 484.77421,649.02964 482.46976,650.48059 Q 480.25066,651.93154 477.17805,651.93154 L 469.32585,651.93154 Q 468.2163,651.93154 466.93605,651.76084 Q 465.6558,651.50479 464.54625,650.90734 Q 463.4367,650.22454 462.66855,649.11499 Q 461.98575,648.00544 461.98575,646.29844 L 461.98575,632.64243 Q 461.98575,631.44753 462.5832,630.59403 Q 463.18065,629.74053 464.03415,629.22843 Q 464.973,628.71633 466.08255,628.54563 Q 467.1921,628.28958 468.30165,628.28958 L 477.60481,628.28958 Q 478.88506,628.28958 480.16531,628.54563 Q 481.44556,628.80168 482.46976,629.39913 Q 483.49396,629.91123 484.09141,630.76473 Q 484.77421,631.53288 484.77421,632.55708 L 484.77421,639.98253 Z" />
<path
inkscape:connector-curvature="0"
id="path4666"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Prototype;-inkscape-font-specification:Prototype;fill:#ff6000;fill-opacity:1"
d="M 515.95363,629.14308 Q 515.95363,628.28958 516.80713,628.28958 L 523.80583,628.28958 Q 524.65933,628.28958 524.65933,627.43608 L 524.65933,618.73038 Q 524.65933,617.87688 523.80583,617.87688 L 516.80713,617.87688 Q 515.95363,617.87688 515.95363,617.02338 L 515.95363,606.35463 Q 515.95363,605.50113 515.10013,605.50113 L 506.39443,605.50113 Q 505.54093,605.50113 505.54093,606.35463 L 505.54093,617.02338 Q 505.54093,617.87688 504.68743,617.87688 L 500.16388,617.87688 Q 499.31038,617.87688 499.31038,618.73038 L 499.31038,627.43608 Q 499.31038,628.28958 500.16388,628.28958 L 504.68743,628.28958 Q 505.54093,628.28958 505.54093,629.14308 L 505.54093,655.77229 Q 505.54093,658.41814 507.67468,660.38119 Q 509.80843,662.34424 513.05173,662.34424 L 523.80583,662.34424 Q 524.65933,662.34424 524.65933,661.49074 L 524.65933,652.78504 Q 524.65933,652.01689 523.97653,651.93154 L 516.80713,651.93154 Q 515.95363,651.93154 515.95363,651.07804 L 515.95363,629.14308 Z" />
</g>
<g
transform="matrix(0.96592582,-0.25881904,0.25881904,0.96592582,-135.96662,113.04244)"
id="g8188">
<g
transform="matrix(0.5969555,0.15995374,-0.15995374,0.5969555,187.18453,347.03367)"
style="fill:#767575;fill-opacity:1;stroke:none"
id="g8190">
<path
sodipodi:nodetypes="ccccc"
style="fill:#767575;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 403.66024,282.97714 L 350.98876,230.30666 C 305.52073,201.13204 216.95499,216.43139 216.95499,216.43139 L 350.81024,334.95314 Z"
id="path8192"
inkscape:connector-curvature="0" />
<path
style="fill:#767575;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 308.8794,376.0474 L 308.8794,308.0664 L 344.9544,339.9714 Z"
id="path8194"
inkscape:connector-curvature="0" />
<path
style="fill:#767575;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 403.66024,274.97714 L 354.42124,225.73914 L 403.66024,176.49414 Z"
id="path8196"
inkscape:connector-curvature="0" />
<path
style="fill:#767575;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 440.99424,208.82914 L 408.66024,176.49414 L 408.66024,208.82914 Z"
id="path8198"
inkscape:connector-curvature="0" />
</g>
<g
id="g8200"
style="stroke:none"
transform="matrix(0.5969555,0.15995374,-0.15995374,0.5969555,186.71819,346.56976)">
<path
inkscape:connector-curvature="0"
id="path8202"
d="M 403.66024,282.97714 L 350.98876,230.30666 C 305.52073,201.13204 216.95499,216.43139 216.95499,216.43139 L 350.81024,334.95314 Z"
style="fill:#47adc5;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
sodipodi:nodetypes="ccccc" />
<path
inkscape:connector-curvature="0"
id="path8204"
d="M 308.8794,376.0474 L 308.8794,308.0664 L 344.9544,339.9714 Z"
style="fill:#47adc5;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path8206"
d="M 403.66024,274.97714 L 354.42124,225.73914 L 403.66024,176.49414 Z"
style="fill:#feb103;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path8208"
d="M 440.99424,208.82914 L 408.66024,176.49414 L 408.66024,208.82914 Z"
style="fill:#feb103;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
</g>
</g>
</g>
</g>
<g
transform="translate(-134.39309,-220.9483)"
id="g8226"
inkscape:export-xdpi="56.630924"
inkscape:export-ydpi="56.630924">
<g
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:80px;line-height:125%;font-family:paola;-inkscape-font-specification:paola;letter-spacing:0px;word-spacing:0px;fill:#767575;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="text8228">
<path
d="M 184.74482,611.42617 L 163.06482,611.42617 Q 159.94482,611.42617 159.94482,608.78617 L 159.94482,565.26617 Q 159.94482,564.46617 159.14482,564.46617 L 149.14482,564.46617 Q 148.34482,564.46617 148.34482,565.26617 L 148.34482,607.82617 Q 148.34482,614.54617 151.14482,617.90617 Q 153.94482,621.18617 160.58482,621.74617 Q 160.98482,621.82617 161.54482,621.82617 Q 162.10482,621.82617 162.74482,621.82617 L 184.74482,621.82617 Q 185.54482,621.82617 185.54482,621.02617 L 185.54482,612.22617 Q 185.54482,611.42617 184.74482,611.42617 Z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Prototype;-inkscape-font-specification:Prototype;fill:#767575;fill-opacity:1"
id="path4581"
inkscape:connector-curvature="0" />
<path
d="M 189.36232,621.02617 Q 189.36232,621.82617 190.16232,621.82617 L 198.32232,621.82617 Q 199.12232,621.82617 199.12232,621.02617 L 199.12232,580.94617 Q 199.12232,580.14617 198.32232,580.14617 L 190.16232,580.14617 Q 189.36232,580.14617 189.36232,580.94617 L 189.36232,621.02617 Z M 189.36232,565.26617 L 189.36232,573.42617 Q 189.36232,574.22617 190.16232,574.22617 L 198.32232,574.22617 Q 199.12232,574.22617 199.12232,573.42617 L 199.12232,565.26617 Q 199.12232,564.46617 198.32232,564.46617 L 190.16232,564.46617 Q 189.36232,564.46617 189.36232,565.26617 Z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Prototype;-inkscape-font-specification:Prototype;fill:#767575;fill-opacity:1"
id="path4583"
inkscape:connector-curvature="0" />
<path
d="M 215.52857,579.34617 L 215.52857,565.26617 Q 215.52857,564.46617 214.72857,564.46617 L 206.56857,564.46617 Q 205.76857,564.46617 205.76857,565.26617 L 205.76857,621.02617 Q 205.76857,621.82617 206.56857,621.82617 L 231.44857,621.82617 Q 235.12857,621.82617 237.84857,619.98617 Q 240.64857,618.06617 242.40857,615.18617 Q 244.16857,612.22617 245.04857,608.54617 Q 245.92857,604.86617 245.92857,601.26617 Q 245.92857,596.54617 245.04857,592.62617 Q 244.24857,588.70617 242.48857,585.98617 Q 240.72857,583.18617 238.00857,581.66617 Q 235.28857,580.14617 231.44857,580.14617 L 216.32857,580.14617 Q 215.52857,580.14617 215.52857,579.34617 Z M 215.52857,590.70617 Q 215.52857,589.90617 216.32857,589.90617 L 225.04857,589.90617 Q 227.52857,589.90617 229.52857,590.38617 Q 231.60857,590.78617 233.04857,592.06617 Q 234.56857,593.26617 235.36857,595.50617 Q 236.16857,597.74617 236.16857,601.26617 Q 236.16857,604.54617 235.36857,606.62617 Q 234.56857,608.70617 233.12857,609.90617 Q 231.68857,611.10617 229.60857,611.58617 Q 227.52857,612.06617 225.04857,612.06617 L 216.32857,612.06617 Q 215.52857,612.06617 215.52857,611.26617 L 215.52857,590.70617 Z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Prototype;-inkscape-font-specification:Prototype;fill:#767575;fill-opacity:1"
id="path4585"
inkscape:connector-curvature="0" />
<path
d="M 260.77607,580.14617 Q 258.61607,580.14617 256.69607,581.02617 Q 254.77607,581.82617 253.33607,583.26617 Q 251.89607,584.70617 251.01607,586.62617 Q 250.21607,588.54617 250.21607,590.62617 L 250.21607,621.02617 Q 250.21607,621.82617 251.01607,621.82617 L 259.97607,621.82617 Q 260.77607,621.82617 260.77607,621.02617 L 260.77607,593.42617 Q 260.77607,592.94617 261.01607,592.38617 Q 261.25607,591.74617 261.65607,591.26617 Q 262.13607,590.70617 262.69607,590.30617 Q 263.25607,589.90617 263.97607,589.90617 L 271.65607,589.90617 Q 272.45607,589.90617 272.45607,589.10617 L 272.45607,580.94617 Q 272.45607,580.14617 271.65607,580.14617 L 260.77607,580.14617 Z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Prototype;-inkscape-font-specification:Prototype;fill:#767575;fill-opacity:1"
id="path4587"
inkscape:connector-curvature="0" />
<path
d="M 285.34607,605.66617 L 314.94607,605.66617 Q 315.74607,605.66617 315.74607,604.86617 L 315.74607,596.54617 Q 315.74607,592.78617 314.62607,589.74617 Q 313.58607,586.70617 311.26607,584.62617 Q 308.94607,582.46617 305.34607,581.34617 Q 301.74607,580.14617 296.78607,580.14617 Q 292.78607,580.14617 288.78607,581.18617 Q 284.86607,582.14617 281.66607,584.62617 Q 278.54607,587.10617 276.54607,591.34617 Q 274.62607,595.50617 274.62607,601.90617 Q 274.62607,607.18617 275.74607,610.94617 Q 276.94607,614.70617 279.66607,617.18617 Q 282.46607,619.58617 286.94607,620.70617 Q 291.50607,621.82617 298.22607,621.82617 L 311.74607,621.82617 Q 312.54607,621.82617 312.54607,621.02617 L 312.54607,612.86617 Q 312.54607,612.06617 311.74607,612.06617 L 292.70607,612.06617 Q 291.02607,612.06617 289.50607,611.66617 Q 287.98607,611.18617 286.86607,610.46617 Q 285.82607,609.66617 285.18607,608.70617 Q 284.54607,607.66617 284.54607,606.46617 Q 284.54607,605.66617 285.34607,605.66617 Z M 285.34607,596.30617 Q 284.54607,596.30617 284.54607,595.50617 Q 284.54607,593.98617 285.74607,592.78617 Q 286.94607,591.50617 288.70607,590.70617 Q 290.54607,589.82617 292.46607,589.34617 Q 294.46607,588.86617 296.06607,588.86617 Q 301.10607,588.86617 303.90607,590.70617 Q 306.70607,592.46617 306.70607,595.50617 Q 306.70607,596.30617 305.90607,596.30617 L 285.34607,596.30617 Z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Prototype;-inkscape-font-specification:Prototype;fill:#767575;fill-opacity:1"
id="path4589"
inkscape:connector-curvature="0" />
</g>
<g
transform="scale(1.0668752,0.93731676)"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:85.35001373px;line-height:125%;font-family:paola;-inkscape-font-specification:paola;letter-spacing:0px;word-spacing:0px;fill:#767575;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="text8232">
<path
d="M 368.68865,604.0074 L 368.68865,662.55751 Q 368.68865,663.41101 369.54215,663.41101 L 380.2109,663.41101 Q 381.0644,663.41101 381.0644,662.55751 L 381.0644,643.01236 Q 381.0644,642.15886 381.9179,642.15886 L 396.76881,642.15886 Q 401.54841,642.15886 404.87706,640.79326 Q 408.20571,639.34231 410.25411,636.69646 Q 412.30251,634.05061 413.24136,630.38056 Q 414.18021,626.7105 414.18021,622.18695 Q 414.18021,617.8341 413.24136,614.16405 Q 412.30251,610.494 410.25411,607.84815 Q 408.20571,605.2023 404.87706,603.75135 Q 401.54841,602.21505 396.76881,602.21505 L 369.54215,602.21505 Q 368.68865,602.21505 368.68865,603.06855 L 368.68865,604.0074 Z M 398.21976,613.31055 Q 399.75606,613.31055 400.60956,614.4201 Q 401.54841,615.4443 401.97516,616.89525 Q 402.40191,618.3462 402.48726,619.8825 Q 402.65796,621.33345 402.65796,622.18695 Q 402.65796,623.04045 402.48726,624.57675 Q 402.40186,626.0277 401.97516,627.47865 Q 401.54841,628.92961 400.60956,630.03916 Q 399.75606,631.06336 398.21976,631.06336 L 381.9179,631.06336 Q 381.0644,631.06336 381.0644,630.20986 L 381.0644,614.16405 Q 381.0644,613.31055 381.9179,613.31055 L 398.21976,613.31055 Z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Prototype;-inkscape-font-specification:Prototype;fill:#767575;fill-opacity:1"
id="path4592"
inkscape:connector-curvature="0" />
<path
d="M 418.69842,662.55751 Q 418.69842,663.41101 419.55192,663.41101 L 428.25763,663.41101 Q 429.11113,663.41101 429.11113,662.55751 L 429.11113,619.79715 Q 429.11113,618.94365 428.25763,618.94365 L 419.55192,618.94365 Q 418.69842,618.94365 418.69842,619.79715 L 418.69842,662.55751 Z M 418.69842,603.06855 L 418.69842,611.77425 Q 418.69842,612.62775 419.55192,612.62775 L 428.25763,612.62775 Q 429.11113,612.62775 429.11113,611.77425 L 429.11113,603.06855 Q 429.11113,602.21505 428.25763,602.21505 L 419.55192,602.21505 Q 418.69842,602.21505 418.69842,603.06855 Z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Prototype;-inkscape-font-specification:Prototype;fill:#767575;fill-opacity:1"
id="path4594"
inkscape:connector-curvature="0" />
<path
d="M 436.20184,603.06855 L 436.20184,653.68111 L 436.20184,653.85181 L 436.20184,662.55751 Q 436.20184,663.41101 437.05534,663.41101 L 445.76104,663.41101 Q 446.61454,663.41101 446.61454,662.55751 L 446.61454,653.85181 L 446.61454,653.68111 L 446.61454,603.06855 Q 446.61454,602.21505 445.76104,602.21505 L 437.05534,602.21505 Q 436.20184,602.21505 436.20184,603.06855 Z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Prototype;-inkscape-font-specification:Prototype;fill:#767575;fill-opacity:1"
id="path4596"
inkscape:connector-curvature="0" />
<path
d="M 496.20957,631.74616 Q 496.20957,628.67356 495.01467,626.3691 Q 493.90512,623.9793 492.02742,622.35765 Q 490.23507,620.65065 487.84527,619.79715 Q 485.54082,618.94365 483.23637,618.94365 L 465.99567,618.94365 Q 463.26447,618.94365 460.78932,619.8825 Q 458.39952,620.82135 456.60717,622.6137 Q 454.81482,624.3207 453.70527,626.79585 Q 452.68107,629.27101 452.68107,632.34361 L 452.68107,647.36521 Q 452.68107,650.35246 453.27852,653.25436 Q 453.87597,656.07091 455.41227,658.37536 Q 456.94857,660.59446 459.50907,662.04541 Q 462.06957,663.41101 465.99567,663.41101 L 481.18797,663.41101 Q 485.11407,663.41101 487.93062,662.64286 Q 490.74717,661.87471 492.53952,659.91166 Q 494.41722,657.94861 495.27072,654.61996 Q 496.20957,651.29131 496.20957,646.17031 L 496.20957,631.74616 Z M 485.71152,641.04931 L 485.71152,647.87731 Q 485.71152,650.09641 483.40707,651.54736 Q 481.18797,652.99831 478.11537,652.99831 L 470.26317,652.99831 Q 469.15362,652.99831 467.87337,652.82761 Q 466.59312,652.57156 465.48357,651.97411 Q 464.37402,651.29131 463.60587,650.18176 Q 462.92307,649.07221 462.92307,647.36521 L 462.92307,633.70921 Q 462.92307,632.51431 463.52052,631.66081 Q 464.11797,630.80731 464.97147,630.29521 Q 465.91032,629.78311 467.01987,629.61241 Q 468.12942,629.35636 469.23897,629.35636 L 478.54212,629.35636 Q 479.82237,629.35636 481.10262,629.61241 Q 482.38287,629.86846 483.40707,630.46591 Q 484.43127,630.97801 485.02872,631.83151 Q 485.71152,632.59966 485.71152,633.62386 L 485.71152,641.04931 Z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Prototype;-inkscape-font-specification:Prototype;fill:#767575;fill-opacity:1"
id="path4598"
inkscape:connector-curvature="0" />
<path
d="M 516.89095,630.20986 Q 516.89095,629.35636 517.74445,629.35636 L 524.74315,629.35636 Q 525.59665,629.35636 525.59665,628.50286 L 525.59665,619.79715 Q 525.59665,618.94365 524.74315,618.94365 L 517.74445,618.94365 Q 516.89095,618.94365 516.89095,618.09015 L 516.89095,607.4214 Q 516.89095,606.5679 516.03745,606.5679 L 507.33175,606.5679 Q 506.47825,606.5679 506.47825,607.4214 L 506.47825,618.09015 Q 506.47825,618.94365 505.62475,618.94365 L 501.1012,618.94365 Q 500.2477,618.94365 500.2477,619.79715 L 500.2477,628.50286 Q 500.2477,629.35636 501.1012,629.35636 L 505.62475,629.35636 Q 506.47825,629.35636 506.47825,630.20986 L 506.47825,656.83906 Q 506.47825,659.48491 508.612,661.44796 Q 510.74575,663.41101 513.98905,663.41101 L 524.74315,663.41101 Q 525.59665,663.41101 525.59665,662.55751 L 525.59665,653.85181 Q 525.59665,653.08366 524.91385,652.99831 L 517.74445,652.99831 Q 516.89095,652.99831 516.89095,652.14481 L 516.89095,630.20986 Z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Prototype;-inkscape-font-specification:Prototype;fill:#767575;fill-opacity:1"
id="path4600"
inkscape:connector-curvature="0" />
</g>
<g
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:80px;line-height:125%;font-family:paola;-inkscape-font-specification:paola;letter-spacing:0px;word-spacing:0px;fill:#ff6000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="text8236">
<path
d="M 183.74482,610.42617 L 162.06482,610.42617 Q 158.94482,610.42617 158.94482,607.78617 L 158.94482,564.26617 Q 158.94482,563.46617 158.14482,563.46617 L 148.14482,563.46617 Q 147.34482,563.46617 147.34482,564.26617 L 147.34482,606.82617 Q 147.34482,613.54617 150.14482,616.90617 Q 152.94482,620.18617 159.58482,620.74617 Q 159.98482,620.82617 160.54482,620.82617 Q 161.10482,620.82617 161.74482,620.82617 L 183.74482,620.82617 Q 184.54482,620.82617 184.54482,620.02617 L 184.54482,611.22617 Q 184.54482,610.42617 183.74482,610.42617 Z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Prototype;-inkscape-font-specification:Prototype;fill:#ff6000;fill-opacity:1"
id="path4603"
inkscape:connector-curvature="0" />
<path
d="M 188.36232,620.02617 Q 188.36232,620.82617 189.16232,620.82617 L 197.32232,620.82617 Q 198.12232,620.82617 198.12232,620.02617 L 198.12232,579.94617 Q 198.12232,579.14617 197.32232,579.14617 L 189.16232,579.14617 Q 188.36232,579.14617 188.36232,579.94617 L 188.36232,620.02617 Z M 188.36232,564.26617 L 188.36232,572.42617 Q 188.36232,573.22617 189.16232,573.22617 L 197.32232,573.22617 Q 198.12232,573.22617 198.12232,572.42617 L 198.12232,564.26617 Q 198.12232,563.46617 197.32232,563.46617 L 189.16232,563.46617 Q 188.36232,563.46617 188.36232,564.26617 Z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Prototype;-inkscape-font-specification:Prototype;fill:#ff6000;fill-opacity:1"
id="path4605"
inkscape:connector-curvature="0" />
<path
d="M 214.52857,578.34617 L 214.52857,564.26617 Q 214.52857,563.46617 213.72857,563.46617 L 205.56857,563.46617 Q 204.76857,563.46617 204.76857,564.26617 L 204.76857,620.02617 Q 204.76857,620.82617 205.56857,620.82617 L 230.44857,620.82617 Q 234.12857,620.82617 236.84857,618.98617 Q 239.64857,617.06617 241.40857,614.18617 Q 243.16857,611.22617 244.04857,607.54617 Q 244.92857,603.86617 244.92857,600.26617 Q 244.92857,595.54617 244.04857,591.62617 Q 243.24857,587.70617 241.48857,584.98617 Q 239.72857,582.18617 237.00857,580.66617 Q 234.28857,579.14617 230.44857,579.14617 L 215.32857,579.14617 Q 214.52857,579.14617 214.52857,578.34617 Z M 214.52857,589.70617 Q 214.52857,588.90617 215.32857,588.90617 L 224.04857,588.90617 Q 226.52857,588.90617 228.52857,589.38617 Q 230.60857,589.78617 232.04857,591.06617 Q 233.56857,592.26617 234.36857,594.50617 Q 235.16857,596.74617 235.16857,600.26617 Q 235.16857,603.54617 234.36857,605.62617 Q 233.56857,607.70617 232.12857,608.90617 Q 230.68857,610.10617 228.60857,610.58617 Q 226.52857,611.06617 224.04857,611.06617 L 215.32857,611.06617 Q 214.52857,611.06617 214.52857,610.26617 L 214.52857,589.70617 Z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Prototype;-inkscape-font-specification:Prototype;fill:#ff6000;fill-opacity:1"
id="path4607"
inkscape:connector-curvature="0" />
<path
d="M 259.77607,579.14617 Q 257.61607,579.14617 255.69607,580.02617 Q 253.77607,580.82617 252.33607,582.26617 Q 250.89607,583.70617 250.01607,585.62617 Q 249.21607,587.54617 249.21607,589.62617 L 249.21607,620.02617 Q 249.21607,620.82617 250.01607,620.82617 L 258.97607,620.82617 Q 259.77607,620.82617 259.77607,620.02617 L 259.77607,592.42617 Q 259.77607,591.94617 260.01607,591.38617 Q 260.25607,590.74617 260.65607,590.26617 Q 261.13607,589.70617 261.69607,589.30617 Q 262.25607,588.90617 262.97607,588.90617 L 270.65607,588.90617 Q 271.45607,588.90617 271.45607,588.10617 L 271.45607,579.94617 Q 271.45607,579.14617 270.65607,579.14617 L 259.77607,579.14617 Z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Prototype;-inkscape-font-specification:Prototype;fill:#ff6000;fill-opacity:1"
id="path4609"
inkscape:connector-curvature="0" />
<path
d="M 284.34607,604.66617 L 313.94607,604.66617 Q 314.74607,604.66617 314.74607,603.86617 L 314.74607,595.54617 Q 314.74607,591.78617 313.62607,588.74617 Q 312.58607,585.70617 310.26607,583.62617 Q 307.94607,581.46617 304.34607,580.34617 Q 300.74607,579.14617 295.78607,579.14617 Q 291.78607,579.14617 287.78607,580.18617 Q 283.86607,581.14617 280.66607,583.62617 Q 277.54607,586.10617 275.54607,590.34617 Q 273.62607,594.50617 273.62607,600.90617 Q 273.62607,606.18617 274.74607,609.94617 Q 275.94607,613.70617 278.66607,616.18617 Q 281.46607,618.58617 285.94607,619.70617 Q 290.50607,620.82617 297.22607,620.82617 L 310.74607,620.82617 Q 311.54607,620.82617 311.54607,620.02617 L 311.54607,611.86617 Q 311.54607,611.06617 310.74607,611.06617 L 291.70607,611.06617 Q 290.02607,611.06617 288.50607,610.66617 Q 286.98607,610.18617 285.86607,609.46617 Q 284.82607,608.66617 284.18607,607.70617 Q 283.54607,606.66617 283.54607,605.46617 Q 283.54607,604.66617 284.34607,604.66617 Z M 284.34607,595.30617 Q 283.54607,595.30617 283.54607,594.50617 Q 283.54607,592.98617 284.74607,591.78617 Q 285.94607,590.50617 287.70607,589.70617 Q 289.54607,588.82617 291.46607,588.34617 Q 293.46607,587.86617 295.06607,587.86617 Q 300.10607,587.86617 302.90607,589.70617 Q 305.70607,591.46617 305.70607,594.50617 Q 305.70607,595.30617 304.90607,595.30617 L 284.34607,595.30617 Z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Prototype;-inkscape-font-specification:Prototype;fill:#ff6000;fill-opacity:1"
id="path4611"
inkscape:connector-curvature="0" />
</g>
<g
transform="scale(1.0668752,0.93731676)"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:85.35001373px;line-height:125%;font-family:paola;-inkscape-font-specification:paola;letter-spacing:0px;word-spacing:0px;fill:#ff6000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="text8240">
<path
d="M 367.75133,602.94063 L 367.75133,661.49074 Q 367.75133,662.34424 368.60483,662.34424 L 379.27359,662.34424 Q 380.12709,662.34424 380.12709,661.49074 L 380.12709,641.94558 Q 380.12709,641.09208 380.98059,641.09208 L 395.83149,641.09208 Q 400.61109,641.09208 403.93974,639.72648 Q 407.26839,638.27553 409.31679,635.62968 Q 411.36519,632.98383 412.30404,629.31378 Q 413.24289,625.64373 413.24289,621.12018 Q 413.24289,616.76733 412.30404,613.09728 Q 411.36519,609.42723 409.31679,606.78138 Q 407.26839,604.13553 403.93974,602.68458 Q 400.61109,601.14828 395.83149,601.14828 L 368.60483,601.14828 Q 367.75133,601.14828 367.75133,602.00178 L 367.75133,602.94063 Z M 397.28244,612.24378 Q 398.81874,612.24378 399.67224,613.35333 Q 400.61109,614.37753 401.03784,615.82848 Q 401.46459,617.27943 401.54994,618.81573 Q 401.72064,620.26668 401.72064,621.12018 Q 401.72064,621.97368 401.54994,623.50998 Q 401.46454,624.96093 401.03784,626.41188 Q 400.61109,627.86283 399.67224,628.97238 Q 398.81874,629.99658 397.28244,629.99658 L 380.98059,629.99658 Q 380.12709,629.99658 380.12709,629.14308 L 380.12709,613.09728 Q 380.12709,612.24378 380.98059,612.24378 L 397.28244,612.24378 Z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Prototype;-inkscape-font-specification:Prototype;fill:#ff6000;fill-opacity:1"
id="path4614"
inkscape:connector-curvature="0" />
<path
d="M 417.76111,661.49074 Q 417.76111,662.34424 418.61461,662.34424 L 427.32031,662.34424 Q 428.17381,662.34424 428.17381,661.49074 L 428.17381,618.73038 Q 428.17381,617.87688 427.32031,617.87688 L 418.61461,617.87688 Q 417.76111,617.87688 417.76111,618.73038 L 417.76111,661.49074 Z M 417.76111,602.00178 L 417.76111,610.70748 Q 417.76111,611.56098 418.61461,611.56098 L 427.32031,611.56098 Q 428.17381,611.56098 428.17381,610.70748 L 428.17381,602.00178 Q 428.17381,601.14828 427.32031,601.14828 L 418.61461,601.14828 Q 417.76111,601.14828 417.76111,602.00178 Z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Prototype;-inkscape-font-specification:Prototype;fill:#ff6000;fill-opacity:1"
id="path4616"
inkscape:connector-curvature="0" />
<path
d="M 435.26453,602.00178 L 435.26453,652.61434 L 435.26453,652.78504 L 435.26453,661.49074 Q 435.26453,662.34424 436.11803,662.34424 L 444.82373,662.34424 Q 445.67723,662.34424 445.67723,661.49074 L 445.67723,652.78504 L 445.67723,652.61434 L 445.67723,602.00178 Q 445.67723,601.14828 444.82373,601.14828 L 436.11803,601.14828 Q 435.26453,601.14828 435.26453,602.00178 Z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Prototype;-inkscape-font-specification:Prototype;fill:#ff6000;fill-opacity:1"
id="path4618"
inkscape:connector-curvature="0" />
<path
d="M 495.27226,630.67938 Q 495.27226,627.60678 494.07736,625.30233 Q 492.96781,622.91253 491.09011,621.29088 Q 489.29776,619.58388 486.90796,618.73038 Q 484.60351,617.87688 482.29906,617.87688 L 465.05835,617.87688 Q 462.32715,617.87688 459.852,618.81573 Q 457.4622,619.75458 455.66985,621.54693 Q 453.8775,623.25393 452.76795,625.72908 Q 451.74375,628.20423 451.74375,631.27683 L 451.74375,646.29844 Q 451.74375,649.28569 452.3412,652.18759 Q 452.93865,655.00414 454.47495,657.30859 Q 456.01125,659.52769 458.57175,660.97864 Q 461.13225,662.34424 465.05835,662.34424 L 480.25066,662.34424 Q 484.17676,662.34424 486.99331,661.57609 Q 489.80986,660.80794 491.60221,658.84489 Q 493.47991,656.88184 494.33341,653.55319 Q 495.27226,650.22454 495.27226,645.10354 L 495.27226,630.67938 Z M 484.77421,639.98253 L 484.77421,646.81054 Q 484.77421,649.02964 482.46976,650.48059 Q 480.25066,651.93154 477.17805,651.93154 L 469.32585,651.93154 Q 468.2163,651.93154 466.93605,651.76084 Q 465.6558,651.50479 464.54625,650.90734 Q 463.4367,650.22454 462.66855,649.11499 Q 461.98575,648.00544 461.98575,646.29844 L 461.98575,632.64243 Q 461.98575,631.44753 462.5832,630.59403 Q 463.18065,629.74053 464.03415,629.22843 Q 464.973,628.71633 466.08255,628.54563 Q 467.1921,628.28958 468.30165,628.28958 L 477.60481,628.28958 Q 478.88506,628.28958 480.16531,628.54563 Q 481.44556,628.80168 482.46976,629.39913 Q 483.49396,629.91123 484.09141,630.76473 Q 484.77421,631.53288 484.77421,632.55708 L 484.77421,639.98253 Z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Prototype;-inkscape-font-specification:Prototype;fill:#ff6000;fill-opacity:1"
id="path4620"
inkscape:connector-curvature="0" />
<path
d="M 515.95363,629.14308 Q 515.95363,628.28958 516.80713,628.28958 L 523.80583,628.28958 Q 524.65933,628.28958 524.65933,627.43608 L 524.65933,618.73038 Q 524.65933,617.87688 523.80583,617.87688 L 516.80713,617.87688 Q 515.95363,617.87688 515.95363,617.02338 L 515.95363,606.35463 Q 515.95363,605.50113 515.10013,605.50113 L 506.39443,605.50113 Q 505.54093,605.50113 505.54093,606.35463 L 505.54093,617.02338 Q 505.54093,617.87688 504.68743,617.87688 L 500.16388,617.87688 Q 499.31038,617.87688 499.31038,618.73038 L 499.31038,627.43608 Q 499.31038,628.28958 500.16388,628.28958 L 504.68743,628.28958 Q 505.54093,628.28958 505.54093,629.14308 L 505.54093,655.77229 Q 505.54093,658.41814 507.67468,660.38119 Q 509.80843,662.34424 513.05173,662.34424 L 523.80583,662.34424 Q 524.65933,662.34424 524.65933,661.49074 L 524.65933,652.78504 Q 524.65933,652.01689 523.97653,651.93154 L 516.80713,651.93154 Q 515.95363,651.93154 515.95363,651.07804 L 515.95363,629.14308 Z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Prototype;-inkscape-font-specification:Prototype;fill:#ff6000;fill-opacity:1"
id="path4622"
inkscape:connector-curvature="0" />
</g>
<g
id="g8244"
transform="matrix(0.96592582,-0.25881904,0.25881904,0.96592582,-135.96662,113.04244)">
<g
id="g8246"
style="fill:#767575;fill-opacity:1;stroke:none"
transform="matrix(0.5969555,0.15995374,-0.15995374,0.5969555,187.18453,347.03367)">
<path
inkscape:connector-curvature="0"
id="path8248"
d="M 403.66024,282.97714 L 350.98876,230.30666 C 305.52073,201.13204 216.95499,216.43139 216.95499,216.43139 L 350.81024,334.95314 Z"
style="fill:#767575;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
sodipodi:nodetypes="ccccc" />
<path
inkscape:connector-curvature="0"
id="path8250"
d="M 308.8794,376.0474 L 308.8794,308.0664 L 344.9544,339.9714 Z"
style="fill:#767575;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path8252"
d="M 403.66024,274.97714 L 354.42124,225.73914 L 403.66024,176.49414 Z"
style="fill:#767575;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path8254"
d="M 440.99424,208.82914 L 408.66024,176.49414 L 408.66024,208.82914 Z"
style="fill:#767575;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
</g>
<g
transform="matrix(0.5969555,0.15995374,-0.15995374,0.5969555,186.71819,346.56976)"
style="stroke:none"
id="g8256">
<path
sodipodi:nodetypes="ccccc"
style="fill:#47adc5;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 403.66024,282.97714 L 350.98876,230.30666 C 305.52073,201.13204 216.95499,216.43139 216.95499,216.43139 L 350.81024,334.95314 Z"
id="path8258"
inkscape:connector-curvature="0" />
<path
style="fill:#47adc5;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 308.8794,376.0474 L 308.8794,308.0664 L 344.9544,339.9714 Z"
id="path8260"
inkscape:connector-curvature="0" />
<path
style="fill:#feb103;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 403.66024,274.97714 L 354.42124,225.73914 L 403.66024,176.49414 Z"
id="path8262"
inkscape:connector-curvature="0" />
<path
style="fill:#feb103;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 440.99424,208.82914 L 408.66024,176.49414 L 408.66024,208.82914 Z"
id="path8264"
inkscape:connector-curvature="0" />
</g>
</g>
</g>
<g
id="g3579"
inkscape:export-filename="./LP_logo_square.png"
inkscape:export-xdpi="360"
inkscape:export-ydpi="360"
transform="translate(-37.42618,-379.85478)">
<rect
rx="30"
ry="30"
y="-31.627954"
x="5.3619666"
height="500"
width="500"
id="rect3526"
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#e5e5e5;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
<g
id="g4328"
inkscape:export-xdpi="177.41391"
inkscape:export-ydpi="177.41391"
transform="matrix(2.5876865,0,0,2.5876865,-706.2251,-2452.6924)">
<g
transform="matrix(0.96592582,-0.25881904,0.25881904,0.96592582,-102.04982,555.17501)"
id="g4332"
inkscape:export-xdpi="64.777489"
inkscape:export-ydpi="64.777489">
<g
transform="matrix(0.5969555,0.15995374,-0.15995374,0.5969555,187.18453,347.03367)"
style="fill:#767575;fill-opacity:1;stroke:none"
id="g4334">
<path
sodipodi:nodetypes="ccccc"
style="fill:#767575;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 403.66024,282.97714 L 350.98876,230.30666 C 305.52073,201.13204 216.95499,216.43139 216.95499,216.43139 L 350.81024,334.95314 Z"
id="path4336"
inkscape:connector-curvature="0" />
<path
style="fill:#767575;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 308.8794,376.0474 L 308.8794,308.0664 L 344.9544,339.9714 Z"
id="path4338"
inkscape:connector-curvature="0" />
<path
style="fill:#767575;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 403.66024,274.97714 L 354.42124,225.73914 L 403.66024,176.49414 Z"
id="path4340"
inkscape:connector-curvature="0" />
<path
style="fill:#767575;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 440.99424,208.82914 L 408.66024,176.49414 L 408.66024,208.82914 Z"
id="path4342"
inkscape:connector-curvature="0" />
</g>
<g
id="g4344"
style="stroke:none"
transform="matrix(0.5969555,0.15995374,-0.15995374,0.5969555,186.71819,346.56976)">
<path
inkscape:connector-curvature="0"
id="path4346"
d="M 403.66024,282.97714 L 350.98876,230.30666 C 305.52073,201.13204 216.95499,216.43139 216.95499,216.43139 L 350.81024,334.95314 Z"
style="fill:#47adc5;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
sodipodi:nodetypes="ccccc" />
<path
inkscape:connector-curvature="0"
id="path4348"
d="M 308.8794,376.0474 L 308.8794,308.0664 L 344.9544,339.9714 Z"
style="fill:#47adc5;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path4350"
d="M 403.66024,274.97714 L 354.42124,225.73914 L 403.66024,176.49414 Z"
style="fill:#feb103;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path4352"
d="M 440.99424,208.82914 L 408.66024,176.49414 L 408.66024,208.82914 Z"
style="fill:#feb103;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
</g>
</g>
</g>
<g
transform="matrix(1.161436,0,0,1.161436,-673.02805,-449.62803)"
id="g4506">
<path
inkscape:connector-curvature="0"
d="M 664.54607,745.48685 L 642.86607,745.48685 Q 639.74607,745.48685 639.74607,742.84685 L 639.74607,699.32685 Q 639.74607,698.52685 638.94607,698.52685 L 628.94607,698.52685 Q 628.14607,698.52685 628.14607,699.32685 L 628.14607,741.88685 Q 628.14607,748.60685 630.94607,751.96685 Q 633.74607,755.24685 640.38607,755.80685 Q 640.78607,755.88685 641.34607,755.88685 Q 641.90607,755.88685 642.54607,755.88685 L 664.54607,755.88685 Q 665.34607,755.88685 665.34607,755.08685 L 665.34607,746.28685 Q 665.34607,745.48685 664.54607,745.48685 Z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:125%;font-family:Prototype;-inkscape-font-specification:Prototype;letter-spacing:0px;word-spacing:0px;fill:#767575;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="path4356" />
<path
inkscape:connector-curvature="0"
d="M 669.16357,755.08685 Q 669.16357,755.88685 669.96357,755.88685 L 678.12357,755.88685 Q 678.92357,755.88685 678.92357,755.08685 L 678.92357,715.00685 Q 678.92357,714.20685 678.12357,714.20685 L 669.96357,714.20685 Q 669.16357,714.20685 669.16357,715.00685 L 669.16357,755.08685 Z M 669.16357,699.32685 L 669.16357,707.48685 Q 669.16357,708.28685 669.96357,708.28685 L 678.12357,708.28685 Q 678.92357,708.28685 678.92357,707.48685 L 678.92357,699.32685 Q 678.92357,698.52685 678.12357,698.52685 L 669.96357,698.52685 Q 669.16357,698.52685 669.16357,699.32685 Z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:125%;font-family:Prototype;-inkscape-font-specification:Prototype;letter-spacing:0px;word-spacing:0px;fill:#767575;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="path4358" />
<path
inkscape:connector-curvature="0"
d="M 695.32982,713.40685 L 695.32982,699.32685 Q 695.32982,698.52685 694.52982,698.52685 L 686.36982,698.52685 Q 685.56982,698.52685 685.56982,699.32685 L 685.56982,755.08685 Q 685.56982,755.88685 686.36982,755.88685 L 711.24982,755.88685 Q 714.92982,755.88685 717.64982,754.04685 Q 720.44982,752.12685 722.20982,749.24685 Q 723.96982,746.28685 724.84982,742.60685 Q 725.72982,738.92685 725.72982,735.32685 Q 725.72982,730.60685 724.84982,726.68685 Q 724.04982,722.76685 722.28982,720.04685 Q 720.52982,717.24685 717.80982,715.72685 Q 715.08982,714.20685 711.24982,714.20685 L 696.12982,714.20685 Q 695.32982,714.20685 695.32982,713.40685 Z M 695.32982,724.76685 Q 695.32982,723.96685 696.12982,723.96685 L 704.84982,723.96685 Q 707.32982,723.96685 709.32982,724.44685 Q 711.40982,724.84685 712.84982,726.12685 Q 714.36982,727.32685 715.16982,729.56685 Q 715.96982,731.80685 715.96982,735.32685 Q 715.96982,738.60685 715.16982,740.68685 Q 714.36982,742.76685 712.92982,743.96685 Q 711.48982,745.16685 709.40982,745.64685 Q 707.32982,746.12685 704.84982,746.12685 L 696.12982,746.12685 Q 695.32982,746.12685 695.32982,745.32685 L 695.32982,724.76685 Z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:125%;font-family:Prototype;-inkscape-font-specification:Prototype;letter-spacing:0px;word-spacing:0px;fill:#767575;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="path4360" />
<path
inkscape:connector-curvature="0"
d="M 740.57732,714.20685 Q 738.41732,714.20685 736.49732,715.08685 Q 734.57732,715.88685 733.13732,717.32685 Q 731.69732,718.76685 730.81732,720.68685 Q 730.01732,722.60685 730.01732,724.68685 L 730.01732,755.08685 Q 730.01732,755.88685 730.81732,755.88685 L 739.77732,755.88685 Q 740.57732,755.88685 740.57732,755.08685 L 740.57732,727.48685 Q 740.57732,727.00685 740.81732,726.44685 Q 741.05732,725.80685 741.45732,725.32685 Q 741.93732,724.76685 742.49732,724.36685 Q 743.05732,723.96685 743.77732,723.96685 L 751.45732,723.96685 Q 752.25732,723.96685 752.25732,723.16685 L 752.25732,715.00685 Q 752.25732,714.20685 751.45732,714.20685 L 740.57732,714.20685 Z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:125%;font-family:Prototype;-inkscape-font-specification:Prototype;letter-spacing:0px;word-spacing:0px;fill:#767575;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="path4362" />
<path
inkscape:connector-curvature="0"
d="M 765.14732,739.72685 L 794.74732,739.72685 Q 795.54732,739.72685 795.54732,738.92685 L 795.54732,730.60685 Q 795.54732,726.84685 794.42732,723.80685 Q 793.38732,720.76685 791.06732,718.68685 Q 788.74732,716.52685 785.14732,715.40685 Q 781.54732,714.20685 776.58732,714.20685 Q 772.58732,714.20685 768.58732,715.24685 Q 764.66732,716.20685 761.46732,718.68685 Q 758.34732,721.16685 756.34732,725.40685 Q 754.42732,729.56685 754.42732,735.96685 Q 754.42732,741.24685 755.54732,745.00685 Q 756.74732,748.76685 759.46732,751.24685 Q 762.26732,753.64685 766.74732,754.76685 Q 771.30732,755.88685 778.02732,755.88685 L 791.54732,755.88685 Q 792.34732,755.88685 792.34732,755.08685 L 792.34732,746.92685 Q 792.34732,746.12685 791.54732,746.12685 L 772.50732,746.12685 Q 770.82732,746.12685 769.30732,745.72685 Q 767.78732,745.24685 766.66732,744.52685 Q 765.62732,743.72685 764.98732,742.76685 Q 764.34732,741.72685 764.34732,740.52685 Q 764.34732,739.72685 765.14732,739.72685 Z M 765.14732,730.36685 Q 764.34732,730.36685 764.34732,729.56685 Q 764.34732,728.04685 765.54732,726.84685 Q 766.74732,725.56685 768.50732,724.76685 Q 770.34732,723.88685 772.26732,723.40685 Q 774.26732,722.92685 775.86732,722.92685 Q 780.90732,722.92685 783.70732,724.76685 Q 786.50732,726.52685 786.50732,729.56685 Q 786.50732,730.36685 785.70732,730.36685 L 765.14732,730.36685 Z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:125%;font-family:Prototype;-inkscape-font-specification:Prototype;letter-spacing:0px;word-spacing:0px;fill:#767575;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="path4364" />
<path
inkscape:connector-curvature="0"
d="M 804.14603,700.20694 L 804.14603,755.08694 Q 804.14603,755.88694 805.05661,755.88694 L 816.43883,755.88694 Q 817.34941,755.88694 817.34941,755.08694 L 817.34941,736.76694 Q 817.34941,735.96694 818.25999,735.96694 L 834.10405,735.96694 Q 839.20329,735.96694 842.75454,734.68694 Q 846.3058,733.32694 848.49119,730.84694 Q 850.67657,728.36694 851.67821,724.92694 Q 852.67984,721.48694 852.67984,717.24694 Q 852.67984,713.16694 851.67821,709.72694 Q 850.67657,706.28694 848.49119,703.80694 Q 846.3058,701.32694 842.75454,699.96694 Q 839.20329,698.52694 834.10405,698.52694 L 805.05661,698.52694 Q 804.14603,698.52694 804.14603,699.32694 L 804.14603,700.20694 Z M 835.65204,708.92694 Q 837.29108,708.92694 838.20165,709.96694 Q 839.20329,710.92694 839.65858,712.28694 Q 840.11387,713.64694 840.20493,715.08694 Q 840.38704,716.44694 840.38704,717.24694 Q 840.38704,718.04694 840.20493,719.48694 Q 840.11383,720.84694 839.65858,722.20694 Q 839.20329,723.56694 838.20165,724.60694 Q 837.29108,725.56694 835.65204,725.56694 L 818.25999,725.56694 Q 817.34941,725.56694 817.34941,724.76694 L 817.34941,709.72694 Q 817.34941,708.92694 818.25999,708.92694 L 835.65204,708.92694 Z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:125%;font-family:Prototype;-inkscape-font-specification:Prototype;letter-spacing:0px;word-spacing:0px;fill:#767575;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="path4368" />
<path
inkscape:connector-curvature="0"
d="M 857.50021,755.08694 Q 857.50021,755.88694 858.41079,755.88694 L 867.69869,755.88694 Q 868.60927,755.88694 868.60927,755.08694 L 868.60927,715.00694 Q 868.60927,714.20694 867.69869,714.20694 L 858.41079,714.20694 Q 857.50021,714.20694 857.50021,715.00694 L 857.50021,755.08694 Z M 857.50021,699.32694 L 857.50021,707.48694 Q 857.50021,708.28694 858.41079,708.28694 L 867.69869,708.28694 Q 868.60927,708.28694 868.60927,707.48694 L 868.60927,699.32694 Q 868.60927,698.52694 867.69869,698.52694 L 858.41079,698.52694 Q 857.50021,698.52694 857.50021,699.32694 Z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:125%;font-family:Prototype;-inkscape-font-specification:Prototype;letter-spacing:0px;word-spacing:0px;fill:#767575;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="path4370" />
<path
inkscape:connector-curvature="0"
d="M 876.17418,699.32694 L 876.17418,746.76694 L 876.17418,746.92694 L 876.17418,755.08694 Q 876.17418,755.88694 877.08475,755.88694 L 886.37265,755.88694 Q 887.28323,755.88694 887.28323,755.08694 L 887.28323,746.92694 L 887.28323,746.76694 L 887.28323,699.32694 Q 887.28323,698.52694 886.37265,698.52694 L 877.08475,698.52694 Q 876.17418,698.52694 876.17418,699.32694 Z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:125%;font-family:Prototype;-inkscape-font-specification:Prototype;letter-spacing:0px;word-spacing:0px;fill:#767575;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="path4372" />
<path
inkscape:connector-curvature="0"
d="M 940.1949,726.20694 Q 940.1949,723.32694 938.9201,721.16694 Q 937.7364,718.92694 935.7331,717.40694 Q 933.8209,715.80694 931.2713,715.00694 Q 928.81271,714.20694 926.35415,714.20694 L 907.96047,714.20694 Q 905.04662,714.20694 902.40595,715.08694 Q 899.85633,715.96694 897.94412,717.64694 Q 896.0319,719.24694 894.84815,721.56694 Q 893.75546,723.88694 893.75546,726.76694 L 893.75546,740.84694 Q 893.75546,743.64694 894.39286,746.36694 Q 895.03027,749.00694 896.66931,751.16694 Q 898.30835,753.24694 901.04008,754.60694 Q 903.77181,755.88694 907.96047,755.88694 L 924.16876,755.88694 Q 928.35742,755.88694 931.3623,755.16694 Q 934.3672,754.44694 936.2794,752.60694 Q 938.2827,750.76694 939.1933,747.64694 Q 940.1949,744.52694 940.1949,739.72694 L 940.1949,726.20694 Z M 928.99483,734.92694 L 928.99483,741.32694 Q 928.99483,743.40694 926.53626,744.76694 Q 924.16876,746.12694 920.89068,746.12694 L 912.51336,746.12694 Q 911.32961,746.12694 909.96375,745.96694 Q 908.59788,745.72694 907.41413,745.16694 Q 906.23038,744.52694 905.41086,743.48694 Q 904.68239,742.44694 904.68239,740.84694 L 904.68239,728.04694 Q 904.68239,726.92694 905.3198,726.12694 Q 905.9572,725.32694 906.86778,724.84694 Q 907.86942,724.36694 909.05317,724.20694 Q 910.23692,723.96694 911.42067,723.96694 L 921.34597,723.96694 Q 922.71184,723.96694 924.0777,724.20694 Q 925.44357,724.44694 926.53626,725.00694 Q 927.62896,725.48694 928.26636,726.28694 Q 928.99483,727.00694 928.99483,727.96694 L 928.99483,734.92694 Z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:125%;font-family:Prototype;-inkscape-font-specification:Prototype;letter-spacing:0px;word-spacing:0px;fill:#767575;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="path4374" />
<path
inkscape:connector-curvature="0"
d="M 962.2594,724.76694 Q 962.2594,723.96694 963.17,723.96694 L 970.6367,723.96694 Q 971.5473,723.96694 971.5473,723.16694 L 971.5473,715.00694 Q 971.5473,714.20694 970.6367,714.20694 L 963.17,714.20694 Q 962.2594,714.20694 962.2594,713.40694 L 962.2594,703.40694 Q 962.2594,702.60694 961.3488,702.60694 L 952.0609,702.60694 Q 951.1503,702.60694 951.1503,703.40694 L 951.1503,713.40694 Q 951.1503,714.20694 950.2398,714.20694 L 945.4137,714.20694 Q 944.5031,714.20694 944.5031,715.00694 L 944.5031,723.16694 Q 944.5031,723.96694 945.4137,723.96694 L 950.2398,723.96694 Q 951.1503,723.96694 951.1503,724.76694 L 951.1503,749.72694 Q 951.1503,752.20694 953.4268,754.04694 Q 955.7032,755.88694 959.1634,755.88694 L 970.6367,755.88694 Q 971.5473,755.88694 971.5473,755.08694 L 971.5473,746.92694 Q 971.5473,746.20694 970.8188,746.12694 L 963.17,746.12694 Q 962.2594,746.12694 962.2594,745.32694 L 962.2594,724.76694 Z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:125%;font-family:Prototype;-inkscape-font-specification:Prototype;letter-spacing:0px;word-spacing:0px;fill:#767575;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="path4376" />
<path
inkscape:connector-curvature="0"
d="M 663.54607,744.48685 L 641.86607,744.48685 Q 638.74607,744.48685 638.74607,741.84685 L 638.74607,698.32685 Q 638.74607,697.52685 637.94607,697.52685 L 627.94607,697.52685 Q 627.14607,697.52685 627.14607,698.32685 L 627.14607,740.88685 Q 627.14607,747.60685 629.94607,750.96685 Q 632.74607,754.24685 639.38607,754.80685 Q 639.78607,754.88685 640.34607,754.88685 Q 640.90607,754.88685 641.54607,754.88685 L 663.54607,754.88685 Q 664.34607,754.88685 664.34607,754.08685 L 664.34607,745.28685 Q 664.34607,744.48685 663.54607,744.48685 Z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:125%;font-family:Prototype;-inkscape-font-specification:Prototype;letter-spacing:0px;word-spacing:0px;fill:#ff6000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="path4380" />
<path
inkscape:connector-curvature="0"
d="M 668.16357,754.08685 Q 668.16357,754.88685 668.96357,754.88685 L 677.12357,754.88685 Q 677.92357,754.88685 677.92357,754.08685 L 677.92357,714.00685 Q 677.92357,713.20685 677.12357,713.20685 L 668.96357,713.20685 Q 668.16357,713.20685 668.16357,714.00685 L 668.16357,754.08685 Z M 668.16357,698.32685 L 668.16357,706.48685 Q 668.16357,707.28685 668.96357,707.28685 L 677.12357,707.28685 Q 677.92357,707.28685 677.92357,706.48685 L 677.92357,698.32685 Q 677.92357,697.52685 677.12357,697.52685 L 668.96357,697.52685 Q 668.16357,697.52685 668.16357,698.32685 Z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:125%;font-family:Prototype;-inkscape-font-specification:Prototype;letter-spacing:0px;word-spacing:0px;fill:#ff6000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="path4382" />
<path
inkscape:connector-curvature="0"
d="M 694.32982,712.40685 L 694.32982,698.32685 Q 694.32982,697.52685 693.52982,697.52685 L 685.36982,697.52685 Q 684.56982,697.52685 684.56982,698.32685 L 684.56982,754.08685 Q 684.56982,754.88685 685.36982,754.88685 L 710.24982,754.88685 Q 713.92982,754.88685 716.64982,753.04685 Q 719.44982,751.12685 721.20982,748.24685 Q 722.96982,745.28685 723.84982,741.60685 Q 724.72982,737.92685 724.72982,734.32685 Q 724.72982,729.60685 723.84982,725.68685 Q 723.04982,721.76685 721.28982,719.04685 Q 719.52982,716.24685 716.80982,714.72685 Q 714.08982,713.20685 710.24982,713.20685 L 695.12982,713.20685 Q 694.32982,713.20685 694.32982,712.40685 Z M 694.32982,723.76685 Q 694.32982,722.96685 695.12982,722.96685 L 703.84982,722.96685 Q 706.32982,722.96685 708.32982,723.44685 Q 710.40982,723.84685 711.84982,725.12685 Q 713.36982,726.32685 714.16982,728.56685 Q 714.96982,730.80685 714.96982,734.32685 Q 714.96982,737.60685 714.16982,739.68685 Q 713.36982,741.76685 711.92982,742.96685 Q 710.48982,744.16685 708.40982,744.64685 Q 706.32982,745.12685 703.84982,745.12685 L 695.12982,745.12685 Q 694.32982,745.12685 694.32982,744.32685 L 694.32982,723.76685 Z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:125%;font-family:Prototype;-inkscape-font-specification:Prototype;letter-spacing:0px;word-spacing:0px;fill:#ff6000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="path4384" />
<path
inkscape:connector-curvature="0"
d="M 739.57732,713.20685 Q 737.41732,713.20685 735.49732,714.08685 Q 733.57732,714.88685 732.13732,716.32685 Q 730.69732,717.76685 729.81732,719.68685 Q 729.01732,721.60685 729.01732,723.68685 L 729.01732,754.08685 Q 729.01732,754.88685 729.81732,754.88685 L 738.77732,754.88685 Q 739.57732,754.88685 739.57732,754.08685 L 739.57732,726.48685 Q 739.57732,726.00685 739.81732,725.44685 Q 740.05732,724.80685 740.45732,724.32685 Q 740.93732,723.76685 741.49732,723.36685 Q 742.05732,722.96685 742.77732,722.96685 L 750.45732,722.96685 Q 751.25732,722.96685 751.25732,722.16685 L 751.25732,714.00685 Q 751.25732,713.20685 750.45732,713.20685 L 739.57732,713.20685 Z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:125%;font-family:Prototype;-inkscape-font-specification:Prototype;letter-spacing:0px;word-spacing:0px;fill:#ff6000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="path4386" />
<path
inkscape:connector-curvature="0"
d="M 764.14732,738.72685 L 793.74732,738.72685 Q 794.54732,738.72685 794.54732,737.92685 L 794.54732,729.60685 Q 794.54732,725.84685 793.42732,722.80685 Q 792.38732,719.76685 790.06732,717.68685 Q 787.74732,715.52685 784.14732,714.40685 Q 780.54732,713.20685 775.58732,713.20685 Q 771.58732,713.20685 767.58732,714.24685 Q 763.66732,715.20685 760.46732,717.68685 Q 757.34732,720.16685 755.34732,724.40685 Q 753.42732,728.56685 753.42732,734.96685 Q 753.42732,740.24685 754.54732,744.00685 Q 755.74732,747.76685 758.46732,750.24685 Q 761.26732,752.64685 765.74732,753.76685 Q 770.30732,754.88685 777.02732,754.88685 L 790.54732,754.88685 Q 791.34732,754.88685 791.34732,754.08685 L 791.34732,745.92685 Q 791.34732,745.12685 790.54732,745.12685 L 771.50732,745.12685 Q 769.82732,745.12685 768.30732,744.72685 Q 766.78732,744.24685 765.66732,743.52685 Q 764.62732,742.72685 763.98732,741.76685 Q 763.34732,740.72685 763.34732,739.52685 Q 763.34732,738.72685 764.14732,738.72685 Z M 764.14732,729.36685 Q 763.34732,729.36685 763.34732,728.56685 Q 763.34732,727.04685 764.54732,725.84685 Q 765.74732,724.56685 767.50732,723.76685 Q 769.34732,722.88685 771.26732,722.40685 Q 773.26732,721.92685 774.86732,721.92685 Q 779.90732,721.92685 782.70732,723.76685 Q 785.50732,725.52685 785.50732,728.56685 Q 785.50732,729.36685 784.70732,729.36685 L 764.14732,729.36685 Z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:125%;font-family:Prototype;-inkscape-font-specification:Prototype;letter-spacing:0px;word-spacing:0px;fill:#ff6000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="path4388" />
<path
inkscape:connector-curvature="0"
d="M 803.14602,699.20704 L 803.14602,754.08704 Q 803.14602,754.88704 804.0566,754.88704 L 815.43884,754.88704 Q 816.34942,754.88704 816.34942,754.08704 L 816.34942,735.76703 Q 816.34942,734.96703 817.25999,734.96703 L 833.10405,734.96703 Q 838.20329,734.96703 841.75454,733.68703 Q 845.3058,732.32703 847.49118,729.84703 Q 849.67657,727.36703 850.67821,723.92703 Q 851.67984,720.48703 851.67984,716.24703 Q 851.67984,712.16704 850.67821,708.72704 Q 849.67657,705.28704 847.49118,702.80704 Q 845.3058,700.32704 841.75454,698.96704 Q 838.20329,697.52704 833.10405,697.52704 L 804.0566,697.52704 Q 803.14602,697.52704 803.14602,698.32704 L 803.14602,699.20704 Z M 834.65203,707.92704 Q 836.29107,707.92704 837.20165,708.96704 Q 838.20329,709.92704 838.65858,711.28704 Q 839.11386,712.64704 839.20492,714.08704 Q 839.38704,715.44703 839.38704,716.24703 Q 839.38704,717.04703 839.20492,718.48703 Q 839.11382,719.84703 838.65858,721.20703 Q 838.20329,722.56703 837.20165,723.60703 Q 836.29107,724.56703 834.65203,724.56703 L 817.25999,724.56703 Q 816.34942,724.56703 816.34942,723.76703 L 816.34942,708.72704 Q 816.34942,707.92704 817.25999,707.92704 L 834.65203,707.92704 Z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:125%;font-family:Prototype;-inkscape-font-specification:Prototype;letter-spacing:0px;word-spacing:0px;fill:#ff6000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="path4392" />
<path
inkscape:connector-curvature="0"
d="M 856.50022,754.08704 Q 856.50022,754.88704 857.4108,754.88704 L 866.69869,754.88704 Q 867.60927,754.88704 867.60927,754.08704 L 867.60927,714.00704 Q 867.60927,713.20704 866.69869,713.20704 L 857.4108,713.20704 Q 856.50022,713.20704 856.50022,714.00704 L 856.50022,754.08704 Z M 856.50022,698.32704 L 856.50022,706.48704 Q 856.50022,707.28704 857.4108,707.28704 L 866.69869,707.28704 Q 867.60927,707.28704 867.60927,706.48704 L 867.60927,698.32704 Q 867.60927,697.52704 866.69869,697.52704 L 857.4108,697.52704 Q 856.50022,697.52704 856.50022,698.32704 Z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:125%;font-family:Prototype;-inkscape-font-specification:Prototype;letter-spacing:0px;word-spacing:0px;fill:#ff6000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="path4394" />
<path
inkscape:connector-curvature="0"
d="M 875.17418,698.32704 L 875.17418,745.76704 L 875.17418,745.92704 L 875.17418,754.08704 Q 875.17418,754.88704 876.08476,754.88704 L 885.37266,754.88704 Q 886.28323,754.88704 886.28323,754.08704 L 886.28323,745.92704 L 886.28323,745.76704 L 886.28323,698.32704 Q 886.28323,697.52704 885.37266,697.52704 L 876.08476,697.52704 Q 875.17418,697.52704 875.17418,698.32704 Z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:125%;font-family:Prototype;-inkscape-font-specification:Prototype;letter-spacing:0px;word-spacing:0px;fill:#ff6000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="path4396" />
<path
inkscape:connector-curvature="0"
d="M 939.1949,725.20703 Q 939.1949,722.32703 937.9201,720.16703 Q 936.7364,717.92703 934.7331,716.40703 Q 932.8209,714.80703 930.27128,714.00704 Q 927.81272,713.20704 925.35416,713.20704 L 906.96047,713.20704 Q 904.04662,713.20704 901.40594,714.08704 Q 898.85633,714.96703 896.94411,716.64703 Q 895.0319,718.24703 893.84815,720.56703 Q 892.75545,722.88703 892.75545,725.76703 L 892.75545,739.84704 Q 892.75545,742.64704 893.39286,745.36704 Q 894.03026,748.00704 895.6693,750.16704 Q 897.30834,752.24704 900.04008,753.60704 Q 902.77181,754.88704 906.96047,754.88704 L 923.16877,754.88704 Q 927.35743,754.88704 930.36234,754.16704 Q 933.3672,753.44704 935.2795,751.60704 Q 937.2827,749.76704 938.1933,746.64704 Q 939.1949,743.52704 939.1949,738.72704 L 939.1949,725.20703 Z M 927.99483,733.92703 L 927.99483,740.32704 Q 927.99483,742.40704 925.53627,743.76704 Q 923.16877,745.12704 919.89068,745.12704 L 911.51336,745.12704 Q 910.32961,745.12704 908.96374,744.96704 Q 907.59787,744.72704 906.41412,744.16704 Q 905.23037,743.52704 904.41085,742.48704 Q 903.68239,741.44704 903.68239,739.84704 L 903.68239,727.04703 Q 903.68239,725.92703 904.31979,725.12703 Q 904.9572,724.32703 905.86778,723.84703 Q 906.86941,723.36703 908.05316,723.20703 Q 909.23692,722.96703 910.42067,722.96703 L 920.34598,722.96703 Q 921.71184,722.96703 923.07771,723.20703 Q 924.44358,723.44703 925.53627,724.00703 Q 926.62897,724.48703 927.26637,725.28703 Q 927.99483,726.00703 927.99483,726.96703 L 927.99483,733.92703 Z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:125%;font-family:Prototype;-inkscape-font-specification:Prototype;letter-spacing:0px;word-spacing:0px;fill:#ff6000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="path4398" />
<path
inkscape:connector-curvature="0"
d="M 961.2594,723.76703 Q 961.2594,722.96703 962.17,722.96703 L 969.6367,722.96703 Q 970.5473,722.96703 970.5473,722.16703 L 970.5473,714.00704 Q 970.5473,713.20704 969.6367,713.20704 L 962.17,713.20704 Q 961.2594,713.20704 961.2594,712.40704 L 961.2594,702.40704 Q 961.2594,701.60704 960.3488,701.60704 L 951.0609,701.60704 Q 950.1503,701.60704 950.1503,702.40704 L 950.1503,712.40704 Q 950.1503,713.20704 949.2398,713.20704 L 944.4137,713.20704 Q 943.5031,713.20704 943.5031,714.00704 L 943.5031,722.16703 Q 943.5031,722.96703 944.4137,722.96703 L 949.2398,722.96703 Q 950.1503,722.96703 950.1503,723.76703 L 950.1503,748.72704 Q 950.1503,751.20704 952.4268,753.04704 Q 954.7032,754.88704 958.1634,754.88704 L 969.6367,754.88704 Q 970.5473,754.88704 970.5473,754.08704 L 970.5473,745.92704 Q 970.5473,745.20704 969.8188,745.12704 L 962.17,745.12704 Q 961.2594,745.12704 961.2594,744.32704 L 961.2594,723.76703 Z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:125%;font-family:Prototype;-inkscape-font-specification:Prototype;letter-spacing:0px;word-spacing:0px;fill:#ff6000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="path4400" />
</g>
</g>
<g
id="g4436"
transform="translate(32.551166,70.704061)">
<rect
ry="27.086214"
rx="27.086214"
y="-454.30685"
x="-564.0376"
height="444.24011"
width="444.24011"
id="rect4434"
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4.51436901;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
<g
transform="matrix(2.5876865,0,0,2.5876865,-1303.5046,-2852.2513)"
inkscape:export-ydpi="177.41391"
inkscape:export-xdpi="177.41391"
id="g3489">
<g
inkscape:export-ydpi="64.777489"
inkscape:export-xdpi="64.777489"
id="g3491"
transform="matrix(0.96592582,-0.25881904,0.25881904,0.96592582,-102.04982,555.17501)">
<g
id="g3493"
style="fill:#767575;fill-opacity:1;stroke:none"
transform="matrix(0.5969555,0.15995374,-0.15995374,0.5969555,187.18453,347.03367)">
<path
inkscape:connector-curvature="0"
id="path3495"
d="M 403.66024,282.97714 L 350.98876,230.30666 C 305.52073,201.13204 216.95499,216.43139 216.95499,216.43139 L 350.81024,334.95314 Z"
style="fill:#767575;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
sodipodi:nodetypes="ccccc" />
<path
inkscape:connector-curvature="0"
id="path3497"
d="M 308.8794,376.0474 L 308.8794,308.0664 L 344.9544,339.9714 Z"
style="fill:#767575;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path3499"
d="M 403.66024,274.97714 L 354.42124,225.73914 L 403.66024,176.49414 Z"
style="fill:#767575;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path3501"
d="M 440.99424,208.82914 L 408.66024,176.49414 L 408.66024,208.82914 Z"
style="fill:#767575;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
</g>
<g
transform="matrix(0.5969555,0.15995374,-0.15995374,0.5969555,186.71819,346.56976)"
style="stroke:none"
id="g3503">
<path
sodipodi:nodetypes="ccccc"
style="fill:#47adc5;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 403.66024,282.97714 L 350.98876,230.30666 C 305.52073,201.13204 216.95499,216.43139 216.95499,216.43139 L 350.81024,334.95314 Z"
id="path3505"
inkscape:connector-curvature="0" />
<path
style="fill:#47adc5;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 308.8794,376.0474 L 308.8794,308.0664 L 344.9544,339.9714 Z"
id="path3507"
inkscape:connector-curvature="0" />
<path
style="fill:#feb103;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 403.66024,274.97714 L 354.42124,225.73914 L 403.66024,176.49414 Z"
id="path3509"
inkscape:connector-curvature="0" />
<path
style="fill:#feb103;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 440.99424,208.82914 L 408.66024,176.49414 L 408.66024,208.82914 Z"
id="path3511"
inkscape:connector-curvature="0" />
</g>
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 94 KiB

View File

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

View File

Before

Width:  |  Height:  |  Size: 252 KiB

After

Width:  |  Height:  |  Size: 252 KiB

View File

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

View File

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

View File

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

View File

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

View File

Before

Width:  |  Height:  |  Size: 9.3 KiB

After

Width:  |  Height:  |  Size: 9.3 KiB

View File

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

View File

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

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