From 2212d9db7c98af4721e398a719c37902cca39491 Mon Sep 17 00:00:00 2001 From: Igor Kulikov Date: Fri, 23 Apr 2021 19:35:13 +0300 Subject: [PATCH] Initial commit --- .gitignore | 46 ++ .metadata | 10 + LICENSE | 48 +- README.md | 14 + android/.gitignore | 11 + android/app/build.gradle | 59 +++ android/app/src/debug/AndroidManifest.xml | 7 + android/app/src/main/AndroidManifest.xml | 41 ++ .../org/thingsboard/app/MainActivity.kt | 6 + .../res/drawable-v21/launch_background.xml | 12 + .../main/res/drawable/launch_background.xml | 12 + .../main/res/mipmap-hdpi/launcher_icon.png | Bin 0 -> 4937 bytes .../main/res/mipmap-mdpi/launcher_icon.png | Bin 0 -> 3240 bytes .../main/res/mipmap-xhdpi/launcher_icon.png | Bin 0 -> 6601 bytes .../main/res/mipmap-xxhdpi/launcher_icon.png | Bin 0 -> 9747 bytes .../main/res/mipmap-xxxhdpi/launcher_icon.png | Bin 0 -> 12925 bytes .../app/src/main/res/values-night/styles.xml | 19 + android/app/src/main/res/values/styles.xml | 19 + android/app/src/profile/AndroidManifest.xml | 7 + android/build.gradle | 31 ++ android/gradle.properties | 3 + .../gradle/wrapper/gradle-wrapper.properties | 6 + android/settings.gradle | 11 + assets/images/thingsboard.png | Bin 0 -> 15897 bytes assets/images/thingsboard_logo_blue.svg | 33 ++ ios/.gitignore | 32 ++ ios/Flutter/AppFrameworkInfo.plist | 26 + ios/Flutter/Debug.xcconfig | 1 + ios/Flutter/Release.xcconfig | 1 + ios/Runner.xcodeproj/project.pbxproj | 471 ++++++++++++++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/WorkspaceSettings.xcsettings | 8 + .../xcshareddata/xcschemes/Runner.xcscheme | 91 ++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/WorkspaceSettings.xcsettings | 8 + ios/Runner/AppDelegate.swift | 13 + .../AppIcon.appiconset/Contents.json | 122 +++++ .../Icon-App-1024x1024@1x.png | Bin 0 -> 194699 bytes .../AppIcon.appiconset/Icon-App-20x20@1x.png | Bin 0 -> 1121 bytes .../AppIcon.appiconset/Icon-App-20x20@2x.png | Bin 0 -> 2537 bytes .../AppIcon.appiconset/Icon-App-20x20@3x.png | Bin 0 -> 3807 bytes .../AppIcon.appiconset/Icon-App-29x29@1x.png | Bin 0 -> 1744 bytes .../AppIcon.appiconset/Icon-App-29x29@2x.png | Bin 0 -> 3859 bytes .../AppIcon.appiconset/Icon-App-29x29@3x.png | Bin 0 -> 6094 bytes .../AppIcon.appiconset/Icon-App-40x40@1x.png | Bin 0 -> 2537 bytes .../AppIcon.appiconset/Icon-App-40x40@2x.png | Bin 0 -> 5465 bytes .../AppIcon.appiconset/Icon-App-40x40@3x.png | Bin 0 -> 8110 bytes .../AppIcon.appiconset/Icon-App-60x60@2x.png | Bin 0 -> 8110 bytes .../AppIcon.appiconset/Icon-App-60x60@3x.png | Bin 0 -> 11866 bytes .../AppIcon.appiconset/Icon-App-76x76@1x.png | Bin 0 -> 5040 bytes .../AppIcon.appiconset/Icon-App-76x76@2x.png | Bin 0 -> 9789 bytes .../Icon-App-83.5x83.5@2x.png | Bin 0 -> 11229 bytes .../LaunchImage.imageset/Contents.json | 23 + .../LaunchImage.imageset/LaunchImage.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/LaunchImage@2x.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/LaunchImage@3x.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/README.md | 5 + ios/Runner/Base.lproj/LaunchScreen.storyboard | 37 ++ ios/Runner/Base.lproj/Main.storyboard | 26 + ios/Runner/Info.plist | 45 ++ ios/Runner/Runner-Bridging-Header.h | 1 + lib/config/routes/router.dart | 44 ++ lib/config/themes/tb_theme.dart | 46 ++ lib/constants/api_path.dart | 3 + lib/constants/app_constants.dart | 0 lib/constants/assets_path.dart | 3 + lib/core/auth/login/login_page.dart | 147 ++++++ lib/core/context/tb_context.dart | 202 ++++++++ lib/core/context/tb_context_widget.dart | 68 +++ lib/core/init/init_app.dart | 34 ++ lib/main.dart | 38 ++ lib/modules/device/devices_page.dart | 328 ++++++++++++ lib/modules/home/home_page.dart | 48 ++ lib/modules/profile/profile_page.dart | 39 ++ lib/utils/services/tb_secure_storage.dart | 23 + lib/widgets/tb_app_bar.dart | 149 ++++++ pubspec.lock | 303 +++++++++++ pubspec.yaml | 63 +++ test/widget_test.dart | 26 + 81 files changed, 2873 insertions(+), 26 deletions(-) create mode 100644 .gitignore create mode 100644 .metadata create mode 100644 README.md create mode 100644 android/.gitignore create mode 100644 android/app/build.gradle create mode 100644 android/app/src/debug/AndroidManifest.xml create mode 100644 android/app/src/main/AndroidManifest.xml create mode 100644 android/app/src/main/kotlin/org/thingsboard/app/MainActivity.kt create mode 100644 android/app/src/main/res/drawable-v21/launch_background.xml create mode 100644 android/app/src/main/res/drawable/launch_background.xml create mode 100644 android/app/src/main/res/mipmap-hdpi/launcher_icon.png create mode 100644 android/app/src/main/res/mipmap-mdpi/launcher_icon.png create mode 100644 android/app/src/main/res/mipmap-xhdpi/launcher_icon.png create mode 100644 android/app/src/main/res/mipmap-xxhdpi/launcher_icon.png create mode 100644 android/app/src/main/res/mipmap-xxxhdpi/launcher_icon.png create mode 100644 android/app/src/main/res/values-night/styles.xml create mode 100644 android/app/src/main/res/values/styles.xml create mode 100644 android/app/src/profile/AndroidManifest.xml create mode 100644 android/build.gradle create mode 100644 android/gradle.properties create mode 100644 android/gradle/wrapper/gradle-wrapper.properties create mode 100644 android/settings.gradle create mode 100644 assets/images/thingsboard.png create mode 100644 assets/images/thingsboard_logo_blue.svg create mode 100644 ios/.gitignore create mode 100644 ios/Flutter/AppFrameworkInfo.plist create mode 100644 ios/Flutter/Debug.xcconfig create mode 100644 ios/Flutter/Release.xcconfig create mode 100644 ios/Runner.xcodeproj/project.pbxproj create mode 100644 ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings create mode 100644 ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme create mode 100644 ios/Runner.xcworkspace/contents.xcworkspacedata create mode 100644 ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings create mode 100644 ios/Runner/AppDelegate.swift create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md create mode 100644 ios/Runner/Base.lproj/LaunchScreen.storyboard create mode 100644 ios/Runner/Base.lproj/Main.storyboard create mode 100644 ios/Runner/Info.plist create mode 100644 ios/Runner/Runner-Bridging-Header.h create mode 100644 lib/config/routes/router.dart create mode 100644 lib/config/themes/tb_theme.dart create mode 100644 lib/constants/api_path.dart create mode 100644 lib/constants/app_constants.dart create mode 100644 lib/constants/assets_path.dart create mode 100644 lib/core/auth/login/login_page.dart create mode 100644 lib/core/context/tb_context.dart create mode 100644 lib/core/context/tb_context_widget.dart create mode 100644 lib/core/init/init_app.dart create mode 100644 lib/main.dart create mode 100644 lib/modules/device/devices_page.dart create mode 100644 lib/modules/home/home_page.dart create mode 100644 lib/modules/profile/profile_page.dart create mode 100644 lib/utils/services/tb_secure_storage.dart create mode 100644 lib/widgets/tb_app_bar.dart create mode 100644 pubspec.lock create mode 100644 pubspec.yaml create mode 100644 test/widget_test.dart diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0fa6b67 --- /dev/null +++ b/.gitignore @@ -0,0 +1,46 @@ +# Miscellaneous +*.class +*.log +*.pyc +*.swp +.DS_Store +.atom/ +.buildlog/ +.history +.svn/ + +# IntelliJ related +*.iml +*.ipr +*.iws +.idea/ + +# The .vscode folder contains launch configuration and tasks you configure in +# VS Code which you may wish to be included in version control, so this line +# is commented out by default. +#.vscode/ + +# Flutter/Dart/Pub related +**/doc/api/ +**/ios/Flutter/.last_build_id +.dart_tool/ +.flutter-plugins +.flutter-plugins-dependencies +.packages +.pub-cache/ +.pub/ +/build/ + +# Web related +lib/generated_plugin_registrant.dart + +# Symbolication related +app.*.symbols + +# Obfuscation related +app.*.map.json + +# Android Studio will place build artifacts here +/android/app/debug +/android/app/profile +/android/app/release diff --git a/.metadata b/.metadata new file mode 100644 index 0000000..be74985 --- /dev/null +++ b/.metadata @@ -0,0 +1,10 @@ +# This file tracks properties of this Flutter project. +# Used by Flutter tool to assess capabilities and perform upgrades etc. +# +# This file should be version controlled and should not be manually edited. + +version: + revision: adc687823a831bbebe28bdccfac1a628ca621513 + channel: stable + +project_type: app diff --git a/LICENSE b/LICENSE index e4cb0fa..938f972 100644 --- a/LICENSE +++ b/LICENSE @@ -1,29 +1,25 @@ -BSD 3-Clause License +Copyright 2021 The ThingsBoard Authors -Copyright (c) 2021, ThingsBoard - Open-source IoT Platform -All rights reserved. +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. -1. Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -3. Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..e364a22 --- /dev/null +++ b/README.md @@ -0,0 +1,14 @@ +# Flutter ThingsBoard Mobile Application + +## Getting Started + +This project is a starting point for a ThingsBoard Mobile application. + +A few resources to get you started if this is your first Flutter project: + +- [Lab: Write your first Flutter app](https://flutter.dev/docs/get-started/codelab) +- [Cookbook: Useful Flutter samples](https://flutter.dev/docs/cookbook) + +For help getting started with Flutter, view our +[online documentation](https://flutter.dev/docs), which offers tutorials, +samples, guidance on mobile development, and a full API reference. diff --git a/android/.gitignore b/android/.gitignore new file mode 100644 index 0000000..0a741cb --- /dev/null +++ b/android/.gitignore @@ -0,0 +1,11 @@ +gradle-wrapper.jar +/.gradle +/captures/ +/gradlew +/gradlew.bat +/local.properties +GeneratedPluginRegistrant.java + +# Remember to never publicly share your keystore. +# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app +key.properties diff --git a/android/app/build.gradle b/android/app/build.gradle new file mode 100644 index 0000000..7fdd728 --- /dev/null +++ b/android/app/build.gradle @@ -0,0 +1,59 @@ +def localProperties = new Properties() +def localPropertiesFile = rootProject.file('local.properties') +if (localPropertiesFile.exists()) { + localPropertiesFile.withReader('UTF-8') { reader -> + localProperties.load(reader) + } +} + +def flutterRoot = localProperties.getProperty('flutter.sdk') +if (flutterRoot == null) { + throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.") +} + +def flutterVersionCode = localProperties.getProperty('flutter.versionCode') +if (flutterVersionCode == null) { + flutterVersionCode = '1' +} + +def flutterVersionName = localProperties.getProperty('flutter.versionName') +if (flutterVersionName == null) { + flutterVersionName = '1.0' +} + +apply plugin: 'com.android.application' +apply plugin: 'kotlin-android' +apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" + +android { + compileSdkVersion 30 + + sourceSets { + main.java.srcDirs += 'src/main/kotlin' + } + + defaultConfig { + // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). + applicationId "org.thingsboard.app" + minSdkVersion 18 + targetSdkVersion 30 + versionCode flutterVersionCode.toInteger() + versionName flutterVersionName + } + + buildTypes { + release { + // TODO: Add your own signing config for the release build. + // Signing with the debug keys for now, so `flutter run --release` works. + signingConfig signingConfigs.debug + } + } +} + +flutter { + source '../..' +} + +dependencies { + implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" +} diff --git a/android/app/src/debug/AndroidManifest.xml b/android/app/src/debug/AndroidManifest.xml new file mode 100644 index 0000000..f6b2661 --- /dev/null +++ b/android/app/src/debug/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..b5f568d --- /dev/null +++ b/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + diff --git a/android/app/src/main/kotlin/org/thingsboard/app/MainActivity.kt b/android/app/src/main/kotlin/org/thingsboard/app/MainActivity.kt new file mode 100644 index 0000000..9fb2ac5 --- /dev/null +++ b/android/app/src/main/kotlin/org/thingsboard/app/MainActivity.kt @@ -0,0 +1,6 @@ +package org.thingsboard.app + +import io.flutter.embedding.android.FlutterActivity + +class MainActivity: FlutterActivity() { +} diff --git a/android/app/src/main/res/drawable-v21/launch_background.xml b/android/app/src/main/res/drawable-v21/launch_background.xml new file mode 100644 index 0000000..f74085f --- /dev/null +++ b/android/app/src/main/res/drawable-v21/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/android/app/src/main/res/drawable/launch_background.xml b/android/app/src/main/res/drawable/launch_background.xml new file mode 100644 index 0000000..304732f --- /dev/null +++ b/android/app/src/main/res/drawable/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/android/app/src/main/res/mipmap-hdpi/launcher_icon.png b/android/app/src/main/res/mipmap-hdpi/launcher_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..346b5a0728ac3c704d206be4354bedc8a3c92a38 GIT binary patch literal 4937 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 Hu0mjflIu=V literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-mdpi/launcher_icon.png b/android/app/src/main/res/mipmap-mdpi/launcher_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..2095883656c45e76644a7b3f59d1fc24fbf4ea02 GIT binary patch literal 3240 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 ay8i=|LA}sv#%8nt0000w6_EO_$e}zHUG% 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 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xxxhdpi/launcher_icon.png b/android/app/src/main/res/mipmap-xxxhdpi/launcher_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..7e2aeebbe96bd5cf1600b0166c6037d6f5efae97 GIT binary patch literal 12925 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 + + + + + + diff --git a/android/app/src/main/res/values/styles.xml b/android/app/src/main/res/values/styles.xml new file mode 100644 index 0000000..fb61d20 --- /dev/null +++ b/android/app/src/main/res/values/styles.xml @@ -0,0 +1,19 @@ + + + + + + + diff --git a/android/app/src/profile/AndroidManifest.xml b/android/app/src/profile/AndroidManifest.xml new file mode 100644 index 0000000..f6b2661 --- /dev/null +++ b/android/app/src/profile/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + diff --git a/android/build.gradle b/android/build.gradle new file mode 100644 index 0000000..c505a86 --- /dev/null +++ b/android/build.gradle @@ -0,0 +1,31 @@ +buildscript { + ext.kotlin_version = '1.3.50' + repositories { + google() + jcenter() + } + + dependencies { + classpath 'com.android.tools.build:gradle:4.1.0' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + } +} + +allprojects { + repositories { + google() + jcenter() + } +} + +rootProject.buildDir = '../build' +subprojects { + project.buildDir = "${rootProject.buildDir}/${project.name}" +} +subprojects { + project.evaluationDependsOn(':app') +} + +task clean(type: Delete) { + delete rootProject.buildDir +} diff --git a/android/gradle.properties b/android/gradle.properties new file mode 100644 index 0000000..94adc3a --- /dev/null +++ b/android/gradle.properties @@ -0,0 +1,3 @@ +org.gradle.jvmargs=-Xmx1536M +android.useAndroidX=true +android.enableJetifier=true diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..bc6a58a --- /dev/null +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Fri Jun 23 08:50:38 CEST 2017 +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-all.zip diff --git a/android/settings.gradle b/android/settings.gradle new file mode 100644 index 0000000..44e62bc --- /dev/null +++ b/android/settings.gradle @@ -0,0 +1,11 @@ +include ':app' + +def localPropertiesFile = new File(rootProject.projectDir, "local.properties") +def properties = new Properties() + +assert localPropertiesFile.exists() +localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) } + +def flutterSdkPath = properties.getProperty("flutter.sdk") +assert flutterSdkPath != null, "flutter.sdk not set in local.properties" +apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle" diff --git a/assets/images/thingsboard.png b/assets/images/thingsboard.png new file mode 100644 index 0000000000000000000000000000000000000000..32bba42639f84c500ece21c5090a04297b65bdc7 GIT binary patch literal 15897 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 EA3NjIOaK4? literal 0 HcmV?d00001 diff --git a/assets/images/thingsboard_logo_blue.svg b/assets/images/thingsboard_logo_blue.svg new file mode 100644 index 0000000..03e3524 --- /dev/null +++ b/assets/images/thingsboard_logo_blue.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/.gitignore b/ios/.gitignore new file mode 100644 index 0000000..e96ef60 --- /dev/null +++ b/ios/.gitignore @@ -0,0 +1,32 @@ +*.mode1v3 +*.mode2v3 +*.moved-aside +*.pbxuser +*.perspectivev3 +**/*sync/ +.sconsign.dblite +.tags* +**/.vagrant/ +**/DerivedData/ +Icon? +**/Pods/ +**/.symlinks/ +profile +xcuserdata +**/.generated/ +Flutter/App.framework +Flutter/Flutter.framework +Flutter/Flutter.podspec +Flutter/Generated.xcconfig +Flutter/app.flx +Flutter/app.zip +Flutter/flutter_assets/ +Flutter/flutter_export_environment.sh +ServiceDefinitions.json +Runner/GeneratedPluginRegistrant.* + +# Exceptions to above rules. +!default.mode1v3 +!default.mode2v3 +!default.pbxuser +!default.perspectivev3 diff --git a/ios/Flutter/AppFrameworkInfo.plist b/ios/Flutter/AppFrameworkInfo.plist new file mode 100644 index 0000000..9367d48 --- /dev/null +++ b/ios/Flutter/AppFrameworkInfo.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + App + CFBundleIdentifier + io.flutter.flutter.app + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + App + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1.0 + MinimumOSVersion + 8.0 + + diff --git a/ios/Flutter/Debug.xcconfig b/ios/Flutter/Debug.xcconfig new file mode 100644 index 0000000..592ceee --- /dev/null +++ b/ios/Flutter/Debug.xcconfig @@ -0,0 +1 @@ +#include "Generated.xcconfig" diff --git a/ios/Flutter/Release.xcconfig b/ios/Flutter/Release.xcconfig new file mode 100644 index 0000000..592ceee --- /dev/null +++ b/ios/Flutter/Release.xcconfig @@ -0,0 +1 @@ +#include "Generated.xcconfig" diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj new file mode 100644 index 0000000..02ec069 --- /dev/null +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -0,0 +1,471 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; +/* End PBXBuildFile section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 9705A1C41CF9048500538489 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; + 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; + 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; + 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 97C146EB1CF9000F007C117D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 9740EEB11CF90186004384FC /* Flutter */ = { + isa = PBXGroup; + children = ( + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, + 9740EEB21CF90195004384FC /* Debug.xcconfig */, + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, + 9740EEB31CF90195004384FC /* Generated.xcconfig */, + ); + name = Flutter; + sourceTree = ""; + }; + 97C146E51CF9000F007C117D = { + isa = PBXGroup; + children = ( + 9740EEB11CF90186004384FC /* Flutter */, + 97C146F01CF9000F007C117D /* Runner */, + 97C146EF1CF9000F007C117D /* Products */, + ); + sourceTree = ""; + }; + 97C146EF1CF9000F007C117D /* Products */ = { + isa = PBXGroup; + children = ( + 97C146EE1CF9000F007C117D /* Runner.app */, + ); + name = Products; + sourceTree = ""; + }; + 97C146F01CF9000F007C117D /* Runner */ = { + isa = PBXGroup; + children = ( + 97C146FA1CF9000F007C117D /* Main.storyboard */, + 97C146FD1CF9000F007C117D /* Assets.xcassets */, + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */, + 97C147021CF9000F007C117D /* Info.plist */, + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */, + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */, + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */, + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */, + ); + path = Runner; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 97C146ED1CF9000F007C117D /* Runner */ = { + isa = PBXNativeTarget; + buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; + buildPhases = ( + 9740EEB61CF901F6004384FC /* Run Script */, + 97C146EA1CF9000F007C117D /* Sources */, + 97C146EB1CF9000F007C117D /* Frameworks */, + 97C146EC1CF9000F007C117D /* Resources */, + 9705A1C41CF9048500538489 /* Embed Frameworks */, + 3B06AD1E1E4923F5004D2608 /* Thin Binary */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Runner; + productName = Runner; + productReference = 97C146EE1CF9000F007C117D /* Runner.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 97C146E61CF9000F007C117D /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 1020; + ORGANIZATIONNAME = ""; + TargetAttributes = { + 97C146ED1CF9000F007C117D = { + CreatedOnToolsVersion = 7.3.1; + LastSwiftMigration = 1100; + }; + }; + }; + buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 97C146E51CF9000F007C117D; + productRefGroup = 97C146EF1CF9000F007C117D /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 97C146ED1CF9000F007C117D /* Runner */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 97C146EC1CF9000F007C117D /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */, + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */, + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Thin Binary"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; + }; + 9740EEB61CF901F6004384FC /* Run Script */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Run Script"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 97C146EA1CF9000F007C117D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */, + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 97C146FA1CF9000F007C117D /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C146FB1CF9000F007C117D /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C147001CF9000F007C117D /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 249021D3217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Profile; + }; + 249021D4217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.example.startupNamer; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Profile; + }; + 97C147031CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 97C147041CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 97C147061CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.example.startupNamer; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Debug; + }; + 97C147071CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.example.startupNamer; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147031CF9000F007C117D /* Debug */, + 97C147041CF9000F007C117D /* Release */, + 249021D3217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147061CF9000F007C117D /* Debug */, + 97C147071CF9000F007C117D /* Release */, + 249021D4217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 97C146E61CF9000F007C117D /* Project object */; +} \ No newline at end of file diff --git a/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 0000000..f9b0d7c --- /dev/null +++ b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme new file mode 100644 index 0000000..a28140c --- /dev/null +++ b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/Runner.xcworkspace/contents.xcworkspacedata b/ios/Runner.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..1d526a1 --- /dev/null +++ b/ios/Runner.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 0000000..f9b0d7c --- /dev/null +++ b/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/ios/Runner/AppDelegate.swift b/ios/Runner/AppDelegate.swift new file mode 100644 index 0000000..70693e4 --- /dev/null +++ b/ios/Runner/AppDelegate.swift @@ -0,0 +1,13 @@ +import UIKit +import Flutter + +@UIApplicationMain +@objc class AppDelegate: FlutterAppDelegate { + override func application( + _ application: UIApplication, + didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? + ) -> Bool { + GeneratedPluginRegistrant.register(with: self) + return super.application(application, didFinishLaunchingWithOptions: launchOptions) + } +} diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..d36b1fa --- /dev/null +++ b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,122 @@ +{ + "images" : [ + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "Icon-App-20x20@2x.png", + "scale" : "2x" + }, + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "Icon-App-20x20@3x.png", + "scale" : "3x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@1x.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@2x.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@3x.png", + "scale" : "3x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "Icon-App-40x40@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "Icon-App-40x40@3x.png", + "scale" : "3x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Icon-App-60x60@2x.png", + "scale" : "2x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Icon-App-60x60@3x.png", + "scale" : "3x" + }, + { + "size" : "20x20", + "idiom" : "ipad", + "filename" : "Icon-App-20x20@1x.png", + "scale" : "1x" + }, + { + "size" : "20x20", + "idiom" : "ipad", + "filename" : "Icon-App-20x20@2x.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "Icon-App-29x29@1x.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "Icon-App-29x29@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "Icon-App-40x40@1x.png", + "scale" : "1x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "Icon-App-40x40@2x.png", + "scale" : "2x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Icon-App-76x76@1x.png", + "scale" : "1x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Icon-App-76x76@2x.png", + "scale" : "2x" + }, + { + "size" : "83.5x83.5", + "idiom" : "ipad", + "filename" : "Icon-App-83.5x83.5@2x.png", + "scale" : "2x" + }, + { + "size" : "1024x1024", + "idiom" : "ios-marketing", + "filename" : "Icon-App-1024x1024@1x.png", + "scale" : "1x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..5345ae34730dbee6d8a74089395ed8a28650da29 GIT binary patch literal 194699 zcmYhhWk8f&7cP7wDk2IZ3L+^fAxKM(AR+zG&CneR3=M;V(p}O@N|$sDBAwDD4BcJB zz{DB!{l0VN$G+#++N<`pueH_={ZB>i{@tf{0RXr!|5jQZ0B+*`-URO4#(khP9D%@% z3w3#ENlj0@-3&sHKRvMwLmX!Y>9+uWp#TJv^CEEV3P zw-wU0rB3pXw6Iw;8TCaWH>wma|KQJ^b=i!ae_QaM z_i?U<7* zaEG1AH9jkcH?@Rwgs^^9K?QjCuRvEY#m3IeRk4e3T5|DBGka1$ffFT8Bfy>d)%6F( z5<$c^kk3L(J4>ITD--#eB7Ov^^4%k6U#Nd{bPuE5b`|-hz`)cwXQ08&q7>2$t6lA^ zJpAS=IsbTVF5Az??`nFF6t(B>gKYIvnCITzqHQ8kuT#UD_vshd%%+w`g&%?zhoS9z z%xuu5?9)6tn&#!JLl-Z|rIpvwWhp}IKEbsf0PPLp>ko`@CA$kRMg`{4dlA&>lTr0r zIiW~{9Q7wmZLD_3zgn5uts2~^5L5;u+=$lX@MRnoq))=mz6u34qiaDH+d>W+SzrA^ z_Rz3(V3Ydp@j=xq8Kzt?1D;E*U3F^;`{EQTEH8W%RDFTf_@eAW#r&8hy#Kl zQ6ak4py@6(Zml4TsS;El>QpWc`L10|wDQ*t-MM@x7u{&htfynok^H7TWZCrGo}7jbIzX_N?vNPVok{18mBj>@_D{C=En0}8gmNM{!pK6#|Ja??kpi6-JM$DnfBP< zVyHc7AH-nq!Ej|T{vvq;3vV{}lr%N4{G8I3VjZ_X(s-4N^8UK7vo4~1>f~fhPTb&n zYhSIlzo&#)Jr}~bo%Rjwv{F70F2wTnCGC#GyKGh;DE;HxBZfxSt^$h5c5EO0+vLK( z4)}3!x=z#%@}4F6Trp`v`RoqpP>5BX3DI11cSVK|{oEH`!Jg@CdKxQB5ru6Rtw-U- zi2nXMXz}v$h_yp&Xu6r-nDOHCfk=g&NGY@#uSbJ|PrQtuH+ z5C(oSKCb1}FNPQv7AdzQmc-C$$V(E3ctj%f4K2GPK`W;VsDn)-PB1Z?VB=`>B5n$2 zUpS(3dAms0*l4QL?yP5n5VuW$+|BDW_cWWP&wmLY>pkqax%K?8NaZn-1s|rcn~cg93CXD)52;>#3H1#NxB<%X?>dxTpot5d5`>N%wo@m*@mb$>GvFwmXGLquL_-1FKHwSx?VLK{HGh zYUE$&!}K~x9!)gpK=?p#_|Ta1`u5mfI@)T;vsA47%0J1^Z=<<&pqn5oiObeZV<|R* z@}yLJX`;O|kYNB();F;nDY#$7o&>2e9{+?=IoCT0=}#`2kSM<e@`D22!R@wxvvtj(OCgo+u^mBOK(c!dLj;wJt zrGS;5#JV|)*$>;9Mn|C~R1po*8DlpkHF6*}3S&Bc^H7ZV$9>|O`v}95?%8@@anY$} z=KFziVW?YkYzL1C+E7O-B-gT|@&2Bm zP#&)FxLj^p5YaE+RDQjSL^=gski0u4GWI<_MSjZtu|HJg=i?!lt+&K?$~_42ns(8E z!`KI$-DhSzH@OaPb#YKrI$VGi)fVLGmfNR{_ z1T8ZJwWWFM!0lI88n-U<&d19+@!!#*F^r_oM`2M7bjFo~(<*dFf36igeET;|NKAFZ zS>^3*i__NI`vLK*`5?; zttRrYzyKE|*e6lHV9|tAtu5;~kXiIzjolU3wS4z`*LUgSvkttM7LlzmZrS{C$@=V9 z`o$ed^M8D^IN$>#!+P$O(>e|J$Htjg#&4Q-ErZk|=M#>@eH?X?R6C~qaxj4J-Hrw( zG^Ee(sKw4z;bydt!nJJAdyBX=Ah-fWCj8_%#8+uMm@dJ{fMQT9b;$O?BfIQoI3uOn z8E46NO1;E0He0^mlXDjX`ZgIgVfT zO6+YzzdzpUNMcf1(?A3e1h#>a(h{YJmhLL?^-cfbadc-~@lY!a0AUzkH%1 z@H*rd?$6YZK~9CrWpJmxv|5!W&zP=Xzc}Zvp4FN9zFy5bS|F>n_8pKnKgr)?-T!sK z>d79$sBmdN<-zrgy1JWC$N|n6v0ekIVsx^o7CAHg3v`O&)xm@B|1EQ z7-NoxgbL2fdZ_~&Sq=`l`%&o(8X!-Fx6p}gr&0M+)4zf~;Bxy=IlB`tCc;5XLfa$+fM?k2zlY&kjkY>MTRBM)x1&|2J`ybR zGa24&XtSl9@9MWn78V}!#@)?1=F7%44F3%v^X_~C#VefY{{!Z>_>U19T{7ce?x*gq z8+)aUagw{0MvguoKpfLkS_<~@s=Kw#brS0#cb${+5+C}T4#(7!_}Y8c>et8v{exA| zalUJmYRds|Ze5f&b$F{LIPr`s+=moPxs#GUS9UXNT$t_&1#!Et$U8NWuYuNXpFhgi$WVdR^=>{lSpppvEtrc}Z_KHott_&B z%&eHpv4k*vfd4lSE-MeG-fTyalHYHYvG@Ul0MBc1%<@{)|3KOIQ;Zp&YO1pS!q=9F z-|=yAep~~rrUT2M6fsp@6kTX#rm*H-GbTP#-V@4!5wE-Xp2VG;5S^@s?d+ONbNqh< zL2P!On|vEKgDdRJDWOtW6L0mtBs$(|yJlLOhgvk;3E47{&&Hie!(N8@isng7iwoTlHGJ&Qj7 zqDWW`u61K)qls)te1J7q$57I_XV(b-7JL$ZvHR{J<$$Y5&LvRd{TRG>k;zOts}@8}d2vm7-$#mm_{mY* z!6$x1>}!Z$kaKLpL3OjqFSq4(-|cK)?vP_Ya_sikd*h}*U(mU>cZ+R!JYWq7LXsrf z^&##%FI-kikO8WMaFm2X3J4ilvRzbvtaY@I+&O3Fe^hHY%SPD;9cL)L%vLO&ip})O)(>{hP|e2N zT-(Fmcx~m`j$aMMCb?2cT#j*uXkrZhlG`k zKxxmI{;b)1nW+OP+m6fLRCqYImt-6HY!K5j=qc>?$YF=A(T2m7^jWLx(l^)MZyqCR zwi6QJQ2E1Tj>eQRc;Zof>-eWDd_aO2iB2H(mq&SMl~Eid=@b;4RKr?~j51m|bWQ~R zxzXtcLEDgv>PrE?irCuZQ2vJJMA<(j6ZWu*yUSvxlvz$CG?jU2vpZ4DemdEEQC^KH z48Mhe)OY@vtRD>LR7 zLML{~y2SkwM;b4z)!~Ej1LncF+HdY#9UVCof-_h)iz5(!zKDg-5CQ6|{#C5=apmkC ze>(%FWBf&-Wl*{Va}IVH@YE?yEQL(^0lw&2u#?o?e%as33sI>+)2TDtZqvb3M&nddKa`b5Ku-Mi_0i{)&`01CgRfyZ>t? z34p6&5gOEa>cF&kh18Q6QRe{eh?F8zg}pdo8lxno>-eb$)ckG4PkRmqmAC-!AtX#H8Ouj~E) zz1aTEy?xfK?Y!W5c8N<5EWn#&$jdvj`TMhjJ}Hqmi1`2!fx}v{g=#f^fyUIT3%aV_ zbbtBvkzu4i8(YjR7U<-8!m`k!N4 z*&xG@Zk#Q>b*}S=PGf={OTAS-<^w>n%9;bEMNUoR7(|m!J_?Y(`L3bTDkVB@%~j?! z6SR_YQ+mM6a=YUSQZ#AzUhQx$wz2hmdv7kfsa8~W1$Z0Gk}Bppv!wcgWf`NMWpe<2 zutm{~rL;vvC_%Dkdt$g0a_OE`842G24(GP=RUfy$_Z_8Djl^GszQ0PEQ^e%|yru-e z?yGlzFMh?MdY4S!bVvkQMjj`T`IJ4C`O<#&Pva-KD?QACzi+?a*Aidd=z2!SDh2(% zDSO&)<0xdup@xUP={T2yfv&Ae*qwAM{v15=z0W=>`OWC}Cq%!s%|jD5m@TfpBF4*h zg}=Hn?)9KB{N-`7?2E`M|nQ8@v776 zphz>qq4s2Qp07#o(VkpAs?@ugl!p?adDCl%U<5GWWY}cl{6P z#pzA2UNSXG%EHK-?PYmiw2cjD`;(WB3wQ}|5P2wD@oW6D%a6*TgoR7r8y{FdWj_RGPnK1&|-^yCwbEk#t|&xH<|-k|dNpdM9ZnBr=W zX3bP%IQ3TYXVmQFJwP=>a1~rA0BuldKyyF`{f{7Lt_}5<PD2W@POZ>&@v2Vr=^o_*CxQHroq4kc?`U|Or(zuI*1tn|G@s&iYa$_f9CCl zIX>GxP1dVy=DMgWPU0<$_HF%ZpT#2JsSqP=O7+lm@_V(ilsHvBixR6KEp3y-W#C!k zLiu-*?^<3x4B+;PrWl9Htu7W$jHNWxX91&;=L)#p^f>pepEj|tu`(!>qRrk*hCov=^zD-=^mqHu7z_uwB2vIT5Ex<0S)CW5oxJ>_U*|Bqxfc}svo;@G8GHI- zn}IE&_5)#@+9MK@Wrs_#QAytpy5lDOzKht)%xJHl=f37D^U44raKZ1uD(?vOn2jr( zqH0<;g6crdSPyov-?hWB)tMQ?+7!-KCmt|Pderp^{f$S^rtv{0HQaS2`$KHf4|&}n zc^e_7WeNyhn>LHY4-Ulxu@?saSys*wZZVH{~(^v^& ziu{s2*B9t88Q5v0VUc7^r5C@*(^=1#$Fn_~*jCt!6;@01>g-#(-SuBGP8_YtI{=0jO2TG9XJzwYC!cS<)McfS=3(k zQY@d~lge?C2Yi!z1V<)CIiBU&EW6-zK+j;|AP|W%vJvdi4>u%0(z*@B$fAnfiLZ=V z_w}BD3AQdi{%E;VUC1;mvNupivSjU`)sRWik0@^zb4v~{X64yl&(`ezg`XS|RYIsi ziVe;je}-syL$N_1ID|-?B;ZBB>q4J(I`zr04;&FJx-#5tO>1X@$sK5l3T(ZA(qV`8 z;0=Cydgl0Vyu ztM>9kNUM3}c|?zx`OHkB(a!MBL69Ttldk=iY?(|)-`T?>cx3&2M6)dg*Nqh}Bauc; z2s*P4JxWQpdhs>Pz-u$Jcy?+{y#tyYez?>1xiE@=KoE4nb0=;o0MsALdd5hFc)@6i z&U7X4T{4hUPo~QzLucRt5+uirqs&)i1OcyT*XlN`Ye6SNutSe?Zp%tBurbU4oP}vN zPDe+60%4gZI5Am$noQRr@g-dZF8W?_F_3l4*6RwLO-aYZg?YYt7)g9WPqQuUR;)n6Sfv#PW%M(TiL$CIm;7r1b1y8KFckyX8!il476cK!WWA$lB+WWX0fR~9{^eJ_{+rd@L88(1GF}0r>RUd=O7(pm;o;FDr5W^pu^x&)J`9TM98DLEmo?KKlkE@U`$w z#EXOzeAN`kZ!fZ;EtL~pliN-+zgs5^4o2X0FIGWTU_|TO#*fwVR8PWW*_qq~t`#rD|G#qRg=JxMJVTn>*(Cf@aJ$(m=-N-E+on#{q#`OSCR0Hv`4egyZv`S>ZD`se!l zWAA&~K@pz`)DjLN^)8^`y7NH0eq^X$!R+&gV|;)F!5rgCB$DLKl5<4uq!yI|^x*1L z3E5b*(`eIb-OSnUQ@Vd=FYVwU6+9vgIAs8CWR$;^3FIB+bC{VjY9O7^=@)jl|lV_T4G3DykaQu z{OV_tj!w|uiWDgIpueaVZokKHWr+C{2()lpQ52u0M;d^WVRQIj9dixESg2Hcf>K5_ zH*#mb4=w++SRFn3;t`>DdQizOY_fBilyDN?%1lbUX|SkRA$~a@8Q_t#IPU_EfD7@$ z9EG|aq&_3a@HdGbxN2}e868MeQ8>hJrb*M z4*g0`dAo@Hb1S>vb8-SfC2)wXeb&jFf;)Vq2}UzDT%1kdTH@=;#@8(Ra>&i`GoOQg zzT-0=IF_z}fFQMlr(Bmi7*zJXgoX5363zbf0_Q)~@%M zio>r`zq}m&xVjof(O>L=7(9VKAHbGX6r`PK)9q?_VCJACHD`^jhp?uWWZ-b}J8$13 zhdi~~xI@gu_P;SHfU?37p_{sk8vG*JsEcTkr?jv9U(*zsL00=GNSd#r9kA?sRuZ*Z zb)o3CsouTQ0Bz}wv_18YJE?o4Q`=#XwqeQiZm!<`#y_z0=1N_|a(Nhr$;@Cb#IR9y z#k|IUi$Za3<{oOP9Xvn2A1 zbho+mH#S_MUt-ey#zk&uLn;kR%ZIe9$H3Y+J0BZt9OfZ!Ldi7#(wxINT(pQ@=Q8iY zs}7wxGt*Zk#h%z@e=7lFQPn|TwDP9JV~_LsNMN!2w;tay_;I)$ z-v;g9bhQ3!;H(V=Njj5BI01oLjB0eC#i10(*&m7>b1j{#)-uZ|5K#vUr$OJP{CCj0 zImoZE2+xJiQXzPNh4w+X3&k4u%E$=EN_KKX|{9&p@H zR@#@>algNe-C{&k_mk2y9`J5pD4q2yJh7eihvlY%GmPaLdy&a;;0e3;@+AxXXX)fR z<>){>KzcQsKjL$6AZoE&Joz4saRt+ME;rigQ8IN~+E^CV+34aQ!j4DR?@lR7ddw>V zy0XcseW6pmc6_|Id^wm!fg@{Kmaql=R_@z!=27R-O{#r1b))i#Dl z958&-*8a!+lJ_56)o5jqZVxTuZDXPeQg1y4C1XC2T!m(-WEBfmL#-F*vinKsLxAKh zAhX8D)`9*LU0O3ua>s!tPs>I#IH? zV<(^kdGWE;^|nJ@UH=a~r(c)W#l;>RwQJtz{(78c{vJ1!uG0)S9L5z4*6sDbZ_T_S zs(wFY=JaU&YS<_NWW9uFPC0-Noh8S-BSjmXLn^3xdYbOIG$0;k4kH$*%D3yaCvpWb z4f0hwxOsJ=&}AZSa(p6E_=)zY7%AZ2=V!~^hamZA;rY7DEsvoy7aY2Y>zkLE-2|kd z34Wppu(V(}^Mbt;qNU&y!dq|3d&$0qbDhHBK)Z9@6P7-sbvjxu7}xQ~+WcCL4tpz$VJ*6U>p-D`@)ki`84hyy z7p#qu5dt$obJoVi$t=AXKHk|>x0i?oMP5E~g^uh&lF)=81ax?=RmjxEB=F)j6-PU4 zM|D|ub0Y@$nghO}deaMZf{_`%Ot~o6LxCp}Tguq|T2i^g*N}5AUYO);^WJ|t2CeJG@tim$fs^jPd z!}gvZ6wzetNrP_A?!PwZ@9heTWrYp5V`l9k4j7P+^}_08tOKH?$!sst!ZnsZK{gd( z)lNzb#YQh4!ia~*q{0S`EAc&GHLu9pECYWqDUi$X|K1RaXLpz{A$s>bn&#pJvz@ z(jQ_YRZP6uZ)8w2@Z=r$;|A;^GlK4i9W~ptCQRwD7mrDCJ&6-mU%468{lY+1K}de% zhpTpcb=4VHJGcYmM#E@q&q$e3BD%qHTwlE~{v?$$$Eq>kD&{|=iO91 z4pKVE+%F{7TZe-sO0s4THc8rJ45IDMzPJueH}dCml~i~6V-){d2h82R-6p4&E0!e& z`j1z3KIi#9$gU~+!E-aW464n%lB?9!u)FEJ^6~HCYIC}QzsT4# zg!9tSk}J&bbbzFZpg^(-8+qUbXS0W`L+4=hE^)`)w*z)B6=y;Ba2ZE`g=H9(*%gAI z7?!DcxM?n}QAKP-=)xxe@-%6MozJq?ixVvA(S7>3u}{H>sb(Z^p-bj3pa#s}#JSOi z7m!BLrTbBMo4%9Eyi85Fq+1<;Z=v~Sl0j81GdF;JQV+S!(x9f@)&5FfeEotGQTZ(o zw_nTHq!n2TTb7K=_%xjc{++8uM03;LA3I(0M}KVr4n;rU9THtg+RyBPBAOmSqL$B> z##X+&dM@Ak8G4MuT7+WbRwA_9VTx5Jy} zU5u>wqP&dq_zL$t%x*p>mWy9=q|8WLi!ZL~%g-CJ{2=T1cf&;ueEda1YPm@ z&y=Zc@vvX}OYs%+SbZ;rAgqug{$klWcocIaapUmt!H0$MBSps6E!lxYjfX^|PT#6! zQn{VRd?nsyOcWZlU|QZqRk3Gmilo_E+d1t00~uA~pdIc9K`-piXp1phQ^p&cdP=Q` zpc@AU$Kz1zBdkNq6*frwc7WV>B*Ee{21-EL4mN%QcJ3%;5YSY)pZ=aKgV|D|fr~s) zCr_Zp7+d0g$`u|UXI)ZODv($$`|F?MfGp}Kfa0TDcssrzpP9=PxJ#bNIIbf!l37G&C)mtgLYM^0B?t9;lVnf#{n{gGqdDng;HR zyn-LIXC%U?y`iVTA;k#wJZlp=ZkZeRtm0nH?gBLDReE8!mPm%>O5KTruK;uki243s zzidEJ+=!mR4le|f`160BGr0A4vu{(N3n_7LlcDIdat{_D`#V#IL_~ z5&&Fiv;n%y2`uy6g|B*^?~%#CwKU}iu|)a;SMjM(`752d3|3%~?DzPY&X3v3WE&CW zMy{r8-*C@~dKF7yHL`wagDhj1W%W-0mb`v#DiTupHVpaow`G2v2irdrQ2r*sZ}t10 zsi%_ioz)Se)?uf0Rx_u=VR-c2XoyYXB?&$dFmF{|nKgc@NPuPOgjP`}3NeGeuyKFU z(;3|1RXo{(Bt>(pZ#ZN#aRmGtmoc_Hd3yVw@ae}U0O$M6*n5DMgre55(QEBgOpBXE z-aeQYVA`Wo#sbrhf}&SKgJ|gs5@9a*r(>tY4HB&f_j^^)j637Jz{HLiNX`Ze8R|XZ138Ezawd~AH(W-ceI{>s3dQzXw;nxG?UUCPDBtJMXgl)LyJ{;r!+ z0(~pkE7XB^)<<_xln-n0UQRV@Mm&Z34%UojSom@-<2kS>G%Z%;%zQC#HwAB*nt>1L z!oaVrhcW~=(|D2T-Phbh$EG?s}B|%rXE_S2G zer+xuxq|k6`&IqAkK$Io&`$f@Xd@oYy-*DCOjg14iZCTYx!BN?o3e8l*yDg1w1~ z`DH+Ga}%t{c=@8m`NkreAg$-p=ILeVVX_m3kuou-(%EMB{eO-uT7p?gTkldWf3b1+ z6=IV!frdgwqdc;L@SC=ne@6Vq=L2-@&mRl(0IhQ`0b*U3&pQ;aeK9o-?oQx*voX8i zIxqMUCh&6?5c3pDda6V1%$$(JL5>xYR2C|$U=#&wcJ4MBDuI({HRHCqzh%^PZO4_A znf#LuyuNY*o(mswpT6>4Bk+HKh(ghO_mRLX@{o^V%cOG2{~@qE)GgezaEPhLpkG}x zY<5EDfOe%I(KV`sOsVskT=7)eGFX-r<4?wZXU&z7m>EKK+^pYX#i!V20K+7Ak?;|k zaQ;zUFd%SB+=e|muuyi2%+%8uP9M?m-%Ve+4~=scQ`V`?HXvm0d!HC#Buv+6Ch@LI z)1dk98x#Q87xHlgLM})|gEPMSj7N#c?M*JlS6BGBt>0Rr1o`!iY=qQ`4H|vjYFvBbt6%OuIaOQcX2hhjVXm{W!h(iTe#(2N(}%b?IsOIlWWO_BCH+f2 z>9h0?;)Z!+IeT-5RN?G`Hnf}sHg10uwRQ)V62x=%L&Z9tJ!N!((os}KGpc!D*v~spkk!xAly{dxf^NJj~S!|6f5_U zAEqSG3=WF3vKue|Q>gsv@nUTu6g4DE{ktgm*V3gs6y0QDl=D|@A3Y7+xgNx-x2Ikv zbz+}Wf!`U*qoG|{xe53ded|V+V7Wcxj;}a0sm;cLv3&-~rR?ge-Mn^lQ>V%E;KYlpQ9~YL%xy3S(XQO=DR$O1Y_{ zeL*#os*!}FjoDR(oDL$5wKI!XU@bf22W%Szv2fuKb8GWxO}W^e!0i2dJ8Qa8sRFuyf4`_cB--a|`+ubg0-`moLFRw)K(< ze2;tz6eY3Z`xifeX@m12;IN$-siull%gWxDr$%IE9PgFu5@0g4Ay}7P@I@^69RYC3#y3Rc>7?5q5sbc#FEH#SmK{dh+6yoUP+mNbC%6Lsh;$ zs&>nybPV~2Jl?)ELDl~W+ZIFHw+RK#zVy}MgnIyKq!5aTL>we`XJy~CA}nz2#BK&| z%4hzSjm+lqzGoK7=q9XV{k?ycgtjPVl5?AvW}AU#iU{;VY;td7mvQgoMRP3aAVIB`Hf_wDa-kq zGaL0!{2cn!v1uBqs|gG1Za!&hYWy|WTk;CE`e(qqhbr6Hg38`$+d+cUsxHviUv%+G*|v9J+)~}TS}NJLrPJ%5 zMHM=`8F-7qG>_f0zMmh#TP_wk@0yDoFxUgDgNu5U+zGKT^wh; z=DpoCKJgFf^UKf1t!F*$bGm=upEn`bqu|CX+6h@#5GISUM(n;xXlZXs^ro0%Wl9k1(XG-dDvOr7NoX9b zHTq!yEGhp(uJ32I(mq*ZSJY+%vSDbwZf12`kg~b4QnugvbpH;>nBz0u8`J9t*SKF+ zNDCj38*ccZX1QWMJVyoFf!L92EvKu_kGaGSJ~|8z38`G)6sMGV_d@idT13^si1=Rc z#6-Z_o^&l{L*;;q_}KP4qL+8ge&8k6tBD|6gr6Y{eBHtTOFL88Vu}0c&&hy! zUWr?1^3!+nSN@w#t%FgGLDc0eqE-0h;9u-n(M1+w?D2%*JRHOFjpw>o{M_b!kdACF zi%7wz!l{)PQ{LgpM-rTzg$e~pk6TByjE`8wz=D9Lrfi1O=zi9{kCSc!>mU+Y7V*XMB4SyGeryD~Rs^~-iAVCTwk zq41eOF`CTb^a)Ys9?w=y3L;iX4>LEttgjAv`g>8k zr`B{7oI|v}uhpjz0vaZ+Mh%e=$P~zoW`9!8*kBU#l^WgSyul1RqCh1Neq!I2V&zL# zEi)2qneLPM=kLS+X1wrUOG6)>u|-|+7ELbci8^JaUrI8GHbHZ=5FWzB``_-qnu&E3 zx#GTY*U9&;vqeeqY4&rg4KJQnuF(;OEaMGG<~WCV9cZ)YtFMH6^S}?9)W|tyH)7ZJ(Hvy>~-1(>TqGT1p?SSEBY=C!5fda!OU2V(x z&q9h0aFs>;3YH1~YxSO&(+8`%+QKtj2k4ybRW#eWO-A)Boke&jf0nUQJaR3&Z$rz7 z$tO9gw0LywB=(fBV#Yz!K#q_2mrhCtTJB_MWGt4hgTjB>dx#sGy24y44Rswbah+{@ zQ(()$_H6B$i{@%+5Cf#N2X@}mR5?q$V>GI4r`j*bC#Vke*7Wrl@a`{AFM1)r>xAF(hgQy=&I3h&TnM6F|(Xh&Uf*^fQMNlg+JH2gQ+taCc0pJwrIedbZGwOa!AKCs z^_H$M9wKBcpVikLRB7R{t1;L)@dQ_(xnAV3rwxX8mX;pRRI#nNbN{0Z!0!qYsjh0; z8s*mnBH8$lN6B`^DmD5upz?6?pX<(EQCWe5m%D7;c|igbbG#{;)jfV1d1G~yGAkk3 zUYk-z=b`>&~JYP3K;vQQ{5X7Z|)!-Wwu2)4>OW z2YI%~te<<|3ZF4{lMGD@iDX2FS-j#T4}2ypps^}X640)hveuo!MYrGhuTQfmQFSFH z8|%V>zxY<}w1a4iCmb7pAHOXpSPj;Kd)ss`K!_UKy}1oZRN<;VGKlJ@if(qH9GdFV z?6-2z-!RCy5ah8eBNBCkwEl)j2q~nn+ttYRiTds7r5cc9_xEoSdPV2FP(`|q<)Z8{ zMUgTnSCs1LI&9l5(`u!dpRz?IqlOs-KBA~{(Kaxm7}_+ObNvTlfI|f?-Ww5e0|6z zY{K%=FJsVuwI0{fHszt?bW7BlOIvp`QC7ATsp;KR*DI}oi_pGrK3*~3xb;)X>zpdD zM6EA$F}WnbQ+&S~kN$S|@d06hVaGDaeRWo4h8#vzg*kOE_@6T_T6P0*Y)tX#5BbRR zH~at-?kZZD_FueM(43(nM{gi6j)Ba05-3GH~$OC?cT++3Z9|8w@SekV91(0ymqmfPkmD&biAi#!^}kDcqaziO%2jPrI7PI6q2XdSh@ z%qgpKCCApyT$t(S#p6h!@{nW}S}pw*%V#&9x{2j5F>aSyF@5Qb$-Jp3>|PxMk7n!g zgB4~IwLc|wvd<5Q=#m5vKQ-aYC@9qy>})VsOHV$V{MVTW5a}6@dX1m>s2wob&`1!j z1a|M$yN(ly5(M|1FcH1J2Nd=%us%D-@#J@dN0U#{jeS<2M<+iGW{}oLS=w9tb@{Tm zM|vL$$;%01gkcj^lgQ_tk41k|zI3=XX2dnEM1 zCE<97;vD1HqNc3gP;Uquvg*tJG!x( zwXflgOd0Fo%(z1CuDOo;jA`lAw~VsjF3n_Zo$?~L^CH6tCmf?Qo#<(>#ZutY{1 z8(O@626<##r%*d4Nq>U?`Y_W_{9}2@<$&EI)F7{-2s0{xPQ*Rko#}aG}&kn&Y z!CiwxAV_cx?hxEvg1dWw;1Jy1-Q696y9IZ5XMg+Ld(L~m=b8CA-CbR^s;XC4_oULs z=DtbB8GzZ6S{#j;Yv`@D<7Gz1bFshemNFgPBI?)=&|rbBlkvc2+kQKJ%%5u!WYzcld4&adpy7;@~6RH5kl2lz4(w3^d$fYMn(qcYs7tNHGd-Euagt;wUa@}-nDzt1p zpBvbyY@-bW(T1poyU-#yE>S%s)}>4+Wo!+ylwVQFcEC{oBfhQNk}{OQ9>YJ!{|q%w zB_*-%UVm%SL3LGpYfu*R46)&S8#B0Oi~5Z$Z|&fZ`q8w!^jaicrournwC8S<+Vb{u zKohu@xFJRR>dk$Xs!tEy@LOB)kot^D!P#{>IkVHqz0`gh4hhr0p|mOZqy|J%KQC4% z*^HH4A2kN<13rAAhydGnw0*Itau7M{euM%?|zI37z?ib0;6LD(OxamIF9R>pbD<9zNG4vT9 zkbw~}1jJ!{8^v96s?o>{v_3>n^q6EtaHUg$Zh4 zJB+0uww7!9_E*GKxi670)z2dhT`!NI3hiqp>e`M}qB#^C!d9Wa(#*C_F;o`!FD&kJ zQ0)Ie;S4mW9)tg1Kmp$A>0bcIzOF|5cT5+#_9h>+f%X~M4-LkNx6vv~!1E6vob$7q zRfm4Jj{?I$to;|7(SCWx*69W4dwR#nR8k&Z$mCxKe!R4Cgon~wp=PAw$0;TmQNmF#Jj9K`k7ZN8 zMp#ZhUp_DR0(?Rg8?iO1;|fLpcY^}Bk4yhZ;XUNu>44FInhB%7pS8>LgFCZ@zB~^% zOYAwu;Pk5~{2?>{-e}7PH~(QvQ^oW!Po|a%{o5(lKKxhP@%ec(E64bQmYaCCM*26g zHk`sbu5Q732d6=Fuq1xb>?6^yZ=>O6+5Jp4Gad?5Hh)81X<+F~ zLIoI8S3^jLNq^HPcc|6CFS%yq&wM55{=K$|lC(`)v3*Ib!Wth>>de%V433jdrE2~! zaO~;$Rcx*GyC$B~jkq%;!05j)B)5bNCBQ(wbD)+PnRZ`ssatd>_P{=L28qjb;>E&l zZ)%U5<%K-MK-I|ggBvu|29f?qxbRD2t){9o$`59DBGFTPF3%ndr4VYY%Sy;1L++0W zDo{(L|6d1DkPh@93j>!~NwcAf++WDaUbmaJcvXD z`&Ze>3z&u3UO{=cVCd`a-5uL0|9RSWIye$hED$Kd0-8$lUO}p|UEEZ0SVEInZix@b zH_gA{Nt~x{mE7D>>)!kRuvIh8=?mYZtdQIlAy+7%Q!TJ4x*B7A!3om;-{+0G#Q=z2 zB!MCkE@$f#&r0^1ZI1;wDy*k1owjRsJygrE>%cGB6ETl&v>yy2 zw!rPNq3^-aN88-C)^sWPga}Vxq-0@4twyE{8FBhHcbMh71x)W3$h6ynZtfxsp?v@C zGcwp32au8RM3!ZR5r_p%E`)Atnj!m=dBrlUGt8gArC3{ot*v4N1G{0mK9UO`7C8q* z=g0mCM7|HKvi7rL?;kv6_N|zBLq8pdaYV)=qzpkoH>AWK(bZXK&}wcEwuINJ`u$&D zKOub~v#yBeWSW3!PLrmio{a%k#SmrytElpCQ%M``%&m4u%WzF=V=yoKp6X^WV z(TZ#lh1#Uc&} z3DV>zV7PQe&dA=1$FPEa<(r&ku~i9R@G27C8R6+0myONF0IQuV)ZX(_*(Gp{n%zrHOmrNpL@F6Ey1d9G{- z$fqKsdSzt(8bly40+izI#slRsvrB2?-flJGw`>as|7rf89{9AGfus6?vtA@$zOsC0 z4^)CTiSDTsJD1%ukKjSJjz72nAt;_7Bb8fBa3Zi)b3#~(JFRnY!ug%dRGR{7sA?!G zQ7mX94MZnIjW_}nU2x*7{%_Mr4#JN8fY|~*{!|(G{5uQ)FCrORQ6#RFT;6Eh@)u*} zma^5SQ|5eq-?(F!_2^89WuxxSry7wNG~)Bb*b?H5x=@&V94lQ~v8wy83GanvNkQFk zK>@q=>py^Kkbr;mPXis3B%3oBLlF5WwD#tCQn7*~jrGrSGGC&*4$F*2sFO8i4Q3GVg+OuO}03JNR zYX~5L@-+dgPX6kfJL8;qx(^UK;nQRWX;rcS%f~af<{>EmesdF4feUV1e zpJgEdKS~jKthLUOeRbvz{u|rhNeU?6_ZT4vXyCezCOH@Z2DG(pyi0;b-~f7D8TzfU zUgU@=fn*LQkN&6pS+33L(|~U|XcEuSYpEdiUue01TR;L3+7aDXou-7NKjh(VDzR?y zuko5fWx>WR4Ol0hBamVyoifjDlHB*`7x(@=;{Mfsz;#1(kn+hevf;gDrRslPDDvlL z$f%jj5){rOy}khA2MhlrcO6~VAWNS#EKQ9Q#o6CI<&OGC=j5Q+FfHmeJfK|s>>GE% zy@GD$S+#&E@n7u!{|um#K|QfJJVk?mu_y3XC|_h>B6$-F&D~-d)dl023PlWXGj_zm zwUvwO!8d%$JLH!6yyH<1!+$lWV_OH~8;zHT?RRC6{UZJ}+&pVS9jJ5~Zq8^T8(131 z7t+1Twv{;#c7PGkwS54!qNPEr#y8h1D|49+17*)UtDtwy_h(p!k zK-b~H_O_=Sv!!<8_$}n_rK$O%2Xt+p_&{3%H!*j$lmS%h?ep{X2VCVb*&>GTZDD|a zn;^gyqvMf32tX+$!{JZt-pRj#qN$Hjq@GKh1!JKFeu6{vjMLx2!Q}V~xQkl=(Zk;~ zc^kGmQ8RDft_T>K;7I;!hfvG{$Xdl-j`~R~W5mSuT{2#=SO`ubtH{=i1t|KU$4#eo zmT@nL!Ax9Z15BFAEM)pjvOGC@YUKv70RN$Gh(iO)7i$pFJbya>#xXmvEUs@qC-b-e zd!JN1YrjU|gsyyP1`qi3_FS{Noeksbu?ka_sY>_n7#!nr*?^z6LL-vY%Cx7L)b!#n zGk<)D>!x8jTrq+$c@TR3wkzxf-~rG)czo%Dr*i;M0qXh}p<=^Rc)lnf1 zkY70J_^(I>*97Gtd5d3MUvxP1jbHof8Sf&H+##1YZasQ&EW&9Ek$WiH$l|b_2%c33 zg86FYzAh_2;{Jb9lh zweop1IT7bIo}MR7@64A@e@uqKDQ ze!O{=D^YnvxPCOP0O`?7e+m|K8x8Wc(bN}DkZsSy1V2MiP{XSMmDML!4-fob3kv_V zpp5ldn_>0!nYg@mUNTl~6ZL|_R!E`1lkq3N;CTQaY(SI{64#Hva8-%Xi#B`~T@!d+ z!EZ(&hz2)Y;s2lQ|6{X@HNKW!`)Re&R%di9T#elatGI+*b2xx7@z3vc2ogxYsaae1 zy^?WFh?c-*P)IiSZK$UY-GHsu|0N#3A$lvR0Y-qKuTqUFs$?|f(1aR{oYf^CvAjOW z2&ZDn_VD|Q65NSEjQ=X>bSjDW)ZUj*V8N&!`~Sp>frtf|!)nIY$7SsT$}yUrvLYY^ zGZUPZ+nF^id6^RavG>6}g6|@jZXkX~hlH2Bo>+1hdKyVKoH)XB7gvtQ#O=lk+xPBi z2M_o!E*cS3gDy~Kp$Ft?b|-%}hRKrSfz%4Yxf;vt0K}$ICn*!U_4blUMVS$$nQ!Zf zZ|xd`onL+6qhJIk?oR%5>((nUvS~+0J;m z0z{j3;e&8b`dVH{+L=awtVA3l_F5PI#cL2J8kaH9B&w9xnq@Wn#MIkl1Ber%#LB03 z;is9|Jjz=B1C{jcAA0cBlb zL+F-n+q2}I_s^>AeTl)27&+rDxmkn>W`|}L@6GPBA8f)F8v+Ydaqb`Hp2^yE3r8C{ zuxgLf{z-@31yqrIox`eM$$TLZ9S%|nbSkcipS2;^rDCXxMP4KsmM-gjfNtc?QV-hT z`vV;0gEo#RxauD&69GsF`=5CTS0cg%xKj9Tx0YDYo(u`TW+=ib@DuqLC2quk&bNR4 zellM7;<%PG9AO&}-T2sP8xd8R9&mi}_FC>RAAd+2d`reV`)q_0^r!?$J4u#lw{Ma0 zo?;E??;>Z3V?azjVpQWQQW#(gK3(Fg_sL)wA^%w-6md^MF-C&-BZx3UBj{#Gz9zu5 z7hjnKX;vRhn!aV8F9S-;fgN#$T#!DW(1w>R4U`5f4vYh92ZwIgNAO!UnonsR%oLbqdiB^8`hyze_F;Md)2-c5!Mo z#tAwEAdo%Slb-88&z2a=Nwp#VUhRCwrlmJ1lK#<{XO-wKE=e~`39rrU)2l04(Jw;| z9^^}o-y`Huz6QW66L4oo{X`e81=m=Q&`{$22aB=>@3f@jE{M zaWonlX=zBD^A_~fERwA0^3U&<1{ka>{L2i`S!J!6TJHd`Cw!MV_g|%DdTHi%km{PN zpnX84g7KaUM*kh(*g~UQgARsr$0lEtev<4zS*r;S&20%A08xQW!>nM8p%==S2gRig zio58a${-jT9agmN9Yv8Ds%gZn$?M!~hyrn01ETpDKt-_fu2u<>LP6EVc`I9A5+NR4 zno$8lkx|Ab8hm|L*&(}Etd3w_9H5B%)DUj*RAUmHI%t-7&9odRc7102z)q#h-^}rDfze`iXqn&gl&A9BIew*9)}NMYnW`r8<5D zRPP)(63?U_!IHH4W1ZfA^N{-m8;q)3NIku~!cF=U9}f+eozeyIQJb!*A3KZMM|Cm(7tAIzMQPe&&Y9 zSoZNVfXrZfyt2|c?Sz^X{YNnu%hBdk=5gCA7}>aR_7FwnJNTo!{01Gp+s2^D!cFXX z+(>2jePW8GwgbHc8E;1@B6XWSj+}G`!a>Meyj!k>S9Fi%6#9jx@v%$ z$*H!g9$j*JlhVaEDY$~o+#bA4{1&qeM<^SI%cn4P!ky2{tzwRBWK-!N*=F6+P}YlyR# zbQlNnP3J2g(-1Oz7Y&*mq=1k-@=qG1^*+agGZL&`c!-CO#w|6*4K>h2>Y9WM2!kl_ z0|H;gB+2twh4Gj?+bA1GClB`YgYv`|N_lkiKkLRHzSgg;wmXP4Y<~RE>xfC(jfi#_ zh$Be$Qz_fRnKgu$Kl0WUFTpSLs{!F&G!^v=?BbXDEuThY&Gyy9LdeF^nonUXy|1)t z6#}!GI*2aT-C}YZIXuI1L&)mV13wptQjWoD^`2DjPdNX=E9&Mqxp>DDV8xVz$HJAK zLYJuXv z?-mHP(OO#br*U4{5+ESY!KIGA;E#!T$n4DpWn~d>WoE&MLlMv>)X_|jacOo)Iap>M z9xa<3=l3qS+Kw|32AaG|yaaEvU`9;TO}>5b*y7ZgEtE_~XH1hV6_A;)N>Py)p@_?d zUI_&|4`iOX5l{3jL#~w(6)2Wmgu%5mf=(^DITMVs(WABjU>0u6EYOP{6Rka5l+`sM z1G>TA4I~qnRbt|aHL=Azvh~dFy|5@BtqlArMS4o{bq3Ll`9wTz#vSa#bqv;&gH9R7 zeOj8WI6VV96})Wl|GC%!i=S@aGS{uNvKuLJ{u3}bOhG=cC3Ri7Xc z-8FGd_tiAH(%RNi=iQsr#&;u}y+$GB`8HdU+~H=TwDy}gVwCg%hj8qNxyrb!&$Pv# z*$uq>+^M>lFfPm-&jtsZ+6@Uy{G~O9UI>`?+n|dsqnPks2)C|@FS*~vX<C8p~V*eO1dlUprxqXV`!`AR&RC+w8evuR8KzqaZG_XRC{>Ui{O~j&M zrjBTgC!bz`Q5k0EyR|MHTTdLZaH|*J2ToVJW{S{HGR((^5%}iUs95vNHqZ_^*a8V8 z=?Gxg((H<9l#IIQA0&Y(;)fG~@`)p;35sq~SD>uSTU0K1Z^~N%5pyVSp1T)Y*4Yfs zUeE~Q%O~?_0bIg5l!jv~2jZ5qB1Pu8?Ix#&7RE43O`}wV?XJQBrav}<;t`E3xtHF1 zha`6an}?H8ROE~VNckx82feD}-Kvv$THn8Rsl(4{vGx>cAA?iFWe<-meb*`gW|%{Z zIC~f$10{R_B?=2hIaxck+fse+INxaw&xRwPVfuF@eN#(h*6p4D)Ax{9bEcF*%4C#w zGmb0&hj*PX2t~T_k;^2QQU%&h%Sf#g9tKveSg4{h=6cJ+a`;oc}sY&XR-@(0vkujg;vtpC~YzOi;IytSC4`%45P_KR4$i zM=TBQU_&(%b!m8RhI%PB%E{Pv@htbe9w3(XaqM|3@;`v2$bXGWQ_IUM=>7(`ugs3h z`ukmM7x#TFViLufh$EiFIp7?SLP7)2z7<8(nLqkG6!&Z!A!|d)6<=k_)86F9RL72L zQG+RU*LRkVQfjue`mJL1AtV(G48Us8$@XptSPZ3vPJSUl9~)Lb|e~ykv|h;8_>m9kRSe33~k5 zAl)-=T+Rb-zxuZBM`zZMn{l~u8jTV<%jf-xoS$Hvm!JtL&A&L7L*9Ja$h@4yD>A)# z-kSpa4+B+0K;+9J9sEH^k`yygs5?H%hzogee}C%c_nGdembdUr{;cG~JUpsQDaX@^ zooO(+ne0V2oNZ(jBF)Q3Os$zsrt2L2A7Qg%e$bCcT)mfqkzQo^nky!BU-u4*8bQQeSQkjfr z{>y{S;*UY)m=aH~+62X!8kw(yxIvtFTx602aZ7j*Iy_RbFVsjQ$+qb(cT*@OsSkF| zSHkSpJj%&G9Qo*E+%{ZgbK`^yC$rOzB?_pEk0RPkF zd0=kscTdmHaXCwGHb+iidHf?*tQ@<))pIlEiBQp-!d`Dk!Nqcy!!8f;be`TK=p0p} z29VsD6NbwG0OAgp^S2O+5WK6}8TIU|RhBhfBR~QMKdrkq{p7B{eSrr3)g2l0`7UWh=>t=~ zr*MS$Fp3Mi-{1Y9(=9FegYXq-@tZEtxh9TabY$XT(Mg&#eTta8YF%pq7vhwIHo7nW zk+pNuEs*4B8PiDKiiv0H7kDKggA}qX6muK|hE(LUA0`scyG)MX^@9icwxL;Tqskx7 zHAi&0JqQp<$x{yH1({jCvBxc2+C_igElq9HGku)=x%kT7kEhIQR=^gDZnnIWJ&nQ7 zev0N>0OPv>VK8PysG)q3e0NTc3%yyrp@qB|e?DNppd|x87*Wg(BwgDQe}e?neG-L6 z;)zk9CO(llUQ3&=XJ0VZ%#Ho#?zbkXXO!kqnA$0pG?_r6=EPR?3>X9lGDL>THBe%B z?G36OAKC@`YQq2mRvPkSlt<(?8xPWmLHZrG5a&I~<+7hLETS17SnGV6)+*8uMoCGY zZ}~7gH#~Eg2G)y$}uQk^9LlsQYyWArGK!i^4YzHb`(g{KL!= ze5so!KGzgYW$JoPf*-`5koRp@)Ok>(jY5*vfYgmMov!zyI59qNfa&^rElUTuKRQQj zDN#$@uSvp6;2_CL#}_KPcNEuHY3!xejWjL^j;B3J#1SJ{dN?I@OBe+eqBBZUJ|vG_ z&RCngrPhH}9-doI?;~S^?#V=fQHTL-@ZO zZkVoMc|lCYmYp()0*dvOXqqZ(qpX~amOldAqN-bZ3>Vv+Y8DC8sr1)#@pSX5(b)J4 zox;Dih2SV0IkI?bz7aINr%X;W&=Q}hgXwy+6v;G02GAaH5#A!=s+5d?p#i}6O(y_p z22p;8j-QC4d&3b8Np8TK$L&xg_dIWUU6A}uqK%-{Zz%)&Hq5azUjv#HK?)<5sv}x5 zE9+)@_j%>yZH)mR7=$*q)O(KYwylt6CVaSjC`KWpy}Qr(dxUzV!KHMV>Fk%aOEpOQ z#vk;Drp37^YIa%J2U+ae?~W%{Ity%xxs7z~o2wqnKH*yrAiWU}^K2BZVUzxLVmUK970)|E6()fsvNH`Ui zTa}JTp}J0TYYyUV>KNzuumEM%m1IHVY8 zRCJ5Glk=h(dzpDXR_pf}4fuj0W7ouT8l2ttTuY2X%a6xJnrGGre(u+oi(e8;RePW7 zz{c^a@px%OQtwSx_l6xe;p0ac5b4jS`XlU9Nvi=c>87Yz#sX?1;hV}J3JQpk=*{y+ z6@eTfIckV9RE9)XVHaeedKCD;*r&u$TD31GNZU+F6dApp2pZQpd3H z5em*m-MT{YFd5^gxSM8|9IDm#pPde*^;B^oJSp{XFty(yOA|V)421p98+McSe^^XA zVVVD$Q8GA<|6QqRV$`m#sZdKiq-`{wx9sen)zpCh!H7fMRK>tSK?GYP^K8q%B)Tdl z7!;bH6V^bRmOCfsdQ!MB?D?7clz1g);2ApsNB`NU=R2g1 zZ=JX>`&pAbT_0yp&+&9`nIx--t_-26AI^?m`pjF?Z|rHpj3u59np@ZW4}@Q|VQjSgh@)UwujRJ*amIAb z(Z9!Z-u)FBFeXNbpGyV=79e-=U`Mo>xrgL@SABH1i&~gOh@#Wn^UQsMikXJuCy?UD zn^N&%#z{|iow^XBb_?kNTih=OD>4*1Kd)BYWuI06MpsW9IAIE>QRM+2|6W5j8-1*O zka`K?WbpulL=edjQY}=Cvx|XcJOJy7rt9Ff?s?sv8)}1-2r*wWA_|$0@)At62t4di zTjhlma;5Ox=3I*8`P)|X9OQqvTEA$N(NvtuiiOGavh-m1Bt8td+LT_=YOXUhuva#& ztPqzPwAQ$_IAh`iY$J$y{7HwlPfDqqAs8A5-U0=4>F=v$Pi1AoBl7(leuJvrMq+u@`m-~Er7!{D5 zH;M1)`QeRv=I;%%9k&JzQ|v0*%;KzV-ehn6&7?NtkbU{Fit9)&iDfbl%wB{KnKBMZ z+-TySSjOJIrF(5rLj@uMc!>>$>7TFUS!br$c1Z@dhYW~)?>!}Xv+b7eqN#?MkY*&H zfFq|1>j**^l!Wxvm4LQB4+zV=(=iP+ml6)~lMx~Lx+lQ&zrlAvZtqf|(RP(oPL4a{ zHC~Iivq*QOqG2_uCH8qQwaFM0{qPe+DGO` z`(MY7$F9!7jazZcsEF}W%s^GUFx7-Ks|Q~81+hez#e6fa@w=u$u8+hMEhZk-eZ;#8 zu_d8pJ?qWXjrX#v?ZwXb&1>f`h~PPv&R@)=%7dAGR1=v$b2;;0e8Mhyzpiw8-jr(} zv+(ojGV34m@nDanW?e8!ylf+~ULzPc$j6TF5U(xIWe#lUE#}{|$6vjv zEHY2jNu0%p*wlrrBNS63W?>q7B~3kW9<(c%awaP7a||^jQYGT=YpE2JQlL1Vg*mp{ zE5{H&3AZ9N&}0Xw9TgZ{P7?pwn@-{keUtid#=Ve7-=G|NsBu*Our6p7@~5GZBgrk` z9E=6aqI=>kT9<&i64diGr=Hk?;7VW9c9sauhe^i2n{{64Y`OWT2{=3B)x~kFp$AOG z0^Auu)o*U8aOid1_ZVTyj;oBvTeO|WWT|udDa5ZZYbP2v&>lR%z9A$TiijUV+ljCA z8$2WRUOqbTCwC}j$eDwUfXVjKV}s*;l1q^aoZFZ>s%J#^kAtvwOey%9@ywbLf46Uc zZ{61H629X@RVqpfeN{+uMGNYEgvadf)v;H>m&Tz@`d%IHj{;--03_lQEae?xk4vCk?doimU z7^j$_ESYX?tfY~D-iKhX6BiBKeIcE!(5^f+88sl658naO*KKyc*t$dZZD`W;u{$ku zY`-2jZePaN-NC4v?YP+v3BD&nN0KW>PV=+fcjZwPWbM6Up3g{ztNONS=6gI8=UD^- z_}5I9Z^5j+Q41C10Tk#$mhDWX8?KU&e`Rq0$j5phQ zcOMib7zrq;T}@q4Q=cv$@`T)>W_gF|9Zmw(Rt z24Q8}Me&&b+xJtjKBszAHeU@J*JobzO@`IV7o(IzlH#=53h{Gxr_adO!&5rc@(-g% zcUrK$ZlCHpy6*0I|AN3&FFto2wcPeQi_FN;RlA2NmNq7zc+KzA?%%+=i;N!QniAW~ zGl}dM&31l5F35uu$7f`SZuvM$G0K)nf5Mw$^sBBXq+a1+1+=+Mv0VnL_iVTT>G!^V ze%<9=>5f43mI;>>Ym63i#5H}GY8aVZW&QlQdVMcU;Pm>HxwrM~&vyeE2|}kVQu zI!}WphJ@UNQt-L4smjRS*dEuFqrBHDidJJjUm2(``d6_y@`4}8yUk%g1; z6INrDrKcizu(qhI?9tJEJO#x-?#zIz96-S)1O1><@OX9Vcw+?jW{{1s;KiANL%uA` ztF>~*;z0}MBble^7?&;?6EV`KtkCe1=ZWPPFc>;?1yY!=DYA;jpVkW%*1HH9URPgn z%N?5HB&s#unO!)2?QF=OdDUuK;=;c3{r)Df9PAiSP^UI%#0WR*IGp1qYoU>1%BpKN zz99}HYB*mjhp00@@-d;;EMmvngI}O^Rnf=2Joa{+-}!Z_z34N~;g^o<$fA~4i_;f2 zCMKpuuCqL-4H&(RoSX@^VNDff&_JYS>|IB;R+hBFtC|GW#|PmBIh^y)wL2{Q`LmGPpzzh-gTI&fG=%IrNQIZ49J!_JoT`5@@d*UH{MsG0y6M`VF1l zL;vTF<6b0@-4A=6e`d_^#wrF!kJ-29b_^8HSgA@ychhE8YpQE8k%%0JyLe+7?&FpI z>MCITR^HBuL@GvJm8)-s{?q4k5kVq?CDj zFzX{pPW~@jr`PTP@=6cKOpY@Lyi{F>&u=}n?Z3WkTRyTjLYK|dUzY`pRLD+3Jx(Ys z%Jj`?YGSKr&{H{V0}l=xLQE?bh?NeX0^Xp)PNFg#SH-4Pz=AG>L`1R1#aD4g2(SWzKN-}+XUsfPVzP7V$Jy*jQ|rQ>$!!Iuqd#hK`6&uAUbF@a zR^2n@aocC|UHV6Y7vY`C6oaI}MNGh&h04ADr$p8|%B-R2m=Z15Xl{q)J`k zHd2C-N?PhZ%l=MFjpX&~M`+>MMWfZfwY`7Q$xtbpb1p$tfb$l6>5~u5cEjg1X#3y` z>m4`E>03?f=dKwM>!s^E=&?)VmK26s*Xk#sedCKjfxPuXJ6ttuI*6mDlC?NbRyuP~ z`RK#JAlQ;pJNmRzGy}>azn92BbE_AJeX!o2gjtuv+O}&*VVE{+`4c;_g85sn#01zbShRou#7)U`8(K`UewtIAj57EpKsl?4?Lp12IE8ifXXqcACL2nRrI zc;NBd0$Eo+4g`Rr{mMCYrOS?6yGO>=vY62c-*&=NunF;#nqkGrr%9>HpV|OqVh5G-r-@o+(@k zf=(JHmmjdc{Y?jp)@HS5AKmBC&pYKyFPEx@V*fzyj3lIf2u}0)`RZ{B#W9Wg1*RE; zao!D#Dt=VgESHStqzVv*vbMM~;Ig0q5bSFDLa^HfK` zJ~}bw#bbqchB1^2+$6(Z)a&?{Jl#Rg;%>2KHNoth1rx%lMgP zi@@h7SXqyAVcSbg>@8wrHAvduUhjFhwzlHS^=`v|2e#$HrA+@LAfzVrNVsxL{9K;9 z&p>lZKHksr8{A*A2Iivo!M8ByB|3%!gvoY<4J^t00%!0(B`l1DlF|L%b(~5Hp2xAR zqwOER1*K`qO2S*O_Y8OnPJmAKSJf_88__6%v_gd#D!TN1sq$+}3+yWzlDsXW*{N=FzWqf< zMoC4v-fovxv1g+$0u5_h@d2cgS8_)zkxzmJOx7p2)ikYU#LI6}i|P`TRQ|(KTpbfh z4*Fj_29m`ay?*N=rDa2}GH{=y}d6za2N zxTQl|fuEccGG2rJMhK+L*kuUYC6rBmn>!I+`x00F7I!?Uv8OR|-*&e74f6&9NiWG` z?D-1A-$XGHsVL`rW}UhNV_1G4q;iK~6Q5ZpHYcSd7-sR(JV|OhTKJluWz!Z=A-ppujcqA= zPL8$>{7(Yo+ykZPowLfRUc@xNL_N6`UES`EPBLOZCdB| z5~>qmq`&{+{c*#cQ_wcL@FZ5k=|{mjg`HUOoJbQ@vvm%d8Y8Wp0g&y2z{E_>{!)Qc zDf%%?D}Iz!yk@@{@eFdGME^c0WN zzW&hD)2mWG$$$b7%S=>1F)j_>xdxw*gRJp>zyfE1wcfk}x*q1-h1R9u5$E1SE;*=* zevcOC(Osl`gnOP`=%wt?-fkGNoPmhyXU zO37qb6fI|!Mk@7JH+V%CiHUW&Sr8@q+iec#$D5dzsmemQ8;FmSPR35 zD2LGKMbgtv9(E?DNxRP%(cL-o<^c5f4bc!7fdfbh{v9`81H}bt4>YE*Qswx8R0BPHG zVBHB;NR2iI;tq<}Y&Q|QY1+Pen{=*u8ogNcJm-)1JNeO9w4oU0kP6R(@;l$e8xDq2 zG}7kD8!bdiTO<6(N+Tu@Sq`{iGx)YM1>)AGG;^g9@A1-(K3EHLt8)Wu_yY#E>s`zQYp_FlVe{8Rpb<+;Ts=}uUw!1_A#IALhGSChF_BZs_H%A)We&3L&GIcP^tOKTL{T(m|&{;V2}}>*WVAk zccd2Q8yKz`nhqSV;atiM;|YM*Uu6S0?#z_rk@j!WAa zkmEZZ#HzpvN}cP~zsPdM`PEjKOk}IFx)9D^OW?BAa9^NdieAW;G__!IQ_MNzo>4}r zUXzx0XrG4Z*1}6ZM3q`TLz*%plGLe0;~=iZO_ymSz8{u8*%dUkiszVb-%{2#@cU+6 zQ!0J5-N9i~?wwmj(G6Jk_{9kWd0i~bbtF-tBPrwP@kP4u&>A~7airdS%og&bXYt#% z!g`G&wx&7!gwIXF99Xa-1$PFvEV~H>wbitLaNEWTe=_20kxkg<9NTpxV$8M5Eb5;4 zMoVm1ErM1uzwv7b>@W&Hsrrhmx&KnTr>qJlDAIi2gX>$=9Vd0DM|kl(h}Hi2cfV`O zXDY-$$z&1uAK@wT3`UOOG|-_5^A|W*$y<+z8p}M6qkY1^9VkVETePje6Uy7>_4q|r z4I3xWSH$)kC5%(q@pO*oJ{qfQnvd?A{o^J)@~Grg%~@MDjLe03jE~%3x9L8YStxFi zu-&3CRX>-)idD~h$>h=;QQ_wRnir5;JqURq5 z25MY0YOS~d6qKR&e0x1s5}02mqSQvi4mppnTJCJ)8ftBtH#_oIy~bI4j5P5T&lAp8 zwH{&x>R@SKJLg&+zG_6s#$NV+BGNXxw9m^m>zQ_JK6Q90i*B&sEcZLVk6f{S)|+q+ z=-7oZ%T>p3aw(=ZS|b&(8*gpE*DxlkTp1y|@7elBQ(bCK05oDJY_|$OdE||vq}g6X z4{Reo;cC3<57z4phC^-4WX*>`^0Ob7_~oq4(PqUGQX7Z6p<$);I{jmIfZjqUof&Uk z+Zk`FBh7rDX-`du&i-p=S=d`QJlJxQBt$5={PC;Y)TZS8B$S@9S z@(nTuMWOhjFLAk=%!scT`ty?`KV=^K`)J>N`CW0i=m?~tEpHBVl>_EmHCq4eaJOjK+pD_5L0j`$xzkY z=N0oL+U4Mz*iGtS1NP_k@opjPVdhc|@@@{vg~59C>=8f1xz`G4uxR)3LW_H+opt^} zloMiJ#SxqMlM!ZpH@n7leH2D*ODM%igDROV`g}D4mz=Dy%uMq&^9}AhG+3y9!?~pO zPj51Acb#zMqx&j+y<}mPHLh+MRAG=n$*mbNAv$c|LVs0e7JVrs`WcmDpBF89pG)y) zBDnQ+k!P^wfkqo)aB+~Qiz`WaZX8xNT3B&8GQB^HI!t_Pw?uH_Y2Ht~u!>+kR(50a zz$J>9Tkt%&Zua{)wEf%Wkfq&QEOlHf(^nhvhY0rDw2vtci||k>cTopwYO))xr(ViN zA-~oxe(y>CbgQ*scsI2bH9*v;)RkTpWkIB7J-IJ*GL`;_4}S(bFDfje?0#!q7Lf_n zg4G@)Bz8qOtod}9^oh-)1j5N#^`LMAlD@xk>euKD;z^=N^72hH*&6A(AO~^3)kKw} z+eM8S7$AvKEwC_ini|2;ubp)(QrCa_2G?wz>Tk70@fuRI7EwU}%C{|Wc$@kX?Vyc? zSw;Z#$=Rg9z9G7U5>Tut1Dib{h7ePn4aDi%DK~hR2Y=}xDLUeQv;Oc-G4c%`H zPG=2nd;B8JthALNs4WLp*Djs? ziETLM+5|9B>rVrDQnVt;yuZ+*?BA~`i`RtFIUZ8$3*b6q}2@B`rp*$kl zgId@TC1|LH=mY$rrE{%XKT1t+%zYmNExOaVq8qk3%R%<3=qaN#U*s|!U0G)*H?b`tt8LBGgaH>k(Hm}fU9|C8GG|D`KbA6AnRRZpv<;h6?m+Q@(MM^X|j=+3z-cg6$MyK zAcmx3?h%gvA4gZ=7Uk1LU%E?Dx&%RDN$HSOVnL-Fq@=rqr9m2zh9w0A=`LxIE@_bN z?pk)g{e6GHKKsnPcjlgZ&Y62j{$B+&Y0cYW1uAwx1@#MuIpT|Ss;g$cR{h1`sA1Zy zsn9OFTNyrlqHRJ-7#1u^5D^>Z6_V%ZXYL_uua`jUl}<|=|HPS3=JU zG8&EI%23j)iHhQS%R~?jpT}*gV%=w>$%lC^*%F+HnjsQ#eZhMRj7JRO2&}AB^`As0 zOH=zNV!{UK!Sm+aB|9;et1Lg=GiN1?)GR4RFK87|Y%8|(zO8%j>Z3E~$aAuBE68ag zgLQZM&WlEs>TB73pB1UNOxC#8Z| z)>QJSx1);Z#JNs+IrJQom0<}{|=+%Pg<+g1I_ygCSf1; zjrd$)^DD8>o09EtO36T{{U_0~EL1fG$=_vrNh=OC`a0sgO){;u4V$+oILuiJ{0y<1 zeKr|finT^~PQPOlhCGy|>zU-+2$ygExeeo)IFC)9RPq=f!1{Ce?!F+AQt(}VE>{*x z1?d%SjX-D>otm3f_iw36*}O=oco>-iJW3fsROe}&FtWL?B`<8FzxC54pZfosREGvcJJw{eiqhHg z#XZ5FUYUzqPZ6vt?*wa@YldsiJj6;{o>~0OyAmtlB(4ButPS1D8Wk26*C$RwVfSd8LjUYLd9My;VBwHOiph>Dw z9>Z|Rapq)%=lkm0l!9AaIhN?1vaIJ=ox9<6M%$qw71B+REf2yIm2F9-GHD(W&L<0p za+WOohKLqnb-hqc<(c=glv~m)8(CZxtHw4)Wc!~RKKb|-(;^v{U-4@v6h3^;nMlMACI{k#NWy68wZk$460S^Y-8T=r9Iz)EyWXHF@J7($}qfuUC9;egV*C3FMm}ghX)5=5!Y4!T90#kNA@f+u3=Zd^} zjV)_8uZ2$2RFnv+1HoLxqhKsWWz7ssBHD_S-&kkzh;uMWE6I)Gb%Dk~-M7)%#8&KI zet&o&f7V`kNX$7L|6~S-ZHLp7WWMkeuJxY$G%!(&R?V~IaPRJfM!PZwM=KWcW^=&$ zghvR38d&VE$_uVY{oMy5@!#;Zv6qmWw#u$~5`Lc*1@CNXQcr%7MIYr>%gd|o=WbNk z1d$D$iW%=ZuikW{v5DyK1+`#qO+5UIwI&D5Xwr(TZJb zOS%0Q2Gp_o6GEGAMv-{Ti08C`>R!cKACoop`j|(+kDp{tRfjU(oVdcwrwD%vUK6G1 z=*yWq`)A`3@>fNAR@9GurY|M9P+eoNLq3*5|HxcLHe;<~dIueGSG6J5`v{rOv+A=^lC(LJtrUJRhnITz?`#zkNet)>PEfc+d z_U_ zN+!K${tRlBzgadA!cZfl7sG?NiHugatDT)|!UcMGEmqNQ+!7Ggvu|vSXl+N|PVTp? z=^4R>k>4~38xR2|3hq|r4~)x;D0gdz8Q2ER+vE@Mk&wE{0cMEa$y4A7bk0jB4mE~u zlW`sm4B4@$p*N4JRp6c5R>uLry%U|3zfJ4<2cB&mL*=>$IWk4ML@Q>%k@qu}Oe*~z zpJdNBn0R@6vODa}t}+5T;$$a8E&^ob@&(qLHm1j@Y{%99e{1{TRsks0A2-CFgy8?AIGtG|emlXC%yA0CRa<<*m&3l_H z#mlsRG(FoEY1aPZt__(>qOkr~e%z|q%>$wGhs`Bt`ftJ{mtqM$7IwH|LF&(_rQfFS z+Ml%sYC}qH;)5Z7?sX6ADrKQ`!D%fkJSdJ=XY+E}TewYKXIcUJYw9?wA_xhK8RQBm zZY1>fK6w(Jat&|7mmO}w&3g!yMLMdx@wrbOwc6fl^Vb44gwM3=Zw!c|#gS5l*E#IL zL!uQ9jY-w4p#?{aYd1d#pcYcxqTb?%ukwha1mG~{DgC;_n1|xF2)p>Jqc`O83FK7^ za9r5u*Y+YQd!+O1sC0BSH~PQ*P@0D{AL=JUwha6Xq|`#B<65k+4{*9{tyGrI_nxO_ z;!ItOj;7nbxh(qg&E2lG#}KpyWBCtF2*Sk#DUc74B@9U+A^?3A=d+TNfT=6&@4llE zClVnOVs|`xqrdeI)%PYfYpBMe1%Wyb-4++!e-G1#lwTNp;k-mzB(G>z{CO33|#Y!NEC5c z1xetEN9H&qg?b+ig^8>Eg$MbH^lfyG(d>`POWlTFDGL^6)rpT;vosiY8O#v#_r>S8 zGB0;eKkawoc*yIx{3%_5$P52n3CJMaL;EWw%6?xo(f4})^Np{Nl%Lwer9Z_eWue@( zM070L%KulaNf^i+&7_6!$*$m<>!=Cw{N#5Wmf#wXUmf9Y=-j^!lspd8P%SIiG%S?q zrefk>P=GxWI|etlmp%pfw@|lBFa6{Ar*GQG&?{^{Ge*RW;%$o-8koN z^27*bN{nsx;1vjY-VNFxFM&;?5d7aWF|+_WwP{15^W?m zPFZ7KXs~{~ql}&)0pgSm)>lh*iPySZx&u5j)FY5m5B$EY}nnbzc6W#!Y%rc21Bo(vZ2wkD;{)t`Tp`nN_DmGE?~ z{@wGdi!VZA?VR}M$h_4QV)Gr%lvE*wtS~0&$Bz_+jQLMlv2QCJI{dqSVEEJj>hta- zIN_Z2k18we%Q~O?wDIK??m71yjC=Y^%l2h!d8cGZPoZOS!IBh5I_GhtLXw%DAO$5?wc93k9Xh4KZ&cj@>}1Yy^ttFaoNJV!+y$P zq*bD+z@`d~k;jG!93{bBGb8Wa?q@N!P=Aa`Stw-pVh?t}zz1q-FTq=QVb{zyg$Un5 zxN!f@+a#~VuIK`zM7%u)WEw-oaC3hG3rh8FnJ)k8SE@!F*jzK0rc>H!+dJgFYh3^s zSqiDQqhH7FZQSk0dB`Wfb+`RHn`^UCFkBKvEzPV4UUIMGd?8z81V>{K_PD zeEe>&U52%D*Au}0IrI(@a4PS+;y2{_;t`}+!TbC1`Ga+ z#9w-~BHHwc0dK9Y;Y$W4CWIoBFp%8(i*g}C2#FZoL;!P4zB^H50SKQ&2|O5Aivv3K zBe8+4pVlcf*mw?OVvjhB*+DS&=xP_XCwyWQB+l?%@7lB=zoK^=%Ms{8@<&;RE&Zyb zJ>_0>&H!VWRSurdr^n-OFh6~zH;dH0(iuka(zkCJ$@4y6-^w)Hm1 z=UE>6HyxW!#mi+^U4!XU&2#?tnAp6R$`>Nw0F+$E3m#~gA(v2_1UP8mkj`W9D zFmvyWJSrF-=rY+o0qXY0H2E(O>?+#DlduclfG1aKHJ&L6uzTW**rmLuY+Z3cghZDR z&F2_+d1}|rcI1oR$%`@<^S7i1lv_tTj`J9H9R3sc;iWgyL$$eZEnnMz4*6)<_y7X!PO6``q!k&XaQx-K!ItpJebShWiM95NPb_YjVs(L z;QT_ZElu^UiIoC0Eei4976k2x0g>k_+hIdax7p6l=zS&WnCF#c>lw?cAxnh*n?j!K zkxez}vkz~q_YaxDCI=F7CW^H|Y+$w$Y2#N4> zI`y=cPqgp3Ig{~8^7*fyo_(y~_i%f(UMIHiE2Egy${#Hi<-@C&#HC$%Kt~MV03tJr z$3vpl;#8Gof=21pA~s+%{5f@a^QRFNk<=Dt)bxR9RMuZ7sWXy2br1Yl+zk&&+R3xn zb4-m-vUnBJ3>DHu6$86kWgVr99sOgZO#yjvA$f?U62uC0+WiI2FHIfLX_Ga5P&Gn@ zI;L`Z`wsJFl;exypk$kNFk_@szpx`f;9+Su3a#bjs(3#&p|bk1>jg%vH~yZG>}Ch9 z$=`R`R>-eJug+Uz)1XXIK(%C?qR`?$PyUFYx0P4_A`^gApgDSQr?0pv}F-imCK3 zuDwm#_pTJ(l&%)rWdIwL`voAoxlh+&_fGh=@zf=RJJh#$+MTIl_q;EAe9=h)&g$5D zyB;)Bs{eG2ZWz*SdrDyX1#|qC48Ea~FvplyGi`bO^e!1LEsE+q-YX_52ZBj=wsoM0 zhL5i?>*4R}3C6qYO+eog_x4wh5&|?gfpkXOJ+@pi(;s_ZU;*c8x|RAdLn9c5Es*Kb zFG&N@wKkp}&tu0ad}>sq1i7jo`<{L;M-Wk!iRr~fF-L1rjFW1N6&nuW4Ilot_Mir+ z5r3HqF~LH7znc2O_R`Dawx%XPR{cjqs4QuzCe@t_a`O5W7L8sH&e^nq=ZJPQze)o8 z>w)Lmj{}G31X8X5G4=tu_d{Iyt%O;c18DXIH3C#LdH1Ea&Pw4~ugL)r_!yg6USV^c zLp^^o?%YP#1UJT=hTSHkA=~2ZIm=)LR)2Gtb-G%NR6v-He>&})faECDZrZp8pt=Ty zJ=gr0o`e?27#VAUM+eZ#?Np`Jqp?6oU_dKyW7)rdu`NE_RZi$z zEakgtFd{03HV{^m=G0)`;^E9&JbqXQtyZC!91c5YbP?an{SQlrM%^Qis&2Xrg4FJh zRo~aLgrlw+UjBv6dZ~$_YYQ#C&i2H4-v}iO=a~{w2{{k$V>Z?L5J+%z3&UE^Ja%b1#v_J~@9k)J zaEm+%SD_)WcCIOt8fQ-uHC~?7xzozib&qH0vdhm6wgHg+xG*h4pUa{+(m3R_T4g}> zJE~vWF)nTHUBC4CgsuA12q1z@pk-<>d~l6DAexOXm$L}x;@PNAQ_+`3 zKhwh+GCh&!J-+mtl5XO`MW3&&{k-XL%VxaR_*%mckArT4`w<jL2XJUmZ{W+Z! zmGiUYcsxia5*%aa)*%s-Van7sd&FtS`v5XtnaGH}ky)#iiE5vgGQDsrvJw)vLN8IR zpN(eQjNA&sz#Z1;@4_2Qm-|=w+E)FH1I{z_sS3W|F_H?rJ^jBr{J5}z?ws?_9pFX3 zCFuwjFs2%j#{zEC7$|?ae@M9@d*wCk+kU3kZk2$xmV}l&`35Sd!6 z4d_?(%MS@emK5#al%CtcqaC>#+Lf(IX3lR3xNs8m>T~;0BU*LHxM5VkPL;S--my%P<^q*L(Q`_o;8D@T&=ul_qfD zp*@y|-Y9Vlf9d<{I99`cMk3fRUGGsQiv>`3i131|R-0MMmUl)zd$|4WI+wqMnrwF9 z@4lf@U-I&cXobUvPw`u?3ljQGOr^WDA>;GK6g69_Z1Cr5=zt=llmK14$}~^;4I_%b zf^9jOCsxzS7y1)!$4Bw*)%z~z7A)>2IMi7VPGiH1$Xp+ku7r|ed?3&$&a(Ywa3Zs_cBd-@A26 zg~3UC3&q9g?7BgnV#Zp!s@BYKm0l#4``Sk zZQSMd5f=xy)R3A-QEUy?P6cMYnEBoPS$to;#su*{3MJ-_Yb^_yxyOa1u6IY$hO;r#}bB7k%bt1 zx^&cJ<%DS3>5N*QJqvHu$)fm~{~^t?K*783)Ts)t!H+K#N4lUs$(Tu+6r-sM)bIDC zWr+=X6vcri!Swx`=7q)0qQ-%2^$v%oCpji=`|;5G46W+}WI97XAD0Qk1V5gCLXAZT zkd0pHLD7|RJKM&Cac;PvLGqULN#}@UjZ#xhLG$T-KW(zFDaL+dl8BFYQk%=TGF^m1 zm9!`&Hko>eZDk;=4vTSZ3M@I%{DUpe@Mi@%N zz1%|eQmb@^<0G#jHrGu=zjU~P_$`e8>wwB8SqU?W%)~mnBD~W|A7|QDW$fmu77nXKQ4yHw{u$+4jY=y+mzZeC(-nuKU3h0R91DpyG!7}nU{5Ag!9duk@`ZasfX zJ3mH@7jC!ltM2l?`GYX^SVW^X+5#Biaq7VOU5`RysAl2|y|;uw zFk?dua{10?&bE(J7q@DSh!8U>1s&=>l+=5-vA!ZW$2PtT z)Z`O3qz&|VsN<=eA_$F%0IV!6M8^>OL?(_#=92KE>r-Bogpze&INqb|OxfBSXQsZ= zJq9X^5TnN1Epex_BaE`Lr@3zFCAo&}TDISWhx>r{aiey3lbK$3760^cp<#iW=KTB> zks?NiZ*ICT%7s&m9hcPCI5hj)-P+?eOs7hkCQ9x7XR1HHPHl@)BNV9Nl6b|b=dc}q z+8iQ}^bf!PI~9Y-Q&B~lyjIF>IVl{|#$713l~3zjRL#%BS)?0iz0|(d+f%@y{qYqj zhG2m+R5P{DmY)0Hr}GVo=&rjQBc(I{qM?m-Ds>vwLYJM^Y#2VvWfiqecFB&l1TOKi~p13^NUsK^E3`FlSd0>O+#xXXB zvCfZfPCg{)Ou2$w@d+R!^@_#uZL2zO?Lj34rk~&9MvGG+9+2Lm3UQ%ep&jDi0R$H0 zW<8&ayM%WhSBv()2^b9)a(ye1(BFXid<&~B^Y)bNn~fqGT2LlNcNzHao)j1iy9ndD z`H^^vmq#S3BVMKS7sK`Qb}X65M&6_dP(?>VEuWfo-U#|VqY&^-sdm`g*XQ|Y#m@Xr zWr_Y1InnQgMYcdB=_&eA0lLS9$DAtJ?&{DAl7|ere^n>~+2@Lq^m|~^#cTm3v83+6 z$8uDHr5*|^ePqAt76+WU3*BU&`vh7b{J1ge1Wu^^*a(B;P1|;)q(m2&?*THK4A~NO z5aLx_cfd4)xy|dr^lZGdAv?r8#Q$jhVOrNO-v#)>^}D%G5L5CbOhjq^;8b^eUz0i} zeq(>erLCzs^oc*%Utkt_da%u-7i_SA0c;?M1lWd}eHwqho5mjDgHS{76b>IEA<9AK z*#3!cI)uOtCeIwAU>Ft5moj-Lq5H3G;9_E)BWlvNe?{XH$*ZnAaF5G2VA|ks>F(Lz zkiejEyp>g-Hk(^#C-J1TnQ+l6HqJ0LZax^C^l5!lqLop&(sLV?kBvw{h7OntKtKG@FQdR zHPXasm4!_4WEkPxGrcLxqMcey#F6Ao?@UzC% z-GRtgpu$H(++RK4o_h{gJq2l9>jDs$;KSil2x91GEq4z4xx>BEoaT!5cgWuv=O<@vX{8=WrpNR48;q08rX9?A zddk`O#wsa>F7K#&_@JxAU=rhd1$7TsbC`PLV4F|zeJuJZT50z&$`|zZo zQH+&k;&#hNuc9hETk4cK2l3+-XzT`2Kv;6_J+_I1w-y~aa$5#oy zg&S(b;TnJRzN_x5-S>9>g#B>deb+ns*+hYPUSvF1j(o#fbqGa5+lqM+IbD68MwsL} zq4B%oRwtU2Ni3vY&jw~;eA2LsjNtek^i9ma?QS4A1T%Wey1#GS2RgR7{SrSy3FW1r zo?c;;I^vY!4qul-^8M7*8^N{uMATtD2 zR4jYt-;Km3q6wUdx*NOvNOTq~nQ4w<7oaV~X?5$ZGxALjxMzJ(kAfT35Nx_yI1NFT z_T)6XK<5Wq4OTi0R#{K1_upIJl=v6Tkk0dK`t*z@T?l`DT=VqnD4K#)44Y$XKQ(h+ zy2U!cL%$4bGRfMoylHwyEImA>bO07iblj)W>nmpfjVU z8^c$+d?(vCJ{Im#q8HNeHmGBTnRw3pdqn~!)>r)2-OIQ6_WsRGZybGi?YpLYD1BAt4iiYBT|8ru!5 zpH_wU^=BG?%NG00Xp_x`(`Zpxw~WLON%*5ZZfVufnhZp**QpjneANH%)5=!45CUWA zJ^GySl31*!;4rJJ4hm#dN-6v+nkxylYxg;{LV$ zsn8#j^&HSC!!%iyHj2L@`nj_W^WFrCGodTG-=-$TSX}<#y^BP9+si2s$2U-rTGHoj zVsu#;8gf0IqHY*-;(I{C`}RNvx~i6IGBM!K8T(1n5+N|6CxLpO!>^+L!5xTE=iS)v z+mbS2J>La>kSc`emqttIz3YiPnjIsztH$H$x|2>g|hbmo9IOX~nYJDSt`bBVM(&AYj>ZD#W*=57$j< ziDt3q@upqNcnKY4{D>EL$P{r0lW6jRctCjLkx}Myc1H&of~Idm%^p#eioGTp+PipO zuFjj|UcUb6D&Ug3tlhs6pI;p>kl8IVt*_RpE5R{^%?e8xsf@4%>6K=2k~^WEiPi{a z?K!)aeoQP1KP33E*&e1DnD}V8x%jaWyO-F_9aA^v%_vFCM0b*xVTX#XSi{P{`Zi|r zDOb8CoegFjW?IBZl3UuBo^!*V8(QMIV+OdX&r{JT!w$@%tm9_RPaNH)QsTxJI4p-x zxJX%-If_C(XoJq;conT&B9`~QTmoKSa3}D5lQjmPI6lGaaYwU?#6SY|%Xo*jwwazkC>rBfiuPtpk~;c(z&y#D zcMf6>i6c&I-g4w=gn@k&a7IIAl*h1L_uI#_bbR|t#MD&_ge3f$Qu~w=O%aK@0WU z(qqF6fa<=J*=_Jl+FA5|{(<2}4qjtF<>Z)gA>rNh_9e$EC=dY$8z%ewR2kA+Mjw)} z{Fzb0rB@@EQK(4;2y??PCYcE}iIhZZ_#gx&FdgRQo zi>j?l2jA&03rl2_!bN9;L--uz$rr*nr!H%h$K8Lbr<)I)?U5R7Sr58?EbJ=$)2*ks zGbp_6;wYh?`s-qwj6<$Zkbu2(}s!P`y`l|hpHEM^m z$6t2X=(>Au0#&K;(qhO8+U+5Xm)=3;s7d@P&+eEb{J0+5DT1nG181DlyQ|cu9U8N5 zPV%;i0;<~nsW7SGKPp+DOVvNH&~r3a&a5t~I3i$7#+!`>PwP@q*RJMG14_=7Ip2MJ z@i$xDMO%h~2Z?XS6%x4+AKwupcc|fFj}C|_U;OOi4=5r~VpfCR#F}OCJpR2nWpZ@y z-3iS5nzqVNBPLB^@Tex^lfGl?orE!+$(3ao(#4M+i)l$Xq>6%zKmUY>Ps+Xt2?-)f z+a7%1cloMlI5-GNE!EjvCBJPuRq} z0rd?*ecbY)7+viQc#tAs+ue7S811&rjfzo!!U<-CGiI&<#HLq|rm$1H3gci?Dt0j- zgMJBlrT>0WQkZ)l#QhZ{L6V#-Fe-vA&O2rEjmr^92-|-fP=V2LVPfZBFh_f&59o75 zJ*<8@yByuX*sE-QSCH;#8KFCAoSE|a^{-h~JZ)zX+=K2R4&%(Zz2@{*OPXqeBskmf z3r|ekwrBJAl$y2xdbKfLp+E(cVTpS>tU!yP_0?<7->Y7JSgUV`p9ZUzJ6y*Q*)wi& zLR2=taW>W`LZ2*f>9nsQWkVbO^xQ~Et&i`h*cvHFaH*Riht~nf&&IHoCA!%Sv3JP6+7-@E%kKU$O>gTttLbI5 z6@Wk{;FfVY;GI?|o;g>ljkV*=z4;Jt{m^2uOyfT|$)+QID%vJ2u|bnBN4I4JjDDoxpy{wke?(cOlZ52G8p!#T%{Y#MNWHETj6Kf)9qA9vcx8;l?~D2PbY! znfg%lT9x@bG#$S#TH+D4mbM{oGC23`%5paxC`qs-sIc5y?)&_-TxHNOy&&MO=bYB6 zP0uU$ojKMV$vnRVRdU~DTgP==zSAe9enNucG3gVM%p*p&$N_9>#B}mV6qk=l?{H&P z2ehc`iW6!AzGPLt%6SRALuU0a8=7K3sF~Z+QljH2@o~U_O?_+b(XkuPfw{T|Rk_bN z@1?=?R$!tmPe9*qy zGFyuAUFvBR!2xH40+h=Y^v=}?DbW#=r#+BhvHU^}sz)(zeB3JSQ$Ws^;GjaFP^#{O z*{7w-PK{iFzjk8C>zU4uMtJ@%Taro5Al-2(@X;x>4=@Wr){{oXULa>buxF_@#BsM? zaHXSrvuck)OxxMNkQ(nlD05@5Yys9Bk`P7Ot#6&3atepn$&Y?$CZeY)Dm`)_qr9WD zz#UNTp=gi>!Mfb0X};|8bF`>l`1gw{0=cf%HKSgDsfZ|bI!l6RS?piM3DLkIZi{WErt3G?#bRt9b1RCz0y0>;A9@_$+KLU` zc=3bIRDQfm8&~KI!5Nr_H2PId|3jRo?>CsZGMR*!j!BCFTL;a5P>?t@WaljZzaMu( zdI}uhNqW&Ks~5-i8Gz#gTZKQyUp$o zq%(yf1ilXTWO1co3}ps)mNEXc=Y@HWvLCH3nZcl52zoya6mIfsiyvyjJ8k-G*M+#p zTE++7ds?71^IWDZc-vODXp-z`_VA7JtHcVw7qqv!Vim(-iJiPsAy{idQMVRul^OPK zr{hb@0Xd_z^QIH0fu@slBhC^%H(2G&1boLoH{EYLYTMwqXP2ix_H!rWJLV#+?Vgf$ z*(239#{Z%@B}@X>r7^l90~P2;lLWK2EEC^DrOzWKEXQhWisX2-64^&iPSlS7{j0VV zZ{9+!P@v1}2^5I6qxo0t-SJNG{t&yuEP^pSA;rn3oqlAd(;a5F#2`_tzjE3HnmB`W zA811wW0AGxNvai5zk3T_(G{|=TMeE>5W1%m*@B+;{BGsC{2udP^;!7`86Gx*+RZ0H z>j+i6uwwC&wLF)lP!GpalqD(zMq6J$%2_neOr`|7xVvj2RzcFQ8OV+^8{PCt6Ntqq zjpSp%t(ms-GRlHcZ2OE`KHp>(r{e`o=vT2y?nRKIbdjd2O!zNt#c=1m*v`93`5(3k z+{LE55a1Dk3+5_)w{<3-&RL5}Mi%A@K8^4$EU7WolTg~sVP9AF0&o; zdEZqw4b&M|9?Ei{2<-u#_j@=!%hgZt&ME_ObuY+Ewa1?znZn)*kcijGJM7@Qtj7b) z3HkNBOS%t-|IF(V%sA@E4l}kOG09gOmKqdq)&C=bBP)jsT#zg#uhn1e?f*nCere8SK%T6yrQ@Oscl}zipc( zLj)#+o{I)L_~WxsH|?RzSa_jazFzA-!m&jMRsXhnuy_}^Gb2%f7oo#=x9c#7?)m9c z2c64#ee%~Ov#3K3l0%MX2epZn&tVy6{8D2q;ZKzMKZnjdJ~#MkE*JN{ z#*BWfz+RLm={^>9I~3o4qb#?pleZ?anya+JXukoi=d{nNO*~uyj5D_6oa7<8J74yD z-@~a#C{_Vw?sVK??Z(%rr}mG0)&0B} zxhZ?3t1qNEzm(iL)VM|{vWJ%xkVtb}+;PQI6i67N+lq{C-fL;HqEI*eLbqVnBUAxV zr>%SAj11XZ<`)#x;T`1$EeYALHm*R4E)P_eZaRfMyW%{ZKh>KbSApL(+|$$;%dJ&( zf1|O?Z+daR*aRKUsbIC0uhf6o)}!5-l#tQX3(iB-#^*0&z52B`UL#@r{VixJH&^4D zX(LmURVDi)A={XJC4;W|}ZMn9nySMPMRAV2?nco_9C?WQtRWxA|=r{uRQz8oU4NBoSJb0n72cW_SDu5gv{GH@O`1nH!ek6iFV~^oAXK8 z&I8oI>r3-A2(%Lx-tx!dKhhPyDPE7ibqe{QxOU$WjZbNlL0e?B?6LZ* zt8Emjqqqo>2yYYSdccH;(tlY8k<}^)*9767<8NV;B^L;$(RR^)p&hT_H6u`UO=wv} zN($)b+}^B&Kn!pewj>E!MC$vsGdD6M^fncl*nti4h|J3m5OXn}1n2%>3*RS-a6;+U{CGZg>1p1qYMNb6={S42FO<_dZ z+}Xm-XRE#^zW%}Sq6Zn-o!~0-lNgRSs{>AhYswbbq}WLYY4OO3sAC8KeZQJhshy0L zF|G=MIlXxB9PT-oAXTbJBYv^T7@TVPY~!tL6gy_=pMxYnqion*F`_LFSUXI9lKtra zz|hU`F6mw?J?z7e3wgw*4{M~j)wWHyJ2D-8U%yg)rPUk0NkCA1Z7jx}r1F*U*XbHH zuMFtOUy|FJbgmoHYxI|nDN=2FO#f+LjJ$Fo0;#aV4GSm56QNaPik>gUA zy-UN4sfLw`Jfn;%1~MNcBvITyN(~;%6a#E@bUkEgPSj4_tcZpM8B-av94ka&zRb_swgnAt?pqqO zs*K!@^BLv{H6z*{s9&txA?L8P*}kAIHqEGVdgP>i6My7MY&WdA63 zc?`-#z;15HBNAbk2Km(sBa{pG=SAE@>z|alX#QwK6}Q}fn4K=31<+{y%H4mAB7)#ui>%Gg1Uf5D;4Gu_ z(uNY%Z0$q9nk6~Vw9!xjMie;3xeXk{rZ%YfdA^r>jc|(%q$wf{)LT2>0!KxU9cKl3 zAD17C+f>#ldVMtA!*I^H#HV;~!GVC?1x zHmWrL<(O92PYHWVvFYk_-=Ioa!1f`3AMPY|2=543HE1mR3KWfSV`Bi3Tw)tH-(6W9otCyNufeLnNO6 z`uA|1j7N`uGmR5lL+mVtIvetvp7)Pa7J{v00v!d^4mr-f1dmDMiXoOSo*C<608JHH z2>kec*ig}BBFgTnRrEQ-lMr#Qc5u3=W!yL2gsJoVAD#vB;)xoTRL%qY!ScC`=a23q z2hvrDbA=fI_$$0!})6eCf`o zm`-*s0pGD!wa4c{Pcm&S!2aPgQ`yh&U*@FdfTk~UAzn}E&{iQSFWhLx z$MC6z)gMiF>H=W5J!5w@wIYkfM#_30)-vKOLsJ|V;A#s2O50~s3m7alR$xJYTgO8AGX<|`U zxn8YfjgXyzhymCts_V0ThLpv?^5;@giN;Qs(ffyPNA;s}A{q6SnJPua5d9)&-Gr@!8(rT5 z%V*BfWsg`#spA%+8D!zM!yBpgqEABf5bsvn>@P2CwDgNyJ`YJlyOizOsQ{T>X|XSC z-EdMZY6`M&0^A-f)4z0`KQzIqHNT>Nw8M%ZqsRCtbp+7{@5NyaV(RM)d~Kg3X9l%5 zGh-}W#9BdoyYp)qr~vvo@4Wt|hVp3gDv9y#Pe;1nE?v9Pg)fPkxcHtBk;gl*!=_9{bZQ zws>l}&9-~|ShA3XV>;GDJ^{ZWc(OB_EN6A^&%o5nNl=;jR()OtwK7j2dZBuaC#?nFl%w$7kh|8W zXcxU+w>C`fSSPl~RVzC*KnqROQI;bOI}5?{hxlakgo5*HQ5=kqs?KD%xTM(BoH@M( zRn$@&qMH6%TeWg_^a3dZeHh|u*gu-WKE7bq>s=%mtD}UWD}8yuppslQVqtrf^}>iVT% zv_J(e;pG5ih*?o!pe?)9K0bt5TLRFKuwxbbsfgvFn zIsh`lPFDQDQWq_V5{O|1h^WR(?Bs9^OO2)La2CD81&DhCJ`}y;YUf+n$gmuC!9O^o z&4#?%G5~pBls12>m#i9|G<{>#eE9Sp`F-)#;yg$JZ@df0Fjqk4Sfx5esuLI~ehH~_ zb!H?k@G5(HotB%<7 zB8bHt30eOqCgtaa&P%CY$G5eYg!B|JFQ-w`NyuY!ZUkvRmOzErmyJ4GG zc8Su=Tt(v-{IG1GVjsMcz*=ekz9^ae4pI7@6vR~Jc0tO8wO0SH?Rig~r0qnYp@p!5Znpw?yxus?ruR7+}+)R2KNBL-EH^o zcYnZ~Gxk(hS9e#V+t0E%onu{9Tsnx=PdbJRbUvHZj6c6L_qJ=!Dxk&@e#FP__Q z3|LXu>TNz@L}gvD6L z0dF|*#U5P7nWDc10+WYYWfc&Dg31r%-p5d|q;;K*L%P8v6!M3ZJYI9xqa7eaYbWoA zUaVOLm!-=Dh_zGJecKnLj>YHpMbL@Dxs?ms$Z-JPpl4QU869o*ihm0Wu!FF1DYn}` zM|#nW6u(nM8!kBt!LPIr;soln4g;`EfgQ4aYjl8avN6Wz&Wt!=#v#8}H=l#p62OL^ zGgawtI2cOxomhBIV?*MoZBHz9@*LG3LuoBFi}XLm31Mu@nZMJ3qRmsWDai*fD~Z;T z-2Lk_x*qY@x-P#*E;WK%ZncI6g3%SqB+wfrIHqRdj-~fIlgm2$prV4S%F0z(Xhl_*neN=^^AaS~OEkl9 znY_3^ST>VF^^FbQ1A%4X<9}K)EU6;PK}~K&{iUCU_hO?$8%LgJmL&ewRM$gM-lqFM zTL}F1lhitbC+d>Hj7kz)v`71tc8X=vFv<~q#p^bH+m4|EwPX`zOK#ort?=NUHsqMc z=gr>-q3j)!wtUdxZU1_CUZqPu<`lY0LeU>LKr2|@;ucowCUXY3*xr00Jl?RFJR_H-lTt!iH-9`@Js5J&hc!C-Ao@}Fo z>ob}x6QeNJ3DzHY!l6_>$g|Y^S^1>&@RJ!xN~6x8KSBHU9AkZJz9=_#=b*1@X=UQ> z%dnNuK6i;szc@cSq(Du(Ua{-WQQVPdIs?@a)6uHFd_8mezB0AcCwGNWcT=`&*TZd; z7qMRVyY2^Rmp3STP$^*FDA{YZz~!~i(kZ}wpxx2-?Vkyn` zGuIb|26UPUi~i*CcD98yrnSb>V==LV|Ewz(iQNrqbQdxET9!CQ>y>{R+()Xma`kwr z)Zz|_2m8Un0nuo`nkcoVdv69$ecXQhJzY@GDknw&C?qsq*WwV9w*BXC*TNVkVzz=c z-vy?hd;1px6DeLrfjX3Ih|bEIbKeK^He1?*=8_pKo%q9okJUCkUE&92Q%X<_f1Q8= zMO8l_NxUjb8f?molN#;l4p#hiMx%lV@Xr%}MU)inZZkA|bIW2Y|5}CG_cs_CXQi+c z;HLn_#+9;0wDi&2j~T)XW{_l*XNpF0se%^CRr6}Pi>)8GmySnY&hyqgEA~*#b!=e) z>cgVaw}(%@yF-og%hJLl`-=JOa*Zkl(Dn!Q_`|k2sc=3>(BqSkAb5Lln=B6k8FX6u zkg9TeO%K#h13&+R&1b2_FTUmI2uoi;#S?_cwq$+=OVqbIXaT`mCM$Mc_nL{;Rq@Q` zc+TDnnvQ&zPsznEgCvO`mGp`8Iy%>^V8<^+;0L0-tY;&TuA!V&kJ5LI+h)=6NWAUN5z))UwOFfI-#k#+^|`FEQjxne_cO5L+Sk4_kr2Q^ z^2zD7?mV*lGPmxr_|Juju2?py_j2c18L#*Ho$mq_Hcs7%hv_ac$z%^tB>qwZT3Z6C z3zXj_dcxu za%x8NVB~_M$}>?B2*@8I3sjhi}-_zv5nTH>S_A>!_UP5L+&xA1Yf6MmBHVZFMTlmyD`AVS;Tjf^GQBst}$^ z;6R!++DK#aTif(~U0Y7OcM^bL&C-Zhv1KX1?#-F50nA+iAik zxPE9aGcfj zr)y6%e|`Vu&kh|RaP*t3_I>MKL_@f`^x%vyQwarG7z|U1;hXBb8is(uZTBRP-Klg- zE>C^~?~L|KtbFm>;N2S4snLNiE38}dI}>0SG}xosEf zt-6jTIC4ss{bvU#U=Ill>1z-1{%WfIu71AcNx(4K$TX!QAZdmwsqS%DszBXo4Wo&x^e=FDtC25Upr`pZeaON4+QuB zLa8j*`3wZF7_?9U*tVZ}gLngQQA*ci*D-(ML$`7}+-zJB^VZ-dMzF=$wq&b9<3#cE z^Ndc8I9Di@7d~`Q7FN@>QiT8e;nADF@nx$2zp4M?r$NZs&$BhB^ily}UuMW9aiB@c z#Oq3|d?-~AWzZoeB2YmEWW4m*da@!5zkWy1N-Cce%rY`=^uX7&Pjn3C`5|^5`ObMH zK?xtlQIACk4deLxAg(j~#%>G<_+yvX!(6S4p!L^jU!3MX+#{agR8d<`V2IZ8d@1zN?I1G2KjvmimQ}`urJ#5+Xq!M2 zC0jp|4U-Wd=}L}=L@&mHp~Mo@`kIe^i(S|ovit*o;(D|2Fyj5NCS1g~gVVQx*M*$K zu2=R9Ee8X7nk&c|rZKbXIEY&_*&}U*Iw^p@O%OWJh2)DCDguF`6!PDG#@nH?$)x5o zPQ4a|?yc*H@^EZ3|7oEDp09OE+(gO*7!1mxh(n(rq-rxUi+4rAr!)H68p1$5p@Tdk(719Bu}p*Md!UCiojL&kE5H;m zZJ*augsj$<}{TvA3nrF_;uETBS$g$CCZ zll|{E`pPy8-UG%}U3E<>8Fcxz4HK+16d$I5tF=Kd!2mIj&=)rY|?Lqt5Hal+AK1mGpSth#!ZO6BC-;j3u;ebNj%s*FwaISAH zUIyn1LR&yj`pj<5_hN`k$VxK+kPQ7>m}~gh>M(>Mg8%WA5xq0=bv$w=iRzmeY&q-- z4MIffUyFGSjuBVk-l;JAvCLTQuiN4z4oA2)$Tob zQ`nD^T66DcP=+{Vg}^GRWGM-pRnq90qDrd&v$eY6<%r=$`Y78!n_{osQv``^kwzAa%DQVF45m@A=6B<$pr{;*RG!#++sHj|;K4ZU23c6xCyXs^`# zZ|>_zwYi0_VTq`k;JIhe#7SJ6)!Qli$u%>PDba!pm#|gW$h%7JGFvEE?r6-$y<6@+SPZBzQJD3Zlw7>pag2LZ{i0(xFwSucv_pzvCN zIMI=5J{|ttQL^x#nq{i8Hz$xw9 z?^!dN8;%Cm?2hSdwyw0u<}8f!X)5J}h*PrKRaPwLQPyiQU>Sdywf$PD6b6@1d2v!9 z6N%;`1Z_~{HMX6AsY^u`2<}0`(qfWu@ZF@1d!>iQ@&13ozM=-{zR8Xc9+Vstwn9)+ zhXEy_aJ4)E)f+qh+6mA8!zVWeXLEIE&0v%0UlVJr9Q7!e#cLq*8K0*w{*z73ti0(M zlJUEw%VDoXK;PPY*{?q}OjKXk-L;W`t$)4&*;O_4$9KF+*0e6*L;e|CR4OU#b*U`& z{|VTZ>6rn1M$g?0<)%4=6^rdwEy`_tbzUnJC+^y$S43T#!}Dy=jti`&`)nZiU#@o( zq3x2Tp|4cFGDohD8$WvtYdO$IDKFf!CmS|)N&dKDbM@tQj`ZmrjFB&WTx(eX3$(n9 z3akhl;Z&Z24bGq-O4yzUb7gNlM5$9*Ic|Q#uVR(aax&uh zJ5mig0bEq3pd&~>YthJ(UQ5s70#@^!CFP>t=GH7#4!w0Yaj~j*K)ZjaQE{S1{%h9P zqqdkSIX%oJST2~&{&?o{vDsQB2_Kr&sSd7!1&IKc^)N4&r<+-OtO9rHt-i~b%d0;S zD}fZF&kz02CeReI`4yTW%IN_^TlL?`Nm*fR3=HDl>`5SIP$y)X1c73R&*GaiBIV_W zi`+h3!jbgGqN$sPl0trHr5q9Qqmm{|y(lzMtK-VRN{FIj)4qqVYja<=a5}epCXmA3 zrU*KO235;b{d*X~n~xhDO@zWu9)**vEr!f6qj+?KdseEiNqq?XS{}34^4I>OYMXTs zjm}+fjn2#$D3L^hqKp4B)FN!dNjs(!Ecn1ds9ZvYP}=|?n}b$9K}oz=d~pB&La6Bp zj$E*}$~7+x5X)Xxm}p(sW;Adej^f%cSTHDG_P_gGkB5z-B!`HzOv3zZrgd_p}R$Xj2OcsNK&sf@VLZ>UHhppl4m%i z!eOp|DIsnxK&qwr!p{ajr)D+%~ zFMe0^&sHeq>o@qb`3Fd(`X-@-3-tNjh5X4sltohZH!Cy93q@m^eIAtrp6wt!E7z28 zfbK0Nx-n)dVOQ$JJKC6pZue_~U+3!kHsR8=1kcrv{?)?>Q|_>B$pPOq7)e@&@7;f; zU;#sB_V9n10|?P$8EcMVG@~`eP~no1t}OW?n?~9)nUn0@`g{oQc}SOse<>cS#W2P+ zHI>mt$Y2jG!Mx~&_M}VOm3IGxi+uWw{G6+U3pl~H=IX#0g+3AR^0l2J8a3BDNj%=w zm0WmLxM})nkUt-K4b`mTbxv%$0UpY8QkK#}2xA()X6RnDnJP+2qqhTks7(PElUVHB?9ho7s5mTMvT&1Ih%3aFc(pTTPYEvESW2kMC)~Vq zT9xfqaflz0oVg@Zck(;gu*l`zW5_dTaAx}5`5zAr_PLC*4oCYJ_9NQbMNmasD!qZ~ zzh}FSF-hh8i$MO;*&0OB&eAZ|9mH<-_?JN^NG{r+RcI1r*{afh9wY?e^NAaxQp_rE zG;h`=sPs+eD7WGh!w)aIYNWdDPX;QTQr!z4HEV!4!dk3 z1^?XGslCEmN|dwzQ4bnwg|But6yS1a?{?>Hg@S7I~I2N}3gvyo}mm9y&@?hGY|!vZeX_G%*P5_b3b4_(u9Tq~>Fdp~7w^{^nHr;{vFjGn{X z_r8;?ImTBz$q$c{(1OTKdezblU#M41D}jd%$sy$>nwKWGFjco!$->=uFp%KB~Z*MeZP^DRZYqqEQFE5=_W_zUh@a+a{Bcup*3~8lX|ne zm z^SeW>hZj(HaSZRkSVzayQOgc}f@3?alF3r0h8MmEO#(^VXKP}>M#9wFN2kN=XD(G= zF?Lr4<>5x?m-w%Hl7FuogJ7_(cfZ$0ZnuBU8D%|u5|A+UB=3YV!uL6sL8`$|@|*i; zD1b5{9)}#h9b)i(`DWwcYAg=ZSaB4DB1~!zu3wjUu$z0kwGZN`4Kz3TXG+pgAm9QKMjtSa^wD7a!C7EVd#=;tlq0_WiQZ^%Dii4TIMA<%S#0OB|smi@WZ) z;6dcave23T`ECfVM=#QI%$LQLpNCcaU4s|}^w&P^o$SW72hodi&&UB_s7-|-{Xz^> zQJTA+*=5K!29|ErF6UxnG^LpjK8^N}lKa-6i}{qGO@pu^7MIVcD|0YJ&dQtt%Q{i< ztIG&W%A;9xY{sgI)U_yS1;?gsZI?|$1|E^s0zgvB_%vktB6xa49mFAN4JmAjD%Ed$ zO;{EW!aB;X?FafY>+NJN;41Ic8lcI~H;fx9V&JNF0tjw?MXB0tBibYCGeQSe3^X2r zowL~6|5jOb$$>)j|4pe!GXt}BQ9+O6oMb&g^yHTqL`xE=rCbqsIWBxEOUQri+q>C| z`i<^KV4jh0DE7%IVjTF?taK)a57wb&o${)D#93ajjM87Pt1dU2a5vdX)9lGU^=jHU z+rQGOYMBRWM6E<^1D-^+>t)-YQ(z=T#j~M#n!BjFlalK%C2|kV19>f^M^U{YPf=T} zom>`<-oZxQhJzY}^S3~6aFQA^P=yJYat6afdBF`Q44^zd z2mrP73eZr5QQ}n}=CM#OC}1hhBg@Zc$sZzXn>^asG_??07JEi$TFCj!h|D^?(Kn}N zF*CWGb?e_^U}{;TXG(>)fH`z-U_^L@p1h^~-+xOU(=AnXOL#8t^>U2Y;caL>Y9DHp z*qZljddZ=plBU2}uSe*XJvDw=Vi6qQe%G4p%iUK}VWYoErV`6qKZ~`y_TwD0Z)aIWTY4Q^OI=GTsPmUAvdE!o3&XXz~d!@OoY1oQo3{-`4DpC8g zrlrI*_m##Fv)cHFUqOn#{yF;k+zCOcS9D519%{yU6>VFD(~wZtm?5@G)1B-e(U9fl z;DQ5c>bqFE&syP6cQ1&H1W&N+-*^2Y6E1{|d5Qi`_mbWjGjjAfK{6j8;maxz!Bk@ec~yaZ38;sgn1#($?L_Ba-l` zSlf$68_Wy7#-$WgBM{auvgw(+({XkZj^IJ(n%N9N{06aHArEE}g7x>%0>f^HL)i6- z>j3!2GDVkq&>ig|+334j9f9UgZ*?`?Mrnb$dca+XRNrIIFrHgo%jjab3fQny^9nsbD)Qq;Uh7md-D zo*J%V1RmH~_I@yc2lyEB(!#o83@4QsGU^(J<=aofl3VEB)*QO9{l2!D=vp~D4icHY z_6~Id3iyCdnwz3Q9o5QPxQq|pZzgpwFC*KN;v!&-pJ5e!v||kl8HX-nxnV{@>C^JX z7D3I7jXsy<^4PDFGVnn5Pd4_pwkva^d3Gy+_dbp&i6X;SSoLu4*e;+Un!(yOX{2mQ zdqe}PuUonu#(Q1nf>QKwEr#rgdj~$YUs!rO>Y#nbX`X~MtVwa*-s`8+<&}Uc#BEcw z@>gkI-#gA2{?m)EUdi{*42bA7P`*)$f zRTH>97!7~u)FY-kbGy*SDXD?6e1hxfI|Ft6Yw7tl3?T-iaZ4NB3&VJd_z0(-mTsvG z54LaBm-`%zxI0lRI`1%yh9cN2Ui`~7^vc^eFC@oJp`m-ROUtEI70d}?iD{j6i)?+!(qa zd8sb7JK_=u4=nrS)s&Eif=3Usm&yqfeB3L-C9Ri{0ib_1+Cl?=H5|6ql2;_AXw{(9 z;sND;?a;F$|H8wg(w~ZPY@W?c8s{m+a^xFDt|6K8{ylEqos^%HdYi!1Oi zk+y^~bp`5S#d+_hfY$q4@d6sAH*ts4G_PEfPdLKIjL-2NGZG45@2tqn1=Ih$t~Y72 z3nEOwIxN~&_9&|_>z+onyB=fjb*z)e`VBc*8sFOH+fof1f8@@Y1s9VkEzvEHqQLYT zp4**oQv?W87v^2{9ZC6TZ%v}NW_+>4(XpJ4p&Oew?W&6In(j)CgXu~lg>e5l(XX@z ztBi8LOU)1$>P&u3wfXS{P56}~XKro%WBBX0^bNQjjvtQ%BystgeW1uQ+MCf)y|&El z6>?_AjSq%sFonlueYOk;5@p98fg0LIVKv$GEouVZaX-T6Z98L&+UFu1#sICaP4YX^ z%Qokv`vKX)=P>0U?!rD0mB&}$CPqMv6H{P*Tfu*AZMwzjRMWur74FEOR`2ZV5)gzG z#9;?XL=-IR=I7eHh<(_~4Q+>-)uf1G-iYd1Yvre#T;i&?@lhcqFO^lU_sE~((l$}( zf{%!q>;)5D=%oJpA!=`uCm%5*?_U(p@=dYitw23C5L#NIj1lxvgjuE2iwm<5i<=Z} ze`s<@g}2ykKtH^6|4zc#%acwHX+QH|R>{OIHhrY>Q%|WQf4IK;!l%+HVlxS2ij}1G z2#;PaB|LpWp7ZS)=WOmJW|r!TT@`tjZF!!2n|jmH0DKjE_kin%@zR0cb!kLe`QE-F z&e}f?A-w?^&m!IC*39_2>lR_|$f4rZLg!EC|eAZ zF^?r6`eVPI={+rNi{;v|&)`(K$q&Wwj8819*Vmsq81Ngu#jKO__c{*n#_i1K*K)Kh)wg6}C3S0Lr9c@TUNa}L z6p7P8Wd;-zO@*!M;wuk!tA{BNf>{>Fto_)4npP5PiTQhHkM5Gw@Lw`Q2oWU9=`f~# zaO>n^M^8}+NQMg?bW}hh%{X)iOC}f0k=nwklgcCvGVp2hZsf zrB_8a(IJUCzPU$q!!1KCA!;^7h@VH*C`r5ynF#;->*u)8&xv*X=2V9d9-th4_>!Cs zJoVxQKxSx+YyS=pGYf)xSd*!0nZM8)fi#na;i&Y}eLsAum;1NEM1Rv~%<2EM=C$%e zuD>^H@iE#ICIl`Z<$)J}MV8W1XU+;J{BuWfEL1W{sC`I9P-ZaB&0)h;qK^SnU|jS4j$zfcFMTtKkZi7GzY9 zazjNu%SHyK+Y9?fOAEhJu_7IN!bPiNKQ(Rs_C{ET(Uo%+rDO1yavP5jx6G#cIOJUp z7dKD~8=k@GV3gTn<`=kqL6Mv3gykN6S>I9I@hN+Y$yt>#n->H=_`L`oU%SO}2iexT z#<&L#ha1l<@aJCmyG261!iCG5+Zh|7nyz52LeHHzo)ZV>3DzdqHc-FgK>Z4IH+%D< zHZB$PUv2RPrBQKI7j;?Cb+Ld;C#p9gRj+GuPl@U2$K&*6+4QdRpQkj&Mn#<vNK47@lgsCoX zFL?&O7F(bcr^$O)5FkHtNPYfMpuG<7S|9>;RwHAwbO*duDTgCc4<@-|OvY%0Qhd7< zLKThaP8%vv7jg8YLX1psCEtt%Q)$-<6e`1{WV3JC5g>hDYhNeYkePP$T~w4aouSnBh-CGX35N7S! zML(MAbdr;IEN`ayzXxGW_&!yc1(jlo`(@&LHqa+~_opcr|LvssmwY}x2vun=X^%=o zCsu9=?d`dv*1m-G>F}wASYBfMcZCL4ef$PiC;l~5nGtplrZ0sCT)C{1E1}l084>BT z;BSiQ1DqozbM+jBt*)|uo(9>?_TWkOB8>1k9VC?->`x*kk0)hi9p`TP2`s!tRX4mD ztuCx7WhlQrIy`2IRoTEtqzjiI`3^Eo*2G^3AoI>I_LOiCg5SFaDN6|{5T2WMP7H`iYSVeWry+SH_)J;g4AyMjxY*f!u|b)jz|L=Q1IR2gIoImAQx%O zZ`h;05E=@M8fNm8eb04QLC_V!G!qsM1zql_Z(oq-ArJcfr;0Rx3nsPKeW5?^75ZVL zmRtkp0>5+A6bD=XxWgz~;!mcV2Pf0|9tztBtBR-!X}tFcRCz3NL7V*mTwL{k7ZDXJ zZGKkHd?;wc2AQe6+pLF4OYJHFVs3IbGSD|^x%=kH8z@4J;(B88Pf<_n;J5IW`lqGr zse8L&W|cy;{-U3{x!i&OGFGJ*;*=&Ydl%vTnR9|+SHD~txNKKDX|=rv2O_`(AM(-U z9cp05C3UqQ-@CJ;ce6H#8qL6Yz5WI9ejuh3>?PbU&eVmo4TKiF-h>B_wT1g9p z+k7fFIqvA-RY~YU^53!o&S+qOQ+1Ytjy;f84RaRTarD3-9}@}oRO`$DV*poMS;`Lr zqOuW{R;-qwox23JvkM%e7cX8cRlW5TTKN5C$GY|RMOAcQH+U-SzXdi_#OfiJj(RIy z*`!FCn2d;?hvm#4aZQ4H10ve{Pew?~;c}tZmC#`_qe)5%q3&X&iyex2d1~EaETLM( zUsw`eJl>Tqgwztp64JsJA1iNS_kAg9^UF_HEgQNFhhlEm7vLCFNcE~+7G&oXGEwrr z6yuVrS|`1RDRHk6|0686#woW+3e3fptRF@S49fddGeC(1*++ZI;j903Oix#INE!yu z*r*^wJK-RPHX*7a@K9@Ux8uA&eVP+Fv4r3uuvu>J7Z$Q9)^&(}kvD%zDGa`~a&TD} zu`%&{K-#1wg^;ewYbFyvuh&*K_^FSdl#5~-mz?_IaB$qZJQ(wdYkz)%*O3R>N}T=0 zMmmhR(`fTLqbRx~am&s>0N3li`_n%heRvtPc&CdOdDV&&OB8f6xQ&b_XyTk+DDZ2D zh^STMNLaf$^YZKbqGTp1#qc^J3MoSYv=Hz0&*x?6o~Mj}i>a&MXFHF>vh~ZhK~0$j zkDI7;uIf#}gbZ~t9=%;vnO4J57r&leuOw+db8oDk(uio!?+th*d@__KIu98GK>(&t zOH%6DMrvq!&`&`VLZqCI{_pXP^n#?b!4#E=I1jU_E zswX@7+Kay-BQ-zBalRc!SZCO07ap#8=7Pn@y+qM6lp6fa2&xB|)tnrY^D?px zZHzG%)vA1WctHp{N&p!Jx7Q_wHTYXl?WOBO2p}oE#Qp#PFu{LDQG{?VcYxuTTRx!= zvINr~5wwzvDsy_|BPt{51%+@zbCCy$bF<6V$%$GXKl8A9{2Try(Sbud)^QwvQe7PE zFUi!$^t}?L*xD~J46U0kiZd7Js9gXhRdk!q(*z$H|GIbj z4{dE%#4aE|CeHAaFB@GpPLa1aOu*$R>;id%^; z^YX%Xsl)b3QvOg!`roUB9`9efPoRIf#a}9o+%YxbfjY4hXI08k(($HVo@q$sSV|*r zX6$&m-p5K;W4aL5D+eG_qTj}! zb0eAAs@AcV!2c}jDYwd2#ijYg%}Wemz|0DPm*$~9e)P{chv*|Dw2PlbP?4_rExMX8 z;kbbv(Z0%t9br<6T~|^*eg7C<@Oshi_KtkJ+m4 z$LK0I`jJfrYdgK?X>;iaj2jp`?fvwWZYpG1POX?=MJmW�GPe~fl@Y~J!O#&W0a%O!qu2p{Au&E3=|zn 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 literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..8df59b94f42ec294bee3e5390ef5781eaab4dcb5 GIT binary patch literal 1121 zcmV-n1fKheP)TC4DXc(fhYr|q8}1R%D6nkH!c2Uz7?))_6Q?Gc7~>}&I6q*r zMA5`dm&Ffm#!oPwV+1p&TL$IPc7?8D+gm7o+`ij;>;IsaQ0)g!?!71Hf6o1#-}(Q3 z|ATSLg;CDXbzXlQyZV?2|b#*!O+>1x@yn! zl>gxboW}P*z)Uikk!VL1cu zP$J}=R90BeQlzW3C_^LwE>ku9b${?IjCtXexnFYWM3|hv)mPQ_LQDN~Z@Ms%Sceu% z%POCiXbndlBLj^<#H%(ny-fL>L%`I(2?%PQK?1C~?*4!Rm93`+e75nA)3KmCo1}tL ztziRx)sJbFhFRSfd@({EQ8xVp;yKe>nqa= zeeG!!qjQ-MxiEDpPiNC5rMgC7+6hdL08>jg5h-v0hJ2Qc1ZLTQ&o=snLT^6Bf}sWq ziFR0yz8`e`{v9yx+=y|x0$|$jx_z|^Hp*-QBGcwT*?<1z@(g=V4B&EY3%elCFv<9u zXFL;IUrteLOAMV0^Y~aPniH#c9stko0Eax<1l(Ey5{;n|l3EnxS^&s421Ecwm0TVVmuM?mV}a#yHm8W0=eHXtHPy}MjQdYt zb4`AK9K~@3VF9*_1%UGM+9RsU#y9N4UpGU45}1Cft=ab$Ux=$VXu;!saPxfl&$+>< z*D)p|Ob6M2VZ&}P`)~mu<#$fnZ(g>7u_G`P0n?z2sCpJ1A2Ex1?N^DqwvQ-s=@#5d z%kiM+4~?n$CA62KeAfy4@K@FXK&aas0#oSgI)Gs>Fx>-vk9OC-4?%!#F!2~sf9Qf( zt#6{U$*{To+`VjyT7mqPr>S)tTrRGnIgI)oql<$}yTQjX-|R>qxiHxeY}06toS*1N zy{2aGtC>XD?Hv8)FotTk>!M#MDJ?4sh;A5~p<`P_O8<8aST+yL2)+Fr%Q_LTKIJ_qhwkWIAGv00000NkvXXu0mjfSe_9i literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..6ecde6bb6b9be6e323f5ba13674aef590354a74b GIT binary patch literal 2537 zcmV^>>g%>6Z$Mo*8GhkWjKr>UpjYd78qxNUvmpx+U2+1kH1K#6*8Mee*+$6#Gp zQ3}Ny3HmK`CR@qoOUl?-FJ#|9K~KX4!5AhnGFoaASZBuzGw_qZD_*Wi^o-cj9(~K_Fm=c36f?_Tg`LN+RQZqx%y>nV{W^$6QAIIcrz-h+9RQ$v*Y|{i^m|SG+N%m^?wm$PG5(w`Oj`_ zjMZn(EdNR7tn$xc0cdn~nq<-|h{K+0~wB(2#b@A^>+Q8z4H9h_Ye-o`NYt2`cIPvL?uUJx+KEmpn1r$8{Gr9upLwm0$>A3z zf+HnrG!k(e?_7M345ye?UX?Yg{C(q{3!C9rlM)cZ*9LsrzzN60@#Lx^7Ei3P^|l;; z7}9L=jau3P@QJuFL#DQG-{obfi+SSg)dV4p#?zK>Xo%V51Gv3dMWrz~sTPBQfgilg zY_;U3J`ljRCa24>h5;m8iUK8KmG1&I`;LW-}q6dIeyGc>F zcsuM4Z_FkK?i`Zkm%fW|V3QvX-LBu85)f4hHV*pTZSDucfSfEn%^xXr3l2#0=4?fE z(BE|Y?f3&hN>OwB)gAY95ejVGCqa*+d)oXL>#&Hh$^6nk5EC)9Z3mm&g6&cQqGZC1 zd$^}QQG=nIrw`I7RF+)#^e#!>oGpBXrjo@K#&0W;V9T$#Ox<^5?{pS7jU&n|ife{8 z=>YhB6TuOHsOK=_u^U^GH8R{hwTDWjQe*|CyOP1(2ja-m#Mv59LkyR>w_T#1{bM-A zJL21cO^U!K8z1tc$p9G~LTpk3UPoWDMrd#PQrdc zpR3c>d-KawV>43SArysWRjJ@YeviJd>Fc%5!H#QWgXhchbRy-9wdty&mziwdjD(X4 z_zYba4=?pOEraoOOpbuBTlQuXOh7;GPC`xrkG%&T==~Ggo_ExA*=cCI2F{i)%ANI` zFf+eW0H+*mu^?F=OhK=!6Jt0WklsY~aB#JtKXr5tPn!~Oq^s#`jxggbxwd34d~Vza zx#?LY_yk8xRhOfdh`Jv z8IlS%S^K?y%bB<0@B4%& z0?8sWq%fJ3vL^-!tG0yBN=pNG;-MrsP{e5^9S8t4 z;yc*vA#hE#@!y2)<@3_B7h~RS>baN_kSEJoj&P`iV`6ilrFLJG0ybIj^sWam0^PEz z8(@#ZcsM)|E^}Wk#OQ~j6u=tq)$OlL^i5Fn8(*yL6WZ-y4|lhFtr{Nzqpxo&`4Ms~vBNB8;NRwJFx6a~Qf zVVNjr<})!k5EONzhW39mxq=*tdTteH6CqsKG_n4Z0vx!0{1;|{bRQW0WpeCAy*Sc) z<4C}5vx9o^#rLzcUpY#Cmucp0x(_#0+kUosWo#^$S>LECU3~(s5-+8tXJ&fs#z%A1 zu>>l`0l&+M>d<{W>NpT<2}caq*(2nM+V!_XG(n79$+5)aPyA1pgaY;u%XVc$40AaOgUuTkSqK0KUygy+8UXkx=I6N5oID!_l2S95;00000NkvXXu0mjfp77f+ literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..318ea97a4eb7f7751a10ad32d1f231ccd13c09a0 GIT binary patch literal 3807 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 VwHXc`D5NZbUshV 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 literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..6c3d0824b7830075dcc7f61e6143afe2ff22dbb7 GIT binary patch literal 5465 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 IM6N<$f^eC;iU0rr literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..25f1f38efb010fcf8236f512f6d73338b258c9b7 GIT binary patch literal 8110 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 IM6N<$f^eC;iU0rr literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..3798027543e5fc90a16931f4ab9b622661ef50b8 GIT binary patch literal 11866 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 U)#(alEdT%j07*qoM6N<$f=manlK=n! literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..a6a27c611437284bde677a5e57fe4c97c8733ccd GIT binary patch literal 5040 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

