From 968f60a3eaa77d8b5f324b71b7f545aa60b40694 Mon Sep 17 00:00:00 2001 From: "ky85.kim" Date: Thu, 11 Jun 2015 21:56:41 +0900 Subject: [PATCH 02/13] Init commit from tizen 2.4 Change-Id: Ie851d1b61d8acfc1ede591a0e8933d69a367c4bf --- AUTHORS | 5 + CMakeLists.txt | 132 ++ LICENSE | 202 ++ NOTICE | 3 + changelog | 6 + data/image.png | Bin 0 -> 1505 bytes data/image_test.png | Bin 0 -> 1421 bytes data/po/CMakeLists.txt | 26 + data/po/en.po | 104 + data/po/en_US.po | 104 + data/po/ko_KR.po | 104 + data/po/pl.po | 404 ++++ data/tooltip.edc | 43 + data/voice-control-elm.edc | 1 + doc/Doxyfile | 1600 ++++++++++++++ doc/images/hints_orientation.png | Bin 0 -> 25472 bytes doc/images/sample_app_hints.png | Bin 0 -> 31678 bytes doc/images/sample_app_no_hints.png | Bin 0 -> 23736 bytes doc/images/subitem_hints_left_and_right.png | Bin 0 -> 41612 bytes doc/uix_voice_control_elm_doc.h | 131 ++ doc/voice-control-elm-doc.dox | 276 +++ doc/voice-control-elm_supported_widgets.dox | 3157 +++++++++++++++++++++++++++ include/CMakeLists.txt | 5 + include/voice-control-elm.pc.in | 11 + include/voice_control_elm.h | 618 ++++++ packaging/voice-control-elm-devel.manifest | 5 + packaging/voice-control-elm.manifest | 5 + packaging/voice-control-elm.spec | 93 + src/CMakeLists.txt | 42 + src/vc_elm.c | 757 +++++++ src/vc_elm.h | 64 + src/vc_elm_core.c | 1704 +++++++++++++++ src/vc_elm_core.h | 503 +++++ src/vc_elm_core_default_widgets.c | 1751 +++++++++++++++ src/vc_elm_main.h | 58 + src/vc_elm_rectangle.c | 82 + src/vc_elm_rectangle.h | 60 + src/vc_elm_tools.h | 41 + src/vc_elm_tooltip.c | 390 ++++ src/vc_elm_tooltip.h | 71 + src/vc_elm_widget_wrapper.c | 364 +++ src/vc_elm_widget_wrapper.h | 73 + voice-control-elm-config.xml | 216 ++ 43 files changed, 13211 insertions(+) create mode 100644 AUTHORS create mode 100644 CMakeLists.txt create mode 100644 LICENSE create mode 100644 NOTICE create mode 100644 changelog create mode 100644 data/image.png create mode 100644 data/image_test.png create mode 100644 data/po/CMakeLists.txt create mode 100644 data/po/en.po create mode 100644 data/po/en_US.po create mode 100644 data/po/ko_KR.po create mode 100644 data/po/pl.po create mode 100644 data/tooltip.edc create mode 100644 data/voice-control-elm.edc create mode 100644 doc/Doxyfile create mode 100644 doc/images/hints_orientation.png create mode 100644 doc/images/sample_app_hints.png create mode 100644 doc/images/sample_app_no_hints.png create mode 100644 doc/images/subitem_hints_left_and_right.png create mode 100644 doc/uix_voice_control_elm_doc.h create mode 100644 doc/voice-control-elm-doc.dox create mode 100644 doc/voice-control-elm_supported_widgets.dox create mode 100644 include/CMakeLists.txt create mode 100644 include/voice-control-elm.pc.in create mode 100644 include/voice_control_elm.h create mode 100644 packaging/voice-control-elm-devel.manifest create mode 100644 packaging/voice-control-elm.manifest create mode 100644 packaging/voice-control-elm.spec create mode 100644 src/CMakeLists.txt create mode 100644 src/vc_elm.c create mode 100644 src/vc_elm.h create mode 100644 src/vc_elm_core.c create mode 100644 src/vc_elm_core.h create mode 100644 src/vc_elm_core_default_widgets.c create mode 100644 src/vc_elm_main.h create mode 100644 src/vc_elm_rectangle.c create mode 100644 src/vc_elm_rectangle.h create mode 100644 src/vc_elm_tools.h create mode 100644 src/vc_elm_tooltip.c create mode 100644 src/vc_elm_tooltip.h create mode 100644 src/vc_elm_widget_wrapper.c create mode 100644 src/vc_elm_widget_wrapper.h create mode 100644 voice-control-elm-config.xml diff --git a/AUTHORS b/AUTHORS new file mode 100644 index 0000000..ba70524 --- /dev/null +++ b/AUTHORS @@ -0,0 +1,5 @@ +Dongyeol Lee +Wonnam Jang +Kwangyoun Kim +Witold Goralski +Jakub Borowski \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..52b1acf --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,132 @@ +# @file CMakeLists.txt +# @author Lukasz Wrzosek (l.wrzosek@samsung.com) +# @version 1.0 +# @brief +# + +# Check minimum CMake version +CMAKE_MINIMUM_REQUIRED(VERSION 2.6) + +# Project name +PROJECT(voice-control-elm) + +SET(LIBRARY_NAME "vc-elm") +#SET(VOICE_CONTROL_ELM_VERSION_MAJOR 0) +#SET(VOICE_CONTROL_ELM_VERSION_MINOR 2) +#SET(VOICE_CONTROL_ELM_VERSION_PATCH 0) +SET(VERSION 0.2.0) + +# pkg config tool +INCLUDE(FindPkgConfig) + +# Build type +SET(CMAKE_BUILD_TYPE "Release") +SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O2 -g -fprofile-arcs -ftest-coverage -D_GNU_SOURCE") + +# CMake settings +MESSAGE(STATUS "========================================") +MESSAGE(STATUS "CMAKE_BINARY_DIR: " ${CMAKE_BINARY_DIR}) +MESSAGE(STATUS "CMAKE_CURRENT_BINARY_DIR: " ${CMAKE_CURRENT_BINARY_DIR}) +MESSAGE(STATUS "CMAKE_SOURCE_DIR: " ${CMAKE_SOURCE_DIR}) +MESSAGE(STATUS "CMAKE_CURRENT_SOURCE_DIR: " ${CMAKE_CURRENT_SOURCE_DIR}) +MESSAGE(STATUS "PROJECT_BINARY_DIR: " ${PROJECT_BINARY_DIR}) +MESSAGE(STATUS "PROJECT_SOURCE_DIR: " ${PROJECT_SOURCE_DIR}) +MESSAGE(STATUS "EXECUTABLE_OUTPUT_PATH: " ${EXECUTABLE_OUTPUT_PATH}) +MESSAGE(STATUS "LIBRARY_OUTPUT_PATH: " ${LIBRARY_OUTPUT_PATH}) +MESSAGE(STATUS "CMAKE_MODULE_PATH: " ${CMAKE_MODULE_PATH}) +MESSAGE(STATUS "CMAKE_COMMAND: " ${CMAKE_COMMAND}) +MESSAGE(STATUS "CMAKE_ROOT: " ${CMAKE_ROOT}) +MESSAGE(STATUS "CMAKE_CURRENT_LIST_FILE: " ${CMAKE_CURRENT_LIST_FILE}) +MESSAGE(STATUS "CMAKE_CURRENT_LIST_LINE: " ${CMAKE_CURRENT_LIST_LINE}) +MESSAGE(STATUS "CMAKE_INCLUDE_PATH: " ${CMAKE_INCLUDE_PATH}) +MESSAGE(STATUS "CMAKE_LIBRARY_PATH: " ${CMAKE_LIBRARY_PATH}) +MESSAGE(STATUS "CMAKE_SYSTEM: " ${CMAKE_SYSTEM}) +MESSAGE(STATUS "CMAKE_SYSTEM_NAME: " ${CMAKE_SYSTEM_NAME}) +MESSAGE(STATUS "CMAKE_SYSTEM_VERSION: " ${CMAKE_SYSTEM_VERSION}) +MESSAGE(STATUS "CMAKE_SYSTEM_PROCESSOR: " ${CMAKE_SYSTEM_PROCESSOR}) +MESSAGE(STATUS "UNIX: " ${UNIX}) +MESSAGE(STATUS "WIN32: " ${WIN32}) +MESSAGE(STATUS "APPLE: " ${APPLE}) +MESSAGE(STATUS "MINGW: " ${MINGW}) +MESSAGE(STATUS "CYGWIN: " ${CYGWIN}) +MESSAGE(STATUS "BORLAND: " ${BORLAND}) +MESSAGE(STATUS "MSVC: " ${MSVC}) +MESSAGE(STATUS "MSVC_IDE: " ${MSVC_IDE}) +MESSAGE(STATUS "MSVC60: " ${MSVC60}) +MESSAGE(STATUS "MSVC70: " ${MSVC70}) +MESSAGE(STATUS "MSVC71: " ${MSVC71}) +MESSAGE(STATUS "MSVC80: " ${MSVC80}) +MESSAGE(STATUS "CMAKE_COMPILER_2005: " ${CMAKE_COMPILER_2005}) +MESSAGE(STATUS "CMAKE_SKIP_RULE_DEPENDENCY: " ${CMAKE_SKIP_RULE_DEPENDENCY}) +MESSAGE(STATUS "CMAKE_SKIP_INSTALL_ALL_DEPENDENCY: " ${CMAKE_SKIP_INSTALL_ALL_DEPENDENCY}) +MESSAGE(STATUS "CMAKE_SKIP_RPATH: " ${CMAKE_SKIP_RPATH}) +MESSAGE(STATUS "CMAKE_VERBOSE_MAKEFILE: " ${CMAKE_VERBOSE_MAKEFILE}) +MESSAGE(STATUS "CMAKE_SUPPRESS_REGENERATION: " ${CMAKE_SUPPRESS_REGENERATION}) +MESSAGE(STATUS "CMAKE_C_FLAGS: " ${CMAKE_C_FLAGS}) +MESSAGE(STATUS "CMAKE_CXX_FLAGS: " ${CMAKE_CXX_FLAGS}) +MESSAGE(STATUS "CMAKE_BUILD_TYPE: " ${CMAKE_BUILD_TYPE}) +MESSAGE(STATUS "BUILD_SHARED_LIBS: " ${BUILD_SHARED_LIBS}) +MESSAGE(STATUS "CMAKE_C_COMPILER: " ${CMAKE_C_COMPILER}) +MESSAGE(STATUS "CMAKE_CXX_COMPILER: " ${CMAKE_CXX_COMPILER}) +MESSAGE(STATUS "CMAKE_COMPILER_IS_GNUCC: " ${CMAKE_COMPILER_IS_GNUCC}) +MESSAGE(STATUS "CMAKE_COMPILER_IS_GNUCXX : " ${CMAKE_COMPILER_IS_GNUCXX}) +MESSAGE(STATUS "CMAKE_AR: " ${CMAKE_AR}) +MESSAGE(STATUS "CMAKE_RANLIB: " ${CMAKE_RANLIB}) +MESSAGE(STATUS "========================================") + +# Warning flags +#ADD_DEFINITIONS("-Werror") # Generate all warnings as errors +ADD_DEFINITIONS("-Wall") # Generate all warnings +ADD_DEFINITIONS("-Wextra") # Generate even more extra warnings +ADD_DEFINITIONS("-pedantic") # Accept only pedantic code +ADD_DEFINITIONS("-Wwrite-strings") # Do not accept writing to constant string memory +ADD_DEFINITIONS("-Winit-self") # Do not accept initializing variable with itself +ADD_DEFINITIONS("-Wcast-align") # Do not accept misaligning with casting +ADD_DEFINITIONS("-Wcast-qual") # Do not accept removing qualifiers with casting +ADD_DEFINITIONS("-Wpointer-arith") # Warn about void pointer arthimetic +ADD_DEFINITIONS("-Wstrict-aliasing") # Ensure strict aliasing +ADD_DEFINITIONS("-Wuninitialized") # Do not accept uninitialized variables +ADD_DEFINITIONS("-Wlong-long") # Do not allow using long long +ADD_DEFINITIONS("-Wunreachable-code") # Warn about unreachable code +ADD_DEFINITIONS("-Wfloat-equal") # Do not accept comparing floating points with equal operator +ADD_DEFINITIONS("-Wabi") # Warn about possible ABI problems +ADD_DEFINITIONS("-Wswitch-enum") # Check switch enumeration +ADD_DEFINITIONS("-Wformat=2") # Check printf formatting +ADD_DEFINITIONS("-Wundef") # Warn if an undefined identifier is evaluated in an @if directive. +ADD_DEFINITIONS("-Wshadow") # Warn whenever a local variable shadows another local variable, parameter or global variable or whenever a built-in function is shadowed +ADD_DEFINITIONS("-Wconversion") # Warn for implicit conversions that may alter a value +ADD_DEFINITIONS("-Wlogical-op") # Warn about suspicious uses of logical operators in expressions +ADD_DEFINITIONS("-Wmissing-field-initializers") # Warn if a structure's initializer has some fields missing. +ADD_DEFINITIONS("-Wredundant-decls") # Warn if anything is declared more than once in the same scope, even in cases where multiple declaration is valid and changes nothing. +ADD_DEFINITIONS("-Wswitch-default") # Warn whenever a switch statement does not have a default case. +ADD_DEFINITIONS("-Wsync-nand") # Warn when __sync_fetch_and_nand and __sync_nand_and_fetch built-in functions are used. These functions changed semantics in GCC 4.4. +ADD_DEFINITIONS("-Wunused") # All the above -Wunused options combined. +ADD_DEFINITIONS("-Wstrict-overflow=5") # Also warn about cases where the compiler reduces the magnitude of a constant involved in a comparison. + + +SET(TARGET_VC_ELM_LIBRARY ${LIBRARY_NAME}) + +SET(VC_ELM_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/include) + +ADD_SUBDIRECTORY(src) +ADD_SUBDIRECTORY(include) + +# INCLUDE FOR BUILD & INSTALL .PO FILES +ADD_SUBDIRECTORY(data/po) + +ADD_CUSTOM_TARGET(voice-control-elm.edj + COMMAND edje_cc -id ${CMAKE_SOURCE_DIR}/data + ${CMAKE_SOURCE_DIR}/data/${PROJECT_NAME}.edc ${CMAKE_BINARY_DIR}/${PROJECT_NAME}.edj + ) +ADD_DEPENDENCIES(${LIBRARY_NAME} ${PROJECT_NAME}.edj) + +INSTALL(FILES ${CMAKE_BINARY_DIR}/${PROJECT_NAME}.edj + DESTINATION share/edje) + +INSTALL(FILES ${PROJECT_SOURCE_DIR}/data/image.png + ${PROJECT_SOURCE_DIR}/data/image_test.png + DESTINATION share/voice/vc-elm) + +INSTALL(FILES ${PROJECT_SOURCE_DIR}/voice-control-elm-config.xml + DESTINATION ${LIBDIR}/voice/vc-elm/1.0) + diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..d645695 --- /dev/null +++ b/LICENSE @@ -0,0 +1,202 @@ + + 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: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) 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 + + (d) 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 + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + 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. diff --git a/NOTICE b/NOTICE new file mode 100644 index 0000000..6f31fdc --- /dev/null +++ b/NOTICE @@ -0,0 +1,3 @@ +Copyright (c) 2011-2015 Samsung Electronics Co., Ltd. All rights reserved. +Except as noted, this software is licensed under Apache License, Version 2. +Please, see the LICENSE file for Apache License terms and conditions. diff --git a/changelog b/changelog new file mode 100644 index 0000000..ec2ff78 --- /dev/null +++ b/changelog @@ -0,0 +1,6 @@ +vc-widget-elm (0.2.0) -- Thu, 29 May 2014 + + * Update version 0.2.0 (Kwangyoun Kim ) + +vc-widget-elm (0.0.1) + * Release version 0.1.0 (Lukasz Wrzosek ) diff --git a/data/image.png b/data/image.png new file mode 100644 index 0000000000000000000000000000000000000000..2446782a82f202baf117cf019db5aa9a21188599 GIT binary patch literal 1505 zcmV<71s?i|P)e zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00l`&L_t(|+U=adYa2%t#=kc+ zS=*80#DWx?3T)Eg(h>+gL^cFU?A%K)Jq1$8tpwt~pwNTQIi<%Q+EPMK>7~a|2MSfJ zQeq!^NNk71fh`o|rk1){X=c72tOPfBZLL$cv3EY$i;z~D-_CpUy|=3Yf`WpAf(j$q z?nRRSe3QsY0Ph)Nrbv#9NTifXMdVKaPAQdm?~PK*dGC(^uq4ag`!axI0Mrh@!2_@W z{sNFFrI=>`-g^Ns0O05@-?Meh%6soc?Fo0&HWy=0=Xn*8g!djKJ;{XRZ`Rrc=iHY7ejw?yfSJt8unFr!W6V{h z)TGwB@6@SNyl~+HCMPGQQmLpYiVkF0wcBkxdGf^Hy?a;Y=jV^EuCBgCvLYgHT5FGs z$al}7<(UOD#+cht6eZSFWgQ*RH9NkY@(m6SVq#)KHa0eJ@7_HvA_LC3B>>Akoxm9LX@7tJALHZW zou#EE7DY=-OFVPtOuN6o|Ebpcv+dZZj2!kh$)nTL)2vh~h4EOGN(Ix?(;ztjV4`PW zA~H-;&CJZGQmIrJV5L$C)oN9d)FN`CXJ7!dQVIvzI_yPJ6rob7sO}1>@&F?M^!4=> zuJq}SInzn+R7yx*FLD^P+n6(Fn1~dQRu9So=Kt&Z?l1r=@(g2`VR>eeQu%XOp__y| zL|3K{BPj(2mV1V&B3g=9N%|6i1z`INETG9>8U+Pl`v)u}u;BD_)I~cicxo@^tq9&V z0LvloeehxXox?(Dls6=cTzrSpC@+*(=!X@N8n+xh18a#0o6Tn7!m`KPcx z4oO&R3pc&2wIB(Solr~m>RLBFXs(bfv~ks1Gi&^z_|7?gwU-YS8Cu9;JCu|mhvie! zGqCQn^F_az+dD9lJC+9_Br~8DTqYFXd6r1Bl*@+|y}i?Yk~-Lm97#V7wjyU8p2t=& zIDPcxnqdXE6+%+y0p<#x@PUkblUcypMYa{)N+(wX(WBU6uA~njLeYuk@nIyRU@I~f z!`))Ji1`b9co;CNLc znaOFIVr^~Bd+#YCE>8|?0C4sC&u)Evy)fapzP^rnz3xc5E`y$d-6z?s)oNH-St$&# zm6a9LYBd08l6gp=4U%&1b78c;W ze_*Zs0>D~NzyNGu^I!GvEH5t~vDV`B>Ct0MedM0-$P)xfMmx#?a8Q&ZUn&=*-X0Gmc{>NkZ@af!&|Nd(R|E7{@X1+_}Tc zmoM9)p`lI`MH|MLTL7wAD|hDZPO=$y7mYDjLB4+^ijIwrj&f>h3e{>=kByBT=*@~A zJ$mF978YEsRzn=e;+$)F@8_+xp98o}l6%<>O8}hHT3<58oL5SXksKsxc57j8+2)G> zX3i54?sOZFq&Vk<S!BxcQZ$;x}v00000NkvXX Hu0mjf#Zkds literal 0 HcmV?d00001 diff --git a/data/image_test.png b/data/image_test.png new file mode 100644 index 0000000000000000000000000000000000000000..710ea525aa979cb5fa8dc1017757b7a72e4c0eed GIT binary patch literal 1421 zcmV;81#9EHt+;pD+Lb02y>e zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00i|(L_t(|+U=adY8zJ+hW~T# z%}B8txe){!I$)DR3MHE^A{zoFayDI+Zn_Gj50HiM0~EUO8-%XBYD?GY3xq0AsA7eJ zy=Y4s84?GkP>_;F?l9Ke^LG(RjAg|pZPUh?`QdIPu;zYq?m7RtcRT_BB$1VfoB{B@ zb8eaBqKE{>m_$VW0N{-=v8p;_j91kY08)}QRjmOy1;F6>QUED{KLNzX7~%z_ssi97 zfVm@nXEGfCMpacro&dP#z5fBgk0gJenl~g1L_`dLhPC!n=UiPx-U4t^M2s;8B7zsy z4A_6`@B9;ygsOt1l8j0ImZs^3_x?)&-;vbuwYkiN8UPk=C-%D-ys=_$lGa}&Wp&mV<_3XxZ<3<6$C+C ztJQ|hW;5N~++?rUW0E8!aI8m?B<%Hi+}zw`v)N2*wc0QUg4j8C3&54>NUm6GzY2n2 zw^pkS*Vfj26h+4#!t+KHMO<53^CKt&Ywgzn&SZgHDwRqb3pKVDp19ByrGz4kE1V{2=R7cN}bE0@bpthJwGT((HQOLDH! zXfO;zloMP7c%5*KxgQn*^i4YOVAB`Cr1JVDwzc>y+ z@*E*7A|x9X#vIHcd0r;j)iLoQBqhf{4n&B_W63=%sY(H)0CG5x0>we=UZ?=_d>};v zDV*x;j@QgGCwcT{1(1wXweTTF<&eUEP9#!9*l)C8_8PB@%)SCZfgE!)`xk9Qsj_K zOH<^K{fZ|*M$eAs{je&|`jCD0wOBGZ_?$!z<%;GmTVlw{J|B|z_J8ywVo`Q8Ni`|T z?o^+bExRn7DoXnzBj%sA{e01(G9s4p*_(5KIaz8Wcus)*xw!e-LpiHNEycXl3Xk|ehL zvhId;uT*p-NrIi79aU9|h|lJb9su9z-1Yr_KR3&z-|wT->3EWU#9#vC9?3zw-A1?D z%?*%lw~KbW4FCg@zfORtYDZNcMp0ze*VlDB1Laj&@Bg;8yIriWuWJ-VMpbuI^=|h2 zd28*BAP62;tJUG^>Z-qg|33XNdF}o+RaM#TcDcH`>Z{f2FbIOj*4i5Y=BK@U-8pwN z2!f~8>Z#$?Pd*y9S}jIV#5j(rs>d2a9LJ2Jh_`Rw=Cy0r(h-cO&bgZa>XR2jjDg6r zf_%j}cOB#hCxYPA*|TT4yu6Hhy>1s47LN7H5FR{upc@+-zTIvkiX!pe@2YAmP17#` z+#<PEOhQt;_d@chePJ47Jb