aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorzheng_wenlong <wenlong_zheng@nexty-ele.com>2018-11-02 14:01:12 +0900
committerzheng_wenlong <wenlong_zheng@nexty-ele.com>2018-11-02 14:01:12 +0900
commitbf31f297dbbeb91c3420b691f4deffdbe6865b23 (patch)
treea59d3426a264aedf81d3aad54f33816b85fd6461
parenta35b3631420ac051a1b50a00806ee29900f03250 (diff)
add source for waltham receiversandbox/zheng_wenlong/receiver
-rw-r--r--CMakeLists.txt111
-rw-r--r--LICENSE54
-rw-r--r--README.md102
-rw-r--r--als-meter-demo.pro3
-rw-r--r--app/Als-meter-demo.qml290
-rw-r--r--app/CameraControl.qml136
-rw-r--r--app/Mid.qml34
-rw-r--r--app/MidOther.qml36
-rw-r--r--app/Shift.qml51
-rw-r--r--app/Speed.qml92
-rw-r--r--app/Tacho.qml101
-rw-r--r--app/als-meter-demo.qrc11
-rw-r--r--app/app.pri5
-rw-r--r--app/app.pro25
-rw-r--r--app/camera.cpp139
-rw-r--r--app/camera.h70
-rw-r--r--app/config.tests/libhomescreen/libhomescreen.cpp8
-rw-r--r--app/config.tests/libhomescreen/libhomescreen.pro5
-rw-r--r--app/images/camera/camera_bg.svg484
-rw-r--r--app/images/camera/camerainfo_bg.svg93
-rw-r--r--app/images/homescreen/homebg_bottom.svg1397
-rw-r--r--app/images/images.qrc39
-rw-r--r--app/images/meters/speed_0.svg102
-rw-r--r--app/images/meters/speed_1.svg62
-rw-r--r--app/images/meters/speed_2.svg94
-rw-r--r--app/images/meters/speed_3.svg138
-rw-r--r--app/images/meters/speed_4.svg78
-rw-r--r--app/images/meters/speed_5.svg104
-rw-r--r--app/images/meters/speed_6.svg119
-rw-r--r--app/images/meters/speed_7.svg102
-rw-r--r--app/images/meters/speed_8.svg164
-rw-r--r--app/images/meters/speed_9.svg143
-rw-r--r--app/images/meters/speed_center.svg391
-rw-r--r--app/images/meters/speed_kmh.svg101
-rw-r--r--app/images/meters/speed_limit_none.svg156
-rw-r--r--app/images/meters/tacho_center.svg246
-rw-r--r--app/images/meters/tacho_frame.svg213
-rw-r--r--app/images/meters/tacho_hand.svg189
-rw-r--r--app/images/meters/tacho_scale.svg876
-rw-r--r--app/images/meters/tacho_shift_1.svg46
-rw-r--r--app/images/meters/tacho_shift_2.svg63
-rw-r--r--app/images/meters/tacho_shift_3.svg69
-rw-r--r--app/images/meters/tacho_shift_4.svg56
-rw-r--r--app/images/meters/tacho_shift_5.svg67
-rw-r--r--app/images/meters/tacho_shift_6.svg72
-rw-r--r--app/images/meters/tacho_shift_B.svg82
-rw-r--r--app/images/meters/tacho_shift_D.svg67
-rw-r--r--app/images/meters/tacho_shift_N.svg66
-rw-r--r--app/images/meters/tacho_shift_P.svg88
-rw-r--r--app/images/meters/tacho_shift_R.svg70
-rw-r--r--app/images/mid/mid_S_normal.svg1171
-rw-r--r--app/images/mid/mid_other.svg123
-rw-r--r--app/images/mid/recirc_inter.svg339
-rw-r--r--app/images/mid/recirc_outer.svg339
-rw-r--r--app/main.cpp176
-rw-r--r--config/pipeline.cfg1
-rw-r--r--include/bitmap.h35
-rw-r--r--include/hmi-debug.h70
-rw-r--r--include/os-compatibility.h58
-rw-r--r--include/wth-server-waltham-comm.h524
-rw-r--r--include/wth-server-weston.h99
-rw-r--r--package/config.xml19
-rw-r--r--package/icon.svg892
-rw-r--r--package/package.pro19
-rw-r--r--package/receiver/config.xml17
-rw-r--r--package/receiver/icon.svg279
-rw-r--r--package/root/config.xml17
-rw-r--r--package/root/icon.svg279
-rw-r--r--protocol/ivi-application.xml100
-rw-r--r--sample/als-meter-demo_git.bb21
-rw-r--r--src/utils/bitmap.c107
-rw-r--r--src/utils/os-compatibility.c204
-rw-r--r--src/wth-server-gst.cpp1326
-rw-r--r--src/wth-server-main.cpp372
-rw-r--r--src/wth-server-waltham-comm.cpp1202
-rw-r--r--src/wth-server-weston.c811
76 files changed, 5683 insertions, 10227 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..2f8d74e
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,111 @@
+cmake_minimum_required( VERSION 2.8.5 )
+
+project (waltham-server)
+
+set(CMAKE_CXX_FLAGS "-Wall -fpermissive")
+
+find_package(PkgConfig)
+find_package (Threads)
+pkg_check_modules(WAYLAND_CLIENT wayland-client REQUIRED)
+pkg_check_modules(WAYLAND_CURSOR wayland-cursor REQUIRED)
+pkg_check_modules(WALTHAM waltham REQUIRED)
+pkg_check_modules(GLESv2 glesv2 REQUIRED)
+pkg_check_modules(WAYLAND_EGL wayland-egl REQUIRED)
+pkg_search_module(EGL egl required)
+pkg_search_module(GSTREAMER gstreamer-1.0 required)
+pkg_search_module(GSTREAMERAPP gstreamer-app-1.0 required)
+pkg_search_module(DRM libdrm required)
+
+find_program(WAYLAND_SCANNER_EXECUTABLE NAMES wayland-scanner)
+find_library(GST_ALLOCATOR NAMES gstallocators-1.0 PATHs /usr/lib64)
+find_library(GST_VIDEO NAMES gstvideo-1.0 PATHs /usr/lib64)
+add_custom_command(
+ OUTPUT ivi-application-client-protocol.h
+ COMMAND ${WAYLAND_SCANNER_EXECUTABLE} client-header
+ < ${CMAKE_SOURCE_DIR}/protocol/ivi-application.xml
+ > ${CMAKE_CURRENT_BINARY_DIR}/ivi-application-client-protocol.h
+ DEPENDS ${CMAKE_SOURCE_DIR}/protocol/ivi-application.xml
+)
+
+add_custom_command(
+ OUTPUT ivi-application-protocol.c
+ COMMAND ${WAYLAND_SCANNER_EXECUTABLE} code
+ < ${CMAKE_SOURCE_DIR}/protocol/ivi-application.xml
+ > ${CMAKE_CURRENT_BINARY_DIR}/ivi-application-protocol.c
+ DEPENDS ${CMAKE_SOURCE_DIR}/protocol/ivi-application.xml
+)
+
+include_directories(
+ ${WAYLAND_CLIENT_INCLUDE_DIR}
+ ${WAYLAND_CURSOR_INCLUDE_DIR}
+ ${WALTHAM_INCLUDE_DIRS}
+ ${DRM_INCLUDE_DIRS}
+ ${GSTREAMER_LIBRARY_DIRS}
+ ${GSTREAMER_INCLUDE_DIRS}
+ ${GSTREAMERAPP_INCLUDE_DIRS}
+ ${EGL_INCLUDE_DIRS}
+ ${WAYLAND_EGL_INCLUDE_DIR}
+ ${GLESv2_INCLUDE_DIRS}
+ ${CMAKE_CURRENT_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/include/
+ ${CMAKE_SOURCE_DIR}/waltham-renderer
+)
+
+link_directories(
+ ${WAYLAND_CLIENT_LIBRARY_DIRS}
+ ${WAYLAND_CURSOR_LIBRARY_DIRS}
+ ${WALTHAM_LIBRARY_DIRS}
+ ${EGL_LIBRARY_DIRS}
+ ${WAYLAND_EGL_LIBRAY_DIRS}
+ ${GLESv2_LIBRARY_DIRS}
+ ${GSTREAMER_LIBRARY_DIRS}
+ ${GSTREAMERAPP_LIBRARY_DIRS}
+)
+
+SET(LIBS
+ ${CMAKE_THREAD_LIBS_INIT}
+ ${WAYLAND_CLIENT_LIBRARIES}
+ ${WAYLAND_CURSOR_LIBRARIES}
+ ${WALTHAM_LIBRARIES}
+ ${EGL_LIBRARIES}
+ ${WAYLAND_EGL_LIBRARIES}
+ ${GLESv2_LIBRARIES}
+ ${GSTREAMER_LIBRARIES}
+ ${GSTREAMERAPP_LIBRARIES}
+ ${GST_ALLOCATOR}
+ ${GST_VIDEO}
+ libwindowmanager.so
+ libjson-c.so
+ libhomescreen.so
+)
+
+SET(SRC_FILES
+ src/wth-server-main.cpp
+ src/wth-server-waltham-comm.cpp
+ src/wth-server-gst.cpp
+ src/utils/bitmap.c
+ src/utils/os-compatibility.c
+ ivi-application-protocol.c
+ ivi-application-client-protocol.h
+)
+
+add_executable(${PROJECT_NAME} ${SRC_FILES})
+
+add_definitions(${EGL_CFLAGS})
+
+target_link_libraries(${PROJECT_NAME} ${LIBS})
+
+add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
+ COMMAND cp -rf ${CMAKE_CURRENT_SOURCE_DIR}/package ${PROJECT_BINARY_DIR}
+ COMMAND mkdir -p ${PROJECT_BINARY_DIR}/package/root/bin
+ COMMAND cp -rf ${PROJECT_BINARY_DIR}/${PROJECT_NAME} ${PROJECT_BINARY_DIR}/package/root/bin)
+
+add_custom_target(widget DEPENDS ${PROJECT_BINARY_DIR}/package/root
+ COMMAND wgtpkg-pack -f -o ${PROJECT_BINARY_DIR}/package/${PROJECT_NAME}.wgt ${PROJECT_BINARY_DIR}/package/root)
+
+add_custom_target(receiver DEPENDS ${PROJECT_BINARY_DIR}/package/root
+ COMMAND mkdir -p ${PROJECT_BINARY_DIR}/package/receiver/bin
+ COMMAND cp -rf ${PROJECT_BINARY_DIR}/${PROJECT_NAME} ${PROJECT_BINARY_DIR}/package/receiver/bin/receiver
+ COMMAND wgtpkg-pack -f -o ${PROJECT_BINARY_DIR}/package/receiver.wgt ${PROJECT_BINARY_DIR}/package/receiver)
+
+install (TARGETS ${PROJECT_NAME} DESTINATION bin)
diff --git a/LICENSE b/LICENSE
deleted file mode 100644
index 31c692a..0000000
--- a/LICENSE
+++ /dev/null
@@ -1,54 +0,0 @@
-Apache License
-
-Version 2.0, January 2004
-
-http://www.apache.org/licenses/
-
-TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-1. Definitions.
-
-"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.
-
-"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.
-
-"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.
-
-"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.
-
-"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.
-
-"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.
-
-"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).
-
-"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.
-
-"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."
-
-"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.
-
-2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.
-
-3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.
-
-4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:
-
- You must give any other recipients of the Work or Derivative Works a copy of this License; and
- You must cause any modified files to carry prominent notices stating that You changed the files; and
- You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and
- If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License.
-
- You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.
-
-5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.
-
-6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.
-
-7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.
-
-8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.
-
-9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.
-
-END OF TERMS AND CONDITIONS
diff --git a/README.md b/README.md
index e54129a..0b48aa4 100644
--- a/README.md
+++ b/README.md
@@ -1,31 +1,71 @@
-Information
-====
-<br>This is sample application for af-steering-wheel-binding.
-<br>At above of the screen will display usb-camera(UVC camera) video.
-<br>At bottom of this screen will display the can information.
-<br>Right now it can get VehicleSpeed,EngineSpeed,TransmissionMode information from af-steering-wheel-binding.
-<br>Or you can change to use low-level-can-servcie.
-
-* Hardware: Renesas m3ulcb
-* Software: Daring Dab 4.0.0
-* Application name: als-meter-demo
-* Test Camera Device: Logitech c920r
-
-How to compile and install
-====
-<br> These is a sample recipe for als-meter-demo, you can just add that recipes into your project and bitbake.
-<br> Sample Recipes: als-meter-demo_git.bb
-
-How to use
-====
-<br>1, If the camera has been connected, you can select the camera corresponding to the device ID, and set FPS ,
-<br>pixel parameters, open ON/OFF switch on the right, you can see the camera display content.
-<br>2, operation steering-wheel device corresponding function, you can see vehicle speed, engine speed, transmission mode changes.
-
-Kernel configure
-====
-<br>You need to enable some kernel configure to enable usb camera.
-* CONFIG_VIDEOBUF2_VMALLOC=y
-* CONFIG_MEDIA_USB_SUPPORT=y
-* CONFIG_USB_VIDEO_CLASS=y
-* CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y \ No newline at end of file
+**Overview**
+
+This application receives transmitted data by waltham-transmitter.
+This application is implemented based on waltham-server.
+The original source code of waltham-server is in `./orig`.
+
+**Download**
+
+Download souce code and SDK from gitlab.
+
+```
+$ git clone http://oss-project.tmc-tokai.jp/gitlab/WindowManager/waltham-server.git
+```
+
+*NOTE*
+
+This application uses waltham protocol, therefore waltham librarys is necessary.
+The downloaded SDK includes the libraries.
+If build this application, please use this SDK.
+
+**Install SDK**
+
+1. Install SDK which is in `./sdk`.
+```
+$ cd ./sdk
+$ ./poky-agl-glibc-x86_64-agl-demo-platform-crosssdk-aarch64-toolchain-6.0.0.sh
+```
+
+1. Copy gstglconfig.h
+This SDK has gstglconfig.h
+but it exists in `<sdk_installed_path>/sysroots/aarch64-agl-linux/usr/lib`
+and it occures build error.
+Therefore copy it to `<sdk_installed_path>/sysroots/aarch64-agl-linux/usr/include`.
+```
+$ cd <sdk_installed_path>/sysroots/aarch64-agl-linux/
+$ cp usr/lib/gstreamer-1.0/include/gst/gl/gstglconfig.h usr/include/gstreamer-1.0/gst/gl/
+```
+
+**Build application**
+
+Source SDK envirment and make.
+```
+$ source <sdk_installed_path>/environment-setup-aarch64-agl-linux
+$ cd waltham-server
+$ mkdir build
+$ cd build
+$ cmake ..
+$ make
+$ make receiver
+```
+
+**Install wgt and config file**
+
+```
+[On host]
+$ scp build/package/receiver.wgt root@<your_target_ip>
+$ scp config/pipeline.cfg root@<your_target_ip>:/etc/xdg/weston
+$ ssh root@<your_target_ip>
+
+[On target]
+# afm-util install receiver.wgt
+# sync
+```
+
+**NOTE**
+
+This application uses port 34400 by default.
+If change it, please modify the followings:
+
+- In `config/pipeline.cfg`, value of `port` at line 1.
+- In `src/wth-server-main.cpp`, value of `tcp_port` at line 49.
diff --git a/als-meter-demo.pro b/als-meter-demo.pro
deleted file mode 100644
index 579a952..0000000
--- a/als-meter-demo.pro
+++ /dev/null
@@ -1,3 +0,0 @@
-TEMPLATE = subdirs
-SUBDIRS = app package
-package.depends += app
diff --git a/app/Als-meter-demo.qml b/app/Als-meter-demo.qml
deleted file mode 100644
index 4549704..0000000
--- a/app/Als-meter-demo.qml
+++ /dev/null
@@ -1,290 +0,0 @@
-/*
- * Copyright (c) 2017 TOYOTA MOTOR CORPORATION
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import QtQuick 2.6
-import QtQuick.Layouts 1.3
-import QtQuick.Controls 2.0
-import QtQuick.Window 2.2
-import Camera 1.0
-import QtWebSockets 1.0
-
-ApplicationWindow {
- id: root
- width: 1080
- height: 1487
-
- property string als_meter_demo_request_str: ""
- property string api_str: "steering-wheel"
- property var msgid_enu: { "call":2, "retok":3, "reterr":4, "event":5 }
- property int recirc:0
- property int vehiclespeed: 0
- property real enginespeed: 0
- property int wshift: 0
-
- WebSocket {
- id: websocket
- url: bindingAddressWS
-
- onStatusChanged: {
- if (websocket.status === WebSocket.Error){
- console.log ("Error: " + websocket.errorString)
- websocket.active = false
- countdown.start()
- }else if (websocket.status === WebSocket.Open){
- console.log ("Socket Open")
- do_subscribe()
- }else if (websocket.status === WebSocket.Closed){
- console.log ("Socket closed")
- }
- }
-
- onTextMessageReceived: {
- var message_json = JSON.parse(message);
- console.log("Raw response: " + message)
-
- if (message_json[0] === msgid_enu.event){
- var propertyName = message_json[2].event.split("/")[1]
- if (propertyName === "TransmissionMode"){
- wshift = message_json[2].data.value
- }else if (propertyName === "VehicleSpeed"){
- vehiclespeed = message_json[2].data.value
- }else if (propertyName === "EngineSpeed"){
- enginespeed = message_json[2].data.value
- }
- }else if (message_json[0] === msgid_enu.retok){
- for (var item in message_json[2].response){
- if (item === "TransmissionMode"){
- wshift = message_json[2].response["TransmissionMode"]["value"]
- }else if (item === "VehicleSpeed"){
- vehiclespeed = message_json[2].response["VehicleSpeed"]["value"]
- }else if (item === "EngineSpeed"){
- enginespeed = message_json[2].response["EngineSpeed"]["value"]
- }
- }
- }else{
- console.log ("Event type error:", message_json[0])
- }
- }
-
- active: false
- }
-
- Timer {
- id: countdown
- repeat: false
- interval: 3000
- triggeredOnStart: false
- onTriggered: {
- websocket.active = true
- }
- }
-
- Item {
- id: topscreen_up
- width: root.width
- height: (root.height - bottomscreen.height)/2
-
- CameraControl {
- id:cameracontrol_up
- listWH: true
- device: camera_up
- width: root.width
- height:80
- }
- Camera {
- id: camera_up
- width: root.width
- height: topscreen_up.height - cameracontrol_up.height
- anchors.top: cameracontrol_up.bottom
- onIsrunningChanged: {
- camerabg_up.visible = !isrunning
-
- if (isrunning){
- if (cameracontrol_dn.device.cameraCnt() === 1)
- cameracontrol_dn.switchstatus = false;
- }else{
- cameracontrol_dn.switchstatus = true;
- }
- }
- onCamraCntChanged: {
- if (!camera_dn.isrunning)
- cameracontrol_dn.number = camera_dn.camranum();
-
- if (!camera_up.isrunning)
- cameracontrol_up.number = camera_up.camranum();
- }
-
- Image {
- id: camerabg_up
- anchors.centerIn: parent
- width: 200
- height: 200
- source: "images/camera/camera_bg.svg"
- }
- }
- }
-
- Item {
- id: topscreen_dn
- width: root.width
- height: (root.height - bottomscreen.height)/2
- anchors.top: topscreen_up.bottom
- CameraControl {
- id:cameracontrol_dn
- listWH: false
- device: camera_dn
- width: root.width
- height:80
- back:0
- }
- Camera {
- id: camera_dn
- width: root.width
- height: topscreen_dn.height - cameracontrol_dn.height
- anchors.top: cameracontrol_dn.bottom
- onIsrunningChanged: {
- camerabg_dn.visible = !isrunning
-
- if (isrunning){
- if (cameracontrol_up.device.cameraCnt() === 1)
- cameracontrol_up.switchstatus = false;
- }else{
- cameracontrol_up.switchstatus = true;
- }
- }
-
- onCamraCntChanged: {
- if (!camera_up.isrunning)
- cameracontrol_up.number = camera_up.camranum();
-
- if (!camera_dn.isrunning)
- cameracontrol_dn.number = camera_dn.camranum();
- }
-
- Image {
- id: camerabg_dn
- anchors.centerIn: parent
- width: 200
- height: 200
- source: "images/camera/camera_bg.svg"
- }
- }
- }
-
- Item {
- id: bottomscreen
- width: root.width
- height: 600
- anchors.bottom: parent.bottom
- Image {
- width: parent.width
- height: parent.height
- asynchronous: true
- fillMode: Image.TileHorizontally
- smooth: true
- source: "images/homescreen/homebg_bottom.svg"
- }
- RowLayout {
- id: smtparts
- anchors.left: parent.left
- anchors.right: parent.right
- Speed {
- id: speedparts
- anchors.left: parent.left
- anchors.leftMargin: 30
- anchors.bottom: parent.bottom
- anchors.bottomMargin: 120
- width: imgwidth
- height: imgheight
- }
- ColumnLayout {
- id: tachoparts
- anchors.horizontalCenter: parent.horizontalCenter
- Tacho {
- anchors.top: parent.top
- anchors.topMargin: -60
- anchors.horizontalCenter: parent.horizontalCenter
- width: imgwidth
- height: imgheight
- }
- MidOther {
- anchors.bottom: parent.bottom
- anchors.bottomMargin: 110
- anchors.horizontalCenter: parent.horizontalCenter
- width: imgwidth
- height: imgheight
- }
- }
- Mid {
- id: midparts
- anchors.right: parent.right
- anchors.rightMargin: 25
- anchors.bottom: parent.bottom
- anchors.bottomMargin: 90
- width: imgwidth
- height: imgheight
- }
- }
- }
-
- onVisibleChanged: {
- if (visible){
- if (!websocket.active){
- websocket.active = true
- }else{
- do_subscribe()
- }
- }
- else {
- countdown.stop()
- if (websocket.active)
- do_unsubscribe()
- }
- }
-
- Connections {
- target: appVisible
- onVisibleChanged: {
- if (!visible){
- if (websocket.active)
- do_unsubscribe()
- }else{
- if (websocket.active){
- do_subscribe()
- }else{
- websocket.active = true
- }
- }
- }
- }
-
- function do_call(binding, verb, event_name) {
- als_meter_demo_request_str = '[' + msgid_enu.call + ',"99999","' + binding+'/'+verb + '", {"event":"' + event_name + '"} ]'
- websocket.sendTextMessage (als_meter_demo_request_str)
- }
-
- function do_subscribe() {
- do_call(api_str, "subscribe", "VehicleSpeed")
- do_call(api_str, "subscribe", "TransmissionMode")
- do_call(api_str, "subscribe", "EngineSpeed")
- }
-
- function do_unsubscribe() {
- do_call(api_str, "unsubscribe", "VehicleSpeed")
- do_call(api_str, "unsubscribe", "TransmissionMode")
- do_call(api_str, "unsubscribe", "EngineSpeed")
- }
-}
diff --git a/app/CameraControl.qml b/app/CameraControl.qml
deleted file mode 100644
index f3407d5..0000000
--- a/app/CameraControl.qml
+++ /dev/null
@@ -1,136 +0,0 @@
-/*
- * Copyright (c) 2017 TOYOTA MOTOR CORPORATION
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import QtQuick 2.6
-import QtQuick.Layouts 1.3
-import QtQuick.Controls 2.0
-
-RowLayout {
- property var device
- property var listWH
- property var number: []
- property var fps: ["10", "20", "30", "40", "50", "60"]
- property var resolution: listWH ? ["320*240", "640*480", "1280*720", "1920*1080"] : ["320*240"]
- property var models: [number, fps, resolution]
- property real back: 1
- property bool switchstatus: true
-
- Repeater {
- id: info
- model: ["No.:", "FPS:", "W*H:"]
- delegate: RowLayout{
- Label {
- id: label
- text: model.modelData
- color: "#59FF7F"
- }
- ComboBox {
- id: camerainfo
- implicitWidth: index != 2 ? 100 : 245
- font: label.font
- model: models[index]
- contentItem: Text {
- text: camerainfo.displayText
- font: camerainfo.font
- color: camerainfo.pressed ? "#17a81a" : "white"
- horizontalAlignment: Text.AlignLeft
- verticalAlignment: Text.AlignVCenter
- elide: Text.ElideRight
- }
- indicator: Canvas {
- id: canvas
- x: camerainfo.width - width - camerainfo.rightPadding
- y: camerainfo.topPadding + (camerainfo.availableHeight - height) / 2
- width: 20
- height: 12
- contextType: "2d"
-
- Connections {
- target: camerainfo
- onPressedChanged: canvas.requestPaint()
- }
-
- onPaint: {
- context.reset();
- context.moveTo(0, 0);
- context.lineTo(width, 0);
- context.lineTo(width / 2, height);
- context.closePath();
- context.fillStyle = camerainfo.pressed ? "#17a81a" : "white";
- context.fill();
- }
- }
- popup: Popup {
- id: popup
- y: camerainfo.height - 1
- implicitWidth: camerainfo.width
- implicitHeight: listview.count > 6 ? (listview.contentHeight/3.3) : listview.contentHeight
- padding: 0
-
- contentItem: ListView {
- id: listview
- clip: true
- model: camerainfo.visible ? camerainfo.delegateModel : null
- currentIndex: camerainfo.highlightedIndex
- ScrollIndicator.vertical: ScrollIndicator { }
- }
- background: Image { source: "images/camera/camerainfo_bg.svg" }
- }
- delegate: ItemDelegate {
- id: popupdelegate
- width: camerainfo.width
- contentItem: Item {
- implicitHeight: 30
- Text {
- text: modelData
- color: popupdelegate.pressed || highlighted ? "#21be2b" : "white"
- font: camerainfo.font
- elide: Text.ElideRight
- verticalAlignment: Text.AlignVCenter
- }
- }
- highlighted: camerainfo.highlightedIndex == index
- }
-
- background: Image { source: "images/camera/camerainfo_bg.svg" }
- }
- }
- }
- Switch {
- id: cameraswitch
- enabled: switchstatus
- onCheckedChanged: {
- if (checked && device){
- device.start(info.itemAt(0).children[1].currentText, info.itemAt(1).children[1].currentText, info.itemAt(2).children[1].currentText)
- }else if (!checked && device){
- device.stop()
- }
- }
- }
-
- onVisibleChanged: {
- if (!visible)
- cameraswitch.checked = false
- }
-
- Component.onCompleted: {
- device.enumerateCameras();
- number = device.camranum();
-
- if (device.cameraCnt() === 0)
- switchstatus = false;
- }
-}
diff --git a/app/Mid.qml b/app/Mid.qml
deleted file mode 100644
index e658138..0000000
--- a/app/Mid.qml
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright (c) 2017 TOYOTA MOTOR CORPORATION
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import QtQuick 2.6
-import QtQuick.Controls 2.0
-import QtQuick.Layouts 1.0
-
-Item {
- property real imgwidth: 320
- property real imgheight: 320
-
- Image {
- id: midimg
- width: imgwidth
- height: imgheight
- fillMode: Image.PreserveAspectFit
- asynchronous: true
- smooth: true
- source: "images/mid/mid_S_normal.svg"
- }
-}
diff --git a/app/MidOther.qml b/app/MidOther.qml
deleted file mode 100644
index 579d5f1..0000000
--- a/app/MidOther.qml
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright (c) 2017 TOYOTA MOTOR CORPORATION
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import QtQuick 2.6
-import QtQuick.Controls 2.0
-import QtQuick.Layouts 1.0
-import QtWebSockets 1.0
-
-Item {
- property real imgwidth: 430*120/150
- property real imgheight: 120
-
- property var recirc_mid: ["images/mid/recirc_outer.svg", "images/mid/recirc_inter.svg"]
-
- Image {
- width: imgwidth
- height: imgheight
- fillMode: Image.PreserveAspectFit
- asynchronous: true
- smooth: true
- source: recirc_mid[recirc]
- }
-}
diff --git a/app/Shift.qml b/app/Shift.qml
deleted file mode 100644
index 60a0f0f..0000000
--- a/app/Shift.qml
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright (c) 2017 TOYOTA MOTOR CORPORATION
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import QtQuick 2.6
-import QtQuick.Layouts 1.0
-import QtWebSockets 1.0
-
-Row {
- property real percent: 1
- property var carshift: [
- "images/meters/tacho_shift_N.svg", "images/meters/tacho_shift_D.svg"
- ]
-
- property var wheelshift: [
- "images/meters/tacho_shift_1.svg", "images/meters/tacho_shift_2.svg",
- "images/meters/tacho_shift_3.svg", "images/meters/tacho_shift_4.svg",
- "images/meters/tacho_shift_5.svg", "images/meters/tacho_shift_6.svg"
- ]
-
- Image {
- width: percent*sourceSize.width
- height: percent*sourceSize.height
- fillMode: Image.PreserveAspectFit
- smooth: true
- asynchronous: true
- source: wshift === 0 ? carshift[0] : carshift[1]
- }
-
- Image {
- visible: wshift > 0
- width: percent*sourceSize.width
- height: percent*sourceSize.height
- fillMode: Image.PreserveAspectFit
- smooth: true
- asynchronous: true
- source: (wshift > 0 && wshift <= wheelshift.length) ? wheelshift[wshift-1] : wheelshift[0]
- }
-}
diff --git a/app/Speed.qml b/app/Speed.qml
deleted file mode 100644
index 46ec01f..0000000
--- a/app/Speed.qml
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * Copyright (c) 2017 TOYOTA MOTOR CORPORATION
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import QtQuick 2.6
-import QtQuick.Layouts 1.3
-import QtWebSockets 1.0
-
-Item {
- property real imgwidth: 300
- property real imgheight: 300
- property var spdlist: [
- "images/meters/speed_0.svg", "images/meters/speed_1.svg",
- "images/meters/speed_2.svg", "images/meters/speed_3.svg",
- "images/meters/speed_4.svg", "images/meters/speed_5.svg",
- "images/meters/speed_6.svg", "images/meters/speed_7.svg",
- "images/meters/speed_8.svg", "images/meters/speed_9.svg"
- ]
- property var spdlimit: [ "images/meters/speed_limit_none.svg" ]
-
- Image {
- width: 280
- height: 280
- anchors.top: parent.top
- anchors.topMargin: 17
- anchors.horizontalCenter: parent.horizontalCenter
- fillMode: Image.PreserveAspectFit
- asynchronous: true
- smooth: true
- source: "images/meters/speed_center.svg"
- }
-
- Image {
- width: imgwidth
- height: imgheight
- fillMode: Image.PreserveAspectFit
- smooth: true
- asynchronous: true
- source: spdlimit[0]
- }
-
- Row {
- anchors.horizontalCenter: parent.horizontalCenter
- anchors.verticalCenter: parent.verticalCenter
- Image {
- width: imgwidth*sourceSize.width/480
- height: imgheight*sourceSize.height/480
- fillMode: Image.PreserveAspectFit
- asynchronous: true
- smooth: true
- visible: vehiclespeed > 99
- source: ((vehiclespeed - vehiclespeed%100)/100%10 < spdlist.length) ? spdlist[(vehiclespeed - vehiclespeed%100)/100%10] : spdlist[0]
- }
- Image {
- width: imgwidth*sourceSize.width/480
- height: imgheight*sourceSize.height/480
- fillMode: Image.PreserveAspectFit
- asynchronous: true
- smooth: true
- visible: vehiclespeed > 9
- source: ((vehiclespeed - vehiclespeed%10)/10%10 < spdlist.length) ? spdlist[(vehiclespeed - vehiclespeed%10)/10%10] : spdlist[0]
- }
- Image {
- width: imgwidth*sourceSize.width/480
- height: imgheight*sourceSize.height/480
- fillMode: Image.PreserveAspectFit
- asynchronous: true
- smooth: true
- source: (vehiclespeed%10 < spdlist.length) ? spdlist[vehiclespeed%10] : spdlist[0]
- }
- }
- Image {
- width: imgwidth
- height: imgheight
- fillMode: Image.PreserveAspectFit
- asynchronous: true
- smooth: true
- source: "images/meters/speed_kmh.svg"
- }
-}
diff --git a/app/Tacho.qml b/app/Tacho.qml
deleted file mode 100644
index 9c4fbee..0000000
--- a/app/Tacho.qml
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * Copyright (c) 2017 TOYOTA MOTOR CORPORATION
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import QtQuick 2.6
-import QtWebSockets 1.0
-
-Item {
- property real imgwidth: 600
- property real imgheight: 600
-
- property real tacho: enginespeed === undefined ? 0 : (enginespeed > 9000 ? 9 : enginespeed*9/9000)
-
- Image {
- width: imgwidth
- height: imgheight
- fillMode: Image.PreserveAspectFit
- smooth: true
- asynchronous: true
- source: "images/meters/tacho_center.svg"
- }
- Image {
- width: imgwidth
- height: imgheight
- fillMode: Image.PreserveAspectFit
- smooth: true
- asynchronous: true
- source: "images/meters/tacho_frame.svg"
- }
- Image {
- width: imgwidth
- height: imgheight
- fillMode: Image.PreserveAspectFit
- smooth: true
- asynchronous: true
- source: "images/meters/tacho_scale.svg"
- }
- Shift {
- percent: imgwidth/480
- anchors.right: parent.right
- anchors.rightMargin: wshift > 0 ? (imgwidth-width)/2+25 : (imgwidth-width)/2-5
- anchors.bottom: parent.bottom
- anchors.bottomMargin: 100
- spacing: -10
- }
- Canvas {
- id: canvas
- property real engleoffset: Math.PI*3/2.04
- property int linewidth: 90
- anchors.centerIn: parent
- width: 420
- height: 420
- visible: tacho >= 0.05
- rotation: 135
- opacity: 0.5
- onPaint: {
- var ctx = getContext("2d")
- var gradient = ctx.createLinearGradient(0, 0, canvas.width, canvas.height)
- gradient.addColorStop(0.0, Qt.rgba(1.0, 1.0, 1.0, 1.0))
- gradient.addColorStop(1.0, Qt.rgba(1.0, 1.0, 1.0, 0.0))
-
- ctx.clearRect(0, 0, canvas.width, canvas.height);
- ctx.beginPath();
- ctx.lineWidth = linewidth;
- ctx.strokeStyle = gradient
- ctx.arc(canvas.width/2,
- canvas.height/2,
- (canvas.width-ctx.lineWidth)/2,
- 0.1,
- engleoffset*(tacho/9) + (tacho < 3 ? 0.1 : (tacho < 7 ? 0.05 : 0.0)),
- false)
- ctx.stroke()
- ctx.closePath()
- }
- }
- Image {
- width: imgwidth
- height: imgheight
- fillMode: Image.PreserveAspectFit
- smooth: true
- asynchronous: true
- rotation: 28.8*tacho
- source: "images/meters/tacho_hand.svg"
- }
-
- onTachoChanged: {
- canvas.requestPaint()
- }
-}
diff --git a/app/als-meter-demo.qrc b/app/als-meter-demo.qrc
deleted file mode 100644
index 4843da7..0000000
--- a/app/als-meter-demo.qrc
+++ /dev/null
@@ -1,11 +0,0 @@
-<RCC>
- <qresource prefix="/">
- <file>Als-meter-demo.qml</file>
- <file>Speed.qml</file>
- <file>Mid.qml</file>
- <file>Tacho.qml</file>
- <file>CameraControl.qml</file>
- <file>Shift.qml</file>
- <file>MidOther.qml</file>
- </qresource>
-</RCC>
diff --git a/app/app.pri b/app/app.pri
deleted file mode 100644
index e535cbc..0000000
--- a/app/app.pri
+++ /dev/null
@@ -1,5 +0,0 @@
-TEMPLATE = app
-
-load(configure)
-
-DESTDIR = $${OUT_PWD}/../package/root/bin
diff --git a/app/app.pro b/app/app.pro
deleted file mode 100644
index 035807c..0000000
--- a/app/app.pro
+++ /dev/null
@@ -1,25 +0,0 @@
-TARGET = als-meter-demo
-QT = quickcontrols2 dbus
-
-LIBS += -lopencv_core -lopencv_videoio
-
-equals(QT_ARCH, "arm") {
- QMAKE_CXXFLAGS += -mfp16-format=ieee
-}
-
-
-HEADERS += \
- camera.h
-
-SOURCES += \
- main.cpp \
- camera.cpp
-
-CONFIG += link_pkgconfig
-PKGCONFIG += libhomescreen qlibwindowmanager
-
-RESOURCES += \
- als-meter-demo.qrc \
- images/images.qrc
-
-include(app.pri)
diff --git a/app/camera.cpp b/app/camera.cpp
deleted file mode 100644
index 107880c..0000000
--- a/app/camera.cpp
+++ /dev/null
@@ -1,139 +0,0 @@
-/*
- * Copyright (c) 2017 TOYOTA MOTOR CORPORATION
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "camera.h"
-#include <QPainter>
-#include <opencv2/imgproc.hpp>
-
-#include <linux/videodev2.h>
-#include <fcntl.h>
-#include <unistd.h>
-#include <sys/ioctl.h>
-
-using namespace cv;
-
-Camera::Camera() {
- running = false;
- timer = new QTimer(this);
- capture = new VideoCapture();
-
- connect(timer, SIGNAL(timeout()), this, SLOT(grab()));
-}
-
-Camera::~Camera() {
- if (timer->isActive())
- timer->stop();
- if (capture && capture->isOpened())
- capture->release();
- delete timer;
- delete capture;
-}
-
-void Camera::paint(QPainter *painter) {
- painter->drawImage(0, 0, image);
-}
-
-void Camera::enumerateCameras() {
- int maxID = 10;
- for (int idx = 0; idx <maxID; idx++){
- std::stringstream no;
- no << "/dev/video" << idx;
- qDebug() << idx;
- int fd = open(no.str().c_str(), O_RDWR);
- if (fd != -1){
- struct v4l2_capability cap;
-
- if (ioctl(fd,VIDIOC_QUERYCAP,&cap) != -1){
- if ((cap.capabilities & (V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_STREAMING)) == (V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_STREAMING)){
- qDebug()<< (char*)(cap.driver) << ">" << (char*)(cap.card) << ">" << (char*)(cap.bus_info);// << (cap.version>>16)&0xFF << (cap.version>>8)&0XFF << cap.version&0xFF;
- cam_arr.push_back(idx); // vector of all available cameras
- }
- }
- close(fd);
- }
- }
-
- camcnt = cam_arr.length();
- cam_arr_bak = cam_arr;
-}
-
-void Camera::start(int no, int fps, QString res) {
- try{
- for (QVariantList::iterator iter = cam_arr_bak.begin(); iter != cam_arr_bak.end(); ++iter){
- if (*iter == no){
- cam_arr_bak.erase(iter);
- break;
- }
- }
-
- if (capture && capture->open(no)){
- capture->set(CAP_PROP_FRAME_WIDTH, res.section("*", 0, 0).toInt());
- capture->set(CAP_PROP_FRAME_HEIGHT, res.section("*", 1, 1).toInt());
-
- if (fps > 0){
- timer->start(1000/fps);
- running = true;
- emit isrunningChanged(running);
-
- emit camraCntChanged(cam_arr_bak);
- }
- camnumbackup = no;
- }
- }
- catch(cv::Exception & e) {
- qDebug() << "als-meter-demo open device error: " << e.msg.c_str();
- }
-}
-
-void Camera::stop() {
- cam_arr_bak.push_back(camnumbackup);
-
- if (timer->isActive())
- timer->stop();
- if (capture && capture->isOpened())
- capture->release();
- image = QImage();
- update();
- running = false;
- emit isrunningChanged(running);
-
- emit camraCntChanged(cam_arr_bak);
-}
-
-QVariantList Camera::camranum() const{
- return cam_arr_bak;
-}
-
-int Camera::cameraCnt() {
- return camcnt;
-}
-
-bool Camera::isrunning() const{
- return running;
-}
-
-void Camera::grab() {
- if (capture && capture->isOpened()){
- Mat frame;
- capture->read(frame);
-
- if (!frame.empty()){
- image = QImage((const uchar*)(frame.data), frame.cols, frame.rows, frame.step, QImage::Format_RGB888).rgbSwapped();
- image = image.scaled(this->width(), this->height(), Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
- update();
- }
- }
-}
diff --git a/app/camera.h b/app/camera.h
deleted file mode 100644
index 1b85d27..0000000
--- a/app/camera.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Copyright (c) 2017 TOYOTA MOTOR CORPORATION
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef CAMERA_H
-#define CAMERA_H
-
-#include <QSize>
-#include <QTimer>
-#include <QImage>
-#include <QQuickPaintedItem>
-#include <opencv2/videoio.hpp>
-#include <iostream>
-#include <opencv2/core.hpp>
-#include <opencv2/imgcodecs.hpp>
-#include <opencv2/highgui.hpp>
-
-using namespace std;
-
-static QVariantList cam_arr_bak;
-
-class Camera : public QQuickPaintedItem
-{
- Q_OBJECT
- Q_PROPERTY(bool isrunning READ isrunning NOTIFY isrunningChanged)
-public:
- Camera();
- ~Camera();
- void paint(QPainter *painter);
- bool isrunning() const;
- Q_INVOKABLE QVariantList camranum() const;
-
- Q_INVOKABLE void start(int no, int fps, QString res);
- Q_INVOKABLE void stop();
-
- Q_INVOKABLE void enumerateCameras();
- Q_INVOKABLE int cameraCnt();
-
-signals:
- void isrunningChanged(const bool& isrunning);
- void camraCntChanged(const QVariantList& camcnt);
-
-public slots:
- void grab();
-
-private:
- bool running;
- QImage image;
- QTimer* timer;
- cv::VideoCapture* capture;
-
- QVariantList cam_arr;
-
- int camnumbackup;
- int camcnt;
-};
-
-#endif // CAMERA_H
diff --git a/app/config.tests/libhomescreen/libhomescreen.cpp b/app/config.tests/libhomescreen/libhomescreen.cpp
deleted file mode 100644
index d698b05..0000000
--- a/app/config.tests/libhomescreen/libhomescreen.cpp
+++ /dev/null
@@ -1,8 +0,0 @@
-#include <libhomescreen.hpp>
-
-int main(int argc,char **argv)
-{
- LibHomeScreen libHomeScreen;
- return 0;
-}
-
diff --git a/app/config.tests/libhomescreen/libhomescreen.pro b/app/config.tests/libhomescreen/libhomescreen.pro
deleted file mode 100644
index eb4e8f3..0000000
--- a/app/config.tests/libhomescreen/libhomescreen.pro
+++ /dev/null
@@ -1,5 +0,0 @@
-SOURCES = libhomescreen.cpp
-
-CONFIG -= qt
-CONFIG += link_pkgconfig
-PKGCONFIG += homescreen
diff --git a/app/images/camera/camera_bg.svg b/app/images/camera/camera_bg.svg
deleted file mode 100644
index 458f81c..0000000
--- a/app/images/camera/camera_bg.svg
+++ /dev/null
@@ -1,484 +0,0 @@
-<?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:xlink="http://www.w3.org/1999/xlink"
- version="1.1"
- width="392"
- height="391"
- id="svg2">
- <metadata
- id="metadata8">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <defs
- id="defs6" />
- <image
- xlink:href="data:image/png;base64,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
-6/8BH94fg7v0ITsAAAAASUVORK5CYII=
-"
- x="0"
- y="0"
- width="392"
- height="391"
- id="image10" />
-</svg>
diff --git a/app/images/camera/camerainfo_bg.svg b/app/images/camera/camerainfo_bg.svg
deleted file mode 100644
index 4251412..0000000
--- a/app/images/camera/camerainfo_bg.svg
+++ /dev/null
@@ -1,93 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Generator: Adobe Illustrator 21.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
-
-<svg
- xmlns:i="&amp;#38;ns_ai;"
- 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"
- version="1.1"
- id="Layer_1"
- x="0px"
- y="0px"
- viewBox="0 0 151 51"
- style="enable-background:new 0 0 151 51;"
- xml:space="preserve"
- inkscape:version="0.91 r13725"
- sodipodi:docname="HMI_Settings_TimeDate_Button_Cancel.svg"><metadata
- id="metadata33"><rdf:RDF><cc:Work
- rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs
- id="defs31" /><sodipodi:namedview
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1"
- objecttolerance="10"
- gridtolerance="10"
- guidetolerance="10"
- inkscape:pageopacity="0"
- inkscape:pageshadow="2"
- inkscape:window-width="2560"
- inkscape:window-height="1464"
- id="namedview29"
- showgrid="false"
- inkscape:zoom="4.4503311"
- inkscape:cx="-69.095982"
- inkscape:cy="25.5"
- inkscape:window-x="0"
- inkscape:window-y="0"
- inkscape:window-maximized="1"
- inkscape:current-layer="Layer_1" /><style
- type="text/css"
- id="style3">
- .st0{fill:none;stroke:url(#SVGID_1_);stroke-miterlimit:10;}
- .st1{opacity:0.3;fill:url(#SVGID_2_);}
- .st2{fill:#FFFFFF;}
- .st3{font-family:'Roboto-Regular';}
- .st4{font-size:20px;}
- .st5{letter-spacing:3;}
-</style><switch
- id="switch5"><g
- i:extraneous="self"
- id="g7"><g
- id="g9"><linearGradient
- id="SVGID_1_"
- gradientUnits="userSpaceOnUse"
- x1="24.7258"
- y1="75.9063"
- x2="126.2742"
- y2="-24.9063"><stop
- offset="0"
- style="stop-color:#59FF7F"
- id="stop12" /><stop
- offset="1"
- style="stop-color:#6BFBFF"
- id="stop14" /></linearGradient><rect
- x="0.5"
- y="0.5"
- class="st0"
- width="150"
- height="50"
- id="rect16" /><linearGradient
- id="SVGID_2_"
- gradientUnits="userSpaceOnUse"
- x1="-25.8746"
- y1="126.14"
- x2="190.2191"
- y2="-88.3878"><stop
- offset="0"
- style="stop-color:#59FF7F"
- id="stop19" /><stop
- offset="1"
- style="stop-color:#6BFBFF"
- id="stop21" /></linearGradient><rect
- x="0.5"
- y="0.5"
- class="st1"
- width="150"
- height="50"
- id="rect23" /></g></g></switch></svg> \ No newline at end of file
diff --git a/app/images/homescreen/homebg_bottom.svg b/app/images/homescreen/homebg_bottom.svg
deleted file mode 100644
index 78bf678..0000000
--- a/app/images/homescreen/homebg_bottom.svg
+++ /dev/null
@@ -1,1397 +0,0 @@
-<?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:xlink="http://www.w3.org/1999/xlink"
- version="1.1"
- width="1920"
- height="480"
- id="svg2">
- <metadata
- id="metadata8">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <defs
- id="defs6" />
- <image
- xlink:href="data:image/png;base64,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
-zyI/K+fcjBXLM2uakquVnlbx3/q9cgapdqPfI93zPUvPjLK/sr5lptPfRvG37lv2lDVW/anIeLaO
-6VqkM/LTo9vTRmN2xFmRtfyIck7dD5bs/VqnvihztXyYfZlR4hzpqfSg8/iKr0re7Mit6L6SA5Yf
-s0ylF+ycl1kPqvp/Zm5Z+rI1jeq1paPT580y3Xpq6VbWUtWj7LvM56wfjWzNfmZniYJ63mTy6vWK
-n8rYTvxV+9aYEeWsGXVkZ7zaN1fnUMmlUUaJoarzSK57dmf9I5W9UM3b2Q9lz1o6Ff2V/WfZVftU
-a2xVZyW3o94s2zsR1X1UrTPj9dmmNz6TqdKt8yv5ptQxBa9u75pLtL6KrcORmXVYvnX7z1km81+R
-qe53T07tAZS6rex9z5dq3R5lq3H7Wdft449/UqoPAAAAAAAAAAAAAAAAAABcHD4CGgAAAAAAAAAA
-AAAAAADgTeANYAAAAAAAAAAAAAAAAACAN4E3gAEAAAAAAAAAAAAAAAAA3gTeAAYAAAAAAAAAAAAA
-AAAAeBN4AxgAAAAAAAAAAAAAAAAA4E3gDWAAAAAAAAAAAAAAAAAAgDfh47gZVz+P4/frn8P12/S7
-xSjjyY82O/qtseqYcezN+Tkb6+kZx3fioPgzjvVsVXwbx1jX5rEeXpyUucw+WD97/nk+K3kVrVG2
-FtW9YN2LUHJyjs841vIhyhNLPvIzi6dnY1fMz8hhRY+Sn9XYquvo3RtRcsbyR6mrURw8Gc+HrCZ7
-15Wa4F2P9Mz2Zqr1NvJT0amuwXy9Eg/L54rN2a5SJ7OYR+eX5YMyx/meR/es9PTsOtMzH63rlb0w
-yig5m9m28NajknvR2JV5zT5Yvyu51Y2554dKpeZH96tnaBbnyLblh6c/uqbMoWtrlh/p1IfOfBQZ
-Zf95vsx01jHaL+r67IxzprcaN7Xv8WLn2c3ORbXHqu5/5Uzq1oLqmWfZqu4hzz+LSn5XfI/0V3LL
-shvtd9Wuev4q/sw6revVsUqfp9QXi6hfj3yy9GSo+aX0zZF+Va66X5TeXe31PVuV3rHaB6syFf+r
-9d8jyp+VWlo9OzP/lH5apbqvR5nKOaKeTZFfsy2Pzlk8Uj1/s7WozkX1v1LvIqq55M0xk1djlf2s
-6B91Rj57soqtSLcq793r1BZln3o+WPKej7OfFX88P5R4Kmdu9TyK+q5K7mU+RXar55Tng9IbzHKe
-HuXcz/RFVGpI9Xyc8fSv9FeKD0ouJTG/ffzpT53wAgAAAAAAAAAAAAAAAADAxeAjoAEAAAAAAAAA
-AAAAAAAA3oSP7z9W/tY8Qv3siBWyz77YaUf9jJ1nonx+yBn2os83UHSc6WdHZ/YZF6v6PVvdXKp+
-Xk3HxhXYEatI967POVE+Z2aFM2tOtc5HeqqfodT9vKZVrrwuu/Onc5Zd6Yyb6X7+1dms9AyrYw9D
-pvpZXs+K2SNsr+T5ikzlM7hUW1VWdO70Z1cts3ScnUeR/leulWfrv0psss/m8+6t1AtP9wqrebjS
-W1XGPnO/VOJ/Vh+ofrbdjvx6RG4p90eZTG5l7LNrjhr/R/m5y59ZdsdrKB2efWbNsmes367XfXb3
-Q6t7sNIHV316dg9xFjufV5/9/LDr2WYlJsqendn9nPzo1989u9W+t2JrJ2e+prPz9frK9ZFqfa6+
-dpPpiu6rerKxZzyTP/K1vGe9brhKL863jz/92auGAAAAAAAAAAAAAAAAAADwQvAR0AAAAAAAAAAA
-AAAAAAAAb8KH/5Gb6scXZdcrfyLv4X2koeLzON772APvz76juXjx8WQqH0ehxN9D+fgNxZ/qWo/3
-1FzKcqBqy9Ov5o8lM8pVc6yTJ5k/0Rpa95ScVz4Gz7s/yig+W+Mj+ciWN19l7pk/sy3Pz13x7Oaq
-56c3Rq0Ps3/R/Vm2WtMqdTWzfafykSTVsyySU3y05qvOMfOnWqvHe6o/lbHV3I7sZDW2E89Kbit6
-Rl1R/zPLWvLKfsx6GMuGNXa+F/lQ/bijamw7Y3fUZLXf6PZUHqvzVXQp8cnyIbKb3VN9U6jMcaZa
-Y8cxSl5Z4yJ96tlj2c3mW+39lF6r47Png/e7EtNqHRuJcqAia9nKZKOzQe1XLZlRzpqDcnZ2fVCI
-1qRSC9R93an7lVraya1IZyZfycPK+bcjtyx9u3xQqPS+St2e6dT4+73u3JUeQ+mhI72W/si3HbYi
-uyt0+7OV/F/x3ztH1fPY86HbG0V56OV/tfetPCN59dbyY5b3ZDy5SH9F5+rzg+WPt9+9sZ6tao84
-3lP7P0+vZzfrSSLU+jhf92Ko7qlRproWK1RqmifT2eOWPk8uiq1S66oyij+Z/tnP+Vpmp5ur0Z7K
-bHXOoOpziqV/NU88PZW9rNRGVXflGWO1XnlUeq2V/LfuH8ft409/2dmFAQAAAAAAAAAAAAAAAADA
-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
-Xt9/V/rVkbkv8n7f4WPW+1XrjOdzpHPX/s18UWWjcdH6RWOr/8RY9Xc8eIACAAAgAElEQVSUz3Iv
-82fHflF8OGvvd/aFkq+K7cj+jvO+o9OTz3J4xc4uvOfDw7i+w+dH5NZ4zbv+yvlVPbeemVujXbU3
-U3pT77rSE2dylm+Vs2dEmWO1B519X8nLld69eqY+Kw9n+7MPZ53fWawqulR2Pfvdf599jMaOnL3G
-ynPgrr6na7fjQ6bT82ek06tUOTOHPVs7n8N3cXZNOyPPu3ZXzinvnvdsrJ5llm7PH4WoH7bsrfYV
-s21rrCe70qdWdEZzvNPJT+VZ3bKp9l1xDt8+/vqfRSv849hcEkauFLc5v67ASnwqY5W5q/Gp1sXq
-2BW7V8KL5xXzMOMVfT4D4rCHZ+/lXev4zHzIerGzbK7Y2rXuj8ifqo1n5zTA2Tyj5ng+vMs+O2M+
-u3VeIebP9OEK878SO+Nxhdg+24dn2weN7jpV++ZdffaxqGcX3vvyj/QtW7tHrtGv9jrCo/N/F69W
-l68St0dxdl69azx3zuvsPXKF56Mz3rd4tdryptw+/kZ4AxgAAAAAAAAAAAAAAAAAAC7Px49vxVf/
-XHuWvctnfwqvXlf++UDlozjUPy9X/pTfQvlTfm9e0T9LqXwkycrHfox6ozX15JWP6LDklXXx5thZ
-0+rHLVh65jHKx1SMKB9vMMpWPvJhvBfFTYmnspez2HrjPf+VvWONs3R6KD5445R/TmvJez549jpj
-lRiOKHmo7LXd+8jTpeZndq5F+pXzRdHv+VnxuVPPd+hU6/8ok+lSZGa57hmqrnm2XtY9y7fsDLVs
-Z/51c2Ye69ns5nZ0bqpn63xPrS3V3iOyqch6Pik6K2dMJuv54sXR+93SGa2BWkOq56nSJyh65vuR
-nig2q3HO/MjqQydHqjVK0VPtDz0bFVsRO3u7qnxn/2Z2V/rpVdueLzNqLameB9bvnk8rudHJ10oM
-H51fK76t7u2qfWvMSLVvU+ptJU7q2qn9qLpWlVqvnCHZver8qzlW7WUrdhT9lTpn2VX71MiuksPR
-2EqPFeW5t9dGuv1x5zmhQqcH6ub8KKP2slnfZvk3o6x75K+ypxSd3Zrnye06o5Wx43i1/ih2u/Kd
-fM9qTicfLFb2UTS2WyczG+rYaC8o57WnZ6SSV5G8NTbyobJ/1bpnjY188653106pk9lenFFyL5Oz
-xlVyafanIu+NVXqhnXX+N5nbx9/8nRJ1AAAAAAAAAAAAAAAAAAC4OF9SiejN5Ftyv0NFpyfX8cmy
-++i5Z/qt3z05dS67YhXJZj97+nf6rDDa7K5vdY6PRI3nzfjPGlPNg0w2y9sz4rWqs7JPO3ZXctJa
-R8W3qv7ofmWs4sc8j2ecQUpOnpFXqszute7MN/NtFSsHOmeKdb3q31k16lm9kOeDV0us+HXXfuWc
-OLOWPcJOlIc74qbQ2QtKn3BFduZtR/+j49LZsys2OvJn5lLUB+2yodqsxn+1PnX7gWfu38qZvqvX
-WaHSh+y2F+3tzG61z1D0Xz23MvtebJWxO/3YaSuaS8XWI/qkFVbO667OKI9U291YVffvbv2ra7xD
-/0pf5e3tlT2/q55GPmR90q496MVW9bljL6vNleuqzcyfzlhLj9rTVHRGelZyaZT1flZ6D+tnxe5s
-I5vvCjvP8+ieGvNorGXrmWduhWo+nLWvq3qeEVv1XKvso/HSx9/e/wL4dmgfd+Fprvzpf/UjT87S
-4+HN3bo+x62ix0P9eJVsvSI71Y+0yT4qYx6fyURzsnxaibMS/+rHwHhUc8+LsxL/0R/1Y2MqH9VQ
-zduI6kdfVD4uJfp4DIsonhUUf2aUj/PxbFU+jkXdy8peUPR79yy8uFV03PVU9ktkV6ldln/V+Htj
-VvK2WsOVmqyem9m+y87wmer5pfig+qPUYc+X7n5R9rty3ZKLbKix9eTVfI7WZr5XiWHkWzQmshnF
-VTn7qr2lWgey3m6lBlr61bVe6VssfZ5fkb9Zb6OMVX2MakLVtmJvHj/fq9YUywelN4h6rUofqdT8
-WU7xR7VZ3fORXc83y06l/lZrnJLHyhqN91ZqYnSmenIVfywbmU7PTndfrqx7prNqw7KzM7c8nyLf
-svs76+AV86tyxng9d7WPX32eGanqr8xxtuPVkOy6F5/Z7krvnp09kfw8zrsfySk5vRLbqH9Se/KO
-b5G8+lxhyVT61Agln7vxUftjJc87Pdk81vIxs+XJeLor/Z/Sj85js3qr1AeFalyjfKzUk0hnlldq
-DansfTXmXZ/H8UqvP96r6hzp9LrdM3HWXakP1d5v5TyN9mB17SrnrHrduq/oz+pKpmNl/ys2PJ2Z
-fK0m3z7+9p9XKiAAAAAAAAAAAAAAAAAAAFyU/COgAQAAAAAAAAAAAAAAAADgJfj44bfbtz8T/pz+
-KPhm/Any56cvP47z7nnynv7Mlmp3ttH1TbG1gxX989hsfTtr2s0Nz66HGgNP5338bMfS6/lSzUPP
-n2r+KOvozcvTH+Wzp6cib92738/WpbO/VvI2i5WnR91fls3IbmUuaj3r1j1Pz2oN7J4dXvyV/FRr
-UWZrlu/W1eo6VveCZS+77t3Pcto7r0dd0XyzsZFdbx47eg/VByUOlv4oZ6o+j9c7e0DxoeufhaK/
-Wht30smxzP/MRiWHrxCrLEbVvZPprMh4NiOZSFc0PvNH8b/iT7Wvy/RG8lG/puRt5VywdGe+e2th
-kdWc7rqv+KvKV86M6Bkm80ep/5FeC+vsz2pb1DeoPu/qez2dI5V+Xe37VvrXiEr9zPa65V+3v+nk
-l9KLK/LPyC3lvFf65nGsWhfVWm75tmtfRf5buitrp8aqEttZTvHTIjq/d9Qpr35mY45jfa+tPCMo
-Oaasu3J2Zb1LdAYpa5flSVW/N585VxVbloyl29LZ7ZeiPm/lOWKl9lb7zpVzrdu7R3VpJFvf6lkT
-6fLku3oUnSvykUy1d4ps3MnyqrPfM7vRmeXJd22p46tz7+qP5Ff6ulF390z38Pa12scqdpP43D7+
-l3+x6akIAAAAAAAAAAAAAAAAAACeCR8BDQAAAAAAAAAAAAAAAADwJvz4EdA/vB/8tajqPnYe5+m0
-5Of3oz15z5bnj2frq/HzLqo6PX9UPUpMlLE7YrvCPF/L1mxvJfeysZ7dSPfuXIrw/g2H5YPnWxTz
-bKznSxTPbHxkt5tvu/b7yn5UY7gS58wHb3w1B2Ydlfl6tixfLbz9m+VGFNtdNa3imxqHbi7NflVq
-ZjUOyhp657uSS4rts+TncfNYte5Ztfqss2KeY2ctrbVYjV01Zzu2duk5s88Z9at6s7VQ8tCzpa5z
-5xnhzP0ZyUbPGNWzo2q7Kl9ZS2/sLBv1rUovpJ5Hke9VW1H+Vft/lexcWtnzVzvLKs8Lma1OLbD0
-VGwpzxVWn7qaGztyYNbzaN9eKbdmfTt9zs6FSPaMnqCqs+J/Ni6Sm9llb+VZscqZfZua12f6Hz3X
-detzxa/ZVqfHVvqDFR/UMyLTk/nRee6tPlvPOizZTL+SM+rrArtfR7B8vVPtU6uyq89js46R6v71
-xlR66Ejnyr6L/KnU9ll+V13dkZNqLmQ6o/X19EfPbdYYZd0je7vx5ri7d1o9W0c9d9S8zXRV59s5
-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
-GdH2o+2bJzPbq9TJ48jX9xjqg5ozo24lb1fmqNit9AYeat9ROcuUGM7y1vXq2F05pvRRs85a7bOZ
-59T1IcrPap+j3Kv2A8p5sdIDWDpmOme3tz6WHu9eZy5WPlh+zbLVnz2blZ8tXRaK3UhO1WNh6VbO
-NqUGRnY82/fflTO3IhP1LEp9t2woea361KmTUR2JYtPZA5YOz56yxpFOS0+VHb1glJfdepWNXc2t
-UUZdS49ObmR9Q3XuUb2vnJ27cyvyrZI/9/uVOI9UZBU9kT8zSo/u2cpiEtmp9NbKXNQ+z8KLW0XH
-XU+l547sVvd7Jf6Kzup8PX3Kuiu5VI2PEj8lZ7778+MbGbm8Vp/UdVbiY41X+2DLbmftLJ9n+9W6
-cabP4/iobntnVkXnSGc/VtbUsxHt2cq+U9Zr9qES24huPsz3FJnKmVw9Y6t2o3pSOV+U3FPjFs/Z
-r5lRXmX1JOoZqr2EhWo3sx/JVPuZzIfZVvVc/vbTn/7tf/48juP4DHLt9m2sIjMyyt8+4/EVRluW
-TsXWKDP/HOmO/FmZ38/ftZHr7Mp48VHXKFvrDtW5dGMerbunS8kJL87euB05HFGNz255JZ6rY7s+
-V8Y8CmVeFf9X93jko+pDZLeydp25VPXfGeM/jl+NW6dOzf6s1LrMTqZ/x3qpPnjny24fdvYkkY3j
-8Pfyao2vzrHbD3RqctQnnBmXzDfVbvfc71xX2FETOjzSVhU1ztH6RmPP6KM68VR6pvt95efd+qOx
-s45RdmWf2Gv6+e3a7SfZ7Hkvs9dl17PKqKOSoyt98jyu01et9iC7+nalJlTGW9c9G3eukl9Z/kS5
-t2r70WNXnsNX/KnUsFX7VXvqs/ezXuupjFX71FnHXU91DVb6Qk9Pxb6qv0o3N1afx86O5yOfG8/s
-0dU47apjal8xy3j7K3rm/PF7NGO7sw8r/nn3d/Y3O+R3nhMVf6o1IdLRsaWe3ZnMzh7jGT3PSh9Z
-jf8oV60nK/WnM1bpY+909vguzti/lv5qzbz98d/9Z2MbAQAAAAAAAAAAAAAAAADAqzF8BLT1bcDW
-PU8mY9b/Jfl5tPFFsBfJjPqr8plviq3xuuVH5pun07Pr6bTsR2NX5pL5MOJ9cnw1x0Y6+WDZjXzO
-bCk+jLq+OD9HVPPKk+3u59W8zXR2ZCpjO2tn6Rz1RuuY5flKDD271foZ+bwrz8drO2qsso6R3chO
-JFORi2RXzzhLZs41JR8qdViNZ/VbQXbUw+r5pdZ/Jf+V/eLZquhRZbwxK3V2V21Xzy/r99X+4K5v
-pa+r2FLHV+de7Zl39LHZHvd8V3RF96PYqGvUqftq7bXGKT5F+jr7tDtW0dfdy/O97nONR6cWZWeB
-pTd7JujUxmivz7pWZGZ/V9dS9cOSt+5H53HlmcaiWot2nK3ZOmT9wSy7cu7uzqWVPd6tFaq8dS/y
-S9G/s1/qnhXVWmH5kNnNnq+iZypLPpKrkvnW0VPRqcThcK4r+TOPzXo+pYYrc1TWUY1zdS8pZ4Sy
-r5ReIToPZ7uzfs++Mpdu/nf6zjPjGf2c+VftN3adg9V9GtlS1nElzz27nh2lRlk6j0Am0++h2FXz
-p1vnq/2AJ1M9u6r7W8nJyIYlq8R8HKPmScevaEynN6icKdVzaqWXrozfwYoPP8/39sd/91/5C+C3
-Imp+AAAA4Geyh0EAAAAAAAAAAACA1+Hj9sDPwb4Sn5/H8Z5zf40Xr3fFP9Lz7Wsllu1kej6Hf0Lx
-njl1HrvWyNP9Cuuh+Hn1uVjreHWfFc7Mzyszrt0j1vEacf757HyHvXmn4+e4LtdYozU6c7DOd6/e
-3a+pdnbH9NP455yvvF53zsq9s3P6EXvmiv3n1WvF1f2zuJLPV/IF9nCVNb2KH+9Odm6c3deq+nfk
-g3JG/grPOY943Q2u+dy40ie+23Ngxq8wx4yd+fmoeK6eKSuvY1Z0dvRUeeSz7TP2i7cuq69z7ZA/
-q7ZX7Wbytz/9/f0vgG/HcTzjj4FHzxT7XlTnsbfi9cxeJK/MYZeeUfbT+LnKrGe0b/kz26rGcx6X
-jbX0V+eu+KzGUBnryRzG9chOJaaefDU+VT/HMWfJr5DVAc+PXfmp+raip+JbJLtjPTr507XxyPNq
-tcbe8dZ6hU5NVvJ/R/3xbCp2d+W/Z0sZW61p0Rhlv2c6qr49uq9TeoZRTu2Xdu2ZR9QOL8+V/I/0
-nbEXrJycWeljLB+i83alj8r2V2Qzy7fd+2i1Z+rUyZU82hnbFbI8UfI806fYVOw+o0+xOOOZuVOf
-1Z67shZq3cjw8lXJ47NzK/o90382am6NstW5RmM9X3atxa4+xHrGXq3DVbmVfLRkurrUHtHS5+V/
-5fnZe16yfPX8iOxG47rPBiqV2qXGYcdrE+oz6kps72QxjuTOeh1k5RxZ8W13nKv+dGQq+3E1D3fL
-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
-AAB4DTijAQDeE+o7wGNhz8GjiXPuo/IZ3cdR+yzr1c/BrrLjexBGOt+xoviw+3slqp+RHn1+ePuz
-xIv+7/xc9ztnfK5+pFf57pLsM9vn8dXvCIh0WPe88ZlsNs7y4YzvScl8Wv2ejup3puxm5XP+le+8
-2Lmvle+LGe+f8b0qO9ZCibO6pyq2Vr8LpvvdFrPOkZXvNOl+l5Di28r3m8ys+LNyzlbkV/uxHT2G
-khu76nxkP6stnoyiR7k/y2R53vnuoZ1nSlS/Zh9Xfu/W4ug7g7xrma3Ks8aOfHiUD57+qq+Pkh/H
-VMfNY2eU/nnW1c1nZQ951yO7Ht11Ucdk+bTSD0dyFX/VOa32BRGd9VLO8vF+1l+qzx6dZ8VuflXX
-V/Gzcl3tBVZzqypbobruo0y1v6/GdqXvn6/dr3dz1bLTHav0rNX+r+uDVRPuOr2ecpTZTfX5JNJz
-J8orZY5Kfu541prve3lc8a36DKnmQ9Xnaq3IWNETzbfaN1f2hXqeKnaUvKrWuu567VrTzMboV2a3
-mqvVsXeqZ9aZfaJK5L91Pbs3y3T6qxVb1rjxXrSXu2eox2q/Ue0Jd+9NpYaP16tnsTLm9uf/+N+N
-srqfr8fn8eXEfwFxtv7M9nEcT7N/NXatxTPXNOPKvl0d9guscGb+sK/fB+oMnMEV8qrqwxV83ok1
-H2+O8/V3i8UzIZa/Lqw9nMlqfr1ifn4dvi/O8vtXfz55xTUFAMj41Wv7r0b3LKvmyc684vx9Lx72
-BjAAAAAAAAAAAAAAAAAAAJzLl2c7AAAAAAAAAAAAAAAAAAAAe/i4//B5+/4n3bfP738U/Hm7/f77
-KDPKVa9b9yKZ2+enK58xj/V8y8aqPnhzrMx9jrn1szqHzM9Zp+d7xVY1bmq+VexmNrKxlg8rcfB0
-qterManM15tXdN3C89Nb33lsJr+S//N8M9vqGnky1ThYa9GpP5Ytz29lv1Rj7sU52kdV/aNsZZ8q
-tdlDqSujnDonxf9uHYjWItuDZ7Or5o+6do3t9BtK37Jyro26V3oMT3+1J1FsqvOd5Xb1OBUfKr5V
-11TZv1U91vVovNIPWKi2OvPK5pydQdWeXI2/OpcsN7w5KmeGd291v3f3WvUMOjPOXdnMv+r6VmNp
-ncfK2ntjo/HVOqD4lp0BlT2u6MzWdOdaR3YjP1Wbq79b/nj2KjWn4otnO/NvZa0rZ8R8vZvPit2O
-bGfNMz1qfO5U4zjez2papEepb+N1pS/v9sFqv1u9XunDVtYrilXVh2pPmZ091f5n9nkkyyv1LMt+
-nv2t5Pls26PTq0X+VKnuHXVO3X1XzZnMD4vKvDq5UfXTo7JnVZmRlXlV8lbJ1eq+q47t7Musvx9R
-16e7j1b7z0pvMMt3UXOzG9tRXj2nun4qKGfjeE+V98ZWz/FS7v3pP/0fvhcAAAAAAAAAAAAgsevN
-AgAAAACAFb789MMJBr4YP1+Bq/nzbH7lWFTnvhorJfeekZ877Z3tf1d/NKaqc2WO3thM54r/Z+fT
-r1xDzuIZ+2jFnjf2lXKjEvOzz45nxO2qvdEj/NphY6XvPWOOHX92+X32fOAclF7iVdZhV5+22rfv
-iterxL3Ll+nns+O5wlVya9WXM/RckUrMd8Xh83Yz3/x95Jn5SK7me6WXf7X12P38ptp8lK0qu/y5
-2rxG1P79DLuPeo1pdc9WZZ7NI183ueLrvGe8ljreX+EV8kfhHeYAv1HtYy1uf/lP/+PbXwArfwh8
-G+S8n2f5EU9Gte3pyOStsYpdxf+ObwqZzijm8zxn5nG34J7ljzLfLObquldY1ankSTeXxrEjP477
-+u3/X6R1HMd7a6j4H13/Wc/XYy4oVm5EuuZxM9WcV2woOtU9VfWtur+Usd16OI7x1nSW9fK26nPm
-W+cMqthRbKn7JdOvjunuRxVvbx7G9dVarZwRlRpryWX6M52KHY9qLR3vVeO5Uos8+WrPE61dtwfw
-9IyoPkZ1YGVfRbni6Vd9iOxX6+Cqniz/V3ruTP+Outfxv7b+3/ux2d6oI8sNxS/vXjWvvOvanvXn
-q9SQak56vp3xPDXau7Pat6i2+uuRr/VMLdd/XO/Mrkdnvbp7pFNTOvo766/41tWt2rL640p+Rbll
-2cr0q3ZX5Srjus8tqz5X1mOmclZ0ejL1foT6nFvpfat9sPd8OPuU++q/FuORPV95PkTPYBYr9cOL
-rfoM1rFn6aleV+ys9Cjd58lsTCazwo4+Sd1fat240/cp70k8/SvPzCvP1R0qPbyix9MV9Zk7ZNQ6
-3F2X2YeK/nlsZS7VfK6uXWfu1fVSdM7XjuneGbX0Oz+/l5Dp6eRStaeKeq37uJVzxLK/elZ4vYcl
-8/36728Af07jb4YPnsx8fbw/3hvlLf2jrvl+dr1j1/Pb0uPpnH2xbHk/W+Nn3ZHPVvxX4qaSxVOJ
-/3zfGuvFaSSKZwXFn5ksl6J1zmIS2ankc+S/p9+7Z6H6kFHdL956efai2qXkpOWnpdezb/mjzMuS
-j3Imm0vk34/z/bkRinzzfNixFh5RfCr6qzUzyg3Ft8o6zvardeNMn8fxUd2u9ADRuisxiWQVG8r4
-WY9XY5X6P/uzUgMt/VFeVewq56zaB872LJkot6Oxqo8/zuvz28+3lm3F3jx+vqdc93RHNSGLldrf
-evpmlL0f+RPZzPxY2bM7euyZ7Jz15KO9pvY5nfgoudqpdZ4/kR3F38g3tV6q+ySStewpZ4zqy6xf
-nWNko3o9q3uVdVb2i9rfWD78fE/rZa0YVM4Yr+eu9vHKGaPmV1V/ZY6Znex6xX4lH9Qao8rP47z7
-kZza31tENVfpnyrPCVXfInmvrnvjqudx9bz37mfxmamsqeeDF59KTzaP9XyJbHkynu6VGq7kQ1Zv
-Iz/VfmG2X+21ojpfqU0ra6SeNZZMFdWHkWoOZ2Oj+pb53esffu4ZZt8yny25ivyu54RIxw66c1Hl
-Kzkf+VaRUepe9fyKznFFz3hfyZNRR6U3iHP4+77I9oLlh2XXXpvP4773ovnurkVqP6D0h8q6KzW5
-cobOvqXn7J//8/8www/QZaXZAIB12IMAAADwK1F9QR8AAODKcK6dB7EFAIBXY+W1/o+9rgDQRAE8
-G/YgAAAA/ErQ+wAAwDvBuXYexBYAAF6NlbPrY/6IA4D3wf4YD4A675JL3z9aAwAA3oFXPJ8yn19x
-Tjv51ecPAPBqvGLdfkWfAQAghtq+Bq+Zwnvy+/cvR+8if97s++N1T2aWzd6tznR64yP91r3xmmUj
-06POZweezd32d+mK4trVFf3sjfutaGtGq/mvzqW7Rko+r/g574VMXvWhamtHDu+Or02eS916UkXV
-b8vXDWb1M/JhR73q5MnZtbESc8WP3b5W6oNSN6pjz4z/WbV3Vy3aHRelhnvXO3GL/FD8t2pFRX9m
-a3WdvFrm6e7MO7Kh+lXh83Y77t9hvMOm6otSB/14fj9TbT3Z/bpv1b6lKx/ZVWM2xsfzv7LXOmfx
-GXX8jHVU9/AOOjnR1dOdy5yHVT3VmKv+7zxjd+r07Hg/n2n/zNqbyXRyq6NHkVd9ifzqsK7z57pt
-2ejEeRU/zrnPo7z1c6Tfk4987OR3VM+y69Wxig8ra7dz7BxT61zYvXese6s2PB1RHlbyJLORjety
-xvl119vRre7Brt3OXtthd0WPmg9q3ar4qeSzL/Nbbd9VS89gl61OP5TVw/m5WrHlyazUpa7+Tkwq
-8tFe3lXzLZ2eP5Zc1V62v1bsVOTVXqJbb29/+i//5+dx/PZO8NdvF78MAl9/GmLLfBl+HmWy8ePY
-kVmPZ8vzNbse6fH8GHV41zM/o3h8TX7O7M3XK/Gw/PS+F8ObSzbfeS7eumexUph1K7HN/LH0qX6o
-86rsvSjOqo5ZLsrtlfVQ9GR7sOPzLGtdr6yvsjeVHFP2SDRf1dfZ1owy1roe+ZPh1W0lb6u+rcor
-+/eMvFX8t+wrNdnzQdnjK3VA6RlmuRFlT1V8mHXO17Lxlj+3z+O4Py8o+06pUZ4txZ9ZLrteGRvZ
-93Rm+WONnfUrfs1jLaL61eltIhuW3I75eDGfr3lx7faW1lhVZ5RHnb6qKquOjfLn7POiOq9qn5np
-9PxSf6/mcuX5xfPLI6ollZ680sNXbCo9X6Sr0oepeVU5F9Vz3dPv2ermt+K/es6ouWXpOCu3RpnO
-eXk4Mpn/lVh47DiH1HNEiVWUh8o5lZ278zVFtqMnYiXHuufZ7LOyz5QYVvZr1H9bvnrnbseuNTai
-28vuOvsVP5U+fqVnymTnex1/FB+Ueqf0uJ1cycZmKHlY7b12XvdY6R1HxjGV16+V3sMbUzmv79fU
-M8jyR/E5s2X5OOuZyfR4eqM9XrG10ot6+j290Ry9uYz5pvRK2ZrO9yL7lv5RvlurlTMxQqmrlXqu
-ku2FaNxq36bqV+Kg2qr2afd7t7/8l//r8/gJpZx4qscxalm1UNy3bFt6lC3j6a6mZ6VMKa205VN2
-v9pqVdoxxQdPZpZTyr9yPdMftXiVlt/zQY1htxxa9qyxlp5RrrJv7vKVfOsct5W96bES8059qPq8
-I587jzKKX7vnMtJpaSstqrq+mT+W3Ey1ja0e19HYTus7X9s1thO3n+9/Pb4eX0pzr9Yib6yXMzO7
-c0B5lFFlPFbqW3QmzntV8W2lZ6isiaUvy11lf6l1sftoNfuz0gtVc8aLx444RDor13+OyddvMl/C
-PMt076hvXj2p5HPUk0Xno0J09sx6oj5RqZnRGFVmXpfVPaifQ7lfmd1snbq6LZ3d+qv0XoqPSn53
-zqcMJT/8tfj67drPnlV6R2/cz/Z+prOfuzW6kruzH8oeVq5H+VXpTTv7MbJvEdXc6u+e7kxH9Uya
-72e+eetZ1e/1iErvUh076lD6+AxvLpEPu3q7bLwSZ+Xna3/srAAAIABJREFU2a5yZld6Di/m0bpU
-+ioFxQfr3t1OZ696+iyZ7lglhiPq2VE5mxSqZ4J3L8qTSp+jjK3q9/z0ff7x2STrTyKqPbGyHuP9
-lVgpYz0947VqPe/0DJl+ZZ+q+WfZ8nyax8z31TO6snaZjfu1ys+KLa3W2TPp1LfDuN6pz5VYRXTH
-qj3bel113gAGAAAAgD7KgxJcC9ZsDeIHAAAAr0j1jTEAAACA1+DD/Wxo5+MTzsCydfv8+fcz/Xnk
-fFeo+qnE9ldCmbuXe8dhj83uvxo7cgyuxTPWaLXOdH1esftue/kZePGfY3u1unFOvv38IlI1PyP5
-q8XwiswxyuP55WHxfPb6nWN//wunu/x8dLwr9p6dCzNnn4VXm++z6MThVfdDB6t+j7+Dz7Nj9Wz7
-Gd7rI/M1eD5j33b+c9prvPn7bq/lPWrvKc9UVT/ebS1203ntdb53HNeL8SPW/VlzH/fCndmH3bWY
-fQRX4ao1J6L0msOf/+v4F8DjiM/hmvdHwrdBdvz5Cnj+ZH5G870SVT9X5jWO9X5e0WndO6b7s/wZ
-+fYqubF77p15rfjwjFox17asPlj3ZplqbdnJM/J/px3FxtXOlEeizP1q67Vb/6rdZ+3Hqt3d9USp
-YY/gGXVy1r3LVhTTio2zc/JqNXPVnyvEa4cPV+gZPLvPzJlO/O/nwq59Nz8pq7XjinHbXe86++Ks
-868zt/l5tTpetRHp9c4OJSefVcd/lfyac6Ord7VX2x3PM3rAar19Zl08jp/32lV6oohH+Pns2nIG
-StxWXzO9Qq+WXa++rrqLna9H75jv6uvLHmc8L3TlK2MsHWc+fx8b9T/jdfld58irnDvHse85V6nD
-I4/qmZR6/szXps/sue153f78X//vV8lOAHhbxodogBXIJQAAgD1Ybywo934ViAEAwGvBsyIAAACs
-8Hq9xId3Q/m67Oxrn2d91a8W93RlOmeZ0V/l67gzu6NeT2fVVvb17ZFM9WvhozlW/bBQvw49W69I
-/yhf1VPJKwX1K8erOebZmnWrOjtfC1/1rfvV9F/FwlnNq8pcOuuifN169jX1o55ofayaU623EZ7+
-7CxQ/LHGqP7M5PPKc0ndRyt55a1pvhf6ROddJSc7Z/2uPWihrImKcl4r8cnW8Ti0/aLIe75X/BzH
-e2sXnaVVPd11V3ywcli1182xzAdlX3j6qj9b+qs9YfVM8exVbUU2qj1zp1ar6+j52ak/UZy7Z4ky
-tpI/870fr99c2S/f7kXxtfR7flq/R1R7Ea/+z3az2Fnxme9FZ7/noxKLlXgprDwD3FHiFt3bMbdK
-LO/XlXrh+dOtX9U9E/lUfTaw7Cgylh8qnXHqmTxTWesKlX1pXVPzu9pXRzlY6eW8e0rfE8l0+/co
-J6s6v/tzk3rx6l5XYpL55umc9WY6FH+qc4n87PpziNdXeqGdfXDXrjU2QumzFbKzyZNdtVOpFUpt
-8WypPfyO9dqVG5HdleeCTH4c04m5lzNKrlb3stJDWnZmPdb1iKhPq/jTydHZ7ijf6cGqtjz9lfyZ
-ZcZrK7U68y1aa8XnWdaSt65/OW7lWlo569U+pDLH21/+4be/AL4Nkp+D5O3r99/nn0f5++/jz6Mu
-Zawi7+H5PI6f/czkZ38snz+nqHpx9O57cRtlPr9d/3LY8Zn1zuNnGS/mnh5lvtF1L+aZfS8+Vlwt
-371Ydf30dCq5qswxk4t8HouGEh91z1r2PR86eHtE2TuePxbqGlXmpdYcy09rfGbDIsrPyNcIJf8j
-f7I1VXR24qnotGSq51q07sr1iv7If0vPfD3zJ6J6Vma+eXP8/Hoct4X6mV1XyWyrfYsiU+k3xutV
-OueX0jNkfll7Sj0jrVyN9oa6buPvX7/9/kXUrdQiz9bsj8VK72HJRH4q/bbSe6u9aKU38lDrv7Xm
-yhqouV3NZWWs6vOu2ujp3HG2RnrVXI3GVveVN7a6lzJ9EZEtVYen0/Lrfj87v1fmPspU9pdSAzOf
-PfuVeSlrUalLd/mo16nEuJIXap9aQT0zxt/vr1PcFuee2fHGdHMrspXtKWte6lp0e5ysbnbydr4W
-6VHPoW7dV+uVci5me8Gz5ckpthR7at1Qz5bZljLfyLeu/5GeUZ/aT0djldru+a9c9+IfrYtSoyrr
-6+lX4m/Zz/y05JXaoqy1ui4VHzy7HmruKftIGdvt2aN4Zj5EuWHZn/Ur9dmb40ruVdZ3JT6Zf5YP
-HsrZlK3paEM9Qz0/K/XWGm/NK5ON6J7d3tiZin9KX6GMne0ra62cKZ5+T055X9DS9YNf9zeAj/Cv
-prKPt7I+V1tl/v4U6+fI3kgmH33ni+J39v0qs37r58hPz2ZlXqN+77PEI/1ZrDwfPDsruRFR0Vv9
-biZFprNfvDXy4u/prOj3fBtZ3ftKXmW+KHsz+mz8XbldqQ+eb50aOI6t6lrJN0+fkpNnsvpxGl2f
-V/M5+ojMuz9V386Yy+iPJ79yvuw6c0cqe7ZDpTYqZ+ssr5zjGVGPlH0X0sq5nNmac0L5qNjo98xn
-y7ZnR70++5LFq1sno7lVx1p5VVlvJeer30mzq25HvnX2fGfP7rLZeXZS8mTHWdLdL9U+aryujFFz
-WxlfieVMVK9W+r/Mvrp/s3pqXVNk7te89e7m3kj1LO/EXNkzlWcPJQ7dfsnT2a09v8nfvv42/vuL
-P5WzQZ1jNQ7ePlqtbbM9S6bTn0R2s5xcWU81zt1ePzrfM52zvGXLG6/mUqX+KHvW8j3ybb7vxaRy
-xlfrScRKjzHKrJxrZ5wRj+jtZtnVWKk17a5/x17wxlf7tmoNieicV7MPWT82y1d9qO7ZWWenx82o
-9tPjfaUuVefl5duIevZ546KxCt4clT0S2VPWd6TST876qnO2fFFqyCy3grLHV/qcqry3LpaMsr+8
-Gu75Ue1PFNSzuLJPhyt/+Yf/J4sanEr3oAQAAABQod+wIS6vCevWh9gBAADAK0IPAwAAUMX9DmB4
-FDQuAAAAcDb0GzbE5TVh3foQOwAAAHhF6GEAAACq/PBp0Z+32/F5O+9APVt/hbP8eNYcPbtXXtNd
-vp05x6vkq8d97qOfu3y++tyvgBX/XTofjWX3nXPgGXG+WjxVf650dv8qPDrmZ5zlj5zDK+To6OOq
-v9n4K8dDPTev3L8+iyvE7d15ZvyutL5VO+Td9blKfpFbPa4Wt13PwK++vmf4/8g6/448+vkJHsMZ
-r7ldmVevjV2U17V/xbjA9ans2U4O73gt6fbn//b/8hHQAABwGrfPz5dr1F7RZ4BX5fb5WyvKngP4
-taEWAKyxaw+xFwEAAH4deP0L4L35/S+A/zBc/IMheL8+/pfJV4nsKv7Mfs1jlZ89/d49xZYno9iK
-fPZ8y2x5tjvXMx8q9med0fVo/G52zbcytrN2in5Pfscco33o+VDVb/3syah2z8ydiOp6Vcfuplo/
-R7xGsrpeiq2Vuj3yZfBZtVu5rlCtbco54l336qpiL7K10jPsOl8Uuyvz3XEW71yjnWf0Sj2P1n0e
-8+V2+2HPqfZHmTPzSsnhlZpe0bGif0XP2f1PJZdWfMjmtaMHOptH2lJsqr4o43f9xUO21uq6766z
-qp1Kru7I38r4M+pY9Xyt1KgoPqv73fq96lvV58yneQ916979XO7keeZjV2b3eql2unWg6q/nY8dP
-ZU8pe9n6uUq1XkRrpcQksqPOdwXFVmS3kzdd+TnPuvu9m1eevBrDSqx3n1sVPdWzbBcrNdP62dOv
-yO+o3Tt86NaBqv+PrJmqzmys9Sy+ale1vYJXf86o+d09u1rnr8DZZ1PVlxVbK+fLrnxW8rPbS3g+
-3/7qon8B/I/H620IgEfwj9/+z/7oQW2BV4L9Dr8i5D0AgAb1EgAAYA/POFNf5fWpV/ETAAB+5uM4
-xn/lMb4XfAuuWder7yN7+n/7/Q+hvYrOjkxlrDd3NSbWHG/Oz7P8PC6SV31RfKiMHX04HJlIvzd2
-vHYzfh7lPZ3VdYzsRnYimYrcb7Lfm67qHuys40h1veZxkWwUz+wvQSL5n23/WFuinFFqY+azWosU
-nV09oy4vlupeGOUr+8jTtat2zf5ZqGsdjb/LKnsk80HJ88/pISurpaOMWg/Hcd1/D1Y9q6Pxox6l
-xlbrvKe/e1Z6dkddlXPJGruyLpV+KDrvsrHetfm6kv+fRg84+9KtsR4r9dbyK9K7Oq+qP9GaqutY
-zU+11mb5FsWzosvK9ZmVXi7Sr9Rq7/fKmaiuUcVuNWci/yxfs96puh8sPapOZczhXK/2xFlNtNbA
-8ve3a39I+zNlT1s2LLo9c3RPOeOj3mvWrc5NibM15i5XPQe7feTKno9yobsPlV5BOQtnVnPLu5/1
-MJXzIcs9Rb/lW1YrLBsRlR7JsmXZVHvuys+jjeis0nrHn68d0/3KmVLdp5Gt6n7u5Lllt2LHk/Fs
-V/u/TK81Rll3T4da337m+7O3ukeUXI2JX/uu7Ge1dvb6qj/IcejaquaVqr+6LitrraxFVgOjOCh1
-MtvnStwUf1SqdWzFzg69an9VrYfVc9DSVV1f9Yyo1LGqfuVZwLNX3QuRnq4PHp2ecLxWPUOtsbW9
-efur//Y/f5f+Otj64uhQZDK+3n4c+9WIW2T/fk/Vc7++MifPVqTf0jtfq8TTm/vsm+eDZVeNs+Kz
-N99sjWZ5T7eSb9m8Ij8zu14cvHhGc83iMI6PbHl2v3z73qavw8d4qPHMcnL2vbKXo3hGNiI7lbyY
-x6xcj+a1Yy+rvo33tdz48XdrPpHfmU5Lt+VrNFa1O+vL7I7y2Xh1fZXzy1qXFflxTJQzkY0ZpSZF
-Y7wcqOR25IfqU2Q3kh91V+qYp0ut25Vzc6XfmOcy68n07q5Llo7Zpqo/81Xtj5R9FMl3fFX0WzYq
-fmb2lXhV80DJ1U5tqeqP8k3xI7OrxEG1ZY2prkW11insWGuLyP+shmf5q+Zytk5R32/Jz2NmHy2U
-Mz7TM/f9Ss+q2KjssazXV2LW2S8zyplW6UWU3jrSn+X5/Lu6JtY9zx+L6jlZzf9Kv66skbrPuz5a
-vlpUzrYsvzrrXukzlLFKza3u92rvUj2DLT3R2azENpuv52+nhijzqtb/UaayBz0/R5TrXswj22pf
-5fl916HsI8VPRae6BvP1SjwsnzObkd0sxyxdqg8KWQ85X1f8icZ1zrLM7yyvIn+s656dSNcor+St
-Yrdynqg1pHI982+WqZ4vylmgXPf4uT58fvvZDqha33bt30w+ik+29kq9nf0YWZljJc9nm5V+Y7al
-nAWWLdXPlXPKkvX8vP3lv/9PIQwAAAAAAAB9shccAAAA4PXhvIcVdudP9AYMvBbUFgCAOh/PdgAA
-AAAAAN4fXqwBAAB4fzjvYYXd+UM+vg+sJQBAHec7gK1r9+ufzs9VqmM9u9YfMEfXI90Vudtwzfo5
-s5HZqer3fFTi7K27khsVf6zx0fUo3yo/j/o9n9Xr2R/Me3ZVW55OS05ZX2UdPR88/VEMqrm6Un88
-Pcr1kUp8VBlFvpK3x2HHXc3zap5Y1+efMx8iPJ8tnd5aK3VbraWVNe3U/Eo9V+pAdV6zD+O1Sm5E
-66zkuXc9Ox+ra6fm40qtztauegZF/ij1wUPNJ0vfSt2Y7cy6Kr1Nd6zSdynxrOZwNOdZ3pP1fIhk
-PLq9upKPnlzF3ywWas/TmWfVVtYD3qnGYWV9FVZqSKTr/nv1PKrar657pZeLUOuS0q9k+R3ZU2qH
-p6NS33fVQ1X/jt5L1aHUESWXHpFbdx3VmrjSD0V2o/HVfIj82LEu1rVubqzkpzWuGtsqlV45q+OW
-X5FMt4+c8c4JpcYehoyqc3efNMtU+vX5nD6S67PtbqzUZxiPyr5We/dqn5HZjajU9qiXWvG/8twS
-5XnlfJl1dnvEap6P+r2xWR3LdHf3deSDZatqY6UmVJ8lqvtlRKlpqn7Px+q+s3xQZTJ/rPHR9egc
-qfw86lf3gnc96z+VPb6aJ5W8PWOPK+eUmhtKjin+VNd0pBKfXOb2l//+/30ex/hl9xr/6Izxrnd0
-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
-CCGEEAjqGdZRDIX42uhdmxD70N8AFltQ0RZCfEak9bjjAAAgAElEQVRU24QQ4mugei+EEEIIBPUM
-6yiGQnxtVAOE2Id2lxBCCCGEEEIIIYQQQgghhBBCfBIWfwB8e//fKlU9t+DrFd+ssZ4tT34FxP9O
-e5bt+esOPYiulbVD16VLfySHxjD7LPO/O8/nz7OvKzYzHyoxWaEjzmjeZjpX8sGrgWy9Wq2fVWa7
-O+rqTqo1pVKjWFu79lR3LV05W9HzhaEif2aN8mSjsawupqaxOjtq5plk68vWW3T/r65XZ152+NZ5
-5s7fP6M/2G1rVbabKM+rtQB5vpud9eiMXPVszXa971fsdZ8THTz7vJhB48TIW3K7c8vKf/bsq9pc
-kemkw16lN9ipp2rDkq3qX/GV1VHpYxiiNanoqo5bkbnqWbwrhlYOsXUNka+sS1fNYXyo2qjE+Qy7
-iA7ra08/G8/bgc19976r+lDxuaNntvR1n2vdZweaG17N2ZEDyBrttuXJPotqfUb0RM9XbCHEdm9/
-+tv/ob8B/IH7sT8RHyF/ZsKLz8d18up+O47b0yvLGXtZIFwjH2aes1/u7+auF4/Py2vG/Dr1vJ/P
-PLczUPzE2SjnhOjjq+ynrzJPISq8znuK692jVFvEqxHtd+WzOIdz38m+zhn3lfg+Huh3YH0eCRPJ
-ZjJj0kUyiD8r2H7uMfrRVq+NzrX7jFTyDcnhlTgiPjF62Lzq8j/Ske1/1H5dnp/gFfZIV2500OlL
-Nt7LSWRv1vKZG9CdG6v7b6Xm787zs/YRWtszmUh/ZUzFlqFpVcFvWprOMiuOlTz87etba/2fZc7O
-75U8GfUQo9kB4rjG+b5Ctgezs3LtPFgP2rPiP8cI8QGN1Rl31WfxzPWq2j3b55/PNvRMvJmyr16j
-fsaeiHLL17lSU57bs+L+oPe6B8g+Yd/jxH7f38f2B+Wjn7l+Ng6MH57eiM73Ymu5d15t8er81erJ
-qPtKdWDVVrbfn9mHWfnw+N6Q/jDO+vnD2XPxfGbu3pWxz2L3+33Wl2fZQtar5339njP0QVfv9CpU
-+hyzfv7x7/QvgIUQr8VXKPJCCCGEeB5XfpHxbBSb10NrJoQQQgghhBDXY/fPOb7vUy2EEHvQyysh
-hBBC7ES9ho9i83pozYQQQgghhBDieuy+q33/Zfin2b++//75X47bh6/nz63nmZ4R77klN+uffbB8
-QuS9sRX/f0n+efscn/kzS4cXf2+O3nwRW5mfzFplZPH35jLbQOKW5fBs13sejV/Vb/lu+Z/lIZsn
-3lw8n5H1jfRlObSyl2f/PD3W2KiOVecVzYWRmXWiPlmfMzWqUj8zH1Zqb/T1PIcMb329PZLpZtfR
-G4vW5JU4rOQAk5/MvrSer8xrZU9l/jA2588qNWdlDyK+IvLWOLRXyXzIzuh5/mgd8HRY+tDvs/ow
-zzk6Q9GeL/t+1m/p9OSsMUh9RnRW9oalj93XbJ5XxiLryvie9bSV/YrUT7bOMzUB6fUQOU+eOXOj
-My+SZ/uriGzfR74g/YFlK9LpgchH9ZfdN95nlRh7Pkc5mu3bkZUewpKv5J7HSp5UcjLT6YHWFKbv
-HPUgPfrKGRHZQvSyfZ4FEh/2LjGOqfS+7D2BWYuoV0bOM8SHrJ9GamZl3yF9w8q6ZPLR+GwubM/B
-+jx+tjIXr1/3dLJfzzZZGcufaE6ZzlEvkv/zc4/o3PdkI98iOyt7HDnHmHNnHI/szdkOsl6eX2ye
-ZOuB5GcEexYza2T5a/kcyVl6uu42WQ4gc7HGW/azdUdiEq0vs7+8ubBnDft89seSR+c4+snksGV7
-fo7Uc6Q+RzLZ16w/I7e/+rv/WbtlCXFxskZFCCGEEOsgFyIhRB/qcYUQoobqpxjpygfllRBC6L2A
-EFflm/Xw7WZ/7THLvN2wcd087FZ87rK/Yqsat9W5WHZZnSs+oOvFxueX45YePIhOT2Z8zvrWtUcQ
-31Z0dudkVCvYuXg54elcWWtPloGtqys+zLZ25EnVt11U1449LzrntfvMWtlfK3YZMtuR/7vPVmTs
-jvP3mXoqtt5ux3G7XfuS13Gunc2ze+nMh937aleffsZZ2BW3aC1ut5u576r6d9BxBp3BFetwd8/a
-SdZ7d+j7LFwxt0Z9z6jDGVaP0Z1byDuCV4a5WzyzLlfyb4dv1XyY/bD0XOWecFW7nfHZ0XNYtXLl
-7vpMrvouoAvWz5V5efnQpdP6rKK7KybsHL16ip5LDJ199/z9vJera3DWXWtFx6yvo4511JZdsWPv
-y88Yi8izMfz9XwB7A7/df3w2fr0DxNaKD2fOhfUnkzuOc/1lfTuONf8yPV3rfjW8nGTj2rUOkf6o
-RjB2Gfldeej50LXXED2ezzv2+1nznXU9o3Z5rO41ay4re3aFLN6RD5Vz50rruMKuc6Qan0rdyuRY
-mSuej1HuMbX1jHl12Or0d/fcvTq4YvPMM6/D7jNzMNNb2S+rNs/GOnd3x7mjTnat3cqc2f7bk0V7
-Devz3f0oou/Z58iOHGbn+8z8QvcCIvOM/GL38g66anvXO5fsjoT4EK07EvNnrMfue8VxnHf2XuU9
-74OV++euuazkIaI724+r78Wq7+C64rmyxzvpeMdxlXfTr3AWsHZFzFXiFvWW83NWjycz0rmHnnVP
-7jrrGR9uf/p7/QpoIYQQz+FqL5eFEEIIIYT46rxKj/4qfgohhBBCCPEMvtuPb8fx+x8NRr72iMY+
-uE/fH9Nno675maXL8s0a6/m/Onb2ZX6OwI4dY+jFE4kzMq/ZP0tm9meU8XLAI1t3ZKzlx+ynp4vJ
-TdSfyn9z4cXT88kby+iJ9jgyZyQHmFyafcvszz5kcfB8mO0ycZ7Hzs+s58gaWfLeGCTf0HrO2s3q
-8+14u6HzRD6fQc8vpCYwOROdU5HuzC5bryp1ytOV6UPOHfZszfYvqnP2KdI/yyC+MVTy8EieIzJo
-TkZ10vo+O5uj75meydNn2Y5YyQ2spvk2mR7M0hnFgJ37DHM+zva8+aH7JcqrakyQXI3GzSB71tMb
-9ROoLaYPZ87LLJ89G4i+yDaSPxX9lj52PGKbPUOjdUT2XnVPzmNR/dW97OlE9Efrlc07Ox+itVjN
-9Sx/Pc7IrcdzND4/2/7xA9UovxD9nbn1s84fd4ms3qLrP8tUcgvVn8lF42a7zF6Y8fxfiQNzrqD9
-Vubb7B/SE1v+eGOQdct6F8tHpCYwPUe0Tyt1NpJB88rrXdj6wKw70gMgNZHdF2jMs7Ge32ydnPUg
-+cnGllnH6HMmZ2Z/0P05y6B70PNzpHIuz3bQerZiC5mjB7M3K3vQkkfjkM0l2muZPALbA6DnFxLH
-UZbZC9HaeXsWOSuRvKruuxV5tPbOuiyQ2Gb60BzL1sXT9WNetz/9/f9iM1qIhCghX9mWEEIIITi8
-y6kQQogc1VAhhBDia6D3m+KKqBcV4tX5Vh14d0Z6zwXH/duPWI5fd+lekcn9uZkye3LDP4C647aL
-V/FzN58lDp9hDkIwPKsfYPV/lb7lerX0dpx1WbR6pyvFoupPZVzH3M+M39XWygP1s2s+rJ4ddwbk
-TtBl81XyYCdzDO7fbsf92y2UQfTs8O3ZrOzHq83lDJA4KLd+g/HnCjGM9K3Y2jH2Smu94scr9Vjd
-rL5P7PTj6jHk/dtzZ3pWHXhFnvH+/Yp8jEN+n0fuDB3+fOXaexyv3YO9ctwjzpzXiq3ffwV09YUU
-+vz2hj2/vdX9yRhtzV8/uH/76MNOfzzfRlgf5rkw+j0b1vpEvmX6ouczoy7ErremDMgcZ3l2/hZn
-5pj39S67D2Y7Vmy9WFrjIz3R88w/JCZd6x75Y+lj9/isO6vDaE2uPh/ZodOSmzkj5704P+g6X9Cz
-FdVl+YOciVmtX4l5NJat+cgLOXYvd/cJXX3RqzXYXXV8lI16lDPOPaQOID7Nn1vfz3Ocn7Hn4Mhq
-rNgaPsoy6x/Fe6UXnH1i9K327o91ZHOY7ZcymcqZnun18jayx6zjWXe42Z5lE6lFWc9r9XzWuYz2
-zp5fGcw9Gb03Vu9vrP9d9e3sPiGzl50Rj2dWPZn1Zuub6fF8YkDqP3KWInHxqPiP9saV+sn6gKwj
-Yx/1Dzk/rOdRP8D6wNB1j5rjzOTPjn20ep9HsM5ytPdkY9XVk1VZfXeAxGqF7GydZZAzpdJTMP52
-60H8RPc7m5NeD/P4nu1zdr+rsuxF/kQ92/h1tSe0bER6xs+QWHkyK+caKrPzLoLud09mlp3lI7x6
-gujZUQMt3zw/vFh58qNMdB/eceZ68uX7xF/9w8+/AvrX4zh+cb5+8MskfxifzfK/Tp/P+i0/Zvn5
-ufV15EOG5/Os05r/LG/h+bwan0yPNS7zDR0TyUTzsmRGOXbumQ1PB+MDopPJ/0hnto6eTDSvjCje
-WQwRPYjOUa+3F6I96OlB4lm1haz74TxfzWGmPiO2KjH05uj5iZwvTG6z+yuK61n7NKLrrJw/f5DV
-WPbsZnPM86HrvK6csyPoOj3GMuvy9nYc35KGDanZkY9v743it29cLWXPu1EmqmmeDqbmWHrm8aj/
-UQ6guYjsKSs3kPxjfIt8RMnOccY+EnOkDqDxnEFrHXL+Ijqt59549GxCzxdkXSz90eeR3kptR/2b
-9Xm+eM+sMZZu67xBY1s549m9y+4NRjfip/XZTJQfkQ1GZyaH2EPyuHrezaD96KiHiVc0x8retvzs
-6JNW84vtNRGYfER6X08nujdX9knmw2xrtvn4vHLeWPbZPtIi6h29+K30tRaezEreIvoznx462X6F
-7UXmz2cqvmf91spc0Bz2bB2OzKzD8q2672YZZL+wc7RA6zZbHy2d0XmE1HBk73uyK/000ncdjozl
-A+qnpdOjUqvZvo6J1creGZ8jdlf6FssnZqwF2pMgfq7s32pdRfQjtRfVaYHExPLL0t/hJxpDplfx
-fJv1eJ9nfRS798dn0w+AkT/27JH9keNZNvtD8giVP5a98iePV/5Qd6aTle9aC1YeWbv5j81nf+Q+
-0p89Z/2MbK+MRfYL8kfHUR8zOvJk9qeqs7KmWaxQOvZX9KtOOv6E+krOd9Y0T6cX/+4/bL+a/9n4
-iv6Vml/d4+i6e3qYvTPnduZrlKuZjsiPTBdSi3av70qcWdgeCa2l3nNmjyP1MFovtreciWIR5Q5b
-v1hfkK8tu2gNZ2yN+q3x2fMfzz5eUuz4/vr+tX0ZQWtQtcdg9KOfeTYy3xDyOdoxr9Q6pueMdKF7
-Jc4lTNdqfYh0ddXnWT97n729r/E9uMBbd6eOvohbD/8lRdWnyp3Q+ny1fnec3511IdLP5AEr032/
-Ytc3073SG1TPhq7egN2/rL/d+efVitkmW+9Yu9lzdDxjm+2DI33I+nTVT+auiNjrunsgeipju+5a
-O/Y+k8fIuqDr29Ef7Tq/Kmc96o+XJ/N4JPeY/PTko+eeDuZehOqN7Fl6umu4p2slVyN7O3J3tJPl
-8K687SCyZdlEa7L1vPIuI3uO7tNjeF7L548/cGXPVqwO5P+RAZsb6Hn9cz25/dU//NPOnSPEizMf
-vmfYO062WeFV/BRC9KK9L8TroX0rRrryQXklhBAi4+z3KSvoXLsOn3UtzprXK+07IbTfvwaqS8/k
-ey4ixFfm7OL0KsXwVfwUQvSivS/E66F9K0a68kF5JV4BvXwT4rm80t57JV8/O591Lc6a12eNn3g+
-O/qqz5qvn3VeVRSPZ6IfAAshhBBCCCGEEOKToZdNQgghhBA9qK8S4hX59gyjd7Be3G+2rPf8Cli+
-7fZ11H+1uFzBnzPjf4YPjxwb/1exy+yj1T1btbuDlfXasY7PgrXdmQNXYmWPnJEnke3u/cvaXx1v
-nZVd+dPdP1wlp3f0RR11u3PtEB+uXGdm33avzRV0PoPPMg8GK7cymez5qg/iGjxrXdheBO3Bvf7A
-kvW+ru4D5fjPXD2/VvIQyRWk/+jKLa+feuW87HxXcrWeatbN5EyHrawn6LRXGfcKdPn5KvNFQO51
-K+9QUB92w+zT6h6wavmKnjPPgur9vmPtO95NPIur3rl2vK85O85X70d32189i797Cm73H8Lj157M
-+KyzyYtkR99YnSje3CNZS/7xfae/jK5ondm5eTqtnPFso3ar8jOMD/NzZO6WfJQD2VzYdUEPv+o6
-jv548alcQJCYMHk+z8/T7627NRbxwYvP/LWnA8kfCzSHPVi7O3KABTl3mBiictE5ZPmQ5RgbH28s
-ev521ZOMzhcE1brtxep2z+eI7GWP1XNq1hX5GdUna/6Ib0i/F9m2Po+o7odon6E5XOntItmuPsH7
-DOnVWVbn3lEvVnRkORnlc8U37+yZbc1jOnOsctY+fHv4guSxN2dUz6wv85Ndp2wtLPuR/h11g/Gz
-Qz9zV2f8zZ4j/fEM0hfPz5g7NrJnPZuI3llPpIs9P5hahcyX9WWWz3Sv7p3seRSb7NxF8wuRi+aJ
-6vH8HMciPR8ylu1fu1i9hzB9P3r/Qex09DOefua87rZXBYk5ipeHzH0skvfOQVY/W3uZPN99P0Tv
-gZGPlp2HHLLX0HXxfLbGor5aWOdD5MMs4+VPta7O62L5M8OcC+zY1TMCyXOkL2Dqg/euZ5Rb8cH6
-DNERseNM8WDvXJF+dg+y86zUI0t2pT5U7bK9hyeDjvXIdHp74faX//hPjtpR4z15fptkPB5jPdlR
-D7Kas1+IP5YPs/woY309j4/sMLY8mUyvFys0PtZ4b+6+nz82CJoPln1m3tZzb72OSS7TyaxR5EPm
-J4oVl0rOMznsjY30ZPUByVVPT+Sb95zVg8zrMGTQPKzuay+vjsNfo/FzZC2YGsjWcNR/j6xGjePR
-HN95xq3ojGoDcu4g+rvPl2gs4gNid2VeFtG+QL624M/NtZrs6bR0z3T0b2y9tGxH42c5poeJdHr1
-ZATpJazx6H6xiPyq1M8obta6I3F/fM+eEUxtGUHn5enOerlIN3qOs3of3zP1yvNt9gnJbUS/9f2s
-/6Ne+3KO9E5ZjUVrA7v3quuL5N/jebZ/Gf3oGldylVtrvieO+S13bs6LkOxsY+uOpyurZczeQvbS
-KLtSy7r7cq+2eP7NtqzP0D3j+TDLxnOu1SJLDj1/f/7MfieS1TvkDInkkBqKyI/01ZaP61Kds9f/
-RX4i/Ue1h4v6Kq9mVHtW73yJbGXyUXyytUdqy+zHyMoca2cN3nsh8830sPtxlFut7ZaMZSfzJ7MV
-weQJUmfYnsQ7063xDGwfVc1/SzaSQfUjsRp1sHnO9GyzPU8/KmuNseyifaMFUjPZOFT2O1N72XMz
-8sOTt3yo1Lps/6O1Aum3V85cix8yP/9wl8mrqLYwZ72dJ7e//Mf/vVIBhRBCCCFEG9ELomfBXvzP
-0iWej9ZTnInyTXwFrp7nV/dP8GhNhRBCCCE+K9+f7YAQQgghhHhwxZdvnT5dcX4ix3s5rPUUZ6J8
-E1+Bq+f51f3r4Kv9QPSrzFMIIYQQ4uuhHwALIYQQQgghAvRyWAghxFdBZ54QQgghhPgcfHu2A8Lm
-26HF+WxoTcWI8kEI8VVQvXsdtFZC7KNrf2mf/kCx+A3l1h4Uj9dA6yTOQnkmVlG92o/ia6Pc+9p8
-fyz+2/Dw2/D9mByzjIc3Fkm0caxnj/EN8flt+t6KifV5hDff8blnd/wM3ZyWr8gajXLRGnn+WOuF
-xh/Jk2ockNxD1wgZi8Q/i9UsYz33bCB5heQborOyFll8ov3rrYXn8/iMkYm+RmBzwJKpxLy7Znr6
-RzlkLdDnGcheiOZugexfzw8kJ5Hcs3SjOtmmLZofst8zu8ieQsavzCs6g1b1es9QHzz9UTzYvWaN
-jWDXCNWX6an6Nq9Ddd9FeiwfPJmV3tL6jLXlxQX1Ce0xIpsRiD+ZTLb2TB+10hetnJuVemjZrtaE
-SI8nMz9D9hfSM1vjELuR/8w+tWxbn1m+re63SH92brG2o32B7CVkX7FnGOoruscte56NSDaS78yt
-WUcWnw4fq2v9NvjH5FamE6nbyLozObLS11p6snFZXbFkkTlGz5Gaa42Zn3u1lT1HvTMDyY2DfO7l
-P6J/Hm+N9Wx4Pli2o7GRL1lsLV8t/Uh9sfSxepB1t2zMz1BbGax85E8G24Ou9pTe2Gr8M9ueLzNs
-38b2G5GfbD239CHnhTUm8i2qFRmzXc8OWxOycZGf1ToW6WVrAjvWkp11svHxzgKk/2THduTAKOOd
-lZGerjN9hK2z1fqM7t3qWTnbYs/HTA8Ca+v2z/7xf9+Pifvtx6+8ud3vv39/u99NufH5/Xb7/XtU
-j0cmP+of5UYfEP2WDks20znLjP4zMUSfs/G09ETjERlEtmPdrbWKdHprcRzHcX9//i2QZ5hzvqpn
-9HNc38f3nX56tiLdHflW2V+Zn2j8s7GjjOcrqx+VWakVrK1IltHPcIb+3XsEHW/JZ88ZG57NFR2z
-LmSvrdph9LBnOirL+vBgRw7Ptrz6g/jAyrHzYepVRX+Hj6vj53FRX+LJdPYGkY+zX56/0XPGRrXf
-q56Rnj3GFnrWV9Y585/5nJVD/dtRv9g4dOWkNZYZ3+3HGftwHIfkoSfvjWVfrHjyO9aYha0z3WdY
-VwzejuN4u92OXwIfOuO9cifsejfB+Bg9r74oZH2I9kG2T6O9Ge1ZS5fn385746uOZfb1GXcea73u
-9zuUux3viTrlq/3iyNwzWO/sxrFen2PZq4Dky5nvDs68h7MyK30mmieWXu+HJat3aZaudzorNZ/1
-J8sxdr8jWPu+4idLlA/VOUbrtRKflXqC6KyMX/Uh0oPcnVdyg90jj97u1lhDOvYLsk+Rtb791X/+
-/0or6SU2UrhQGc+W54811pPzZBBbKyDNzyiH+Ik2P1mjNcqw6xv5hsQz04myWw+jP5r7ip/VsdGa
-svqzIlPZg9XLAqtzhd31IbN9HHhtZOfeHStWJ3ooe3WMrTmeD0id9PyM9DKyO3KMqeGrdpA6M3++
-6k+0dsxLid1+IjpXc2Dn+iJ2O21HMcrsZBeMaK+j9YSV7yLKY2RemTwjcxWytXi8SLyB9wmkB672
-S1kudsQdtYXoeNDl5+7cOzO3ozVkY5/VuxF0LXbvYXZv7Fwb9M6Q2WFraUUGAfGv2mezd61n5pdV
-08/Orx133bP68shH9g7j3YfO8pu9Y0RYPQF6l+hgV69fveewvt3vd7ef6npXxfgTyTPvETpZucOw
-dpj3QZX3Jh15xYLMa2R3Hdo939HG2T1bl27knct8jls+7D4rd+jp7tWRvTnH0Iqpd25bfmR+Zn5E
-+pCasyP/u/On4j8TnxWgnKn+AFiIz8RZL22rvNJLWIGhNRVCCCF+8NXOxa82X6E1F0IIi6u/ixHi
-M6J9J4QQX4fvz3ZAiCtw9cbn6v4JHq2pEEII8YOvdi5+tfkKrbkQQlioNgpxPlfYd/ohtBBCnMOO
-P48ihBBCCCGEEEIIIYQQQgjxAf3wVwghzkE/ABZCCCGEEEIIIYQQQgghhBBCiE+CfgAshBBCCCGE
-EEIIIYQQQgghhBCfBP0AWAghhBBCCCGEEEIIIYQQQgghPgn6AfAmbvf7s10QnxDllRDiq3C731Xz
-vhBabyGEuA6qyWInyi8hhPiBauI6jxh6cVR8xQ6UV+JV+P5I1vGPr9/u99+/n5OZ+SPtox7rs0if
-NzbSyTDPEdGZ+Twyx9N63umbZWu0h/jQGQfPHlscmTxE/I/iwKwvonP2x9tryNjMZ0/v6lojY0db
-iD+WDLpHLD3z15X5ZDozW96erexfJCbefLPnM8gaeT54dlfWIgM9F5j4RDofoDngyWdzic7cUWeV
-6Fyo7sFILsulzEYHjJ+zDLO+I2ytqJDtzejzrD+I9KycrZ4N5HNkPivrG+lAPovsZ7aq/lufj6Br
-ldVH5gyyvmdrGtInMGdrlsPofDP/V9cx8getz2x/iT6PYhjV+SgvvDkgviH7iKmxFX+sfgOdX8WH
-qs9WviPr6j2Pcgy9m6B+jmMruZ2tR3UPID7MVM42VEekD8lJtndH+g809vfbjc75yL+VHiRad+b8
-R/ZI1hei9YupXRFITt/fn9+csxkBvSMxe5C1XenVkD1SqfvZWOTs8WTZ+obksGcX6cOqPdzsTzU3
-WB92+BydZR/2GhFP5PnsD6PT0jHrQftUtr9fsTU+Z2sHs8eRPIl8ZuoGGlvLt2hennwmw85r1Z+V
-GuvpnD9D9bvnJLmmx/HxbO3wk61vrH5PJlovtrdEzibmXoCwcrZGvZYnw9ja0fPc/tk//u/frSET
-+Qo8Kw5Vu3NCPovsIPBkUN2VMZEtVGd22HWyEp8HK749K5eemcOvXvde3X8W5DDdGYtK3UD1WvJn
-re+Ze9CzhfiwMvbt+NFksw3b/Xb7vVG/2q9OuUoPMMPk7ttxHG+32/GLIT/r2dEP7B7/bP0rvL3/
-f2feP7vezeyYo/iZHesbvRC86j0OuZ8geli69a7u42fF4Sz9Z3Bmj3iGnWdy9Tl2nVPMPK/2XsD7
-oVqHveO4ztqvvFy2ZGa5lfl23W8Z+bPvqA92zXEHz/aha4127Ovj2N/37GTl3Ue3H8dxnTop8BwY
-+4eun5HMYx46zzxfxnEr73iq7x8fnx3H/rttF7e/HH4A/GBuLN+Mz94mOaQpfXOeezoP5znijzU2
-s2/ptmx5PkS+WfbQ55k/7BxnvDHW2GjeWW4ch+1nNC9LJvra8memkgeojlE+igNiN5ONfGLWIho7
-PrN8Q/eIx4otRGe2R5Dcs3SjOqMcXMkr73PErief5bxnGx3r6WDOFHQdPV8QGU8+q9uZnYcsUsfY
-Os+cBZ78PIY9UypnT4aXz8xLMDbnkb0c5QDTC62erZZOi3lu7LkU2fLmztjybKPzRXNs9inby9Ec
-WL/QuXu+IP5Ua4ul2/qekfd8n20jetC65O3hzD4S66wWWbo9GUsnczZF82PXFLEXEeVJNm/LJpNX
-aMzQc6SjPkZ9ZyXno1xC6xLTNyP+sb0F0kajMf4AACAASURBVJdYZwZyznrPkVqwGn+PSl+SfYb0
-vswdINsnyFmO7OfIB4tqLzvKofH09LFn6mgH7SOz3EbXD9UbnXOIrer5V+nhsnPR8iPS55H1NB36
-R3nmjI90ZTojG8hZiMS/YhPVieYbUh88nUwcUFtMDzTbmp9F+jO5aNxst9qDznrGZytxYPa+Zwv1
-bdSX7W10XawxlZzPciPrZR/PdtWy+Rmqx9IX6bRA5sj2n4y9+TlbE0bY2ujpROPA2GLrg7cHI/2o
-rDXGsovWHIuohlTjgOQe21t6vo1jkFph/gBYCCGEEEIIIYQQQgghhBBCCCHE68H8BxtCCCGEEEII
-IYQQQgghhBBCCCEujH4A/HLc3/8nxBko34QQQgjBov5BCCFeD9VuIYR4fVTHhRBC/OCb3eSjhwVy
-QTjrEuHZeNbBZ8XU8oWNz+39f1eb70jkg5dvWRzY+V4hDixX9Hlnvt2dr3vY8UfTMZ/Z/Ef0I3sk
-4tl1mJWp2q7o7jrvuvZC19hqLK5Yh1Z5dv537YtI/zhH72vGFstVatOqvq5ercvuWfZX8Hx79A9n
-2c/2x1l+WM+izxA9nsxqb8DaZn2r2l+9W561X5/tx05/Kr4zed5pe7d8x9h53M6zBrGzStZnnMFZ
-sdq1F37+3r+7zuOsr1fYtX5dZ1T17PH64935euV16cwf5Mz5rFR7FSQmXXF7vMND+oKdNWDlebdv
-u2rps87Bs9hx54hsIc+Z/dWdQ89ea++8y+TR554OlmfEqtKv7eTZufKR7z++rBxOjGznxMcXSlbS
-zz+w8mzfnM+95yzeJpvtRJ95vmW6PPsocwwtf7wfDI7PPRm0OHvzrehiYHOAic88jolPZBfJgeq8
-ojX18sS2dXv/9n6bP2PWK8/Pn/VX9ztST9j62WnLG5vZReQ9vNqF6szqhmcv8n+lbjN2Ix9W4rmS
-/579lRrIjmXin58Rt/tjD0djWR+66mHWYM/yiI2oH8jseM/9OoyvkyXr/VDPsofu08hXxrcjeM7o
-Z/uKnX1j9nmXbU8fckZ22q/6g+TE7r7f0+HNIbKJxj/Ts4IXM9QWsq9XalTnfvH6DMZm132E3YOs
-PSb/qz2Vdaax8/L6LTZnZl+itWbnG52PjP6O/s07m7v2YHbH6+gr2F5p1e78DJFb7SX8OH+8u1o5
-b+no6tc77iGIrajGdpxzK++wZj2M3Zmffbjd787dZpD86f6D+LlSyzp6O9ZW1x0+X0f/PjnajWx3
-9I3IXkPfKbDvrZg8RuPf8e6s8tz6/Pb7fzgT7y3rneasC4l55f75ruX9o6wG2HYZvH3R9+7sR8xR
-nUwMx8/YMwKde5Xb4c/ljDumhddnMH0aej6yfQKr/4cMtq89nXie/HZG7Fob3p81mYecb/P2l//4
-T/fj+Hg4evO/3z4WLquIjWPn54ic9blnw9OH+BT5aTH7aMXBG+P5xsYc0e/Js2uE+ObB5ok3liWa
-o+ePlxtInmTrO8LOF4nhqLeSh54P3l5DbLF2RztsHbCI9lrVz1nG+joaz+7TLOZI3EZ7yHpFOWbp
-9MYiOlfXms1Dxh/knELPOE//7FMkH8GcoVHd8Oxm+YDEja0towzaA7A1sHLezyDnC+IDmxuzD9ke
-mfVU16Wr1/JA5hHJeeOYXJo/q8xllvP23SzLfL1LDzon7zl63jNraulmcj6rkZ4dz/bj+6zHnm1n
-MlH9RvYvAhp/tl/3iNYuig3S/6A5hpzZ3jNPp6WHxYsF2qN48uheHMcjchnM+TGC9CieLSsmaB8U
-xdOD7XFne5Z+tGYhewmpIYivlg/MHL1nM9leRXp0RL/nW0RlrcfnnX0CSqU+RLaqfcJDnokR24+i
-dj37yPpmeRj5xvT6lZrvzc2TiWQtny3fPBnLb0t3luvMuR75NutG+tKVOTJ9+eyb50NmF/U504+u
-y/gsi4+X8x6d/Ra7fz0dzFpHvSkSK4/qnkJyc/4MgdlryLhKnYnszz6gNT/Tgz63bLFnrucfUv+R
-ehiR9eqRLcQmU9u95yt2kVo3f8bEJILpt+dxbP/jjbW4/dU//FOh1RRCCCGEEEIIIYQQQgghhBBC
-CHE1vj3bASGEEEIIIYQQQgghhBBCCCGEED3oB8BCCCGEEEIIIYQQQnxK9Iv/hBBCCCG+It8P8w9s
-34fv50bxZsiMzM9H/ZatWcbzwft69gv1bR7r6fKIbM/PI39GvLhlPlRkED+rMSF/+Ty9jvPYLLYr
-61uZi+3Pr+9f/fJB7/h83iPevhhh9lq0vp5OSzbav8x+92DH+nP6GNtRBtmPmX60XlV0PZ4h8Ryx
-5D371rhIDql5kQ1PT1aLojPF04v6YvnWWb/m59Hcj+mzyFYlbp4e5jlqi3nBhOQSW7vynPz1uL/X
-4sfnbEwYGfT8Qeq2pXMcs9qDMXOJ5LwxaP/n+WN9z+Z5pgeJoafXs2NhzYmtCZFNbz9Y9pmvIxvs
-ORiB2LD0VfYy2vOt9O3RmZDVt0pdiuS7alYkz+pA7Ge5zawHow/Zx7Mc2qOw524G24tHvWxkI5PP
-1qISU8t+1OuP8iu99UhXT4DuxVnnLMvWySyH0P2G7PMsziu90Tx+pNov2j3Hr+/f/+gZGbvIOiP7
-rjInpIdG9inT36N7rbJHKnqs8asyaHy6zxW0vlm+RfG0QHrrcXzUL7I+WzIz1Z7J+qziG6on8jHS
-E7HS+yL3jcOQYfcauq+zPe7pQuSRXGLnUrE7jmXX2vMLOUeY+jnDjvXq1Ur9t+xGY8axWc6MROtY
-7W8jf37I//r+9S8/jUXqXmYLyQdPN1LHVuob2jdaIPtr/rlLJo9QXZNIF7LuaG+Tyf+Qvf3VP/wv
-czZ20Hr4ddA7ft1t43jXbc3l14/ibT5U4zb7Y7F7LZDnltxx/BznrvxZiae13rOeDj8r+czGysqP
-HfkQ2Ufiyejp3PveHvd8HuPp5f9hyHT5HOlhYhvVDWZfV9bXiuH8LKtrUQyYOKPxzOa14zxCch7J
-1ZWzrCvfIp2sHibH2DMlivOD6CzomgvyvCM/O+vSA7aWZnOxvvfyOMvVGTSHomfoWFb3jn3hyTPn
-2urcLZ2IPKvfs4XmVdUW6xOaIyvztubI7P2VOCBxXtHH2EL6s6z2erYZP7vGdt2dsj44ig9aO5jP
-qr0seq48+555Jjt8ZGsTKr/S30SfR+y841dso2fVLJPZWbm/MXeJHXFE+rfobNtxf2PrCVNjEbuZ
-vVXQu1BXbKsxjGS77zxeHh6kzh0+zPre3n77/2/B7+tk125FHq3hnf54NiJ/XuFMP47n9DCr50hV
-HvFhF8w9eZZHdKL2Z/mVMyuyvWNPjbLRfYwZm/kT6WL1Iz3PmfUkygnrWXWtvbG//wA4OhCvgNcw
-P8Pv29tx3C/8y7OtWL26D8haP3Ndzoz57b0hPGOuu+d1hVzdzbPm6Nn9Cmu604dnnTso2cVtVfeV
-5y6eQ/RC+Cr5UqkJV6vdXxW25+mKH6vnzHXbYeuz5V1H3lwlJlfx4wHjDyK7+14T+VCN7dXuYlfL
-katgrdMVYtWZP1VdV4iD+Jmrv2cUz6X7/c6Z+fZZ3yOszusZ781fiTP7rQdRDF/x7HwFn70f0l/Z
-5zPp2te3P/39j38B/NhUj01W4f7t4yZFdGV2Zz3j5l/x1dNn6fd8WI3VbCd6jo5nbI/z7Vx3z69u
-W5HMyEp8GB+QPKmM7Yib50/0nNE5j0f2kaevQ2bHWFY/skfZfbxSD1dj25E/qH4mduweWdmnqM4V
-uuI88mzf2PoW7aOOuhr5Oo+P7EbjuvMW1TPr9OL1INoLrH+RrShnqrmN1NXM9ipRzCr7pepbd5zH
-sdkYRC+ThxX9K/JnYuVLJT+790yFig9ebWFqdcf5huzBVRueTmvO3pk320bOTsbfrG4wtphaU8lJ
-a11G2N61k902mHiOID1BV31A6xbTX6zsdfb87bojd/V1q2N35CQTo8q9KMvF1Z5hx73c04HcSbpY
-8RmJefU+HJ3rkc0KqJ/Zu4aVNYrurpk/mVw0Frk/e/pXc3Ll/o/oZn1euUNleRvVt656uxIf5J7V
-UasRefa9DNv/r5yR3njULnK+jHpWeouVdwpRX5jpZ+fLrjXbS1T993zzbHmwtSiqJyzeOTWSnTsf
-no8/AL42yN8dEK+F1lQI8Rnp+jsvQgghRIR6afGVUf4LIYQQQgjxA/XH4me+//gyemGN/BF0S976
-zLKF/BFxzx/m59fIH6tm58j/we98vpneWQ/yR9znsZ6fzHPkj6yj67xSmJg/Kj/LZzIjSA5Ef7Te
-eo7kg/8HzrG4ZfFB8m7Wx+ZAtk+jfLD8Q31g/Jz98PzJqNS3bP9G8cxignw9w9RwNrbs2qH+WJ9H
-c4/0VfV7OpGzzNKJyKBnIJIPoyxSo6qw544l9/AFqf/I/qrutYo/lm9oL1GVWYGtG9EeZWpOZV6z
-Hev7rj1bteXJsPotv2b9ngy6hl1r6tlF9giiLztPK/NB6km09pYM00dac2H0R37OVGtUpcZZ+wJd
-R0/Wszl/HtlGQdYaGTc/n0HOZmt81j9EnzHrmclltpDn82fW80dMovmMoHMb5SvnQaQbrZnM2lTz
-ebbL5gOrf9TXmW9sjnk6mH3lfZ7ZsOjIm+gu4cmzPaunb7WOVsZ6eHOJ7j/VnimS69pX1fWNyO5g
-q7WIubes7HH2PGJ6qsfzLFaRrep9JrobMGT9Q8U3S6/3DPXB04/kGNL7emMjvH60eh6u5EOXTjSf
-2Rgi943oDjDbifJ/5UzvqB1ov5fdu+bxSH1DfGD7KssXVE8mz9zFLH+QOoP0M129OhP/kZW1Q/zx
-xth2b3/6+/+JdAlCCCGEEEIIIYQQQgghhBBCCCEuTvLXdL4m3+6//e+VuILPV/Dhs/LVYvvs+Xq2
-2ees/i55livk1hV8EEJci7PPgmefPSiv4uezUHyEEBmqE/tQbMXZWDmnHBQeXe90hPhqfIU98hnm
-+Ap92NX9Q3iFOI98t5x9u32cxNvwL4o9+ejzjMd4ZOzsW5XZ59EH5GvEH2ZeiK+IHs+3q/m5agfJ
-2+pYNv9RuuLzLB+yvYDoZ/MQ9bNqN1pbdr8huWeN9XJv9rma86Ntb708/ZG+FX88+WoMGXvWOCS3
-WZ2sX931GV3brvO3WhMqrMSEzdvufFjpYSpjI3+616yyj1A5pDer+Dz7Uq1J3X2PNSfvjOxYL09/
-JM/i9dAPkH6V9WO1l9vd1zIxP6vHtmwjzxEdK2N3wOZ8x3lQiauXu117vwvm/Fs9I5jYZp8xPnTH
-rhITVv+oc0cfHNGR59nY6r6MxlR0rtSJ1RrzoDMvH/q6e25WBhnL3udX7KJ8lvdrzPjjOOceWPUH
-7fF39x1nxmJHbUf7eWvc2Xlg2e1+X3kGXXfdUd+KnpXaPp9bs06ktu+qV5FfqM7K2Eznyr2j6069
-Y2x1fDc73rd2vGPdEafbX/2dfgW0+Jz8+v57zn9p+RsLogutixBCCCHE50G9nRDiaqguvQ6/HvfL
-rZPyRwhxBVSLxG7OyrErnvVfie+PL34d/ojwL8ftQwL86vxx5sfCoWPHhbZkoq9HPH8s3+Zxo8+e
-jKfPmgvqS7ahZn8svWgcsg3lxWH+OtOdrW30PMLzwcsfi3ksu3ZenlTnFq2JNRfPjmcL0T/KIfkf
-5Xy2Rp7ML8etzQdLJqo5o35PjyXjyXkylZz35oL4w+q3dCCHMLLWnl62Tka+MqA5jNhi/WFyA83z
-cexKnUTWqKo/2l/Mue/ZzOaBfGb5yeTqqBMdWz1HvHlVa12WWx1jLV2zPFpPLB2z3ZV+0rLBxjzy
-DbHFxDOyX9kn1njEH9Z/Nm9HkDyMnlu20PpT7Ykzm4h8ZNfSw/aK2ZyivELqJNtjR/6ivebK2Wnp
-t8j2O1vfq+d0VuOQmunNIYOtKdk4pK4he3C2FeUDGoPoLKz4b41dqWnZOcfUZ8au93lWL7rqVObT
-43ukJnSTrUW2Z7LeuuI30mOxdZU5y73+fh6L9GqW/kgP0sNlOc/UixnkDIriY+lCe2gmDp68Zzea
-F6Mz0mt9bs07konoqL2ePFufEd/Qs4ftXbP6gOhiazUyBqmH7NrNMqw/mSxSG0eimFsyaI4xd4PI
-/+z5bKNax5D6PMP6w55TSJ5Uz81KTfZga0sG0g9Y9mc8n6PextOJ+FM91zzY/gepvfOcmDPXm5cn
-78ne/vh3/6O/8xVCCCGEEEIIIYQQQgghhBBCCHE633YbuN1/+58QQgghhHoCIYQQQgghhBBCCCGE
-2Mv38ZvHS9k795ugQjJd44tgT/Z2x/RYMshYVucZ+q21GOXnrx+sxHC2i+QDK8/AznFF56w3m9eK
-b6i85UM0hok/m7eV+K/kgzfW+sFRZ8wRsnxY1W3l4WwP8c0bm8V2zvnMB68uRTKjPqbWWf5mrNRn
-y8+K7mwveOvO1vMd56BHpYY85HedKdkarfi8IrMKUg/Z/LHGsXJsD5PJeLUg05Ppr45/hu7KfHf0
-7mgORWtX1d2N56v1LDt3PJ2sDxUd8zhvLGuLmXukO/Ip88GTReUz/Znf0dx37i/Pp+raMZ8j95xs
-bGQbofsO2bEvO+wiffaKfu8zNM9X2X2nquiIavmqfsYPy1Znbj/0dN0rqveNeexKTiB1gJWx/F+9
-A6zcSap22X59tZZ2xHmWXbmHI+ejt75sPWRqqTUesYESzWV3niM6K3e8Dpg4IHoQ/1idlVqKsHIn
-R3RGumf5yhnk6WH8RNdhJT5sLe2qtx1jV3NgZb97ujv6EFS/p/PVeuNOPdaa3v70t+yvgH6IR954
-MshYRv5O6KrIr+gZw7pqsyuenm52POtPh58Vf3b6gMbtLLvs88dnR/J595o9K24sK3E7kx1r9Cr6
-57FsPjPruOPsWK29V8pDhJX4r9rq1HsEutHeYPeanXXmejaqc3xWTlt2u/qKHXPaUQfYuazaZetv
-Jvtq9fBKnBW7zntRN50x2H227dLN0HWfr9Ze1M4z6i/rQ+Xu3BmjqsxumPPmjPNoZ/2q7Kcr3c3O
-fL92JrvWfHcu7bxrdb0fqeTYA7QH3V0nR9kr7cdn6WRsH6D9lfcmn+G9wxXY8fOG7p8JdbFa37p/
-FtKZV8+K4bPOoI61uGKdXI/n7U9/+9/vuZgQQgghhBBCCCGEEEIIIYQQQoirs/1vAAshhBBCCCGE
-EEIIIYQQQgghhDgH/QBYCCGEEEIIIYQQQgghhBBCCCE+CfoBsBBP4H5/O+73t2e7IYQQQpyKzj8h
-hPi8qMaLXSi3hBAPrlALruDD1fgqMdF59Jpoza7LV9hTz57j9/GbhyO32zfz64jb7dsHHRUeOmY9
-ng+ob54tZl6zT5ZM9DkbT9ZPBmROo9z9/gatb7R+0fNZp2U3s53pRLDGIvEffbTGR/6s+snGNtOJ
-jmHygfUBtY+si1c3Huwuviu1qzKWrVfVnO8EqZ8P2Fq0+xxB6dhfc50Z6fD/mfHxbHWcv7tg9w7T
-J5xJpR5auRid4/Pzx1y7z5pIrkuPpau6dtE+9853b4902c9k2Llnc2TngIxd0X+GfDR2ZT+e4S9L
-ZAu5A3Tai2RXc2bFl671OLO3RenqTaq6vBrK6IviyuTN7nzoPOM67O6uw6s9YdbDdcXq7DrHvpOq
-+rAK8o7J64dG2Lt09R3Kyru8LphalI1ZycuunO56D5jdXdn18t47oD4g71kyfSzV+0uHXSYm8+cr
-d+Nn97LznLrfxazmCdsP73gHlNXwaI9U/anIdOxJ1O6KHfZ8Z2pg17lWsftglEXqwzNh8taj8v6k
-ow+5/fE//bd7aaQQQgghhBBCCCGEEEIIIYQQQohL4f+TIiGEEEIIIYQQQgghhBBCCCGEEC+FfgAs
-hHgh7u//+wp8lXkK8VnQnhXieXz2/uCzz08IIYQQQgghhBDdfPdeJtzeH99vt+OHzPh1xO39/yNZ
-RGaUteQif1gfbsbn8/MsDj+e3+7HcbdUhmNn29Zn1vP7kc93tmvJe3Y8EJ2eXjavKjmQ6UHtPvDm
-hcR/ls/0jLBrEeWLHcPb/bfnds569iL9rA+RHUueXYuu2rWabw8i/y0Y3yN5dM9aeqN9Pdpl48+e
-BaMtT39HzURsr8wrWousDrB56IHkpPVZoDE8+zJ9aA358dzuVRh70eeIHvRMQdZ0fM6cp4j+WS6r
-Qd5aeHorWDZn/Z5ttv+xxmbPMtBYRmMjVnyz/GB6npU4RzKM7VX5ld6MmUu2d3b90DbaNxmVMeO4
-eSxTVxi70drM67tyvnt2Rx2VO1LVB7R3ZORXz8RsLSKYWt9ZX1bOy+o9J/vM+pw571f6lpUzC5Hz
-zrWu/YnOPYsVGlfmbEDuJ+h9CvEh689W9zKbQwzoXS57ztqr5v2q/Ez1/OjsUxFbSE/Tee5WdWb+
-R+NsmY93Sw92XzB52LMXfr6TV2MVWjF0RrLsud8lv3pHiUDPdHT849lKD4ue57NdTw+6Ft29HNsP
-z3KWfLRe2Vqw59fsV7W3Z/HWa7SH6l85K7v23e7zumsso3NXTYrP0Nuf/ua//mTtfvtx8D2+D01M
-srei/+jYhz+snUi/p3OcuzW24rMVz0iHF//Mn8x3yzfP7sqaZjqQGM7zYtbCi8nsE5NX7LrPNr24
-WHmC7MXq+jx0WrGN6sCqPUsP+xyxk+XMqH9176O5jspUYrwydtTBzBeZ66pPHsgaWZ+zNafDl0xn
-tt935QOyjh2xjc4mpu55MshcIthYIV+P46q1y7L/AKlviP+RXKbH8q2yb9Ax6LmI9lRRTVvpNR/j
-dvZXsy3re3Y8qgOxm8kg/cZK3CLZir+oDdYu49OsfwZdx2gtZhuoP0jcsvFePFd6LUuf54Mlj8Du
-I0a+41xjxjP13TrX0T2L7BPU72gfZvvXq0eIX8yaoT1QRiX/2fOB2Q9M3Cw5ZAxz32DjmemqyiCy
-1Tyv9MeeDuQeVe1RopyPxlgy0bmH6I1szWOzM8nTw9aBWTaqRZl+5hyN+i1v77N5Uu3LkXVfPSPZ
-ervSH7O1C4HNt5GVOsPGwdLp+cfWRqQuIX0LSramK3VytsPWTERnpqfSp1XtIrnE5pt3Ds5YsfX0
-RjXTso2eF95Y5LmnA6nzlv7IBtObVfQwOqM+58x6juicx1lju9edHWv+AHjk1+M4fgk+O4LPhRD7
-iPZmp43jBDtn2xJCCHEdVP/rnBU7rZHYgfLqB4qF2InyS0QoP4QQn5Ez3pkKIfrQnt3H98cXvwZC
-0WeWzC/GM5ZfnPHjc0/GGvPA8nN8vqoTGefZqsYNiVUnK3Gz9GRrYsln8WfXcTXm7FxYPF1duVT1
-fyXO8144q25UdD7wctL6bLaL+taZN7POXw8/zt7+Gsn8medrjYtz9f7+7LZUW1hWapH13NOFyPfW
-lsd/33Wj1z3a85Y/1fXycuZwnqM5HNmLZKJ9Ovs1y0dzz+IW2fBAdHq6kZqQ2YqeI3qssUyNncdn
-uYfOwcvDCE8HUwcY36Mx0V7u6A2i/FrtSZD9ieix5Fdqete9oKPP8WyOeu3439+fffxP3zvmiJ5T
-0V7r2meRT+jnVg/0K3CeskS9fXcviJ5hmT2knxlZqT+I3arc6riKPBPnyN5qnezuqZn6iZyv7P1z
-9QztrsuoT6wOpK+o1vORrrHofcbLgWp+I3dRT+dM91mOzmv3PecAZKp3IYSVex3a93i2EN+672AV
-W136H6zMnbUb6/+5lzoOfx2rtRq5n1fvKpHOUc9I5b7deY5YerL8WImhp7MCWxurZ1t0drD3nyxu
-naB3sEg+GsPI+3vqfjzun2iOMD6g96bu9ULzJBs/5/ZKDcm4/cXf/BfkHwq///99+nr+fH6+Aqqz
-2/YN1GP9bgEvPqj+bGwn2Tp2+THOd0U/ui67QdaIXUdvLc6cb7aPZn9W8nxFnoktUhs8u958Z11I
-bWTihvjGyqzKP+jMx5U4rMSZ3b9XkN9JZY9U9/58FiD7DvGze0+hY1dyDNHfoRMdvztv0b6xUt9X
-zgLEByQnUT88vNju7Lcre2olD6OxHfk5yyL6UJ0MHTW9K/7ePWUHrM9n9dIMZ+f9qo7Kc+s+FtXf
-7h7Fqq+W/u6zgO11dvRmK356/dNKXUVY9XnV/qzfo7tneMjvzAfUB8uuF5MoZyw982fW1+O4qA+u
-vstAeqnVdyLduYjWkJX7ebYWV2TnO5HI1grV2HbmZPVeHckwvXClD6vu/ZU9gvqW+TCP7ZhL5mPk
-J6tz1UaXD94do2tddpPdsbv8qOxNRM+zOOv+dvZ8s3Vhz6/VHiCSi+xash/lwR8ACyGEEEIIIQTG
-t/cbxhvyDl8IIYQQZXTmrvNteDNqxfHbXfEV4iqs7kfVTCFeE53FNb5/A378+whsJDsG35PL9Lzd
-YhudMiyjzh36H3qPYz3Oz4CNTyWeHTnm+cD6Fvnckeceu3IvsnccP9vsiDOrJ7Mx65ntdtnK7M6f
-X2mfHseeOOy0uxrDV8ixSl3vyr1Rz+7c6Kgn1rjK2E6651Wx253nli627nf48yz9LKv+XCFeHT5k
-Op557jwzZyrxX+mTs55rtoOMuVLcdp7ru3xA9VTmNudKZTw7BtWz45xG/T2jplXHRrFaWcsVnzpt
-Xu1MPHtfPKNuvt2wM2/lfcqZ83pG/s9Ue5muM/szc1Zfivry2dfgKnfmHVTfxaAx6X7f5/X3XT9v
-8Oa1+2ck4je894PHUc8T5Plo61lrsnp3ZWNVfXc490jIe94q7M/GdnP741/rXwALIb4Cj1J3C6X6
-bZ5pr8qr+CnEldE+EkKs8oxeRQghhBDiqrxib/SKPgshhPisfL/G7xIXQoizOLvmvUqNfRU/hbgy
-2kdCiA5US4QQQgghfvCKvdEr+iyEEOKz8e3ZDojrcrv/+B87bqd+RKeIGWMUxesZ8Xzm+r1K/nT5
-eeX1vdpa7KhX4jrxfMW1fUWfr85Vj/aPZgAAIABJREFUY9pZf1b0XDU+Z3JGDK4c58w3xveVe8bO
-+Fj6z1yTK6+/eD2ulE9X8uUzg9ToXevAngFdNjv8Yex9xjz+rPPqAonPs96tIL1ZNl4Ij0pP/Jny
-amV/MXoi3u6//W8X3t3nLD5LrqyyOw7fuwz8+v7/vxCyD35xPst0/QraY8fO/qH+jGNR2ar/qA+M
-PxFjnnhrNNpi8urX4/j9P4yb9SFr9Iv1bLJvxWHUz+RdBKLHm1dXPntfz7wNMX+sl+d/ZyGy8tOz
-txLP2ZYl742d51vdR8iaruTD2z0fi+iZ97c3dmWfIPXBivM8R7a+sWuHyGf7oaueIDZm/WfYRol8
-Yc6LzjzM9Ht7alX/gzlvsxp1ODIfnm+oz6M9tsZ2+sHUscgf1s9nXUJW6w8zz5U5dp2Rq2MZnWg/
-YX1uPUfPgcr5FO1ta288vo8+m8d7vmU60LqTnfOz/Uo+Rr3LrB/148N4w6czz//bvbY/du6pil5k
-X3XdXSvvI1bjdJW+y3p/ccZdLntu1hCj1+rOW1RfJteRj4/xqK1xzOM5cldk38WM9+3uPYP2Koif
-HXezrt6JsXlFkFxi54XeW7qpvAM6jOeRvLUH57MZ6RF3xyTrzX4dPnPr0sIeqbzHzM6sTs48p7t7
-i46zx3vGYNUFpE+t1MnsfQRSc1besXqEd5vh3fqOmPyuC9ynbD9s1f+xbpxB9UxdWdPH+GNRR6fd
-rr7I4vYX//E/G+rvx+H+rYKH+O3A/q4BIoPg6UGeWxFc8XnUh84L0Wl9Fq1Fx9hM7wNWvzXfLj9X
-5rUak0wn+rWFF6uKz0z8d4Pa9WoLst8smTnObDzPrG+ILzv2OGr7OOJcYuqwd3ZU9gt7LlTx/EHs
-ovnLrG9XDTyzJqzWgUznHOfKOb0Lzze0j9rhT7bX0Lq3Mpfq3L3aztpCepzxs+pZj34f2V/pgSPd
-lbG7iOwysaqOnWXQODwrXrN9ywckLtnn0XnR1Sdl+9Pzg91TFVZ0MufQjp7Ti8+sY3ftXtm/r0B3
-ffb0M2NWYO7/0f2ro+fbXYejemLpHz+PejvWp517IOr7mT7b+uwxFl3Hw/hsha4+0mLH/X/1Xre7
-/+6a1877eeUey8bKyo+z72mj3a761vVOIXuPM8ug/eYs0/WeAq1jjB6kpqEx78hJJFZdOVB5X8A8
-Hz9jzy/kTuTpj3xD2NmrsXUvqiEr9Q2JIaJjdw23bCH6Ub3W2CjPu/xfH3v7i//4j0gHJIQQQggh
-hBBCCCGEEEIIIYQQ4uK85N8A/nb/7X9CCCGEEEIIIcSz0R31fBTzjygeQnxOtLeFEEIIUeX7o4l4
-u/kNxdv7vxyOPh8/exv+pbGlP7LF2B35drftejq9sZWmChk7ylhfR+Mt/V4MvTjPX482rZiM9pD1
-8vR7OhFYn2fdHfNi/YnW1FtHS8/sr5djma2ITD76HFmXLB+QuaC1xfIh2i/efvTkPT+77K7kTAZa
-KxidkZ6OnB/prO3ZGlVixazj7FsGog/Zp+NnbByi/cvMi42z9Zmln8kf5LzzbCHnWrQuyNw9fzIZ
-9Kysnn2jXiT+K3t2HuPn7UPpDfKv0nOi9TeaK9I/syB7hDlPkTqZ2Vslij27ZyO/LDtorxKNtcaj
-c0FruAejPxv/+B6tV5U9gPST0ecr/ZCnx/fr/v78Fu4TpnawZ9zsG9JbIHOMfENqs0W1D7N0WL5H
-e9Hyj10vz2fEt+i5Zevb/f7+/c35nO/bMp8qfUYki9iK9sRsj+m/Ed3ZZ5YPo242V6v7znteq+k/
-eqM4/2KfR19W1+XxDNk/TP9d2YcebD/t6WDXevx8pdZYMqgtT3/WR66se9RnVPPEsh3pt3y35Bmf
-PZ2RDOKzp4P1h10LSybyx7Ll+cn0mrPP42eRLc8f5PloB+1TGf8tuc7ayPaN4+fIfD6O/9jPzDp/
-5udzyut5cl0xSG6wesaxzP6NdCPyaE8SyXhyaE1m+6Ws5ni+sTojkLhUz9bK2rH9eSbP3hduf/wP
-46+A/rEZf36W8RgTyVt65ywax2c6bwf2u7WtryMfM/l5Hl5HyNgd9Xo6WVvIOkYy2Xg0tqwfFuPc
-rRyJ9CPrNevM9ETjLdAcsOS9ObK5HdmadaM6Z5lI1/wM9Y2JQ8UWU2dY/ZV18eokUpcyP7294O0v
-T/9KTZv3YFYT0DMl0xeNW+gsTZ3RPlrZI96arsQwI6qfTE6itTrb17OOLIfZ+hbtIy+e7J5FznoP
-tj9Dc2CWy/b7Sr6OzPkRfV/xAYHNm8hm1qNletD9xfiRzavSn4zsWhfLVmS3w07WPzNnB5NXLNl+
-mW3NNrP8y56jcWDsMHOyZCp7ttJndOS7tw9RG9mcIp1o7bDOvEosLH+q/qHnPXreeeOP6XN2v6A2
-0fPQGx/5sHIXYu4GkR7vWVYHV+8qyFg2Vy39iB+VPVKt08gYb9wsi/THCB29yvgZe5dAyXq3Sp/E
-3AGQ+8msf/bR0u/pRHrBar9YvafM8pXnyJnInhlMnzE+R2xF53W1diF4tiy9kV1Pb6TTk/c+Z/tO
-Rj8Cu38jH5CxVfn5M6b2jqB7KpPPzrXHWKbvivayx0o9ssYhZxOyRpX64O0Fi0rdQHIPzRvUFjJ2
-htkL7LmA+ln1je3V0TML9/P2x//wDysVUTyJX4/j+GWj/CvyFeYohBBCiOvx6/v/o30IKy+EEEII
-IYQQ4iNnvwvWPU6I83nGvnuVnzMhfn7/1Xj4y/EjsBUeRj0dq/oZW1eB8RONTyYz62HlV7DmO+of
-E7PT5tXzIGL2n83tLOaozh176mr7dGU/PiOGUW6v2Noxtqrzavt3xzm4Y4476vYB6Lzaeu0Gne+z
-ah2yHzt9e8Wajvo8N85j31LpzTK7qzXUqzWMjhUq/dwV8ufZPnTZ39FvPHjVWvHstRUfWekLvXEd
-vabyRIywPUKlJ2R7lZW71m4/rwrSq736HWY+p3f1+rOtTr2ZvR3vEa6w7lfw4Yp0/fygGtuVdanc
-fbp/XrLj3TpiD/V/x89CdnDWe94d9eqr1ZbOvZO9Z4/sIfpXdTz0dNTA2x+GfwF8e//97ffb7cPX
-7mBAZgVG/0OW8SfTv6pzd3zO5DPN5WogeTh+ZsnPMoitZ6zp6CfiMyrzoGvvd4Guy6qN48Dz51l4
-fu5cC2/ulZhcuQY+I4bM+OPAz3GrPqz4EI298pp6dPVFV5v71fx5Jp39d3Y+dvf6s+yz+gzWB6+v
-ysadDXpvifZ717yucE9kQNd4Pnvmz63n1XWZZWZ92Zhnw67vLvkr5dkqUZ7Oz5Gxu+jI+aruKtl+
-HmF7pq4zGdX1KjViJ1e534o1vsK7kl332CuwsxYh70CvAPLO4urreCbd/cEVYrvDBzaXrF7mQff7
-tSvQ9fOPzp9JvEI8b3/x7/9f/QpoIYQQQgghhBBCCCGEEEIIIYT4BHx7tgNCCCGEEEIIIYQQQggh
-hBBCCCF60A+AhRDi6dzf/yc+D1pTIYQQ4uvC9AHqGYQQQgghhBAr6D4hbL7/SI7bYSfK+Hus58+j
-z2adiP5Rzyxv/T5tL7FRu4g/li1PPztfL56IrXkcE6vIZ883z5aHNRf0OTs2sj/rPILnXgx3FNB4
-vre347hD/3kGGxN27RD9njyjh60PkQ8ZlT3L2mX8GVnNNSTOni2v/ox07wV2LVg9ltxx/DzHn+U/
-7sGVuKH1HPeNjw8ylj2zED3IHFk/I/mR7r3s6e6ar8dq/cnz8/b2/tVPZw5T/yM5JLbI2Go8GTuM
-/qx/yHxG6zU7FuljIz3WvND4eGORWofot2xVetLhb/+8/fbs/i3qpas+RbHMzpKVOo/61Zl7iP9I
-nzHixTGKs+VbBluj2N6vkj9MP23d5TKbqP6uXIjkUHuZ3fmzqq6u/bJSN1nfRtg7mOXLSo85+pHp
-XTnjK/OKbHXmlWc3k1vtPzzZyv6a5VbvAyO7zjbLH3bOD+4Hn88MXnxW+pCKPJM/CKg8u3bW1/P4
-TH/0nPUzs78yFtkvc/6s9q8Rq3mC3A0QnR1rutJbr+6vqN9FdR7BvR0aTdpD9mn1eWQzOztWda7k
-akcMEbvz52ze2np+3HsR/XlNvr3dnVzccb7YPuR93SzjyVV8Qe9bsw+VO8N6Dbz9H//u702pcREf
-RQbh/s0uSuPLdEbfKqM/o08Vf57h/9V96PLnWesyjn0Mf8V/Fj/n+S4bx9G31h26Zp2evjPiw9rd
-sZe7Y7s7blF9XtWb6bFkOud7hVpdZde6747JTv2rMWF8Q2ztzFVvb8zPPD2ZXMWnTiq6z97P2ZpU
-/Tmjxr5y7Xuw4yyNdJ3ZD3yG9fE4a27zi46z9mFXrV7xoaKzw1akm6mLqzI759hFxUe25nXUyB33
-Qc8GM6dd+YT4sXK2rvYJO97vPAP03R8zX+Sd5hn5bOHdB+baeIW17NpTr0BXPlz5HV/Ft1dZ3yu8
-p/N8QN5Zn9njdYPm1avk0g7OrKVZvl3lfNnJs873Hdz+4PwAWAghhOgj+tcKQgghhBBCCCGEeH3m
-f3ElhBBCiGfxnRNHD/HsRX+kB/khwcoPErJ/vh/9ygFGP/LPzZFfc8La8mQi/d7cmThE/+ye1cn+
-qgwmlyr/9B+JWwaypsivt6nsqUy/N3Y1D5lf+xTJeL5lY5Ffu4L8iojo1zMgsPHJZJC1Q/V747J8
-YPaoJde1xxGQ+nPmD6c7bK3EZMdlvKteoWdTppOdYyWfM11dMUbOhZHozN2R/0g9z8bOdWXHueN9
-hpxTnn+ov944ZGymp+s8smQyOUaWzbHuu0BlTtGvU0JzAPn1Th21AsmxVXvZr6NC/Ooi2svj8x31
-ONO3Ky89eSvHOup+pb4xNTbSh6xfZHf1LGHrZGQ7qyfVGp6NXVlfxEZX/pylExkXrV1XX4XWrg6Y
-HhrVV+3dR5DzsmtfIPf8Ctn9fBWmN43kGVsVncg9xBuX3W2i+87udweeHvZ+290zRLZ2kOX5nDvs
-2dtRN7yxyN5ceXcw281sZToeWP6s7hEknl5/uXJneMYenGV27y82V62xaJ+ArEvHWVC9LzB22b1T
-3eOerfG59VmHDys9JOKD93ms6/aHf/d33o1eANzux3HfffaKl+X2vruUI0IIIQSHztCfUUyEEEK8
-OjrLhBBCCPEV0M+NxBX4/V8A34AfA99vuNysdxyL6JnlGT9ZPP2en/PGZeaS2ZufR3F4fI/qRvxE
-9K+sgaXTe87mmycb5c84lvGBzc8d8Vwde6ZvXpy9QzCLeWYb0WfJZnJoPLK8qsh4fme1Yh6frTXy
-9ewLG7esBnaeR9lYNFfn8aifqF1Lf8UG6sdDd3aOjET7d+d5zfYMq/o71j2qsUjMq/vC8yPK5+pY
-9GzNdHu62PMhsufJZrV0xQ4qX62H6JpGZ+4c666zctaN9NKZ/qy2RDmK9Nqe3khXhJXjHXkT7Z0R
-NJcyP9F5I/Gv1DIr95D64Y2fyeSROHfdQ7xn1Th2nB07xzM2VuayqhetPY/Pd8SdOcszHRY7eo5O
-WXQMe+9g/UDvWp5ti8r9MLLDzN3Tg/Z6mW1PpnrvtfqYWR7tv6s9/Tgm2mvZmerNoXKfyeaI+MyC
-1Bk2jzwbaN1je0f2PoboRPzZeacd/UPny/To6Hyr+wvRj+ZStW/P/LA+78x7yyaTM2j+MHUjGpvp
-H1mptysgtXqWZ/MZ2V9dvdas46GHvYcj/Uw159naiJKdC5F+tgfountk64Kso+cP2rP9PvYv/q3+
-BbDP2xH/eXUhhBDnoZr8dfDWWjmwD8VWiOvy9v7/2qNCCCGEQFF/L4QQQnx1vv94ofAR5DVD96uI
-Ha3Jus63Jj0CIYrzjldfTJ4jtl81T7pi6+nJYni/H8ct+S+kd/GMV6pePHblzzhH5Gtv7PjseXlu
-n1nMyLN9f7XX9qv78f7+n5Wt6Pgtx7y1fr0cYKnuzT7L/qeMvVm+4vPu84m18yo51I2VGWfEAO3B
-rrYuXfnmj1z3Yc2P1wY5p3bHJtLv9V7js+yciORXyGrBit3PUIfZ87s6FzZ/sjEVVvStrjWS8/Pz
-x2dsTn5zvkZ1oPJIj9Ulg4w9+74X3Y/nZ2ez0wf2/VdtXep3J0/bSn/DvF+rcIWcWaFao1DdrxqX
-4zj/fTHL7nfWyN45Kw6vnkvHsXevfQauepfsOkMqa3qFOsMwzvH25//2P/30L4DZX7vijUV+1RD7
-q7ZmWeZXd0T/zD2Tn0F+fQuif3zG/EoYdC6evsqYiq1xrAfyz9+jX01h2WF/zRXyHJ17dX0jvPky
-v5Ihso/sa2SvzWMsmZU9nvkQ5QYzRxbk1yyheh6gvxaiotd7hvrg6UdyDPm1Ft7YCK9uV9e04kM0
-/uHLSn1g85+xhcQM/dUvngyiJ7OL/ooa5uyI7K7II/viQaVnyIh+5Y+nnzmLUd+QX3uD7t9Kba30
-BjPz3luZ7xkylm+VWDLnOFLLx89WanuUq5EPmf7I18hupAv1DY11dEeLvkd89IjWDonVTOUOxXwW
-+ReB5ML4zIJZD3TNIl8YP5k1Q8+tbA4rPiN7HmVl7IpudN+Pn7M9UmaLqaGZ7upZ6OnJ/F+1y/TQ
-Hl3zivaLpR/tZZEcY/QgvWAE0keO/u7o41n/2V6nmkvzGG8sWxe6e/HZbrZ2UVyRs8Si0psidj0Z
-ZK2zPiCKCXsGrfToKyD5MD6rxq0yr451Z/WzfWxmEx2L9plITav2GewZ4fng2anUT4SsjnmyI2wO
-oHPJcm/8DN07yLog/iFnk2fX+xzJq8wXtM5YfqM+MDFE+orVPmG2OfuG6jJ9/sO/+fkHwEIIIcQ1
-eRxZG97iCSGEEGITn/H8/oxzEueh/IlRfIQQnw3VNSGE+Nrcj/1nwM9nzfcfD8cP5p8Je889xolY
-Bxyr/wbYnmU8e4wtTyfi/2x/ZY5M/JFYeTrRGK7AxqErJ62x7HgvtmjMGR922GL375y3KzFHbHbN
-t9sHTwbxGf36QWR/ZS069svVxno1AbHXlVdo3e46QzvqVUW+eqYfgcwKSDw7Yj4/tz5HdTN9iDXe
-sr0jDow/1T1Y6aWiNclqbERHfKL9saN3YeY1+4Tmz/wZU0929Qq7zkpk77N9KdtnduYFqsvbR6v+
-RPasPNpRGzP5HWcHGu+V2sj4VWWldlXHIvOz+mY25yvs1D3CxKzqU6Ueoudy9Fllvaz6tLoWZ95p
-M93PeMfCjGfeE62etZ7syvsgxDekLq3M16N7bNSrMO8sWLvW55EMon8en+Xh6v3K0un5dsa7DFb3
-jjNgxe6Ouw9id0UPUutQvQ+q718831idFbr74671WoHNVfTd1soZe9a7iVHPqMvLN7SuduyX6Dya
-/c3GMudyZQ3nXpQdn9FdS705/ojP7Q//5m+evTOFEEIIIYQQQgghhBBCCCGEEEI08N16WPnbIiPM
-77ZGfv/2rLPrbyt4PmQ6O/8WyYNOnxE/md9l3/X3LKLfzZ75wNro+p3tkR3278hYMp4cGxPkd+DP
-+rv/dkVFZ5c/kV/ZOOZvELC2vPHoPsr2IPp3B5A9xe5l5u/mRHpGqjmw8reH5thm8Rmfd+V8Zf+i
-Plo6PRn2b8ogdOTVyLxG43NET7U/qfxtl2pPgupha8KD1X6D7YvY/gepeyNMD4nWHKROzr5Z36M1
-Fl3jrr9ZswoS55WerSqXyfoxur8/zw0g9Wd8ln0/66zsk8jPSj4g9QK1H+mJYoP6EMV19gM501Ff
-ff8fin8IIvnh2Z3HrOx5ZA7o88jfyP8VOuaF6ETyav6s2uuwvQViY5atrLslH/WsqO8eaF/lPdu1
-FjvOT5TIt65eM7OL+tbVK1fvGMyYeRwytnJGjzJerJCvR/1M3z+P9/xE6upZ9w0Wps/O5Nmx82cP
-2HPozHixPmS+sfkZ5Uy15kR6vPyv5vYKiP/R2Acf/bwfXq9p2R11RX12dBZaYy0q+8iTt+yyZ0fF
-LpuTo58d/qP3qOo9zZOpnOms3W4/o3HVfYf6iZyzrE5PlskBL/duf/Gv//rx5SA+zuI2fH+bPrNk
-PF2Ifk9nNHZ87slZ8iNeBYvkb8PX2dhZhokP4lO0Xp4c449lI9Pp2clyKfLH8mFeCza2TBXA9L+9
-f/XNmePb7595Niy/kOdefA7nOevD/PlsF91fTP5EexzRb8khMfTsRnGLbGa+ZfLe/rPGzDJIzUT2
-MbJnK/FB1tTzwYuPt6ZMvll6I1s/ZN6O+/Et1PvQg+6xWR49U1bqAwKyl7NcRGoUcv4gtQLxE6lv
-SE1A/M8+s6jl5M/zWDl/GT2VHskjimd+Dn08m3/+PNcZ9QCZfU8+ssn0cmj/y9YHpCawOeaNRXs5
-tE9izyNLV2aHmaOnf5SxYm6v3c/5zPZabJ574yo6LRnveZRXWU/u8YjfbTqro3tDFGfb9tv78482
-Mv2eDVSe7SuY7z3/KjC9OLq2aE55zxEfjun5zz7YZw3T32frv3Kuf/TVHr8ij55PaO8f9WGRL0x9
-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
-d5fjs5X7AJMniP5RV+edquseVe0Xu862tfXy7zSV3gixj+qMelnmvDjjTo7YsmRW9T9Y6VtWQOe4
-I84P0DpTPfcr+/2s8ww9j85898T1b2/te2T0YYbRubpPR5sr5z57nq70i2h/yPjDgvizns/IuzyP
-25/9y//HyzAhhPiy3N4r613/aZcQQgghhBBCCCGEEEIIIV6I7zfgx8fjD0A8+YfM7e3j14yOWQ/i
-FyLXwfxDIOuHQyu+nDmXFZA4jM9Rnauxs2xaOTnKzXZX1jLLW2SOkX1mX8zy3n704tDBis6Kb2x8
-GD1d9Qq1b+Wkl8ORD4hvO8aeCRKfURZ5nu2XyBfkfIzGV+widO33lf34rDPu7BpS5Zk9AHJ+Pdjp
-40o92k2nD5V4Pis2K/rRsbMcU0uZsaiuB101M/IXHc+Mieyzn1sy2R0vk0X8tXRlvmV7ZP5sdW1W
-8O4kmf1VHxG7bM48I247en1Utis+Z/bZyD5hfDj73HmGD6t0+BfFgX3X9oy98yzQ+x4z1pI7jrX3
-Pp08qw5Xamkmz9whvfvt7hyI+oqd79R25RUSc3atu941dL1T8Pof6w7Q2XeOOpn3Vghn3c/PpuPe
-dRy1ngfRz+6L6jtK1IeKzVmu0hPueDfB5PRKPV+tpeyd8yyQed3+/F+M/wK4+uuLVtj1K9GuzFmx
-vQJn/AqJ6q8W8Mawv4qA/dUau3N+96/3iPR36PxMNeEzzeWVQH4lGPsr+p6VnzvO5R17f8WXZ9fD
-Xb8CDdGB5NVX6hkszvrVTyt7beevRUR/tVJXrVj5FZpXhK31D3b86tROrubPs+n61W7orwjrsOXJ
-nb22VR9mmavm5NVq2tX88djtCxuHrnO5MpbpH1jbV1rzB1f0KWLl19Weea/bZetZvyZ3hI1/V2+G
-2GL0fGZebV+LnCu8G6qMe4ytvnNnbMw6r/J+Nupz5uefjR2/PnqnDDr2rHlV+M3u7c//xb/Tr4AW
-QgiS+/04bp/5XBZCCCGEEEIIIYT45Oj9jqhwf/+JinJHiDraR/v5/vhiPuzG4N+HHxFbMgijHk/H
-bMsby9jNfEJ9QPVV/Y/ibIGs16yDnZcVn1mv5bMnv7JuXgyj2I52GR/Q9XqAzpfJt1k/4n8mw+6j
-KJ6IPOKbtUaRDQZ2L1dqHZOH1riqz0guIeuF+ITQvXaefrZWszKr9f/BvGdX4lOtn8iZy+qpUK3D
-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
-ZIf+HWeSWudGfWc9B6rjd53pMx1ez1F5Bujoy7vWRV3r3fU8G9vd/XT3fCt5osp15vndzuZOv86q
-G6O+s9iVY1X5LHfuUc44s3bQcdas2v1Ufj/H58//+d9/ufJ6z3H8+unje5Gve9/fv3093v+d6e/5
-vXHs7H3P8XrWriVznO9s7qMvs3vKV3V7sYrsjjJWfKqMvkVzVOYyG6PqscaO96PPcSMdo8woZ/kf
-+WPN0bMT7S+PKB+yc8/6463jUYfip7Lult2oLo3jxzmMfq7sTWvsaEuZi2Jrpt/yO7uXvblbdmd6
-Zvc8u5bMeF3xT1nTTA08kt0XlTzJ+n+0Fek8ynk1pxpDZQ8q8bfGzmyMfs7uWeNmdiIf1PMrUyez
-+1ol8mGUqe4FtZfI+KrGJxo73s/0jt65pORq1o63p6I5Rqj7SemFlFq9Iqecj+p4dV5VHeP18d4R
-dT+ocbOuZ/I/27tkfM7oVGr4S95aK8+WmluebUW2emZnYqvsCdV3JZYzHZ6cskZK/L34VHrZTJ5k
-/ZnJRLZnujJ1P5s/Wb+y8pla4o0/ynaeAeNY1Td1XkrvMo6dofTHM3mLbM8R+Tezn5lvJefUdZxd
-z/pU7bMt/dkeWj0v1J4mkvd8H21ne/3Mue7JqzmW2QuWLmXuip5RTvEtG5MsVp50xTyqlTMbKtnc
-U+woe3A2ZmY3yqVsXbL6+FHvkeyzg6fD02OR3V9enih7LdtfRb5546pnZcU3S091fyl5qNa3qE+z
-/FLtZnvxmT2vV8vsX29sZi95tUVZ02pMfqPj6z/+O9naAAAAAAAAAAAAAAAAAADAHSn8G8Dfv/6n
-XJ/9bI3PyGSxdHbYuerz87PjlBn7PVyPxoyvu+S7yMZkJYbvQrQW6lyisWouKfKZ2pVltbaM+2cW
-26qfu3NvVX9mXpZcNk+Odr1zKpszu+vSLB8qfmZlvHHqeGXtdtOVh6rOnXZXqfYQHbUy01PstDEb
-c8ZazPZut92s3kqtWK0dK2M651Wx3dWLVtbIO7NWOOssUO1597ttKbKV2rXzDN4xtqt27qoV3b3X
-2efvzt4xk2ueD2fVs5UxO3VG+zcbZ+vcUuub5UNkW/VP0ZmRUcZWbCnxnMln8dakg67z+gx29huK
-rS6dKzmTzYeO+pnpH3ZQ9cHKjc45nJUnK3rG13diJeer9jp64JU1UsZ2rX9WvrPvqsa5a43O4oz8
-7MgZ5YzY3W/MeX79x/+7y2pCE89fV/S78HUgAAAvnt/UEQAAAAD4LTxvAgCcA8/kAFCBXg0AXnw9
-kx//vgqHNe77ad/bwbGQnWXXmuPq3KPYVvDWqduWZac7Vt7Yrnkpes6K4Qpd+/HMfZ3NGcW3s+uS
-58fjUfNlZ7558Ylirq7L7v1i6e+2OzbP1ficSfacVGvsLLZdNb/T5y6uyuGsjh3nn+rbnc7Frni+
-6K4tXpyt69beqvhxVs3cyV193eXXXef7eNw3n662/w5E57oyLmtnh3wXO+ptRU93be+iU/9Kv6Hq
-y+jd/ayl6O7uwSr7buV9ljP3bbZevfM5sMv/3TWt673aHX6e9d7K3XLvDv7cwYeXH4/HPXzZTSXn
-d/T2d4j5Vc8sO+pPVGPVvfZOvWMHd3nfbVV/1ofnz//+X7+KV34l5GgpGv9tyFjXszJn8Jrvc7j2
-nLxW9c3GKnHNx+T7V73Px/Mxn8vDud4t4/mfyausP5FP4/2V9VV9U3Ts3iPKej0mMqNdK4azsbsZ
-K6Hl0+z+qCfKATX+1TxUbK3Woplfqs6VeqLYquanNTa7Xp7OaE3VuVgnd9ZP63U01rOp6FT8X1kL
-i44au2K30/b3X/73mcr/0Z8X6npl6oZXVy351fh454q15zLyGZmOMRVGO9mfVb3jtcxZGfWZ6jnR
-0WutrOULqz9fPVur+RnZ6M7tjJ7suTOOG+WjOnNVr2nlajUuKz5XavFMLnoWPetsXekXZ+zKdc+H
-6hpkfdn9rF7Zw+pZrLI7Vpm+trJnqzo9vd31d9RRfQZTdGbGjLY6+shR/2ijQ2f2zBvHZHxbiYn3
-PoLFai3I+LAy95Xn4QyVPZKpJ8ocj2PU90GyYy37Uf4o52Z2rDJG3RdX9ZAzHyx7XetS0bvy3kHU
-13c9G1TeE8nYtcZ2nkcK2dqV7et21snRzjxnfvvegTX2xUq/avmTsTe7X803j461mO/NwwfA9vHw
-MK57j4vH+zMZpWRYdhV/LKIypM4lg/Jo4fmoPOJWWwFPT+TPUY/y1oblm4VX7jPj1XXMbG/Vt2pu
-W6i5obRB6hFnXXtdN+f7643ns15bPD8tquuu5oMin9kX8lwPiqJaqtTVo+1srbBQaoXngzKXmf4z
-6oyylxXfQn3DhKvtqtqylzn46dWxzH709oulJ6onaj5HOTazPdO3ow9ZqclZ32ZyXb1W1Z+ZziMr
-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
-MmMyzyRR/3FmHzfi+baz11R7DzWGkY2O/MyMGccpY6O97+nwYqW8PurP9PHH8V5sq88zynmwe9+o
-z2aW/Hhvdew4PtPHR3I7qeZ3pf5bepQ9mJWx+uNqbq+w8kxY7ZGqMpG80od4elbq9o5ap+hfobuH
-8WSy9Vx5tszGvHqme/Xc6s861svrB6rno2JvpX+r1BNlrR8TmdXalT1Tor5oNmamr6tPzpzv2R7P
-8vMxyFv2JzLPr7/702xJAQAAAAAAAAAAAAAAAADgzXC+Anr2kbJC9GtVM/mVz6Cz9nYT/UqmN06N
-16g/K+PZqvrv+XKHdelG+VWm2ZjHoy+2nVg5U60Du+ncU+9AV53cHY9PivmdOfucvUJPZy511Lds
-be/kLP07bag+jL8uGf2qo6Krm7ueiyso8T/LdvZ+xU7n/LJ1pMvunWy9C1aeP4brWT3R9eje2VRr
-6c45KL8Sf2dWzixV36rOLh/uQneevMv+Hcn0cGf0R3eMkccd31O4oi/f9R7W1XvnjPXteH92Vf5T
-6Y7bXT57+MT1Vd8TV3U9FnXM9HXq9GxlbFjy73iePh736F8Vruqnr33f7fn1d//4PbUd/Qm1JxOh
-/Fnzrj8rV3QqfwK+8mfiis4oDqoeRbZDZ3ZdLP1HrPdl1Pgo7+9EuWH5WZmrsncycfZy+2gnm0tR
-nC1/PD+P/li2xmujDyOZtV6JpyXvXc/mSbWuru67SM/KvLzzbSVnslh9aGZe6r5byYGIrrpUOUNf
-rNbeDKt1zNJ11JnxY9dZ36VnZw5UqPoWjVX2qmKr4yyP6pUql/Ure6YqZOeg1PYde+dI5xpa9xUZ
-NTe9cZ21QLWV7ZmrNTOrd2UP74htN6v7Qpn3iu3sM4B1f+Xc9WyNuiq942qd9VBi0lmzdvRbGf2r
-+z3yaUd9r2DtC6VfOWLt25Wz+8xz1/NDtWudQ5lz9yVjxbi7Jz67b1au77Af5ZL6DKzae+lX9kqX
-XYXMexaK/FGmuxeKOLMmXFV/FDJxrvTHO864K9bOs7fyXkyVai/2Gqs8/0S2V9Zod40a62e2X62+
-H7F6bnbsl5XcUGwpemdn1zhOjZViM6pFx3tGHXt+/e0/Wm4DAAAAAAAAAAAAAAAAAMAb8fV4/JIQ
-/+nxV/nj60/jp8m1Xw7XfxlkZ3FQ4rMisxJ/1e6Lip1ZrBQfuuKmkM1nLybRfK+kO2+z+s+uFdXc
-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
-ROe/5UMG5Rz1zrxMXs70RPmVOb89Pdnr2fPF86t7j2bO06qNl57uOav9R+RX5GfHeV/p3zJ1Pdtr
-7nyGyfpm+eDJWWOUOtcxl85nKiUmGZ89+aqtlR5GfU6Lnp0i2ypKnnt5W52j5092j1SecyxdM5ns
-s19H/+3Fs/PcU/V37ruZzEoMV31TcmblOaqj/qycBat97EpMsj1Admy1Hx3vKfKzcR5n7eVK/r/o
-qiGWDWW9hDP6+fXHv93kKQAAAAAAAAAAAAAAAAAAnAlfAQ0AAAAAAAAAAAAAAAAA8CF8/fXl9+Px
-eE5eH7Guz+Qev8oe/8DYGhvJjHYj/d5cLFuRntHubNx47yiT9T+DF+dMrEb58dqox3o96o98HmNm
-6Z/54+lU8tDywfLneM1a69GnmfxsDqOfFkpsj3YUuzPGfRTZGsceZbLzUl7PfFBqlzqvTB6qMc/k
-zPGeWnOiPajuo5l/3jpa8azGXNFvyWfXSPHNIpsn1tgsnfU5s6fU887yOap7Si062lDOkZk9j2z9
-sXRneg1P51FOXQslnqPemS3Pl9EfS4+nayY7kqm9li1F/1EuOt+jPWP5ovZd3vpl1m72c7duT049
-y5T6q8xtplc5v0Yboy9RzRjlR/8yZ7TnV7bWZXSO1zK96+hTpt87yqu5oa79zBelTiprNMYn44v3
-s3I2W7aUupSpj5n9OLuWWYPxfrQ23t7J5sxRd6ZPVXu+bH3r6kePdNQOZX1X6sDolxcT1bbaX1q+
-VdY3c1Zm83m1b/D88fzIrrXae87GWmTWT6mNqh9Kfc7s8aytivyRzP60+iTvuurjSyY61yy9lp6H
-cF3xz+t7ZnrUeFs9aPa87u4HlD5PXd/qHNU8H+1lZUdb2T2b9dOLSVZ/pibP7o/61Vo982Wm17Od
-3afqGq30VB05oOyXx+T+S6Z6Zin7y7qeHTsbnyE7VunZlDhn8lyZuxe3ak1Qrkd+jWNz/djz649/
-k+n+AQAAAAAAAAAAAAAAAADgpvAV0AAAAAAAAAAAAAAAAAAAH4LxFdCvn18oX4kxY0U++5UYkd5I
-Nvpz/FX9lq3oz81X554h+xUy2fU96rG+HmNXzBUfqqhfFZP5M33lq2gq+6A6T3VsV2yVr7TJfHXK
-qDv71T6ZuShf/6N8ZU6F7NdjKF/9kqkJ1v0jq7HNfG1MFyv6V+rDqs4Mu+ZYJTtH5at9lH0R+fTS
-k+krus6aUXdmjis6R73KuVb1rTKX7Fqs6rLGZMZ1n4+jHxl/OvvK0beuvI/6p+r+tXR655R6ds9i
-sVpnVJ1eLqyut9LLZnR7OeLZUuUr11fY/TyzcsYfx2Vi2+njjnOx6wxQ+9oVHRWdo7xXD2a6duS5
-QrVud5yPlt2oDq7kUia3vXWMbHnPmRYrZ56lrytuZ+HFoPs5LbI3u96B9yyk9A3Rmio9xxnrm83P
-Dp1ZuzuejS3Ofg456tg9x659twP1eaDLzqj7qvhbZ9BRrtILVevSeD3be3TthRne+yOZM3S1plXr
-W6Wm7d6Daq/+ut8VW0WP55dqd2VfW3n4+IvO59cf/6cnBQAAAAAAAAAAAAAAAAAAbwJfAQ0AAAAA
-AAAAAAAAAAAA8CHwATAAAAAAAAAAAAAAAAAAwIfw5X9PNAAAAAAAAAAAAAAAAAAAvAv8BTAAAAAA
-AAAAAAAAAAAAwIfAB8AAAAAAAAAAAAAAAAAAAB/C119ffj8ej+fjtz+/mF1/PuKvjz7KjDqexutI
-T4VoXooPqs6ZjDIv67Xiw2psVmJiyXeNtfTsuL47nl06u+UrZNbL8+c5uWaN9WqI5Ztlc0d8VuzO
-YnjUVfFZqXtZfV1xU+aYrSHdMl6Nr54Xam5k9O9YF2//dtQ0RY/aY7xYyYGxDq30P1EMV/aylYdH
-OnLB2w9jPY56GLX+e3pHmYjq2TDza8aKbzNfMjVqtF+Nc4Zdez7aC9m6nLHfNaeZ/qPezv1etT/T
-1dWberZWn3Eqto/X1LFdPigy1ZxWz7Bo3a2xURw9fdU9GdmK9CnPHo9ARqX7Wa5yFmVzI5sTK8/t
-4/2ZTPWcq/iWobPX9/TvOGtm/nbl2Mp5tlITVp4JI53K9VV29gFqrkbxz67jjvcLVvvSjK7VXFKe
-ja1x1Tgr53KWHXtBycnZvdGu6ltn3ow6vXPK2l9HMvlgnZWjnqgOVOx2ngmeTmu+43jLh469Y8lY
-eo6s6ozI9N6qrYp811pk5bNrlznjLP3e9ayfkf0VH5T9ovRL87HPrz/+cUf3AwAAAAAAAAAAAAAA
-AAAAJ/PT4/ux5xfgXtxZ//djPv54rUP/eK1LPhq7SlXnt/G6onN3/kS2rBxRxu4isrXix+ocLN+i
-616cu+arrGVmrTvXu0Pfmb/K866/NnTmPn0HzohFJube2ZEZe7S7Y44rfmZsRP3Azjkq3KXn6LS9
-o66P+bJyZqnnFKDesAAADoRJREFUV7ZvuXNtrMTwzvOJ6MiZDrlqv7Qa+86183RV7OzOvTvk9kpd
-iJ6jsmtx1T7eYbcrF3flbRdX9yUjZz2vddeaO3HVs3GWHWudsVs5L1fsVvV3sWpPidmK7ozMnffn
-yvOwdR6reqp5tSOenX1ht84urvLtLvV7p867rbXCnWtsFzvmuFIzVT0dz0dZKn5OeH79zF8AAwAA
-AAAAAAAAAAAAAAB8Aj9d7QAAAAAAAAAAAAAAAAAAAPTAB8AAAAAAAAAAAAAAAAAAAB8CHwADAAAA
-AAAAAAAAAAAAAHwIfAAMAAAAAAAAAAAAAAAAAPAh8AEwAAAAAAAAAAAAAAAAAMCHwAfAAAAAAAAA
-AAAAAAAAAAAfwtfj8f3ry+fh8vfh5/H14yA//jzKj8xsjXpHfapOa+woa83LGjOz48mqcqpdVXdk
-d7RlyR/XKHqtYNlUZKw5Kus7ykfzjfSOerw4WD5Yflavz3y07L+uZ/JTsTfGRJFXdVflrZqQyQel
-Hio+WfGpzDFbY6N96uVktrZn/Bz9qua8J5+pbyPWeTeztfJ6JFPDs7FVx2ZyVImPIn+8V6lJmb1c
-QaknythqP7BSc46s1rTRjqffkvfyQl278d7KXCJbnWNm42dYc1F6M8tGV/8w+qGQXd/RroVXQ7z8
-V22r/Uz22WC1DziinFUz3dU5Vte8ul+UPmRVtxpDz4dI9+y+FZtKvVR86KhZnbpe45X6oP4c6Zn5
-EN1X+ixLztOjnnHVvaf4FtmKfIzk1Dqj6NmRe971as6pdqKx2TM70xPsqPveM8/Mz1Gv12vM5Gfj
-LJmjXFcfPOqsPodUns0qPr58iPqQ4z3lmVAZ23VmH/HWPXpGqcx3Zsfzqdpfejlg+ZHtp7PPTl3P
-GFFNUPxX1lnx5zhefZZQ9qZVP6OcXNG58kwxsz2Oz9ZzteZb9rP5GaHoVOtVtvdTYjLTkz0LlPzy
-/InIxr9S8zN1Ro1PVadyFsz0evLZOqAS2ZrvwefXzz97FRQAAAAAAAAAAAAAAAAAAN4EvgIaAAAA
-AAAAAAAAAAAAAOBD4ANgAAAAAAAAAAAAAAAAAIAPgQ+AAQAAAAAAAAAAAAAAAAA+hK87/wPAs3+q
-elVf9M+VZ33w/knnKqrOlfhYYztirvi/IrMj5mfqX7W7c+0qds/S7/1T9tY/a5/d7x1U8kf5p+Z3
-+rBb/g5jd7Cy1qvziOpAh43IflSfO/Nqd9xmMh32qj4oOrpjsXN/Zc+tjv7sTHb0Y6vjs3qVfLDO
-2oydjA+e/h3PCEcie2qPke1tFB+/h5+VsZG811N5c5/prOzfqP5c3YOe6YvCmT7ssHXms8wsX6t1
-ccWHrJ7oOaeL7jnOdFVrVVePu2vdu/Se+Yzabd9aE2WtuvrO1Wf+O/Sc73iuVH2O+q07Unlf8syz
-s0t3tj7veI5T3tf7FHa/l3RGjVVr/ez+7jOx+z0X7/3oil5vrLJ2u/bFSo6dNVaRX4nhynuaWVsz
-uRfd6/v8+vq5Ref3r14+P7EyA5zEnffRnX3byffzx5zz4/HjzftH4/vQXbDW78un1Kix7qjz6qxX
-V9S+o8071947+3YlxKXGzrixJuezO+bvtKZn+XqHmNzBhzP8OLNfzs7Fkr/L2sw407c7x2EnK88G
-d36uuMq3rF1PXsnJu+btnXMD4CqO++KMPXK3+nA3f67mznWy7QNgAAAAAAAAAAAAAAAAAAC4Fv4N
-YAAAAAAAAAAAAAAAAACAD4EPgAEAAAAAAAAAAAAAAAAAPgQ+AAYAAAAAAAAAAAAAAAAA+BCGD4C/
-f/1v5Hjdkpnx/ZjLfzv3jjKKrm6+hdeKvCWT8UOJ0yjvXa+uYxfZvDm+zsSiEysPq7pm+hS7WZmM
-LRUlx8ZrGXnFfodvis5svmXr1a4cjmpup53IB0u+UgfGazvjF/nTWZMVf3avaYee1f2ryJxV01Z0
-ZsfuyqWZXm8PVmt4VqfKrjM/8lkd09FTrc6tMpdxXOZ8q9SsLEqed/m/a2wlVsfXs1zbdd6pZOvJ
-bjw/KvW0OpfVPK/mykyPN27ldbTf1L1QPcMsuvZgFivm3pqurnO3/Dh25/7dmQMr/lhnesUvRWcm
-L9RzKXN9Jqf4u1pbFN9WzsvxdVZnVd6yW9ERXVfrYPWcVtc9kw/q2KpOb16Veuv5trM+zmzOXqtj
-I5+VuI06qmfSSvyyuZTN4ZUapdZny5bif1WP50+HzCpnnvWW/cjujpp8fO2tZ2R3lei88OyqPUFm
-fVfWfaVGZfUr1++A7vPz6+vr+3j7LzeM4Q9DZjb2e3htjT3qmF33UHzO6uzy54WiQ4lPZEe1ZY0f
-x34L12cyVtzGfIjyx/NhhrJeqsyRag5Y4zwfrNhG8Tle78r5yv5VfZzptGSUeWXypCKvjI2uj/ei
-2jXqiGLn6VDmm/EnO87KJaWGqPmciYk6VzVHZ3oyZ5MXk2pNsGSUOuzlWjY3qrXI86daB1bHPiYy
-2TNlJR4rVOqQcr5E/cAoE/mXlbHyM5vnqyhxiMZGY7riGMlX+rHxXiXns/qzebZj3XfqVfWfNS/1
-GTHT53k952qvXo2L1/vO7HlxOsp292GZ/aKi1vBKv5WpG5lnDM8fpb+09CkykS/Vnj9Dpl/sOpOU
-dVvNT8//7M8d/mTpqtuZZwnVr0w/pPbN1f5PrfXKs0r1/Kg8i+7Yz5neyzv/lPqs9PcZVp/3LD2r
-tWLUafmp+p85+6yxyh5R83mldq3s2Ucgo9harS0ZW8frqq5MXnnyO+Yy3q/azdQKNWbKM0NHrCr5
-U+mxR/mVGqLWN8X/0S/VB4XVPb6zpp1dDz3ZUV45l3fVzMi33/j1h8MHwAAAAAAAAAAAAAAAAAAA
-8L7wbwADAAAAAAAAAAAAAAAAAHwIfAAMAAAAAAAAAAAAAAAAAPAh8AEwAAAAAAAAAAAAAAAAAMCH
-wAfAAAAAAAAAAAAAAAAAAAAfAh8AAwAAAAAAAAAAAAAAAAB8CHwADAAAAAAAAAAAAAAAAADwIfAB
-MAAAAAAAAAAAAAAAAADAh8AHwAAAAAAAAAAAAAAAAAAAHwIfAAMAAAAAAAAAAAAAAAAAfAh8AAwA
-AAAAAAAAAAAAAAAA8CHwATAAAAAAAAAAAAAAAAAAwIfAB8AAAAAAAAAAAAAAAAAAAB8CHwADAAAA
-AAAAAAAAAAAAAHwIfAAMAAAAAAAAAAAAAAAAAPAh8AEwAAAAAAAAAAAAAAAAAMCHwAfAAAAAAAAA
-AAAAAAAAAAAfwl8/AP4+XFVev34er3kc5bNjFd2K3TOJ7K74rIxdWa8r4nW0XbWfiZslp9iuyHxP
-/ns4rzO2sqzozORQJLtSQyJ/snPslL+q5ijs9m2ldnXbza7RbH/O5LNnmbX3O1DO6F3nRWY+q/s0
-8nM1plUdK+u6qwdYke+KpWp353l/FqMf0c9VvatyK7ZX+skVu1fq8XTcIfd2zLGjJ1P0ZGK7Ul+j
-WlSRGeVWY9YVc2XcqOMMu+PYTM5U82uVFbuV9c3MZ6VnU4nyY2VOZ+eepaNrXXbkrbJfsmTn0lVn
-1DGVM0ONZea6yu4cVuKxe2zV56t7oxmZM+iqvPp+1GO4ch7s2iOjL178V+NW9cnyp8uuup4d65XV
-o5Jdr4y8dV7smuPV9cnap7PeZMzPHWdWpdbtrvNjHYx6rI78VP1S9Fsy1ZqzId7PP/zh647HNHwK
-z8c9G8G78vz1/ysxWxkLsBPqAACswhkHAABXwRkEAHeE2gQAAAABX1c7AB8OjWiOs38DDuAMyE0A
-WIU6AgAAV8EZBAB3hNoEAAAAAcMHwK/u4Tm5pvKMRX6HYmPm0/hnZcdff7NeK3Y6uqjR35k/I8pc
-LFuzmHg+RGNVH2Zz8WRW8ikz1ovJTI8SK0//zEdFJvJDRZ2X5ZsSqyh/LNvR/YzOqh5lzyk21L0T
-jR2vW/pnfqprd8TKjWitRx0dPls+HMerNSebt0q9imx5VM8atUZFeq069jCuZ/O583xcObMeg5w6
-1vLhOH5Hz6DW0sfkuiUfjZn5YJGNYbWmzfzwavR4r1Jv1VirOpX6Y9lX1surod44S4/aD2fyL/tz
-pMeyOxunxDObtzOZmZ/qmio6LLvqPs70aZaODn9mOo+oNU71S5XLngcPRyZbmyw7yr7xcsjT4cmt
-rKW6pz39ar2Y6Vmpe7Pr6r3Ix5GOuER2q/t89cxYHavGUp1f5Ge1ls6uddXBF5k64Y335JU4V2rd
-KGM9P4wy2T61+oyRsVMdf9ZcIr2e/fEcUc5gtT9R7Y46u3syT1bp6S39RzvZOCs+Zp49lH29I79G
-H7Ixf6E8e6g1KnveKb1mlP/e3Ffydsf6Zc+p2djj+MpzRaTfiq2VP0cqdWOUtXRZcpFsJhZKXcrK
-jNdfWHvnMchYOpWx1Xqu+h/JW+NX8zOTq6OOrO1svfLu53n+4Q9/2H16AAAAAAAAAAAAAAAAAADA
-Cfx0tQMAAAAAAAAAAAAAAAAAANADHwADAAAAAAAAAAAAAAAAAHwIfAAMAAAAAAAAAAAAAAAAAPAh
-8AEwAAAAAAAAAAAAAAAAAMCHwAfAAAAAAAAAAAAAAAAAAAAfAh8AAwAAAAAAAAAAAAAAAAB8CHwA
-DAAAAAAAAAAAAAAAAADwIfABMAAAAAAAAAAAAAAAAADAh8AHwAAAAAAAAAAAAAAAAAAAHwIfAAMA
-AAAAAAAAAAAAAAAAfAh8AAwAAAAAAAAAAAAAAAAA8CHwATAAAAAAAAAAAAAAAAAAwIfAB8AAAAAA
-AAAAAAAAAAAAAB8CHwADAAAAAAAAAAAAAAAAAHwIfAAMAAAAAAAAAAAAAAAAAPAh8AEwAAAAAAAA
-AAAAAAAAAMCHwAfAAAAAAAAAAAAAAAAAAAAfAh8AAwAAAAAAAAAAAAAAAAB8CHwADAAAAAAAAAAA
-AAAAAADwIfABMAAAAAAAAAAAAAAAAADAh/D/ASSxzb6jN/+CAAAAAElFTkSuQmCC
-"
- x="0"
- y="0"
- width="1920"
- height="480"
- id="image10" />
-</svg>
diff --git a/app/images/images.qrc b/app/images/images.qrc
deleted file mode 100644
index b1bee21..0000000
--- a/app/images/images.qrc
+++ /dev/null
@@ -1,39 +0,0 @@
-<RCC>
- <qresource prefix="/images">
- <file>meters/speed_3.svg</file>
- <file>meters/speed_7.svg</file>
- <file>meters/speed_8.svg</file>
- <file>meters/speed_9.svg</file>
- <file>meters/tacho_hand.svg</file>
- <file>meters/tacho_shift_P.svg</file>
- <file>meters/tacho_shift_R.svg</file>
- <file>meters/speed_center.svg</file>
- <file>meters/tacho_shift_N.svg</file>
- <file>meters/tacho_center.svg</file>
- <file>meters/tacho_scale.svg</file>
- <file>meters/speed_5.svg</file>
- <file>meters/speed_4.svg</file>
- <file>meters/speed_6.svg</file>
- <file>meters/speed_2.svg</file>
- <file>meters/tacho_shift_D.svg</file>
- <file>meters/speed_0.svg</file>
- <file>meters/speed_limit_none.svg</file>
- <file>meters/tacho_frame.svg</file>
- <file>meters/speed_1.svg</file>
- <file>meters/speed_kmh.svg</file>
- <file>homescreen/homebg_bottom.svg</file>
- <file>camera/camera_bg.svg</file>
- <file>camera/camerainfo_bg.svg</file>
- <file>mid/mid_S_normal.svg</file>
- <file>mid/recirc_inter.svg</file>
- <file>mid/recirc_outer.svg</file>
- <file>meters/tacho_shift_B.svg</file>
- <file>meters/tacho_shift_1.svg</file>
- <file>meters/tacho_shift_2.svg</file>
- <file>meters/tacho_shift_3.svg</file>
- <file>meters/tacho_shift_4.svg</file>
- <file>meters/tacho_shift_5.svg</file>
- <file>meters/tacho_shift_6.svg</file>
- <file>mid/mid_other.svg</file>
- </qresource>
-</RCC>
diff --git a/app/images/meters/speed_0.svg b/app/images/meters/speed_0.svg
deleted file mode 100644
index f3fb4ad..0000000
--- a/app/images/meters/speed_0.svg
+++ /dev/null
@@ -1,102 +0,0 @@
-<?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:xlink="http://www.w3.org/1999/xlink"
- version="1.1"
- width="85"
- height="118"
- id="svg2">
- <metadata
- id="metadata8">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <defs
- id="defs6" />
- <image
- xlink:href="data:image/png;base64,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
-"
- x="0"
- y="0"
- width="85"
- height="118"
- id="image10" />
-</svg>
diff --git a/app/images/meters/speed_1.svg b/app/images/meters/speed_1.svg
deleted file mode 100644
index 05d48b4..0000000
--- a/app/images/meters/speed_1.svg
+++ /dev/null
@@ -1,62 +0,0 @@
-<?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:xlink="http://www.w3.org/1999/xlink"
- version="1.1"
- width="85"
- height="118"
- id="svg2">
- <metadata
- id="metadata8">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <defs
- id="defs6" />
- <image
- xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFUAAAB2CAYAAAC5zd/CAAAABHNCSVQICAgIfAhkiAAABZZJREFU
-eJzt3U1II2ccx/HfvCRqRYUKVSGXqvhKTyuFWurFkq6XZQ9SSot7661QpHjoSagILhG6SukKe1io
-eChowXYh20M99JXQg/SQerApRJSItmpc3808Tw8zY2ZHrXnx7yTZ/xeG7CaTZPbDMy9JFh5FSgnu
-elO93oBSTM/2CYqiUGxHxm/vunUmnbde7oFZo3qYYi2qtThhJQBhLfbfPatYUG1QDeY2a9aiwAQ0
-AKSsW8N6jmew14pKtcsp5jFHA+Cbn59vDgaDD6WUivWYVBRFJpPJmbq6usdII3tWwY9UC1SFua3+
-3t7e++Xl5d3u9TRN+wUmvKegQIGf/R2gGgBfNBq9W1lZefuidQ3DuOhY60kFi2qBnu32g4ODr7S1
-tU1ctr4Qwl4f8Bi2YFHhAAVQNjo6+pWqqtUeb1NGFSSq+ziaSCQ+raioeMPjzcq4gkN1nOl1AGWx
-WOxefX39Jx5vVlYVFKobNBwO32psbHzg8WZlXcFcUimKYp+9bdCuYDD4jceblVOeozrO8irMk5Lf
-Bi2WE5M7T1Hdl00A/NFo9G5bW9tEsYICHqEq6a+67N1dB1C2vLx8r7m5+XMvtuk6u/ETlWN06rBG
-59DQUP3Ozs7Dq0ANw3i2tbX1w01sZz7dGKpidvaRE4AfQHk4HH59ZGTk25qamnf/7/lCiN2ZmZn3
-k8nknzexvXklpcxqyfa1kD4J6TAhXwJQPTQ01JRIJMZlBhmGkZydnX0HQCAejz+4aJ1EIjEOoNp6
-DzXbf9d1LiTHVMcx0/mlsn396YtGo3daWlpGdF0PXPVaJycn0YWFhY/7+/v/AKBqmiaueo7XXefu
-r7h2cXtk+gGUA6iIRCJvHxwcPOno6HicCej+/v7T4eHhO319fb8DOAGQUlW14H+pzGekOkej+6cO
-G1YDoMdisQ8CgcCHfr+/M5MXFkLsJhKJ8UAg8AVMTMN+fUVRShbVjai5byORSE9ra+t7VVVVt7O5
-5jw8PPxtbm7uo4GBgRis0Qnz23wNHv/2lGn5oNonHx8AfXp6+tXu7u63amtru7OFBIBUKrW6srIy
-3tTUNA0T8xTmCLWPoS8Eqra4uHirvb39vs/ney3XT0BCiN2NjY1HExMTX46Njf2DNKYBQEgppXWc
-LgpQIDfUs13f5/O9XFZW9mYub5xKpVbX19cfTU5OzoRCoXOYAKQs0v8+k8+JSj09Pc366mF/f/9p
-PB7/urOz8zuYkM6flosa0y4fVJnp5c3e3t73Gxsb4ampqSehUOhfpH+nFyghTLtcUSUA6ff7z12I
-CyF2j4+Po8lk8te1tbWfu7q6fkJ6JNqAzqVkMO1yQZXWYmxubv7d0NAwdnR0tLe6uhpdWlpaGRgY
-iONivDNE6xalhmmXz0g1enp6/gLwGZ7/ZOaEk64/lyyks3yOqcJ1a2dDAiW4a2dSPiMVOA/6QozE
-q8r3W6rnANnTrKB+oi6VGJUgRiWIUQliVIIYlSBGJYhRCWJUghiVIEYliFEJYlSCGJUgRiWIUQli
-VIIYlSBGJYhRCWJUghiVIEYliFEJYlSCGJUgRiWIUQliVIIYlSBGJYhRCWJUghiVIEYliFEJYlSC
-GJUgRiWIUQliVIIYlSBGJYhRCWJUghiVIEYliFEJYlSCGJUgRiWIUQliVIIYlSBGJYhRCWJUghiV
-IEYliFEJYlSCGJUgRiWIUQliVIIYlSBGJYhRCWJUghiVIEYliFEJYlSCGJUgRiWoWFDPZg3Sdf3C
-GX6t+6VrfU8qFlTAmgPrsmmTrfsNFMCslSRzURMlABjb29s/AoBhGKoQQlFVVWqaJqz7nfOsepaS
-7XRH6bm7bzz3dMya47Fzcwh6OY1TMY1U57R2AuZslhc9xrt/FtlgCi7fxT0HBXLY/bmrK6azf9H0
-HygBjW9vkUR9AAAAAElFTkSuQmCC
-"
- x="0"
- y="0"
- width="85"
- height="118"
- id="image10" />
-</svg>
diff --git a/app/images/meters/speed_2.svg b/app/images/meters/speed_2.svg
deleted file mode 100644
index dd97941..0000000
--- a/app/images/meters/speed_2.svg
+++ /dev/null
@@ -1,94 +0,0 @@
-<?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:xlink="http://www.w3.org/1999/xlink"
- version="1.1"
- width="85"
- height="118"
- id="svg2">
- <metadata
- id="metadata8">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <defs
- id="defs6" />
- <image
- xlink:href="data:image/png;base64,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
-AABJRU5ErkJggg==
-"
- x="0"
- y="0"
- width="85"
- height="118"
- id="image10" />
-</svg>
diff --git a/app/images/meters/speed_3.svg b/app/images/meters/speed_3.svg
deleted file mode 100644
index 67a987c..0000000
--- a/app/images/meters/speed_3.svg
+++ /dev/null
@@ -1,138 +0,0 @@
-<?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:xlink="http://www.w3.org/1999/xlink"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- id="svg3157"
- version="1.1"
- inkscape:version="0.48.4 r9939"
- width="85"
- height="118"
- sodipodi:docname="speed_3.png">
- <metadata
- id="metadata3163">
- <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></dc:title>
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <defs
- id="defs3161" />
- <sodipodi:namedview
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1"
- objecttolerance="10"
- gridtolerance="10"
- guidetolerance="10"
- inkscape:pageopacity="0"
- inkscape:pageshadow="2"
- inkscape:window-width="1711"
- inkscape:window-height="987"
- id="namedview3159"
- showgrid="false"
- inkscape:zoom="7.1186441"
- inkscape:cx="42.5"
- inkscape:cy="59"
- inkscape:window-x="65"
- inkscape:window-y="24"
- inkscape:window-maximized="1"
- inkscape:current-layer="svg3157" />
- <image
- width="85"
- height="118"
- xlink:href="data:image/png;base64,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
-"
- id="image3165"
- x="0"
- y="0" />
-</svg>
diff --git a/app/images/meters/speed_4.svg b/app/images/meters/speed_4.svg
deleted file mode 100644
index c9b2364..0000000
--- a/app/images/meters/speed_4.svg
+++ /dev/null
@@ -1,78 +0,0 @@
-<?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:xlink="http://www.w3.org/1999/xlink"
- version="1.1"
- width="85"
- height="118"
- id="svg2">
- <metadata
- id="metadata8">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <defs
- id="defs6" />
- <image
- xlink:href="data:image/png;base64,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
-"
- x="0"
- y="0"
- width="85"
- height="118"
- id="image10" />
-</svg>
diff --git a/app/images/meters/speed_5.svg b/app/images/meters/speed_5.svg
deleted file mode 100644
index 2768361..0000000
--- a/app/images/meters/speed_5.svg
+++ /dev/null
@@ -1,104 +0,0 @@
-<?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:xlink="http://www.w3.org/1999/xlink"
- version="1.1"
- width="85"
- height="118"
- id="svg2">
- <metadata
- id="metadata8">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <defs
- id="defs6" />
- <image
- xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFUAAAB2CAYAAAC5zd/CAAAABHNCSVQICAgIfAhkiAAADwNJREFU
-eJztnV1oG1cWx/8zkqyMLFuyHNM0NLT5aAnETVnHkDbZQts87MJuoelLyEMg+5J9WGhqqNm8NC8L
-XSh5XShpAgI/eNP3rWLWyy7bNMIgypKVNhRXm2zlorSJYtlS9GFpdPdB946uRndGM9LYsiwfuCiR
-rmfu/enMOWfu3HMkEUKwK86K3OsB7ERxA4AkSU4cS38QRw7aYyEG/27upLva3Q6dXKJN5v69U4QA
-qNFX1kzFCagMpkyPx/69E8ASACrXGFxTcRKqJ51OX3S73S/VajWpVqv1PVS3211zuVy11dXVfx4+
-fPhvqAOV0AasU1BdADzPPffcJ5IkBRw45naUf6CuqbV2Hbv1/potnZ+fP7RTgaqqykyaJXEipJIA
-yMePH3/NgWNtZ7HsgJ3QVBmAKxQKTXZ5rG0rkiTxEUBbccxRBQKBU6IPS6XS/VqttsYNrm9EkiQi
-SRJRVfUh6t7f0vglQkg3wb8LwBAAn6qq/5VleVQwsAMANtAISfpFWEyqAqiiEVa1xKpOBv+ak5qb
-m3tRBLRcLv8HdaAlOrB+ggo0ADKvvyXBvwRAnpqaOi76MJfL3QVQ4Vq/QWVCdK+m0q2mygBkIye1
-vr4eB3fpkG2+JObQGogz3t/IST148OAeLAbMO0m6cVSmTqpWq627XK5DAIoAyoQQtfvhbq50qqn6
-C7BTTbXipBJoNvADI91c/qZOam1t7S4GECjQnaaaOqmnT5/GsauptsXUSd24ceMOBhAo0LmjMnVS
-1Wp1xePxvIa6k9roBycF9NZRtXVSpVKJOSlLdyA7TbqyqUZOKpvNMic1kJd/p5pq6qR+/PFHFvQP
-HFCgM5vqAuABoBQKhb8oivJGy0ElaQJAAXV7WnVmqJsvvQ7+ZQCyCOjGxkYCNp487kSxC5U5KWlh
-YUH4+GR9fT2KAXZSQGeaKgOQjxw58qroQ7oytQvVhmjhVDAYPCbqMKgrU7zYdVSmTqofV6Z46aWj
-MnRSg7wyxYsdqG2d1CCvTPFiV1NNndQgr0zx0ommGjqpQV6Z4sWOozJ1Uv26MsVLrxyVoZMa9JUp
-Xqw+om7rpJxcmZIsqMx2ftxt57m/qZPqZGWKg8e/6t8TCaF/qt/kQLYDbLuaauikpqenNSdlNjEd
-SD5HgP+3EdwWiNDtydfv0OsFZNtQFUVpWUNttzIlAGnaYrHYzwFAVVXJ7/cH9u7de6xQKKR++umn
-lMvlIgCwvLz8v/Pnz3+P5r1OLU2SpC0HbNX7uwB4ASiEkCf6D588eXJjYmLiI9Q3olUIITWgCSYP
-zcW3RCLxbigUmgwEAqe8Xu8x0eMZM6lWqyvlcjmey+USP/zww53p6emv0Jr8wH/hhleSU96/9Q3B
-uVDX6OGFhYV3iECSyeRlACOoPwyU6DG1XAAAewAMAwhcuXLlUDKZvJzP5yOiYzkh+Xw+kkwmL8/O
-zh4GEATgB6DQ8blATQ0hBHzrVFqOYxHqEICRZDJ5WTSJxcXFtyk0D5rTf7z0/eDc3NxUNpu9parq
-2mbBFEk2m70Vi8XeAzBGv3iFjtNF56bB3UqoMoUTyGQy1/WDVlV1DcA4AB832CH6/wCDuZUgRVIo
-FO4uLS2dpXD9qF89TAnY1bVlUF10AGOFQuGuaLB0oD4Kcw8ddCidTl/rVjOfPXsWZc0JLS8UCncX
-FhbeQd0ssDEzrd1SqD4A46JBptPpaxTqMG2BxcXFt8vlctzORB8/fvx5Mpm8TC/VCdS1PyRo4zMz
-M0eWlpbOLi8vf5jNZm9VKpWUXbiZTOb6lStXDqFuEvagka1oG65dqG2d1L17935DJxsAMJZMJi9b
-0ajV1dUvEonExZmZmSPc34+gruXD9ItUBM1HP/cDGEVd48bD4fCJVCp1tVQqJayCLZfLcaq1ATRs
-rW2wnUA1dVKXLl06irpmTaTT6Wtmk6hUKql0On2NgmSOY5hOyEvP5aFfpMukuWk/Zm4UCjkAILS0
-tHR2dXX1CytgVVVdo9ELMwe2wdqFauqkKpVKCsALAPabTUJV1TVqJvbSiQ9TGEMcQO2OSj9IUUPz
-nRgL3bwU8AiAsXA4fCKXy922ApczY7bB2oVq6qRWV1f/CuDgo0ePbhoNNpfL3aaaGaQwvWhECcJ4
-sZOmAzzEwQ1Fo9H3rdjdbDZ7C3VTxIN1HKqbnmCvaBCJROKTWCx2RfSZqqprnL1lIYzmDJwAaQPu
-6Ozs7GEroR0FyzSWjdcxqBLq35Y/Fou9JxrAt99++yfR+6VSKcE5AD5+3TSYJnDZTYgfQCiVSl1t
-BzaVSl1F/cpS6N+bmgG7UIcAjFoZCJNyuRynl/sotkg7LcBlNtcHIJhIJC62i1ASicRFOgcv2sSx
-dqAyJxW0ekeUy+Vu0/vtEX4wvYApACtTsAqAQCQSOWMGVlXVtbm5uSmq4UMwMQN2oLroAEJWAvly
-uRxH3buzQWwLoDq4zBwoAALRaPR9sznRu0XmuAzNgB2opk5KD5Rq6LYFyoFlNzQKgODy8vKHZnNb
-WVn5GHXfYGgGrEJt66SYqKq6Rm3otrrk24BlGusDMPb48ePPzeZHFYatwnUPdWVl5WMzqJFI5Ax0
-Br3X0GyA9VBYe81MHA2zgqg73hZttQ01l8vNG52MuzSYl+8LoHTOzHkNARiJRCJnjOZJCCHUaQm1
-1Q5UNwDfxsbGV6KTFIvFr6GL5XoNqkOw2l2jmRkQaGtHUPnF5lHU7zLYclwQjSUz7Xau15C6AOsB
-4J+ZmTliFmZxtrUpErAKlQfLL1Swxi+GaAsPvQbUBVSmrUGzlTZq7kahi1v1xzS7r2WPflXUq0ps
-6BorjtDXG9JInaw2z08//fSzWq22Luo7MTFxDo3lR+NbVxNN7WSAfdvAaavZHSTnsDQTYEdTB02Y
-tqrRaPS6Uae33nrr12he/22RbksoNYmTWr/VQjd+sPUOpVKp/Mvtdr+g71csFqM+n+9XoFtGAdT0
-897VVCrUtmp1qNbX1yOifnQbKb/jpkV2oTaLti/ru+++E0IFgFgs9iZMCvDuQm0VAkA9efLkV0Yd
-9u3b9yoMgAK7UPVCuFYrFotRUSdFUQ5gV1NtiWYCnj17lhB1oNtJdzXVphAAtWq1umbSx3DH9y7U
-VtFMwMOHD++KOtAIYFdTOxAiy7JZ4G0Y3O9CNRG2Fd6uiKDyiQxGyQ07XQgAEo/HU236CXm4BR30
-ILWToJHD37/3o1sg+uwUtl2G/2WJpts3DEZCrwRAmpycPNCmn5CBXlNdN2/e3Hv27NkPVFWV2a9K
-yLJMPB6PGgwG/4D62upApEqqqtqRuWNQNRt66tSpqbGxsd8b9P8jGqk0O13aATXd2sMfRN7Y2DCL
-CDrewt1nIgGQ9u/fL0wZpQXMDa9WPUCpUqkYQp2fn38ROx+q5qRdLpfwZ0vo7xboUzo1sRWnvvzy
-yy9i54dXfB5uSwo+ABSLxTgsaKr24f379783OpuiKEHsbKBMZACy1+sVJjcXi8UUTGob8JpKAJAL
-Fy4YQqUFE3fir6Mx0RKSw+HwS0Z5so8ePfo3bNhUPsBvEb/fPwhQJQDy6dOn3zTqxKfhw4qmAiBG
-i7M+n49/PrNTocoAXPv27fulqIOVApFCTd3Y2BDe88qyPErLfew4baVPUyUArtnZ2ZDf7/+FqF8+
-n78Lgx+mYSLS1FomkxGuIwLA0aNH30Sb5959KpqWXrp06V2jTrFY7M9od6vOPbPWUibn5uamjHZo
-0IQ0ljVtulGrXxoa+6kUACFRzhghWsZ4iPZzGc1bvwFCO7BZMhdN8WZFEww3avVLg8V9qplM5joa
-W9Utb1DTNmsZbSYAgFdeeeU8GumPfW1beVsKwP3666//1qjvl19++RkaK3XGC0o6TWV7NU1NACGE
-hMPhE9Bpa681bjO1lKtr0NGmX9N8VCa5XO42Gvaln3dSs4QKQ1tKiLHJswpV++YSicRFo5MQQkg0
-Gn0ffZhEwQFlChQwS/3htJQ5KNt7/ps8oVnWRqVSSdF0Hz4rbtuDhS6JIhwOnzDblk6rZQi11CrU
-Jm1tl0fFmQEtnbvX0CxA5dN9xs0u+3w+HzHTUjtQeW0da1dDSlSAoNfgLAC1lJjG5aca5v9bhdr0
-bc7Ozh5ul3W8vLz8oR4stpEpQHPSrw/AmBMplHahMm31Ahht57S2M9hOgOoue9OcfztQ2WDcsJAO
-owMbQqO0R0ulsh4AZTlhw1aAlsvlOC2vxFeFMxS7UAFdcqzVkhk0kWsUujJwWwyTjX0P6t573MyG
-EtJkR3lv71hlCib6SydkBWypVErQZGBWCMyLra2h4gZXHi8cDp8w8/IMKC1TYqkiRTdQ9WCHrYIl
-pB4Z0FiWL53kaLUfNO/9YjAVCmc8lUpdbedodUCF2dJOQxWBHRPVqjIacCqVuioovakvp2SpNpUO
-Il/8y4tGLm1oaWnpbDvtNADathiNU1D1YC0XeeEHn06nr9HFmBCdhJ8eaw8HmVVR01dSY++x6mle
-+nc+epwggPFEInHRCkxCmqpqsCIQtoA6AVUPVgEwOjc3N2V1EvxkUqnUVQp4HHXbK6r3p2+szt8I
-7T8GYDwSiZzJZDLX7RRTpOujrG6WZRvaDmqnGX/6y88DYGhlZeV3zz///EedlEAulUqJfD4ff/r0
-abxYLGanp6e/RutzIAmAFIvFTiuKEgyFQpN+v3/S5/O9Yeec1Wp15Ztvvvng5MmTf4cDycstitmB
-pvLCx4BapTIn6qZuhjDzoyvx2VElSj1D0uXlLwKrL5cc2E5wVVVd42JnVtWtpT71doLKRAgXwPiD
-Bw8+sFod0kmpVCopLupgIZ1hvNypbCZUUfDNQpwRAGPz8/M/Y5XTN0uDK5VKKpPJXKchEoswfGgO
-34QhWzfzJg44KsODM+EeqPEZxy7u1bW4uHj84MGDx4PB4DFFUSY9Hs8BUTq4kVSr1ZVKpZIqFovx
-9fX1+J07d+5cuHDhIZrr/DMHZOXXMmzOuC76Q256vj8HVw9ZD1zLhpmdnQ2eO3dOuOEWEP4ahZb6
-KGgEbWByY7U61SbZVKgWhE89bJdWZPTom99s25SgK3iP779poodq51d+HDm/7lVC/fLU53ka5n0K
-jmH02jPZaqh6MQNhdvn0HJyZ/B9wuD6zYGKILwAAAABJRU5ErkJggg==
-"
- x="0"
- y="0"
- width="85"
- height="118"
- id="image10" />
-</svg>
diff --git a/app/images/meters/speed_6.svg b/app/images/meters/speed_6.svg
deleted file mode 100644
index ba4dcd0..0000000
--- a/app/images/meters/speed_6.svg
+++ /dev/null
@@ -1,119 +0,0 @@
-<?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:xlink="http://www.w3.org/1999/xlink"
- version="1.1"
- width="85"
- height="118"
- id="svg2">
- <metadata
- id="metadata8">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <defs
- id="defs6" />
- <image
- xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFUAAAB2CAYAAAC5zd/CAAAABHNCSVQICAgIfAhkiAAAEkFJREFU
-eJztnV9oG9l+x7+S/Eey9c9yTNI6yQ1JCkvtm0ISSDd7U8imkNttC5u7y83ug2ke+1CSiCJwC5tC
-6dNu2KcLLQkLAkG36VuhXK/BhXA3dfDisnRtNbsWwpuVNvIi5JUcRfJoPJo+zDkzR6NzZkb/LMvs
-DwYl8kia+czv/H5nzvy+57hUVQUAuFwuHGCzOzh1X47CxijLoT4fh9lczKuL8x7PVIev+2b9hsoC
-c8OAKdp4xsKjW930f3bruXUVKnV/K3MZcYaCFG0uAO5YLBa+efPmz62+M5VKPX///fe/gwHUvKmm
-f6sq52C7FQJd3YypVlAZmCw4D7utrq5emZ6e/kUgEJgZHh4+MTIyMtPK7+/t7WVlWc6USqXl7e3t
-9Xg8/vlHH320DUAhW515rcMEt1MG+lepqurIw5x+qXmD0XQ9AIYBeAGMAwjNz8+fTqfTd8rl8oLa
-I5Mkab1QKDxYWlq6CmACQADAGIARaC3VDca5unH+PYUKo4lTmH4A4UQicb5YLD5SFKXUK5giwOl0
-+g6ASQBBGHA9MEJOx+ffM6gwvHMEmmfqMPcTJM9kWc4QuBFonuuFduE7Aqv2CioM7xyCdrCB+fn5
-04VC4UFfSXJMluXM6urq2wDC0C489dq2wKq9gIrG5j4GILy6uvq2LMuZVk52d3c3mc/nH6bT6Tsr
-Kys3otHoWQBHoDVbdjsSjUbPrqys3EilUneLxeKj3d3dZKtwC4XCg/n5+dPQvHYUmkO0DLYXUM3N
-PZLL5e47PbFKpbKcSqXuEoARaN4ThBaHx6FdJN42TvYJks9E4vH4hUwmc68VwJIkrZNkFoTWwloG
-222oLFD//Pz8aaexs1gsPorH4xcIyCCB5IPmMSPQvH6IbB7TRt8fJvuOks/6AYQATK6srNyoVCrL
-To5FUZTS4uLim+SzLYPtJtQGoLFY7IwkSet2J/Dy5cvPCMwJAsEHo5vDZmOXqjZ31dTmpEhDD+26
-jULz5ACAyNOnT3/lxHMVRSltbm7ebgdst6DSE9E91A6ooiilp0+f/gqaZ/phZF4dpB1Eh5Bpshwh
-FywIYNJJSGI8NkgujqPk1S2oNCmNA4jYNbNKpbJMYmYIhmfSA+4YpgO44wDCCwsL1+z6yIqilEiM
-DZDP2na3ugHVRQ7WB2DCLoYWi8VH0DI2m2G74pktwB0mxxu8ffv2H9iFA0mS1kmvYBxGP7ZnUGkc
-9QIIpdPpOw6BNvQFew1TAHeIXNRANBo9axeuCoXCA2i9Ci9swkCnUGkcDSwuLr7pAGiEAbov3mkD
-1sOCtfNYcoPAhoGuQ6VXewzApNWV/vHHH/8djR7aV6AisPF4/IJVjJVlOUMcYwwWvYF2oTY0e6tM
-KknSeiwWOwMtwx8YoBywXgChZDJ5S3QuqqqqZKwgCAtvbRcqDfb+RCJxXnQAiqKUSB+UJqW+xFCH
-YPVkm8/nH4rOiXjrJCy8tR2o9Mr6AExYjYFmMpl7MDrPBxIoc966o0Sj0bNWYYDcFAhjaztQ9eS0
-urr6tuiHK5XKMkzxp9/gbKCy8TWUSqXuis5NkqR1aHeA1Fk6gtrgpVadfKbZjwBw9xtaC2D15Gs1
-qpZIJM5DS7xNIaBVqHoTsfLSfD7/EKY+Xb+BtQDW7cRbSWjjJqxWodIsKYyliqKUyC0ovfsYGKBq
-o7eOx2KxM6LYahUCWoHqIpDGrTJ+Lpe7P6heyjCgzhO2uu0mXcWmXgD9Hst7WQaqG8DQW2+99dei
-nZaWlv4VwB7II2DV5kodUKOPrpVvvvnm30Q73bp16wqsBlhsPLUhgIuaBLkV1ZtEvz2uA09lz/eI
-6HxJq2yKq616qieZTP6l2+0O8nYgV3UPxpUeVGPLhvaq1eoyb6dQKHQZFqVIdlBpV8ozPT39Z7wd
-9vb2spcuXfodjKY/6EahKjs7O//N22FkZOQ4LOqyrKCytU6eQCDwS95OW1tbD2F4qTqgsZQ13VO3
-t7f/l7eDx+M5AaMuq8nsCtRsm/7jx4//E0Z90qADBRhPnZ2d/a+NjY2/qFarHlmW3QDg9XoVn8+n
-gHEk8xdYFajp5TrFYvFBKBT6tXmHWq2WHB0d/RMAVQA1VVUHuvkzDBpaKRozvYrGgje9RJOytPJU
-/enk+Pj4Zd4O29vbn+FweSk1tsa1DiMp8Wphm85bBFV/5JtIJE4NDQ0d5+301Vdf/RaHEypgALMr
-Nub8hd9PdYGMSGWz2Q94fTVFUUpoHF/sez+zC/3Ujsyun6rXlPr9/lneDpVK5SkaC2h/MmJWUN0A
-3KJ4WiwWl/ETUK7xYqouXIjFYhOiePrDDz98BVP269RMegD21fxvmH6zQYnS776yVaJyv/vuu+dE
-H7x48eITdAjVBNG8uU1/o/8WwdQ3l8tFszbQhxsSK091nzx58g3eh6rVKo2nbQElMFl4XGUKTHC/
-/PLLN4rFYunq1avraAZqVqHoG4EsVKV02yw9NRAIcNUhtVotg8YTcWQMTK465dNPP/3ZuXPn/igS
-icyGQqHLw8PDJ3jhh+VSr9d3JElK1mq1TLlcXt/a2lq7ePHi5zCUKGxHve5yuXp/O83pTuij/KJC
-CdMjhaZBWk5XhS0UoyWOQQCRxcXFNwuFwoNWq63trFKpLGez2Q/IMyVWlSKs4+oaSwHUMQCTogNe
-WVm5Aa1IYtgKqgCmLvXpNkiRVSqVZUaVEhLB7RVU/TmN1aMT0RNFDlBaDOwDEJyfnz+dy+Xu77fU
-h5qiKKVcLnefPA4xS346VuepFlBtn5rCuJNqevCFZu/0A4ik0+k7/YJpNkVRStls9gM0Sn50r+0U
-qjD7Hzt2jKsHlSTp/yDI+kwiovX4I4lE4sw777zzG5/P97rTg6tWq09fvXqV3N3dzbx48WLN4/Go
-z549+25ubi4DAEtLS7PhcDgky7L71KlTl71e70m/3/+6qE9tNrfbHZyenv5HSZJuPn78+Pb169f/
-BxpQGY0a1vZMbfRUWoUSFBWfkQoU+jyKvSMzq1MmnHqnLMuZfD7/kMTqI+T7Q9CaaACGQoXd/ORv
-VJUyGY/HL6RSqbtOhRPUyDMnttyzrXCgCpq/XlAgekRLCiZCZD+2g66LKQBMOlGnVCqV5WQyeQta
-OAnDyNBmdQqrUGEVKVSV4iWfGSeQI/F4/EKhUHjgNORUKpVlEmsbiuq6BdULICy62pwniWwtkiN1
-SqVSWf7kk08uwohpNBtTeA3qFDR3fXg3D1SVQhOjH0A4Go2edZocJUlaJ0m4LbAiqHofVQSVdE3Y
-yjfHch9ZljOMMiWARpmPY4mPaGMgmxXb4Xg8fsFJWGhXmWIH1QcgIvpREvcoVMdA8/n8Q6YrwypT
-ul4MDMOLWbgBAJFMJnOvRWVKx5If244/qX+n1dE0KQnL1BVFKaVSqbvQks84+qNMoRd/DETyY3fj
-IctyhlcJ3g5UvTpD9GPkClJR2Rgs5D6KopQWFhauQUtCY2Dk372GyQHLKruDTpQppBht0nTsbUG1
-vJsCMAWtWYzDQu7DAGXliAdOmdKC5McHG0klD6p+i2pzNzVFQIUSicR5XnxigDYokvsFs1OwpNtH
-E5cwDIigOrlFPUqaxJQom3I89EAAtQJrFWMVRSmR+KrX3nYb6u8BOCqqNibDgg3Npd8QHYAN2ulV
-SWWjpfKvLajksfRxAMd5V/bly5efYTBFFF4A4Uwmc08EVVVVlfRf6ZCnUJ3ipJRSt2q1+gyAZ21t
-7T3z4EW9Xt+5d+/e3wCogdQZqeTID6qR46tDO97aiRMnfkMeFXHtypUr/wRDRi8spWzJU3d2dlYA
-nJUkKWv+G+mL0jGBgSpPByNnspNUmrzVVp1iC7VUKn3xxRdf/J35fTJy1aCG6zeoFqE2hAEreSgn
-tjZBban5A8Dp06f/1Pze2traR9DGIgei2ZuNHC99UCh//PHH/1yv13d4+4ZCoV/HYrFJWIWAVjx1
-d3f3e/N75K4jggOe7R16rK78s/JW8tSgo5p/3UZHR3/f/F42m6WV1IOsSqFGR/33Pvzww38ReevU
-1NRNWE1l14qnmo10sY6AeQjYb2/r0FMBh1oq3sPPtjzVbKRfeli8lJojLdXly5eplqqJYUdQv//+
-+wUczqLfOgDl0qVLv9vb28vydjh69OgvIUhWHUGdmZlhRRSHxdh6LOXVq1dcLdXo6OgsGmu/dDND
-dextTJFaV8spD4jpXaxCocCFOjQ0dDwWi03Aoac6glMqlWjR72EDSq0OoL68vPy5aAcyVzb7gFIz
-U+azHfmnRsYY6bOqhuw3qJvJ9EdLottW0l/VGYiyv2p6FVo2m6WzlR9GL6VWB1CXJCnJ+6PH4wmB
-U/Utav62oK5fv9718vQDZnqhsCRJ3B4Aqd91HFNVqyEwZj/29bCauru7+x3vD263m3qqo+xvCYr0
-3Q6rh7Lm5By5+lPuF5HszrVarZZl9v3JTMbzVBWA6na77YAddqD6+eXzeW6iEpnIU+vffvut0FOJ
-iR8nHA7Tz21qaqql5UaEzX9jY+O56ENer/cPW/mRQ25NLVbU/Otzc3NCqGRChcPuqYBRhWh3ng1g
-rfqpdatuVTQa5d73HjJzAXCJ9GTVapUVyekmGqWiUNdFv/bee+/9HAbUwwhWLyom/dEmq9VqO2iU
-cAKwSFQA6ltbW8JkFYlEfoYurIxzgE2HOjY29se8HchNQVNf1tJT4/G4cIRmamrqdQjGEw+B6UAX
-FxeFoud0Or0G3gC9xQiNDxZSSmbmWx/Zv++jTF0cpdJVOlalQDDpyUSjVDprcgXq5XJZOEgbj8dP
-oUsLZB0w07UD4XCYO4kESeLcSSTsoCqbm5u/Ff3ytWvX/hyHD6quF4hGo5N+v/86byeSxPnP5wTN
-n5bBWA7SmgopBqp+yqL5603falEIRvug11Tp3yOASr/cUqimqvp0yfqX9xtMh1CpM/lgsRYMM9OR
-7kxOoerFFVarTpin+RxksOw5x+PxCzbnbFY9OoaqXzWr8m2Ttw7E5N4CoLo4z6p1isopnUClIcA2
-vjDeOrCxlTnXgJWX8vJIq1CpYmXMavJrVdXFEwM1FT1z7vp5wmZdLY6MVDenUOkVtC0vNBX+DkzS
-QqOgwnINFbuFaVqBquur7LyVmUF9IGpVYXTyR+BgmQ+7RWlagerYW1VVDwMNCuR+w7OASueIHQcw
-adXsmeVLhMq/VqGyMcdyGQxmEYWDvsIPBToGYMJuBWIm43d16SQ9O66srNywOgBJktYPKlgYTV4H
-arWsh6rqYa1h1aJuQW1QcNhdWQ7YvsfYdoDyVi0SAWoHKpgDGneyRioDlhX+9kVJzTiFvqyzHVBG
-k2rZ7DuF2pAtRSpq84GZNP89XStVAJPV+gfgYOKcdmanaBcqPUhdKGu3GiW158+f/wOMdVPZVX17
-AtcEk85KEXIyl0q/VvilvQEvgNDm5uZtJ2Arlcqyaf3pri6ZTC+QCaa+ZLLT+VMYoPu+FjUF66Ng
-nc4BVSwWH5FYyy7uTadQooBtZ/8xQaSztrGLewcBRJyunN4J0G5BBQyP8AEILS4uvtnKfH6mZehD
-DGAvWluGfhTGnC5+kBnVksnkLaezqUmStE5iaFtAuwkVME34kkgkzjtZit58QplM5h4BTGdTC8KY
-jm5MsI1Di9EhaF4/ubCwcK3V+ViLxeIjsuZ027OnsVCtlvloxdg4NgxgJJfL/f2xY8f+ttUv2tvb
-y5bL5aflcnn9xYsXaxsbG8/n5uZo0S29+i4AWFxcPBcOh0MnT558w+/3z46Njb0uWuOFZ/V6fefr
-r7++MzMz8x/Q5imQ0YEuTHfOLngqNfP8T6GlpaWrrU5muF9mmkfVB2Z6p3YBqF1s/qyZ+4R+ABNO
-E8V+WLFYfER0pWFwJh/r5OTVXkBVG7MynRLOBy1WTayurr7tZLbKbpssy5lcLnffBJN253o+fXJX
-vpQBy06wqM8UGYvFzqTT6TvlcnmhV7P/yrKcKRQKD549e/ZXMHoXLMymQZ5unX+3EpX+pWbjzOnv
-YV49ADxLS0vnXnvttV/4fL4TPp9vdnR0dKbVhCNJUrJara7v7OysP3ny5Mnc3Ny3aJ6Snq5NUCfH
-23DAnTLQWfYaKjXT6hO8hRLM77lisViYSBW5RqZUfg4DlF6uxNlU7RDFB3kgobZgLGDWi12mDaZ/
-s8bKk9itznmP3b9nRlnarfHXs983vbqgNU2zJLFJomjxHaLXfbd+QTWbFQirJtQ3cFb2/3fo1CE8
-Da1HAAAAAElFTkSuQmCC
-"
- x="0"
- y="0"
- width="85"
- height="118"
- id="image10" />
-</svg>
diff --git a/app/images/meters/speed_7.svg b/app/images/meters/speed_7.svg
deleted file mode 100644
index 2537843..0000000
--- a/app/images/meters/speed_7.svg
+++ /dev/null
@@ -1,102 +0,0 @@
-<?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:xlink="http://www.w3.org/1999/xlink"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- id="svg3167"
- version="1.1"
- inkscape:version="0.48.4 r9939"
- width="85"
- height="118"
- sodipodi:docname="speed_7.png">
- <metadata
- id="metadata3173">
- <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></dc:title>
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <defs
- id="defs3171" />
- <sodipodi:namedview
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1"
- objecttolerance="10"
- gridtolerance="10"
- guidetolerance="10"
- inkscape:pageopacity="0"
- inkscape:pageshadow="2"
- inkscape:window-width="640"
- inkscape:window-height="480"
- id="namedview3169"
- showgrid="false"
- inkscape:zoom="2"
- inkscape:cx="42.5"
- inkscape:cy="59"
- inkscape:window-x="65"
- inkscape:window-y="24"
- inkscape:window-maximized="0"
- inkscape:current-layer="svg3167" />
- <image
- width="85"
- height="118"
- xlink:href="data:image/png;base64,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
-sKMAAAAASUVORK5CYII=
-"
- id="image3175"
- x="0"
- y="0" />
-</svg>
diff --git a/app/images/meters/speed_8.svg b/app/images/meters/speed_8.svg
deleted file mode 100644
index 656205f..0000000
--- a/app/images/meters/speed_8.svg
+++ /dev/null
@@ -1,164 +0,0 @@
-<?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:xlink="http://www.w3.org/1999/xlink"
- version="1.1"
- width="85"
- height="118"
- id="svg2">
- <metadata
- id="metadata8">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <defs
- id="defs6" />
- <image
- xlink:href="data:image/png;base64,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
-weUAAAAASUVORK5CYII=
-"
- x="0"
- y="0"
- width="85"
- height="118"
- id="image10" />
-</svg>
diff --git a/app/images/meters/speed_9.svg b/app/images/meters/speed_9.svg
deleted file mode 100644
index 96a6e87..0000000
--- a/app/images/meters/speed_9.svg
+++ /dev/null
@@ -1,143 +0,0 @@
-<?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:xlink="http://www.w3.org/1999/xlink"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- id="svg3187"
- version="1.1"
- inkscape:version="0.48.4 r9939"
- width="85"
- height="118"
- sodipodi:docname="speed_9.png">
- <metadata
- id="metadata3193">
- <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></dc:title>
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <defs
- id="defs3191" />
- <sodipodi:namedview
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1"
- objecttolerance="10"
- gridtolerance="10"
- guidetolerance="10"
- inkscape:pageopacity="0"
- inkscape:pageshadow="2"
- inkscape:window-width="640"
- inkscape:window-height="480"
- id="namedview3189"
- showgrid="false"
- inkscape:zoom="2"
- inkscape:cx="42.5"
- inkscape:cy="59"
- inkscape:window-x="65"
- inkscape:window-y="24"
- inkscape:window-maximized="0"
- inkscape:current-layer="svg3187" />
- <image
- width="85"
- height="118"
- xlink:href="data:image/png;base64,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
-oeEAAAAASUVORK5CYII=
-"
- id="image3195"
- x="0"
- y="0" />
-</svg>
diff --git a/app/images/meters/speed_center.svg b/app/images/meters/speed_center.svg
deleted file mode 100644
index b9f9f60..0000000
--- a/app/images/meters/speed_center.svg
+++ /dev/null
@@ -1,391 +0,0 @@
-<?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:xlink="http://www.w3.org/1999/xlink"
- version="1.1"
- width="220"
- height="220"
- id="svg2">
- <metadata
- id="metadata8">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <defs
- id="defs6" />
- <image
- xlink:href="data:image/png;base64,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
-xOsfMnju+wAAAABJRU5ErkJggg==
-"
- x="0"
- y="0"
- width="220"
- height="220"
- id="image10" />
-</svg>
diff --git a/app/images/meters/speed_kmh.svg b/app/images/meters/speed_kmh.svg
deleted file mode 100644
index daa2916..0000000
--- a/app/images/meters/speed_kmh.svg
+++ /dev/null
@@ -1,101 +0,0 @@
-<?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:xlink="http://www.w3.org/1999/xlink"
- version="1.1"
- width="480"
- height="480"
- id="svg2">
- <metadata
- id="metadata8">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <defs
- id="defs6" />
- <image
- xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAHgCAYAAAB91L6VAAAABHNCSVQICAgIfAhkiAAADktJREFU
-eJzt3W1sndVhB/C/r+1gm8WEvLBk8RYYpCNIVM1GG4oGFaCEAhkJpUgMRRAxscEmgYQqhPYVaUIC
-EQU+REhF8CGaorVoihwVpcpgYyNSaFEQL4M2kI7MEHCSmZjG9uJrP/vg+1zfGL/EvKVLfj/pyvbj
-4/Oca+ne/z3nOec8CQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMJ2m2gP4ijWf6gbA/wNNGXuttOT0DaemJK1JKrVHkhS1
-r5WMPf/mCceBL6AycxE4ozVlLHjnZCygWnP6BXEZvq3Hjh27ob+///KMhW0ZvK0Zf/5zMvb8gS9I
-AMP0mpO0joyM/G1RFJv6+/u/Xzt2OgVwS5KWQ4cOfbujo+OGoig6Mt7jbUnSUhTFpqIoNr3xxhvf
-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
-AAAAv6v+D7fnLbIo6K96AAAAAElFTkSuQmCC
-"
- x="0"
- y="0"
- width="480"
- height="480"
- id="image10" />
-</svg>
diff --git a/app/images/meters/speed_limit_none.svg b/app/images/meters/speed_limit_none.svg
deleted file mode 100644
index dde91bf..0000000
--- a/app/images/meters/speed_limit_none.svg
+++ /dev/null
@@ -1,156 +0,0 @@
-<?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:xlink="http://www.w3.org/1999/xlink"
- version="1.1"
- width="480"
- height="480"
- id="svg2">
- <metadata
- id="metadata8">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <defs
- id="defs6" />
- <image
- xlink:href="data:image/png;base64,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
-SUVORK5CYII=
-"
- x="0"
- y="0"
- width="480"
- height="480"
- id="image10" />
-</svg>
diff --git a/app/images/meters/tacho_center.svg b/app/images/meters/tacho_center.svg
deleted file mode 100644
index 46086d9..0000000
--- a/app/images/meters/tacho_center.svg
+++ /dev/null
@@ -1,246 +0,0 @@
-<?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:xlink="http://www.w3.org/1999/xlink"
- version="1.1"
- width="480"
- height="480"
- id="svg2">
- <metadata
- id="metadata8">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <defs
- id="defs6" />
- <image
- xlink:href="data:image/png;base64,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
-"
- x="0"
- y="0"
- width="480"
- height="480"
- id="image10" />
-</svg>
diff --git a/app/images/meters/tacho_frame.svg b/app/images/meters/tacho_frame.svg
deleted file mode 100644
index 84a854f..0000000
--- a/app/images/meters/tacho_frame.svg
+++ /dev/null
@@ -1,213 +0,0 @@
-<?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:xlink="http://www.w3.org/1999/xlink"
- version="1.1"
- width="480"
- height="480"
- id="svg2">
- <metadata
- id="metadata8">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <defs
- id="defs6" />
- <image
- xlink:href="data:image/png;base64,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
-"
- x="0"
- y="0"
- width="480"
- height="480"
- id="image10" />
-</svg>
diff --git a/app/images/meters/tacho_hand.svg b/app/images/meters/tacho_hand.svg
deleted file mode 100644
index 90ec605..0000000
--- a/app/images/meters/tacho_hand.svg
+++ /dev/null
@@ -1,189 +0,0 @@
-<?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:xlink="http://www.w3.org/1999/xlink"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- id="svg3197"
- version="1.1"
- inkscape:version="0.48.4 r9939"
- width="480"
- height="480"
- sodipodi:docname="tacho_hand.png">
- <metadata
- id="metadata3203">
- <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></dc:title>
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <defs
- id="defs3201" />
- <sodipodi:namedview
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1"
- objecttolerance="10"
- gridtolerance="10"
- guidetolerance="10"
- inkscape:pageopacity="0"
- inkscape:pageshadow="2"
- inkscape:window-width="640"
- inkscape:window-height="480"
- id="namedview3199"
- showgrid="false"
- inkscape:zoom="0.49166667"
- inkscape:cx="240"
- inkscape:cy="240"
- inkscape:window-x="65"
- inkscape:window-y="24"
- inkscape:window-maximized="0"
- inkscape:current-layer="svg3197" />
- <image
- width="480"
- height="480"
- xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAHgCAYAAAB91L6VAAAABHNCSVQICAgIfAhkiAAAHENJREFU
-eJzt3UtwXNd95/HvubefQDeeBEgAfOtpKpIty4/EZceykzixk6nUpIpaTs0qWaTKi2xmKWgxUzWb
-eZQXU9JiJpPdkFUzNTNOucbjiqnIjsa2GEuyRVmWRJGSCIAA8UZ3ox/3nlk0IYKyZTu2+AD5/VSB
-DZC8l93FLvzwP+d/zgFJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ
-kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ
-kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ
-kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ
-kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ
-kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ
-kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ
-kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ
-kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ
-kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ
-kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ
-kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ
-kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ
-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
-Qn9K4Yc/XeK577zJhbkN2vuG2AqR9SxjI6SsUWCz1GKbKlu1KVo/XKB3+gs2WknSzWYA7xVblFo1
-yu0CpaxDuV5h4Iv3cPyxQ3wB+DLQAP7h8hZ//5+eY3VokE5aYKsUWOlFNtNIo1RgI89odaEFNL96
-n3O9knSrGMB7QgzlQLnVI1lrEw9UCV+6n4kHJ/lT4BO9yOvLDb75wju8eG6BbqVMZzBls5OzlcN6
-LNMgpUWDxotNtk9C54mvWPVK0q1kAO8BJ0+RLBYIw8BYgeT37uPBj07zl8DHuxnfefESf/u/X+Vt
-oFcKdIYG2My7bOXQIGcr79JqVmgySOv0n5CdttFKkm45A3gPGF0lKQ8Qmzn5ozPUjo3zSeDgdpe/
-fvkS//Nf/x3rv32IakjoRGh0chqkbNOh2S7RKo/Qev087dNuqiFJtw0DeA+Yvp+43CKr18heW2Lp
-/n2caXb43jdf5/yby3QfnibNcxo96JDQLGS01qBdq9JcrtOe/jrZ6VmPDpSk24kbcewBMcbw1BnK
-tBnoQLkTqCytksyMUk2LpMUOvUKBbgd6nRKt+gbb5TG2n3+XzumT5HiIgiTddgzgPSLGGJ45S6Hd
-o7qwRbWUUuzmpMUykSa9RpF8NKPbSWlP1Wl7epEk3d4M4L0kxnDqNMlzNQrjGSkpBaoktMgHU7LG
-QbpPnqBr8ErS7c8A3qtiDLNPXf//N+s8ryRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ
-kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ
-kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ
-kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ
-kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ
-kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ
-kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiTpV/X/AaB6C5SiNnVO
-AAAAAElFTkSuQmCC
-"
- id="image3205"
- x="0"
- y="0" />
-</svg>
diff --git a/app/images/meters/tacho_scale.svg b/app/images/meters/tacho_scale.svg
deleted file mode 100644
index 035b603..0000000
--- a/app/images/meters/tacho_scale.svg
+++ /dev/null
@@ -1,876 +0,0 @@
-<?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:xlink="http://www.w3.org/1999/xlink"
- version="1.1"
- width="480"
- height="480"
- id="svg2">
- <metadata
- id="metadata8">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <defs
- id="defs6" />
- <image
- xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAHgCAYAAAB91L6VAAAABHNCSVQICAgIfAhkiAAAIABJREFU
-eJzsvXuUJEl93/uNiHxUVlV3dfd09/Q8dmZ3ZmcfDAtiH4jFMiwSksCAZGMLPcBItuRFkiUkX2Fh
-X19f0D2WjyXLl6NjXVkgo4Ne5mpBAlm6gIwwiwwLgl0EiH0wr93ZndmZ6Z7p7npmVWZG/O4fmVkd
-lZ1VXTO7PGbn95lTZzozIyMjM6vym79HRAAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAM
-wzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAM
-wzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAM
-wzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAM
-wzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAM
-wzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAM
-wzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAM
-wzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAM
-wzAMwzAMwzAMwzBXhPhmN4BhrkWISK2tIQCASxX4pOABgCugZJyunxngXNvHnoGEX5Xp9mnoGUS+
-weDCLM7sbmE/ABgXYUzQACA0ol19DABgaQmhEEI/2+fHMMzOsAAzzNcJIlIPbaBe9VGtSHgUwetL
-eN6UYhoRznkCe670+M0BTjV8HJrqWAZRxSASHqK+QdQboHfHPDoszgzz9YMFmGGeIQ8QBfNtVEnB
-8xPUc5GNgfMusHKl9T5TAX6m+wuDsySxLxfngYOO0Ig2ZtB7qRDhldbLMEyK881uAMNcTeRi6zgI
-ZIzAOKijB0Cl242DoXmrBKSM0TEO6pd7HCLQs9fqK4OQtsGT8IyE5wJ1KGCpBxzvEhyNMHHQSRKE
-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
-RERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERE
-RERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERE
-RERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERE
-RERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERE
-RERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERE
-RERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERE
-RERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERE
-RERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERE
-RERERERERERERERERERERERERERERERERERERERERHQR+/93ts3KUtNNgQAAAABJRU5ErkJggg==
-"
- x="0"
- y="0"
- width="480"
- height="480"
- id="image10" />
-</svg>
diff --git a/app/images/meters/tacho_shift_1.svg b/app/images/meters/tacho_shift_1.svg
deleted file mode 100644
index 8e3ce67..0000000
--- a/app/images/meters/tacho_shift_1.svg
+++ /dev/null
@@ -1,46 +0,0 @@
-<?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:xlink="http://www.w3.org/1999/xlink"
- version="1.1"
- width="56"
- height="63"
- id="svg2">
- <metadata
- id="metadata8">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <defs
- id="defs6" />
- <image
- xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADgAAAA/CAYAAAC1gwumAAAABHNCSVQICAgIfAhkiAAAAfNJREFU
-aIHt2rGr01AUx/HvvXnmlaBoS4koAQdBSgbFlgbebKmLg5ObjoXiqEun/gUdnPpH+E/oUOcuERze
-lEHpWJViLYlDdVH6TNt723fhfKBQ6CHn/JqkN9ALQohjUgfqo4GrwJUNnxfAD2AB5CYbn5g82AYK
-uJ6m6dsgCKKiKP75UrXW+Ww2e5ckyWvgu8nmhwjoDQaDZhzHjy4qms/nX9h8hnemTR/wLwoIut3u
-8/8V5nluZRbbAb1er3c/SZJnlvschQZupWn6oShhOp2+B26YHsLGPahY30vhZDJ5E8fxmYUeB6cA
-DwiA+nA4fJpl2XmZM3fZzqBifemdsA7k/X7v9/v9u51O53Ecx08ajUbT8Jw72zagNx6Pm0EQPIii
-6KHv+9V6vX6vVqtFYRiGVibc07YBT1ut1st2u/3CyjQWbLtM6OVyaXwxtsn2Onh0EtB12wbMK5XK
-0sokl4QGrgE3gdslXndGo9Erlxb6HPgKfCtZ71er1bK1Vuz6LFqULdRal661QX5kXCcBXScBXScB
-XScBXScBXScBXScBXScBXScBXScBXScBXScBXScBXScBXScB91QopUr9P6i1NrrT9w/bG2Jz4HOW
-ZR9Xq9XGXlrrfLFYfAJ+mh7A9p5tBfisN+lddLVY27MthBBiH78ASAXVgYLryQUAAAAASUVORK5C
-YII=
-"
- x="0"
- y="0"
- width="56"
- height="63"
- id="image10" />
-</svg>
diff --git a/app/images/meters/tacho_shift_2.svg b/app/images/meters/tacho_shift_2.svg
deleted file mode 100644
index 8342580..0000000
--- a/app/images/meters/tacho_shift_2.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-<?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:xlink="http://www.w3.org/1999/xlink"
- version="1.1"
- width="56"
- height="63"
- id="svg2">
- <metadata
- id="metadata8">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <defs
- id="defs6" />
- <image
- xlink:href="data:image/png;base64,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
-lFCFvwF6jEWGgNZGogAAAABJRU5ErkJggg==
-"
- x="0"
- y="0"
- width="56"
- height="63"
- id="image10" />
-</svg>
diff --git a/app/images/meters/tacho_shift_3.svg b/app/images/meters/tacho_shift_3.svg
deleted file mode 100644
index 9c8e804..0000000
--- a/app/images/meters/tacho_shift_3.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-<?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:xlink="http://www.w3.org/1999/xlink"
- version="1.1"
- width="56"
- height="63"
- id="svg2">
- <metadata
- id="metadata8">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <defs
- id="defs6" />
- <image
- xlink:href="data:image/png;base64,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
-"
- x="0"
- y="0"
- width="56"
- height="63"
- id="image10" />
-</svg>
diff --git a/app/images/meters/tacho_shift_4.svg b/app/images/meters/tacho_shift_4.svg
deleted file mode 100644
index 5fb9296..0000000
--- a/app/images/meters/tacho_shift_4.svg
+++ /dev/null
@@ -1,56 +0,0 @@
-<?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:xlink="http://www.w3.org/1999/xlink"
- version="1.1"
- width="56"
- height="63"
- id="svg2">
- <metadata
- id="metadata8">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <defs
- id="defs6" />
- <image
- xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADgAAAA/CAYAAAC1gwumAAAABHNCSVQICAgIfAhkiAAABElJREFU
-aIHtmkFII1cYx/9vZnayzboqzapUBaV206W0gkQahV5KwWNReii92N2Cyi7Fw5pCWRARetBCKcqC
-G5JDCsWIpWDcQw8B8ZAaDHiJaA+NrNtBshtxUrOYZkw200NcCja+mUySSeLOD0IO8+W99/N97817
-zwcYGBhUElKhehkAV88+Sm1IAzgB8FJLRZyWHxUJAVC/vr7+XWdn5yfZbJa5MJAQOZ1OP7darZ8C
-ONavidohAK55PJ77skpEUTwC0IzKZVtB8A6HY+Dk5CR5GQXZ3t7ed6PR6F9q5WpJkAHQsru7+3sh
-crUiSAA0+v3+R4XK1YIgAWB2uVx3U6lU+jIKXhkdHf3o+Pg4oUWu2gXZvr6+dwRB2NMqV82CDIAb
-oVDocTFy1SpIANSvrq7OFitXrYJXZ2dnv1AzqQSDwVC5BS9cB2qEGxoaem9kZOShyWSirnODweBv
-gUDglxLXX1YYAG9FIpGwUq8IgrDX3d39vsvlulsrPUgANAYCgR+6uro+oAUmEokX09PTt8Ph8FOW
-ZbMlqr+sEADXvV7vA6XeSKVSaafTeQ+AGYDJ4/GMlrsHS4FpampqUM0Owe/3PwLQeNbYmhDkbDbb
-rVgs9kypoTs7OxsAWvDfsNBFsJgxyACwLC4u/tzU1NRCCzw8PHw+PDz8FYAjALqOO62CBEC93++f
-tlqtNlpgMpn8Z2Zm5sutra0nADIa69MVAsDsdDrvKaWXLMuy1+t9AKAO/0+xqh2DvMPhGFCzQwgE
-AosALMifKVUpyNrt9ptqdgiRSCQMoPUCOd0ECxmDDIA3FxYWHra3t79NC4zH46LD4bgDIAadJ5Xz
-qBUkAOp8Pt83PT09A7RASZIyLpfr65WVlR1oPKzVGwLgjfn5+Ttqdgg+n+97APVQTqmqGYPc4OCg
-TRTFI6XGhEKhxwBuQF1mVIUgA6B1f3//D6WGCIKwZ7fbbwJgVZZd8UmGALi+sbEx39HRcYtWyKsd
-wubm5lNU2bijCk5MTFj7+/s/oxUgSVJmaWnpW7fbvYXcf4KqCtqum5jN5jqlAtbW1n4aGxv7FbnX
-AV9A3Xw6nVabzpqhCir9WBCEZ9vb23+63e4hjuMKet9JksQ1Nzd/qBQnyzJBbgxyAORzj18CSACQ
-8jxThJ2cnPxYaRKoNMvLy7cBXLlIotSHTrqTTCZ5UDxqXlAJQ7DWeb0FGYYpeOrVG0IItY2096DM
-smxcEITdTCZTlusmPM/XtbW1tdJiJEnKHBwcPMknwnFcBkAUlD0n7WVOkPsDXIP6BXQh8HNzc5+P
-j4//SAsSRTFusVj6kTuROy+ZBZAEcJrnGQCFHkRubVmuCzh8Q0NDUinorOf+Rk4wH5pTVFUBOiGf
-+1bN6z2LXgYMwVrHEKx1KikoKy2zSkElbvy+IgsgSlsKEkLk09PTGDQeSQCVvVxDkDukMoOeSUXd
-2TYwMDAwKIZ/Ac2XKdlF/Q2OAAAAAElFTkSuQmCC
-"
- x="0"
- y="0"
- width="56"
- height="63"
- id="image10" />
-</svg>
diff --git a/app/images/meters/tacho_shift_5.svg b/app/images/meters/tacho_shift_5.svg
deleted file mode 100644
index f4e9838..0000000
--- a/app/images/meters/tacho_shift_5.svg
+++ /dev/null
@@ -1,67 +0,0 @@
-<?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:xlink="http://www.w3.org/1999/xlink"
- version="1.1"
- width="56"
- height="63"
- id="svg2">
- <metadata
- id="metadata8">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <defs
- id="defs6" />
- <image
- xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADgAAAA/CAYAAAC1gwumAAAABHNCSVQICAgIfAhkiAAABqdJREFU
-aIHtml1MU2cYx/+npy1aKFimFBh2DHXGhJltVkrYR4zEGS9MMDqCyYwZF2bNQnTM6DJvloUL9IqQ
-GLgwo4kfRMtcGjVmg2RdgjhQDBCFsRSQIh89wc5WCgehfXdx2umc9Lzno1UTfknTm/fj+Z/3fZ/n
-fZ5zgGWWWeZlwijsqwdgAKBRxxxRCIB5AHMAIjQdtAom0545c2bnjh07asPhMKtgHGo0Gk2E4zh3
-UVHRUQAhmj5KBOosFss2i8WyScEYkgkGg1MAdLTtlWwt7apVqzYo6C+LSCQiyWZFAk0mU76C/klB
-iUBdVlbWW6pZkiDkCtSUl5dnp6enG1W1JgHIFchu3759s6qWJAi5AnX5+fkfqGoJJSzLhiHEQyrk
-hgltZmbm+ngNQqEQ39nZeS0lJeWJzDn+B8uykUePHt2CEOypkC1QzINyHOctLS2tBvC3zDmWYgFJ
-ECjqQaenp/8C8AjAY5lzqIKcM6ipqKgwi3lQjuPuAViUZ5Z6yBHIFhcXbxRr5PF4uiFsp9eOlZcv
-X/6exIHn+QUAeVCWraiCnBXUZmdnF8Zr4Pf7pwDw8kxSFzlORmcymd6O12BycnIAwvkjEFaRic7F
-PvOvgZDThaO/RQhbmjrG0SBVIAMhBubFa8RxXD8Eo1cAWFlRUbF2165dtrS0tDyz2bwhLS3tzYyM
-DHMgEPDNzMyMz8zM+Hw+X//BgwevAZiBkNDGHlBS0dhstg3xzh8hhNTW1n4JoODSpUvf3r179ybP
-8wtifQghJBAIBDs6OlqOHTu2A8AbAFKQ5HOsq6ur+0zM0M7Ozj8CgUCQRtRSeDyevtOnTx8EsArJ
-K4mIe1A14Xl+we12NwHIhZDFJ3w1jR0dHS3JEhhjbGxsaO/eve9DQqlCLqaBgYHuZAskhJD79+8P
-WK3WjVBWRxIly+fz+V6GQEIIGRoa6gVgRoLOJJUHTTTXr1+vA2AE5XmUstzs/v3735P6VGZnZ+dG
-RkZ6+/v724LB4LhWq43Mz89rCwsLSzdt2rTNZDJlShmvpKSk0m63X2poaOiCypd5SR7U7/c/bGpq
-+gbCndQEoQKeEv2tAJAOINfhcFSPjIz8KWUVu7q6rkT7q+pVU2/fvt1MY8Dg4ODtsrKyLRAv62ui
-YvOkeOdQKDRbXFy8XmRsANKegK6pqelDnU63bnFx8YWleoZhSDgcDlVWVv4KIdmlrZ+wAEwXL148
-Ul5efoLGmHPnzn194MCBRqh4qY9dmPV4utVe9JMbkBkAa3p7e900q9jb2+uGcMt5rdCWlZVtobnm
-+f3+hwCy8ArknFIx9fT0/E6zijabbQNEzmHSLrESmH/w4MFNmoZ79ux5B6+hwIXu7m4qgTk5ObkQ
-HNSSvIoCYTab02naEUJEzx/NTSb2qjqedyQQyg1PoDwL1+j1eoPCMf6FRqC+tbX1kNFoLFoq/rEs
-GxkfH+/Yt2/fj1Ael9jVq1cX0DRkGIZA5IHSCNQaDIbNNpvt83iNpqenSwH8DGBKbFIR9BaLpZim
-ocfj8YDyY4R4rHA6ncdp3PbZs2ePQLh6yUUDYG0oFJqljIPZEImDNE5msaen5xaNdVar9QCADMpx
-n4cBkOpyuaoMBsNKscZer/cuhOOguPLGADBzHDcl9lR5nl9wuVynIGQPUkQyAFKqq6t30qweIYQ4
-nc7jULZb/kOa2+1uopmYEEKiIjMpRTIAUisrKz+ZmJgYoxmf47gpCIUo1cKc1m63l9DWNwkh5OrV
-q/VRIwwQgvGzZ4WBEHaMAHLPnz9/gnblCCGkra2tAUCqWuJiBmVIrahNTEyMOZ3OH6IVsSwIxdzV
-AHJqamp2t7e3X6DZ+s8yOTnpLSkpWYcEXFJYq9W6MRgMBqQYFGN0dHRkeHh4cHh4eFBuUTgUCs0e
-PXr0UwhpmeowAFbU19d/IWWrqkljY+NXELZmwlIkBoDR4XBUJ1tca2trI4QEN+H5HwMg3eFwVCt9
-/0BLX1/fb0hgPXQpkamHDh36yOPx9CVKWCAQCDY3N38HwTEl5ZPN50XqAGS7XK5TUtw8DTdu3Pgp
-6n0TeuZo0AAw2u32kjt37vyiVOjY2NjQyZMn90O4DWlftrgYsdXMAJDX0tJyrKur64rX6x2mEeX1
-eofb29sv1NTU7AawBiq++EzE09FASJD1APRbt27NPHz48Mdzc3P6goKCdw0GQ/ro6Og9nucfPn78
-+GFVVVUnhEvzfPRf1VfXiV7+2AcIsY8OYlsuDCGPi+Dp+4Wkv49fZpllllHMPxC7bTozVllVAAAA
-AElFTkSuQmCC
-"
- x="0"
- y="0"
- width="56"
- height="63"
- id="image10" />
-</svg>
diff --git a/app/images/meters/tacho_shift_6.svg b/app/images/meters/tacho_shift_6.svg
deleted file mode 100644
index da2f200..0000000
--- a/app/images/meters/tacho_shift_6.svg
+++ /dev/null
@@ -1,72 +0,0 @@
-<?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:xlink="http://www.w3.org/1999/xlink"
- version="1.1"
- width="56"
- height="63"
- id="svg2">
- <metadata
- id="metadata8">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <defs
- id="defs6" />
- <image
- xlink:href="data:image/png;base64,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
-RU5ErkJggg==
-"
- x="0"
- y="0"
- width="56"
- height="63"
- id="image10" />
-</svg>
diff --git a/app/images/meters/tacho_shift_B.svg b/app/images/meters/tacho_shift_B.svg
deleted file mode 100644
index 3dcbe56..0000000
--- a/app/images/meters/tacho_shift_B.svg
+++ /dev/null
@@ -1,82 +0,0 @@
-<?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:xlink="http://www.w3.org/1999/xlink"
- version="1.1"
- width="56"
- height="63"
- id="svg2">
- <metadata
- id="metadata8">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <defs
- id="defs6" />
- <image
- xlink:href="data:image/png;base64,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
-"
- x="0"
- y="0"
- width="56"
- height="63"
- id="image10" />
-</svg>
diff --git a/app/images/meters/tacho_shift_D.svg b/app/images/meters/tacho_shift_D.svg
deleted file mode 100644
index 3c824c4..0000000
--- a/app/images/meters/tacho_shift_D.svg
+++ /dev/null
@@ -1,67 +0,0 @@
-<?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:xlink="http://www.w3.org/1999/xlink"
- version="1.1"
- width="56"
- height="63"
- id="svg2">
- <metadata
- id="metadata8">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <defs
- id="defs6" />
- <image
- xlink:href="data:image/png;base64,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
-"
- x="0"
- y="0"
- width="56"
- height="63"
- id="image10" />
-</svg>
diff --git a/app/images/meters/tacho_shift_N.svg b/app/images/meters/tacho_shift_N.svg
deleted file mode 100644
index 3b41db7..0000000
--- a/app/images/meters/tacho_shift_N.svg
+++ /dev/null
@@ -1,66 +0,0 @@
-<?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:xlink="http://www.w3.org/1999/xlink"
- version="1.1"
- width="56"
- height="63"
- id="svg2">
- <metadata
- id="metadata8">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <defs
- id="defs6" />
- <image
- xlink:href="data:image/png;base64,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
-"
- x="0"
- y="0"
- width="56"
- height="63"
- id="image10" />
-</svg>
diff --git a/app/images/meters/tacho_shift_P.svg b/app/images/meters/tacho_shift_P.svg
deleted file mode 100644
index 3847b14..0000000
--- a/app/images/meters/tacho_shift_P.svg
+++ /dev/null
@@ -1,88 +0,0 @@
-<?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:xlink="http://www.w3.org/1999/xlink"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- id="svg3217"
- version="1.1"
- inkscape:version="0.48.4 r9939"
- width="56"
- height="63"
- sodipodi:docname="tacho_shift_P.png">
- <metadata
- id="metadata3223">
- <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></dc:title>
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <defs
- id="defs3221" />
- <sodipodi:namedview
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1"
- objecttolerance="10"
- gridtolerance="10"
- guidetolerance="10"
- inkscape:pageopacity="0"
- inkscape:pageshadow="2"
- inkscape:window-width="640"
- inkscape:window-height="480"
- id="namedview3219"
- showgrid="false"
- inkscape:zoom="3.7460317"
- inkscape:cx="28"
- inkscape:cy="31.5"
- inkscape:window-x="65"
- inkscape:window-y="24"
- inkscape:window-maximized="0"
- inkscape:current-layer="svg3217" />
- <image
- width="56"
- height="63"
- xlink:href="data:image/png;base64,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
-"
- id="image3225"
- x="0"
- y="0" />
-</svg>
diff --git a/app/images/meters/tacho_shift_R.svg b/app/images/meters/tacho_shift_R.svg
deleted file mode 100644
index 9007e01..0000000
--- a/app/images/meters/tacho_shift_R.svg
+++ /dev/null
@@ -1,70 +0,0 @@
-<?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:xlink="http://www.w3.org/1999/xlink"
- version="1.1"
- width="56"
- height="63"
- id="svg2">
- <metadata
- id="metadata8">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <defs
- id="defs6" />
- <image
- xlink:href="data:image/png;base64,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
-"
- x="0"
- y="0"
- width="56"
- height="63"
- id="image10" />
-</svg>
diff --git a/app/images/mid/mid_S_normal.svg b/app/images/mid/mid_S_normal.svg
deleted file mode 100644
index 5aaa6ab..0000000
--- a/app/images/mid/mid_S_normal.svg
+++ /dev/null
@@ -1,1171 +0,0 @@
-<?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:xlink="http://www.w3.org/1999/xlink"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- id="svg2"
- version="1.1"
- inkscape:version="0.48.4 r9939"
- width="300"
- height="300"
- sodipodi:docname="Untitled.png">
- <metadata
- id="metadata8">
- <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></dc:title>
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <defs
- id="defs6" />
- <sodipodi:namedview
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1"
- objecttolerance="10"
- gridtolerance="10"
- guidetolerance="10"
- inkscape:pageopacity="0"
- inkscape:pageshadow="2"
- inkscape:window-width="640"
- inkscape:window-height="480"
- id="namedview4"
- showgrid="false"
- inkscape:zoom="0.78666667"
- inkscape:cx="150"
- inkscape:cy="150"
- inkscape:window-x="0"
- inkscape:window-y="24"
- inkscape:window-maximized="0"
- inkscape:current-layer="svg2" />
- <image
- width="300"
- height="300"
- xlink:href="data:image/png;base64,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
-dr9cEIph2q8ysKyMrDQiaxDabPdaaWEjgC+kdVIJYPl2VhdOwDTMTkKxTM6oA7JYd24nKC3ULaBi
-KkUAmhYvYOEeTEOq258KWjcFG5PpwAZHBSeRVIfeVZ1a9cACVPUdwLux+qzN2s4cTxFYBH4V+M3p
-TZsscrETcGVogYELYLBLKBftdhdcwJbw8mX7WpawT493AAbMhVhWF2azmoUbTENow7bB9LYunPJz
-twIUbIQUWFkCGKSAUwoq6F3V90A9sABV/VGsX9bTnHhYKFiZxL8Gfm3j5i1W5tkOuGbdFmwEVzXS
-Da4L5sMLmHJfvrSEfdYsxGDaic1qK4B1NQun5vEMpA7YwrC9nRvlNdsytDrhHjDlpGAaUjk3Bcwt
-+gS2HPmDbeSpoHdVp089sABVvRJbYPJkl9seAPfSLWXYoJMEF7TwgulwEaZdF8x3XsVqB0IDaRP2
-sKkLy1orp99bF2g7VRdIQOOcYDq8ax6btLezi8qP5XIE2AipDPPNRvxgOj8FG3NUcNLhH/SwOln1
-wDrF2qJNzYyOA65ZaIGBK8vKITaCC6ZzXfPgBdM5rwwwPxDCRDdALG9rbs9Ca31n51HXKcE0lGAa
-TNDmofxAGJeRYlXmAgp2BinYGPYtXyg7q6eCHlTfPfXAOk06ZeCCjY4Ljp+gz+o6L9g+wOpdSrHa
-5r02Axm0oJt9LKu7rft6s+qCKSfK83uBjWEeMNXds1uOAMeHFGydn4KTBhX0sDqV6oF1mnVKwQXz
-w8Ws2XxX8/icsDGrCzDYCDFoc2DAFEBmQ8uu5kFq9vHZ18muqRjKceEEbJqTghODFPSgOsPVA+u7
-pFMCLji+68qaB6/jua+utgJZs8/Cxse6cJtVhlBXXSBlzYIJ5sMJpkf3YGNeqnn8OE4KjgMp6EH1
-vVcPrO+yTjm4YGt4dcNG2Oi+YKMD62o7MDsV6gIpqwsmmF960NVsxwSYnzyHbTop2Elf9R5Up189
-sL5H2j644KThBfPdV9ZWEIP5IJvVPLBtplkQzdN24dTsswNIQQ+qZ6h6YH2PtTNwwY7gBdsDGGwP
-YlP7L5+6c2cekLraCk5wigAFO12lpgfVd189sM4gnXJ4wfYAlofyZyEGG0HW1fGgth3NwihrFkqw
-OZiyuoCCHlLPQvXAOgO1c3DBtuAFGwEGm7swYKouaR7QTrW6v2s7zilrW3DK2vl6fz2ozgz1wDrD
-dWLwgm0DLGseyLK2Atrp0jwoZe0ITnCiC5L2kDrz1APrGaQTh1fWDiGWtRXMTpd2DKWsE18tuQfU
-ma8eWM9gnTzAsk4QZN9TnZpl3HtIPbP0DDxRe22lUwexWW0GtZMBx+l4zc3Vw+mZrx5YZ4FOH8TO
-TPVgevbqrDqRe22uZxLUeiD16tWrV69evXr16tWrV69evXr16tWrV69evXr16tWrV69evXr16tWr
-V69evXr16tWrV69evXr16tWrV69evXr16tWrV69evXr16tWrV69evXr16tWrV69evXr16tWrV69e
-vXr16tWrV69evXr16tWrV69evXr16tWrV69evXr16tWrV69evXr16tWrV69evXr16tWrV69evXr1
-6tWrV69evXr16tWrV69evXr16tWrV69evXr16tWrV69evXr16tWrV69evXr16tWrV69eZ4T+f1i3
-yZd/MBLbAAAAAElFTkSuQmCC
-"
- id="image10"
- x="0"
- y="0" />
-</svg>
diff --git a/app/images/mid/mid_other.svg b/app/images/mid/mid_other.svg
deleted file mode 100644
index 7c5b0ad..0000000
--- a/app/images/mid/mid_other.svg
+++ /dev/null
@@ -1,123 +0,0 @@
-<?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:xlink="http://www.w3.org/1999/xlink"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- id="svg3039"
- version="1.1"
- inkscape:version="0.48.4 r9939"
- width="430"
- height="100"
- sodipodi:docname="mid_other.png">
- <metadata
- id="metadata3045">
- <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></dc:title>
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <defs
- id="defs3043" />
- <sodipodi:namedview
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1"
- objecttolerance="10"
- gridtolerance="10"
- guidetolerance="10"
- inkscape:pageopacity="0"
- inkscape:pageshadow="2"
- inkscape:window-width="1711"
- inkscape:window-height="987"
- id="namedview3041"
- showgrid="false"
- inkscape:zoom="3.5953488"
- inkscape:cx="215"
- inkscape:cy="50"
- inkscape:window-x="65"
- inkscape:window-y="24"
- inkscape:window-maximized="1"
- inkscape:current-layer="svg3039" />
- <image
- width="430"
- height="100"
- xlink:href="data:image/png;base64,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
-"
- id="image3047"
- x="0"
- y="0" />
-</svg>
diff --git a/app/images/mid/recirc_inter.svg b/app/images/mid/recirc_inter.svg
deleted file mode 100644
index 64e0ec8..0000000
--- a/app/images/mid/recirc_inter.svg
+++ /dev/null
@@ -1,339 +0,0 @@
-<?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:xlink="http://www.w3.org/1999/xlink"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- id="svg2"
- version="1.1"
- inkscape:version="0.48.4 r9939"
- width="430"
- height="150"
- sodipodi:docname="inter.png">
- <metadata
- id="metadata8">
- <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></dc:title>
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <defs
- id="defs6" />
- <sodipodi:namedview
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1"
- objecttolerance="10"
- gridtolerance="10"
- guidetolerance="10"
- inkscape:pageopacity="0"
- inkscape:pageshadow="2"
- inkscape:window-width="640"
- inkscape:window-height="480"
- id="namedview4"
- showgrid="false"
- inkscape:zoom="0.68372093"
- inkscape:cx="215"
- inkscape:cy="75"
- inkscape:window-x="0"
- inkscape:window-y="24"
- inkscape:window-maximized="0"
- inkscape:current-layer="svg2" />
- <image
- width="430"
- height="150"
- xlink:href="data:image/png;base64,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
-rgAAAABJRU5ErkJggg==
-"
- id="image10"
- x="0"
- y="0" />
-</svg>
diff --git a/app/images/mid/recirc_outer.svg b/app/images/mid/recirc_outer.svg
deleted file mode 100644
index bd72e5c..0000000
--- a/app/images/mid/recirc_outer.svg
+++ /dev/null
@@ -1,339 +0,0 @@
-<?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:xlink="http://www.w3.org/1999/xlink"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- id="svg2"
- version="1.1"
- inkscape:version="0.48.4 r9939"
- width="430"
- height="150"
- sodipodi:docname="outer.png">
- <metadata
- id="metadata8">
- <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></dc:title>
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <defs
- id="defs6" />
- <sodipodi:namedview
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1"
- objecttolerance="10"
- gridtolerance="10"
- guidetolerance="10"
- inkscape:pageopacity="0"
- inkscape:pageshadow="2"
- inkscape:window-width="640"
- inkscape:window-height="480"
- id="namedview4"
- showgrid="false"
- inkscape:zoom="0.68372093"
- inkscape:cx="215"
- inkscape:cy="75"
- inkscape:window-x="0"
- inkscape:window-y="24"
- inkscape:window-maximized="0"
- inkscape:current-layer="svg2" />
- <image
- width="430"
- height="150"
- xlink:href="data:image/png;base64,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
-yQAAAABJRU5ErkJggg==
-"
- id="image10"
- x="0"
- y="0" />
-</svg>
diff --git a/app/main.cpp b/app/main.cpp
deleted file mode 100644
index 88a4978..0000000
--- a/app/main.cpp
+++ /dev/null
@@ -1,176 +0,0 @@
-/*
- * Copyright (c) 2017 TOYOTA MOTOR CORPORATION
- * Copyright (C) 2016 The Qt Company Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <QtCore/QDebug>
-#include <QtCore/QCommandLineParser>
-#include <QtCore/QUrlQuery>
-#include <QtCore/QFile>
-#include <QtDBus/QDBusInterface>
-#include <QtDBus/QDBusReply>
-#include <QtGui/QGuiApplication>
-#include <QtQml/QQmlApplicationEngine>
-#include <QtQml/QQmlContext>
-#include <QtQuickControls2/QQuickStyle>
-#include <QtDBus/QDBusConnection>
-#include <unistd.h>
-#include "camera.h"
-
-#include <QQuickWindow>
-#include <libhomescreen.hpp>
-#include <qlibwindowmanager.h>
-
-class AppVisible : public QObject
-{
- Q_OBJECT
-public:
- AppVisible(QObject *parent = nullptr) : QObject(parent){
- m_ppid = getppid();
- m_visible = true;
- QDBusConnection::sessionBus().connect("org.agl.windowmanager",
- "/windowmanager",
- "org.agl.windowmanager",
- "appLayerVisibleChanged",
- this,
- SLOT(appLayerVisibleChanged(int,bool)));
- }
-
-public slots:
- void appLayerVisibleChanged(int pid, bool visible){
- bool tempvis = visible;
-
- if(tempvis && (m_ppid != pid))
- tempvis = false;
-
- if(m_visible != tempvis){
- m_visible = tempvis;
- emit visibleChanged(m_visible);
- }
- }
-
-signals:
- void visibleChanged(const bool& visible);
-
-private:
- int m_ppid;
- bool m_visible;
-};
-
-class DBus : public QObject
-{
- Q_OBJECT
-public:
- DBus(QObject *parent = nullptr)
- : QObject(parent)
- , interface("org.agl.homescreen", "/StatusBar", "org.agl.statusbar", QDBusConnection::sessionBus())
- {}
-
- Q_INVOKABLE void setStatusIcon(int index, const QString &url) {
- interface.call("setStatusIcon", index, url);
- }
-
-private:
- QDBusInterface interface;
-};
-
-int main(int argc, char *argv[])
-{
- QString myname = QString("Als-meter-demo");
-
- QGuiApplication app(argc, argv);
- app.setApplicationName(myname);
- app.setApplicationVersion(QStringLiteral("0.1.0"));
- app.setOrganizationDomain(QStringLiteral("automotivelinux.org"));
- app.setOrganizationName(QStringLiteral("AutomotiveGradeLinux"));
-
- QQuickStyle::setStyle("AGL");
-
- QCommandLineParser parser;
- parser.addPositionalArgument("port", app.translate("main", "port for binding"));
- parser.addPositionalArgument("secret", app.translate("main", "secret for binding"));
- parser.addHelpOption();
- parser.addVersionOption();
- parser.process(app);
- QStringList positionalArguments = parser.positionalArguments();
-
- qmlRegisterType<Camera>("Camera", 1, 0, "Camera");
-
- QQmlApplicationEngine engine;
- int port = 0;
- if (positionalArguments.length() == 2) {
- port = positionalArguments.takeFirst().toInt();
- }
- QString secret = positionalArguments.takeFirst();
- QUrl bindingAddressWS;
- bindingAddressWS.setScheme(QStringLiteral("ws"));
- bindingAddressWS.setHost(QStringLiteral("localhost"));
- bindingAddressWS.setPort(port);
- bindingAddressWS.setPath(QStringLiteral("/api"));
- QUrlQuery query;
- query.addQueryItem(QStringLiteral("token"), secret);
- bindingAddressWS.setQuery(query);
- QQmlContext *context = engine.rootContext();
- AppVisible appVisible;
- context->setContextProperty(QStringLiteral("appVisible"), &appVisible);
- context->setContextProperty(QStringLiteral("bindingAddressWS"), bindingAddressWS);
-
- std::string token = secret.toStdString();
- LibHomeScreen* hs = new LibHomeScreen();
- QLibWindowmanager* qwm = new QLibWindowmanager();
-
- // WindowManager
- if(qwm->init(port,secret) != 0){
- exit(EXIT_FAILURE);
- }
- // Request a surface as described in layers.json windowmanager’s file
- if (qwm->requestSurface(myname) != 0) {
- exit(EXIT_FAILURE);
- }
- // Create an event callback against an event type. Here a lambda is called when SyncDraw event occurs
- qwm->set_event_handler(QLibWindowmanager::Event_SyncDraw, [qwm, myname](json_object *object) {
- fprintf(stderr, "Surface got syncDraw!\n");
- qwm->endDraw(myname);
- });
-
- // HomeScreen
- hs->init(port, token.c_str());
- // Set the event handler for Event_TapShortcut which will activate the surface for windowmanager
- hs->set_event_handler(LibHomeScreen::Event_TapShortcut, [qwm, myname](json_object *object){
- json_object *appnameJ = nullptr;
- if(json_object_object_get_ex(object, "application_name", &appnameJ))
- {
- const char *appname = json_object_get_string(appnameJ);
- if(myname == appname)
- {
- qDebug("Surface %s got tapShortcut\n", appname);
- qwm->activateSurface(myname);
- }
- }
- });
-
- DBus dbus;
- engine.rootContext()->setContextProperty("dbus", &dbus);
- engine.load(QUrl(QStringLiteral("qrc:/Als-meter-demo.qml")));
-
- QObject *root = engine.rootObjects().first();
- QQuickWindow *window = qobject_cast<QQuickWindow *>(root);
- QObject::connect(window, SIGNAL(frameSwapped()), qwm, SLOT(slotActivateSurface()
- ));
-
- return app.exec();
-}
-
-#include "main.moc"
diff --git a/config/pipeline.cfg b/config/pipeline.cfg
new file mode 100644
index 0000000..536540b
--- /dev/null
+++ b/config/pipeline.cfg
@@ -0,0 +1 @@
+udpsrc port=34400 caps="application/x-rtp,media=(string)video,clock-rate=(int)90000,encoding-name=(string)JPEG,payload=(int)26" ! rtpjpegdepay ! jpegdec ! videoconvert ! video/x-raw,format=RGBA ! appsink name=sink sync=true
diff --git a/include/bitmap.h b/include/bitmap.h
new file mode 100644
index 0000000..3cef52d
--- /dev/null
+++ b/include/bitmap.h
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2013 DENSO CORPORATION
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and
+ * its documentation for any purpose is hereby granted without fee, provided
+ * that the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation, and that the name of the copyright holders not be used in
+ * advertising or publicity pertaining to distribution of the software
+ * without specific, written prior permission. The copyright holders make
+ * no representations about the suitability of this software for any
+ * purpose. It is provided "as is" without express or implied warranty.
+ *
+ * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
+ * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+ * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+ * CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+#ifndef IVICONTROLLER_BITMAP_H_
+#define IVICONTROLLER_BITMAP_H_
+
+#include <stdint.h>
+
+int save_as_bitmap(const char *filename,
+ const char *buffer,
+ int32_t image_size,
+ int32_t width,
+ int32_t height,
+ int16_t bpp
+ );
+
+#endif /* IVICONTROLLER_BITMAP_H_*/
diff --git a/include/hmi-debug.h b/include/hmi-debug.h
new file mode 100644
index 0000000..2a744ba
--- /dev/null
+++ b/include/hmi-debug.h
@@ -0,0 +1,70 @@
+/*
+ * Copyright (c) 2017 TOYOTA MOTOR CORPORATION
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __HMI_DEBUG_H__
+#define __HMI_DEBUG_H__
+
+#include <time.h>
+#include <stdio.h>
+#include <stdarg.h>
+#include <string.h>
+#include <stdlib.h>
+
+enum LOG_LEVEL{
+ LOG_LEVEL_NONE = 0,
+ LOG_LEVEL_ERROR,
+ LOG_LEVEL_WARNING,
+ LOG_LEVEL_NOTICE,
+ LOG_LEVEL_INFO,
+ LOG_LEVEL_DEBUG,
+ LOG_LEVEL_MAX = LOG_LEVEL_DEBUG
+};
+
+#define __FILENAME__ (strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : __FILE__)
+
+#define HMI_ERROR(prefix, args,...) _HMI_LOG(LOG_LEVEL_ERROR, __FILENAME__, __FUNCTION__, __LINE__, prefix, args, ##__VA_ARGS__)
+#define HMI_WARNING(prefix, args,...) _HMI_LOG(LOG_LEVEL_WARNING, __FILENAME__, __FUNCTION__,__LINE__, prefix, args,##__VA_ARGS__)
+#define HMI_NOTICE(prefix, args,...) _HMI_LOG(LOG_LEVEL_NOTICE, __FILENAME__, __FUNCTION__,__LINE__, prefix, args,##__VA_ARGS__)
+#define HMI_INFO(prefix, args,...) _HMI_LOG(LOG_LEVEL_INFO, __FILENAME__, __FUNCTION__,__LINE__, prefix, args,##__VA_ARGS__)
+#define HMI_DEBUG(prefix, args,...) _HMI_LOG(LOG_LEVEL_DEBUG, __FILENAME__, __FUNCTION__,__LINE__, prefix, args,##__VA_ARGS__)
+
+static char ERROR_FLAG[6][20] = {"NONE", "ERROR", "WARNING", "NOTICE", "INFO", "DEBUG"};
+
+static void _HMI_LOG(enum LOG_LEVEL level, const char* file, const char* func, const int line, const char* prefix, const char* log, ...)
+{
+ const int log_level = (getenv("USE_HMI_DEBUG") == NULL)?LOG_LEVEL_ERROR:atoi(getenv("USE_HMI_DEBUG"));
+ if(log_level < level)
+ {
+ return;
+ }
+
+ char *message;
+ struct timespec tp;
+ unsigned int time;
+
+ clock_gettime(CLOCK_REALTIME, &tp);
+ time = (tp.tv_sec * 1000000L) + (tp.tv_nsec / 1000);
+
+ va_list args;
+ va_start(args, log);
+ if (log == NULL || vasprintf(&message, log, args) < 0)
+ message = NULL;
+ fprintf(stderr, "[%10.3f] [%s %s] [%s, %s(), Line:%d] >>> %s \n", time / 1000.0, prefix, ERROR_FLAG[level], file, func, line, message);
+ va_end(args);
+ free(message);
+}
+
+#endif //__HMI_DEBUG_H__ \ No newline at end of file
diff --git a/include/os-compatibility.h b/include/os-compatibility.h
new file mode 100644
index 0000000..690f229
--- /dev/null
+++ b/include/os-compatibility.h
@@ -0,0 +1,58 @@
+/*
+ * Copyright © 2012 Collabora, Ltd.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sublicense, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial
+ * portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+ * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+
+#ifndef OS_COMPATIBILITY_H
+#define OS_COMPATIBILITY_H
+
+#include <sys/types.h>
+
+#ifdef HAVE_EXECINFO_H
+#include <execinfo.h>
+#else
+static inline int
+backtrace(void **buffer, int size)
+{
+ return 0;
+}
+#endif
+
+int
+os_fd_set_cloexec(int fd);
+
+int
+os_socketpair_cloexec(int domain, int type, int protocol, int *sv);
+
+int
+os_epoll_create_cloexec(void);
+
+int
+os_create_anonymous_file(off_t size);
+
+#ifndef HAVE_STRCHRNUL
+char *
+strchrnul(const char *s, int c);
+#endif
+
+#endif /* OS_COMPATIBILITY_H */
diff --git a/include/wth-server-waltham-comm.h b/include/wth-server-waltham-comm.h
new file mode 100644
index 0000000..1d58dde
--- /dev/null
+++ b/include/wth-server-waltham-comm.h
@@ -0,0 +1,524 @@
+/**
+ * @licence app begin@
+ *
+ *
+ * TBD
+ *
+ *
+ * @licence end@
+ */
+/*******************************************************************************
+** **
+** SRC-MODULE: **
+** **
+** TARGET : linux **
+** **
+** PROJECT : waltham-server **
+** **
+** AUTHOR : **
+** **
+** **
+** **
+** PURPOSE : Header file declare macros, extern functions, data types etc, **
+** required to interface with waltham IPC library **
+** **
+** REMARKS : **
+** **
+** PLATFORM DEPENDANT [yes/no]: yes **
+** **
+** TO BE CHANGED BY USER [yes/no]: no **
+** **
+*******************************************************************************/
+
+#ifndef WTH_SERVER_WALTHAM_COMM_H_
+#define WTH_SERVER_WALTHAM_COMM_H_
+
+#include <stdio.h>
+#include <stdbool.h>
+#include <sys/epoll.h>
+#include <errno.h>
+#include <netinet/in.h>
+#include <string.h>
+#include <assert.h>
+#include <getopt.h>
+#include <unistd.h>
+
+#include <gst/gl/gl.h>
+#include <GLES2/gl2.h>
+#include <GLES2/gl2ext.h>
+#include <EGL/egl.h>
+#include <EGL/eglext.h>
+
+#include <wayland-egl.h>
+#include <wayland-client.h>
+#include <waltham-server.h>
+#include <waltham-connection.h>
+
+struct server;
+struct client;
+struct window;
+struct pointer;
+struct touch;
+/*
+pthread_mutex_t g_mutex;
+pthread_cond_t g_cond;
+int go_to_wait;
+*/
+extern const struct wth_display_interface display_implementation;
+
+/**
+* server_accept_client
+*
+* Accepts new waltham client connection and instantiates client structure
+*
+* @param names struct server *srv
+* @param value socket connection info and client data
+* @return none
+*/
+void server_accept_client(struct server *srv);
+
+/**
+* server_flush_clients
+*
+* write all the pending requests from the clients to socket
+*
+* @param names struct server *srv
+* @param value socket connection info and client data
+* @return none
+*/
+void server_flush_clients(struct server *srv);
+
+/**
+* client_destroy
+*
+* Destroy client connection
+*
+* @param names struct client *c
+* @param value client data
+* @return none
+*/
+void client_destroy(struct client *c);
+
+/**
+* waltham_pointer_enter
+*
+* Send pointer enter event received from weston to waltham client
+*
+* @param names struct window *window
+* uint32_t serial
+* wl_fixed_t sx
+* wl_fixed_t sy
+* @param value window - window information
+* serial - serial number of the enter event
+* sx - surface-local x coordinate
+* sy - surface-local y coordinate
+* @return none
+*/
+void waltham_pointer_enter(struct window *window, uint32_t serial,
+ wl_fixed_t sx, wl_fixed_t sy);
+
+/**
+* waltham_pointer_leave
+*
+* Send pointer leave event received from weston to waltham client
+*
+* @param names struct window *window
+* uint32_t serial
+* @param value window - window information
+* serial - serial number of the leave event
+* @return none
+*/
+void waltham_pointer_leave(struct window *window, uint32_t serial);
+
+/**
+* waltham_pointer_motion
+*
+* Send pointer motion event received from weston to waltham client
+*
+* @param names struct window *window
+* uint32_t time
+* wl_fixed_t sx
+* wl_fixed_t sy
+* @param value window - window information
+* time - timestamp with millisecond granularity
+* sx - surface-local x coordinate
+* sy - surface-local y coordinate
+* @return none
+*/
+void waltham_pointer_motion(struct window *window, uint32_t time,
+ wl_fixed_t sx, wl_fixed_t sy);
+
+/**
+* waltham_pointer_button
+*
+* Send pointer button event received from weston to waltham client
+*
+* @param names struct window *window
+* uint32_t serial
+* uint32_t time
+* uint32_t button
+* uint32_t state
+* @param value window - window information
+* serial - serial number of the button event
+* time - timestamp with millisecond granularity
+* button - button that produced the event
+* state - physical state of the button
+* @return none
+*/
+void waltham_pointer_button(struct window *window, uint32_t serial,
+ uint32_t time, uint32_t button,
+ uint32_t state);
+
+/**
+* waltham_pointer_axis
+*
+* Send pointer axis event received from weston to waltham client
+*
+* @param names struct window *window
+* uint32_t time
+* uint32_t axis
+* wl_fixed_t value
+* @param value window - window information
+* time - timestamp with millisecond granularity
+* axis - axis type
+* value - length of vector in surface-local coordinate space
+* @return none
+*/
+void waltham_pointer_axis(struct window *window, uint32_t time,
+ uint32_t axis, wl_fixed_t value);
+
+/**
+* waltham_touch_down
+*
+* Send touch down event received from weston to waltham client
+*
+* @param names struct window *window
+* uint32_t serial
+* uint32_t time
+* int32_t id
+* wl_fixed_t x_w
+* wl_fixed_t y_w
+* @param value window - window information
+* serial - serial number of the touch down event
+* time - timestamp with millisecond granularity
+* id - the unique ID of this touch point
+* x_w - surface-local x coordinate
+* y_w - surface-local y coordinate
+* @return none
+*/
+void waltham_touch_down(struct window *window, uint32_t serial,
+ uint32_t time, int32_t id,
+ wl_fixed_t x_w, wl_fixed_t y_w);
+
+/**
+* waltham_touch_up
+*
+* Send touch up event received from weston to waltham client
+*
+* @param names struct window *window
+* uint32_t serial
+* uint32_t time
+* int32_t id
+* @param value window - window information
+* serial - serial number of the touch up event
+* time - timestamp with millisecond granularity
+* id - the unique ID of this touch point
+* @return none
+*/
+void waltham_touch_up(struct window *window, uint32_t serial,
+ uint32_t time, int32_t id);
+
+/**
+* waltham_touch_motion
+*
+* Send touch motion event received from weston to waltham client
+*
+* @param names struct window *window
+* uint32_t time
+* int32_t id
+* wl_fixed_t x_w
+* wl_fixed_t y_w
+* @param value window - window information
+* time - timestamp with millisecond granularity
+* id - the unique ID of this touch point
+* x_w - surface-local x coordinate
+* y_w - surface-local y coordinate
+* @return none
+*/
+void waltham_touch_motion(struct window *window, uint32_t time,
+ int32_t id, wl_fixed_t x_w, wl_fixed_t y_w);
+
+/**
+* waltham_touch_frame
+*
+* Send touch frame event received from weston to waltham client
+*
+* @param names struct window *window
+* @param value window - window information
+* @return none
+*/
+void waltham_touch_frame(struct window *window);
+
+/**
+* waltham_touch_cancel
+*
+* Send touch cancel event received from weston to waltham client
+*
+* @param names struct window *window
+* @param value window - window information
+* @return none
+*/
+void waltham_touch_cancel(struct window *window);
+
+
+/***** macros *******/
+#define MAX_EPOLL_WATCHES 2
+
+#ifndef container_of
+#define container_of(ptr, type, member) ({ \
+ const __typeof__( ((type *)0)->member ) *__mptr = (ptr); \
+ (type *)( (char *)__mptr - offsetof(type,member) );})
+#endif
+
+#define wl_list_last_until_empty(pos, head, member) \
+ while (!wl_list_empty(head) && \
+ (pos = wl_container_of((head)->prev, pos, member), 1))
+
+#ifndef ARRAY_LENGTH
+#define ARRAY_LENGTH(a) (sizeof (a) / sizeof (a)[0])
+#endif
+
+#ifndef pr_fmt
+# define pr_fmt(fmt) fmt
+#endif
+
+#ifndef USE_STDOUT
+# define PRINT_OUT stderr
+#else
+# define PRINT_OUT stdout
+#endif
+
+#define wth_error(fmt, ...) \
+ ({ fprintf(PRINT_OUT, pr_fmt(fmt), ## __VA_ARGS__); fflush(PRINT_OUT); })
+#define wth_verbose(fmt, ...) \
+ ({ if (get_verbosity()) { fprintf(PRINT_OUT, pr_fmt(fmt), ## __VA_ARGS__); fflush(PRINT_OUT); } })
+
+/****** incline functions *****/
+static inline void *
+zalloc(size_t size)
+{
+ return calloc(1, size);
+}
+
+
+/***** Data types *****/
+/* wthp_region protocol object */
+struct region {
+ struct wthp_region *obj;
+ /* pixman_region32_t region; */
+ struct wl_list link; /* struct client::region_list */
+};
+
+/* wthp_compositor protocol object */
+struct compositor {
+ struct wthp_compositor *obj;
+ struct client *client;
+ struct wl_list link; /* struct client::compositor_list */
+};
+
+/* wthp_blob_factory protocol object */
+struct blob_factory {
+ struct wthp_blob_factory *obj;
+ struct client *client;
+ struct wl_list link; /* struct client::blob_factory_list */
+};
+
+/* wthp_buffer protocol object */
+struct buffer {
+ struct wthp_buffer *obj;
+ uint32_t data_sz;
+ void *data;
+ int32_t width;
+ int32_t height;
+ int32_t stride;
+ uint32_t format;
+ struct wl_list link; /* struct client::buffer_list */
+};
+
+/* wthp_seat protocol object */
+struct seat {
+ struct wthp_seat *obj;
+ struct client *client;
+ struct pointer *pointer;
+ struct keyboard *keyboard;
+ struct touch *touch;
+ struct wl_list link; /* struct client::seat_list */
+};
+
+/* wthp_pointer protocol object */
+struct pointer {
+ struct wthp_pointer *obj;
+ struct seat *seat;
+ struct wl_list link; /* struct client::pointer_list */
+};
+
+/* wthp_keyboard protocol object */
+struct keyboard {
+ struct wthp_keyboard *obj;
+ struct seat *seat;
+ struct wl_list link; /* struct client::keyboard_list */
+};
+
+/* wthp_touch protocol object */
+struct touch {
+ struct wthp_touch *obj;
+ struct seat *seat;
+ struct wl_list link; /* struct client::touch_list */
+};
+
+/* wthp_surface protocol object */
+struct surface {
+ struct wthp_surface *obj;
+ uint32_t ivi_id;
+ struct ivisurface3 *ivisurf;
+ struct wthp_callback *cb;
+ struct window *shm_window;
+ struct wl_list link; /* struct client::surface_list */
+};
+/* wthp_ivi_surface protocol object */
+struct ivisurface {
+ struct wthp_ivi_surface *obj;
+ struct wthp_callback *cb;
+ struct wl_list link; /* struct client::surface_list */
+ struct surface *surf;
+};
+
+/* wthp_ivi_application protocol object */
+struct application {
+ struct wthp_ivi_application *obj;
+ struct client *client;
+ struct wl_list link; /* struct client::surface_list */
+};
+
+/* wthp_registry protocol object */
+struct registry {
+ struct wthp_registry *obj;
+ struct client *client;
+ struct wl_list link; /* struct client::registry_list */
+};
+
+enum wthp_seat_capability {
+ /**
+ * the seat has pointer devices
+ */
+ WTHP_SEAT_CAPABILITY_POINTER = 1,
+ /**
+ * the seat has one or more keyboards
+ */
+ WTHP_SEAT_CAPABILITY_KEYBOARD = 2,
+ /**
+ * the seat has touch devices
+ */
+ WTHP_SEAT_CAPABILITY_TOUCH = 4,
+};
+
+/* epoll structure */
+struct watch {
+ struct server *server;
+ int fd;
+ void (*cb)(struct watch *w, uint32_t events);
+};
+
+struct client {
+ struct wl_list link; /* struct server::client_list */
+ struct server *server;
+
+ struct wth_connection *connection;
+ struct watch conn_watch;
+
+ /* client object lists for clean-up on disconnection */
+ struct wl_list registry_list; /* struct registry::link */
+ struct wl_list compositor_list; /* struct compositor::link */
+ struct wl_list region_list; /* struct region::link */
+ struct wl_list surface_list; /* struct surface::link */
+ struct wl_list buffer_list; /* struct buffer::link */
+ struct wl_list seat_list; /* struct seat::link */
+ struct wl_list pointer_list; /* struct pointer::link */
+ struct wl_list touch_list; /* struct touch::link */
+};
+
+/* server structure */
+struct server {
+ int listen_fd;
+ struct watch listen_watch;
+
+ bool running;
+ int epoll_fd;
+
+ struct wl_list client_list; /* struct client::link */
+};
+
+struct shm_buffer {
+ struct wl_buffer *buffer;
+ void *shm_data;
+ int busy;
+};
+
+struct display {
+ struct wl_display *display;
+ struct wl_registry *registry;
+ struct wl_compositor *compositor;
+ struct wl_shm *shm;
+ bool has_xrgb;
+ struct ivi_application *ivi_application;
+
+ struct wl_seat *seat;
+ struct wl_pointer *wl_pointer;
+ struct wl_keyboard *wl_keyboard;
+ struct wl_touch *wl_touch;
+ struct window *window;
+ struct {
+ EGLDisplay dpy;
+ EGLContext ctx;
+ EGLConfig conf;
+
+ PFNEGLCREATEIMAGEKHRPROC create_image;
+ PFNEGLDESTROYIMAGEKHRPROC destroy_image;
+ PFNGLEGLIMAGETARGETTEXTURE2DOESPROC image_texture_2d;
+ } egl;
+ struct {
+ GLuint vertex_shader;
+ GLuint fragment_shader;
+ GLuint program_object;
+ GLuint texture;
+ } gl;
+};
+
+struct window {
+ struct display *display;
+ struct {
+ GLuint rotation_uniform;
+ GLuint pos;
+ GLuint col;
+ } gl;
+ int width, height;
+ struct wl_surface *surface;
+ struct ivi_surface *ivi_surface;
+ struct shm_buffer buffers[2];
+ struct shm_buffer *prev_buffer;
+ struct wl_callback *callback;
+ uint32_t window_frames;
+ uint32_t window_benchmark_time;
+ int wait;
+ struct surface *server_surf;
+ struct wl_egl_window *native;
+ EGLSurface egl_surface;
+ EGLImageKHR egl_img;
+ struct seat *server_seat;
+ struct pointer *server_pointer;
+ bool ready;
+ uint32_t id_ivisurf;
+};
+
+
+#endif
diff --git a/include/wth-server-weston.h b/include/wth-server-weston.h
new file mode 100644
index 0000000..50e1b2c
--- /dev/null
+++ b/include/wth-server-weston.h
@@ -0,0 +1,99 @@
+/**
+ * @licence app begin@
+ *
+ *
+ * TBD
+ *
+ *
+ * @licence end@
+ */
+/*******************************************************************************
+** **
+** SRC-MODULE: **
+** **
+** TARGET : linux **
+** **
+** PROJECT : waltham-server **
+** **
+** AUTHOR : **
+** **
+** **
+** **
+** PURPOSE : Header file declare macros, extern functions, data types etc **
+** required to interface with weston compositor at server side **
+** **
+** REMARKS : **
+** **
+** PLATFORM DEPENDANT [yes/no]: yes **
+** **
+** TO BE CHANGED BY USER [yes/no]: no **
+** **
+*******************************************************************************/
+
+#ifndef WALTHAM_SHM_H_
+#define WALTHAM_SHM_H_
+
+#include "wth-server-waltham-comm.h"
+/**
+* wth_server_weston_shm_attach
+*
+* attach waltham surface data to weston surface
+*
+* @param names struct window *window
+* uint32_t data_sz
+* void * data
+* int32_t width
+* int32_t height
+* int32_t stride
+* uint32_t format
+* @param value struct window *window - window info pointer
+* uint32_t data_sz - buffer data size
+* void * data - buffer pointer
+* int32_t width - width
+* int32_t height -height
+* int32_t stride -stride information
+* uint32_t format - buffer data format
+* @return none
+*/
+void wth_server_weston_shm_attach(struct window *window, uint32_t data_sz, void * data,
+ int32_t width, int32_t height, int32_t stride, uint32_t format);
+
+/**
+* wth_server_weston_shm_damage
+*
+* Send weston surface damage
+*
+* @param names struct window *window
+*
+* @param value struct window *window - window info pointer
+*
+* @return none
+*/
+void wth_server_weston_shm_damage(struct window *window);
+
+/**
+* wth_server_weston_shm_commit
+*
+* Commit weston surface data
+*
+* @param names struct window *window
+*
+* @param value struct window *window - window info pointer
+*
+* @return none
+*/
+void wth_server_weston_shm_commit(struct window *window);
+
+/**
+* wth_server_weston_main
+*
+* This is the main function which will handle connection to the compositor at server side
+*
+* @param names void *data
+* @param value struct window data
+* @return 0 on success, -1 on error
+*/
+int wth_server_weston_main(void *data);
+
+
+#endif
diff --git a/package/config.xml b/package/config.xml
deleted file mode 100644
index a8047f7..0000000
--- a/package/config.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<widget xmlns="http://www.w3.org/ns/widgets" id="als-meter-demo" version="0.1">
- <name>Als-meter-demo</name>
- <icon src="icon.svg"/>
- <content src="bin/als-meter-demo" type="application/vnd.agl.native"/>
- <description>This is a steering-wheel binding's demo application</description>
- <author>TOYOTA</author>
- <license>APL 2.0</license>
- <feature name="urn:AGL:widget:required-api">
- <param name="steering-wheel" value="ws" />
- <param name="windowmanager" value="ws"/>
- <param name="homescreen" value="ws"/>
- </feature>
- <feature name="urn:AGL:widget:required-permission">
- <param name="urn:AGL:permission::public:no-htdocs" value="required" />
- </feature>
-</widget>
-
-
diff --git a/package/icon.svg b/package/icon.svg
deleted file mode 100644
index 0004e6b..0000000
--- a/package/icon.svg
+++ /dev/null
@@ -1,892 +0,0 @@
-<?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:xlink="http://www.w3.org/1999/xlink"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- id="svg3039"
- version="1.1"
- inkscape:version="0.48.4 r9939"
- width="320"
- height="320"
- sodipodi:docname="HMI_AppLauncher_Als-meter-demo_Active-01.png">
- <metadata
- id="metadata3045">
- <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></dc:title>
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <defs
- id="defs3043" />
- <sodipodi:namedview
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1"
- objecttolerance="10"
- gridtolerance="10"
- guidetolerance="10"
- inkscape:pageopacity="0"
- inkscape:pageshadow="2"
- inkscape:window-width="1615"
- inkscape:window-height="917"
- id="namedview3041"
- showgrid="false"
- inkscape:zoom="2.40625"
- inkscape:cx="160"
- inkscape:cy="160"
- inkscape:window-x="65"
- inkscape:window-y="24"
- inkscape:window-maximized="1"
- inkscape:current-layer="svg3039" />
- <image
- width="320"
- height="320"
- xlink:href="data:image/png;base64,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
-/h/nAz8BPWzqIgAAAABJRU5ErkJggg==
-"
- id="image3047"
- x="0"
- y="0" />
-</svg>
diff --git a/package/package.pro b/package/package.pro
deleted file mode 100644
index a69111f..0000000
--- a/package/package.pro
+++ /dev/null
@@ -1,19 +0,0 @@
-
-DISTFILES = icon.svg config.xml
-
-copy_icon.target = $$OUT_PWD/root/icon.svg
-copy_icon.depends = $$_PRO_FILE_PWD_/icon.svg
-copy_icon.commands = $(COPY_FILE) \"$$replace(copy_icon.depends, /, $$QMAKE_DIR_SEP)\" \"$$replace(copy_icon.target, /, $$QMAKE_DIR_SEP)\"
-QMAKE_EXTRA_TARGETS += copy_icon
-PRE_TARGETDEPS += $$copy_icon.target
-
-copy_config.target = $$OUT_PWD/root/config.xml
-copy_config.depends = $$_PRO_FILE_PWD_/config.xml
-copy_config.commands = $(COPY_FILE) \"$$replace(copy_config.depends, /, $$QMAKE_DIR_SEP)\" \"$$replace(copy_config.target, /, $$QMAKE_DIR_SEP)\"
-QMAKE_EXTRA_TARGETS += copy_config
-PRE_TARGETDEPS += $$copy_config.target
-
-wgt.target = package
-wgt.commands = wgtpkg-pack -f -o als-meter-demo.wgt root
-
-QMAKE_EXTRA_TARGETS += wgt
diff --git a/package/receiver/config.xml b/package/receiver/config.xml
new file mode 100644
index 0000000..640108a
--- /dev/null
+++ b/package/receiver/config.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<widget xmlns="http://www.w3.org/ns/widgets" id="receiver" version="0.1">
+ <name>receiver</name>
+ <icon src="icon.svg"/>
+ <content src="bin/receiver" type="application/vnd.agl.native"/>
+ <description>This is a demo application for waltham-server</description>
+ <author>TOYOA</author>
+ <license>APL 2.0 + MIT</license>
+ <feature name="urn:AGL:widget:required-api">
+ <param name="homescreen" value="ws" />
+ <param name="windowmanager" value="ws" />
+ </feature>
+ <feature name="urn:AGL:widget:required-permission">
+ <param name="urn:AGL:permission::public:no-htdocs" value="required" />
+ <param name="urn:AGL:permission::system:run-by-default" value="required" />
+ </feature>
+</widget>
diff --git a/package/receiver/icon.svg b/package/receiver/icon.svg
new file mode 100644
index 0000000..91661a7
--- /dev/null
+++ b/package/receiver/icon.svg
@@ -0,0 +1,279 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Generator: Adobe Illustrator 21.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
+
+<svg
+ xmlns:i="&amp;ns_ai;"
+ 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"
+ version="1.1"
+ x="0px"
+ y="0px"
+ viewBox="0 0 320 320"
+ style="enable-background:new 0 0 320 320;"
+ xml:space="preserve"
+ id="svg2"
+ inkscape:version="0.91 r13725"
+ sodipodi:docname="icon.svg"><metadata
+ id="metadata1292"><rdf:RDF><cc:Work
+ rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs
+ id="defs1290" /><sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="2560"
+ inkscape:window-height="1464"
+ id="namedview1288"
+ showgrid="false"
+ inkscape:zoom="0.7375"
+ inkscape:cx="-572.20339"
+ inkscape:cy="160"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="svg2" /><style
+ type="text/css"
+ id="style4">
+ .st0{display:none;}
+ .st1{display:inline;}
+ .st2{opacity:0.4;fill:url(#SVGID_1_);}
+ .st3{fill:url(#SVGID_2_);}
+ .st4{fill:#FFFFFF;}
+ .st5{font-family:'Roboto-Regular';}
+ .st6{font-size:25px;}
+ .st7{letter-spacing:6;}
+ .st8{fill:url(#SVGID_3_);}
+ .st9{fill:url(#SVGID_4_);}
+ .st10{fill:url(#SVGID_5_);}
+ .st11{fill:url(#SVGID_6_);}
+ .st12{fill:url(#SVGID_7_);}
+ .st13{fill:url(#SVGID_8_);}
+ .st14{fill:url(#SVGID_9_);}
+ .st15{fill:url(#SVGID_10_);}
+ .st16{fill:url(#SVGID_11_);}
+ .st17{fill:url(#SVGID_12_);}
+ .st18{fill:url(#SVGID_13_);}
+ .st19{fill:url(#SVGID_14_);}
+ .st20{fill:url(#SVGID_15_);}
+ .st21{fill:url(#SVGID_16_);}
+ .st22{fill:url(#SVGID_17_);}
+ .st23{fill:url(#SVGID_18_);}
+ .st24{opacity:0.29;}
+ .st25{fill:url(#SVGID_19_);}
+ .st26{fill:url(#SVGID_20_);}
+ .st27{fill:url(#SVGID_21_);}
+ .st28{fill:url(#SVGID_22_);}
+ .st29{fill:url(#SVGID_23_);}
+ .st30{fill:url(#SVGID_24_);}
+ .st31{fill:url(#SVGID_25_);}
+ .st32{fill:url(#SVGID_26_);}
+ .st33{fill:url(#SVGID_27_);}
+ .st34{fill:url(#SVGID_28_);}
+ .st35{fill:url(#SVGID_29_);}
+ .st36{fill:url(#SVGID_30_);}
+ .st37{fill:url(#SVGID_31_);}
+ .st38{fill:url(#SVGID_32_);}
+ .st39{fill:url(#SVGID_33_);}
+ .st40{fill:url(#SVGID_34_);}
+ .st41{fill:url(#SVGID_35_);}
+ .st42{fill:url(#SVGID_36_);}
+ .st43{opacity:0.4;fill:url(#SVGID_37_);}
+ .st44{fill:url(#SVGID_38_);}
+ .st45{fill:url(#SVGID_39_);}
+ .st46{fill:url(#SVGID_40_);}
+ .st47{fill:url(#SVGID_41_);}
+ .st48{fill:url(#SVGID_42_);}
+ .st49{fill:url(#SVGID_43_);}
+ .st50{fill:url(#SVGID_44_);}
+ .st51{display:inline;opacity:0.29;}
+ .st52{display:inline;fill:url(#SVGID_45_);}
+ .st53{display:inline;fill:url(#SVGID_46_);}
+ .st54{display:inline;fill:#FFFFFF;}
+ .st55{display:inline;fill:url(#SVGID_47_);}
+ .st56{display:inline;fill:url(#SVGID_48_);}
+ .st57{display:inline;fill:url(#SVGID_49_);}
+ .st58{display:inline;fill:url(#SVGID_50_);}
+ .st59{display:inline;fill:url(#SVGID_51_);}
+ .st60{display:inline;fill:url(#SVGID_52_);}
+ .st61{opacity:0.4;fill:url(#SVGID_53_);}
+ .st62{fill:url(#SVGID_54_);}
+ .st63{fill:url(#SVGID_55_);}
+ .st64{fill:url(#SVGID_56_);}
+ .st65{fill:url(#SVGID_57_);}
+ .st66{fill:url(#SVGID_58_);}
+ .st67{opacity:0.4;fill:url(#SVGID_59_);}
+ .st68{fill:url(#SVGID_60_);}
+ .st69{fill:url(#SVGID_61_);}
+ .st70{fill:url(#SVGID_62_);}
+ .st71{fill:url(#SVGID_63_);}
+ .st72{fill:url(#SVGID_64_);}
+ .st73{fill:url(#SVGID_65_);}
+ .st74{fill:url(#SVGID_66_);}
+ .st75{fill:url(#SVGID_67_);}
+ .st76{fill:url(#SVGID_68_);}
+ .st77{fill:url(#SVGID_69_);}
+ .st78{fill:url(#SVGID_70_);}
+ .st79{fill:url(#SVGID_71_);}
+ .st80{fill:url(#SVGID_72_);}
+ .st81{fill:url(#SVGID_73_);}
+ .st82{fill:url(#SVGID_74_);}
+ .st83{fill:url(#SVGID_75_);}
+ .st84{fill:url(#SVGID_76_);}
+ .st85{fill:url(#SVGID_77_);}
+ .st86{fill:url(#SVGID_78_);}
+ .st87{fill:url(#SVGID_79_);}
+ .st88{fill:url(#SVGID_80_);}
+ .st89{fill:url(#SVGID_81_);}
+ .st90{fill:url(#SVGID_82_);}
+ .st91{fill:url(#SVGID_83_);}
+ .st92{fill:url(#SVGID_84_);}
+ .st93{fill:url(#SVGID_85_);}
+ .st94{fill:url(#SVGID_86_);}
+ .st95{opacity:0.4;fill:url(#SVGID_87_);}
+ .st96{fill:url(#SVGID_88_);}
+ .st97{fill:url(#SVGID_89_);}
+ .st98{fill:url(#SVGID_90_);}
+ .st99{fill:url(#SVGID_91_);}
+ .st100{fill:url(#SVGID_92_);}
+ .st101{fill:url(#SVGID_93_);}
+ .st102{fill:url(#SVGID_94_);}
+ .st103{opacity:0.4;fill:url(#SVGID_95_);}
+ .st104{fill:url(#SVGID_96_);}
+ .st105{fill:url(#SVGID_97_);}
+ .st106{fill:url(#SVGID_98_);}
+ .st107{fill:url(#SVGID_99_);}
+ .st108{fill:url(#SVGID_100_);}
+ .st109{fill:url(#SVGID_101_);}
+ .st110{display:inline;fill:url(#SVGID_102_);}
+ .st111{display:inline;fill:url(#SVGID_103_);}
+ .st112{fill:url(#SVGID_104_);}
+ .st113{fill:url(#SVGID_105_);}
+ .st114{fill:url(#SVGID_106_);}
+ .st115{fill:url(#SVGID_107_);}
+ .st116{fill:url(#SVGID_108_);}
+ .st117{opacity:0.4;fill:url(#SVGID_109_);}
+ .st118{fill:url(#SVGID_110_);}
+ .st119{fill:url(#SVGID_111_);}
+ .st120{fill:url(#SVGID_112_);}
+ .st121{fill:url(#SVGID_113_);}
+ .st122{fill:url(#SVGID_114_);}
+ .st123{opacity:0.4;fill:url(#SVGID_115_);}
+ .st124{fill:url(#SVGID_116_);}
+ .st125{fill:url(#SVGID_117_);}
+ .st126{fill:url(#SVGID_118_);}
+ .st127{display:inline;fill:url(#SVGID_119_);}
+ .st128{display:inline;fill:url(#SVGID_120_);}
+ .st129{fill:url(#SVGID_121_);}
+ .st130{fill:url(#SVGID_122_);}
+</style><switch
+ id="switch6"><g
+ i:extraneous="self"
+ id="g8"><g
+ id="Multimedia_Inactive_copy"><circle
+ class="st24"
+ cx="159.7"
+ cy="133.4"
+ r="101.9"
+ id="circle884" /><linearGradient
+ id="SVGID_91_"
+ gradientUnits="userSpaceOnUse"
+ x1="115.9317"
+ y1="254.1836"
+ x2="256.3852"
+ y2="-133.5267"><stop
+ offset="0"
+ style="stop-color:#8BC53F"
+ id="stop887" /><stop
+ offset="2.015080e-02"
+ style="stop-color:#7CCB56;stop-opacity:0.9678"
+ id="stop889" /><stop
+ offset="6.089833e-02"
+ style="stop-color:#62D67D;stop-opacity:0.9028"
+ id="stop891" /><stop
+ offset="0.1057"
+ style="stop-color:#4BDFA0;stop-opacity:0.8312"
+ id="stop893" /><stop
+ offset="0.1543"
+ style="stop-color:#38E7BE;stop-opacity:0.7537"
+ id="stop895" /><stop
+ offset="0.2077"
+ style="stop-color:#28EED6;stop-opacity:0.6684"
+ id="stop897" /><stop
+ offset="0.2681"
+ style="stop-color:#1CF3E8;stop-opacity:0.572"
+ id="stop899" /><stop
+ offset="0.3394"
+ style="stop-color:#13F6F5;stop-opacity:0.4581"
+ id="stop901" /><stop
+ offset="0.4323"
+ style="stop-color:#0EF8FD;stop-opacity:0.3098"
+ id="stop903" /><stop
+ offset="0.6264"
+ style="stop-color:#0DF9FF;stop-opacity:0"
+ id="stop905" /></linearGradient><circle
+ class="st99"
+ cx="159.7"
+ cy="133.4"
+ r="101.9"
+ id="circle907" /><linearGradient
+ id="SVGID_92_"
+ gradientUnits="userSpaceOnUse"
+ x1="4.0481"
+ y1="287.9492"
+ x2="320.4859"
+ y2="-15.4029"
+ gradientTransform="matrix(1 5.464556e-03 -5.464556e-03 1 -2.0192 -3.0212)"><stop
+ offset="0"
+ style="stop-color:#59FF7F"
+ id="stop910" /><stop
+ offset="1"
+ style="stop-color:#6BFBFF"
+ id="stop912" /></linearGradient><path
+ class="st100"
+ d="M160,238.8c-0.2,0-0.4,0-0.6,0c-58-0.3-104.9-47.7-104.6-105.7C55.2,75.3,102.3,28.5,160,28.5 c0.2,0,0.4,0,0.6,0c58,0.3,104.9,47.7,104.6,105.7l0,0C264.8,192,217.7,238.8,160,238.8z M160,32.2 c-55.7,0-101.2,45.2-101.5,100.9c-0.3,55.9,45,101.7,100.9,102c0.2,0,0.4,0,0.6,0c55.7,0,101.2-45.2,101.5-100.9 c0.3-55.9-45-101.7-100.9-102C160.4,32.2,160.2,32.2,160,32.2z"
+ id="path914" /><g
+ id="g916"><text
+ transform="matrix(1 0 0 1 53.5841 284.7119)"
+ class="st4 st5 st6 st7"
+ id="text918">MULTIMEDIA</text>
+<linearGradient
+ id="SVGID_93_"
+ gradientUnits="userSpaceOnUse"
+ x1="140.5445"
+ y1="202.2363"
+ x2="186.8444"
+ y2="68.7049"><stop
+ offset="0"
+ style="stop-color:#59FF7F"
+ id="stop921" /><stop
+ offset="1"
+ style="stop-color:#6BFBFF"
+ id="stop923" /></linearGradient><path
+ class="st101"
+ d="M114.5,190.9c-6.4,0-12-2.6-14.8-7.5c-2.9-4.9-5.4-14.5,9.6-23.2c4.8-2.8,17.1-3.9,20.8-4l0.1,3.6 c-4.6,0.1-15.5,1.4-19.1,3.5c-9.4,5.4-12.1,11.5-8.3,18.3c3.8,6.6,14.6,7.6,24,2.2c6.6-3.8,10.6-10.5,10.7-17.9l-0.1-0.7V95.4 l71.9-14.2l0.1,71.3c0,6.7-3.3,16.4-12.5,21.8c-11.1,6.4-24.1,4.8-28.9-3.5c-2.9-4.9-5.4-14.5,9.6-23.2 c4.4-2.5,14.4-3.8,18.8-3.9l0.1,3.6c-4.2,0.1-13.5,1.4-17.1,3.5c-6.4,3.7-13.1,9.9-8.3,18.3c3.8,6.6,14.6,7.6,24,2.2 c7.9-4.5,10.7-12.8,10.7-18.5l-0.1-0.8V85.6l-64.7,12.7v66.8l0.1,0.7c0,8.7-4.7,16.6-12.5,21.1 C123.9,189.6,119,190.9,114.5,190.9z"
+ id="path925" /><linearGradient
+ id="SVGID_94_"
+ gradientUnits="userSpaceOnUse"
+ x1="145.3286"
+ y1="203.8951"
+ x2="191.6285"
+ y2="70.3637"><stop
+ offset="0"
+ style="stop-color:#59FF7F"
+ id="stop928" /><stop
+ offset="1"
+ style="stop-color:#6BFBFF"
+ id="stop930" /></linearGradient><polygon
+ class="st102"
+ points="155.6,123.3 154.8,119.8 195.5,110.2 196.3,113.7 "
+ id="polygon932" /></g></g></g></switch></svg> \ No newline at end of file
diff --git a/package/root/config.xml b/package/root/config.xml
new file mode 100644
index 0000000..41f49ca
--- /dev/null
+++ b/package/root/config.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<widget xmlns="http://www.w3.org/ns/widgets" id="waltham-server" version="0.1">
+ <name>WALTHAM-SERVER</name>
+ <icon src="icon.svg"/>
+ <content src="bin/waltham-server" type="application/vnd.agl.native"/>
+ <description>This is a demo application for waltham-server</description>
+ <author>TOYOA</author>
+ <license>APL 2.0 + MIT</license>
+ <feature name="urn:AGL:widget:required-api">
+ <param name="homescreen" value="ws" />
+ <param name="windowmanager" value="ws" />
+ </feature>
+ <feature name="urn:AGL:widget:required-permission">
+ <param name="urn:AGL:permission::public:no-htdocs" value="required" />
+ <param name="urn:AGL:permission::system:run-by-default" value="required" />
+ </feature>
+</widget>
diff --git a/package/root/icon.svg b/package/root/icon.svg
new file mode 100644
index 0000000..91661a7
--- /dev/null
+++ b/package/root/icon.svg
@@ -0,0 +1,279 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Generator: Adobe Illustrator 21.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
+
+<svg
+ xmlns:i="&amp;ns_ai;"
+ 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"
+ version="1.1"
+ x="0px"
+ y="0px"
+ viewBox="0 0 320 320"
+ style="enable-background:new 0 0 320 320;"
+ xml:space="preserve"
+ id="svg2"
+ inkscape:version="0.91 r13725"
+ sodipodi:docname="icon.svg"><metadata
+ id="metadata1292"><rdf:RDF><cc:Work
+ rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs
+ id="defs1290" /><sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="2560"
+ inkscape:window-height="1464"
+ id="namedview1288"
+ showgrid="false"
+ inkscape:zoom="0.7375"
+ inkscape:cx="-572.20339"
+ inkscape:cy="160"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="svg2" /><style
+ type="text/css"
+ id="style4">
+ .st0{display:none;}
+ .st1{display:inline;}
+ .st2{opacity:0.4;fill:url(#SVGID_1_);}
+ .st3{fill:url(#SVGID_2_);}
+ .st4{fill:#FFFFFF;}
+ .st5{font-family:'Roboto-Regular';}
+ .st6{font-size:25px;}
+ .st7{letter-spacing:6;}
+ .st8{fill:url(#SVGID_3_);}
+ .st9{fill:url(#SVGID_4_);}
+ .st10{fill:url(#SVGID_5_);}
+ .st11{fill:url(#SVGID_6_);}
+ .st12{fill:url(#SVGID_7_);}
+ .st13{fill:url(#SVGID_8_);}
+ .st14{fill:url(#SVGID_9_);}
+ .st15{fill:url(#SVGID_10_);}
+ .st16{fill:url(#SVGID_11_);}
+ .st17{fill:url(#SVGID_12_);}
+ .st18{fill:url(#SVGID_13_);}
+ .st19{fill:url(#SVGID_14_);}
+ .st20{fill:url(#SVGID_15_);}
+ .st21{fill:url(#SVGID_16_);}
+ .st22{fill:url(#SVGID_17_);}
+ .st23{fill:url(#SVGID_18_);}
+ .st24{opacity:0.29;}
+ .st25{fill:url(#SVGID_19_);}
+ .st26{fill:url(#SVGID_20_);}
+ .st27{fill:url(#SVGID_21_);}
+ .st28{fill:url(#SVGID_22_);}
+ .st29{fill:url(#SVGID_23_);}
+ .st30{fill:url(#SVGID_24_);}
+ .st31{fill:url(#SVGID_25_);}
+ .st32{fill:url(#SVGID_26_);}
+ .st33{fill:url(#SVGID_27_);}
+ .st34{fill:url(#SVGID_28_);}
+ .st35{fill:url(#SVGID_29_);}
+ .st36{fill:url(#SVGID_30_);}
+ .st37{fill:url(#SVGID_31_);}
+ .st38{fill:url(#SVGID_32_);}
+ .st39{fill:url(#SVGID_33_);}
+ .st40{fill:url(#SVGID_34_);}
+ .st41{fill:url(#SVGID_35_);}
+ .st42{fill:url(#SVGID_36_);}
+ .st43{opacity:0.4;fill:url(#SVGID_37_);}
+ .st44{fill:url(#SVGID_38_);}
+ .st45{fill:url(#SVGID_39_);}
+ .st46{fill:url(#SVGID_40_);}
+ .st47{fill:url(#SVGID_41_);}
+ .st48{fill:url(#SVGID_42_);}
+ .st49{fill:url(#SVGID_43_);}
+ .st50{fill:url(#SVGID_44_);}
+ .st51{display:inline;opacity:0.29;}
+ .st52{display:inline;fill:url(#SVGID_45_);}
+ .st53{display:inline;fill:url(#SVGID_46_);}
+ .st54{display:inline;fill:#FFFFFF;}
+ .st55{display:inline;fill:url(#SVGID_47_);}
+ .st56{display:inline;fill:url(#SVGID_48_);}
+ .st57{display:inline;fill:url(#SVGID_49_);}
+ .st58{display:inline;fill:url(#SVGID_50_);}
+ .st59{display:inline;fill:url(#SVGID_51_);}
+ .st60{display:inline;fill:url(#SVGID_52_);}
+ .st61{opacity:0.4;fill:url(#SVGID_53_);}
+ .st62{fill:url(#SVGID_54_);}
+ .st63{fill:url(#SVGID_55_);}
+ .st64{fill:url(#SVGID_56_);}
+ .st65{fill:url(#SVGID_57_);}
+ .st66{fill:url(#SVGID_58_);}
+ .st67{opacity:0.4;fill:url(#SVGID_59_);}
+ .st68{fill:url(#SVGID_60_);}
+ .st69{fill:url(#SVGID_61_);}
+ .st70{fill:url(#SVGID_62_);}
+ .st71{fill:url(#SVGID_63_);}
+ .st72{fill:url(#SVGID_64_);}
+ .st73{fill:url(#SVGID_65_);}
+ .st74{fill:url(#SVGID_66_);}
+ .st75{fill:url(#SVGID_67_);}
+ .st76{fill:url(#SVGID_68_);}
+ .st77{fill:url(#SVGID_69_);}
+ .st78{fill:url(#SVGID_70_);}
+ .st79{fill:url(#SVGID_71_);}
+ .st80{fill:url(#SVGID_72_);}
+ .st81{fill:url(#SVGID_73_);}
+ .st82{fill:url(#SVGID_74_);}
+ .st83{fill:url(#SVGID_75_);}
+ .st84{fill:url(#SVGID_76_);}
+ .st85{fill:url(#SVGID_77_);}
+ .st86{fill:url(#SVGID_78_);}
+ .st87{fill:url(#SVGID_79_);}
+ .st88{fill:url(#SVGID_80_);}
+ .st89{fill:url(#SVGID_81_);}
+ .st90{fill:url(#SVGID_82_);}
+ .st91{fill:url(#SVGID_83_);}
+ .st92{fill:url(#SVGID_84_);}
+ .st93{fill:url(#SVGID_85_);}
+ .st94{fill:url(#SVGID_86_);}
+ .st95{opacity:0.4;fill:url(#SVGID_87_);}
+ .st96{fill:url(#SVGID_88_);}
+ .st97{fill:url(#SVGID_89_);}
+ .st98{fill:url(#SVGID_90_);}
+ .st99{fill:url(#SVGID_91_);}
+ .st100{fill:url(#SVGID_92_);}
+ .st101{fill:url(#SVGID_93_);}
+ .st102{fill:url(#SVGID_94_);}
+ .st103{opacity:0.4;fill:url(#SVGID_95_);}
+ .st104{fill:url(#SVGID_96_);}
+ .st105{fill:url(#SVGID_97_);}
+ .st106{fill:url(#SVGID_98_);}
+ .st107{fill:url(#SVGID_99_);}
+ .st108{fill:url(#SVGID_100_);}
+ .st109{fill:url(#SVGID_101_);}
+ .st110{display:inline;fill:url(#SVGID_102_);}
+ .st111{display:inline;fill:url(#SVGID_103_);}
+ .st112{fill:url(#SVGID_104_);}
+ .st113{fill:url(#SVGID_105_);}
+ .st114{fill:url(#SVGID_106_);}
+ .st115{fill:url(#SVGID_107_);}
+ .st116{fill:url(#SVGID_108_);}
+ .st117{opacity:0.4;fill:url(#SVGID_109_);}
+ .st118{fill:url(#SVGID_110_);}
+ .st119{fill:url(#SVGID_111_);}
+ .st120{fill:url(#SVGID_112_);}
+ .st121{fill:url(#SVGID_113_);}
+ .st122{fill:url(#SVGID_114_);}
+ .st123{opacity:0.4;fill:url(#SVGID_115_);}
+ .st124{fill:url(#SVGID_116_);}
+ .st125{fill:url(#SVGID_117_);}
+ .st126{fill:url(#SVGID_118_);}
+ .st127{display:inline;fill:url(#SVGID_119_);}
+ .st128{display:inline;fill:url(#SVGID_120_);}
+ .st129{fill:url(#SVGID_121_);}
+ .st130{fill:url(#SVGID_122_);}
+</style><switch
+ id="switch6"><g
+ i:extraneous="self"
+ id="g8"><g
+ id="Multimedia_Inactive_copy"><circle
+ class="st24"
+ cx="159.7"
+ cy="133.4"
+ r="101.9"
+ id="circle884" /><linearGradient
+ id="SVGID_91_"
+ gradientUnits="userSpaceOnUse"
+ x1="115.9317"
+ y1="254.1836"
+ x2="256.3852"
+ y2="-133.5267"><stop
+ offset="0"
+ style="stop-color:#8BC53F"
+ id="stop887" /><stop
+ offset="2.015080e-02"
+ style="stop-color:#7CCB56;stop-opacity:0.9678"
+ id="stop889" /><stop
+ offset="6.089833e-02"
+ style="stop-color:#62D67D;stop-opacity:0.9028"
+ id="stop891" /><stop
+ offset="0.1057"
+ style="stop-color:#4BDFA0;stop-opacity:0.8312"
+ id="stop893" /><stop
+ offset="0.1543"
+ style="stop-color:#38E7BE;stop-opacity:0.7537"
+ id="stop895" /><stop
+ offset="0.2077"
+ style="stop-color:#28EED6;stop-opacity:0.6684"
+ id="stop897" /><stop
+ offset="0.2681"
+ style="stop-color:#1CF3E8;stop-opacity:0.572"
+ id="stop899" /><stop
+ offset="0.3394"
+ style="stop-color:#13F6F5;stop-opacity:0.4581"
+ id="stop901" /><stop
+ offset="0.4323"
+ style="stop-color:#0EF8FD;stop-opacity:0.3098"
+ id="stop903" /><stop
+ offset="0.6264"
+ style="stop-color:#0DF9FF;stop-opacity:0"
+ id="stop905" /></linearGradient><circle
+ class="st99"
+ cx="159.7"
+ cy="133.4"
+ r="101.9"
+ id="circle907" /><linearGradient
+ id="SVGID_92_"
+ gradientUnits="userSpaceOnUse"
+ x1="4.0481"
+ y1="287.9492"
+ x2="320.4859"
+ y2="-15.4029"
+ gradientTransform="matrix(1 5.464556e-03 -5.464556e-03 1 -2.0192 -3.0212)"><stop
+ offset="0"
+ style="stop-color:#59FF7F"
+ id="stop910" /><stop
+ offset="1"
+ style="stop-color:#6BFBFF"
+ id="stop912" /></linearGradient><path
+ class="st100"
+ d="M160,238.8c-0.2,0-0.4,0-0.6,0c-58-0.3-104.9-47.7-104.6-105.7C55.2,75.3,102.3,28.5,160,28.5 c0.2,0,0.4,0,0.6,0c58,0.3,104.9,47.7,104.6,105.7l0,0C264.8,192,217.7,238.8,160,238.8z M160,32.2 c-55.7,0-101.2,45.2-101.5,100.9c-0.3,55.9,45,101.7,100.9,102c0.2,0,0.4,0,0.6,0c55.7,0,101.2-45.2,101.5-100.9 c0.3-55.9-45-101.7-100.9-102C160.4,32.2,160.2,32.2,160,32.2z"
+ id="path914" /><g
+ id="g916"><text
+ transform="matrix(1 0 0 1 53.5841 284.7119)"
+ class="st4 st5 st6 st7"
+ id="text918">MULTIMEDIA</text>
+<linearGradient
+ id="SVGID_93_"
+ gradientUnits="userSpaceOnUse"
+ x1="140.5445"
+ y1="202.2363"
+ x2="186.8444"
+ y2="68.7049"><stop
+ offset="0"
+ style="stop-color:#59FF7F"
+ id="stop921" /><stop
+ offset="1"
+ style="stop-color:#6BFBFF"
+ id="stop923" /></linearGradient><path
+ class="st101"
+ d="M114.5,190.9c-6.4,0-12-2.6-14.8-7.5c-2.9-4.9-5.4-14.5,9.6-23.2c4.8-2.8,17.1-3.9,20.8-4l0.1,3.6 c-4.6,0.1-15.5,1.4-19.1,3.5c-9.4,5.4-12.1,11.5-8.3,18.3c3.8,6.6,14.6,7.6,24,2.2c6.6-3.8,10.6-10.5,10.7-17.9l-0.1-0.7V95.4 l71.9-14.2l0.1,71.3c0,6.7-3.3,16.4-12.5,21.8c-11.1,6.4-24.1,4.8-28.9-3.5c-2.9-4.9-5.4-14.5,9.6-23.2 c4.4-2.5,14.4-3.8,18.8-3.9l0.1,3.6c-4.2,0.1-13.5,1.4-17.1,3.5c-6.4,3.7-13.1,9.9-8.3,18.3c3.8,6.6,14.6,7.6,24,2.2 c7.9-4.5,10.7-12.8,10.7-18.5l-0.1-0.8V85.6l-64.7,12.7v66.8l0.1,0.7c0,8.7-4.7,16.6-12.5,21.1 C123.9,189.6,119,190.9,114.5,190.9z"
+ id="path925" /><linearGradient
+ id="SVGID_94_"
+ gradientUnits="userSpaceOnUse"
+ x1="145.3286"
+ y1="203.8951"
+ x2="191.6285"
+ y2="70.3637"><stop
+ offset="0"
+ style="stop-color:#59FF7F"
+ id="stop928" /><stop
+ offset="1"
+ style="stop-color:#6BFBFF"
+ id="stop930" /></linearGradient><polygon
+ class="st102"
+ points="155.6,123.3 154.8,119.8 195.5,110.2 196.3,113.7 "
+ id="polygon932" /></g></g></g></switch></svg> \ No newline at end of file
diff --git a/protocol/ivi-application.xml b/protocol/ivi-application.xml
new file mode 100644
index 0000000..78e2569
--- /dev/null
+++ b/protocol/ivi-application.xml
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<protocol name="ivi_application">
+
+ <copyright>
+ Copyright (C) 2013 DENSO CORPORATION
+ Copyright (c) 2013 BMW Car IT GmbH
+
+ Permission is hereby granted, free of charge, to any person obtaining a
+ copy of this software and associated documentation files (the "Software"),
+ to deal in the Software without restriction, including without limitation
+ the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ and/or sell copies of the Software, and to permit persons to whom the
+ Software is furnished to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice (including the next
+ paragraph) shall be included in all copies or substantial portions of the
+ Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ DEALINGS IN THE SOFTWARE.
+ </copyright>
+
+ <interface name="ivi_surface" version="1">
+ <description summary="application interface to surface in ivi compositor"/>
+
+ <request name="destroy" type="destructor">
+ <description summary="destroy ivi_surface">
+ This removes link from ivi_id to wl_surface and destroys ivi_surface.
+ The ID, ivi_id, is free and can be used for surface_create again.
+ </description>
+ </request>
+
+ <event name="configure">
+ <description summary="suggest resize">
+ The configure event asks the client to resize its surface.
+
+ The size is a hint, in the sense that the client is free to
+ ignore it if it doesn't resize, pick a smaller size (to
+ satisfy aspect ratio or resize in steps of NxM pixels).
+
+ The client is free to dismiss all but the last configure
+ event it received.
+
+ The width and height arguments specify the size of the window
+ in surface-local coordinates.
+ </description>
+ <arg name="width" type="int"/>
+ <arg name="height" type="int"/>
+ </event>
+ </interface>
+
+ <interface name="ivi_application" version="1">
+ <description summary="create ivi-style surfaces">
+ This interface is exposed as a global singleton.
+ This interface is implemented by servers that provide IVI-style user interfaces.
+ It allows clients to associate a ivi_surface with wl_surface.
+ </description>
+
+ <enum name="error">
+ <entry name="role" value="0" summary="given wl_surface has another role"/>
+ <entry name="ivi_id" value="1" summary="given ivi_id is assigned to another wl_surface"/>
+ </enum>
+
+ <request name="surface_create">
+ <description summary="create ivi_surface with numeric ID in ivi compositor">
+ This request gives the wl_surface the role of an IVI Surface. Creating more than
+ one ivi_surface for a wl_surface is not allowed. Note, that this still allows the
+ following example:
+
+ 1. create a wl_surface
+ 2. create ivi_surface for the wl_surface
+ 3. destroy the ivi_surface
+ 4. create ivi_surface for the wl_surface (with the same or another ivi_id as before)
+
+ surface_create will create a interface:ivi_surface with numeric ID; ivi_id in
+ ivi compositor. These ivi_ids are defined as unique in the system to identify
+ it inside of ivi compositor. The ivi compositor implements business logic how to
+ set properties of the surface with ivi_id according to status of the system.
+ E.g. a unique ID for Car Navigation application is used for implementing special
+ logic of the application about where it shall be located.
+ The server regards following cases as protocol errors and disconnects the client.
+ - wl_surface already has an nother role.
+ - ivi_id is already assigned to an another wl_surface.
+
+ If client destroys ivi_surface or wl_surface which is assigne to the ivi_surface,
+ ivi_id which is assigned to the ivi_surface is free for reuse.
+ </description>
+ <arg name="ivi_id" type="uint"/>
+ <arg name="surface" type="object" interface="wl_surface"/>
+ <arg name="id" type="new_id" interface="ivi_surface"/>
+ </request>
+
+ </interface>
+
+</protocol>
diff --git a/sample/als-meter-demo_git.bb b/sample/als-meter-demo_git.bb
deleted file mode 100644
index 6dffeab..0000000
--- a/sample/als-meter-demo_git.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "Demo app for streeting-wheel"
-DESCRIPTION = "AGL demo app for streeting-wheel"
-HOMEPAGE = "https://gerrit.automotivelinux.org/gerrit/#/admin/projects/apps/als-meter-demo"
-SECTION = "apps"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=ae6497158920d9524cf208c09cc4c984"
-
-SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/als-meter-demo;protocol=https;branch=master"
-SRCREV = "9457d3ebf0fd63f63f5d8abdd570868c0298a92f"
-
-PV = "1.0+git${SRCPV}"
-S = "${WORKDIR}/git"
-
-# build-time dependencies
-DEPENDS += "qtquickcontrols2 opencv"
-
-# runtime dependencies
-RDEPENDS_${PN} += "agl-service-steering-wheel"
-
-inherit qmake5 aglwgt
diff --git a/src/utils/bitmap.c b/src/utils/bitmap.c
new file mode 100644
index 0000000..2c7fdb5
--- /dev/null
+++ b/src/utils/bitmap.c
@@ -0,0 +1,107 @@
+/*
+ * Copyright (C) 2013 DENSO CORPORATION
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and
+ * its documentation for any purpose is hereby granted without fee, provided
+ * that the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation, and that the name of the copyright holders not be used in
+ * advertising or publicity pertaining to distribution of the software
+ * without specific, written prior permission. The copyright holders make
+ * no representations about the suitability of this software for any
+ * purpose. It is provided "as is" without express or implied warranty.
+ *
+ * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
+ * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+ * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+ * CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+#include "bitmap.h"
+#include <stdio.h>
+
+struct __attribute__ ((__packed__)) BITMAPFILEHEADER {
+ char bfType[2];
+ uint32_t bfSize;
+ uint16_t bfReserved1;
+ uint16_t bfReserved2;
+ uint32_t bfOffBits;
+};
+
+struct __attribute__ ((__packed__)) BITMAPINFOHEADER {
+ uint32_t biSize;
+ uint32_t biWidth;
+ uint32_t biHeight;
+ uint16_t biPlanes;
+ uint16_t biBitCount;
+ uint32_t biCompression;
+ uint32_t biSizeImage;
+ uint32_t biXPixPerMeter;
+ uint32_t biYPixPerMeter;
+ uint32_t biClrUsed;
+ uint32_t biClrImporant;
+};
+
+static void
+create_file_header(struct BITMAPFILEHEADER *file_header, int32_t image_size)
+{
+ file_header->bfType[0] = 'B';
+ file_header->bfType[1] = 'M';
+ file_header->bfSize = sizeof(struct BITMAPFILEHEADER)
+ + sizeof(struct BITMAPINFOHEADER)
+ + image_size;
+ file_header->bfOffBits = sizeof(struct BITMAPFILEHEADER)
+ + sizeof(struct BITMAPINFOHEADER);
+}
+
+static void
+create_info_header(struct BITMAPINFOHEADER *info_header, int32_t image_size, int32_t width, int32_t height, int16_t bpp)
+{
+ info_header->biSize = sizeof(struct BITMAPINFOHEADER);
+ info_header->biWidth = width;
+ info_header->biHeight = height;
+ info_header->biPlanes = 1;
+ info_header->biBitCount = bpp;
+ info_header->biSizeImage = image_size;
+}
+
+static int
+write_bitmap(const char *filename,
+ const struct BITMAPFILEHEADER *file_header,
+ const struct BITMAPINFOHEADER *info_header,
+ const char *buffer)
+{
+ FILE *fp = fopen(filename, "w");
+ if (fp == NULL) {
+ return -1;
+ }
+
+ fwrite(file_header, sizeof(struct BITMAPFILEHEADER), 1, fp);
+ fwrite(info_header, sizeof(struct BITMAPINFOHEADER), 1, fp);
+ fwrite(buffer, info_header->biSizeImage, 1, fp);
+
+ fclose(fp);
+ return 0;
+}
+
+int
+save_as_bitmap(const char *filename,
+ const char *buffer,
+ int32_t image_size,
+ int32_t width,
+ int32_t height,
+ int16_t bpp)
+{
+ if ((filename == NULL) || (buffer == NULL)) {
+ return -1;
+ }
+
+ struct BITMAPFILEHEADER file_header = {};
+ struct BITMAPINFOHEADER info_header = {};
+
+ create_file_header(&file_header, image_size);
+ create_info_header(&info_header, image_size, width, height, bpp);
+ return write_bitmap(filename, &file_header, &info_header, buffer);
+}
diff --git a/src/utils/os-compatibility.c b/src/utils/os-compatibility.c
new file mode 100644
index 0000000..d9502e5
--- /dev/null
+++ b/src/utils/os-compatibility.c
@@ -0,0 +1,204 @@
+/*
+ * Copyright © 2012 Collabora, Ltd.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sublicense, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial
+ * portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+ * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <errno.h>
+#include <sys/epoll.h>
+#include <string.h>
+#include <stdlib.h>
+
+#include "os-compatibility.h"
+
+int
+os_fd_set_cloexec(int fd)
+{
+ long flags;
+
+ if (fd == -1)
+ return -1;
+
+ flags = fcntl(fd, F_GETFD);
+ if (flags == -1)
+ return -1;
+
+ if (fcntl(fd, F_SETFD, flags | FD_CLOEXEC) == -1)
+ return -1;
+
+ return 0;
+}
+
+static int
+set_cloexec_or_close(int fd)
+{
+ if (os_fd_set_cloexec(fd) != 0) {
+ close(fd);
+ return -1;
+ }
+ return fd;
+}
+
+int
+os_socketpair_cloexec(int domain, int type, int protocol, int *sv)
+{
+ int ret;
+
+#ifdef SOCK_CLOEXEC
+ ret = socketpair(domain, type | SOCK_CLOEXEC, protocol, sv);
+ if (ret == 0 || errno != EINVAL)
+ return ret;
+#endif
+
+ ret = socketpair(domain, type, protocol, sv);
+ if (ret < 0)
+ return ret;
+
+ sv[0] = set_cloexec_or_close(sv[0]);
+ sv[1] = set_cloexec_or_close(sv[1]);
+
+ if (sv[0] != -1 && sv[1] != -1)
+ return 0;
+
+ close(sv[0]);
+ close(sv[1]);
+ return -1;
+}
+
+int
+os_epoll_create_cloexec(void)
+{
+ int fd;
+
+#ifdef EPOLL_CLOEXEC
+ fd = epoll_create1(EPOLL_CLOEXEC);
+ if (fd >= 0)
+ return fd;
+ if (errno != EINVAL)
+ return -1;
+#endif
+
+ fd = epoll_create(1);
+ return set_cloexec_or_close(fd);
+}
+
+static int
+create_tmpfile_cloexec(char *tmpname)
+{
+ int fd;
+
+#ifdef HAVE_MKOSTEMP
+ fd = mkostemp(tmpname, O_CLOEXEC);
+ if (fd >= 0)
+ unlink(tmpname);
+#else
+ fd = mkstemp(tmpname);
+ if (fd >= 0) {
+ fd = set_cloexec_or_close(fd);
+ unlink(tmpname);
+ }
+#endif
+
+ return fd;
+}
+
+/*
+ * Create a new, unique, anonymous file of the given size, and
+ * return the file descriptor for it. The file descriptor is set
+ * CLOEXEC. The file is immediately suitable for mmap()'ing
+ * the given size at offset zero.
+ *
+ * The file should not have a permanent backing store like a disk,
+ * but may have if XDG_RUNTIME_DIR is not properly implemented in OS.
+ *
+ * The file name is deleted from the file system.
+ *
+ * The file is suitable for buffer sharing between processes by
+ * transmitting the file descriptor over Unix sockets using the
+ * SCM_RIGHTS methods.
+ *
+ * If the C library implements posix_fallocate(), it is used to
+ * guarantee that disk space is available for the file at the
+ * given size. If disk space is insufficent, errno is set to ENOSPC.
+ * If posix_fallocate() is not supported, program may receive
+ * SIGBUS on accessing mmap()'ed file contents instead.
+ */
+int
+os_create_anonymous_file(off_t size)
+{
+ static const char template[] = "/weston-shared-XXXXXX";
+ const char *path;
+ char *name;
+ int fd;
+ int ret;
+
+ path = getenv("XDG_RUNTIME_DIR");
+ if (!path) {
+ errno = ENOENT;
+ return -1;
+ }
+
+ name = malloc(strlen(path) + sizeof(template));
+ if (!name)
+ return -1;
+
+ strcpy(name, path);
+ strcat(name, template);
+
+ fd = create_tmpfile_cloexec(name);
+
+ free(name);
+
+ if (fd < 0)
+ return -1;
+
+#ifdef HAVE_POSIX_FALLOCATE
+ ret = posix_fallocate(fd, 0, size);
+ if (ret != 0) {
+ close(fd);
+ errno = ret;
+ return -1;
+ }
+#else
+ ret = ftruncate(fd, size);
+ if (ret < 0) {
+ close(fd);
+ return -1;
+ }
+#endif
+
+ return fd;
+}
+
+#ifndef HAVE_STRCHRNUL
+char *
+strchrnul(const char *s, int c)
+{
+ while (*s && *s != c)
+ s++;
+ return (char *)s;
+}
+#endif
diff --git a/src/wth-server-gst.cpp b/src/wth-server-gst.cpp
new file mode 100644
index 0000000..c282773
--- /dev/null
+++ b/src/wth-server-gst.cpp
@@ -0,0 +1,1326 @@
+/**
+ * @licence app begin@
+ *
+ *
+ * TBD
+ *
+ *
+ * @licence end@
+ */
+/*******************************************************************************
+ ** **
+ ** SRC-MODULE: **
+ ** **
+ ** TARGET : linux **
+ ** **
+ ** PROJECT : waltham-server **
+ ** **
+ ** AUTHOR : **
+ ** **
+ ** **
+ ** **
+ ** PURPOSE : This file is acts as interface to weston compositor at server **
+ ** side **
+ ** **
+ ** REMARKS : **
+ ** **
+ ** PLATFORM DEPENDANT [yes/no]: yes **
+ ** **
+ ** TO BE CHANGED BY USER [yes/no]: no **
+ ** **
+ *******************************************************************************/
+
+#include <sys/mman.h>
+#include <signal.h>
+#include <sys/time.h>
+#include <gst/gst.h>
+#include <gst/gl/gl.h>
+//#include <GL/gl.h>
+#include <gst/video/gstvideometa.h>
+#include <gst/allocators/gstdmabuf.h>
+#include <gst/app/gstappsink.h>
+#include <pthread.h>
+
+#include <xf86drm.h>
+#include <drm.h>
+#include <drm_fourcc.h>
+
+#include <string>
+
+// Error avoidance for dual declaration of strchrnul()
+#define HAVE_STRCHRNUL 1
+
+extern "C" {
+#include "wth-server-waltham-comm.h"
+#include "os-compatibility.h"
+#include "ivi-application-client-protocol.h"
+#include "bitmap.h"
+}
+
+// Applied to Windowmanager, HomeScreen
+#include "libwindowmanager.h"
+#include <libhomescreen.hpp>
+#include "hmi-debug.h"
+
+
+LibHomeScreen* hs;
+LibWindowmanager *wm;
+extern bool gIsDraw;
+extern uint32_t g_id_ivisurf;
+
+long port = 1700;
+std::string token = "wm";
+std::string app_name = "receiver";
+
+static int running = 1;
+
+extern bool get_verbosity(void);
+extern int verbose;
+
+typedef struct _GstAppContext
+{
+ GMainLoop *loop;
+ GstBus *bus;
+ GstElement *pipeline;
+ GstElement *sink;
+ GstSample *sample;
+ GstBuffer *gstbuffer;
+ GstVideoMeta *vmeta;
+
+ int dma_fd[2];
+
+ struct display *display;
+ struct window *window;
+
+ pthread_mutex_t mutex;
+ pthread_cond_t cond;
+ int wait;
+
+ GstVideoInfo info;
+ uint32_t format;
+ bool no_dma_buf;
+}GstAppContext;
+
+static const gchar *vertex_shader_str =
+"attribute vec4 a_position; \n"
+"attribute vec2 a_texCoord; \n"
+"varying vec2 v_texCoord; \n"
+"void main() \n"
+"{ \n"
+" gl_Position = a_position; \n"
+" v_texCoord = a_texCoord; \n"
+"} \n";
+
+static const gchar *fragment_shader_str =
+"#ifdef GL_ES \n"
+"precision mediump float; \n"
+"#endif \n"
+"varying vec2 v_texCoord; \n"
+"uniform sampler2D tex; \n"
+"void main() \n"
+"{ \n"
+"vec2 uv; \n"
+"uv = v_texCoord.xy; \n"
+"vec4 c = texture2D(tex, uv); \n"
+"gl_FragColor = c; \n"
+"} \n";
+
+/*
+ * pointer callbcak functions
+ */
+ static void
+pointer_handle_enter(void *data, struct wl_pointer *wl_pointer,
+ uint32_t serial, struct wl_surface *wl_surface,
+ wl_fixed_t sx, wl_fixed_t sy)
+{
+ wth_verbose("%s >>> \n",__func__);
+
+ wth_verbose("data [%p]\n", data);
+
+ struct display *display = data;
+ struct window *window = display->window;
+ struct surface *surface = window->server_surf;
+ struct seat *seat = window->server_seat;
+
+ waltham_pointer_enter(window, serial, sx, sy);
+
+ wth_verbose(" <<< %s \n",__func__);
+}
+
+static void
+pointer_handle_leave(void *data, struct wl_pointer *pointer,
+ uint32_t serial, struct wl_surface *surface)
+{
+ wth_verbose("%s >>> \n",__func__);
+
+ wth_verbose("data [%p]\n", data);
+
+ struct display *display = data;
+ struct window *window = display->window;
+
+ waltham_pointer_leave(window, serial);
+
+ wth_verbose(" <<< %s \n",__func__);
+}
+
+static void
+pointer_handle_motion(void *data, struct wl_pointer *pointer,
+ uint32_t time, wl_fixed_t sx, wl_fixed_t sy)
+{
+ wth_verbose("%s >>> \n",__func__);
+
+ struct display *display = data;
+ struct window *window = display->window;
+
+ waltham_pointer_motion(window, time, sx, sy);
+
+ wth_verbose(" <<< %s \n",__func__);
+}
+
+static void
+pointer_handle_button(void *data, struct wl_pointer *wl_pointer,
+ uint32_t serial, uint32_t time, uint32_t button,
+ uint32_t state)
+{
+ wth_verbose("%s >>> \n",__func__);
+
+ struct display *display = data;
+ struct window *window = display->window;
+
+ waltham_pointer_button(window, serial, time, button, state);
+
+ wth_verbose(" <<< %s \n",__func__);
+}
+
+static void
+pointer_handle_axis(void *data, struct wl_pointer *wl_pointer,
+ uint32_t time, uint32_t axis, wl_fixed_t value)
+{
+ wth_verbose("%s >>> \n",__func__);
+
+ struct display *display = data;
+ struct window *window = display->window;
+
+ waltham_pointer_axis(window, time, axis, value);
+
+ wth_verbose(" <<< %s \n",__func__);
+}
+
+static const struct wl_pointer_listener pointer_listener = {
+ pointer_handle_enter,
+ pointer_handle_leave,
+ pointer_handle_motion,
+ pointer_handle_button,
+ pointer_handle_axis,
+};
+
+/*
+ * touch callbcak functions
+ */
+
+static void
+touch_handle_down(void *data, struct wl_touch *touch, uint32_t serial,
+ uint32_t time, struct wl_surface *surface, int32_t id,
+ wl_fixed_t x_w, wl_fixed_t y_w)
+{
+ wth_verbose("%s >>> \n",__func__);
+
+ struct display *display = data;
+ struct window *window = display->window;
+
+ int x = (int)wl_fixed_to_double(x_w);
+ int y = (int)wl_fixed_to_double(y_w);
+ wth_verbose("%p x %d y %d\n",window, x, y);
+
+ waltham_touch_down(window, serial, time, id, x_w, y_w);
+
+ wth_verbose(" <<< %s \n",__func__);
+}
+
+static void
+touch_handle_up(void *data, struct wl_touch *touch, uint32_t serial,
+ uint32_t time, int32_t id)
+{
+ wth_verbose("%s >>> \n",__func__);
+
+ struct display *display = data;
+ struct window *window = display->window;
+
+ waltham_touch_up(window, serial, time, id);
+}
+
+static void
+touch_handle_motion(void *data, struct wl_touch *touch, uint32_t time,
+ int32_t id, wl_fixed_t x_w, wl_fixed_t y_w)
+{
+ wth_verbose("%s >>> \n",__func__);
+
+ struct display *display = data;
+ struct window *window = display->window;
+
+ waltham_touch_motion(window, time, id, x_w, y_w);
+
+ wth_verbose(" <<< %s \n",__func__);
+}
+
+static void
+touch_handle_frame(void *data, struct wl_touch *touch)
+{
+ wth_verbose("%s >>> \n",__func__);
+
+ struct display *display = data;
+ struct window *window = display->window;
+
+ waltham_touch_frame(window);
+
+ wth_verbose(" <<< %s \n",__func__);
+}
+
+static void
+touch_handle_cancel(void *data, struct wl_touch *touch)
+{
+ wth_verbose("%s >>> \n",__func__);
+
+ struct display *display = data;
+ struct window *window = display->window;
+
+ waltham_touch_cancel(window);
+
+ wth_verbose(" <<< %s \n",__func__);
+}
+
+static const struct wl_touch_listener touch_listener = {
+ touch_handle_down,
+ touch_handle_up,
+ touch_handle_motion,
+ touch_handle_frame,
+ touch_handle_cancel
+};
+
+/*
+ * seat callback
+ */
+static void
+seat_capabilities(void *data, struct wl_seat *wl_seat, enum wl_seat_capability caps)
+{
+ wth_verbose("%s >>> \n",__func__);
+
+ struct display *display = data;
+
+ wth_verbose("caps = %d\n", caps);
+
+ if ((caps & WL_SEAT_CAPABILITY_POINTER) && !display->wl_pointer)
+ {
+ wth_verbose("WL_SEAT_CAPABILITY_POINTER\n");
+ display->wl_pointer = wl_seat_get_pointer(wl_seat);
+ wl_pointer_set_user_data(display->wl_pointer, display);
+ wl_pointer_add_listener(display->wl_pointer, &pointer_listener, display);
+ wl_display_roundtrip(display->display);
+ } else if (!(caps & WL_SEAT_CAPABILITY_POINTER) && display->wl_pointer) {
+ wth_verbose("!WL_SEAT_CAPABILITY_POINTER\n");
+ wl_pointer_destroy(display->wl_pointer);
+ display->wl_pointer = NULL;
+ }
+
+ if ((caps & WL_SEAT_CAPABILITY_TOUCH) && !display->wl_touch)
+ {
+ wth_verbose("WL_SEAT_CAPABILITY_TOUCH\n");
+ display->wl_touch = wl_seat_get_touch(wl_seat);
+ wl_touch_set_user_data(display->wl_touch, display);
+ wl_touch_add_listener(display->wl_touch, &touch_listener, display);
+ wl_display_roundtrip(display->display);
+ } else if (!(caps & WL_SEAT_CAPABILITY_TOUCH) && display->wl_touch) {
+ wth_verbose("!WL_SEAT_CAPABILITY_TOUCH\n");
+ wl_touch_destroy(display->wl_touch);
+ display->wl_touch = NULL;
+ }
+
+ wth_verbose(" <<< %s \n",__func__);
+}
+
+static const struct wl_seat_listener seat_listener = {
+ seat_capabilities,
+ NULL
+};
+
+static void
+add_seat(struct display *display, uint32_t id, uint32_t version)
+{
+ wth_verbose("%s >>> \n",__func__);
+
+ display->wl_pointer = NULL;
+ display->seat = wl_registry_bind(display->registry, id,
+ &wl_seat_interface, 1);
+ wl_seat_add_listener(display->seat, &seat_listener, display);
+ wth_verbose(" <<< %s \n",__func__);
+}
+
+static int
+drm_fourcc_from_gst_format(GstVideoFormat format)
+{
+ switch (format) {
+ case GST_VIDEO_FORMAT_RGB16:
+ case GST_VIDEO_FORMAT_BGR16:
+ return DRM_FORMAT_RGB565;
+
+ case GST_VIDEO_FORMAT_RGB:
+ case GST_VIDEO_FORMAT_BGR:
+ return DRM_FORMAT_BGR888;
+
+ case GST_VIDEO_FORMAT_RGBA:
+ case GST_VIDEO_FORMAT_RGBx:
+ case GST_VIDEO_FORMAT_BGRA:
+ case GST_VIDEO_FORMAT_BGRx:
+ case GST_VIDEO_FORMAT_ARGB:
+ case GST_VIDEO_FORMAT_xRGB:
+ case GST_VIDEO_FORMAT_ABGR:
+ case GST_VIDEO_FORMAT_xBGR:
+ case GST_VIDEO_FORMAT_AYUV:
+ return DRM_FORMAT_ARGB8888;
+
+ case GST_VIDEO_FORMAT_GRAY8:
+ return DRM_FORMAT_R8;
+
+ case GST_VIDEO_FORMAT_YUY2:
+ case GST_VIDEO_FORMAT_UYVY:
+ case GST_VIDEO_FORMAT_GRAY16_LE:
+ case GST_VIDEO_FORMAT_GRAY16_BE:
+ return DRM_FORMAT_GR88;
+
+ case GST_VIDEO_FORMAT_I420:
+ case GST_VIDEO_FORMAT_YV12:
+ case GST_VIDEO_FORMAT_Y41B:
+ case GST_VIDEO_FORMAT_Y42B:
+ case GST_VIDEO_FORMAT_Y444:
+ return DRM_FORMAT_R8;
+
+ case GST_VIDEO_FORMAT_NV12:
+ return DRM_FORMAT_NV12;
+
+ default:
+ return -1;
+ }
+}
+
+gboolean bus_message(GstBus *bus, GstMessage *message, gpointer p)
+{
+ GstAppContext *gstctx = p;
+
+ fprintf(stderr, "mesage: %s\n", GST_MESSAGE_TYPE_NAME(message));
+
+ switch( GST_MESSAGE_TYPE(message)) {
+ case GST_MESSAGE_ERROR:
+ {
+ GError *err;
+ gchar *debug;
+
+ gst_message_parse_error(message, &err, &debug);
+ g_print("ERROR: %s\n", err->message);
+
+ g_error_free(err);
+ g_free(debug);
+ g_main_loop_quit(gstctx->loop);
+ break;
+ }
+
+ case GST_MESSAGE_STATE_CHANGED:
+ {
+ GstState oldstate, newstate;
+
+ gst_message_parse_state_changed(message, &oldstate, &newstate, NULL);
+ fprintf(stderr, "#%s state changed\n", GST_MESSAGE_SRC_NAME(message));
+ switch (newstate){
+ case GST_STATE_NULL:
+ fprintf(stderr, "%s: state is NULL\n", GST_MESSAGE_SRC_NAME(message));
+ break;
+ case GST_STATE_READY:
+ fprintf(stderr, "%s: state is READY\n", GST_MESSAGE_SRC_NAME(message));
+ break;
+ case GST_STATE_PAUSED:
+ fprintf(stderr, "%s: state is PAUSED\n", GST_MESSAGE_SRC_NAME(message));
+ break;
+ case GST_STATE_PLAYING:
+ fprintf(stderr, "%s: state is PLAYING\n", GST_MESSAGE_SRC_NAME(message));
+ break;
+ }
+ break;
+ }
+ default:
+ fprintf(stderr, "Unhandled message\n");
+ break;
+ }
+ fprintf(stderr, "-----------------\n");
+}
+
+EGLImageKHR create_eglImage(GstAppContext* gstctx)
+{
+ struct display *display = gstctx->display;
+ GstVideoMeta *vmeta = gstctx->vmeta;
+
+ uint32_t n_planes = vmeta->n_planes;
+ EGLint attribs[30];
+ int fourcc;
+ int atti = 0;
+
+ fourcc = drm_fourcc_from_gst_format(vmeta->format);
+
+ n_planes = GST_VIDEO_INFO_N_PLANES(&(gstctx->info));
+
+ int width = GST_VIDEO_INFO_WIDTH(&(gstctx->info));
+ int height = GST_VIDEO_INFO_HEIGHT(&(gstctx->info));
+
+ attribs[atti++] = EGL_WIDTH;
+ attribs[atti++] = vmeta->width;
+ attribs[atti++] = EGL_HEIGHT;
+ attribs[atti++] = vmeta->height;
+ attribs[atti++] = EGL_LINUX_DRM_FOURCC_EXT;
+ attribs[atti++] = fourcc;
+
+ /*
+ * Offset value for both the planes i.e Y and UV is "0"
+ * The omxdec gives the output is 2 different memory blocks,
+ * One for Y -> dmafd[0] and other for UV -> dmafd[1]
+ */
+
+ if (n_planes > 0) {
+ attribs[atti++] = EGL_DMA_BUF_PLANE0_FD_EXT;
+ attribs[atti++] = gstctx->dma_fd[0];
+ attribs[atti++] = EGL_DMA_BUF_PLANE0_OFFSET_EXT;
+ attribs[atti++] = 0;
+ attribs[atti++] = EGL_DMA_BUF_PLANE0_PITCH_EXT;
+ attribs[atti++] = vmeta->stride[0];
+ }
+
+ if (n_planes > 1) {
+ attribs[atti++] = EGL_DMA_BUF_PLANE1_FD_EXT;
+ attribs[atti++] = gstctx->dma_fd[1];
+ attribs[atti++] = EGL_DMA_BUF_PLANE1_OFFSET_EXT;
+ attribs[atti++] = 0;
+ attribs[atti++] = EGL_DMA_BUF_PLANE1_PITCH_EXT;
+ attribs[atti++] = vmeta->stride[1];
+ }
+
+ attribs[atti++] = EGL_NONE;
+
+ return display->egl.create_image(display->egl.dpy, EGL_NO_CONTEXT,
+ EGL_LINUX_DMA_BUF_EXT, (EGLClientBuffer)NULL,
+ attribs);
+}
+
+static int
+redraw(GstAppContext* gstctx)
+{
+ struct display *display = gstctx->display;
+ GstVideoMeta *vmeta = gstctx->vmeta;
+ struct window *window = display->window;
+ GLfloat vVertices[] = { -1.0f, 1.0f, 1.0f, // Position 0
+ 0.0f, 0.0f, // TexCoord 0
+ -1.0f, -1.0f, 1.0f, // Position 1
+ 0.0f, 1.0f, // TexCoord 1
+ 1.0f, -1.0f, 1.0f, // Position 2
+ 1.0f, 1.0f, // TexCoord 2
+ 1.0f, 1.0f, 1.0f, // Position 3, skewed a bit
+ 1.0f, 0.0f // TexCoord 3
+ };
+
+ GLushort indices[] = { 0, 1, 2, 0, 2, 3 };
+ glViewport(0,0,vmeta->width,vmeta->height);
+ wl_egl_window_resize(window->native,vmeta->width,vmeta->height,0,0);
+ glClearColor(0.0, 0.0, 0.0, 0.0);
+ glClear(GL_COLOR_BUFFER_BIT);
+ glUseProgram(display->gl.program_object);
+
+ /* Load the vertex position */
+ GLint positionLoc = glGetAttribLocation(display->gl.program_object, "a_position");
+ glVertexAttribPointer(positionLoc, 3, GL_FLOAT, GL_FALSE, 5 * sizeof(GLfloat), vVertices);
+ /* Load the texture coordinate */
+ GLint texCoordLoc = glGetAttribLocation(display->gl.program_object, "a_texCoord");
+ glVertexAttribPointer(texCoordLoc, 2, GL_FLOAT, GL_FALSE, 5 * sizeof(GLfloat), &vVertices[3]);
+ glEnableVertexAttribArray(positionLoc);
+ glEnableVertexAttribArray(texCoordLoc);
+
+ glActiveTexture(GL_TEXTURE0);
+ glBindTexture(GL_TEXTURE_2D, display->gl.texture);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
+
+ if(gstctx->no_dma_buf == false && window->egl_img != NULL )
+ {
+ display->egl.image_texture_2d(GL_TEXTURE_2D, window->egl_img);
+ }
+ else
+ {
+ GstMapInfo map;
+ gst_buffer_map(gstctx->gstbuffer, &map, GST_MAP_READ);
+ glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, vmeta->width, vmeta->height, 0, GL_RGBA, GL_UNSIGNED_BYTE, (GLvoid*)map.data);
+ gst_buffer_unmap(gstctx->gstbuffer, &map);
+ }
+
+ /* Set the texture sampler to texture unit 0 */
+ GLint tex = glGetUniformLocation(display->gl.program_object, "tex");
+ glUniform1i(tex, 0);
+
+ glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_SHORT, indices);
+
+ eglSwapBuffers(display->egl.dpy, window->egl_surface);
+}
+
+static GstFlowReturn
+appsink_callback(GstElement *object, gpointer *data)
+{
+ wth_verbose("%s >>> \n",__func__);
+ int ret;
+ //GstAppContext *gstctx = (struct gstApplContext *)data;
+ GstAppContext *gstctx = (GstAppContext *)data;
+ GstSample *sample;
+ GstBuffer *gstbuffer;
+ GstMemory *mem;
+ int i;
+ int n_mem;
+
+ sample = gst_app_sink_pull_sample((GstAppSink*)((void*)object));
+ if(sample == NULL) {
+ wth_error("No frame received\n");
+ return -1;
+ }
+ else {
+ wth_verbose("Frame received\n");
+ }
+
+ /* get dmabuf fd from gstbuffer */
+ gstbuffer = gst_sample_get_buffer(sample);
+ if(!gstbuffer){
+ wth_error("Cannot get buffer from sample\n");
+ }
+ gstctx->vmeta = gst_buffer_get_video_meta(gstbuffer);
+ if(gstctx->vmeta==NULL){
+ wth_error("no metadata on buffer\n");
+ }
+
+ n_mem = gst_buffer_n_memory(gstbuffer);
+ if (n_mem < 1) {
+ wth_error("Buffer with no mem!\n");
+ }
+
+ for (i = 0; i < n_mem; i++) {
+ /* get dmabuf fd from gstbuffer */
+ mem = gst_buffer_peek_memory (gstbuffer, i);
+ if (!gst_is_dmabuf_memory(mem)) {
+ wth_verbose("Memory is not of dmabuf type \n");
+ gstctx->no_dma_buf = true;
+
+ gst_buffer_ref(gstbuffer);
+ gstctx->gstbuffer = gstbuffer;
+ gstctx->sample = sample;
+
+ /* wake render thread up */
+ gstctx->wait = 0;
+ pthread_cond_signal(&gstctx->cond);
+ wth_verbose(" <<< %s \n",__func__);
+ return GST_FLOW_OK;
+ }
+ gstctx->dma_fd[i] = gst_dmabuf_memory_get_fd(mem);
+ }
+
+ if (gstctx->dma_fd[0] < 0 || gstctx->dma_fd[1] < 0 ) {
+ wth_error("dma fd is null \n");
+ return GST_FLOW_ERROR;
+ }
+
+ gst_buffer_ref(gstbuffer);
+ gstctx->gstbuffer = gstbuffer;
+ gstctx->sample = sample;
+
+ /* wake render thread up */
+ gstctx->wait = 0;
+ pthread_cond_signal(&gstctx->cond);
+ wth_verbose(" <<< %s \n",__func__);
+ return GST_FLOW_OK;
+}
+
+/*
+ * registry callback
+ */
+static void
+registry_handle_global(void *data, struct wl_registry *registry,
+ uint32_t id, const char *interface, uint32_t version)
+{
+ wth_verbose("%s >>> \n",__func__);
+
+ struct display *d = data;
+
+ if (strcmp(interface, "wl_compositor") == 0) {
+ d->compositor =
+ wl_registry_bind(registry,
+ id, &wl_compositor_interface, 1);
+ } else if (strcmp(interface, "ivi_application") == 0) {
+ d->ivi_application =
+ wl_registry_bind(registry, id,
+ &ivi_application_interface, 1);
+ } else if (strcmp(interface, "wl_seat") == 0) {
+ add_seat(d, id, version);
+ }
+ wth_verbose(" <<< %s \n",__func__);
+}
+
+static void
+registry_handle_global_remove(void *data, struct wl_registry *registry,
+ uint32_t name)
+{
+ /* stub */
+}
+
+static const struct wl_registry_listener registry_listener = {
+ registry_handle_global,
+ registry_handle_global_remove
+};
+
+wth_server_weston_shm_attach(struct window *window, uint32_t data_sz, void * data,
+ int32_t width, int32_t height, int32_t stride, uint32_t format)
+{
+ /* stub */
+}
+void
+wth_server_weston_shm_damage(struct window *window)
+{
+ /* stub */
+}
+
+void
+wth_server_weston_shm_commit(struct window *window)
+{
+ /* stub */
+}
+
+static struct display *
+create_display(void)
+{
+ wth_verbose("%s >>> \n",__func__);
+
+ struct display *display;
+
+ display = malloc(sizeof *display);
+ if (display == NULL) {
+ wth_error("out of memory\n");
+ exit(1);
+ }
+ display->display = wl_display_connect(NULL);
+ assert(display->display);
+
+ display->has_xrgb = false;
+ display->registry = wl_display_get_registry(display->display);
+ wl_registry_add_listener(display->registry,
+ &registry_listener, display);
+ wl_display_roundtrip(display->display);
+
+ wth_verbose(" <<< %s \n",__func__);
+ return display;
+}
+
+static void
+destroy_display(struct display *display)
+{
+ wth_verbose("%s >>> \n",__func__);
+
+ if (display->compositor)
+ wl_compositor_destroy(display->compositor);
+
+ wl_registry_destroy(display->registry);
+ wl_display_flush(display->display);
+ wl_display_disconnect(display->display);
+ free(display);
+
+ wth_verbose(" <<< %s \n",__func__);
+}
+
+/*
+ * ivi surface callback
+ */
+static void
+handle_ivi_surface_configure(void *data, struct ivi_surface *ivi_surface,
+ int32_t width, int32_t height)
+{
+ /* Simple-shm is resizable */
+}
+
+static const struct ivi_surface_listener ivi_surface_listener = {
+ handle_ivi_surface_configure,
+};
+
+static void
+init_egl(struct display *display)
+{
+ wth_verbose("%s >>> \n",__func__);
+ EGLint config_attribs[] = {
+ EGL_SURFACE_TYPE, EGL_WINDOW_BIT,
+ EGL_RED_SIZE, 8,
+ EGL_GREEN_SIZE, 8,
+ EGL_BLUE_SIZE, 8,
+ EGL_ALPHA_SIZE, 8,
+ EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT,
+ EGL_NONE
+ };
+
+ static const EGLint context_attribs[] = {
+ EGL_CONTEXT_CLIENT_VERSION, 2,
+ EGL_NONE
+ };
+
+ EGLint major, minor, count;
+ EGLBoolean ret;
+
+ display->egl.dpy = eglGetDisplay(display->display);
+ assert(display->egl.dpy);
+
+ ret = eglInitialize(display->egl.dpy, &major, &minor);
+ assert(ret == EGL_TRUE);
+ ret = eglBindAPI(EGL_OPENGL_ES_API);
+ assert(ret == EGL_TRUE);
+
+ ret = eglChooseConfig(display->egl.dpy, config_attribs,
+ &display->egl.conf, 1, &count);
+ assert(ret && count >= 1);
+
+ display->egl.ctx = eglCreateContext(display->egl.dpy,
+ display->egl.conf,
+ EGL_NO_CONTEXT, context_attribs);
+ assert(display->egl.ctx);
+
+ eglSwapInterval(display->egl.dpy, 1);
+
+ display->egl.create_image =
+ (void *) eglGetProcAddress("eglCreateImageKHR");
+ assert(display->egl.create_image);
+
+ display->egl.image_texture_2d =
+ (void *) eglGetProcAddress("glEGLImageTargetTexture2DOES");
+ assert(display->egl.image_texture_2d);
+
+ display->egl.destroy_image =
+ (void *) eglGetProcAddress("eglDestroyImageKHR");
+ assert(display->egl.destroy_image);
+}
+
+GLuint load_shader(GLenum type, const char *shaderSrc)
+{
+ wth_verbose("%s >>> \n",__func__);
+ GLuint shader;
+ GLint compiled;
+
+ /* Create the shader object */
+ shader = glCreateShader(type);
+ if (shader == 0)
+ {
+ printf("\n Failed to create shader \n");
+ return 0;
+ }
+ /* Load the shader source */
+ glShaderSource(shader, 1, &shaderSrc, NULL);
+ /* Compile the shader */
+ glCompileShader(shader);
+ /* Check the compile status */
+ glGetShaderiv(shader, GL_COMPILE_STATUS, &compiled);
+ if (!compiled)
+ {
+ GLint infoLen = 0;
+ glGetShaderiv(shader, GL_INFO_LOG_LENGTH, &infoLen);
+ if (infoLen > 1)
+ {
+ char* infoLog = (char*)malloc (sizeof(char) * infoLen );
+ glGetShaderInfoLog(shader, infoLen, NULL, infoLog);
+ fprintf(stderr, "Error compiling shader:%s\n",infoLog);
+ free(infoLog);
+ }
+ glDeleteShader(shader);
+ return 0;
+ }
+ return shader;
+}
+
+void init_gl(struct display *display)
+{
+ wth_verbose("%s >>> \n",__func__);
+ GLint linked;
+
+ /* load vertext/fragment shader */
+ display->gl.vertex_shader = load_shader(GL_VERTEX_SHADER, vertex_shader_str);
+ display->gl.fragment_shader = load_shader(GL_FRAGMENT_SHADER, fragment_shader_str);
+
+ /* Create the program object */
+ display->gl.program_object = glCreateProgram();
+ if (display->gl.program_object == 0)
+ {
+ fprintf(stderr, "error program object\n");
+ return;
+ }
+
+ glAttachShader(display->gl.program_object, display->gl.vertex_shader);
+ glAttachShader(display->gl.program_object, display->gl.fragment_shader);
+ /* Bind vPosition to attribute 0 */
+ glBindAttribLocation(display->gl.program_object, 0, "a_position");
+ /* Link the program */
+ glLinkProgram(display->gl.program_object);
+ /* Check the link status */
+ glGetProgramiv(display->gl.program_object, GL_LINK_STATUS, &linked);
+ if (!linked)
+ {
+ GLint infoLen = 0;
+ glGetProgramiv(display->gl.program_object, GL_INFO_LOG_LENGTH, &infoLen);
+ if (infoLen > 1)
+ {
+ char* infoLog = (char*)malloc(sizeof(char) * infoLen);
+ glGetProgramInfoLog(display->gl.program_object, infoLen, NULL, infoLog);
+ fprintf(stderr, "Error linking program:%s\n", infoLog);
+ free(infoLog);
+ }
+ glDeleteProgram(display->gl.program_object);
+ }
+
+ glGenTextures(1, &display->gl.texture);
+
+ return;
+}
+
+static void
+create_surface(struct window *window)
+{
+ wth_verbose("%s >>> \n",__func__);
+ struct display *display = window->display;
+ int ret;
+
+ window->surface = wl_compositor_create_surface(display->compositor);
+ assert(window->surface);
+
+ window->native = wl_egl_window_create(window->surface,
+ window->width, window->height);
+ assert(window->native);
+
+ window->egl_surface = eglCreateWindowSurface(display->egl.dpy,
+ display->egl.conf,
+ (NativeWindowType)window->native, NULL);
+
+ wl_display_roundtrip(display->display);
+ if (display->ivi_application ) {
+ uint32_t id_ivisurf = g_id_ivisurf; //window->id_ivisurf;
+ window->ivi_surface =
+ ivi_application_surface_create(display->ivi_application,
+ id_ivisurf, window->surface);
+ if (window->ivi_surface == NULL) {
+ wth_error("Failed to create ivi_client_surface\n");
+ abort();
+ }
+
+ ivi_surface_add_listener(window->ivi_surface,
+ &ivi_surface_listener, window);
+ } else {
+ assert(0);
+ }
+ ret = eglMakeCurrent(display->egl.dpy, window->egl_surface,
+ window->egl_surface, display->egl.ctx);
+ assert(ret == EGL_TRUE);
+
+ glClearColor(0.5, 0.5, 0.5, 1.0);
+ glClear(GL_COLOR_BUFFER_BIT);
+
+ eglSwapBuffers(display->egl.dpy, window->egl_surface);
+ wth_verbose(" <<< %s \n",__func__);
+}
+
+static void
+create_window(struct window *window, struct display *display, int width, int height)
+{
+ wth_verbose("%s >>> \n",__func__);
+
+ window->callback = NULL;
+
+ window->display = display;
+ window->width = width;
+ window->height = height;
+ window->window_frames = 0;
+ window->window_benchmark_time = 0;
+
+ create_surface(window);
+
+ wth_verbose(" <<< %s \n",__func__);
+ return;
+}
+
+static void
+destroy_window(struct window *window)
+{
+ wth_verbose("%s >>> \n",__func__);
+
+ if (window->callback)
+ wl_callback_destroy(window->callback);
+
+ if (window->buffers[0].buffer)
+ wl_buffer_destroy(window->buffers[0].buffer);
+ if (window->buffers[1].buffer)
+ wl_buffer_destroy(window->buffers[1].buffer);
+
+ wl_surface_destroy(window->surface);
+ free(window);
+
+ wth_verbose(" <<< %s \n",__func__);
+}
+
+static void
+signal_int(int signum)
+{
+ running = 0;
+}
+
+void *stream_thread(void *data)
+{
+ wth_verbose("%s >>> \n",__func__);
+ GMainLoop *loop = data;
+ g_main_loop_run(loop);
+ wth_verbose(" <<< %s \n",__func__);
+}
+
+
+
+static GstPadProbeReturn
+pad_probe(GstPad *pad, GstPadProbeInfo *info, gpointer user_data)
+{
+ wth_verbose("%s >>> \n",__func__);
+ GstAppContext *dec = user_data;
+ GstEvent *event = GST_PAD_PROBE_INFO_EVENT(info);
+ GstCaps *caps;
+
+ (void)pad;
+
+ if (GST_EVENT_TYPE(event) != GST_EVENT_CAPS)
+ return GST_PAD_PROBE_OK;
+
+ gst_event_parse_caps(event, &caps);
+
+ if (!caps) {
+ GST_ERROR("caps event without caps");
+ return GST_PAD_PROBE_OK;
+ }
+
+ if (!gst_video_info_from_caps(&dec->info, caps)) {
+ GST_ERROR("caps event with invalid video caps");
+ return GST_PAD_PROBE_OK;
+ }
+
+ switch (GST_VIDEO_INFO_FORMAT(&(dec->info))) {
+ case GST_VIDEO_FORMAT_I420:
+ dec->format = DRM_FORMAT_YUV420;
+ break;
+ case GST_VIDEO_FORMAT_NV12:
+ dec->format = DRM_FORMAT_NV12;
+ break;
+ case GST_VIDEO_FORMAT_YUY2:
+ dec->format = DRM_FORMAT_YUYV;
+ break;
+ default:
+ GST_ERROR("unknown format\n");
+ return GST_PAD_PROBE_OK;
+ }
+ wth_verbose(" <<< %s \n",__func__);
+ return GST_PAD_PROBE_OK;
+}
+
+// Applied to WM, HS
+int
+init_wm(LibWindowmanager *wm, struct window *window)
+{
+ HMI_DEBUG("waltham-server","called");
+ char* surfaceIdStr;
+
+ wth_verbose("app:%s port:%d token:%s \n", app_name.c_str(), port, token.c_str());
+
+ if (wm->init(port, token.c_str()) != 0) {
+ HMI_ERROR("waltham-server","wm init failed. ");
+ return -1;
+ }
+
+ json_object *obj = json_object_new_object();
+ json_object_object_add(obj, wm->kKeyDrawingName, json_object_new_string(app_name.c_str()));
+ g_id_ivisurf = wm->requestSurface(obj);
+ if(g_id_ivisurf < 0)
+ {
+ HMI_ERROR("waltham-server","requestSurface failed: %d ", g_id_ivisurf);
+ return -1;
+ }
+ HMI_DEBUG("waltham-server","IVI_SURFACE_ID: %d ", g_id_ivisurf);
+
+ wm->set_event_handler(LibWindowmanager::Event_Active, [wm](json_object *object) {
+ const char *label = json_object_get_string(
+ json_object_object_get(object, wm->kKeyDrawingName));
+ HMI_DEBUG("waltham-server","Surface %s got activated! ", label);
+ });
+
+ wm->set_event_handler(LibWindowmanager::Event_Inactive, [wm](json_object *object) {
+ const char *label = json_object_get_string(
+ json_object_object_get(object, wm->kKeyDrawingName));
+ HMI_DEBUG("waltham-server","Surface %s got inactivated!", label);
+ });
+
+ wm->set_event_handler(LibWindowmanager::Event_Visible, [wm](json_object *object) {
+ const char *label = json_object_get_string(
+ json_object_object_get(object, wm->kKeyDrawingName));
+ HMI_DEBUG("waltham-server","Surface %s got visibled!", label);
+ });
+
+ wm->set_event_handler(LibWindowmanager::Event_Invisible, [wm](json_object *object) {
+ const char *label = json_object_get_string(
+ json_object_object_get(object, wm->kKeyDrawingName));
+ HMI_DEBUG("waltham-server","Surface %s got invisibled!", label);
+ gIsDraw = false;
+ });
+
+ wm->set_event_handler(LibWindowmanager::Event_SyncDraw, [wm, window](json_object *object) {
+ const char *label = json_object_get_string(
+ json_object_object_get(object, wm->kKeyDrawingName));
+ const char *area = json_object_get_string(
+ json_object_object_get(object, wm->kKeyDrawingArea));
+
+ HMI_DEBUG("waltham-server","Layout:%s x:%d y:%d w:%d h:%d ", area, 0, 0, 640, 720);
+ wl_egl_window_resize(window->native, 640, 720, 0, 0);
+ window->width = 640;
+ window->height = 720;
+ //if (!window->fullscreen)
+ // window->window_size = window->geometry;
+ gIsDraw = true;
+ json_object *obj = json_object_new_object();
+ json_object_object_add(obj, wm->kKeyDrawingName, json_object_new_string(app_name.c_str()));
+ wm->endDraw(obj);
+ });
+
+ wm->set_event_handler(LibWindowmanager::Event_FlushDraw, [wm](json_object *object) {
+ const char *label = json_object_get_string(
+ json_object_object_get(object, wm->kKeyDrawingName));
+ HMI_DEBUG("waltham-server","Surface %s got flushdraw! ", label);
+ });
+
+ return 0;
+}
+
+int
+init_hs(LibHomeScreen* hs)
+{
+ if(hs->init(port, token)!=0)
+ {
+ HMI_ERROR("waltham-server","homescreen init failed. ");
+ return -1;
+ }
+
+ hs->set_event_handler(LibHomeScreen::Event_TapShortcut, [](json_object *object){
+ const char *application_name = json_object_get_string(
+ json_object_object_get(object, "application_name"));
+ HMI_DEBUG("waltham-server","Event_TapShortcut application_name = %s ", application_name);
+ if(strcmp(application_name, app_name.c_str()) == 0)
+ {
+ HMI_DEBUG("waltham-server","try to activesurface %s ", app_name.c_str());
+ json_object *obj = json_object_new_object();
+ json_object_object_add(obj, wm->kKeyDrawingName, json_object_new_string(app_name.c_str()));
+ json_object_object_add(obj, wm->kKeyDrawingArea, json_object_new_string("split.sub"));
+ gIsDraw = false;
+ fprintf(stderr, "@@@@@ called activate in tapshortcut handler\n");
+ wm->activateWindow(obj);
+ }
+ });
+
+ hs->set_event_handler(LibHomeScreen::Event_OnScreenMessage, [](json_object *object){
+ const char *display_message = json_object_get_string(
+ json_object_object_get(object, "display_message"));
+ HMI_DEBUG("waltham-server","Event_OnScreenMessage display_message = %s ", display_message);
+ });
+
+ return 0;
+}
+
+GstAppContext gstctx; // @@@@@
+void init_receiver(struct window *window)
+{
+ struct sigaction sigint;
+ GError *gerror = NULL;
+ char * pipe = NULL;
+ FILE *pFile;
+ long lSize;
+ size_t res;
+
+ memset(&gstctx, 0, sizeof(gstctx));
+ /* Initialization for window creation */
+ gstctx.display = create_display();
+ init_egl(gstctx.display);
+
+ /* windowmanager, homescreen */
+ wm = new LibWindowmanager();
+ hs = new LibHomeScreen();
+
+ if(init_wm(wm, window)!=0){
+ // error process
+ wth_verbose("Error in init_wm.\n");
+ return -1;
+ }
+
+ if(init_hs(hs)!=0){
+ // error process
+ wth_verbose("Error in init_hs.\n");
+ return -1;
+ }
+
+ /* ToDo: fix the hardcoded value of width, height */
+// create_window(window, gstctx.display,1920,1080);
+ create_window(window, gstctx.display,640,720);
+ init_gl(gstctx.display);
+ gstctx.window = window;
+
+ gstctx.display->window = window;
+
+ wth_verbose("display %p\n", gstctx.display);
+ wth_verbose("display->window %p\n", gstctx.display->window);
+ wth_verbose("window %p\n", window);
+
+ sigint.sa_handler = signal_int;
+ sigemptyset(&sigint.sa_mask);
+ sigint.sa_flags = SA_RESETHAND;
+ sigaction(SIGINT, &sigint, NULL);
+
+ /* create gstreamer pipeline */
+ gst_init(NULL, NULL);
+ gstctx.loop = g_main_loop_new(NULL, FALSE);
+
+ /* Read pipeline from file */
+ pFile = fopen ( "/etc/xdg/weston/pipeline.cfg" , "rb" );
+ if (pFile==NULL){
+ fprintf(stderr, "failed to open file\n");
+ return -1;
+ }
+
+ /* obtain file size */
+ fseek (pFile , 0 , SEEK_END);
+ lSize = ftell (pFile);
+ rewind (pFile);
+
+ /* allocate memory to contain the whole file */
+ pipe = (char*) zalloc (sizeof(char)*lSize);
+ if (pipe == NULL){
+ fprintf(stderr,"Cannot allocate memory\n");
+ return -1;
+ }
+
+ /* copy the file into the buffer */
+ res = fread (pipe,1,lSize,pFile);
+ if (res != lSize){
+ fprintf(stderr,"File read error\n");
+ return -1;
+ }
+
+ wth_verbose("Gst Pipeline=%s",pipe);
+ /* close file */
+ fclose (pFile);
+
+ /* parse the pipeline */
+ gstctx.pipeline = gst_parse_launch(pipe, &gerror);
+
+ if(!gstctx.pipeline)
+ fprintf(stderr,"Could not create gstreamer pipeline.\n");
+ free(pipe);
+
+ gstctx.bus = gst_pipeline_get_bus((GstPipeline*)((void*)gstctx.pipeline));
+ gst_bus_add_watch(gstctx.bus, bus_message, &gstctx);
+ fprintf(stderr, "registered bus signal\n");
+
+ gstctx.sink = gst_bin_get_by_name(GST_BIN(gstctx.pipeline), "sink");
+ g_object_set(G_OBJECT(gstctx.sink), "emit-signals", TRUE, NULL);
+ g_signal_connect(gstctx.sink, "new-sample", G_CALLBACK(appsink_callback), &gstctx);
+ g_object_set(G_OBJECT(gstctx.sink), "drop", TRUE, "max-buffers",-1, NULL);
+ gst_pad_add_probe(gst_element_get_static_pad(gstctx.sink, "sink"),
+ GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM,
+ pad_probe, &gstctx, NULL);
+
+ fprintf(stderr, "set state as playing\n");
+ gst_element_set_state((GstElement*)((void*)gstctx.pipeline), GST_STATE_PLAYING);
+
+ wth_verbose("wl_display_dispatch_pending >>>\n");
+ wl_display_dispatch_pending(gstctx.display->display);
+ wth_verbose("<<< wl_display_dispatch_pending; redraw >>>\n");
+ //redraw(&gstctx);
+ wth_verbose("<<< redraw\n");
+ json_object *obj = json_object_new_object();
+ json_object_object_add(obj, wm->kKeyDrawingName, json_object_new_string(app_name.c_str()));
+ json_object_object_add(obj, wm->kKeyDrawingArea, json_object_new_string("normal.full"));
+ wth_verbose("activateWindow >>>\n");
+ fprintf(stderr, "@@@@@ called activate in init_receiver\n");
+ wm->activateWindow(obj);
+}
+
+/**
+ * wth_server_weston_main
+ *
+ * This is the main function which will handle connection to the compositor at server side
+ *
+ * @param names void *data
+ * @param value struct window data
+ * @return 0 on success, -1 on error
+ */
+int
+wth_server_weston_main(struct window *window)
+{
+ wth_verbose("%s >>> \n",__func__);
+
+ struct sigaction sigint;
+ pthread_t pthread;
+// GstAppContext gstctx;
+ int ret = 0;
+ GError *gerror = NULL;
+ char * pipe = NULL;
+ FILE *pFile;
+ long lSize;
+ size_t res;
+
+ pthread_mutex_init(&gstctx.mutex, NULL);
+ pthread_cond_init(&gstctx.cond, NULL);
+
+ pthread_create(&pthread, NULL, &stream_thread, gstctx.loop);
+
+ fprintf(stderr, "rendering part\n");
+
+ gstctx.wait = 1;
+ pthread_mutex_lock(&gstctx.mutex);
+
+ while (running && ret != -1) {
+ wth_verbose("in render loop\n");
+ ret = wl_display_dispatch(gstctx.display->display);
+ if(gstctx.wait == 1) {
+ wth_verbose("cond wait\n");
+ pthread_cond_wait(&gstctx.cond, &gstctx.mutex);
+ }
+
+ if(gstctx.no_dma_buf == false)
+ {
+ wth_verbose("create egl image\n");
+ window->egl_img = create_eglImage(&gstctx);
+ }
+
+ wth_verbose("redraw\n");
+ redraw(&gstctx);
+ wth_verbose("fin redraw\n");
+ gstctx.display->egl.destroy_image(gstctx.display->egl.dpy, window->egl_img);
+ gst_buffer_unref(gstctx.gstbuffer);
+ gst_sample_unref(gstctx.sample);
+ gstctx.wait = 1;
+ }
+ pthread_mutex_unlock(&gstctx.mutex);
+
+ wth_verbose("wth_server_gst_main exiting\n");
+
+ if (window->display->ivi_application) {
+ ivi_surface_destroy(window->ivi_surface);
+ ivi_application_destroy(window->display->ivi_application);
+ }
+
+ destroy_window(window);
+ destroy_display(gstctx.display);
+
+ wth_verbose(" <<< %s \n",__func__);
+
+ return 0;
+}
diff --git a/src/wth-server-main.cpp b/src/wth-server-main.cpp
new file mode 100644
index 0000000..ab86304
--- /dev/null
+++ b/src/wth-server-main.cpp
@@ -0,0 +1,372 @@
+/**
+ * @licence app begin@
+ *
+ *
+ * TBD
+ *
+ *
+ * @licence end@
+ */
+/*******************************************************************************
+** **
+** SRC-MODULE: **
+** **
+** TARGET : linux **
+** **
+** PROJECT : waltham-server **
+** **
+** AUTHOR : **
+** **
+** **
+** **
+** PURPOSE : This file handles connection with remote-client **
+** **
+** REMARKS : **
+** **
+** PLATFORM DEPENDANT [yes/no]: yes **
+** **
+** TO BE CHANGED BY USER [yes/no]: no **
+** **
+*******************************************************************************/
+
+#include <signal.h>
+extern "C" {
+#include "wth-server-waltham-comm.h"
+}
+#include <string>
+
+// Applied to Windowmanager, HomeScreen
+#include "libwindowmanager.h"
+#include <libhomescreen.hpp>
+
+#define MAX_EPOLL_WATCHES 2
+
+extern long port;
+extern std::string token;
+extern std::string app_name;
+
+int verbose = 0;
+uint16_t tcp_port = 34400;
+
+bool gIsDraw = false;
+
+uint32_t g_id_ivisurf = 9009;
+
+/** get verbosity
+ */
+bool
+get_verbosity()
+{
+ if (verbose == 1)
+ {
+ return true;
+ }
+ else
+ {
+ return false;
+ }
+}
+
+/** Print out the application help
+ */
+static void usage(void)
+{
+ printf("Usage: waltham server [options]\n");
+ printf("Options:\n");
+ printf(" -p --port number TCP port number\n");
+ printf(" -h --help Usage\n");
+ printf(" -v --verbose Set verbose flag (Default:%d)\n", get_verbosity());
+}
+
+static struct option long_options[] = {
+ {"port", required_argument, 0, 'p'},
+ {"verbose", no_argument, 0, 'v'},
+ {"help", no_argument, 0, 'h'},
+ {0, 0, 0, 0}
+};
+
+/**
+ * parse_args
+ *
+ * Parses the application arguments
+ * The arguments are parsed and saved in static structure for future use.
+ *
+ * @param argc The amount of arguments
+ * @param argv The table of arguments
+ *
+ * @return 0 on success, -1 otherwise
+ */
+static int parse_args(int argc, char *argv[])
+{
+ int c = -1;
+ int long_index = 0;
+
+ while ((c = getopt_long(argc,
+ argv,
+ "p:vh",
+ long_options,
+ &long_index)) != -1)
+ {
+ switch (c)
+ {
+ case 'p':
+ tcp_port = atoi(optarg);
+ break;
+ case 'v':
+ verbose=1;
+ break;
+ case 'h':
+ usage();
+ return -1;
+ default:
+ wth_error("Try %s -h for more information.\n", argv[0]);
+ return -1;
+ }
+ }
+
+ if (tcp_port == 0)
+ {
+ wth_error("TCP port not set \n");
+ wth_error("Try %s -h for more information.\n", argv[0]);
+ return -1;
+ }
+
+ return 0;
+}
+
+static int
+watch_ctl(struct watch *w, int op, uint32_t events)
+{
+ wth_verbose("%s >>> \n",__func__);
+ struct epoll_event ee;
+
+ ee.events = events;
+ ee.data.ptr = w;
+ wth_verbose(" <<< %s \n",__func__);
+ return epoll_ctl(w->server->epoll_fd, op, w->fd, &ee);
+}
+
+/**
+* listen_socket_handle_data
+*
+* Handles all incoming events on socket
+*
+* @param names struct watch *w ,uint32_t events
+* @param value pointer to watch connection it holds server information, Incoming events information
+* @return none
+*/
+static void
+listen_socket_handle_data(struct watch *w, uint32_t events)
+{
+ wth_verbose("%s >>> \n",__func__);
+ struct server *srv = container_of(w, struct server, listen_watch);
+
+ if (events & EPOLLERR) {
+ wth_error("Listening socket errored out.\n");
+ srv->running = false;
+
+ return;
+ }
+
+ if (events & EPOLLHUP) {
+ wth_error("Listening socket hung up.\n");
+ srv->running = false;
+
+ return;
+ }
+
+ if (events & EPOLLIN)
+ {
+ wth_verbose("EPOLLIN evnet received. \n");
+ server_accept_client(srv);
+ }
+ wth_verbose(" <<< %s \n",__func__);
+}
+
+/**
+* server_mainloop
+*
+* This is the main loop, which will flush all pending clients requests and
+* listen to input events from socket
+*
+* @param names void *data
+* @param value pointer to server struct -
+* struct holds the client connection information
+* @return none
+*/
+static void
+server_mainloop(struct server *srv)
+{
+ wth_verbose("%s >>> \n",__func__);
+
+ struct epoll_event ee[MAX_EPOLL_WATCHES];
+ struct watch *w;
+ int count;
+ int i;
+
+ srv->running = true;
+
+ while (srv->running) {
+ /* Run any idle tasks at this point. */
+
+ server_flush_clients(srv);
+
+ /* Wait for events or signals */
+ count = epoll_wait(srv->epoll_fd,
+ ee, ARRAY_LENGTH(ee), -1);
+ if (count < 0 && errno != EINTR) {
+ perror("Error with epoll_wait");
+ break;
+ }
+
+ /* Handle all fds, both the listening socket
+ * (see listen_socket_handle_data()) and clients
+ * (see connection_handle_data()).
+ */
+ for (i = 0; i < count; i++) {
+ w = ee[i].data.ptr;
+ w->cb(w, ee[i].events);
+ }
+ }
+ wth_verbose(" <<< %s \n",__func__);
+}
+
+static int
+server_listen(uint16_t tcp_port)
+{
+ wth_verbose("%s >>> \n",__func__);
+ int fd;
+ int reuse = 1;
+ struct sockaddr_in addr;
+
+ fd = socket(AF_INET, SOCK_STREAM, 0);
+
+ memset(&addr, 0, sizeof(addr));
+ addr.sin_family = AF_INET;
+ addr.sin_port = htons(tcp_port);
+ addr.sin_addr.s_addr = htonl(INADDR_ANY);
+
+ setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &reuse, sizeof reuse);
+
+ if (bind(fd, (struct sockaddr *)&addr, sizeof addr) < 0) {
+ wth_error("Failed to bind to port %d", tcp_port);
+ close(fd);
+ return -1;
+ }
+
+ if (listen(fd, 1024) < 0) {
+ wth_error("Failed to listen to port %d", tcp_port);
+ close (fd);
+ return -1;
+ }
+
+ wth_verbose(" <<< %s \n",__func__);
+ return fd;
+}
+
+static bool *signal_int_handler_run_flag;
+
+static void
+signal_int_handler(int signum)
+{
+ wth_verbose("%s >>> \n",__func__);
+ if (!*signal_int_handler_run_flag)
+ abort();
+
+ *signal_int_handler_run_flag = false;
+ wth_verbose(" <<< %s \n",__func__);
+}
+
+static void
+set_sigint_handler(bool *running)
+{
+ wth_verbose("%s >>> \n",__func__);
+ struct sigaction sigint;
+
+ signal_int_handler_run_flag = running;
+ sigint.sa_handler = signal_int_handler;
+ sigemptyset(&sigint.sa_mask);
+ sigint.sa_flags = SA_RESETHAND;
+ sigaction(SIGINT, &sigint, NULL);
+ wth_verbose(" <<< %s \n",__func__);
+}
+
+
+struct window g_window; // @@@@@
+extern void init_receiver(struct window *window);// @@@@@
+/**
+* main
+*
+* waltham server main function, it accepts tcp port number as argument.
+* Establishes connection on the port and listen to port for incoming connection
+* request from waltham clients
+*
+* @param names argv - argument list and argc -argument count
+* @param value tcp port number as argument
+* @return 0 on success, -1 on error
+*/
+int
+main(int argc, char *argv[])
+{
+ struct server srv = { 0 };
+ struct client *c;
+
+ wth_verbose("%s >>> \n",__func__);
+
+ if(argc > 2)
+ {
+ if(std::string(argv[0]).find("receiver") != std::string::npos)
+ app_name = std::string("receiver");
+ port = strtol(argv[1], NULL, 10);
+ token = argv[2];
+ }
+
+ wth_verbose("app:%s port:%d token:%s \n", app_name.c_str(), port, token.c_str());
+#if 0
+ /* Get command line arguments */
+ if (parse_args(argc, argv) != 0)
+ {
+ return -1;
+ }
+#endif
+
+ set_sigint_handler(&srv.running);
+
+ wl_list_init(&srv.client_list);
+
+ srv.epoll_fd = epoll_create1(EPOLL_CLOEXEC);
+ if (srv.epoll_fd == -1) {
+ perror("Error on epoll_create1");
+ exit(1);
+ }
+
+ srv.listen_fd = server_listen(tcp_port);
+ if (srv.listen_fd < 0) {
+ perror("Error setting up listening socket");
+ exit(1);
+ }
+
+ srv.listen_watch.server = &srv;
+ srv.listen_watch.cb = listen_socket_handle_data;
+ srv.listen_watch.fd = srv.listen_fd;
+ if (watch_ctl(&srv.listen_watch, EPOLL_CTL_ADD, EPOLLIN) < 0) {
+ perror("Error setting up listen polling");
+ exit(1);
+ }
+
+ init_receiver(&g_window);
+
+ wth_verbose("Waltham server listening on TCP port %u...\n",tcp_port);
+
+ server_mainloop(&srv);
+
+ /* destroy all things */
+ wl_list_last_until_empty(c, &srv.client_list, link)
+ client_destroy(c);
+
+ close(srv.listen_fd);
+ close(srv.epoll_fd);
+
+ wth_verbose(" <<< %s \n",__func__);
+ return 0;
+}
diff --git a/src/wth-server-waltham-comm.cpp b/src/wth-server-waltham-comm.cpp
new file mode 100644
index 0000000..6e3b08c
--- /dev/null
+++ b/src/wth-server-waltham-comm.cpp
@@ -0,0 +1,1202 @@
+/**
+ * @licence app begin@
+ *
+ *
+ * TBD
+ *
+ *
+ * @licence end@
+ */
+/*******************************************************************************
+** **
+** SRC-MODULE: **
+** **
+** TARGET : linux **
+** **
+** PROJECT : waltham-server **
+** **
+** AUTHOR : **
+** **
+** **
+** **
+** PURPOSE : This file acts as interface to waltham IPC library **
+** **
+** REMARKS : **
+** **
+** PLATFORM DEPENDANT [yes/no]: yes **
+** **
+** TO BE CHANGED BY USER [yes/no]: no **
+** **
+*******************************************************************************/
+extern "C" {
+#include "wth-server-waltham-comm.h"
+}
+extern int wth_server_weston_main(struct window *);
+
+extern void wth_server_weston_shm_attach(struct window *, uint32_t data_sz, void * data,
+ int32_t width, int32_t height, int32_t stride, uint32_t format);
+extern void wth_server_weston_shm_damage(struct window *);
+extern void wth_server_weston_shm_commit(struct window *);
+
+extern bool get_verbosity(void);
+extern int verbose;
+
+// container_of modified for C->C++
+/*
+#undef container_of
+#undef offsetof
+
+template<class P, class M>
+size_t offsetof(const M P::*member)
+{
+ return (size_t) &( reinterpret_cast<P*>(0)->*member);
+}
+template<class P, class M>
+P* container_of(M* ptr, const M P::*member)
+{
+ return (P*)( (char*)ptr - offsetof(member));
+}
+*/
+typedef struct buffer Buffer;
+
+/*
+ * utility functions
+ */
+static int
+watch_ctl(struct watch *w, int op, uint32_t events)
+{
+ wth_verbose("%s >>> \n",__func__);
+ struct epoll_event ee;
+
+ ee.events = events;
+ ee.data.ptr = w;
+ wth_verbose(" <<< %s \n",__func__);
+ return epoll_ctl(w->server->epoll_fd, op, w->fd, &ee);
+}
+
+static void
+client_post_out_of_memory(struct client *c)
+{
+ wth_verbose("%s >>> \n",__func__);
+ struct wth_display *disp;
+
+ disp = wth_connection_get_display(c->connection);
+ wth_object_post_error((struct wth_object *)disp, 1,
+ "out of memory");
+ wth_verbose(" <<< %s \n",__func__);
+}
+
+/*
+ * waltham surface implementation
+ */
+static void
+surface_destroy(struct surface *surface)
+{
+ wth_verbose("%s >>> \n",__func__);
+ wth_verbose("surface %p destroy\n", surface->obj);
+
+ wthp_surface_free(surface->obj);
+ wl_list_remove(&surface->link);
+ free(surface);
+ wth_verbose(" <<< %s \n",__func__);
+}
+
+static void
+surface_handle_destroy(struct wthp_surface *wthp_surface)
+{
+ wth_verbose("%s >>> \n",__func__);
+ struct surface *surface = wth_object_get_user_data((struct wth_object *)wthp_surface);
+
+ assert(wthp_surface == surface->obj);
+
+ surface_destroy(surface);
+ wth_verbose(" <<< %s \n",__func__);
+}
+
+static void
+surface_handle_attach(struct wthp_surface *wthp_surface,
+ struct wthp_buffer *wthp_buf, int32_t x, int32_t y)
+{
+ wth_verbose("%s >>> \n",__func__);
+ struct buffer *buffr = wth_object_get_user_data((struct wth_object *)wthp_buf);
+ struct surface *surf = wth_object_get_user_data((struct wth_object *)wthp_surface);
+ struct buffer *buf = NULL;
+
+ //buf = container_of(wthp_buf, struct buffer, obj);
+ //buf = container_of(wthp_buf, &buffer::obj);
+ uint32_t *tmp_data_sz = (uint32_t *)wthp_buf + sizeof(struct wthp_buffer *);
+ buf = container_of(tmp_data_sz, struct buffer, data_sz);
+
+ if (surf->ivi_id != 0) {
+ wth_server_weston_shm_attach(surf->shm_window,
+ buf->data_sz,
+ buf->data,
+ buf->width,
+ buf->height,
+ buf->stride,
+ buf->format);
+
+ wthp_buffer_send_complete(wthp_buf, 0);
+ }
+ wth_verbose(" <<< %s \n",__func__);
+}
+
+static void
+surface_handle_damage(struct wthp_surface *wthp_surface,
+ int32_t x, int32_t y, int32_t width, int32_t height)
+{
+ wth_verbose("%s >>> \n",__func__);
+
+ wth_verbose("surface %p damage(%d, %d, %d, %d)\n",
+ wthp_surface, x, y, width, height);
+
+ struct surface *surf = wth_object_get_user_data((struct wth_object *)wthp_surface);
+
+ if (surf->ivi_id != 0) {
+ wth_server_weston_shm_damage(surf->shm_window);
+ }
+ wth_verbose(" <<< %s \n",__func__);
+}
+
+static void
+surface_handle_frame(struct wthp_surface *wthp_surface,
+ struct wthp_callback *callback)
+{
+ wth_verbose("%s >>> \n",__func__);
+ struct surface *surf = wth_object_get_user_data((struct wth_object *)wthp_surface);
+ wth_verbose("surface %p callback(%p)\n",wthp_surface, callback);
+
+ surf->cb = callback;
+ wth_verbose(" <<< %s \n",__func__);
+}
+
+static void
+surface_handle_set_opaque_region(struct wthp_surface *wthp_surface,
+ struct wthp_region *region)
+{
+ wth_verbose("surface %p set_opaque_region(%p)\n",
+ wthp_surface, region);
+}
+
+static void
+surface_handle_set_input_region(struct wthp_surface *wthp_surface,
+ struct wthp_region *region)
+{
+ wth_verbose("surface %p set_input_region(%p)\n",
+ wthp_surface, region);
+}
+
+static void
+surface_handle_commit(struct wthp_surface *wthp_surface)
+{
+ wth_verbose("%s >>> \n",__func__);
+
+ struct surface *surf = wth_object_get_user_data((struct wth_object *)wthp_surface);
+ wth_verbose("commit %p\n",wthp_surface);
+
+ if (surf->ivi_id != 0) {
+ wth_server_weston_shm_commit(surf->shm_window);
+ }
+ wth_verbose(" <<< %s \n",__func__);
+}
+
+static void
+surface_handle_set_buffer_transform(struct wthp_surface *wthp_surface,
+ int32_t transform)
+{
+ wth_verbose("surface %p et_buffer_transform(%d)\n",
+ wthp_surface, transform);
+}
+
+static void
+surface_handle_set_buffer_scale(struct wthp_surface *wthp_surface,
+ int32_t scale)
+{
+ wth_verbose("surface %p set_buffer_scale(%d)\n",
+ wthp_surface, scale);
+}
+
+static void
+surface_handle_damage_buffer(struct wthp_surface *wthp_surface,
+ int32_t x, int32_t y, int32_t width, int32_t height)
+{
+ wth_verbose("surface %p damage_buffer(%d, %d, %d, %d)\n",
+ wthp_surface, x, y, width, height);
+}
+
+static const struct wthp_surface_interface surface_implementation = {
+ surface_handle_destroy,
+ surface_handle_attach,
+ surface_handle_damage,
+ surface_handle_frame,
+ surface_handle_set_opaque_region,
+ surface_handle_set_input_region,
+ surface_handle_commit,
+ surface_handle_set_buffer_transform,
+ surface_handle_set_buffer_scale,
+ surface_handle_damage_buffer
+};
+
+
+/* BEGIN wthp_region implementation */
+
+static void
+buffer_handle_destroy(struct wthp_buffer *wthp_buffer)
+{
+ struct buffer *buf = wth_object_get_user_data((struct wth_object *)wthp_buffer);
+
+ wthp_buffer_free(wthp_buffer);
+ wl_list_remove(&buf->link);
+ free(buf);
+}
+
+static const struct wthp_buffer_interface buffer_implementation = {
+ buffer_handle_destroy
+};
+
+/* END wthp_region implementation */
+
+/* BEGIN wthp_blob_factory implementation */
+
+static void
+blob_factory_create_buffer(struct wthp_blob_factory *blob_factory,
+ struct wthp_buffer *wthp_buffer, uint32_t data_sz, void *data,
+ int32_t width, int32_t height, int32_t stride, uint32_t format)
+{
+ struct blob_factory *blob = wth_object_get_user_data((struct wth_object *)blob_factory);
+ struct buffer *buffer;
+
+
+ wth_verbose("wthp_blob_factory %p create_buffer(%p, %d, %p, %d, %d, %d, %d)\n",
+ blob_factory, wthp_buffer, data_sz, data, width, height, stride, format);
+
+ buffer = zalloc(sizeof *buffer);
+ if (!buffer) {
+ client_post_out_of_memory(blob->client);
+ return;
+ }
+
+ wl_list_insert(&blob->client->buffer_list, &buffer->link);
+
+ buffer->data_sz = data_sz;
+ buffer->data = data;
+ buffer->width = width;
+ buffer->height = height;
+ buffer->stride = stride;
+ buffer->format = format;
+ buffer->obj = wthp_buffer;
+
+ wthp_buffer_set_interface(wthp_buffer, &buffer_implementation, buffer);
+}
+
+static const struct wthp_blob_factory_interface blob_factory_implementation = {
+ blob_factory_create_buffer
+};
+
+static void
+client_bind_blob_factory(struct client *c, struct wthp_blob_factory *obj)
+{
+ struct blob_factory *blob;
+
+ blob = zalloc(sizeof *blob);
+ if (!blob) {
+ client_post_out_of_memory(c);
+ return;
+ }
+
+ blob->obj = obj;
+ blob->client = c;
+ wl_list_insert(&c->compositor_list, &blob->link);
+
+ wthp_blob_factory_set_interface(obj, &blob_factory_implementation,
+ blob);
+ fprintf(stderr, "client %p bound wthp_blob_factory\n", c);
+}
+
+/*
+ * waltam ivi surface implementation
+ */
+static void
+wthp_ivi_surface_destroy(struct wthp_ivi_surface * ivi_surface)
+{
+ wth_verbose("%s >>> \n",__func__);
+ struct ivisurface *ivisurf = wth_object_get_user_data((struct wth_object *)ivi_surface);
+ free(ivisurf);
+ wth_verbose(" <<< %s \n",__func__);
+}
+
+static const struct wthp_ivi_surface_interface wthp_ivi_surface_implementation = {
+ wthp_ivi_surface_destroy,
+};
+
+
+/*
+ * waltham ivi application implementation
+ */
+static void
+wthp_ivi_application_surface_create(struct wthp_ivi_application * ivi_application, uint32_t ivi_id,
+ struct wthp_surface * wthp_surface, struct wthp_ivi_surface *obj)
+{
+ wth_verbose("%s >>> \n",__func__);
+ wth_verbose("ivi_application %p surface_create(%d, %p, %p)\n",
+ ivi_application, ivi_id, wthp_surface, obj);
+ struct application *app = wth_object_get_user_data((struct wth_object *)ivi_application);
+ struct surface *surface = wth_object_get_user_data((struct wth_object *)wthp_surface);
+ wth_verbose("----------------------------------\n\n\n");
+ wth_verbose("surface [%p]\n", surface);
+ wth_verbose("shm_window [%p]\n\n\n", surface->shm_window);
+ wth_verbose("----------------------------------\n");
+
+ surface->ivi_id = ivi_id + 100;
+ surface->shm_window->id_ivisurf = surface->ivi_id;
+ struct ivisurface *ivisurf;
+
+ ivisurf = zalloc(sizeof *ivisurf);
+ if (!ivisurf) {
+ return;
+ }
+
+ ivisurf->obj = obj;
+ ivisurf->surf = surface;
+
+ wth_server_weston_main(surface->shm_window);
+
+ while (!surface->shm_window->ready)
+ usleep(1);
+
+ wthp_ivi_surface_set_interface(obj, &wthp_ivi_surface_implementation,
+ ivisurf);
+ wth_verbose(" <<< %s \n",__func__);
+}
+
+static const struct wthp_ivi_application_interface wthp_ivi_application_implementation = {
+ wthp_ivi_application_surface_create,
+};
+
+static void
+client_bind_wthp_ivi_application(struct client *c, struct wthp_ivi_application *obj)
+{
+ wth_verbose("%s >>> \n",__func__);
+
+ struct application *app;
+
+ app = zalloc(sizeof *app);
+ if (!app) {
+ client_post_out_of_memory(c);
+ return;
+ }
+
+ app->obj = obj;
+ app->client = c;
+ wl_list_insert(&c->compositor_list, &app->link);
+
+ wthp_ivi_application_set_interface(obj, &wthp_ivi_application_implementation,
+ app);
+ wth_verbose("client %p bound wthp_ivi_application\n", c);
+ wth_verbose(" <<< %s \n",__func__);
+}
+
+/*
+ * APIs to send pointer events to waltham client
+ */
+
+void
+waltham_pointer_enter(struct window *window, uint32_t serial,
+ wl_fixed_t sx, wl_fixed_t sy)
+{
+ wth_verbose("%s >>> \n",__func__);
+
+ struct surface *surface = window->server_surf;
+ struct seat *seat = window->server_seat;
+ struct pointer *pointer = seat->pointer;
+
+ wth_verbose("waltham_pointer_enter [%d]\n", window->server_surf->ivi_id);
+
+ wthp_pointer_send_enter (pointer->obj, serial, surface->obj, sx, sy);
+
+ wth_verbose(" <<< %s \n",__func__);
+ return;
+}
+
+void
+waltham_pointer_leave(struct window *window, uint32_t serial)
+{
+ wth_verbose("%s >>> \n",__func__);
+ struct surface *surface = window->server_surf;
+ struct seat *seat = window->server_seat;
+ struct pointer *pointer = seat->pointer;
+
+ wth_verbose("waltham_pointer_leave [%d]\n", window->server_surf->ivi_id);
+
+ wthp_pointer_send_leave (pointer->obj, serial, surface->obj);
+
+ wth_verbose(" <<< %s \n",__func__);
+ return;
+}
+
+void
+waltham_pointer_motion(struct window *window, uint32_t time,
+ wl_fixed_t sx, wl_fixed_t sy)
+{
+ wth_verbose("%s >>> \n",__func__);
+ struct surface *surface = window->server_surf;
+ struct seat *seat = window->server_seat;
+ struct pointer *pointer = seat->pointer;
+
+ wthp_pointer_send_motion (pointer->obj, time, sx, sy);
+
+ wth_verbose(" <<< %s \n",__func__);
+ return;
+}
+
+void
+waltham_pointer_button(struct window *window, uint32_t serial,
+ uint32_t time, uint32_t button,
+ uint32_t state)
+{
+ wth_verbose("%s >>> \n",__func__);
+ struct surface *surface = window->server_surf;
+ struct seat *seat = window->server_seat;
+ struct pointer *pointer = seat->pointer;
+
+ wthp_pointer_send_button (pointer->obj, serial, time, button, state);
+
+ wth_verbose(" <<< %s \n",__func__);
+ return;
+}
+
+void
+waltham_pointer_axis(struct window *window, uint32_t time,
+ uint32_t axis, wl_fixed_t value)
+{
+ wth_verbose("%s >>> \n",__func__);
+ struct surface *surface = window->server_surf;
+ struct seat *seat = window->server_seat;
+ struct pointer *pointer = seat->pointer;
+
+ wthp_pointer_send_axis (pointer->obj, time, axis, value);
+
+ wth_verbose(" <<< %s \n",__func__);
+ return;
+}
+
+/*
+ * waltham pointer implementation
+ */
+static void
+pointer_set_cursor(struct wthp_pointer *wthp_pointer, int32_t serial, struct wthp_surface *surface,
+ int32_t hotspot_x, int32_t hotspot_y)
+{
+ struct pointer *pointer = wth_object_get_user_data((struct wth_object *)wthp_pointer);
+
+ wth_verbose("wthp_pointer %p (%d, %p, %d, %d)\n",
+ wthp_pointer, serial, surface, hotspot_x, hotspot_y);
+
+}
+
+static void
+pointer_release(struct wthp_pointer *wthp_pointer)
+{
+ struct pointer *pointer = wth_object_get_user_data((struct wth_object *)wthp_pointer);
+
+ wth_verbose("wthp_pointer %p\n",wthp_pointer);
+}
+
+static const struct wthp_pointer_interface pointer_implementation = {
+ pointer_set_cursor,
+ pointer_release
+};
+
+/*
+ * APIs to send touch events to waltham client
+ */
+
+void
+waltham_touch_down(struct window *window, uint32_t serial,
+ uint32_t time, int32_t id,
+ wl_fixed_t x_w, wl_fixed_t y_w)
+{
+ wth_verbose("%s >>> \n",__func__);
+ struct surface *surface = window->server_surf;
+ struct seat *seat = window->server_seat;
+ struct touch *touch = seat->touch;
+
+ wth_verbose("touch_handle_down surface [%d]\n", surface->ivi_id);
+ wthp_touch_send_down(touch->obj, serial, time, surface->obj, id, x_w, y_w);
+
+ wth_verbose(" <<< %s \n",__func__);
+ return;
+}
+
+void
+waltham_touch_up(struct window *window, uint32_t serial,
+ uint32_t time, int32_t id)
+{
+ wth_verbose("%s >>> \n",__func__);
+ struct seat *seat = window->server_seat;
+ struct touch *touch = seat->touch;
+
+ wthp_touch_send_up(touch->obj, serial, time, id);
+
+ wth_verbose(" <<< %s \n",__func__);
+ return;
+}
+
+void
+waltham_touch_motion(struct window *window, uint32_t time,
+ int32_t id, wl_fixed_t x_w, wl_fixed_t y_w)
+{
+ wth_verbose("%s >>> \n",__func__);
+ struct seat *seat = window->server_seat;
+ struct touch *touch = seat->touch;
+
+ wthp_touch_send_motion(touch->obj, time, id, x_w, y_w);
+
+ wth_verbose(" <<< %s \n",__func__);
+ return;
+}
+
+void
+waltham_touch_frame(struct window *window)
+{
+ wth_verbose("%s >>> \n",__func__);
+ struct seat *seat = window->server_seat;
+ struct touch *touch = seat->touch;
+
+ wthp_touch_send_frame(touch->obj);
+
+ wth_verbose(" <<< %s \n",__func__);
+ return;
+}
+
+void
+waltham_touch_cancel(struct window *window)
+{
+ wth_verbose("%s >>> \n",__func__);
+ struct seat *seat = window->server_seat;
+ struct touch *touch = seat->touch;
+
+ wthp_touch_send_cancel(touch->obj);
+
+ wth_verbose(" <<< %s \n",__func__);
+ return;
+}
+
+/*
+ * waltham touch implementation
+ */
+static void
+touch_release(struct wthp_touch *wthp_touch)
+{
+ wth_verbose("%s >>> \n",__func__);
+ struct touch *touch = wth_object_get_user_data((struct wth_object *)wthp_touch);
+
+ wth_verbose("%p\n",wthp_touch);
+}
+
+static const struct wthp_touch_interface touch_implementation = {
+ touch_release,
+};
+
+/*
+ * waltham seat implementation
+ */
+static void
+seat_get_pointer(struct wthp_seat *wthp_seat, struct wthp_pointer *wthp_pointer)
+{
+ wth_verbose("%s >>> \n",__func__);
+
+ wth_verbose("wthp_seat %p get_pointer(%p)\n",
+ wthp_seat, wthp_pointer);
+
+ struct seat *seat = wth_object_get_user_data((struct wth_object *)wthp_seat);
+ struct pointer *pointer;
+
+ pointer = zalloc(sizeof *pointer);
+ if (!pointer) {
+ client_post_out_of_memory(seat->client);
+ return;
+ }
+
+ pointer->obj = wthp_pointer;
+ pointer->seat = seat;
+ seat->pointer = pointer;
+ wl_list_insert(&seat->client->pointer_list, &pointer->link);
+
+ wthp_pointer_set_interface(wthp_pointer, &pointer_implementation, pointer);
+ wth_verbose(" <<< %s \n",__func__);
+}
+
+static void
+seat_get_touch(struct wthp_seat *wthp_seat, struct wthp_touch *wthp_touch)
+{
+ wth_verbose("%s >>> \n",__func__);
+ wth_verbose("wthp_seat %p get_touch(%p)\n",
+ wthp_seat, wthp_touch);
+
+ struct seat *seat = wth_object_get_user_data((struct wth_object *)wthp_seat);
+ struct touch *touch;
+
+ touch = zalloc(sizeof *touch);
+ if (!touch) {
+ client_post_out_of_memory(seat->client);
+ return;
+ }
+
+ touch->obj = wthp_touch;
+ touch->seat = seat;
+ seat->touch = touch;
+ wl_list_insert(&seat->client->touch_list, &touch->link);
+
+ wthp_touch_set_interface(wthp_touch, &touch_implementation, touch);
+ wth_verbose(" <<< %s \n",__func__);
+}
+
+static void
+seat_release(struct wthp_seat *wthp_seat)
+{
+}
+
+static const struct wthp_seat_interface seat_implementation = {
+ seat_get_pointer,
+ NULL,
+ seat_get_touch,
+ seat_release //,
+ //NULL
+};
+
+static void
+seat_send_updated_caps(struct seat *seat)
+{
+ wth_verbose("%s >>> \n",__func__);
+ enum wthp_seat_capability caps = 0;
+
+ caps |= WTHP_SEAT_CAPABILITY_POINTER;
+ wth_verbose("WTHP_SEAT_CAPABILITY_POINTER %d\n", caps);
+
+ caps |= WTHP_SEAT_CAPABILITY_TOUCH;
+ wth_verbose("WTHP_SEAT_CAPABILITY_TOUCH %d\n", caps);
+
+ wthp_seat_send_capabilities(seat->obj, caps);
+ wth_verbose(" <<< %s \n",__func__);
+}
+
+static void
+client_bind_seat(struct client *c, struct wthp_seat *obj)
+{
+ wth_verbose("%s >>> \n",__func__);
+ struct seat *seat;
+
+ seat = zalloc(sizeof *seat);
+ if (!seat) {
+ client_post_out_of_memory(c);
+ return;
+ }
+
+ seat->obj = obj;
+ seat->client = c;
+ wl_list_insert(&c->seat_list, &seat->link);
+ wth_verbose("wthp_seat object=%p and seat=%p\n",obj,seat);
+ wthp_seat_set_interface(obj, &seat_implementation,
+ seat);
+ wth_verbose("client %p bound wthp_seat\n", c);
+ seat_send_updated_caps(seat);
+ wth_verbose(" <<< %s \n",__func__);
+}
+
+/*
+ * waltham region implementation
+ */
+
+static void
+region_destroy(struct region *region)
+{
+ wth_verbose("%s >>> \n",__func__);
+ wth_verbose("region %p destroy\n", region->obj);
+
+ wthp_region_free(region->obj);
+ wl_list_remove(&region->link);
+ free(region);
+ wth_verbose(" <<< %s \n",__func__);
+}
+
+static void
+region_handle_destroy(struct wthp_region *wthp_region)
+{
+ wth_verbose("%s >>> \n",__func__);
+ struct region *region = wth_object_get_user_data((struct wth_object *)wthp_region);
+
+ assert(wthp_region == region->obj);
+
+ region_destroy(region);
+ wth_verbose(" <<< %s \n",__func__);
+}
+
+static void
+region_handle_add(struct wthp_region *wthp_region,
+ int32_t x, int32_t y, int32_t width, int32_t height)
+{
+ wth_verbose("region %p add(%d, %d, %d, %d)\n",
+ wthp_region, x, y, width, height);
+}
+
+static void
+region_handle_subtract(struct wthp_region *wthp_region,
+ int32_t x, int32_t y,
+ int32_t width, int32_t height)
+{
+ wth_verbose("region %p subtract(%d, %d, %d, %d)\n",
+ wthp_region, x, y, width, height);
+}
+
+static const struct wthp_region_interface region_implementation = {
+ region_handle_destroy,
+ region_handle_add,
+ region_handle_subtract
+};
+
+/*
+ * waltham compositor implementation
+ */
+static void
+compositor_destroy(struct compositor *comp)
+{
+ wth_verbose("%s >>> \n",__func__);
+ wth_verbose("%s: %p\n", __func__, comp->obj);
+
+ wthp_compositor_free(comp->obj);
+ wl_list_remove(&comp->link);
+ free(comp);
+ wth_verbose(" <<< %s \n",__func__);
+}
+
+extern struct window g_window; // @@@@@
+static void
+compositor_handle_create_surface(struct wthp_compositor *compositor,
+ struct wthp_surface *id)
+{
+ wth_verbose("%s >>> \n",__func__);
+ struct compositor *comp = wth_object_get_user_data((struct wth_object *)compositor);
+ struct client *client = comp->client;
+ struct surface *surface;
+ struct seat *seat, *tmp;
+
+ wth_verbose("client %p create surface %p\n",
+ comp->client, id);
+
+ surface = zalloc(sizeof *surface);
+ if (!surface) {
+ client_post_out_of_memory(comp->client);
+ return;
+ }
+
+ surface->obj = id;
+ wl_list_insert(&comp->client->surface_list, &surface->link);
+
+ wthp_surface_set_interface(id, &surface_implementation, surface);
+
+// surface->shm_window = calloc(1, sizeof *surface->shm_window);
+ surface->shm_window = &g_window;
+ if (!surface->shm_window)
+ return;
+
+ surface->shm_window->server_surf = surface;
+ surface->shm_window->ready = false;
+ surface->ivi_id = 0;
+
+ wl_list_for_each_safe(seat, tmp, &client->seat_list, link) {
+ surface->shm_window->server_seat = seat;
+ }
+
+ wth_verbose(" <<< %s \n",__func__);
+}
+
+static void
+compositor_handle_create_region(struct wthp_compositor *compositor,
+ struct wthp_region *id)
+{
+ wth_verbose("%s >>> \n",__func__);
+ struct compositor *comp = wth_object_get_user_data((struct wth_object *)compositor);
+ struct region *region;
+
+ wth_verbose("client %p create region %p\n",
+ comp->client, id);
+
+ region = zalloc(sizeof *region);
+ if (!region) {
+ client_post_out_of_memory(comp->client);
+ return;
+ }
+
+ region->obj = id;
+ wl_list_insert(&comp->client->region_list, &region->link);
+
+ wthp_region_set_interface(id, &region_implementation, region);
+ wth_verbose(" <<< %s \n",__func__);
+}
+
+static const struct wthp_compositor_interface compositor_implementation = {
+ compositor_handle_create_surface,
+ compositor_handle_create_region
+};
+
+static void
+client_bind_compositor(struct client *c, struct wthp_compositor *obj)
+{
+ wth_verbose("%s >>> \n",__func__);
+ struct compositor *comp;
+
+ comp = zalloc(sizeof *comp);
+ if (!comp) {
+ client_post_out_of_memory(c);
+ return;
+ }
+
+ comp->obj = obj;
+ comp->client = c;
+ wl_list_insert(&c->compositor_list, &comp->link);
+
+ wthp_compositor_set_interface(obj, &compositor_implementation,
+ comp);
+ wth_verbose("client %p bound wthp_compositor\n", c);
+ wth_verbose(" <<< %s \n",__func__);
+}
+
+/*
+ * waltham registry implementation
+ */
+static void
+registry_destroy(struct registry *reg)
+{
+ wth_verbose("%s >>> \n",__func__);
+ wth_verbose("%s: %p\n", __func__, reg->obj);
+
+ wthp_registry_free(reg->obj);
+ wl_list_remove(&reg->link);
+ free(reg);
+ wth_verbose(" <<< %s \n",__func__);
+}
+
+static void
+registry_handle_destroy(struct wthp_registry *registry)
+{
+ wth_verbose("%s >>> \n",__func__);
+ struct registry *reg = wth_object_get_user_data((struct wth_object *)registry);
+
+ registry_destroy(reg);
+ wth_verbose(" <<< %s \n",__func__);
+}
+
+static void
+registry_handle_bind(struct wthp_registry *registry,
+ uint32_t name,
+ struct wth_object *id,
+ const char *interface,
+ uint32_t version)
+{
+ wth_verbose("%s >>> \n",__func__);
+ struct registry *reg = wth_object_get_user_data((struct wth_object *)registry);
+ wth_verbose("Recieved registry : %s\n", interface);
+
+ if (strcmp(interface, "wthp_compositor") == 0) {
+ client_bind_compositor(reg->client, (struct wthp_compositor *)id);
+ } else if (strcmp(interface, "wthp_blob_factory") == 0) {
+ client_bind_blob_factory(reg->client, (struct wthp_blob_factory *)id);
+ struct client *client = reg->client;
+ struct seat *seat, *tmp,*get_seat;
+ wl_list_for_each_safe(seat, tmp, &client->seat_list, link) {
+ get_seat = seat;
+ }
+ wth_verbose("get_seat : %p\n", get_seat);
+ seat_send_updated_caps(get_seat);
+ } else if (strcmp(interface, "wthp_ivi_application") == 0) {
+ client_bind_wthp_ivi_application(reg->client, (struct wthp_ivi_application *)id);
+ } else if (strcmp(interface, "wthp_seat") == 0) {
+ client_bind_seat(reg->client, (struct wthp_seat *)id);
+ } else {
+ wth_object_post_error((struct wth_object *)registry, 0,
+ "%s: unknown name %u", __func__, name);
+ wth_object_delete(id);
+ }
+ wth_verbose(" <<< %s \n",__func__);
+}
+
+static const struct wthp_registry_interface registry_implementation = {
+ registry_handle_destroy,
+ registry_handle_bind
+};
+
+/*
+ * waltham display implementation
+ */
+
+static void
+display_handle_client_version(struct wth_display *wth_display,
+ uint32_t client_version)
+{
+ wth_verbose("%s >>> \n",__func__);
+ wth_object_post_error((struct wth_object *)wth_display, 0,
+ "unimplemented: %s", __func__);
+ wth_verbose(" <<< %s \n",__func__);
+}
+
+static void
+display_handle_sync(struct wth_display * wth_display, struct wthp_callback * callback)
+{
+ wth_verbose("%s >>> \n",__func__);
+ struct client *c = wth_object_get_user_data((struct wth_object *)wth_display);
+
+ wth_verbose("Client %p requested wth_display.sync\n", c);
+ wthp_callback_send_done(callback, 0);
+ wthp_callback_free(callback);
+ wth_verbose(" <<< %s \n",__func__);
+}
+
+static void
+display_handle_get_registry(struct wth_display *wth_display,
+ struct wthp_registry *registry)
+{
+ wth_verbose("%s >>> \n",__func__);
+ struct client *c = wth_object_get_user_data((struct wth_object *)wth_display);
+ struct registry *reg;
+
+ reg = zalloc(sizeof *reg);
+ if (!reg) {
+ client_post_out_of_memory(c);
+ return;
+ }
+
+ reg->obj = registry;
+ reg->client = c;
+ wl_list_insert(&c->registry_list, &reg->link);
+ wthp_registry_set_interface(registry,
+ &registry_implementation, reg);
+
+ wthp_registry_send_global(registry, 1, "wthp_compositor", 4);
+ wthp_registry_send_global(registry, 1, "wthp_ivi_application", 1);
+ wthp_registry_send_global(registry, 1, "wthp_seat", 4);
+ wthp_registry_send_global(registry, 1, "wthp_blob_factory", 4);
+ wth_verbose(" <<< %s \n",__func__);
+}
+
+const struct wth_display_interface display_implementation = {
+ display_handle_client_version,
+ display_handle_sync,
+ display_handle_get_registry
+};
+
+/*
+ * functions to handle waltham client connections
+ */
+static void
+connection_handle_data(struct watch *w, uint32_t events)
+{
+ wth_verbose("%s >>> \n",__func__);
+ struct client *c = container_of(w, struct client, conn_watch);
+ int ret;
+
+ if (events & EPOLLERR) {
+ wth_error("Client %p errored out.\n", c);
+ client_destroy(c);
+
+ return;
+ }
+
+ if (events & EPOLLHUP) {
+ wth_error("Client %p hung up.\n", c);
+ client_destroy(c);
+
+ return;
+ }
+
+ if (events & EPOLLOUT) {
+ ret = wth_connection_flush(c->connection);
+ if (ret == 0)
+ watch_ctl(&c->conn_watch, EPOLL_CTL_MOD, EPOLLIN);
+ else if (ret < 0 && errno != EAGAIN){
+ wth_error("Client %p flush error.\n", c);
+ client_destroy(c);
+
+ return;
+ }
+ }
+
+ if (events & EPOLLIN) {
+ ret = wth_connection_read(c->connection);
+ if (ret < 0) {
+ wth_error("Client %p read error.\n", c);
+ client_destroy(c);
+
+ return;
+ }
+
+ ret = wth_connection_dispatch(c->connection);
+ if (ret < 0 && errno != EPROTO) {
+ wth_error("Client %p dispatch error.\n", c);
+ client_destroy(c);
+
+ return;
+ }
+ }
+ wth_verbose(" <<< %s \n",__func__);
+}
+
+/**
+* client_create
+*
+* Create new client connection
+*
+* @param srv Server structure
+* @param wth_connection Waltham connection handle
+* @return Pointer to client structure
+*/
+static struct client *
+client_create(struct server *srv, struct wth_connection *conn)
+{
+ wth_verbose("%s >>> \n",__func__);
+ struct client *c;
+ struct wth_display *disp;
+
+ c = zalloc(sizeof *c);
+ if (!c)
+ return NULL;
+
+ c->server = srv;
+ c->connection = conn;
+
+ c->conn_watch.server = srv;
+ c->conn_watch.fd = wth_connection_get_fd(conn);
+ c->conn_watch.cb = connection_handle_data;
+ if (watch_ctl(&c->conn_watch, EPOLL_CTL_ADD, EPOLLIN) < 0) {
+ free(c);
+ return NULL;
+ }
+
+ wth_verbose("Client %p connected.\n", c);
+
+ wl_list_insert(&srv->client_list, &c->link);
+
+ wl_list_init(&c->registry_list);
+ wl_list_init(&c->compositor_list);
+ wl_list_init(&c->seat_list);
+ wl_list_init(&c->pointer_list);
+ wl_list_init(&c->touch_list);
+ wl_list_init(&c->region_list);
+ wl_list_init(&c->surface_list);
+ wl_list_init(&c->buffer_list);
+
+ disp = wth_connection_get_display(c->connection);
+ wth_display_set_interface(disp, &display_implementation, c);
+
+ wth_verbose(" <<< %s \n",__func__);
+ return c;
+}
+
+/**
+* client_destroy
+*
+* Destroy client connection
+*
+* @param names struct client *c
+* @param value client data
+* @return none
+*/
+void
+client_destroy(struct client *c)
+{
+ wth_verbose("%s >>> \n",__func__);
+ struct region *region;
+ struct compositor *comp;
+ struct registry *reg;
+ struct surface *surface;
+
+ wth_verbose("Client %p disconnected.\n", c);
+
+ /* clean up remaining client resources in case the client
+ * did not.
+ */
+ wl_list_last_until_empty(region, &c->region_list, link)
+ region_destroy(region);
+
+ wl_list_last_until_empty(comp, &c->compositor_list, link)
+ compositor_destroy(comp);
+
+ wl_list_last_until_empty(reg, &c->registry_list, link)
+ registry_destroy(reg);
+
+ wl_list_last_until_empty(surface, &c->surface_list, link)
+ surface_destroy(surface);
+
+ wl_list_remove(&c->link);
+ watch_ctl(&c->conn_watch, EPOLL_CTL_DEL, 0);
+ wth_connection_destroy(c->connection);
+ free(c);
+ wth_verbose(" <<< %s \n",__func__);
+}
+
+/**
+* server_flush_clients
+*
+* write all the pending requests from the clients to socket
+*
+* @param names struct server *srv
+* @param value socket connection info and client data
+* @return none
+*/
+void
+server_flush_clients(struct server *srv)
+{
+ wth_verbose("%s >>> \n",__func__);
+ struct client *c, *tmp;
+ int ret;
+
+ wl_list_for_each_safe(c, tmp, &srv->client_list, link) {
+ /* Flush out buffered requests. If the Waltham socket is
+ * full, poll it for writable too.
+ */
+ ret = wth_connection_flush(c->connection);
+ if (ret < 0 && errno == EAGAIN) {
+ watch_ctl(&c->conn_watch, EPOLL_CTL_MOD, EPOLLIN | EPOLLOUT);
+ } else if (ret < 0) {
+ perror("Connection flush failed");
+ client_destroy(c);
+ return;
+ }
+ }
+
+ wth_verbose(" <<< %s \n",__func__);
+
+}
+
+/**
+* server_accept_client
+*
+* Accepts new waltham client connection and instantiates client structure
+*
+* @param names struct server *srv
+* @param value socket connection info and client data
+* @return none
+*/
+void
+server_accept_client(struct server *srv)
+{
+ wth_verbose("%s >>> \n",__func__);
+ struct client *client;
+ struct wth_connection *conn;
+ struct sockaddr_in addr;
+ socklen_t len;
+
+ len = sizeof addr;
+ conn = wth_accept(srv->listen_fd, (struct sockaddr *)&addr, &len);
+ if (!conn) {
+ wth_error("Failed to accept a connection.\n");
+ return;
+ }
+
+ client = client_create(srv, conn);
+ if (!client) {
+ wth_error("Failed client_create().\n");
+ return;
+ }
+ wth_verbose(" <<< %s \n",__func__);
+}
diff --git a/src/wth-server-weston.c b/src/wth-server-weston.c
new file mode 100644
index 0000000..6cc309c
--- /dev/null
+++ b/src/wth-server-weston.c
@@ -0,0 +1,811 @@
+/**
+ * @licence app begin@
+ *
+ *
+ * TBD
+ *
+ *
+ * @licence end@
+ */
+/*******************************************************************************
+** **
+** SRC-MODULE: **
+** **
+** TARGET : linux **
+** **
+** PROJECT : waltham-server **
+** **
+** AUTHOR : **
+** **
+** **
+** **
+** PURPOSE : This file is acts as interface to weston compositor at server **
+** side **
+** **
+** REMARKS : **
+** **
+** PLATFORM DEPENDANT [yes/no]: yes **
+** **
+** TO BE CHANGED BY USER [yes/no]: no **
+** **
+*******************************************************************************/
+
+#include <sys/mman.h>
+#include <signal.h>
+#include <sys/time.h>
+
+#include "wth-server-weston.h"
+#include "os-compatibility.h"
+#include "ivi-application-client-protocol.h"
+#include "bitmap.h"
+
+
+static int running = 1;
+extern bool get_verbosity(void);
+extern int verbose;
+/*
+ * buffer callback
+ */
+static void
+buffer_release(void *data, struct wl_buffer *buffer)
+{
+ struct shm_buffer *mybuf = data;
+
+ wth_verbose("%s >>> \n",__func__);
+
+ mybuf->busy = 0;
+
+ wth_verbose(" <<< %s \n",__func__);
+}
+
+static const struct wl_buffer_listener buffer_listener = {
+ buffer_release
+};
+
+static int
+create_shm_buffer(struct display *display, struct shm_buffer *buffer,
+ int width, int height, uint32_t format)
+{
+ struct wl_shm_pool *pool;
+ int fd, size, stride;
+ void *data;
+
+ wth_verbose("%s >>> \n",__func__);
+ stride = width * 4;
+ size = stride * height;
+
+ fd = os_create_anonymous_file(size);
+ if (fd < 0) {
+ wth_error("creating a buffer file for %d B failed: %m\n",
+ size);
+ return -1;
+ }
+
+ data = mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
+ if (data == MAP_FAILED) {
+ wth_error("mmap failed: %m\n");
+ close(fd);
+ return -1;
+ }
+
+ pool = wl_shm_create_pool(display->shm, fd, size);
+ buffer->buffer = wl_shm_pool_create_buffer(pool, 0,
+ width, height,
+ stride, format);
+ wl_buffer_add_listener(buffer->buffer, &buffer_listener, buffer);
+ wl_shm_pool_destroy(pool);
+ close(fd);
+
+ buffer->shm_data = data;
+
+ wth_verbose(" <<< %s \n",__func__);
+ return 0;
+}
+
+/*
+ * ivi surface callback
+ */
+static void
+handle_ivi_surface_configure(void *data, struct ivi_surface *ivi_surface,
+ int32_t width, int32_t height)
+{
+ /* Simple-shm is resizable */
+}
+
+static const struct ivi_surface_listener ivi_surface_listener = {
+ handle_ivi_surface_configure,
+};
+
+static void
+create_window(struct window *window, struct display *display, int width, int height)
+{
+ wth_verbose("%s >>> \n",__func__);
+
+ window->callback = NULL;
+ window->display = display;
+ window->width = width;
+ window->height = height;
+ window->surface = wl_compositor_create_surface(display->compositor);
+ window->window_frames = 0;
+ window->window_benchmark_time = 0;
+
+ wl_display_roundtrip(display->display);
+ if (display->ivi_application ) {
+ uint32_t id_ivisurf = window->id_ivisurf;
+ window->ivi_surface =
+ ivi_application_surface_create(display->ivi_application,
+ id_ivisurf, window->surface);
+ if (window->ivi_surface == NULL) {
+ wth_error("Failed to create ivi_client_surface\n");
+ abort();
+ }
+
+ ivi_surface_add_listener(window->ivi_surface,
+ &ivi_surface_listener, window);
+
+ } else {
+ assert(0);
+ }
+
+ wth_verbose(" <<< %s \n",__func__);
+ return;
+}
+
+static void
+destroy_window(struct window *window)
+{
+ wth_verbose("%s >>> \n",__func__);
+
+ if (window->callback)
+ wl_callback_destroy(window->callback);
+
+ if (window->buffers[0].buffer)
+ wl_buffer_destroy(window->buffers[0].buffer);
+ if (window->buffers[1].buffer)
+ wl_buffer_destroy(window->buffers[1].buffer);
+
+ wl_surface_destroy(window->surface);
+ free(window);
+
+ wth_verbose(" <<< %s \n",__func__);
+}
+
+static struct shm_buffer *
+window_next_buffer(struct window *window)
+{
+ wth_verbose("%s >>> \n",__func__);
+
+ struct shm_buffer *buffer;
+ int ret = 0;
+
+ if (!window->buffers[0].busy)
+ buffer = &window->buffers[0];
+ else if (!window->buffers[1].busy)
+ buffer = &window->buffers[1];
+ else {
+ window->buffers[0].busy = 0;
+ window->buffers[0].busy = 1;
+ buffer = &window->buffers[0];
+ }
+
+ if (!buffer->buffer) {
+ ret = create_shm_buffer(window->display, buffer,
+ window->width, window->height,
+ WL_SHM_FORMAT_XRGB8888);
+
+ if (ret < 0)
+ return NULL;
+
+ /* paint the padding */
+ memset(buffer->shm_data, 0xff,
+ window->width * window->height * 4);
+ }
+
+ wth_verbose(" <<< %s \n",__func__);
+ return buffer;
+}
+
+static void
+paint_pixels(void *image, int padding, int width, int height, uint32_t time)
+{
+ wth_verbose("%s >>> \n",__func__);
+
+ const int halfh = padding + (height - padding * 2) / 2;
+ const int halfw = padding + (width - padding * 2) / 2;
+ int ir, or;
+ uint32_t *pixel = image;
+ int y;
+
+ /* squared radii thresholds */
+ or = (halfw < halfh ? halfw : halfh) - 8;
+ ir = or - 32;
+ or *= or;
+ ir *= ir;
+
+ pixel += padding * width;
+ for (y = padding; y < height - padding; y++) {
+ int x;
+ int y2 = (y - halfh) * (y - halfh);
+
+ pixel += padding;
+ for (x = padding; x < width - padding; x++) {
+ uint32_t v;
+
+ /* squared distance from center */
+ int r2 = (x - halfw) * (x - halfw) + y2;
+
+ if (r2 < ir)
+ v = (r2 / 32 + time / 64) * 0x0080401;
+ else if (r2 < or)
+ v = (y + time / 32) * 0x0080401;
+ else
+ v = (x + time / 16) * 0x0080401;
+ v &= 0x00ffffff;
+
+ /* cross if compositor uses X from XRGB as alpha */
+ if (abs(x - y) > 6 && abs(x + y - height) > 6)
+ v |= 0xff000000;
+
+ *pixel++ = v;
+ }
+
+ pixel += padding;
+ }
+ wth_verbose(" <<< %s \n",__func__);
+}
+
+void
+wth_server_weston_shm_attach(struct window *window, uint32_t data_sz, void * data,
+ int32_t width, int32_t height, int32_t stride, uint32_t format)
+{
+ wth_verbose("%s >>> \n",__func__);
+
+ struct timeval tv;
+ uint32_t time;
+ struct shm_buffer *buffer;
+ static int ss_count = 0;
+
+ gettimeofday(&tv, NULL);
+ time = tv.tv_sec * 1000 + tv.tv_usec / 1000;
+
+ buffer = window_next_buffer(window);
+ if (!buffer) {
+ wth_error("Both buffers busy at redraw().\n");
+ return;
+ }
+
+ char *bitmap;
+ bitmap = getenv("BITMAP");
+ if (bitmap) {
+ if (!strcmp(bitmap, "1")) {
+ int len;
+ const char *path = "/tmp/bitmap";
+ len = strlen(path);
+ char *filename;
+ filename = (char *)malloc(len + 10);
+ sprintf(filename, "%s%d.bmp", path, ss_count);
+ wth_verbose("%s\n", filename);
+
+ save_as_bitmap(filename, data, data_sz, width, height, format);
+ ss_count++;
+ free(filename);
+ }
+ }
+ buffer->shm_data = data;
+ window->width = width;
+ window->height = height;
+ paint_pixels(buffer->shm_data, 20, window->width, window->height, time);
+
+ wl_surface_attach(window->surface, buffer->buffer, 0, 0);
+
+ buffer->busy = 1;
+ wth_verbose(" <<< %s \n",__func__);
+}
+
+void
+wth_server_weston_shm_damage(struct window *window)
+{
+ wth_verbose("%s >>> \n",__func__);
+
+ wl_surface_damage(window->surface,
+ 0, 0, window->width, window->height);
+
+ wth_verbose(" <<< %s \n",__func__);
+}
+
+void
+wth_server_weston_shm_commit(struct window *window)
+{
+ wth_verbose("%s >>> \n",__func__);
+
+ static const uint32_t benchmark_interval = 5;
+ struct timeval tv;
+ uint32_t time;
+
+ gettimeofday(&tv, NULL);
+ time = tv.tv_sec * 1000 + tv.tv_usec / 1000;
+ if (window->window_frames == 0)
+ window->window_benchmark_time = time;
+ if (time - window->window_benchmark_time > (benchmark_interval * 1000)) {
+ wth_verbose("-------------------------------%d frames in %d seconds: %f fps\n",
+ window->window_frames,
+ benchmark_interval,
+ (float) window->window_frames / benchmark_interval);
+
+ window->window_benchmark_time = time;
+ window->window_frames = 0;
+ }
+
+ wl_surface_commit(window->surface);
+
+ wl_display_flush(window->display->display);
+
+ if (window->wait)
+ window->wait = 0;
+
+ window->window_frames++;
+ wth_verbose(" <<< %s \n",__func__);
+}
+
+/*
+ * frame callback function - this function will display buffer to surface
+ */
+
+static const struct wl_callback_listener frame_listener;
+static void
+redraw(void *data, struct wl_callback *callback, uint32_t time)
+{
+ wth_verbose("%s >>> \n",__func__);
+
+ struct window *window = data;
+ struct shm_buffer *buffer;
+
+ buffer = window_next_buffer(window);
+ if (!buffer) {
+ if(!callback)
+ {
+ wth_error("Failed to create the first buffer.\n");
+ }
+ else
+ {
+ wth_error("Both buffers busy at redraw(). Server bug?\n");
+ }
+ abort();
+ }
+
+ paint_pixels(buffer->shm_data, 20, window->width, window->height, time);
+
+ wl_surface_attach(window->surface, buffer->buffer, 0, 0);
+ wl_surface_damage(window->surface,
+ 20, 20, window->width - 40, window->height - 40);
+
+ if (callback)
+ wl_callback_destroy(callback);
+
+ window->callback = wl_surface_frame(window->surface);
+ wl_callback_add_listener(window->callback, &frame_listener, window);
+ wl_surface_commit(window->surface);
+ buffer->busy = 1;
+ wth_verbose(" <<< %s \n",__func__);
+}
+
+static const struct wl_callback_listener frame_listener = {
+ redraw
+};
+
+/*
+ * shm callbcak function
+ */
+
+static void
+shm_format(void *data, struct wl_shm *wl_shm, uint32_t format)
+{
+ wth_verbose("%s >>> \n",__func__);
+
+ struct display *d = data;
+
+ if (format == WL_SHM_FORMAT_XRGB8888)
+ d->has_xrgb = true;
+
+ wth_verbose(" <<< %s \n",__func__);
+}
+
+struct wl_shm_listener shm_listener = {
+ shm_format
+};
+
+/*
+ * pointer callbcak functions
+ */
+static void
+pointer_handle_enter(void *data, struct wl_pointer *wl_pointer,
+ uint32_t serial, struct wl_surface *wl_surface,
+ wl_fixed_t sx, wl_fixed_t sy)
+{
+ wth_verbose("%s >>> \n",__func__);
+
+ wth_verbose("data [%p]\n", data);
+
+ struct display *display = data;
+ struct window *window = display->window;
+ struct surface *surface = window->server_surf;
+ struct seat *seat = window->server_seat;
+
+ waltham_pointer_enter(window, serial, sx, sy);
+
+ wth_verbose(" <<< %s \n",__func__);
+}
+
+static void
+pointer_handle_leave(void *data, struct wl_pointer *pointer,
+ uint32_t serial, struct wl_surface *surface)
+{
+ wth_verbose("%s >>> \n",__func__);
+
+ wth_verbose("data [%p]\n", data);
+
+ struct display *display = data;
+ struct window *window = display->window;
+
+ waltham_pointer_leave(window, serial);
+
+ wth_verbose(" <<< %s \n",__func__);
+}
+
+static void
+pointer_handle_motion(void *data, struct wl_pointer *pointer,
+ uint32_t time, wl_fixed_t sx, wl_fixed_t sy)
+{
+ wth_verbose("%s >>> \n",__func__);
+
+ struct display *display = data;
+ struct window *window = display->window;
+
+ waltham_pointer_motion(window, time, sx, sy);
+
+ wth_verbose(" <<< %s \n",__func__);
+}
+
+static void
+pointer_handle_button(void *data, struct wl_pointer *wl_pointer,
+ uint32_t serial, uint32_t time, uint32_t button,
+ uint32_t state)
+{
+ wth_verbose("%s >>> \n",__func__);
+
+ struct display *display = data;
+ struct window *window = display->window;
+
+ waltham_pointer_button(window, serial, time, button, state);
+
+ wth_verbose(" <<< %s \n",__func__);
+}
+
+static void
+pointer_handle_axis(void *data, struct wl_pointer *wl_pointer,
+ uint32_t time, uint32_t axis, wl_fixed_t value)
+{
+ wth_verbose("%s >>> \n",__func__);
+
+ struct display *display = data;
+ struct window *window = display->window;
+
+ waltham_pointer_axis(window, time, axis, value);
+
+ wth_verbose(" <<< %s \n",__func__);
+}
+
+static const struct wl_pointer_listener pointer_listener = {
+ pointer_handle_enter,
+ pointer_handle_leave,
+ pointer_handle_motion,
+ pointer_handle_button,
+ pointer_handle_axis,
+};
+
+/*
+ * touch callbcak functions
+ */
+
+static void
+touch_handle_down(void *data, struct wl_touch *touch, uint32_t serial,
+ uint32_t time, struct wl_surface *surface, int32_t id,
+ wl_fixed_t x_w, wl_fixed_t y_w)
+{
+ wth_verbose("%s >>> \n",__func__);
+
+ struct display *display = data;
+ struct window *window = display->window;
+
+ int x = (int)wl_fixed_to_double(x_w);
+ int y = (int)wl_fixed_to_double(y_w);
+ wth_verbose("%p x %d y %d\n",window, x, y);
+
+ waltham_touch_down(window, serial, time, id, x_w, y_w);
+
+ wth_verbose(" <<< %s \n",__func__);
+}
+
+static void
+touch_handle_up(void *data, struct wl_touch *touch, uint32_t serial,
+ uint32_t time, int32_t id)
+{
+ wth_verbose("%s >>> \n",__func__);
+
+ struct display *display = data;
+ struct window *window = display->window;
+
+ waltham_touch_up(window, serial, time, id);
+}
+
+static void
+touch_handle_motion(void *data, struct wl_touch *touch, uint32_t time,
+ int32_t id, wl_fixed_t x_w, wl_fixed_t y_w)
+{
+ wth_verbose("%s >>> \n",__func__);
+
+ struct display *display = data;
+ struct window *window = display->window;
+
+ waltham_touch_motion(window, time, id, x_w, y_w);
+
+ wth_verbose(" <<< %s \n",__func__);
+}
+
+static void
+touch_handle_frame(void *data, struct wl_touch *touch)
+{
+ wth_verbose("%s >>> \n",__func__);
+
+ struct display *display = data;
+ struct window *window = display->window;
+
+ waltham_touch_frame(window);
+
+ wth_verbose(" <<< %s \n",__func__);
+}
+
+static void
+touch_handle_cancel(void *data, struct wl_touch *touch)
+{
+ wth_verbose("%s >>> \n",__func__);
+
+ struct display *display = data;
+ struct window *window = display->window;
+
+ waltham_touch_cancel(window);
+
+ wth_verbose(" <<< %s \n",__func__);
+}
+
+static const struct wl_touch_listener touch_listener = {
+ touch_handle_down,
+ touch_handle_up,
+ touch_handle_motion,
+ touch_handle_frame,
+ touch_handle_cancel
+};
+
+/*
+ * seat callback
+ */
+static void
+seat_capabilities(void *data, struct wl_seat *wl_seat, enum wl_seat_capability caps)
+{
+ wth_verbose("%s >>> \n",__func__);
+
+ struct display *display = data;
+
+ wth_verbose("caps = %d\n", caps);
+
+ if ((caps & WL_SEAT_CAPABILITY_POINTER) && !display->wl_pointer)
+ {
+ wth_verbose("WL_SEAT_CAPABILITY_POINTER\n");
+ display->wl_pointer = wl_seat_get_pointer(wl_seat);
+ wl_pointer_set_user_data(display->wl_pointer, display);
+ wl_pointer_add_listener(display->wl_pointer, &pointer_listener, display);
+ wl_display_roundtrip(display->display);
+ } else if (!(caps & WL_SEAT_CAPABILITY_POINTER) && display->wl_pointer) {
+ wth_verbose("!WL_SEAT_CAPABILITY_POINTER\n");
+ wl_pointer_destroy(display->wl_pointer);
+ display->wl_pointer = NULL;
+ }
+
+ if ((caps & WL_SEAT_CAPABILITY_TOUCH) && !display->wl_touch)
+ {
+ wth_verbose("WL_SEAT_CAPABILITY_TOUCH\n");
+ display->wl_touch = wl_seat_get_touch(wl_seat);
+ wl_touch_set_user_data(display->wl_touch, display);
+ wl_touch_add_listener(display->wl_touch, &touch_listener, display);
+ wl_display_roundtrip(display->display);
+ } else if (!(caps & WL_SEAT_CAPABILITY_TOUCH) && display->wl_touch) {
+ wth_verbose("!WL_SEAT_CAPABILITY_TOUCH\n");
+ wl_touch_destroy(display->wl_touch);
+ display->wl_touch = NULL;
+ }
+
+ wth_verbose(" <<< %s \n",__func__);
+}
+
+static const struct wl_seat_listener seat_listener = {
+ seat_capabilities,
+ NULL
+};
+
+static void
+add_seat(struct display *display, uint32_t id, uint32_t version)
+{
+ wth_verbose("%s >>> \n",__func__);
+
+ display->wl_pointer = NULL;
+ display->seat = wl_registry_bind(display->registry, id,
+ &wl_seat_interface, 1);
+ wl_seat_add_listener(display->seat, &seat_listener, display);
+ wth_verbose(" <<< %s \n",__func__);
+}
+
+/*
+ * registry callback
+ */
+static void
+registry_handle_global(void *data, struct wl_registry *registry,
+ uint32_t id, const char *interface, uint32_t version)
+{
+ wth_verbose("%s >>> \n",__func__);
+
+ struct display *d = data;
+
+ if (strcmp(interface, "wl_compositor") == 0) {
+ d->compositor =
+ wl_registry_bind(registry,
+ id, &wl_compositor_interface, 1);
+ } else if (strcmp(interface, "wl_shm") == 0) {
+ d->shm = wl_registry_bind(registry,
+ id, &wl_shm_interface, 1);
+ wl_shm_add_listener(d->shm, &shm_listener, d);
+ } else if (strcmp(interface, "ivi_application") == 0) {
+ d->ivi_application =
+ wl_registry_bind(registry, id,
+ &ivi_application_interface, 1);
+ } else if (strcmp(interface, "wl_seat") == 0) {
+ add_seat(d, id, version);
+ }
+ wth_verbose(" <<< %s \n",__func__);
+}
+
+static void
+registry_handle_global_remove(void *data, struct wl_registry *registry,
+ uint32_t name)
+{
+}
+
+static const struct wl_registry_listener registry_listener = {
+ registry_handle_global,
+ registry_handle_global_remove
+};
+
+static struct display *
+create_display(void)
+{
+ wth_verbose("%s >>> \n",__func__);
+
+ struct display *display;
+
+ display = malloc(sizeof *display);
+ if (display == NULL) {
+ wth_error("out of memory\n");
+ exit(1);
+ }
+ display->display = wl_display_connect(NULL);
+ assert(display->display);
+
+ display->has_xrgb = false;
+ display->registry = wl_display_get_registry(display->display);
+ wl_registry_add_listener(display->registry,
+ &registry_listener, display);
+ wl_display_roundtrip(display->display);
+ if (display->shm == NULL) {
+ wth_error("No wl_shm global\n");
+ exit(1);
+ }
+
+ wl_display_roundtrip(display->display);
+
+ if (!display->has_xrgb) {
+ wth_error("WL_SHM_FORMAT_XRGB32 not available\n");
+ exit(1);
+ }
+
+ wth_verbose(" <<< %s \n",__func__);
+ return display;
+}
+
+static void
+destroy_display(struct display *display)
+{
+ wth_verbose("%s >>> \n",__func__);
+
+ if (display->shm)
+ wl_shm_destroy(display->shm);
+
+ if (display->compositor)
+ wl_compositor_destroy(display->compositor);
+
+ wl_registry_destroy(display->registry);
+ wl_display_flush(display->display);
+ wl_display_disconnect(display->display);
+ free(display);
+
+ wth_verbose(" <<< %s \n",__func__);
+}
+
+static void
+signal_int(int signum)
+{
+ running = 0;
+}
+
+/**
+* wth_server_weston_main
+*
+* This is the main function which will handle connection to the compositor at server side
+*
+* @param names void *data
+* @param value struct window data
+* @return 0 on success, -1 on error
+*/
+int
+wth_server_weston_main(void *data)
+{
+ wth_verbose("%s >>> \n",__func__);
+
+ struct window *window = (struct window *) data;
+ struct sigaction sigint;
+ struct display *display;
+ int ret = 0;
+
+ display = create_display();
+ create_window(window, display, 400, 400);
+ if (!window)
+ return -1;
+ wl_display_roundtrip(display->display);
+ wth_verbose("data %p\n", data);
+ wth_verbose("window %p\n", window);
+
+ display->window = window;
+
+ sigint.sa_handler = signal_int;
+ sigemptyset(&sigint.sa_mask);
+ sigint.sa_flags = SA_RESETHAND;
+ sigaction(SIGINT, &sigint, NULL);
+
+ /* Initialise damage to full surface, so the padding gets painted */
+ wl_surface_damage(window->surface, 0, 0,
+ window->width, window->height);
+
+ redraw(window, NULL, 0);
+
+ window->wait = 1;
+ window->ready = true;
+ while (window->wait)
+ {
+ ret = wl_display_dispatch(display->display);
+ usleep(1);
+ }
+ wth_verbose("debug\n");
+ while (running && ret != -1)
+ ret = wl_display_dispatch(display->display);
+
+ wth_verbose("wth_server_weston_main exiting\n");
+
+ if (window->display->ivi_application) {
+ ivi_surface_destroy(window->ivi_surface);
+ ivi_application_destroy(window->display->ivi_application);
+ }
+
+ destroy_window(window);
+ destroy_display(display);
+
+ wth_verbose(" <<< %s \n",__func__);
+ return 0;
+}