N!VDnF%pM~8@)yazrgUF;K!sgaQ(pQ7 z{^CF^*sjbE!Cb&&-Da8Uc&D?j?nWSH*lT{r$*BPJhVj}lIfb_l8BJdaq#FsOOQO10 zj>BFw{)^MvjDi+*=-G)q(Q#wENT4-e`u{^4{FY!>Bft%StxX`A0)lX zZ(y{z9s3>y$7ij(ttFzx=;P#+8G0izH=kUv+-~Z`*%lu@Ri^W z?PXhG!zp+E3|jPp6eE3;E|s1Q*N{sE%M&G_WAOXu$L;$+?r3YSIDM3>ml{zbMVy>6 z1DuxMo+YN*5YRTS%lSle{lESpwrWKnfUUUQQHRcsts5=HBPc-_2j|oQQN03%Jcy!> zIBKix@(bRLI5}koXqz9aSiOK3ITaETKeE?+`aTeBhg>Ii)>h%Db6 zv`Q`cFjv*|;r{FVb9adOIxCbsO?S;bcD5Jl2ocm@*@ zuMO$ep}n5}uwU?k<_l+i<$zc*ST4lLDKp$IZhvD{*$;rA55dZci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838 GIT binary patch literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838 GIT binary patch literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md b/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md new file mode 100644 index 0000000..89c2725 --- /dev/null +++ b/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md @@ -0,0 +1,5 @@ +# Launch Screen Assets + +You can customize the launch screen with your own desired assets by replacing the image files in this directory. + +You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images. \ No newline at end of file diff --git a/ios/Runner/Base.lproj/LaunchScreen.storyboard b/ios/Runner/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 0000000..f2e259c --- /dev/null +++ b/ios/Runner/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/Runner/Base.lproj/Main.storyboard b/ios/Runner/Base.lproj/Main.storyboard new file mode 100644 index 0000000..f3c2851 --- /dev/null +++ b/ios/Runner/Base.lproj/Main.storyboard @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/Runner/Info.plist b/ios/Runner/Info.plist new file mode 100644 index 0000000..a9adc79 --- /dev/null +++ b/ios/Runner/Info.plist @@ -0,0 +1,45 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ThingsBoard App + CFBundlePackageType + APPL + CFBundleShortVersionString + $(FLUTTER_BUILD_NAME) + CFBundleSignature + ???? + CFBundleVersion + $(FLUTTER_BUILD_NUMBER) + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UIViewControllerBasedStatusBarAppearance + + + diff --git a/ios/Runner/Runner-Bridging-Header.h b/ios/Runner/Runner-Bridging-Header.h new file mode 100644 index 0000000..308a2a5 --- /dev/null +++ b/ios/Runner/Runner-Bridging-Header.h @@ -0,0 +1 @@ +#import "GeneratedPluginRegistrant.h" diff --git a/lib/config/routes/router.dart b/lib/config/routes/router.dart new file mode 100644 index 0000000..8241228 --- /dev/null +++ b/lib/config/routes/router.dart @@ -0,0 +1,44 @@ +import 'package:fluro/fluro.dart'; +import 'package:flutter/widgets.dart'; +import 'package:thingsboard_app/core/auth/login/login_page.dart'; +import 'package:thingsboard_app/core/context/tb_context.dart'; +import 'package:thingsboard_app/core/init/init_app.dart'; +import 'package:thingsboard_app/modules/device/devices_page.dart'; +import 'package:thingsboard_app/modules/home/home_page.dart'; +import 'package:thingsboard_app/modules/profile/profile_page.dart'; + +class ThingsboardAppRouter { + final router = FluroRouter(); + final RouteObserver routeObserver = RouteObserver(); + late final _tbContext = TbContext(router, routeObserver); + + late var initHandler = Handler(handlerFunc: (BuildContext? context, Map params) { + return ThingsboardInitApp(tbContext); + }); + + late var loginHandler = Handler(handlerFunc: (BuildContext? context, Map params) { + return LoginPage(_tbContext); + }); + + late var homeHandler = Handler(handlerFunc: (BuildContext? context, Map params) { + return HomePage(_tbContext); + }); + + late var profileHandler = Handler(handlerFunc: (BuildContext? context, Map params) { + return ProfilePage(_tbContext); + }); + + late var devicesHandler = Handler(handlerFunc: (BuildContext? context, Map params) { + return DevicesPage(_tbContext); + }); + + ThingsboardAppRouter() { + router.define("/", handler: initHandler); + router.define("/login", handler: loginHandler); + router.define("/home", handler: homeHandler); + router.define("/profile", handler: profileHandler); + router.define("/devices", handler: devicesHandler); + } + + TbContext get tbContext => _tbContext; +} diff --git a/lib/config/themes/tb_theme.dart b/lib/config/themes/tb_theme.dart new file mode 100644 index 0000000..7a396fa --- /dev/null +++ b/lib/config/themes/tb_theme.dart @@ -0,0 +1,46 @@ +import 'package:flutter/material.dart'; + +const int _tbPrimaryColor = 0xFF305680; +const int _tbSecondaryColor = 0xFF527dad; +const int _tbDarkPrimaryColor = 0xFF9fa8da; + +const tbMatIndigo = MaterialColor( + _tbPrimaryColor, + { + 50: Color(0xFFE8EAF6), + 100: Color(0xFFC5CAE9), + 200: Color(0xFF9FA8DA), + 300: Color(0xFF7986CB), + 400: Color(0xFF5C6BC0), + 500: Color(_tbPrimaryColor), + 600: Color(_tbSecondaryColor), + 700: Color(0xFF303F9F), + 800: Color(0xFF283593), + 900: Color(0xFF1A237E), + },); + +const tbDarkMatIndigo = MaterialColor( + _tbPrimaryColor, + { + 50: Color(0xFFE8EAF6), + 100: Color(0xFFC5CAE9), + 200: Color(0xFF9FA8DA), + 300: Color(0xFF7986CB), + 400: Color(0xFF5C6BC0), + 500: Color(_tbDarkPrimaryColor), + 600: Color(_tbSecondaryColor), + 700: Color(0xFF303F9F), + 800: Color(_tbPrimaryColor), + 900: Color(0xFF1A237E), + },); + +ThemeData tbTheme = ThemeData( + primarySwatch: tbMatIndigo, + accentColor: Colors.deepOrange +); + +ThemeData tbDarkTheme = ThemeData( + primarySwatch: tbDarkMatIndigo, + accentColor: Colors.deepOrange, + brightness: Brightness.dark +); diff --git a/lib/constants/api_path.dart b/lib/constants/api_path.dart new file mode 100644 index 0000000..6899bef --- /dev/null +++ b/lib/constants/api_path.dart @@ -0,0 +1,3 @@ +const thingsBoardApiEndpoint = 'https://demo.thingsboard.io'; +const username = 'ikulikov82@gmail.com'; +const password = 'qwerty'; diff --git a/lib/constants/app_constants.dart b/lib/constants/app_constants.dart new file mode 100644 index 0000000..e69de29 diff --git a/lib/constants/assets_path.dart b/lib/constants/assets_path.dart new file mode 100644 index 0000000..a536c84 --- /dev/null +++ b/lib/constants/assets_path.dart @@ -0,0 +1,3 @@ +abstract class ThingsboardImage { + static final thingsBoardLogoBlue = 'assets/images/thingsboard_logo_blue.svg'; +} diff --git a/lib/core/auth/login/login_page.dart b/lib/core/auth/login/login_page.dart new file mode 100644 index 0000000..90d237e --- /dev/null +++ b/lib/core/auth/login/login_page.dart @@ -0,0 +1,147 @@ +import 'dart:ui'; + +import 'package:flutter/material.dart'; +import 'package:flutter/widgets.dart'; +import 'package:flutter_svg/flutter_svg.dart'; +import 'package:thingsboard_app/constants/assets_path.dart'; +import 'package:thingsboard_client/thingsboard_client.dart'; + +import 'package:thingsboard_app/core/context/tb_context.dart'; +import 'package:thingsboard_app/core/context/tb_context_widget.dart'; + +class LoginPage extends TbPageWidget { + + LoginPage(TbContext tbContext) : super(tbContext); + + @override + _LoginPageState createState() => _LoginPageState(); + +} + +class _LoginPageState extends TbPageState { + + final usernameController = TextEditingController(); + final passwordController = TextEditingController(); + + @override + void initState() { + super.initState(); + } + + @override + void dispose() { + usernameController.dispose(); + passwordController.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: const Text('Login to ThingsBoard'), + ), + body: ValueListenableBuilder( + valueListenable: loadingNotifier, + builder: (BuildContext context, bool loading, child) { + List children = [ + SingleChildScrollView( + child: Column( + children: [ + Padding( + padding: const EdgeInsets.only(top: 60.0), + child: Center( + child: Container( + width: 300, + height: 150, + child: SvgPicture.asset(ThingsboardImage.thingsBoardLogoBlue, + semanticsLabel: 'ThingsBoard Logo') + ) + ) + ), + Padding( + //padding: const EdgeInsets.only(left:15.0,right: 15.0,top:0,bottom: 0), + padding: EdgeInsets.symmetric(horizontal: 15), + child: TextField( + enabled: !loading, + controller: usernameController, + decoration: InputDecoration( + border: OutlineInputBorder(), + labelText: 'Username (email)', + hintText: 'Enter valid email id as abc@gmail.com'), + ), + ), + Padding( + padding: const EdgeInsets.only( + left: 15.0, right: 15.0, top: 15, bottom: 0), + //padding: EdgeInsets.symmetric(horizontal: 15), + child: TextField( + enabled: !loading, + controller: passwordController, + obscureText: true, + decoration: InputDecoration( + border: OutlineInputBorder(), + labelText: 'Password', + hintText: 'Enter secure password'), + ), + ), + TextButton( + onPressed: loading ? null : () { + //TODO FORGOT PASSWORD SCREEN GOES HERE + }, + child: Text( + 'Forgot Password?', + style: TextStyle(color: loading ? Colors.black12 : Theme.of(context).colorScheme.primary, fontSize: 15), + ), + ), + Container( + height: 50, + width: 250, + decoration: BoxDecoration( + color: loading ? Colors.black12 : Theme.of(context).colorScheme.primary, borderRadius: BorderRadius.circular(4)), + child: TextButton( + onPressed: loading ? null : () { + tbContext.tbClient.login( + LoginRequest(usernameController.text, passwordController.text)); + }, + child: Text( + 'Login', + style: TextStyle(color: Colors.white, fontSize: 25), + ), + ), + ), + SizedBox( + height: 130, + ), + Text('New User? Create Account') + ] + ) + ) + ]; + if (loading) { + children.add( + SizedBox.expand( + child: ClipRect( + child: BackdropFilter( + filter: ImageFilter.blur(sigmaX: 5.0, sigmaY: 5.0), + child: Container( + decoration: new BoxDecoration( + color: Colors.grey.shade200.withOpacity(0.2) + ), + child: Center( + child: CircularProgressIndicator(), + ), + ) + ) + ) + ) + ); + //children.add(Center(child: CircularProgressIndicator())); + } + return Stack( + children: children, + ); + }) + ); + } +} diff --git a/lib/core/context/tb_context.dart b/lib/core/context/tb_context.dart new file mode 100644 index 0000000..c0d8167 --- /dev/null +++ b/lib/core/context/tb_context.dart @@ -0,0 +1,202 @@ +import 'dart:async'; + +import 'package:fluro/fluro.dart'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; +import 'package:thingsboard_client/thingsboard_client.dart'; +import 'package:thingsboard_app/utils/services/tb_secure_storage.dart'; +import 'package:thingsboard_app/constants/api_path.dart'; +import 'package:thingsboard_app/core/context/tb_context_widget.dart'; + +enum NotificationType { + info, + warn, + success, + error +} + +class TbContext { + bool _initialized = false; + bool isUserLoaded = false; + bool isAuthenticated = false; + final _isLoadingNotifier = ValueNotifier(false); + + GlobalKey messengerKey = GlobalKey(); + late ThingsboardClient tbClient; + + final FluroRouter router; + final RouteObserver routeObserver; + + TbContextState? currentState; + + TbContext(this.router, this.routeObserver); + + void init() { + assert(() { + if (_initialized) { + throw StateError('TbContext already initialized!'); + } + return true; + }()); + _initialized = true; + tbClient = ThingsboardClient(thingsBoardApiEndpoint, + storage: TbSecureStorage(), + onUserLoaded: onUserLoaded, + onError: onError, + onLoadStarted: onLoadStarted, + onLoadFinished: onLoadFinished, + computeFunc: (callback, message) => compute(callback, message)); + tbClient.init().onError((error, stackTrace) { + print('Error: $error'); + print('Stack: $stackTrace'); + }); + } + + void onError(ThingsboardError error) { + print('onError: error=$error'); + showErrorNotification(error.message!); + } + + void showErrorNotification(String message, {Duration? duration}) { + showNotification(message, NotificationType.error, duration: duration); + } + + void showInfoNotification(String message, {Duration? duration}) { + showNotification(message, NotificationType.info, duration: duration); + } + + void showWarnNotification(String message, {Duration? duration}) { + showNotification(message, NotificationType.warn, duration: duration); + } + + void showSuccessNotification(String message, {Duration? duration}) { + showNotification(message, NotificationType.success, duration: duration); + } + + void showNotification(String message, NotificationType type, {Duration? duration}) { + duration ??= const Duration(days: 1); + Color backgroundColor; + var textColor = Color(0xFFFFFFFF); + switch(type) { + case NotificationType.info: + backgroundColor = Color(0xFF323232); + break; + case NotificationType.warn: + backgroundColor = Color(0xFFdc6d1b); + break; + case NotificationType.success: + backgroundColor = Color(0xFF008000); + break; + case NotificationType.error: + backgroundColor = Color(0xFF800000); + break; + } + final snackBar = SnackBar( + duration: duration, + backgroundColor: backgroundColor, + content: Text(message, + style: TextStyle( + color: textColor + ), + ), + action: SnackBarAction( + label: 'Close', + textColor: textColor, + onPressed: () { + messengerKey.currentState!.hideCurrentSnackBar(reason: SnackBarClosedReason.dismiss); + }, + ), + ); + messengerKey.currentState!.removeCurrentSnackBar(); + messengerKey.currentState!.showSnackBar(snackBar); + } + + void hideNotification() { + messengerKey.currentState!.removeCurrentSnackBar(); + } + + void onLoadStarted() { + print('ON LOAD STARTED!'); + _isLoadingNotifier.value = true; + } + + void onLoadFinished() { + print('ON LOAD FINISHED!'); + _isLoadingNotifier.value = false; + } + + Future onUserLoaded() async { + try { + print('onUserLoaded: isAuthenticated=${tbClient.isAuthenticated()}'); + isUserLoaded = true; + isAuthenticated = tbClient.isAuthenticated(); + if (tbClient.isAuthenticated()) { + print('authUser: ${tbClient.getAuthUser()}'); + } + updateRouteState(); + } catch (e, s) { + print('Error: $e'); + print('Stack: $s'); + } + } + + void updateRouteState() { + if (currentState != null) { + if (tbClient.isAuthenticated()) { + navigateTo('/home', replace: true); + } else { + navigateTo('/login', replace: true, clearStack: true, transition: TransitionType.inFromTop); + } + } + } + + void navigateTo(String path, {bool replace = false, bool clearStack = false, TransitionType? transition}) { + if (currentState != null) { + if (transition == null) { + transition = TransitionType.inFromRight; + } + hideNotification(); + router.navigateTo(currentState!.context, path, transition: transition, replace: replace, clearStack: clearStack); + } + } + + void pop() { + if (currentState != null) { + router.pop(currentState!.context); + } + } +} + +mixin HasTbContext { + late final TbContext _tbContext; + + void setTbContext(TbContext tbContext) { + _tbContext = tbContext; + } + + void setupTbContext(TbContextState currentState) { + _tbContext = currentState.widget.tbContext; + } + + void setupCurrentState(TbContextState currentState) { + _tbContext.currentState = currentState; + } + + ValueNotifier get loadingNotifier => _tbContext._isLoadingNotifier; + TbContext get tbContext => _tbContext; + + void navigateTo(String path, {bool replace = false}) => _tbContext.navigateTo(path, replace: replace); + + void pop() => _tbContext.pop(); + + void hideNotification() => _tbContext.hideNotification(); + + void showErrorNotification(String message, {Duration? duration}) => _tbContext.showErrorNotification(message, duration: duration); + + void showInfoNotification(String message, {Duration? duration}) => _tbContext.showInfoNotification(message, duration: duration); + + void showWarnNotification(String message, {Duration? duration}) => _tbContext.showWarnNotification(message, duration: duration); + + void showSuccessNotification(String message, {Duration? duration}) => _tbContext.showSuccessNotification(message, duration: duration); + +} diff --git a/lib/core/context/tb_context_widget.dart b/lib/core/context/tb_context_widget.dart new file mode 100644 index 0000000..b1fac5b --- /dev/null +++ b/lib/core/context/tb_context_widget.dart @@ -0,0 +1,68 @@ +import 'package:flutter/widgets.dart'; +import 'package:thingsboard_app/core/context/tb_context.dart'; + +abstract class TbContextStatelessWidget extends StatelessWidget with HasTbContext { + TbContextStatelessWidget(TbContext tbContext, {Key? key}) : super(key: key) { + setTbContext(tbContext); + } +} + +abstract class TbContextWidget, S extends TbContextState> extends StatefulWidget with HasTbContext { + TbContextWidget(TbContext tbContext, {Key? key}) : super(key: key) { + setTbContext(tbContext); + } +} + +abstract class TbContextState, S extends TbContextState> extends State with HasTbContext { + + final bool handleLoading; + + TbContextState({this.handleLoading = false}); + + @override + void initState() { + super.initState(); + setupTbContext(this); + } + + @override + void dispose() { + super.dispose(); + } + + void updateState() { + setState(() {}); + } +} + +abstract class TbPageWidget, S extends TbPageState> extends TbContextWidget { + TbPageWidget(TbContext tbContext, {Key? key}) : super(tbContext, key: key); +} + +abstract class TbPageState, S extends TbPageState> extends TbContextState with RouteAware { + TbPageState({bool handleUserLoaded = false}): super(handleLoading: true); + + @override + void didChangeDependencies() { + super.didChangeDependencies(); + tbContext.routeObserver.subscribe(this, ModalRoute.of(context) as PageRoute); + } + + @override + void dispose() { + tbContext.routeObserver.unsubscribe(this); + super.dispose(); + } + + @override + void didPush() { + setupCurrentState(this); + } + + @override + void didPopNext() { + tbContext.hideNotification(); + setupCurrentState(this); + } + +} diff --git a/lib/core/init/init_app.dart b/lib/core/init/init_app.dart new file mode 100644 index 0000000..28e0dcf --- /dev/null +++ b/lib/core/init/init_app.dart @@ -0,0 +1,34 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/widgets.dart'; +import 'package:thingsboard_app/core/context/tb_context.dart'; +import 'package:thingsboard_app/core/context/tb_context_widget.dart'; + +class ThingsboardInitApp extends TbPageWidget { + + ThingsboardInitApp(TbContext tbContext, {Key? key}) : super(tbContext, key: key); + + @override + _ThingsboardInitAppState createState() => _ThingsboardInitAppState(); + +} + +class _ThingsboardInitAppState extends TbPageState { + + @override + void initState() { + super.initState(); + tbContext.init(); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: const Text('ThingsBoard Init'), + ), + body: Center( + child: CircularProgressIndicator() + ) + ); + } +} diff --git a/lib/main.dart b/lib/main.dart new file mode 100644 index 0000000..81f831a --- /dev/null +++ b/lib/main.dart @@ -0,0 +1,38 @@ +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; +import 'package:thingsboard_app/config/routes/router.dart'; +import 'config/themes/tb_theme.dart'; + +final appRouter = ThingsboardAppRouter(); + +void main() { + runApp(ThingsboardApp()); +} + +class ThingsboardApp extends StatefulWidget { + + ThingsboardApp({Key? key}) : super(key: key); + + @override + ThingsboardAppState createState() => ThingsboardAppState(); + +} + +class ThingsboardAppState extends State { + @override + void initState() { + super.initState(); + } + + @override + Widget build(BuildContext context) { + return MaterialApp( + scaffoldMessengerKey: appRouter.tbContext.messengerKey, + title: 'ThingsBoard', + theme: tbTheme, + darkTheme: tbDarkTheme, + onGenerateRoute: appRouter.router.generator, + navigatorObservers: [appRouter.routeObserver], + ); + } +} diff --git a/lib/modules/device/devices_page.dart b/lib/modules/device/devices_page.dart new file mode 100644 index 0000000..27534b8 --- /dev/null +++ b/lib/modules/device/devices_page.dart @@ -0,0 +1,328 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/widgets.dart'; +import 'package:flutter_speed_dial/flutter_speed_dial.dart'; +import 'package:infinite_scroll_pagination/infinite_scroll_pagination.dart'; +import 'package:thingsboard_app/widgets/tb_app_bar.dart'; +import 'package:thingsboard_client/thingsboard_client.dart'; + +import 'package:thingsboard_app/core/context/tb_context.dart'; +import 'package:thingsboard_app/core/context/tb_context_widget.dart'; + +class DeviceInfoCard extends StatelessWidget { + + final DeviceInfo device; + final void Function(DeviceInfo device)? onDetails; + + DeviceInfoCard(this.device, {this.onDetails}); + + @override + Widget build(BuildContext context) { + return Card( + child: Padding( + padding: const EdgeInsets.symmetric(vertical: 5.0), + child: ListTile( + title: Text('${device.name}'), + subtitle: Text('${device.type}'), + trailing: IconButton( + icon: Icon(Icons.navigate_next), + onPressed: () { + if (onDetails != null) { + onDetails!(device); + } + }, + ), + ) + ) + ); + } + +} + +class FirstPageExceptionIndicator extends StatelessWidget { + const FirstPageExceptionIndicator({ + required this.title, + this.message, + this.onTryAgain, + Key? key, + }) : super(key: key); + + final String title; + final String? message; + final VoidCallback? onTryAgain; + + @override + Widget build(BuildContext context) { + final message = this.message; + return Center( + child: Padding( + padding: const EdgeInsets.symmetric(vertical: 32, horizontal: 16), + child: Column( + children: [ + Text( + title, + textAlign: TextAlign.center, + style: Theme.of(context).textTheme.headline6, + ), + if (message != null) + const SizedBox( + height: 16, + ), + if (message != null) + Text( + message, + textAlign: TextAlign.center, + ), + if (onTryAgain != null) + const SizedBox( + height: 48, + ), + if (onTryAgain != null) + SizedBox( + height: 50, + width: double.infinity, + child: ElevatedButton.icon( + onPressed: onTryAgain, + icon: const Icon( + Icons.refresh, + color: Colors.white, + ), + label: const Text( + 'Try Again', + style: TextStyle( + fontSize: 16, + color: Colors.white, + ), + ), + ), + ), + ], + ), + ), + ); + } +} + +class DevicesPage extends TbPageWidget { + + DevicesPage(TbContext tbContext) : super(tbContext); + + @override + _DevicesPageState createState() => _DevicesPageState(); + +} + +class _DevicesPageState extends TbPageState { + + final _searchModeNotifier = ValueNotifier(false); + + final PagingController _pagingController = PagingController(firstPageKey: PageLink(10)); + + @override + void initState() { + super.initState(); + _pagingController.addPageRequestListener((pageKey) { + _fetchPage(pageKey); + }); + } + + @override + void dispose() { + _pagingController.dispose(); + super.dispose(); + } + + bool dataLoading = false; + bool scheduleRefresh = false; + + void refresh() { + if (dataLoading) { + scheduleRefresh = true; + } else { + _pagingController.refresh(); + } + } + + Future _fetchPage(PageLink pageKey) async { + dataLoading = true; + try { + hideNotification(); + final pageData = await tbContext.tbClient.getDeviceService().getTenantDeviceInfos(pageKey); + final isLastPage = !pageData.hasNext; + if (isLastPage) { + _pagingController.appendLastPage(pageData.data); + } else { + final nextPageKey = pageKey.nextPageLink(); + _pagingController.appendPage(pageData.data, nextPageKey); + } + } catch (error) { + _pagingController.error = error; + } finally { + dataLoading = false; + if (scheduleRefresh) { + scheduleRefresh = false; + _pagingController.refresh(); + } + } + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: TbAppBar( + tbContext, + title: const Text('Devices'), + searchModeNotifier: _searchModeNotifier, + searchHint: 'Search devices', + onSearch: (String searchText) { + _pagingController.firstPageKey.textSearch = searchText; + refresh(); + }, + ), + body: Builder( + builder: (BuildContext context) { + return PagedListView( + pagingController: _pagingController, + builderDelegate: PagedChildBuilderDelegate( + itemBuilder: (context, item, index) { + return DeviceInfoCard( + item, + onDetails: (device) { + print('open details: $device'); + }, + ); + }, + noMoreItemsIndicatorBuilder: (context) => FirstPageExceptionIndicator( + title: 'No more devices' + ), + noItemsFoundIndicatorBuilder: (context) => FirstPageExceptionIndicator( + title: 'No devices found', + message: 'The list is currently empty.', + onTryAgain: () => refresh(), + ) + ), + ); + } + ), + bottomNavigationBar: BottomAppBar( + shape: CircularNotchedRectangle(), + notchMargin: 4.0, + child: new Row( + children: [ + IconButton(icon: Icon(Icons.refresh), onPressed: () { + refresh(); + },), + Spacer(), + IconButton(icon: Icon(Icons.search), onPressed: () { + _searchModeNotifier.value = true; + }), + _simplePopup(), + ], + ), + ), + floatingActionButtonLocation: FloatingActionButtonLocation.centerDocked, + floatingActionButton: FloatingActionButton( + child: const Icon(Icons.add), onPressed: () {},), + + /* SpeedDial( + animatedIcon: AnimatedIcons.menu_close, + animatedIconTheme: IconThemeData(size: 22), + backgroundColor: Theme.of(context).colorScheme.secondary, + foregroundColor: Colors.white, + visible: true, + curve: Curves.bounceIn, + children: [ + // FAB 1 + SpeedDialChild( + child: Icon(Icons.refresh), + backgroundColor: Theme.of(context).colorScheme.secondary, + foregroundColor: Colors.white, + onTap: () { + refresh(); + /* setState(() { + var rng = Random(); + var pageSize = 1 + rng.nextInt(9); + futureDevices = tbContext.tbClient.getDeviceService().getTenantDeviceInfos(PageLink(pageSize)); + }); */ + }, + label: 'Refresh', + labelStyle: TextStyle( + fontWeight: FontWeight.w500, + fontSize: 16.0), + ), + // FAB 2 + SpeedDialChild( + child: Icon(Icons.logout), + backgroundColor: Theme.of(context).colorScheme.secondary, + foregroundColor: Colors.white, + onTap: () { + tbContext.tbClient.logout(requestConfig: RequestConfig(ignoreErrors: true)); + }, + label: 'Logout', + labelStyle: TextStyle( + fontWeight: FontWeight.w500, + fontSize: 16.0), + ) + ], + )*/ + ); + } + + Widget _simplePopup() => PopupMenuButton( + itemBuilder: (context) => [ + PopupMenuItem( + value: 1, + child: Text("First"), + ), + PopupMenuItem( + value: 2, + child: ListTile( + leading: Icon(Icons.work), + title: Text('Second'), + ) + ), + ], + icon: Icon(Icons.settings), + ); + + SpeedDial speedDial(context) => SpeedDial( + animatedIcon: AnimatedIcons.menu_close, + animatedIconTheme: IconThemeData(size: 22), + backgroundColor: Theme.of(context).colorScheme.secondary, + foregroundColor: Colors.white, + visible: true, + curve: Curves.bounceIn, + children: [ + // FAB 1 + SpeedDialChild( + child: Icon(Icons.refresh), + backgroundColor: Theme.of(context).colorScheme.secondary, + foregroundColor: Colors.white, + onTap: () { + refresh(); + /* setState(() { + var rng = Random(); + var pageSize = 1 + rng.nextInt(9); + futureDevices = tbContext.tbClient.getDeviceService().getTenantDeviceInfos(PageLink(pageSize)); + }); */ + }, + label: 'Refresh', + labelStyle: TextStyle( + fontWeight: FontWeight.w500, + fontSize: 16.0), + ), + // FAB 2 + SpeedDialChild( + child: Icon(Icons.logout), + backgroundColor: Theme.of(context).colorScheme.secondary, + foregroundColor: Colors.white, + onTap: () { + tbContext.tbClient.logout(requestConfig: RequestConfig(ignoreErrors: true)); + }, + label: 'Logout', + labelStyle: TextStyle( + fontWeight: FontWeight.w500, + fontSize: 16.0), + ) + ], + ); +} diff --git a/lib/modules/home/home_page.dart b/lib/modules/home/home_page.dart new file mode 100644 index 0000000..d276472 --- /dev/null +++ b/lib/modules/home/home_page.dart @@ -0,0 +1,48 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/widgets.dart'; +import 'package:thingsboard_app/widgets/tb_app_bar.dart'; + +import 'package:thingsboard_app/core/context/tb_context.dart'; +import 'package:thingsboard_app/core/context/tb_context_widget.dart'; + +class HomePage extends TbPageWidget { + + HomePage(TbContext tbContext) : super(tbContext); + + @override + _HomePageState createState() => _HomePageState(); + +} + +class _HomePageState extends TbPageState { + + @override + void initState() { + super.initState(); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: TbAppBar( + tbContext, + title: const Text('ThingsBoard'), + ), + body: Builder( + builder: (BuildContext context) { + return Center(child: + Column( + children: [ + ElevatedButton( + child: Text('Devices'), + onPressed: () { + navigateTo('/devices'); + }, + ) + ], + ) + ); + }), + ); + } +} diff --git a/lib/modules/profile/profile_page.dart b/lib/modules/profile/profile_page.dart new file mode 100644 index 0000000..e2c3693 --- /dev/null +++ b/lib/modules/profile/profile_page.dart @@ -0,0 +1,39 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/widgets.dart'; +import 'package:thingsboard_app/widgets/tb_app_bar.dart'; + +import 'package:thingsboard_app/core/context/tb_context.dart'; +import 'package:thingsboard_app/core/context/tb_context_widget.dart'; + +class ProfilePage extends TbPageWidget { + + ProfilePage(TbContext tbContext) : super(tbContext); + + @override + _ProfilePageState createState() => _ProfilePageState(); + +} + +class _ProfilePageState extends TbPageState { + + @override + void initState() { + super.initState(); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: TbAppBar( + tbContext, + title: const Text('Profile'), + showProfile: false, + showLogout: true, + ), + body: Builder( + builder: (BuildContext context) { + return Center(child: const Text('TODO: Implement!')); + }), + ); + } +} diff --git a/lib/utils/services/tb_secure_storage.dart b/lib/utils/services/tb_secure_storage.dart new file mode 100644 index 0000000..a56b1f3 --- /dev/null +++ b/lib/utils/services/tb_secure_storage.dart @@ -0,0 +1,23 @@ +import 'package:flutter_secure_storage/flutter_secure_storage.dart'; +import 'package:thingsboard_client/thingsboard_client.dart'; + +class TbSecureStorage implements TbStorage { + + final flutterStorage = FlutterSecureStorage(); + + @override + Future deleteItem(String key) async { + return await flutterStorage.delete(key: key); + } + + @override + Future getItem(String key) async { + return await flutterStorage.read(key: key); + } + + @override + Future setItem(String key, String value) async { + return await flutterStorage.write(key: key, value: value); + } + +} diff --git a/lib/widgets/tb_app_bar.dart b/lib/widgets/tb_app_bar.dart new file mode 100644 index 0000000..4aaa47c --- /dev/null +++ b/lib/widgets/tb_app_bar.dart @@ -0,0 +1,149 @@ +import 'dart:async'; + +import 'package:stream_transform/stream_transform.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter/widgets.dart'; +import 'package:thingsboard_app/config/themes/tb_theme.dart'; +import 'package:thingsboard_app/core/context/tb_context.dart'; +import 'package:thingsboard_app/core/context/tb_context_widget.dart'; +import 'package:thingsboard_client/thingsboard_client.dart'; + +class TbAppBar extends TbContextWidget implements PreferredSizeWidget { + + final Widget? title; + final bool? showProfile; + final bool? showLogout; + final ValueNotifier? searchModeNotifier; + final String? searchHint; + final void Function(String searchText)? onSearch; + final void Function()? onSearchClosed; + + @override + final Size preferredSize; + + TbAppBar(TbContext tbContext, {this.title, this.showProfile = true, this.showLogout = false, this.searchModeNotifier, this.searchHint, this.onSearch, this.onSearchClosed}) : + preferredSize = Size.fromHeight(kToolbarHeight + 4), + super(tbContext); + + @override + _TbAppBarState createState() => _TbAppBarState(); + +} + +class _TbAppBarState extends TbContextState { + + final TextEditingController _filter = new TextEditingController(); + final _textUpdates = StreamController(); + + @override + void initState() { + super.initState(); + if (widget.searchModeNotifier != null) { + _textUpdates.add(''); + _filter.addListener(() { + _textUpdates.add(_filter.text); + }); + _textUpdates.stream.debounce(const Duration(milliseconds: 150)).distinct().forEach((element) => widget.onSearch!(element)); + } + } + + @override + void dispose() { + _filter.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + List children = []; + if (widget.searchModeNotifier != null) { + children.add(ValueListenableBuilder( + valueListenable: widget.searchModeNotifier!, + builder: (context, bool searchMode, child) { + if (searchMode) { + return buildSearchBar(); + } else { + return buildDefaultBar(); + } + } + )); + } else { + children.add(buildDefaultBar()); + } + children.add( + ValueListenableBuilder( + valueListenable: loadingNotifier, + builder: (context, bool loading, child) { + if (loading) { + return LinearProgressIndicator(); + } else { + return Container(height: 4); + } + } + ) + ); + return Column( + children: children, + ); + } + + AppBar buildSearchBar() { + return AppBar( + centerTitle: true, + title: Theme( + data: tbDarkTheme, + child: TextField( + controller: _filter, + cursorColor: Colors.white, + decoration: new InputDecoration( + border: InputBorder.none, + contentPadding: EdgeInsets.only(left: 15, bottom: 11, top: 15, right: 15), + suffixIcon: new Icon(Icons.search, color: Colors.white), + hintText: widget.searchHint ?? 'Search...', + ), + ) + ), + leading: new IconButton( + icon: Icon(Icons.arrow_back), + onPressed: () { + _filter.text = ''; + widget.searchModeNotifier!.value = false; + }, + ), + ); + } + + AppBar buildDefaultBar() { + List actions = []; + if (widget.showProfile!) { + actions.add(IconButton( + icon: Icon( + Icons.account_circle, + color: Colors.white, + ), + onPressed: () { + navigateTo('/profile'); + }, + )); + } + if (widget.showLogout!) { + actions.add( + TextButton( + child: const Text('Logout', + style: TextStyle( + color: Colors.white + ), + ), + onPressed: () { + tbContext.tbClient.logout( + requestConfig: RequestConfig(ignoreErrors: true)); + } + ) + ); + } + return AppBar( + title: widget.title, + actions: actions, + ); + } +} diff --git a/pubspec.lock b/pubspec.lock new file mode 100644 index 0000000..ed1e12f --- /dev/null +++ b/pubspec.lock @@ -0,0 +1,303 @@ +# Generated by pub +# See https://dart.dev/tools/pub/glossary#lockfile +packages: + archive: + dependency: transitive + description: + name: archive + url: "https://pub.dartlang.org" + source: hosted + version: "3.1.2" + args: + dependency: transitive + description: + name: args + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.0" + async: + dependency: transitive + description: + name: async + url: "https://pub.dartlang.org" + source: hosted + version: "2.5.0" + boolean_selector: + dependency: transitive + description: + name: boolean_selector + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.0" + characters: + dependency: transitive + description: + name: characters + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.0" + charcode: + dependency: transitive + description: + name: charcode + url: "https://pub.dartlang.org" + source: hosted + version: "1.2.0" + clock: + dependency: transitive + description: + name: clock + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.0" + collection: + dependency: transitive + description: + name: collection + url: "https://pub.dartlang.org" + source: hosted + version: "1.15.0" + crypto: + dependency: transitive + description: + name: crypto + url: "https://pub.dartlang.org" + source: hosted + version: "3.0.1" + cupertino_icons: + dependency: "direct main" + description: + name: cupertino_icons + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.2" + dio: + dependency: transitive + description: + name: dio + url: "https://pub.dartlang.org" + source: hosted + version: "4.0.0" + fake_async: + dependency: transitive + description: + name: fake_async + url: "https://pub.dartlang.org" + source: hosted + version: "1.2.0" + fluro: + dependency: "direct main" + description: + name: fluro + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.3" + flutter: + dependency: "direct main" + description: flutter + source: sdk + version: "0.0.0" + flutter_launcher_icons: + dependency: "direct dev" + description: + name: flutter_launcher_icons + url: "https://pub.dartlang.org" + source: hosted + version: "0.9.0" + flutter_secure_storage: + dependency: "direct main" + description: + name: flutter_secure_storage + url: "https://pub.dartlang.org" + source: hosted + version: "4.1.0" + flutter_speed_dial: + dependency: "direct main" + description: + name: flutter_speed_dial + url: "https://pub.dartlang.org" + source: hosted + version: "3.0.5" + flutter_svg: + dependency: "direct main" + description: + name: flutter_svg + url: "https://pub.dartlang.org" + source: hosted + version: "0.22.0" + flutter_test: + dependency: "direct dev" + description: flutter + source: sdk + version: "0.0.0" + http_parser: + dependency: transitive + description: + name: http_parser + url: "https://pub.dartlang.org" + source: hosted + version: "4.0.0" + image: + dependency: transitive + description: + name: image + url: "https://pub.dartlang.org" + source: hosted + version: "3.0.2" + infinite_scroll_pagination: + dependency: "direct main" + description: + name: infinite_scroll_pagination + url: "https://pub.dartlang.org" + source: hosted + version: "3.0.1" + jwt_decoder: + dependency: transitive + description: + name: jwt_decoder + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.1" + matcher: + dependency: transitive + description: + name: matcher + url: "https://pub.dartlang.org" + source: hosted + version: "0.12.10" + meta: + dependency: transitive + description: + name: meta + url: "https://pub.dartlang.org" + source: hosted + version: "1.3.0" + path: + dependency: transitive + description: + name: path + url: "https://pub.dartlang.org" + source: hosted + version: "1.8.0" + path_drawing: + dependency: transitive + description: + name: path_drawing + url: "https://pub.dartlang.org" + source: hosted + version: "0.5.0" + path_parsing: + dependency: transitive + description: + name: path_parsing + url: "https://pub.dartlang.org" + source: hosted + version: "0.2.0" + petitparser: + dependency: transitive + description: + name: petitparser + url: "https://pub.dartlang.org" + source: hosted + version: "4.1.0" + sky_engine: + dependency: transitive + description: flutter + source: sdk + version: "0.0.99" + sliver_tools: + dependency: transitive + description: + name: sliver_tools + url: "https://pub.dartlang.org" + source: hosted + version: "0.2.1" + source_span: + dependency: transitive + description: + name: source_span + url: "https://pub.dartlang.org" + source: hosted + version: "1.8.0" + stack_trace: + dependency: transitive + description: + name: stack_trace + url: "https://pub.dartlang.org" + source: hosted + version: "1.10.0" + stream_channel: + dependency: transitive + description: + name: stream_channel + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.0" + stream_transform: + dependency: "direct main" + description: + name: stream_transform + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.0" + string_scanner: + dependency: transitive + description: + name: string_scanner + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.0" + term_glyph: + dependency: transitive + description: + name: term_glyph + url: "https://pub.dartlang.org" + source: hosted + version: "1.2.0" + test_api: + dependency: transitive + description: + name: test_api + url: "https://pub.dartlang.org" + source: hosted + version: "0.2.19" + thingsboard_client: + dependency: "direct main" + description: + path: "." + ref: HEAD + resolved-ref: "5b9e4a092f6b5963db22fdcac64ea97215753b92" + url: "git@github.com:thingsboard/dart_thingsboard_client.git" + source: git + version: "1.0.0" + typed_data: + dependency: transitive + description: + name: typed_data + url: "https://pub.dartlang.org" + source: hosted + version: "1.3.0" + vector_math: + dependency: transitive + description: + name: vector_math + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.0" + xml: + dependency: transitive + description: + name: xml + url: "https://pub.dartlang.org" + source: hosted + version: "5.1.0" + yaml: + dependency: transitive + description: + name: yaml + url: "https://pub.dartlang.org" + source: hosted + version: "3.1.0" +sdks: + dart: ">=2.12.0 <3.0.0" + flutter: ">=1.26.0-17.6.pre" diff --git a/pubspec.yaml b/pubspec.yaml new file mode 100644 index 0000000..9e2f7ab --- /dev/null +++ b/pubspec.yaml @@ -0,0 +1,63 @@ +name: thingsboard_app +description: Flutter ThingsBoard Mobile Application + +publish_to: 'none' # Remove this line if you wish to publish to pub.dev + +version: 1.0.0 + +environment: + sdk: ">=2.12.0 <3.0.0" + +dependencies: + flutter: + sdk: flutter + thingsboard_client: + git: git@github.com:thingsboard/dart_thingsboard_client.git + flutter_secure_storage: ^4.1.0 + flutter_speed_dial: ^3.0.5 + cupertino_icons: ^1.0.2 + fluro: ^2.0.3 + flutter_svg: ^0.22.0 + infinite_scroll_pagination: ^3.0.1 + stream_transform: ^2.0.0 + +dev_dependencies: + flutter_test: + sdk: flutter + flutter_launcher_icons: ^0.9.0 + +flutter: + uses-material-design: true + assets: + - assets/images/ + + # An image asset can refer to one or more resolution-specific "variants", see + # https://flutter.dev/assets-and-images/#resolution-aware. + + # For details regarding adding assets from package dependencies, see + # https://flutter.dev/assets-and-images/#from-packages + + # To add custom fonts to your application, add a fonts section here, + # in this "flutter" section. Each entry in this list should have a + # "family" key with the font family name, and a "fonts" key with a + # list giving the asset and other descriptors for the font. For + # example: + # fonts: + # - family: Schyler + # fonts: + # - asset: fonts/Schyler-Regular.ttf + # - asset: fonts/Schyler-Italic.ttf + # style: italic + # - family: Trajan Pro + # fonts: + # - asset: fonts/TrajanPro.ttf + # - asset: fonts/TrajanPro_Bold.ttf + # weight: 700 + # + # For details regarding fonts from package dependencies, + # see https://flutter.dev/custom-fonts/#from-packages + +flutter_icons: + android: "launcher_icon" + ios: true + image_path: "assets/images/thingsboard.png" diff --git a/test/widget_test.dart b/test/widget_test.dart new file mode 100644 index 0000000..fab161e --- /dev/null +++ b/test/widget_test.dart @@ -0,0 +1,26 @@ +// This is a basic Flutter widget test. +// +// To perform an interaction with a widget in your test, use the WidgetTester +// utility that Flutter provides. For example, you can send tap and scroll +// gestures. You can also use WidgetTester to find child widgets in the widget +// tree, read text, and verify that the values of widget properties are correct. + +import 'package:flutter/material.dart'; +import 'package:flutter_test/flutter_test.dart'; + +import 'package:thingsboard_app/main.dart'; + +void main() { + testWidgets('Counter increments smoke test', (WidgetTester tester) async { + // Build our app and trigger a frame. + await tester.pumpWidget(ThingsboardApp()); + + // Verify that our counter starts at 0. + expect(find.byWidgetPredicate((widget) { + if (widget is MaterialApp) { + return widget.title == 'ThingsBoard'; + } + return false; + }), findsOneWidget); + }); +}