From 78fce3b970990c75d13a0ac0da38d003bac9e21f Mon Sep 17 00:00:00 2001
From: zoumin888 <510111679@qq.com>
Date: Fri, 15 Apr 2022 15:09:13 +0800
Subject: [PATCH 1/7] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E6=8C=87=E5=8D=97?=
=?UTF-8?q?=E9=92=88=E3=80=81=E9=87=91=E5=B1=9E=E6=8E=A2=E6=B5=8B=E5=99=A8?=
=?UTF-8?q?=E3=80=81=E6=9C=BA=E5=99=A8=E7=8B=97=20=E4=BB=A3=E7=A0=81?=
=?UTF-8?q?=E5=92=8C=E6=96=87=E6=A1=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: zoumin888 <510111679@qq.com>
---
.../.idea/.deveco/module/entry.cache.json | 14 +
.../.idea/.deveco/project.cache.json | 12 +
FA/electronic_compass/.idea/.gitignore | 3 +
FA/electronic_compass/.idea/compass.iml | 24 +
.../.idea/configurationModuleSettings.xml | 8 +
FA/electronic_compass/.idea/modules.xml | 8 +
FA/electronic_compass/build-profile.json5 | 26 +
FA/electronic_compass/entry/.gitignore | 3 +
.../entry/build-profile.json5 | 10 +
FA/electronic_compass/entry/hvigorfile.js | 2 +
FA/electronic_compass/entry/package-lock.json | 5 +
FA/electronic_compass/entry/package.json | 14 +
.../entry/src/main/config.json | 63 +
.../entry/src/main/js/MainAbility/app.js | 30 +
.../src/main/js/MainAbility/i18n/en-US.json | 8 +
.../src/main/js/MainAbility/i18n/zh-CN.json | 8 +
.../main/js/MainAbility/pages/index/index.css | 44 +
.../main/js/MainAbility/pages/index/index.hml | 22 +
.../main/js/MainAbility/pages/index/index.js | 195 ++
.../main/resources/base/element/string.json | 16 +
.../src/main/resources/base/media/icon.png | Bin 0 -> 19180 bytes
FA/electronic_compass/hvigorfile.js | 2 +
FA/electronic_compass/package-lock.json | 1657 +++++++++++++++++
FA/electronic_compass/package.json | 18 +
.../.idea/.deveco/module/entry.cache.json | 14 +
.../.idea/.deveco/project.cache.json | 12 +
FA/metal_detection/.idea/.gitignore | 3 +
.../.idea/configurationModuleSettings.xml | 8 +
FA/metal_detection/.idea/metalDetection.iml | 25 +
FA/metal_detection/.idea/modules.xml | 8 +
FA/metal_detection/build-profile.json5 | 27 +
FA/metal_detection/entry/.gitignore | 3 +
FA/metal_detection/entry/build-profile.json5 | 13 +
FA/metal_detection/entry/hvigorfile.js | 2 +
FA/metal_detection/entry/package-lock.json | 5 +
FA/metal_detection/entry/package.json | 14 +
FA/metal_detection/entry/src/main/config.json | 67 +
.../entry/src/main/ets/MainAbility/app.ets | 27 +
.../src/main/ets/MainAbility/common/img_1.png | Bin 0 -> 3802 bytes
.../src/main/ets/MainAbility/common/img_2.png | Bin 0 -> 21166 bytes
.../src/main/ets/MainAbility/common/img_3.png | Bin 0 -> 48075 bytes
.../src/main/ets/MainAbility/common/img_4.png | Bin 0 -> 85006 bytes
.../src/main/ets/MainAbility/common/img_5.png | Bin 0 -> 129728 bytes
.../main/ets/MainAbility/model/CommonLog.ets | 33 +
.../ets/MainAbility/model/PlayerManager.ets | 243 +++
.../src/main/ets/MainAbility/pages/index.ets | 177 ++
.../main/resources/base/element/string.json | 16 +
.../src/main/resources/base/media/icon.png | Bin 0 -> 10972 bytes
.../resources/base/media/img_detected.png | Bin 0 -> 58248 bytes
.../resources/base/media/img_detecting.png | Bin 0 -> 102873 bytes
.../main/resources/base/media/img_normal.png | Bin 0 -> 157132 bytes
.../entry/src/ohosTest/config.json | 67 +
.../src/ohosTest/ets/TestAbility/app.ets | 18 +
.../ohosTest/ets/TestAbility/pages/index.ets | 35 +
.../ets/TestRunner/OpenHarmonyTestRunner.ts | 63 +
.../src/ohosTest/ets/test/Ability.test.ets | 13 +
.../entry/src/ohosTest/ets/test/List.test.ets | 5 +
.../resources/base/element/string.json | 12 +
.../ohosTest/resources/base/media/icon.png | Bin 0 -> 6790 bytes
FA/metal_detection/hvigorfile.js | 2 +
FA/metal_detection/package-lock.json | 1657 +++++++++++++++++
FA/metal_detection/package.json | 18 +
.../.idea/.deveco/module/entry.cache.json | 14 +
FA/robot_dog/.idea/.deveco/project.cache.json | 12 +
FA/robot_dog/.idea/.gitignore | 3 +
.../.idea/configurationModuleSettings.xml | 8 +
FA/robot_dog/.idea/modules.xml | 8 +
FA/robot_dog/.idea/robotDog.iml | 25 +
FA/robot_dog/build-profile.json5 | 26 +
FA/robot_dog/entry/.gitignore | 3 +
FA/robot_dog/entry/build-profile.json5 | 13 +
FA/robot_dog/entry/hvigorfile.js | 2 +
FA/robot_dog/entry/package-lock.json | 5 +
FA/robot_dog/entry/package.json | 14 +
FA/robot_dog/entry/src/main/config.json | 67 +
.../entry/src/main/ets/MainAbility/app.ets | 27 +
.../main/ets/MainAbility/model/CommonLog.ets | 34 +
.../ets/MainAbility/model/comtrolData.ets | 64 +
.../src/main/ets/MainAbility/pages/index.ets | 166 ++
.../main/resources/base/element/string.json | 16 +
.../main/resources/base/media/bg_select.png | Bin 0 -> 13237 bytes
.../main/resources/base/media/bg_unselect.png | Bin 0 -> 9700 bytes
.../src/main/resources/base/media/icon.png | Bin 0 -> 23295 bytes
.../main/resources/base/media/icon_dance.png | Bin 0 -> 2387 bytes
.../resources/base/media/icon_handshake.png | Bin 0 -> 2500 bytes
.../main/resources/base/media/icon_logo.png | Bin 0 -> 24886 bytes
.../main/resources/base/media/icon_pushUp.png | Bin 0 -> 2403 bytes
.../resources/base/media/icon_switch_off.png | Bin 0 -> 1544 bytes
.../resources/base/media/icon_switch_on.png | Bin 0 -> 4292 bytes
.../main/resources/base/media/icon_urine.png | Bin 0 -> 2681 bytes
FA/robot_dog/entry/src/ohosTest/config.json | 67 +
.../src/ohosTest/ets/TestAbility/app.ets | 18 +
.../ohosTest/ets/TestAbility/pages/index.ets | 35 +
.../ets/TestRunner/OpenHarmonyTestRunner.ts | 63 +
.../src/ohosTest/ets/test/Ability.test.ets | 13 +
.../entry/src/ohosTest/ets/test/List.test.ets | 5 +
.../resources/base/element/string.json | 12 +
.../ohosTest/resources/base/media/icon.png | Bin 0 -> 6790 bytes
FA/robot_dog/hvigorfile.js | 2 +
FA/robot_dog/package-lock.json | 1657 +++++++++++++++++
FA/robot_dog/package.json | 18 +
README.md | 13 +
dev/team_x/electronic_compass/main.c | 243 +++
dev/team_x/electronic_compass/serial_task.c | 243 +++
dev/team_x/electronic_compass/wifi.c | 519 ++++++
dev/team_x/electronic_compass/wifi.h | 100 +
dev/team_x/metal_detection/main.c | 243 +++
dev/team_x/metal_detection/serial_task.c | 209 +++
dev/team_x/metal_detection/wifi.c | 519 ++++++
dev/team_x/metal_detection/wifi.h | 100 +
dev/team_x/robot_dog/main.c | 243 +++
dev/team_x/robot_dog/serial_task.c | 168 ++
dev/team_x/robot_dog/wifi.c | 577 ++++++
dev/team_x/robot_dog/wifi.h | 103 +
...7\344\273\244\351\205\215\347\275\221.png" | Bin 0 -> 170227 bytes
.../ESP8266_\347\203\247\345\275\225.png" | Bin 0 -> 121709 bytes
...1\347\273\204\345\274\225\350\204\232.png" | Bin 0 -> 107472 bytes
docs/electronic_compass/media/build.png | Bin 0 -> 8228 bytes
docs/electronic_compass/media/compass.png | Bin 0 -> 184322 bytes
.../media/elf\346\226\207\344\273\266.png" | Bin 0 -> 21728 bytes
...45\222\214hex\346\226\207\344\273\266.png" | Bin 0 -> 87183 bytes
.../media/image-20220311101035152.png | Bin 0 -> 101519 bytes
docs/electronic_compass/media/install.png | Bin 0 -> 267 bytes
docs/electronic_compass/media/new_project.png | Bin 0 -> 37745 bytes
docs/electronic_compass/media/run.png | Bin 0 -> 10688 bytes
docs/electronic_compass/media/sign.png | Bin 0 -> 31486 bytes
...\350\275\275\345\267\245\345\205\2671.png" | Bin 0 -> 25164 bytes
.../\346\214\207\345\215\227\351\222\210.gif" | Bin 0 -> 959202 bytes
...\345\275\225\345\267\245\345\205\2672.png" | Bin 0 -> 46948 bytes
...\345\275\225\345\267\245\345\205\2673.png" | Bin 0 -> 76499 bytes
...2\347\244\272\346\204\217\345\233\276.png" | Bin 0 -> 139461 bytes
...1\346\211\213\351\205\215\347\275\256.png" | Bin 0 -> 35981 bytes
docs/electronic_compass/readme.md | 625 +++++++
docs/metal_detection/quick_develop.md | 366 ++++
docs/metal_detection/readme.md | 234 +++
docs/metal_detection/resource/AK8963IC.png | Bin 0 -> 54471 bytes
docs/metal_detection/resource/detected.jpg | Bin 0 -> 39147 bytes
docs/metal_detection/resource/detecting.jpg | Bin 0 -> 50389 bytes
docs/metal_detection/resource/metal.m4a | Bin 0 -> 21835 bytes
docs/metal_detection/resource/new_project.png | Bin 0 -> 37745 bytes
docs/metal_detection/resource/normal.jpg | Bin 0 -> 39547 bytes
docs/metal_detection/resource/sign.png | Bin 0 -> 31174 bytes
.../\346\216\242\346\265\213\345\231\250.gif" | Bin 0 -> 605032 bytes
...3\346\265\201\347\250\213\345\233\276.png" | Bin 0 -> 229621 bytes
docs/robot_dog/quick_develop.md | 290 +++
docs/robot_dog/readme.md | 130 ++
docs/robot_dog/resources/connect.png | Bin 0 -> 153295 bytes
docs/robot_dog/resources/disconnect.png | Bin 0 -> 199540 bytes
docs/robot_dog/resources/new_project.png | Bin 0 -> 37745 bytes
149 files changed, 12101 insertions(+)
create mode 100644 FA/electronic_compass/.idea/.deveco/module/entry.cache.json
create mode 100644 FA/electronic_compass/.idea/.deveco/project.cache.json
create mode 100644 FA/electronic_compass/.idea/.gitignore
create mode 100644 FA/electronic_compass/.idea/compass.iml
create mode 100644 FA/electronic_compass/.idea/configurationModuleSettings.xml
create mode 100644 FA/electronic_compass/.idea/modules.xml
create mode 100644 FA/electronic_compass/build-profile.json5
create mode 100644 FA/electronic_compass/entry/.gitignore
create mode 100644 FA/electronic_compass/entry/build-profile.json5
create mode 100644 FA/electronic_compass/entry/hvigorfile.js
create mode 100644 FA/electronic_compass/entry/package-lock.json
create mode 100644 FA/electronic_compass/entry/package.json
create mode 100644 FA/electronic_compass/entry/src/main/config.json
create mode 100644 FA/electronic_compass/entry/src/main/js/MainAbility/app.js
create mode 100644 FA/electronic_compass/entry/src/main/js/MainAbility/i18n/en-US.json
create mode 100644 FA/electronic_compass/entry/src/main/js/MainAbility/i18n/zh-CN.json
create mode 100644 FA/electronic_compass/entry/src/main/js/MainAbility/pages/index/index.css
create mode 100644 FA/electronic_compass/entry/src/main/js/MainAbility/pages/index/index.hml
create mode 100644 FA/electronic_compass/entry/src/main/js/MainAbility/pages/index/index.js
create mode 100644 FA/electronic_compass/entry/src/main/resources/base/element/string.json
create mode 100644 FA/electronic_compass/entry/src/main/resources/base/media/icon.png
create mode 100644 FA/electronic_compass/hvigorfile.js
create mode 100644 FA/electronic_compass/package-lock.json
create mode 100644 FA/electronic_compass/package.json
create mode 100644 FA/metal_detection/.idea/.deveco/module/entry.cache.json
create mode 100644 FA/metal_detection/.idea/.deveco/project.cache.json
create mode 100644 FA/metal_detection/.idea/.gitignore
create mode 100644 FA/metal_detection/.idea/configurationModuleSettings.xml
create mode 100644 FA/metal_detection/.idea/metalDetection.iml
create mode 100644 FA/metal_detection/.idea/modules.xml
create mode 100644 FA/metal_detection/build-profile.json5
create mode 100644 FA/metal_detection/entry/.gitignore
create mode 100644 FA/metal_detection/entry/build-profile.json5
create mode 100644 FA/metal_detection/entry/hvigorfile.js
create mode 100644 FA/metal_detection/entry/package-lock.json
create mode 100644 FA/metal_detection/entry/package.json
create mode 100644 FA/metal_detection/entry/src/main/config.json
create mode 100644 FA/metal_detection/entry/src/main/ets/MainAbility/app.ets
create mode 100644 FA/metal_detection/entry/src/main/ets/MainAbility/common/img_1.png
create mode 100644 FA/metal_detection/entry/src/main/ets/MainAbility/common/img_2.png
create mode 100644 FA/metal_detection/entry/src/main/ets/MainAbility/common/img_3.png
create mode 100644 FA/metal_detection/entry/src/main/ets/MainAbility/common/img_4.png
create mode 100644 FA/metal_detection/entry/src/main/ets/MainAbility/common/img_5.png
create mode 100644 FA/metal_detection/entry/src/main/ets/MainAbility/model/CommonLog.ets
create mode 100644 FA/metal_detection/entry/src/main/ets/MainAbility/model/PlayerManager.ets
create mode 100644 FA/metal_detection/entry/src/main/ets/MainAbility/pages/index.ets
create mode 100644 FA/metal_detection/entry/src/main/resources/base/element/string.json
create mode 100644 FA/metal_detection/entry/src/main/resources/base/media/icon.png
create mode 100644 FA/metal_detection/entry/src/main/resources/base/media/img_detected.png
create mode 100644 FA/metal_detection/entry/src/main/resources/base/media/img_detecting.png
create mode 100644 FA/metal_detection/entry/src/main/resources/base/media/img_normal.png
create mode 100644 FA/metal_detection/entry/src/ohosTest/config.json
create mode 100644 FA/metal_detection/entry/src/ohosTest/ets/TestAbility/app.ets
create mode 100644 FA/metal_detection/entry/src/ohosTest/ets/TestAbility/pages/index.ets
create mode 100644 FA/metal_detection/entry/src/ohosTest/ets/TestRunner/OpenHarmonyTestRunner.ts
create mode 100644 FA/metal_detection/entry/src/ohosTest/ets/test/Ability.test.ets
create mode 100644 FA/metal_detection/entry/src/ohosTest/ets/test/List.test.ets
create mode 100644 FA/metal_detection/entry/src/ohosTest/resources/base/element/string.json
create mode 100644 FA/metal_detection/entry/src/ohosTest/resources/base/media/icon.png
create mode 100644 FA/metal_detection/hvigorfile.js
create mode 100644 FA/metal_detection/package-lock.json
create mode 100644 FA/metal_detection/package.json
create mode 100644 FA/robot_dog/.idea/.deveco/module/entry.cache.json
create mode 100644 FA/robot_dog/.idea/.deveco/project.cache.json
create mode 100644 FA/robot_dog/.idea/.gitignore
create mode 100644 FA/robot_dog/.idea/configurationModuleSettings.xml
create mode 100644 FA/robot_dog/.idea/modules.xml
create mode 100644 FA/robot_dog/.idea/robotDog.iml
create mode 100644 FA/robot_dog/build-profile.json5
create mode 100644 FA/robot_dog/entry/.gitignore
create mode 100644 FA/robot_dog/entry/build-profile.json5
create mode 100644 FA/robot_dog/entry/hvigorfile.js
create mode 100644 FA/robot_dog/entry/package-lock.json
create mode 100644 FA/robot_dog/entry/package.json
create mode 100644 FA/robot_dog/entry/src/main/config.json
create mode 100644 FA/robot_dog/entry/src/main/ets/MainAbility/app.ets
create mode 100644 FA/robot_dog/entry/src/main/ets/MainAbility/model/CommonLog.ets
create mode 100644 FA/robot_dog/entry/src/main/ets/MainAbility/model/comtrolData.ets
create mode 100644 FA/robot_dog/entry/src/main/ets/MainAbility/pages/index.ets
create mode 100644 FA/robot_dog/entry/src/main/resources/base/element/string.json
create mode 100644 FA/robot_dog/entry/src/main/resources/base/media/bg_select.png
create mode 100644 FA/robot_dog/entry/src/main/resources/base/media/bg_unselect.png
create mode 100644 FA/robot_dog/entry/src/main/resources/base/media/icon.png
create mode 100644 FA/robot_dog/entry/src/main/resources/base/media/icon_dance.png
create mode 100644 FA/robot_dog/entry/src/main/resources/base/media/icon_handshake.png
create mode 100644 FA/robot_dog/entry/src/main/resources/base/media/icon_logo.png
create mode 100644 FA/robot_dog/entry/src/main/resources/base/media/icon_pushUp.png
create mode 100644 FA/robot_dog/entry/src/main/resources/base/media/icon_switch_off.png
create mode 100644 FA/robot_dog/entry/src/main/resources/base/media/icon_switch_on.png
create mode 100644 FA/robot_dog/entry/src/main/resources/base/media/icon_urine.png
create mode 100644 FA/robot_dog/entry/src/ohosTest/config.json
create mode 100644 FA/robot_dog/entry/src/ohosTest/ets/TestAbility/app.ets
create mode 100644 FA/robot_dog/entry/src/ohosTest/ets/TestAbility/pages/index.ets
create mode 100644 FA/robot_dog/entry/src/ohosTest/ets/TestRunner/OpenHarmonyTestRunner.ts
create mode 100644 FA/robot_dog/entry/src/ohosTest/ets/test/Ability.test.ets
create mode 100644 FA/robot_dog/entry/src/ohosTest/ets/test/List.test.ets
create mode 100644 FA/robot_dog/entry/src/ohosTest/resources/base/element/string.json
create mode 100644 FA/robot_dog/entry/src/ohosTest/resources/base/media/icon.png
create mode 100644 FA/robot_dog/hvigorfile.js
create mode 100644 FA/robot_dog/package-lock.json
create mode 100644 FA/robot_dog/package.json
create mode 100644 dev/team_x/electronic_compass/main.c
create mode 100644 dev/team_x/electronic_compass/serial_task.c
create mode 100644 dev/team_x/electronic_compass/wifi.c
create mode 100644 dev/team_x/electronic_compass/wifi.h
create mode 100644 dev/team_x/metal_detection/main.c
create mode 100644 dev/team_x/metal_detection/serial_task.c
create mode 100644 dev/team_x/metal_detection/wifi.c
create mode 100644 dev/team_x/metal_detection/wifi.h
create mode 100644 dev/team_x/robot_dog/main.c
create mode 100644 dev/team_x/robot_dog/serial_task.c
create mode 100644 dev/team_x/robot_dog/wifi.c
create mode 100644 dev/team_x/robot_dog/wifi.h
create mode 100644 "docs/electronic_compass/media/AT\346\214\207\344\273\244\351\205\215\347\275\221.png"
create mode 100644 "docs/electronic_compass/media/ESP8266_\347\203\247\345\275\225.png"
create mode 100644 "docs/electronic_compass/media/ESP8266\346\250\241\347\273\204\345\274\225\350\204\232.png"
create mode 100644 docs/electronic_compass/media/build.png
create mode 100644 docs/electronic_compass/media/compass.png
create mode 100644 "docs/electronic_compass/media/elf\346\226\207\344\273\266.png"
create mode 100644 "docs/electronic_compass/media/elf\346\226\207\344\273\266\345\222\214hex\346\226\207\344\273\266.png"
create mode 100644 docs/electronic_compass/media/image-20220311101035152.png
create mode 100644 docs/electronic_compass/media/install.png
create mode 100644 docs/electronic_compass/media/new_project.png
create mode 100644 docs/electronic_compass/media/run.png
create mode 100644 docs/electronic_compass/media/sign.png
create mode 100644 "docs/electronic_compass/media/\344\270\213\350\275\275\345\267\245\345\205\2671.png"
create mode 100644 "docs/electronic_compass/media/\346\214\207\345\215\227\351\222\210.gif"
create mode 100644 "docs/electronic_compass/media/\347\203\247\345\275\225\345\267\245\345\205\2672.png"
create mode 100644 "docs/electronic_compass/media/\347\203\247\345\275\225\345\267\245\345\205\2673.png"
create mode 100644 "docs/electronic_compass/media/\347\243\201\345\234\272\347\244\272\346\204\217\345\233\276.png"
create mode 100644 "docs/electronic_compass/media/\347\275\221\347\273\234\350\260\203\350\257\225\345\212\251\346\211\213\351\205\215\347\275\256.png"
create mode 100644 docs/electronic_compass/readme.md
create mode 100644 docs/metal_detection/quick_develop.md
create mode 100644 docs/metal_detection/readme.md
create mode 100644 docs/metal_detection/resource/AK8963IC.png
create mode 100644 docs/metal_detection/resource/detected.jpg
create mode 100644 docs/metal_detection/resource/detecting.jpg
create mode 100644 docs/metal_detection/resource/metal.m4a
create mode 100644 docs/metal_detection/resource/new_project.png
create mode 100644 docs/metal_detection/resource/normal.jpg
create mode 100644 docs/metal_detection/resource/sign.png
create mode 100644 "docs/metal_detection/resource/\346\216\242\346\265\213\345\231\250.gif"
create mode 100644 "docs/metal_detection/resource/\351\207\221\345\261\236\346\243\200\346\265\213\346\265\201\347\250\213\345\233\276.png"
create mode 100644 docs/robot_dog/quick_develop.md
create mode 100644 docs/robot_dog/readme.md
create mode 100644 docs/robot_dog/resources/connect.png
create mode 100644 docs/robot_dog/resources/disconnect.png
create mode 100644 docs/robot_dog/resources/new_project.png
diff --git a/FA/electronic_compass/.idea/.deveco/module/entry.cache.json b/FA/electronic_compass/.idea/.deveco/module/entry.cache.json
new file mode 100644
index 00000000..1b5bc0c4
--- /dev/null
+++ b/FA/electronic_compass/.idea/.deveco/module/entry.cache.json
@@ -0,0 +1,14 @@
+{
+ "BuildOptions":{
+ "SELECT_BUILD_TARGET":"default",
+ "BUILD_PATH":{
+ "OUTPUT_PATH":"C:\\Users\\china\\DevEcoStudioProjects\\compass\\entry\\build\\default\\outputs\\default",
+ "RES_PATH":"C:\\Users\\china\\DevEcoStudioProjects\\compass\\entry\\build\\default\\intermediates\\res\\default",
+ "ETS_SUPER_VISUAL_PATH":"C:\\Users\\china\\DevEcoStudioProjects\\compass\\entry\\build\\default\\cache\\default\\CompileETS",
+ "JS_ASSETS_PATH":"C:\\Users\\china\\DevEcoStudioProjects\\compass\\entry\\build\\default\\intermediates\\assets\\default",
+ "RES_PROFILE_PATH":"C:\\Users\\china\\DevEcoStudioProjects\\compass\\entry\\build\\default\\intermediates\\res\\default\\resources\\base\\profile",
+ "WORKER_LOADER":"C:\\Users\\china\\DevEcoStudioProjects\\compass\\entry\\build\\default\\intermediates\\loader\\default\\loader.json",
+ "MANIFEST_JSON":"C:\\Users\\china\\DevEcoStudioProjects\\compass\\entry\\build\\default\\intermediates\\manifest\\default"
+ }
+ }
+}
\ No newline at end of file
diff --git a/FA/electronic_compass/.idea/.deveco/project.cache.json b/FA/electronic_compass/.idea/.deveco/project.cache.json
new file mode 100644
index 00000000..11566020
--- /dev/null
+++ b/FA/electronic_compass/.idea/.deveco/project.cache.json
@@ -0,0 +1,12 @@
+{
+ "BuildOptions":{
+ "BUNDLE_NAME":"",
+ "BUILD_PATH":{
+ "OUTPUT_PATH":"C:\\Users\\china\\DevEcoStudioProjects\\compass\\build\\outputs\\default"
+ },
+ "SELECT_BUILD_PRODUCT":"default"
+ },
+ "CommonInfo":{
+ "project.ide.version":"3.0.0.900"
+ }
+}
\ No newline at end of file
diff --git a/FA/electronic_compass/.idea/.gitignore b/FA/electronic_compass/.idea/.gitignore
new file mode 100644
index 00000000..26d33521
--- /dev/null
+++ b/FA/electronic_compass/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/FA/electronic_compass/.idea/compass.iml b/FA/electronic_compass/.idea/compass.iml
new file mode 100644
index 00000000..f07b3d69
--- /dev/null
+++ b/FA/electronic_compass/.idea/compass.iml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/FA/electronic_compass/.idea/configurationModuleSettings.xml b/FA/electronic_compass/.idea/configurationModuleSettings.xml
new file mode 100644
index 00000000..d5d70579
--- /dev/null
+++ b/FA/electronic_compass/.idea/configurationModuleSettings.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/FA/electronic_compass/.idea/modules.xml b/FA/electronic_compass/.idea/modules.xml
new file mode 100644
index 00000000..2f54efe1
--- /dev/null
+++ b/FA/electronic_compass/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/FA/electronic_compass/build-profile.json5 b/FA/electronic_compass/build-profile.json5
new file mode 100644
index 00000000..f355b8f4
--- /dev/null
+++ b/FA/electronic_compass/build-profile.json5
@@ -0,0 +1,26 @@
+{
+ "app": {
+ "compileSdkVersion": 8,
+ "compatibleSdkVersion": 8,
+ "products": [
+ {
+ "name": "default",
+ "signingConfig": "default"
+ }
+ ],
+ },
+ "modules": [
+ {
+ "name": "entry",
+ "srcPath": "./entry",
+ "targets": [
+ {
+ "name": "default",
+ "applyToProducts": [
+ "default"
+ ]
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/FA/electronic_compass/entry/.gitignore b/FA/electronic_compass/entry/.gitignore
new file mode 100644
index 00000000..4f9a9738
--- /dev/null
+++ b/FA/electronic_compass/entry/.gitignore
@@ -0,0 +1,3 @@
+/node_modules
+/.preview
+/build
\ No newline at end of file
diff --git a/FA/electronic_compass/entry/build-profile.json5 b/FA/electronic_compass/entry/build-profile.json5
new file mode 100644
index 00000000..09fbaf41
--- /dev/null
+++ b/FA/electronic_compass/entry/build-profile.json5
@@ -0,0 +1,10 @@
+{
+ "apiType": 'faMode',
+ "buildOption": {
+ },
+ "targets": [
+ {
+ "name": "default",
+ }
+ ]
+}
\ No newline at end of file
diff --git a/FA/electronic_compass/entry/hvigorfile.js b/FA/electronic_compass/entry/hvigorfile.js
new file mode 100644
index 00000000..bcec4c99
--- /dev/null
+++ b/FA/electronic_compass/entry/hvigorfile.js
@@ -0,0 +1,2 @@
+// Script for compiling build behavior. It is built in the build plug-in and cannot be modified currently.
+module.exports = require('@ohos/hvigor-ohos-plugin').legacyHapTasks
diff --git a/FA/electronic_compass/entry/package-lock.json b/FA/electronic_compass/entry/package-lock.json
new file mode 100644
index 00000000..15bc7145
--- /dev/null
+++ b/FA/electronic_compass/entry/package-lock.json
@@ -0,0 +1,5 @@
+{
+ "name": "entry",
+ "version": "1.0.0",
+ "lockfileVersion": 1
+}
diff --git a/FA/electronic_compass/entry/package.json b/FA/electronic_compass/entry/package.json
new file mode 100644
index 00000000..992c771b
--- /dev/null
+++ b/FA/electronic_compass/entry/package.json
@@ -0,0 +1,14 @@
+{
+ "license":"ISC",
+ "devDependencies":{},
+ "name":"entry",
+ "ohos":{
+ "org":"huawei",
+ "directoryLevel":"module",
+ "buildTool":"hvigor"
+ },
+ "description":"example description",
+ "repository":{},
+ "version":"1.0.0",
+ "dependencies":{}
+}
\ No newline at end of file
diff --git a/FA/electronic_compass/entry/src/main/config.json b/FA/electronic_compass/entry/src/main/config.json
new file mode 100644
index 00000000..47631839
--- /dev/null
+++ b/FA/electronic_compass/entry/src/main/config.json
@@ -0,0 +1,63 @@
+{
+ "app": {
+ "vendor": "example",
+ "bundleName": "com.example.compass",
+ "version": {
+ "code": 1000000,
+ "name": "1.0.0"
+ }
+ },
+ "deviceConfig": {},
+ "module": {
+ "mainAbility": ".MainAbility",
+ "deviceType": [
+ "phone"
+ ],
+ "abilities": [
+ {
+ "skills": [
+ {
+ "entities": [
+ "entity.system.home"
+ ],
+ "actions": [
+ "action.system.home"
+ ]
+ }
+ ],
+ "orientation": "unspecified",
+ "visible": true,
+ "srcPath": "MainAbility",
+ "name": ".MainAbility",
+ "srcLanguage": "js",
+ "icon": "$media:icon",
+ "description": "$string:MainAbility_desc",
+ "formsEnabled": false,
+ "label": "$string:MainAbility_label",
+ "type": "page",
+ "launchType": "standard"
+ }
+ ],
+ "distro": {
+ "moduleType": "entry",
+ "installationFree": false,
+ "deliveryWithInstall": true,
+ "moduleName": "entry"
+ },
+ "package": "com.example.entry",
+ "srcPath": "",
+ "name": ".entry",
+ "js": [
+ {
+ "pages": [
+ "pages/index/index"
+ ],
+ "name": ".MainAbility",
+ "window": {
+ "designWidth": 720,
+ "autoDesignWidth": false
+ }
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/FA/electronic_compass/entry/src/main/js/MainAbility/app.js b/FA/electronic_compass/entry/src/main/js/MainAbility/app.js
new file mode 100644
index 00000000..0c00d4cf
--- /dev/null
+++ b/FA/electronic_compass/entry/src/main/js/MainAbility/app.js
@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2021 Huawei Device Co., 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.
+ */
+
+import tcpserverapi from '@ohos.tcpserverapi'
+
+export default {
+ onCreate() {
+ console.info("Application onCreate");
+ tcpserverapi.initServer()
+ },
+ onInit(){
+
+ },
+ onDestroy() {
+ console.info("Application onDestroy");
+ }
+};
+
diff --git a/FA/electronic_compass/entry/src/main/js/MainAbility/i18n/en-US.json b/FA/electronic_compass/entry/src/main/js/MainAbility/i18n/en-US.json
new file mode 100644
index 00000000..55561b83
--- /dev/null
+++ b/FA/electronic_compass/entry/src/main/js/MainAbility/i18n/en-US.json
@@ -0,0 +1,8 @@
+{
+ "strings": {
+ "hello": "Hello",
+ "world": "World"
+ },
+ "Files": {
+ }
+}
\ No newline at end of file
diff --git a/FA/electronic_compass/entry/src/main/js/MainAbility/i18n/zh-CN.json b/FA/electronic_compass/entry/src/main/js/MainAbility/i18n/zh-CN.json
new file mode 100644
index 00000000..cce1af06
--- /dev/null
+++ b/FA/electronic_compass/entry/src/main/js/MainAbility/i18n/zh-CN.json
@@ -0,0 +1,8 @@
+{
+ "strings": {
+ "hello": "您好",
+ "world": "世界"
+ },
+ "Files": {
+ }
+}
\ No newline at end of file
diff --git a/FA/electronic_compass/entry/src/main/js/MainAbility/pages/index/index.css b/FA/electronic_compass/entry/src/main/js/MainAbility/pages/index/index.css
new file mode 100644
index 00000000..f64e8db9
--- /dev/null
+++ b/FA/electronic_compass/entry/src/main/js/MainAbility/pages/index/index.css
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2021 Huawei Device Co., 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.
+ */
+
+.container {
+ width:100%;
+ height: 100%;
+ margin-top: 80px;
+ flex-direction: column;
+ align-items: center;
+ justify-content: flex-start;
+}
+
+.text-style{
+ font-size: 60px;
+}
+
+.canvas-style {
+ width:100%;
+ height: 100%;
+ margin-top: 50px;
+}
+
+.compass-canvas {
+ width:100%;
+ height: 100%;
+}
+
+.line-canvas {
+ width: 100%;
+ height:100%;
+ position: absolute;
+}
\ No newline at end of file
diff --git a/FA/electronic_compass/entry/src/main/js/MainAbility/pages/index/index.hml b/FA/electronic_compass/entry/src/main/js/MainAbility/pages/index/index.hml
new file mode 100644
index 00000000..5a912fd0
--- /dev/null
+++ b/FA/electronic_compass/entry/src/main/js/MainAbility/pages/index/index.hml
@@ -0,0 +1,22 @@
+
+
+
+
{{ position }}°
+
+
+
+
+
\ No newline at end of file
diff --git a/FA/electronic_compass/entry/src/main/js/MainAbility/pages/index/index.js b/FA/electronic_compass/entry/src/main/js/MainAbility/pages/index/index.js
new file mode 100644
index 00000000..d34e00e9
--- /dev/null
+++ b/FA/electronic_compass/entry/src/main/js/MainAbility/pages/index/index.js
@@ -0,0 +1,195 @@
+/*
+ * Copyright (c) 2021 Huawei Device Co., 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.
+ */
+
+import tcpserverapi from '@ohos.tcpserverapi'
+
+var compass_canvas = null;
+var compass_context = null;
+var line_canvas = null;
+var line_context = null;
+
+export default {
+ data: {
+ width: 700,
+ height: 700,
+ outsideRadius: 0,
+ insideRadius: 0,
+ positionTextSize: '',
+ angleNumberSize: '',
+ isFirstShowFlag: true,
+ positionTexts: ["北", "东", "南", "西"],
+ angleNumbers: ['0', '30', '60', '90', '120', '150', '180', '210', '240', '270', '300', '330'],
+ angle: 0,
+ position: '北 0',
+ intervalID: 0
+ },
+ onInit() {
+ },
+ onAttached() {
+ this.getCompassMsg();
+ },
+ onShow() {
+ this.getWindowSize();
+ this.initCanvas();
+ },
+ initCanvas() {
+ compass_canvas = this.$refs.compassCanvas;
+ compass_context = compass_canvas.getContext('2d', {
+ antialias: true
+ });
+
+ line_canvas = this.$refs.lineCanvas;
+ line_context = line_canvas.getContext('2d', {
+ antialias: true
+ });
+ if (this.isFirstShowFlag) {
+ compass_context.translate(this.width / 2, this.height / 2); //移动当前坐标系的原点。
+ line_context.translate(this.width / 2, this.height / 2); //移动当前坐标系的原点。
+ this.drawCircle(this.outsideRadius, '#F9F9F9'); //外圆,传入外圆半径和颜色
+ this.drawCircle(this.insideRadius, '#FFFFFF'); //内圆,传入内圆半径和颜色
+ this.drawAngleNumber(); // 外围数字角度绘制
+ this.drawPositionText(); // 内部东西南北方位文字绘制
+ this.drawAngleLine(); // 刻度盘竖线绘制
+ this.drawPositionLine(); //指示线绘制
+ }
+ this.isFirstShowFlag = false;
+ },
+ getWindowSize() {
+ this.outsideRadius = this.width / 2 - this.width / 7; // 计算外圆半径
+ this.insideRadius = this.outsideRadius - this.width / 8; // 计算内圆半径
+ },
+ drawCircle(radius, color) {
+ compass_context.beginPath(); //创建一个新的绘制路径。
+ compass_context.fillStyle = color; // 指定绘制的填充色。
+ compass_context.strokeStyle = color;//设置描边的颜色。
+ compass_context.arc(0, 0, radius, 0, 6.28); //绘制弧线路径。
+ compass_context.fill();//对封闭路径进行填充。
+ },
+ drawPositionText() {
+ compass_context.beginPath();
+ this.positionTextSize = this.width / 20;
+ compass_context.font = this.positionTextSize + 'px' + ' sans-serif';
+ for (let i = 0; i < this.positionTexts.length; i++) {
+ if (i == 0) {
+ compass_context.fillStyle = '#FF00000';
+ this.drawTriangle();
+ } else {
+ compass_context.fillStyle = '#0000000';
+ }
+ let positionText = this.positionTexts[i];
+ compass_context.fillText(positionText, -this.width / 40, -this.width / 9);
+ compass_context.stroke();
+ compass_context.rotate(90 * Math.PI / 180);
+ }
+ },
+ drawTriangle() {
+ compass_context.beginPath();
+ compass_context.fillStyle = '#FF00000';
+ compass_context.moveTo(0, -this.width / 5);
+ compass_context.lineTo(this.width / 40, -this.width / 5 + this.width / 35);
+ compass_context.lineTo(-this.width / 40, -this.width / 5 + this.width / 35);
+ compass_context.closePath();
+ compass_context.fill();
+ },
+ drawAngleNumber() {
+ compass_context.beginPath(); // 创建一个新的绘制路径。
+ this.angleNumberSize = this.width / 30; // 角度数字文字大小。
+ compass_context.font = this.angleNumberSize + 'px' + ' sans-serif'; // 角度数字文字大小转换。
+ for (var i = 0; i < this.angleNumbers.length; i++) {
+ if (i == 0) { // 判断是0 设备颜色为红色,其他为灰黑色。
+ compass_context.fillStyle = '#FF00000';
+ } else {
+ compass_context.fillStyle = '#AF000000';
+ }
+ let number = this.angleNumbers[i]; // 获取数组对象里面的数字内容。
+ compass_context.fillText(number, -this.width / 85, -this.width / 2.45); // 绘制填充类文本。
+ compass_context.rotate(30 * Math.PI / 180); // 设置当前坐标轴进行顺时针旋转,成圆形排列
+ }
+ },
+ drawAngleLine() {
+ compass_context.strokeStyle = '#000000'; //设置描边的颜色。
+ // 总共有60 个刻度,按5的倍数进行线条加粗。
+ for (var i = 0; i < 60; i++) {
+ if (i == 0 || i == 5 || i == 10 || i == 15 || i == 20 || i == 25 || i == 30 || i == 35 || i == 40 || i == 45 || i == 50 || i == 55) {
+ compass_context.lineWidth = 3;
+ compass_context.beginPath(); // 创建一个新的绘制路径。
+ compass_context.moveTo(0, this.insideRadius + (this.outsideRadius - this.insideRadius) / 4); // 当前点移动到指定点。
+ compass_context.lineTo(0, this.outsideRadius - this.width / 30); // 从当前点到指定点进行路径连接
+
+ } else {
+ compass_context.lineWidth = 0.5;
+ compass_context.beginPath();
+ compass_context.moveTo(0, this.insideRadius + (this.outsideRadius - this.insideRadius) / 4);
+ compass_context.lineTo(0, this.outsideRadius - this.width / 30);
+ }
+ compass_context.stroke();
+ compass_context.rotate(15 * Math.PI / 450);
+ }
+ },
+ drawPositionLine() {
+ line_context.strokeStyle = '#000000';
+ line_context.lineWidth = 6;
+ line_context.lineCap = 'round'; // 线端点以圆形结束。
+ line_context.moveTo(0, -this.outsideRadius + this.width / 15);
+ line_context.lineTo(0, -this.outsideRadius - this.width / 28);
+ line_context.stroke(); // 进行边框绘制操作。
+ },
+ getCompassMsg() {
+ this.intervalID = setInterval(() => {
+ //NAPI调用
+ tcpserverapi.recvMsg().then((result) => {
+ var resultAngle = result.message;
+ if (resultAngle.match("angle:")) {
+ var info = parseInt(resultAngle.slice(6));
+ if (this.angle != info) {
+ this.angle = info;
+ console.info("===========" + this.angle)
+ if (this.angle >= 0 && this.angle < 23) {
+ this.position = '北 ' + this.angle;
+ }
+ else if (this.angle >= 23 && this.angle < 68) {
+ this.position = '东北 ' + this.angle;
+ }
+ else if (this.angle >= 68 && this.angle < 113) {
+ this.position = '东 ' + this.angle;
+ }
+ else if (this.angle >= 113 && this.angle < 158) {
+ this.position = '东南 ' + this.angle;
+ }
+ else if (this.angle >= 158 && this.angle < 203) {
+ this.position = '南 ' + this.angle;
+ }
+ else if (this.angle >= 203 && this.angle < 248) {
+ this.position = '西南 ' + this.angle;
+ }
+ else if (this.angle >= 248 && this.angle < 293) {
+ this.position = '西 ' + this.angle;
+ }
+ else if (this.angle >= 293 && this.angle < 338) {
+ this.position = '西北 ' + this.angle;
+ }
+ else if (this.angle >= 338 && this.angle < 360) {
+ this.position = '北 ' + this.angle;
+ }
+ }
+ }
+ });
+
+ }, 100);
+ },
+ onDestroy() {
+ clearInterval(this.intervalID);
+ }
+}
\ No newline at end of file
diff --git a/FA/electronic_compass/entry/src/main/resources/base/element/string.json b/FA/electronic_compass/entry/src/main/resources/base/element/string.json
new file mode 100644
index 00000000..bf83d61e
--- /dev/null
+++ b/FA/electronic_compass/entry/src/main/resources/base/element/string.json
@@ -0,0 +1,16 @@
+{
+ "string": [
+ {
+ "name": "entry_desc",
+ "value": "description"
+ },
+ {
+ "name": "MainAbility_desc",
+ "value": "description"
+ },
+ {
+ "name": "MainAbility_label",
+ "value": "指南针"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/FA/electronic_compass/entry/src/main/resources/base/media/icon.png b/FA/electronic_compass/entry/src/main/resources/base/media/icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..debb51735c8d840d072d4cc43401635c963d0b46
GIT binary patch
literal 19180
zcmV(Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!~g&e!~vBn4jTXfN`Xm4K~#8N?R|Hk
zBvqO3uPbzQx@qp63^PNT8D_{z5JXWy5y6!;0g7);xT`F>tG@SE-9=qpTy=HDoLw*y
zO@O#&)FCJW0z;g@!T!;AaxXU9*#Z@$$b%b`24(R$6T*qf!
z0U9w7v#yltQ@e4*ZN%R(&l@6yWZT9=$E~~?YMm3bF#C(b{~Sgdfk;fU!H;~zPKbtA
zvEOc(gU=!j$3YZ0$fja=m3~x4H=tH}5UJ6};1(ZYfo&+)hY{8*tgMb^)PQ5$0vr+F
z@mOyju2(>i?nE;`2XX#TIEAGMI+t^MDB_?8PJ@k+(M|+}s3CHyaEON!rwvD^8S=xr
znl55D{Qr!c4AeOiin`QvPz|bZV~-5YO7W0RN2rz_Ms?s$I9q;!(%?ftv<4Xzkxu#4
zx-=P-=Cx$HE+ErP%LJx91Uo>DYH1r45NVJpVFeAg*`U@nx%G035%rx0r|-GQ&szyM
zyBJ|DKrF^$fERKfSvFN;ZDeRn5&O&Y@h`wgww72bnW+{9NZcm(Qgv8Jfp5X-Dm39WjrkWM)|nY0V=^cT#Nzj)RW38LY1+H7$jZ
zvg7hXkDQXp4ynOjT%*QSQLWQZcPxiL?{pLvybfOXktnl#6ptX?@J!eus_l47>QCD&
zkM}Lv>~A=*j2!RdL}%4c^M6hT
zmj?S}X-vYaA~Mr-`T2!b!!Cte1RMcfShxG3$nqf~i{7Kef=HY-bQYO!35R;+?l`=Fa#pQ#7$LHBwinq{4Q-UANVg
z>=N4bCwsz?L0FijFw`un_Ubh4^%90Uk3i?j_n|QN#i-HWhH;77$a2JEyhfvmc4i)C
zl#vO-{I(joN5)w|!+(Ylj6NA*Zu=bu?|(b8)dwlrvl+g}sCtxicG{0=x)eO9idKiU
znTjBZ--c@aLQkIcnlu9ij3w+pi5(r5c
z$QYS#GDLxn!#+e3TGpQqYZxWIsYBj?-j(lXEa1bdI;i1ZK12rX~>sNv)EKc95ZCUR7gH>h@dF*!*j{(kGB3E|%I@v(8<@K>d#?{q9H_5tyOmd
zEy0>{Z0}*;8EK75CdEK%4t-0V(P!EV;I6v`1NXfdd5?b2QRF5$m(!z3;x!a%0y`=q
zP021izmRHNr3d)F;0{Q2uz_=+AU(38j0`^FR;wPdVONQp^*3zy($QK`61t*9R
zYOJ$*MBBZuo1J^rE8&4X%AcC*}W&kUV*x7BSlFH
zqPR-FQ)m|!o`ZSk{fWN%Y@|y4^py0Q)HIFR`WlrdKA}VJPBR))$kXW#xQ~AwJ05&5
z+$^n7IE$4r2;!BL5H=*-b=}_eVed_=O3@iNV=_pRMZ1*`d_3^WH#3sE9{J{M6z0~M
zbBSdM5?;(uBV=qEMcp~4zm
zpukqP!9C=i2#)&~GDB`FQ3M5&Eu!1cJ;C%elF^ld^oV{j@B4W4_J062T+8T`$I_!1
z7+}&&Mm9A%Bb1mx*ZdMXileAFhhy$p_ZSm3>+aJuIpOq}X#E!`2jeCxGPm3I7(xb5
z3aYYfHypheo36XkdS;4nAc3wU#dM~y_)_Fv^e0BCvrwoFQn*LSW9HVHMq@85RG@&R
z;~F)S!QEq@L-T=eFixVjDlH+M6BzID9%1*4R6YE#YLjlw{l(0a@?IXB?*9ZT4}S&e
zpaZp30TKOSib2f4NO8RRG=(anH{UVuR2+2XU1(XeMv
z5;Jx|%vBWZ?gEmh%`mLQAmBPGNdtgersIp-BP=(Hax!iG!JZ;C_XwD41vE-Wl2*#om^Jr?DhGc7Q4vWva
z3DxdrA&iH3PI;+fh8PVuqQxK)_*%@!q)G7j744gV&-tP
z8lENU`xlI$^2^)_Xpv$H((LElg6jN}5tKAU$K;=yDEsO&k5;Z~Jg|YssNp1>)y(?SQH+Yq=(@|p(2qWW
zv4OQL-$c5eqR*Bf95{$*N<&59#CiTRZ^Foe=c3jeLQJ~3T6JK{R(O&HM4EJ%Mx>OHcS3%FzgFLxb!L38g1LT`SG*VsY
z%KO;#?{BiyUDm|YD!l^;(k7oY(OizkU>Bb9T@<@s2(MnH>^0113KFW2l1>GUbRMbU
z+YvtWQL3~UO%7Xu-5c3mGm=Qelwh~fjez|h>HiI?4>Gt>gvfIZuS}n(VWk31FM}4D
zhiDY&IR=M5=i3-zq?U^5yIc>&VJ7z4m&qZ7jMk{;?B4XCsj*DjA_W!Ey*DAu6pV3g
zke#r8^PnF`sCb>2z40z=|KV48miWcf3$FGIGJ%@$kb@zi$u#}4c~f>ysL56+FIM|1
zchDJEVaz`kL1UO^mFGw|EhzICV%s1H-I