From 00b1d6d7052a9ff6be539fee368bed54a62cb663 Mon Sep 17 00:00:00 2001 From: Furkan Tektas Date: Tue, 19 Nov 2024 22:55:02 +0000 Subject: [PATCH 01/14] v0.1.0 - Flutter 3 and Dart 3.5, requested changes Simplified import system - now just import `timeline.dart` Removed iOS/Android from example app, focusing on web support Refactored marker system for better customization Added support for custom widget icons (#3, #12) Introduced marker icon alignment options (top, center, bottom) (#14) Added builder pattern for efficient timeline rendering Improved support for different timeline positions (start, center, end) Transparent timeline background for better theme integration (#21) Enhanced icon alignment with different sized items (#19) Better documentation and examples New onboarding example showcasing timeline features --- .pubignore | 2 + .vscode/launch.json | 51 ++ CHANGELOG.md | 36 +- README.md | 126 ++++- example/.metadata | 24 +- example/android/.gitignore | 11 - example/android/app/build.gradle | 59 --- .../android/app/src/debug/AndroidManifest.xml | 7 - .../android/app/src/main/AndroidManifest.xml | 41 -- .../com/example/example/MainActivity.kt | 6 - .../res/drawable-v21/launch_background.xml | 12 - .../main/res/drawable/launch_background.xml | 12 - .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 544 -> 0 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 442 -> 0 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 721 -> 0 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 1031 -> 0 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 1443 -> 0 bytes .../app/src/main/res/values-night/styles.xml | 18 - .../app/src/main/res/values/styles.xml | 18 - .../app/src/profile/AndroidManifest.xml | 7 - example/android/build.gradle | 31 -- example/android/gradle.properties | 3 - .../gradle/wrapper/gradle-wrapper.properties | 6 - example/android/settings.gradle | 11 - example/assets/images/empty.png | Bin 0 -> 142 bytes example/ios/.gitignore | 32 -- example/ios/Flutter/AppFrameworkInfo.plist | 26 - example/ios/Flutter/Debug.xcconfig | 1 - example/ios/Flutter/Release.xcconfig | 1 - .../ios/Flutter/flutter_export_environment.sh | 14 - example/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 - example/ios/Runner/AppDelegate.swift | 13 - .../AppIcon.appiconset/Contents.json | 122 ----- .../Icon-App-1024x1024@1x.png | Bin 11112 -> 0 bytes .../AppIcon.appiconset/Icon-App-20x20@1x.png | Bin 564 -> 0 bytes .../AppIcon.appiconset/Icon-App-20x20@2x.png | Bin 1283 -> 0 bytes .../AppIcon.appiconset/Icon-App-20x20@3x.png | Bin 1588 -> 0 bytes .../AppIcon.appiconset/Icon-App-29x29@1x.png | Bin 1025 -> 0 bytes .../AppIcon.appiconset/Icon-App-29x29@2x.png | Bin 1716 -> 0 bytes .../AppIcon.appiconset/Icon-App-29x29@3x.png | Bin 1920 -> 0 bytes .../AppIcon.appiconset/Icon-App-40x40@1x.png | Bin 1283 -> 0 bytes .../AppIcon.appiconset/Icon-App-40x40@2x.png | Bin 1895 -> 0 bytes .../AppIcon.appiconset/Icon-App-40x40@3x.png | Bin 2665 -> 0 bytes .../AppIcon.appiconset/Icon-App-60x60@2x.png | Bin 2665 -> 0 bytes .../AppIcon.appiconset/Icon-App-60x60@3x.png | Bin 3831 -> 0 bytes .../AppIcon.appiconset/Icon-App-76x76@1x.png | Bin 1888 -> 0 bytes .../AppIcon.appiconset/Icon-App-76x76@2x.png | Bin 3294 -> 0 bytes .../Icon-App-83.5x83.5@2x.png | Bin 3612 -> 0 bytes .../LaunchImage.imageset/Contents.json | 23 - .../LaunchImage.imageset/LaunchImage.png | Bin 68 -> 0 bytes .../LaunchImage.imageset/LaunchImage@2x.png | Bin 68 -> 0 bytes .../LaunchImage.imageset/LaunchImage@3x.png | Bin 68 -> 0 bytes .../LaunchImage.imageset/README.md | 5 - .../Runner/Base.lproj/LaunchScreen.storyboard | 37 -- example/ios/Runner/Base.lproj/Main.storyboard | 26 - example/ios/Runner/Info.plist | 45 -- example/ios/Runner/Runner-Bridging-Header.h | 1 - example/lib/data.dart | 84 +--- example/lib/main.dart | 62 +-- example/lib/onboarding.dart | 40 ++ example/lib/timeline.dart | 185 ++++--- example/pubspec.yaml | 8 +- example/web/icons/Icon-192.png | Bin 0 -> 5292 bytes example/web/icons/Icon-512.png | Bin 0 -> 8252 bytes example/web/icons/Icon-maskable-192.png | Bin 0 -> 5594 bytes example/web/icons/Icon-maskable-512.png | Bin 0 -> 20998 bytes example/web/index.html | 19 +- example/web/manifest.json | 12 + lib/src/marker_widget.dart | 126 +++++ lib/src/timeline_decoration.dart | 203 ++++++++ lib/src/timeline_item.dart | 164 ------ lib/src/timeline_painter.dart | 172 ------- lib/src/timeline_properties.dart | 50 ++ lib/src/timeline_widget.dart | 107 ++++ lib/src/types/marker.dart | 70 +++ lib/src/types/marker_position.dart | 33 ++ lib/src/types/timeline_icon_alignment.dart | 36 ++ lib/src/types/timeline_position.dart | 36 ++ lib/src/types/timeline_properties.dart | 50 ++ lib/src/types/types.dart | 13 + lib/timeline.dart | 127 ----- lib/timeline_list.dart | 81 +++ lib/timeline_model.dart | 47 -- pubspec.yaml | 7 +- test/timeline_test.dart | 335 ------------- timeline.iml | 22 - 93 files changed, 1241 insertions(+), 2283 deletions(-) create mode 100644 .pubignore create mode 100644 .vscode/launch.json delete mode 100644 example/android/.gitignore delete mode 100644 example/android/app/build.gradle delete mode 100644 example/android/app/src/debug/AndroidManifest.xml delete mode 100644 example/android/app/src/main/AndroidManifest.xml delete mode 100644 example/android/app/src/main/kotlin/com/example/example/MainActivity.kt delete mode 100644 example/android/app/src/main/res/drawable-v21/launch_background.xml delete mode 100644 example/android/app/src/main/res/drawable/launch_background.xml delete mode 100644 example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png delete mode 100644 example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png delete mode 100644 example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png delete mode 100644 example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png delete mode 100644 example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png delete mode 100644 example/android/app/src/main/res/values-night/styles.xml delete mode 100644 example/android/app/src/main/res/values/styles.xml delete mode 100644 example/android/app/src/profile/AndroidManifest.xml delete mode 100644 example/android/build.gradle delete mode 100644 example/android/gradle.properties delete mode 100644 example/android/gradle/wrapper/gradle-wrapper.properties delete mode 100644 example/android/settings.gradle create mode 100644 example/assets/images/empty.png delete mode 100644 example/ios/.gitignore delete mode 100644 example/ios/Flutter/AppFrameworkInfo.plist delete mode 100644 example/ios/Flutter/Debug.xcconfig delete mode 100644 example/ios/Flutter/Release.xcconfig delete mode 100755 example/ios/Flutter/flutter_export_environment.sh delete mode 100644 example/ios/Runner.xcodeproj/project.pbxproj delete mode 100644 example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata delete mode 100644 example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist delete mode 100644 example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings delete mode 100644 example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme delete mode 100644 example/ios/Runner.xcworkspace/contents.xcworkspacedata delete mode 100644 example/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist delete mode 100644 example/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings delete mode 100644 example/ios/Runner/AppDelegate.swift delete mode 100644 example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json delete mode 100644 example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png delete mode 100644 example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png delete mode 100644 example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png delete mode 100644 example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png delete mode 100644 example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png delete mode 100644 example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png delete mode 100644 example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png delete mode 100644 example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png delete mode 100644 example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png delete mode 100644 example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png delete mode 100644 example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png delete mode 100644 example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png delete mode 100644 example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png delete mode 100644 example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png delete mode 100644 example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png delete mode 100644 example/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json delete mode 100644 example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png delete mode 100644 example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png delete mode 100644 example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png delete mode 100644 example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md delete mode 100644 example/ios/Runner/Base.lproj/LaunchScreen.storyboard delete mode 100644 example/ios/Runner/Base.lproj/Main.storyboard delete mode 100644 example/ios/Runner/Info.plist delete mode 100644 example/ios/Runner/Runner-Bridging-Header.h create mode 100644 example/lib/onboarding.dart create mode 100644 example/web/icons/Icon-192.png create mode 100644 example/web/icons/Icon-512.png create mode 100644 example/web/icons/Icon-maskable-192.png create mode 100644 example/web/icons/Icon-maskable-512.png create mode 100644 lib/src/marker_widget.dart create mode 100644 lib/src/timeline_decoration.dart delete mode 100644 lib/src/timeline_item.dart delete mode 100644 lib/src/timeline_painter.dart create mode 100644 lib/src/timeline_properties.dart create mode 100644 lib/src/timeline_widget.dart create mode 100644 lib/src/types/marker.dart create mode 100644 lib/src/types/marker_position.dart create mode 100644 lib/src/types/timeline_icon_alignment.dart create mode 100644 lib/src/types/timeline_position.dart create mode 100644 lib/src/types/timeline_properties.dart create mode 100644 lib/src/types/types.dart delete mode 100644 lib/timeline.dart create mode 100644 lib/timeline_list.dart delete mode 100644 lib/timeline_model.dart delete mode 100644 test/timeline_test.dart delete mode 100644 timeline.iml diff --git a/.pubignore b/.pubignore new file mode 100644 index 0000000..8f240ab --- /dev/null +++ b/.pubignore @@ -0,0 +1,2 @@ +example/* +doc/* \ No newline at end of file diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..7fab653 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,51 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "name": "timeline_list", + "request": "launch", + "type": "dart" + }, + { + "name": "timeline_list (profile mode)", + "request": "launch", + "type": "dart", + "flutterMode": "profile" + }, + { + "name": "timeline_list (release mode)", + "request": "launch", + "type": "dart", + "flutterMode": "release" + }, + { + "name": "example (html mode)", + "cwd": "example", + "request": "launch", + "type": "dart", + "deviceId": "chrome", + "flutterMode": "debug", + "args": [ + "--web-renderer", + "html" + ] + }, + { + "name": "example (profile mode)", + "cwd": "example", + "request": "launch", + "type": "dart", + "flutterMode": "profile" + }, + { + "name": "example (release mode)", + "cwd": "example", + "request": "launch", + "type": "dart", + "flutterMode": "release" + } + ] +} \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 1ddd9d3..df8eed3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,12 +1,36 @@ -## [0.0.1] - Initial release +## [0.1.0] - 2024-11-19 -## [0.0.2] - Changing README - - Fix: Dart pub's markdown rendering issue +### Breaking Changes +- Upgraded to Flutter 3 and Dart 3.5 +- Simplified import system - now just import `timeline_list.dart` +- Removed iOS/Android from example app, focusing on web support +- Refactored marker system for better customization -## [0.0.3] - Reverse option added +### New Features +- Added support for custom widget icons (#3, #12) +- Introduced marker icon alignment options (top, center, bottom) (#14) +- Added builder pattern for efficient timeline rendering +- Improved support for different timeline positions (start, center, end) -## [0.0.4] - ScrollPhysics added for custom scroll behaviors (thanks @JJCLane) +### Improvements +- Transparent timeline background for better theme integration (#21) +- Enhanced icon alignment with different sized items (#19) +- Better documentation and examples +- New onboarding example showcasing timeline features -## [0.0.5] - `primary` option added. (Thanks @mjhansen3) +### Bug Fixes +- Fixed icon alignment issues with custom-sized items +- Resolved background color conflicts ## [0.0.6] - Support for Null Safety is now available. + +## [0.0.5] - `primary` option added. (Thanks @mjhansen3) + +## [0.0.4] - ScrollPhysics added for custom scroll behaviors (thanks @JJCLane) + +## [0.0.3] - Reverse option added + +## [0.0.2] - Changing README + - Fix: Dart pub's markdown rendering issue + +## [0.0.1] - Initial release \ No newline at end of file diff --git a/README.md b/README.md index 3bd35e1..07d3c56 100644 --- a/README.md +++ b/README.md @@ -2,48 +2,124 @@ [![pub package](https://img.shields.io/pub/v/timeline_list.svg)](https://pub.dartlang.org/packages/timeline_list) [![Build Status](https://travis-ci.org/furkantektas/timeline_list.svg?branch=master)](https://travis-ci.org/furkantektas/timeline_list) [![codecov](https://codecov.io/gh/furkantektas/timeline_list/branch/master/graph/badge.svg?token=jDCYhfSuea)](https://codecov.io/gh/furkantektas/timeline_list) -Displays a scrollable timeline with custom child widgets and custom icons. +A highly customizable Flutter widget for displaying vertical timelines with custom markers, icons, and flexible positioning options. ![Flutter Timeline List Screenshot](https://github.com/furkantektas/timeline_list/raw/master/doc/timeline_list.png?raw=true) +> 🦚 Most of the documentation was created using LLMs. If you notice any errors or typos, please submit a Pull Request or create an issue. + +## Features + +- 🎯 Three timeline positions: `start` (left), `center`, or `end` (right) +- 🎨 Fully customizable markers with any widget as content or icon +- 📍 Flexible icon alignment: `top`, `center`, or `bottom` of markers +- 🎯 Individual marker positioning for centered timelines +- 🔄 Support for reversed timeline order +- 📱 Custom scroll physics and controller support ## Installation -In your `pubspec.yaml` file within your Flutter Project: +Add this to your package's `pubspec.yaml` file: ```yaml dependencies: - timeline_list: ^0.0.3 + timeline_list: ^0.1.0 ``` -## Features +## Usage -- 3 different timeline alignments. `Left, Center, Right`. -- On demand child building with `Timeline.builder`. -- Custom icon and icon size support (icon sizes supported only on centered timeline). +### Basic Timeline -## Usage +```dart +import 'package:timeline_list/timeline_list.dart'; + +Timeline.builder( + context: context, + markerCount: 5, + properties: TimelineProperties( + iconAlignment: MarkerIconAlignment.center, + iconSize: 24, + timelinePosition: TimelinePosition.start + ), + markerBuilder: (context, index, position) => Marker( + child: Text("Step ${index + 1}"), + position: MarkerPosition.left, + ), +) +``` + +### Onboarding Example + +Here's a more advanced example showing an onboarding timeline with custom icons: ```dart -import 'package:timeline_list/timeline.dart'; -import 'package:timeline_list/timeline_model.dart'; - -List items = [ - TimelineModel(Placeholder(), - position: TimelineItemPosition.random, - iconBackground: Colors.redAccent, - icon: Icon(Icons.blur_circular)), - TimelineModel(Placeholder(), - position: TimelineItemPosition.random, - iconBackground: Colors.redAccent, - icon: Icon(Icons.blur_circular)), - ]; - return Timeline(children: items, position: TimelinePosition.Center); +var checkIcon = Container( + width: 16, + height: 16, + decoration: BoxDecoration( + shape: BoxShape.circle, + color: Colors.green + ), + child: Icon(Icons.check, color: Colors.white, size: 12) +); + +var emptyIcon = Container( + width: 16, + height: 16, + decoration: BoxDecoration( + shape: BoxShape.circle, + color: Colors.grey + ) +); + +Timeline.builder( + context: context, + markerCount: 10, + properties: TimelineProperties( + iconAlignment: MarkerIconAlignment.center, + iconSize: 16, + timelinePosition: TimelinePosition.start + ), + markerBuilder: (context, index, position) => Marker( + child: Padding( + padding: const EdgeInsets.all(8.0), + child: Text("Step ${index + 1}"), + ), + icon: index >= 8 ? emptyIcon : checkIcon, + position: MarkerPosition.left, + ), + position: TimelinePosition.center, +) ``` -## Example +## Customization + +### Timeline Properties + +- `timelinePosition`: Controls the overall timeline position (`start`, `center`, `end`) +- `iconAlignment`: Sets icon alignment relative to marker content +- `iconSize`: Defines the size of marker icons +- `lineWidth`: Sets the width of connecting lines +- `lineColor`: Customizes the color of connecting lines +- `itemGap`: Controls spacing between markers +- `iconGap`: Sets gap between icon and marker content + +### Marker Properties + +- `child`: The main content widget of the marker +- `icon`: Optional custom icon widget +- `position`: Marker position for centered timelines (`left`, `right`, `random`) +- `onTap`: Optional callback for marker tap events +- `maxWidth`: Maximum width constraint for marker content + +## Examples + +Check out the [`example/`](https://github.com/furkantektas/timeline_list/tree/master/example) folder for complete sample applications, including: +- Fully featured timeline with custom icons and widgets +- Simple onboarding flow -A sample timeline app can be found in the [`example/`](https://github.com/furkantektas/timeline_list/tree/master/example) folder. +## Contributing +This repo is looking for maintainers. Contributions are welcome! Please feel free to submit a Pull Request. -![ehlibyte games](http://ehlibyte.com/images/ehlibyte-logo-small.png?raw=true) +![ehlibyte games](https://ehlibyte.com/images/ehlibyte-logo-small.png?raw=true) diff --git a/example/.metadata b/example/.metadata index fd2a86f..8dda3be 100644 --- a/example/.metadata +++ b/example/.metadata @@ -4,7 +4,27 @@ # This file should be version controlled and should not be manually edited. version: - revision: 5391447fae6209bb21a89e6a5a6583cac1af9b4b - channel: beta + revision: "2663184aa79047d0a33a14a3b607954f8fdd8730" + channel: "stable" project_type: app + +# Tracks metadata for the flutter migrate command +migration: + platforms: + - platform: root + create_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730 + base_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730 + - platform: web + create_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730 + base_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730 + + # User provided section + + # List of Local paths (relative to this file) that should be + # ignored by the migrate tool. + # + # Files that are not part of the templates will be ignored by default. + unmanaged_files: + - 'lib/main.dart' + - 'ios/Runner.xcodeproj/project.pbxproj' diff --git a/example/android/.gitignore b/example/android/.gitignore deleted file mode 100644 index 0a741cb..0000000 --- a/example/android/.gitignore +++ /dev/null @@ -1,11 +0,0 @@ -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/example/android/app/build.gradle b/example/android/app/build.gradle deleted file mode 100644 index 6ca2344..0000000 --- a/example/android/app/build.gradle +++ /dev/null @@ -1,59 +0,0 @@ -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 "com.example.example" - minSdkVersion 16 - 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/example/android/app/src/debug/AndroidManifest.xml b/example/android/app/src/debug/AndroidManifest.xml deleted file mode 100644 index c208884..0000000 --- a/example/android/app/src/debug/AndroidManifest.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - diff --git a/example/android/app/src/main/AndroidManifest.xml b/example/android/app/src/main/AndroidManifest.xml deleted file mode 100644 index 34dd77e..0000000 --- a/example/android/app/src/main/AndroidManifest.xml +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/example/android/app/src/main/kotlin/com/example/example/MainActivity.kt b/example/android/app/src/main/kotlin/com/example/example/MainActivity.kt deleted file mode 100644 index e793a00..0000000 --- a/example/android/app/src/main/kotlin/com/example/example/MainActivity.kt +++ /dev/null @@ -1,6 +0,0 @@ -package com.example.example - -import io.flutter.embedding.android.FlutterActivity - -class MainActivity: FlutterActivity() { -} diff --git a/example/android/app/src/main/res/drawable-v21/launch_background.xml b/example/android/app/src/main/res/drawable-v21/launch_background.xml deleted file mode 100644 index f74085f..0000000 --- a/example/android/app/src/main/res/drawable-v21/launch_background.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - diff --git a/example/android/app/src/main/res/drawable/launch_background.xml b/example/android/app/src/main/res/drawable/launch_background.xml deleted file mode 100644 index 304732f..0000000 --- a/example/android/app/src/main/res/drawable/launch_background.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - diff --git a/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index db77bb4b7b0906d62b1847e87f15cdcacf6a4f29..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 544 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAj~WQl7;NpOBzNqJ&XDuZK6ep0G} zXKrG8YEWuoN@d~6R2!h8bpbvhu0Wd6uZuB!w&u2PAxD2eNXD>P5D~Wn-+_Wa#27Xc zC?Zj|6r#X(-D3u$NCt}(Ms06KgJ4FxJVv{GM)!I~&n8Bnc94O7-Hd)cjDZswgC;Qs zO=b+9!WcT8F?0rF7!Uys2bs@gozCP?z~o%U|N3vA*22NaGQG zlg@K`O_XuxvZ&Ks^m&R!`&1=spLvfx7oGDKDwpwW`#iqdw@AL`7MR}m`rwr|mZgU`8P7SBkL78fFf!WnuYWm$5Z0 zNXhDbCv&49sM544K|?c)WrFfiZvCi9h0O)B3Pgg&ebxsLQ05GG~ AQ2+n{ diff --git a/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index 17987b79bb8a35cc66c3c1fd44f5a5526c1b78be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 442 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA3?vioaBc-sk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5Xx&nMcT!A!W`0S9QKQy;}1Cl^CgaH=;G9cpY;r$Q>i*pfB zP2drbID<_#qf;rPZx^FqH)F_D#*k@@q03KywUtLX8Ua?`H+NMzkczFPK3lFz@i_kW%1NOn0|D2I9n9wzH8m|-tHjsw|9>@K=iMBhxvkv6m8Y-l zytQ?X=U+MF$@3 zt`~i=@j|6y)RWMK--}M|=T`o&^Ni>IoWKHEbBXz7?A@mgWoL>!*SXo`SZH-*HSdS+ yn*9;$7;m`l>wYBC5bq;=U}IMqLzqbYCidGC!)_gkIk_C@Uy!y&wkt5C($~2D>~)O*cj@FGjOCM)M>_ixfudOh)?xMu#Fs z#}Y=@YDTwOM)x{K_j*Q;dPdJ?Mz0n|pLRx{4n|)f>SXlmV)XB04CrSJn#dS5nK2lM zrZ9#~WelCp7&e13Y$jvaEXHskn$2V!!DN-nWS__6T*l;H&Fopn?A6HZ-6WRLFP=R` zqG+CE#d4|IbyAI+rJJ`&x9*T`+a=p|0O(+s{UBcyZdkhj=yS1>AirP+0R;mf2uMgM zC}@~JfByORAh4SyRgi&!(cja>F(l*O+nd+@4m$|6K6KDn_&uvCpV23&>G9HJp{xgg zoq1^2_p9@|WEo z*X_Uko@K)qYYv~>43eQGMdbiGbo>E~Q& zrYBH{QP^@Sti!`2)uG{irBBq@y*$B zi#&(U-*=fp74j)RyIw49+0MRPMRU)+a2r*PJ$L5roHt2$UjExCTZSbq%V!HeS7J$N zdG@vOZB4v_lF7Plrx+hxo7(fCV&}fHq)$ diff --git a/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index d5f1c8d34e7a88e3f88bea192c3a370d44689c3c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1031 zcmeAS@N?(olHy`uVBq!ia0vp^6F``Q8Ax83A=Cw=BuiW)N`mv#O3D+9QW+dm@{>{( zJaZG%Q-e|yQz{EjrrIztFa`(sgt!6~Yi|1%a`XoT0ojZ}lNrNjb9xjc(B0U1_% zz5^97Xt*%oq$rQy4?0GKNfJ44uvxI)gC`h-NZ|&0-7(qS@?b!5r36oQ}zyZrNO3 zMO=Or+<~>+A&uN&E!^Sl+>xE!QC-|oJv`ApDhqC^EWD|@=#J`=d#Xzxs4ah}w&Jnc z$|q_opQ^2TrnVZ0o~wh<3t%W&flvYGe#$xqda2bR_R zvPYgMcHgjZ5nSA^lJr%;<&0do;O^tDDh~=pIxA#coaCY>&N%M2^tq^U%3DB@ynvKo}b?yu-bFc-u0JHzced$sg7S3zqI(2 z#Km{dPr7I=pQ5>FuK#)QwK?Y`E`B?nP+}U)I#c1+FM*1kNvWG|a(TpksZQ3B@sD~b zpQ2)*V*TdwjFOtHvV|;OsiDqHi=6%)o4b!)x$)%9pGTsE z-JL={-Ffv+T87W(Xpooq<`r*VzWQcgBN$$`u}f>-ZQI1BB8ykN*=e4rIsJx9>z}*o zo~|9I;xof diff --git a/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index 4d6372eebdb28e45604e46eeda8dd24651419bc0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1443 zcmb`G{WsKk6vsdJTdFg%tJav9_E4vzrOaqkWF|A724Nly!y+?N9`YV6wZ}5(X(D_N(?!*n3`|_r0Hc?=PQw&*vnU?QTFY zB_MsH|!j$PP;I}?dppoE_gA(4uc!jV&0!l7_;&p2^pxNo>PEcNJv za5_RT$o2Mf!<+r?&EbHH6nMoTsDOa;mN(wv8RNsHpG)`^ymG-S5By8=l9iVXzN_eG%Xg2@Xeq76tTZ*dGh~Lo9vl;Zfs+W#BydUw zCkZ$o1LqWQO$FC9aKlLl*7x9^0q%0}$OMlp@Kk_jHXOjofdePND+j!A{q!8~Jn+s3 z?~~w@4?egS02}8NuulUA=L~QQfm;MzCGd)XhiftT;+zFO&JVyp2mBww?;QByS_1w! zrQlx%{^cMj0|Bo1FjwY@Q8?Hx0cIPF*@-ZRFpPc#bBw{5@tD(5%sClzIfl8WU~V#u zm5Q;_F!wa$BSpqhN>W@2De?TKWR*!ujY;Yylk_X5#~V!L*Gw~;$%4Q8~Mad z@`-kG?yb$a9cHIApZDVZ^U6Xkp<*4rU82O7%}0jjHlK{id@?-wpN*fCHXyXh(bLt* zPc}H-x0e4E&nQ>y%B-(EL=9}RyC%MyX=upHuFhAk&MLbsF0LP-q`XnH78@fT+pKPW zu72MW`|?8ht^tz$iC}ZwLp4tB;Q49K!QCF3@!iB1qOI=?w z7In!}F~ij(18UYUjnbmC!qKhPo%24?8U1x{7o(+?^Zu0Hx81|FuS?bJ0jgBhEMzf< zCgUq7r2OCB(`XkKcN-TL>u5y#dD6D!)5W?`O5)V^>jb)P)GBdy%t$uUMpf$SNV31$ zb||OojAbvMP?T@$h_ZiFLFVHDmbyMhJF|-_)HX3%m=CDI+ID$0^C>kzxprBW)hw(v zr!Gmda);ICoQyhV_oP5+C%?jcG8v+D@9f?Dk*!BxY}dazmrT@64UrP3hlslANK)bq z$67n83eh}OeW&SV@HG95P|bjfqJ7gw$e+`Hxo!4cx`jdK1bJ>YDSpGKLPZ^1cv$ek zIB?0S<#tX?SJCLWdMd{-ME?$hc7A$zBOdIJ)4!KcAwb=VMov)nK;9z>x~rfT1>dS+ zZ6#`2v@`jgbqq)P22H)Tx2CpmM^o1$B+xT6`(v%5xJ(?j#>Q$+rx_R|7TzDZe{J6q zG1*EcU%tE?!kO%^M;3aM6JN*LAKUVb^xz8-Pxo#jR5(-KBeLJvA@-gxNHx0M-ZJLl z;#JwQoh~9V?`UVo#}{6ka@II>++D@%KqGpMdlQ}?9E*wFcf5(#XQnP$Dk5~%iX^>f z%$y;?M0BLp{O3a(-4A?ewryHrrD%cx#Q^%KY1H zNre$ve+vceSLZcNY4U(RBX&)oZn*Py()h)XkE?PL$!bNb{N5FVI2Y%LKEm%yvpyTP z(1P?z~7YxD~Rf<(a@_y` diff --git a/example/android/app/src/main/res/values-night/styles.xml b/example/android/app/src/main/res/values-night/styles.xml deleted file mode 100644 index 449a9f9..0000000 --- a/example/android/app/src/main/res/values-night/styles.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - diff --git a/example/android/app/src/main/res/values/styles.xml b/example/android/app/src/main/res/values/styles.xml deleted file mode 100644 index d74aa35..0000000 --- a/example/android/app/src/main/res/values/styles.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - diff --git a/example/android/app/src/profile/AndroidManifest.xml b/example/android/app/src/profile/AndroidManifest.xml deleted file mode 100644 index c208884..0000000 --- a/example/android/app/src/profile/AndroidManifest.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - diff --git a/example/android/build.gradle b/example/android/build.gradle deleted file mode 100644 index c505a86..0000000 --- a/example/android/build.gradle +++ /dev/null @@ -1,31 +0,0 @@ -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/example/android/gradle.properties b/example/android/gradle.properties deleted file mode 100644 index 94adc3a..0000000 --- a/example/android/gradle.properties +++ /dev/null @@ -1,3 +0,0 @@ -org.gradle.jvmargs=-Xmx1536M -android.useAndroidX=true -android.enableJetifier=true diff --git a/example/android/gradle/wrapper/gradle-wrapper.properties b/example/android/gradle/wrapper/gradle-wrapper.properties deleted file mode 100644 index bc6a58a..0000000 --- a/example/android/gradle/wrapper/gradle-wrapper.properties +++ /dev/null @@ -1,6 +0,0 @@ -#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/example/android/settings.gradle b/example/android/settings.gradle deleted file mode 100644 index 44e62bc..0000000 --- a/example/android/settings.gradle +++ /dev/null @@ -1,11 +0,0 @@ -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/example/assets/images/empty.png b/example/assets/images/empty.png new file mode 100644 index 0000000000000000000000000000000000000000..0cb6d4116a1a0206a71afb87515b19fee550e062 GIT binary patch literal 142 zcmeAS@N?(olHy`uVBq!ia0y~yU^>9Sz}Umc3>0}cxlIj7F$egBxc>kDfB6yV6F@Fw zNswPKgTu2MX+Vypr;B4qMcms1hKxYoA%)+|w;kh)kN~prg9D76YZw?Ce$9;psq=L8 Kb6Mw<&;$T<@gS4{ literal 0 HcmV?d00001 diff --git a/example/ios/.gitignore b/example/ios/.gitignore deleted file mode 100644 index e96ef60..0000000 --- a/example/ios/.gitignore +++ /dev/null @@ -1,32 +0,0 @@ -*.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/example/ios/Flutter/AppFrameworkInfo.plist b/example/ios/Flutter/AppFrameworkInfo.plist deleted file mode 100644 index 9367d48..0000000 --- a/example/ios/Flutter/AppFrameworkInfo.plist +++ /dev/null @@ -1,26 +0,0 @@ - - - - - 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/example/ios/Flutter/Debug.xcconfig b/example/ios/Flutter/Debug.xcconfig deleted file mode 100644 index 592ceee..0000000 --- a/example/ios/Flutter/Debug.xcconfig +++ /dev/null @@ -1 +0,0 @@ -#include "Generated.xcconfig" diff --git a/example/ios/Flutter/Release.xcconfig b/example/ios/Flutter/Release.xcconfig deleted file mode 100644 index 592ceee..0000000 --- a/example/ios/Flutter/Release.xcconfig +++ /dev/null @@ -1 +0,0 @@ -#include "Generated.xcconfig" diff --git a/example/ios/Flutter/flutter_export_environment.sh b/example/ios/Flutter/flutter_export_environment.sh deleted file mode 100755 index 99307ce..0000000 --- a/example/ios/Flutter/flutter_export_environment.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh -# This is a generated file; do not edit or check into version control. -export "FLUTTER_ROOT=/Users/samramezanli/StudioProjects/flutter" -export "FLUTTER_APPLICATION_PATH=/Users/samramezanli/AndroidStudioProjects/timeline_list/example" -export "COCOAPODS_PARALLEL_CODE_SIGN=true" -export "FLUTTER_TARGET=lib/main.dart" -export "FLUTTER_BUILD_DIR=build" -export "SYMROOT=${SOURCE_ROOT}/../build/ios" -export "FLUTTER_BUILD_NAME=1.0.0" -export "FLUTTER_BUILD_NUMBER=1" -export "DART_OBFUSCATION=false" -export "TRACK_WIDGET_CREATION=false" -export "TREE_SHAKE_ICONS=false" -export "PACKAGE_CONFIG=.packages" diff --git a/example/ios/Runner.xcodeproj/project.pbxproj b/example/ios/Runner.xcodeproj/project.pbxproj deleted file mode 100644 index c6759a6..0000000 --- a/example/ios/Runner.xcodeproj/project.pbxproj +++ /dev/null @@ -1,471 +0,0 @@ -// !$*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.example; - 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.example; - 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.example; - 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 */; -} diff --git a/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 919434a..0000000 --- a/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist deleted file mode 100644 index 18d9810..0000000 --- a/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +++ /dev/null @@ -1,8 +0,0 @@ - - - - - IDEDidComputeMac32BitWarning - - - diff --git a/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings deleted file mode 100644 index f9b0d7c..0000000 --- a/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings +++ /dev/null @@ -1,8 +0,0 @@ - - - - - PreviewsEnabled - - - diff --git a/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme deleted file mode 100644 index a28140c..0000000 --- a/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/example/ios/Runner.xcworkspace/contents.xcworkspacedata b/example/ios/Runner.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 1d526a1..0000000 --- a/example/ios/Runner.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/example/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/example/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist deleted file mode 100644 index 18d9810..0000000 --- a/example/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +++ /dev/null @@ -1,8 +0,0 @@ - - - - - IDEDidComputeMac32BitWarning - - - diff --git a/example/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/example/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings deleted file mode 100644 index f9b0d7c..0000000 --- a/example/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings +++ /dev/null @@ -1,8 +0,0 @@ - - - - - PreviewsEnabled - - - diff --git a/example/ios/Runner/AppDelegate.swift b/example/ios/Runner/AppDelegate.swift deleted file mode 100644 index 70693e4..0000000 --- a/example/ios/Runner/AppDelegate.swift +++ /dev/null @@ -1,13 +0,0 @@ -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/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json deleted file mode 100644 index d36b1fa..0000000 --- a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json +++ /dev/null @@ -1,122 +0,0 @@ -{ - "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/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png deleted file mode 100644 index 3d43d11e66f4de3da27ed045ca4fe38ad8b48094..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11112 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 P-1+_A+?hGkL;m(J7kc&K diff --git a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png deleted file mode 100644 index 28c6bf03016f6c994b70f38d1b7346e5831b531f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 564 zcmV-40?Yl0P)Px$?ny*JR5%f>l)FnDQ543{x%ZCiu33$Wg!pQFfT_}?5Q|_VSlIbLC`dpoMXL}9 zHfd9&47Mo(7D231gb+kjFxZHS4-m~7WurTH&doVX2KI5sU4v(sJ1@T9eCIKPjsqSr z)C01LsCxk=72-vXmX}CQD#BD;Cthymh&~=f$Q8nn0J<}ZrusBy4PvRNE}+1ceuj8u z0mW5k8fmgeLnTbWHGwfKA3@PdZxhn|PypR&^p?weGftrtCbjF#+zk_5BJh7;0`#Wr zgDpM_;Ax{jO##IrT`Oz;MvfwGfV$zD#c2xckpcXC6oou4ML~ezCc2EtnsQTB4tWNg z?4bkf;hG7IMfhgNI(FV5Gs4|*GyMTIY0$B=_*mso9Ityq$m^S>15>-?0(zQ<8Qy<_TjHE33(?_M8oaM zyc;NxzRVK@DL6RJnX%U^xW0Gpg(lXp(!uK1v0YgHjs^ZXSQ|m#lV7ip7{`C_J2TxPmfw%h$|%acrYHt)Re^PB%O&&=~a zhS(%I#+V>J-vjIib^<+s%ludY7y^C(P8nmqn9fp!i+?vr`bziDE=bx`%2W#Xyrj|i z!XQ4v1%L`m{7KT7q+LZNB^h8Ha2e=`Wp65^0;J00)_^G=au=8Yo;1b`CV&@#=jIBo zjN^JNVfYSs)+kDdGe7`1&8!?MQYKS?DuHZf3iogk_%#9E|5S zWeHrmAo>P;ejX7mwq#*}W25m^ZI+{(Z8fI?4jM_fffY0nok=+88^|*_DwcW>mR#e+ zX$F_KMdb6sRz!~7KkyN0G(3XQ+;z3X%PZ4gh;n-%62U<*VUKNv(D&Q->Na@Xb&u5Q3`3DGf+a8O5x7c#7+R+EAYl@R5us)CIw z7sT@_y~Ao@uL#&^LIh&QceqiT^+lb0YbFZt_SHOtWA%mgPEKVNvVgCsXy{5+zl*X8 zCJe)Q@y>wH^>l4;h1l^Y*9%-23TSmE>q5nI@?mt%n;Sj4Qq`Z+ib)a*a^cJc%E9^J zB;4s+K@rARbcBLT5P=@r;IVnBMKvT*)ew*R;&8vu%?Z&S>s?8?)3*YawM0P4!q$Kv zMmKh3lgE~&w&v%wVzH3Oe=jeNT=n@Y6J6TdHWTjXfX~-=1A1Bw`EW8rn}MqeI34nh zexFeA?&C3B2(E?0{drE@DA2pu(A#ElY&6el60Rn|Qpn-FkfQ8M93AfWIr)drgDFEU zghdWK)^71EWCP(@(=c4kfH1Y(4iugD4fve6;nSUpLT%!)MUHs1!zJYy4y||C+SwQ! z)KM&$7_tyM`sljP2fz6&Z;jxRn{Wup8IOUx8D4uh&(=O zx-7$a;U><*5L^!%xRlw)vAbh;sdlR||& ze}8_8%)c2Fwy=F&H|LM+p{pZB5DKTx>Y?F1N%BlZkXf!}JeGuMZk~LPi7{cidvUGB zAJ4LVeNV%XO>LTrklB#^-;8nb;}6l;1oW&WS=Mz*Az!4cqqQzbOSFq`$Q%PfD7srM zpKgP-D_0XPTRX*hAqeq0TDkJ;5HB1%$3Np)99#16c{ zJImlNL(npL!W|Gr_kxl1GVmF5&^$^YherS7+~q$p zt}{a=*RiD2Ikv6o=IM1kgc7zqpaZ;OB)P!1zz*i3{U()Dq#jG)egvK}@uFLa`oyWZ zf~=MV)|yJn`M^$N%ul5);JuQvaU1r2wt(}J_Qgyy`qWQI`hEeRX0uC@c1(dQ2}=U$ tNIIaX+dr)NRWXcxoR{>fqI{SF_dm1Ylv~=3YHI)h002ovPDHLkV1g(pWS;;4 diff --git a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png deleted file mode 100644 index f091b6b0bca859a3f474b03065bef75ba58a9e4c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1588 zcmV-42Fv-0P)C1SqPt}wig>|5Crh^=oyX$BK<}M8eLU3e2hGT;=G|!_SP)7zNI6fqUMB=)y zRAZ>eDe#*r`yDAVgB_R*LB*MAc)8(b{g{9McCXW!lq7r(btRoB9!8B-#AI6JMb~YFBEvdsV)`mEQO^&#eRKx@b&x- z5lZm*!WfD8oCLzfHGz#u7sT0^VLMI1MqGxF^v+`4YYnVYgk*=kU?HsSz{v({E3lb9 z>+xILjBN)t6`=g~IBOelGQ(O990@BfXf(DRI5I$qN$0Gkz-FSc$3a+2fX$AedL4u{ z4V+5Ong(9LiGcIKW?_352sR;LtDPmPJXI{YtT=O8=76o9;*n%_m|xo!i>7$IrZ-{l z-x3`7M}qzHsPV@$v#>H-TpjDh2UE$9g6sysUREDy_R(a)>=eHw-WAyfIN z*qb!_hW>G)Tu8nSw9yn#3wFMiLcfc4pY0ek1}8(NqkBR@t4{~oC>ryc-h_ByH(Cg5 z>ao-}771+xE3um9lWAY1FeQFxowa1(!J(;Jg*wrg!=6FdRX+t_<%z&d&?|Bn){>zm zZQj(aA_HeBY&OC^jj*)N`8fa^ePOU72VpInJoI1?`ty#lvlNzs(&MZX+R%2xS~5Kh zX*|AU4QE#~SgPzOXe9>tRj>hjU@c1k5Y_mW*Jp3fI;)1&g3j|zDgC+}2Q_v%YfDax z!?umcN^n}KYQ|a$Lr+51Nf9dkkYFSjZZjkma$0KOj+;aQ&721~t7QUKx61J3(P4P1 zstI~7-wOACnWP4=8oGOwz%vNDqD8w&Q`qcNGGrbbf&0s9L0De{4{mRS?o0MU+nR_! zrvshUau0G^DeMhM_v{5BuLjb#Hh@r23lDAk8oF(C+P0rsBpv85EP>4CVMx#04MOfG z;P%vktHcXwTj~+IE(~px)3*MY77e}p#|c>TD?sMatC0Tu4iKKJ0(X8jxQY*gYtxsC z(zYC$g|@+I+kY;dg_dE>scBf&bP1Nc@Hz<3R)V`=AGkc;8CXqdi=B4l2k|g;2%#m& z*jfX^%b!A8#bI!j9-0Fi0bOXl(-c^AB9|nQaE`*)Hw+o&jS9@7&Gov#HbD~#d{twV zXd^Tr^mWLfFh$@Dr$e;PBEz4(-2q1FF0}c;~B5sA}+Q>TOoP+t>wf)V9Iy=5ruQa;z)y zI9C9*oUga6=hxw6QasLPnee@3^Rr*M{CdaL5=R41nLs(AHk_=Y+A9$2&H(B7!_pURs&8aNw7?`&Z&xY_Ye z)~D5Bog^td-^QbUtkTirdyK^mTHAOuptDflut!#^lnKqU md>ggs(5nOWAqO?umG&QVYK#ibz}*4>0000U6E9hRK9^#O7(mu>ETqrXGsduA8$)?`v2seloOCza43C{NQ$$gAOH**MCn0Q?+L7dl7qnbRdqZ8LSVp1ItDxhxD?t@5_yHg6A8yI zC*%Wgg22K|8E#!~cTNYR~@Y9KepMPrrB8cABapAFa=`H+UGhkXUZV1GnwR1*lPyZ;*K(i~2gp|@bzp8}og7e*#% zEnr|^CWdVV!-4*Y_7rFvlww2Ze+>j*!Z!pQ?2l->4q#nqRu9`ELo6RMS5=br47g_X zRw}P9a7RRYQ%2Vsd0Me{_(EggTnuN6j=-?uFS6j^u69elMypu?t>op*wBx<=Wx8?( ztpe^(fwM6jJX7M-l*k3kEpWOl_Vk3@(_w4oc}4YF4|Rt=2V^XU?#Yz`8(e?aZ@#li0n*=g^qOcVpd-Wbok=@b#Yw zqn8u9a)z>l(1kEaPYZ6hwubN6i<8QHgsu0oE) ziJ(p;Wxm>sf!K+cw>R-(^Y2_bahB+&KI9y^);#0qt}t-$C|Bo71lHi{_+lg#f%RFy z0um=e3$K3i6K{U_4K!EX?F&rExl^W|G8Z8;`5z-k}OGNZ0#WVb$WCpQu-_YsiqKP?BB# vzVHS-CTUF4Ozn5G+mq_~Qqto~ahA+K`|lyv3(-e}00000NkvXXu0mjfd`9t{ diff --git a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png deleted file mode 100644 index d0ef06e7edb86cdfe0d15b4b0d98334a86163658..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1716 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 diff --git a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png deleted file mode 100644 index c8f9ed8f5cee1c98386d13b17e89f719e83555b2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1895 zcmV-t2blPYP)FQtfgmafE#=YDCq`qUBt#QpG%*H6QHY765~R=q zZ6iudfM}q!Pz#~9JgOi8QJ|DSu?1-*(kSi1K4#~5?#|rh?sS)(-JQqX*}ciXJ56_H zdw=^s_srbAdqxlvGyrgGet#6T7_|j;95sL%MtM;q86vOxKM$f#puR)Bjv9Zvz9-di zXOTSsZkM83)E9PYBXC<$6(|>lNLVBb&&6y{NByFCp%6+^ALR@NCTse_wqvNmSWI-m z!$%KlHFH2omF!>#%1l3LTZg(s7eof$7*xB)ZQ0h?ejh?Ta9fDv59+u#MokW+1t8Zb zgHv%K(u9G^Lv`lh#f3<6!JVTL3(dCpxHbnbA;kKqQyd1~^Xe0VIaYBSWm6nsr;dFj z4;G-RyL?cYgsN1{L4ZFFNa;8)Rv0fM0C(~Tkit94 zz#~A)59?QjD&pAPSEQ)p8gP|DS{ng)j=2ux)_EzzJ773GmQ_Cic%3JJhC0t2cx>|v zJcVusIB!%F90{+}8hG3QU4KNeKmK%T>mN57NnCZ^56=0?&3@!j>a>B43pi{!u z7JyDj7`6d)qVp^R=%j>UIY6f+3`+qzIc!Y_=+uN^3BYV|o+$vGo-j-Wm<10%A=(Yk^beI{t%ld@yhKjq0iNjqN4XMGgQtbKubPM$JWBz}YA65k%dm*awtC^+f;a-x4+ddbH^7iDWGg&N0n#MW{kA|=8iMUiFYvMoDY@sPC#t$55gn6ykUTPAr`a@!(;np824>2xJthS z*ZdmT`g5-`BuJs`0LVhz+D9NNa3<=6m;cQLaF?tCv8)zcRSh66*Z|vXhG@$I%U~2l z?`Q zykI#*+rQ=z6Jm=Bui-SfpDYLA=|vzGE(dYm=OC8XM&MDo7ux4UF1~0J1+i%aCUpRe zt3L_uNyQ*cE(38Uy03H%I*)*Bh=Lb^Xj3?I^Hnbeq72(EOK^Y93CNp*uAA{5Lc=ky zx=~RKa4{iTm{_>_vSCm?$Ej=i6@=m%@VvAITnigVg{&@!7CDgs908761meDK5azA} z4?=NOH|PdvabgJ&fW2{Mo$Q0CcD8Qc84%{JPYt5EiG{MdLIAeX%T=D7NIP4%Hw}p9 zg)==!2Lbp#j{u_}hMiao9=!VSyx0gHbeCS`;q&vzeq|fs`y&^X-lso(Ls@-706qmA z7u*T5PMo_w3{se1t2`zWeO^hOvTsohG_;>J0wVqVe+n)AbQCx)yh9;w+J6?NF5Lmo zecS@ieAKL8%bVd@+-KT{yI|S}O>pYckUFs;ry9Ow$CD@ztz5K-*D$^{i(_1llhSh^ zEkL$}tsQt5>QA^;QgjgIfBDmcOgi5YDyu?t6vSnbp=1+@6D& z5MJ}B8q;bRlVoxasyhcUF1+)o`&3r0colr}QJ3hcSdLu;9;td>kf@Tcn<@9sIx&=m z;AD;SCh95=&p;$r{Xz3iWCO^MX83AGJ(yH&eTXgv|0=34#-&WAmw{)U7OU9!Wz^!7 zZ%jZFi@JR;>Mhi7S>V7wQ176|FdW2m?&`qa(ScO^CFPR80HucLHOTy%5s*HR0^8)i h0WYBP*#0Ks^FNSabJA*5${_#%002ovPDHLkV1oKhTl@e3 diff --git a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png deleted file mode 100644 index a6d6b8609df07bf62e5100a53a01510388bd2b22..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2665 zcmV-v3YPVWP)oFh3q0MFesq&64WThn3$;G69TfjsAv=f2G9}p zgSx99+!YV6qME!>9MD13x)k(+XE7W?_O4LoLb5ND8 zaV{9+P@>42xDfRiYBMSgD$0!vssptcb;&?u9u(LLBKmkZ>RMD=kvD3h`sk6!QYtBa ztlZI#nu$8lJ^q2Z79UTgZe>BU73(Aospiq+?SdMt8lDZ;*?@tyWVZVS_Q7S&*tJaiRlJ z+aSMOmbg3@h5}v;A*c8SbqM3icg-`Cnwl;7Ts%A1RkNIp+Txl-Ckkvg4oxrqGA5ewEgYqwtECD<_3Egu)xGllKt&J8g&+=ac@Jq4-?w6M3b*>w5 z69N3O%=I^6&UL5gZ!}trC7bUj*12xLdkNs~Bz4QdJJ*UDZox2UGR}SNg@lmOvhCc~ z*f_UeXv(=#I#*7>VZx2ObEN~UoGUTl=-@)E;YtCRZ>SVp$p9yG5hEFZ!`wI!spd)n zSk+vK0Vin7FL{7f&6OB%f;SH22dtbcF<|9fi2Fp%q4kxL!b1#l^)8dUwJ zwEf{(wJj@8iYDVnKB`eSU+;ml-t2`@%_)0jDM`+a46xhDbBj2+&Ih>1A>6aky#(-SYyE{R3f#y57wfLs z6w1p~$bp;6!9DX$M+J~S@D6vJAaElETnsX4h9a5tvPhC3L@qB~bOzkL@^z0k_hS{T4PF*TDrgdXp+dzsE? z>V|VR035Pl9n5&-RePFdS{7KAr2vPOqR9=M$vXA1Yy5>w;EsF`;OK{2pkn-kpp9Pw z)r;5JfJKKaT$4qCb{TaXHjb$QA{y0EYy*+b1XI;6Ah- zw13P)xT`>~eFoJC!>{2XL(a_#upp3gaR1#5+L(Jmzp4TBnx{~WHedpJ1ch8JFk~Sw z>F+gN+i+VD?gMXwcIhn8rz`>e>J^TI3E-MW>f}6R-pL}>WMOa0k#jN+`RyUVUC;#D zg|~oS^$6%wpF{^Qr+}X>0PKcr3Fc&>Z>uv@C);pwDs@2bZWhYP!rvGx?_|q{d`t<*XEb#=aOb=N+L@CVBGqImZf&+a zCQEa3$~@#kC);pasdG=f6tuIi0PO-y&tvX%>Mv=oY3U$nD zJ#gMegnQ46pq+3r=;zmgcG+zRc9D~c>z+jo9&D+`E6$LmyFqlmCYw;-Zooma{sR@~ z)_^|YL1&&@|GXo*pivH7k!msl+$Sew3%XJnxajt0K%3M6Bd&YFNy9}tWG^aovK2eX z1aL1%7;KRDrA@eG-Wr6w+;*H_VD~qLiVI`{_;>o)k`{8xa3EJT1O_>#iy_?va0eR? zDV=N%;Zjb%Z2s$@O>w@iqt!I}tLjGk!=p`D23I}N4Be@$(|iSA zf3Ih7b<{zqpDB4WF_5X1(peKe+rASze%u8eKLn#KKXt;UZ+Adf$_TO+vTqshLLJ5c z52HucO=lrNVae5XWOLm!V@n-ObU11!b+DN<$RuU+YsrBq*lYT;?AwJpmNKniF0Q1< zJCo>Q$=v$@&y=sj6{r!Y&y&`0$-I}S!H_~pI&2H8Z1C|BX4VgZ^-! zje3-;x0PBD!M`v*J_)rL^+$<1VJhH*2Fi~aA7s&@_rUHYJ9zD=M%4AFQ`}k8OC$9s XsPq=LnkwKG00000NkvXXu0mjfhAk5^ diff --git a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png deleted file mode 100644 index a6d6b8609df07bf62e5100a53a01510388bd2b22..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2665 zcmV-v3YPVWP)oFh3q0MFesq&64WThn3$;G69TfjsAv=f2G9}p zgSx99+!YV6qME!>9MD13x)k(+XE7W?_O4LoLb5ND8 zaV{9+P@>42xDfRiYBMSgD$0!vssptcb;&?u9u(LLBKmkZ>RMD=kvD3h`sk6!QYtBa ztlZI#nu$8lJ^q2Z79UTgZe>BU73(Aospiq+?SdMt8lDZ;*?@tyWVZVS_Q7S&*tJaiRlJ z+aSMOmbg3@h5}v;A*c8SbqM3icg-`Cnwl;7Ts%A1RkNIp+Txl-Ckkvg4oxrqGA5ewEgYqwtECD<_3Egu)xGllKt&J8g&+=ac@Jq4-?w6M3b*>w5 z69N3O%=I^6&UL5gZ!}trC7bUj*12xLdkNs~Bz4QdJJ*UDZox2UGR}SNg@lmOvhCc~ z*f_UeXv(=#I#*7>VZx2ObEN~UoGUTl=-@)E;YtCRZ>SVp$p9yG5hEFZ!`wI!spd)n zSk+vK0Vin7FL{7f&6OB%f;SH22dtbcF<|9fi2Fp%q4kxL!b1#l^)8dUwJ zwEf{(wJj@8iYDVnKB`eSU+;ml-t2`@%_)0jDM`+a46xhDbBj2+&Ih>1A>6aky#(-SYyE{R3f#y57wfLs z6w1p~$bp;6!9DX$M+J~S@D6vJAaElETnsX4h9a5tvPhC3L@qB~bOzkL@^z0k_hS{T4PF*TDrgdXp+dzsE? z>V|VR035Pl9n5&-RePFdS{7KAr2vPOqR9=M$vXA1Yy5>w;EsF`;OK{2pkn-kpp9Pw z)r;5JfJKKaT$4qCb{TaXHjb$QA{y0EYy*+b1XI;6Ah- zw13P)xT`>~eFoJC!>{2XL(a_#upp3gaR1#5+L(Jmzp4TBnx{~WHedpJ1ch8JFk~Sw z>F+gN+i+VD?gMXwcIhn8rz`>e>J^TI3E-MW>f}6R-pL}>WMOa0k#jN+`RyUVUC;#D zg|~oS^$6%wpF{^Qr+}X>0PKcr3Fc&>Z>uv@C);pwDs@2bZWhYP!rvGx?_|q{d`t<*XEb#=aOb=N+L@CVBGqImZf&+a zCQEa3$~@#kC);pasdG=f6tuIi0PO-y&tvX%>Mv=oY3U$nD zJ#gMegnQ46pq+3r=;zmgcG+zRc9D~c>z+jo9&D+`E6$LmyFqlmCYw;-Zooma{sR@~ z)_^|YL1&&@|GXo*pivH7k!msl+$Sew3%XJnxajt0K%3M6Bd&YFNy9}tWG^aovK2eX z1aL1%7;KRDrA@eG-Wr6w+;*H_VD~qLiVI`{_;>o)k`{8xa3EJT1O_>#iy_?va0eR? zDV=N%;Zjb%Z2s$@O>w@iqt!I}tLjGk!=p`D23I}N4Be@$(|iSA zf3Ih7b<{zqpDB4WF_5X1(peKe+rASze%u8eKLn#KKXt;UZ+Adf$_TO+vTqshLLJ5c z52HucO=lrNVae5XWOLm!V@n-ObU11!b+DN<$RuU+YsrBq*lYT;?AwJpmNKniF0Q1< zJCo>Q$=v$@&y=sj6{r!Y&y&`0$-I}S!H_~pI&2H8Z1C|BX4VgZ^-! zje3-;x0PBD!M`v*J_)rL^+$<1VJhH*2Fi~aA7s&@_rUHYJ9zD=M%4AFQ`}k8OC$9s XsPq=LnkwKG00000NkvXXu0mjfhAk5^ diff --git a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png deleted file mode 100644 index 75b2d164a5a98e212cca15ea7bf2ab5de5108680..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3831 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 diff --git a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png deleted file mode 100644 index c4df70d39da7941ef3f6dcb7f06a192d8dcb308d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1888 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 iW8Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v diff --git a/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png b/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png deleted file mode 100644 index 9da19eacad3b03bb08bbddbbf4ac48dd78b3d838..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v diff --git a/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png b/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png deleted file mode 100644 index 9da19eacad3b03bb08bbddbbf4ac48dd78b3d838..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v diff --git a/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md b/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md deleted file mode 100644 index 89c2725..0000000 --- a/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# 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/example/ios/Runner/Base.lproj/LaunchScreen.storyboard b/example/ios/Runner/Base.lproj/LaunchScreen.storyboard deleted file mode 100644 index f2e259c..0000000 --- a/example/ios/Runner/Base.lproj/LaunchScreen.storyboard +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/example/ios/Runner/Base.lproj/Main.storyboard b/example/ios/Runner/Base.lproj/Main.storyboard deleted file mode 100644 index f3c2851..0000000 --- a/example/ios/Runner/Base.lproj/Main.storyboard +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/example/ios/Runner/Info.plist b/example/ios/Runner/Info.plist deleted file mode 100644 index a060db6..0000000 --- a/example/ios/Runner/Info.plist +++ /dev/null @@ -1,45 +0,0 @@ - - - - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - example - 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/example/ios/Runner/Runner-Bridging-Header.h b/example/ios/Runner/Runner-Bridging-Header.h deleted file mode 100644 index 308a2a5..0000000 --- a/example/ios/Runner/Runner-Bridging-Header.h +++ /dev/null @@ -1 +0,0 @@ -#import "GeneratedPluginRegistrant.h" diff --git a/example/lib/data.dart b/example/lib/data.dart index e4e815e..fff77ad 100644 --- a/example/lib/data.dart +++ b/example/lib/data.dart @@ -7,13 +7,14 @@ class Doodle { final String doodle; final Color iconBackground; final Icon icon; + const Doodle( - {this.name, - this.time, - this.content, - this.doodle, - this.icon, - this.iconBackground}); + {required this.name, + required this.time, + required this.content, + required this.doodle, + required this.icon, + required this.iconBackground}); } const List doodles = [ @@ -30,13 +31,10 @@ const List doodles = [ name: "Abu al-Wafa’ al-Buzjani", time: "940 - 998", content: - " Abu al-Wafa' is an innovator whose contributions to science include one of the first known introductions to negative numbers, and the development of the first quadrant, a tool used by astronomers to examine the sky. His pioneering work in spherical trigonometry was hugely influential for both mathematics and astronomy.", + "Abu al-Wafa' is an innovator whose contributions to science include one of the first known introductions to negative numbers, and the development of the first quadrant, a tool used by astronomers to examine the sky. His pioneering work in spherical trigonometry was hugely influential for both mathematics and astronomy.", doodle: "https://www.google.com/logos/doodles/2015/abu-al-wafa-al-buzjanis-1075th-birthday-5436382608621568-hp2x.jpg", - icon: Icon( - Icons.exposure, - color: Colors.white, - ), + icon: Icon(Icons.exposure, color: Colors.white), iconBackground: Colors.redAccent), Doodle( name: "Al-Hasan Ibn al-Haytham", @@ -44,24 +42,16 @@ const List doodles = [ content: "Ibn al-Haytham was the first to explain through experimentation that vision occurs when light bounces on an object and then is directed to one's eyes. He was also an early proponent of the concept that a hypothesis must be proved by experiments based on confirmable procedures or mathematical evidence—hence understanding the scientific method five centuries before Renaissance scientists.", doodle: - "https://lh3.googleusercontent.com/ZTlbHDpH59p-aH2h3ggUdhByhuq1AfviGuoQpt3QqaC7bROzbKuARKeEfggkjRmAwfB1p4yKbcjPusNDNIE9O7STbc9C0SAU0hmyTjA=s660", - icon: Icon( - Icons.visibility, - color: Colors.black87, - size: 32.0, - ), - iconBackground: Colors.yellow), + "https://www.google.com/logos/doodles/2013/alhazens_1048th_birthday-1974005-hp.jpg", + icon: Icon(Icons.visibility, color: Colors.black87, size: 32.0), + iconBackground: Colors.pinkAccent), Doodle( name: "Al-Bīrūnī", time: "973 - 1050", content: "Biruni is regarded as one of the greatest scholars of the Golden Age of Muslim civilisation and was well versed in physics, mathematics, astronomy, and natural sciences, and also distinguished himself as a historian, chronologist and linguist. He studied almost all fields of science and was compensated for his research and strenuous work. Royalty and powerful members of society sought out Al-Biruni to conduct research and study to uncover certain findings.", - doodle: - "https://lh3.googleusercontent.com/bFwiXFZEum_vVibMzkgPlaKZMDc66W-S_cz1aPKbU0wyNzL_ucN_kXzjOlygywvf6Bcn3ipSLTsszGieEZTLKn9NHXnw8VJs4-xU6Br9cg=s660", - icon: Icon( - Icons.account_balance, - color: Colors.black87, - ), + doodle: "https://www.google.com/logos/2012/al_biruni-2012-hp.jpg", + icon: Icon(Icons.account_balance, color: Colors.black87), iconBackground: Colors.amber), Doodle( name: "Ibn Sina (Avicenna)", @@ -69,11 +59,8 @@ const List doodles = [ content: "Avicenna (Ibn Sīnā) was a Persian polymath who is regarded as one of the most significant physicians, astronomers, thinkers and writers of the Islamic Golden Age. He has been described as the father of early modern medicine. Of the 450 works he is known to have written, around 240 have survived, including 150 on philosophy and 40 on medicine.\nHis most famous works are The Book of Healing, a philosophical and scientific encyclopedia, and The Canon of Medicine, a medical encyclopedia which became a standard medical text at many medieval universities and remained in use as late as 1650. In 1973, Avicenna's Canon Of Medicine was reprinted in New York.\nBesides philosophy and medicine, Avicenna's corpus includes writings on astronomy, alchemy, geography and geology, psychology, Islamic theology, logic, mathematics, physics and works of poetry.", doodle: - "https://www.google.com/logos/doodles/2018/ibn-sinas-1038th-birthday-5768556863029248.2-2x.png", - icon: Icon( - Icons.healing, - color: Colors.white, - ), + "https://www.google.com/logos/doodles/2018/ibn-sinas-1038th-birthday-5768556863029248.2-l.png", + icon: Icon(Icons.healing, color: Colors.white), iconBackground: Colors.green), Doodle( name: "Ibn Rushd (Averroes)", @@ -81,11 +68,8 @@ const List doodles = [ content: "Averroes was an Andalusian philosopher and thinker who wrote about many subjects, including philosophy, theology, medicine, astronomy, physics, Islamic jurisprudence and law, and linguistics. His philosophical works include numerous commentaries on Aristotle, for which he was known in the West as The Commentator. He also served as a judge and a court physician for the Almohad Caliphate.", doodle: - "https://lh3.googleusercontent.com/vk5ODrDXkJXCJ9z2lMnQdMb9m5-HKxDvn_Q67J8PBKPT9n67iCQFj37tB62ARaQQKnKwig-CcBT9NODmzoqdM56_UTUKZRELLYoz1lVU=s800", - icon: Icon( - Icons.blur_circular, - color: Colors.white, - ), + "https://www.google.com/logos/doodles/2014/averroes-888th-birthday-born-1126-5645446378684416-hp.jpg", + icon: Icon(Icons.blur_circular, color: Colors.white), iconBackground: Colors.indigo), Doodle( name: "Nasir al-Din Tusi", @@ -93,36 +77,24 @@ const List doodles = [ content: "Tusi was a Persian polymath, architect, philosopher, physician, scientist, and theologian. He is often considered the creator of trigonometry as a mathematical discipline in its own right. Ibn Khaldun (1332–1406) considered Al-Tusi to be the greatest of the later Persian scholars.", doodle: - "https://lh3.googleusercontent.com/UBa5VOLYZNb9sqCZJeMrrS5ZW-KpDBZ7haT8aLPpHzeOZ8K_6TCP03_n-5VKIaewaRVqYkTF09OwvI4oQ2L2IqaUyWlTUkJb4E1uZF0=s660", - icon: Icon( - Icons.category, - color: Colors.white, - ), + "https://www.google.com/logos/2013/nasir_al-din_al-tusis_812th_birthday-1054005-hp.jpg", + icon: Icon(Icons.category, color: Colors.white), iconBackground: Colors.pinkAccent), Doodle( name: "Ibn Battuta", time: "1304 - 1368", content: "Over a period of thirty years, Ibn Battuta visited most of the Islamic world and many non-Muslim lands, including North Africa, the Horn of Africa, West Africa, the Middle East, Central Asia, Southeast Asia, South Asia and China. Near the end of his life, he dictated an account of his journeys, titled A Gift to Those Who Contemplate the Wonders of Cities and the Marvels of Travelling (Tuḥfat an-Nuẓẓār fī Gharāʾib al-Amṣār wa ʿAjāʾib al-Asfār), usually simply referred to as The Travels (Rihla). This account of his journeys provides a picture of a medieval civilisation that is still widely consulted today.", - doodle: - "https://lh3.googleusercontent.com/429NetsPejpMgeXqZuA15mCFLQykowhHNnbkSa1L8SHq9Kp9De-EBPlmOknzJ_HRykzt5FPhwpju_M3uKeuZlKegwdRQSzrH8NfdwR_B=s660", - icon: Icon( - Icons.navigation, - color: Colors.white, - size: 32.0, - ), + doodle: "https://www.google.com/logos/2012/battuta11-hp.jpg", + icon: Icon(Icons.navigation, color: Colors.white, size: 32.0), iconBackground: Colors.deepPurpleAccent), Doodle( name: "Ibn Khaldun", time: "1332 - 1406", content: "He is widely considered as a forerunner of the modern disciplines of historiography, sociology, economics, and demography.\nHe is best known for his book, the Muqaddimah or Prolegomena ('Introduction'). The book influenced 17th-century Ottoman historians like Kâtip Çelebi, Ahmed Cevdet Pasha and Mustafa Naima, who used the theories in the book to analyse the growth and decline of the Ottoman Empire. Also, 19th-century European scholars acknowledged the significance of the book and considered Ibn Khaldun to be one of the greatest philosophers of the Middle Ages.", - doodle: - "https://lh3.googleusercontent.com/TegzHFZQYIfV4lYsaXsZ-CUE_9Lp6qbJZXpSRzTWeLkNiQh0xRbt5KsI4szxN9nUopbyH6d-8tkmV5NcUJtI0Ks79fh-D6nCrKEt5hxR=s660", - icon: Icon( - Icons.supervised_user_circle, - color: Colors.white, - ), + doodle: "https://www.google.com/logos/2011/ibn11-hp.jpg", + icon: Icon(Icons.supervised_user_circle, color: Colors.white), iconBackground: Colors.teal), Doodle( name: "Piri Reis", @@ -130,11 +102,7 @@ const List doodles = [ content: "He is primarily known today for his maps and charts collected in his Kitab-ı Bahriye (Book of Navigation), a book that contains detailed information on navigation, as well as very accurate charts (for their time) describing the important ports and cities of the Mediterranean Sea. He gained fame as a cartographer when a small part of his first world map (prepared in 1513) was discovered in 1929 at the Topkapı Palace in Istanbul. His world map is the oldest known Turkish atlas showing the New World, and one of the oldest maps of America still in existence anywhere (the oldest known map of America that is still in existence is the map drawn by Juan de la Cosa in 1500). Piri Reis' map is centered on the Sahara at the latitude of the Tropic of Cancer.", doodle: - "https://lh3.googleusercontent.com/9tn671PjT5omvyhJ6xEIiTkkw4ck0vaTeHpyOtwCOE-SEumZbBdKLVFm2sKFRJ6Gkq_uPtYP2Fbss7yxkXgH6IJQruo4c4JT9iILFJZP8A=s660", - icon: Icon( - Icons.map, - color: Colors.white, - size: 32.0, - ), + "https://www.google.com/logos/2013/500th_anniversary_of_the_piri_reis_map-1696005-hp.jpg", + icon: Icon(Icons.map, color: Colors.white, size: 32.0), iconBackground: Colors.blue), ]; diff --git a/example/lib/main.dart b/example/lib/main.dart index 8257958..f419fda 100644 --- a/example/lib/main.dart +++ b/example/lib/main.dart @@ -1,7 +1,6 @@ import 'package:flutter/material.dart'; -import 'package:timeline_list/timeline.dart'; -import 'package:timeline_list/timeline_model.dart'; import 'timeline.dart'; +import 'onboarding.dart'; void main() => runApp(MyApp()); @@ -9,38 +8,31 @@ class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( - debugShowCheckedModeBanner: false, - title: 'Flutter Timeline Demo', - theme: ThemeData( - primarySwatch: Colors.blue, - ), - home: Timeline( - children: [ - TimelineModel( - Container( - height: 100, - child: Center( - child: Text("data"), - ), - ), - icon: Icon(Icons.receipt, color: Colors.white), - iconBackground: Colors.blue, - ), - TimelineModel( - Container( - height: 100, - child: Center( - child: Text("data"), - ), - ), - icon: Icon(Icons.android), - iconBackground: Colors.cyan, - ), - ], - position: TimelinePosition.Left, - iconSize: 40, - lineColor: Colors.blue, - ) //TimelinePage(title: 'Muslim Civilisation Doodles'), - ); + debugShowCheckedModeBanner: false, + theme: ThemeData(primarySwatch: Colors.blue, useMaterial3: true), + initialRoute: '/', + routes: { + '/': (context) => ExampleDirectory(), + '/timeline': (context) => TimelinePage(), + '/onboarding': (context) => OnboardingPage(), + }, + ); + } +} + +class ExampleDirectory extends StatelessWidget { + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar(title: Text("Timeline Examples")), + body: ListView(children: [ + ListTile( + title: Text("Timeline with icons and different alignment options"), + onTap: () => Navigator.pushNamed(context, '/timeline')), + ListTile( + title: Text("Onboarding example"), + onTap: () => Navigator.pushNamed(context, '/onboarding')), + ]), + ); } } diff --git a/example/lib/onboarding.dart b/example/lib/onboarding.dart new file mode 100644 index 0000000..d6d83a7 --- /dev/null +++ b/example/lib/onboarding.dart @@ -0,0 +1,40 @@ +import 'package:flutter/material.dart'; +import 'package:timeline_list/timeline_list.dart'; + +class OnboardingPage extends StatelessWidget { + const OnboardingPage({super.key}); + + @override + Widget build(BuildContext context) { + var checkIcon = Container( + width: 16, + height: 16, + decoration: BoxDecoration(shape: BoxShape.circle, color: Colors.green), + child: Icon(Icons.check, color: Colors.white, size: 12)); + var emptyIcon = Container( + width: 16, + height: 16, + decoration: BoxDecoration(shape: BoxShape.circle, color: Colors.grey)); + return Scaffold( + appBar: AppBar(title: const Text("Onboarding example")), + body: Column(children: [ + Timeline.builder( + context: context, + markerCount: 10, + properties: TimelineProperties( + iconAlignment: MarkerIconAlignment.center, + iconSize: 16, + timelinePosition: TimelinePosition.start), + markerBuilder: (context, index, position) => Marker( + child: Padding( + padding: const EdgeInsets.all(8.0), + child: Text("Step ${index + 1}"), + ), + icon: index >= 8 ? emptyIcon : checkIcon, + position: MarkerPosition.left, + ), + position: TimelinePosition.center, + ), + ])); + } +} diff --git a/example/lib/timeline.dart b/example/lib/timeline.dart index c8f179b..353d6fb 100644 --- a/example/lib/timeline.dart +++ b/example/lib/timeline.dart @@ -1,12 +1,8 @@ import 'package:flutter/material.dart'; -import 'package:timeline_list/timeline.dart'; -import 'package:timeline_list/timeline_model.dart'; +import 'package:timeline_list/timeline_list.dart'; import 'data.dart'; class TimelinePage extends StatefulWidget { - TimelinePage({Key key, this.title}) : super(key: key); - final String title; - @override _TimelinePageState createState() => _TimelinePageState(); } @@ -14,93 +10,132 @@ class TimelinePage extends StatefulWidget { class _TimelinePageState extends State { final PageController pageController = PageController(initialPage: 1, keepPage: true); - int pageIx = 1; + int currentIndex = 1; + static const iconSize = 36.0; + MarkerIconAlignment iconAlignment = MarkerIconAlignment.center; @override Widget build(BuildContext context) { List pages = [ - timelineModel(TimelinePosition.Left), - timelineModel(TimelinePosition.Center), - timelineModel(TimelinePosition.Right) + pageBuilder(TimelinePosition.start), + pageBuilder(TimelinePosition.center), + pageBuilder(TimelinePosition.end) ]; + final navButons = [ + {'icon': Icons.format_align_left, 'label': "Left"}, + {'icon': Icons.format_align_center, 'label': "Center"}, + {'icon': Icons.format_align_right, 'label': "Right"}, + ] + .map((marker) => BottomNavigationBarItem( + icon: Icon(marker['icon'] as IconData), + label: marker['label'] as String)) + .toList(); + + final navBar = BottomNavigationBar( + enableFeedback: true, + selectedItemColor: Colors.purple, + currentIndex: currentIndex, + onTap: (i) => pageController.animateToPage(i, + duration: const Duration(milliseconds: 300), + curve: Curves.easeInOut), + items: navButons); + return Scaffold( - bottomNavigationBar: BottomNavigationBar( - currentIndex: pageIx, - onTap: (i) => pageController.animateToPage(i, - duration: const Duration(milliseconds: 300), - curve: Curves.easeInOut), - items: const [ - BottomNavigationBarItem( - icon: Icon(Icons.format_align_left), - title: Text("LEFT"), - ), - BottomNavigationBarItem( - icon: Icon(Icons.format_align_center), - title: Text("CENTER"), - ), - BottomNavigationBarItem( - icon: Icon(Icons.format_align_right), - title: Text("RIGHT"), - ), - ]), - appBar: AppBar( - title: Text(widget.title), - ), + bottomNavigationBar: navBar, + appBar: appBar(), body: PageView( - onPageChanged: (i) => setState(() => pageIx = i), + onPageChanged: (i) => setState(() => currentIndex = i), controller: pageController, children: pages, )); } - timelineModel(TimelinePosition position) => Timeline.builder( - itemBuilder: centerTimelineBuilder, - itemCount: doodles.length, - physics: position == TimelinePosition.Left - ? ClampingScrollPhysics() - : BouncingScrollPhysics(), - position: position); + AppBar appBar() { + return AppBar( + title: Text('Muslim Civilisation Doodles'), + actions: [ + DropdownButton( + value: iconAlignment, + icon: Icon(Icons.arrow_downward), + onChanged: (MarkerIconAlignment? newValue) { + setState(() { + iconAlignment = newValue!; + }); + }, + // chose default icon alignment from + items: MarkerIconAlignment.values + .map>( + (MarkerIconAlignment value) { + return DropdownMenuItem( + value: value, + child: Text(value.toString().split('.')[1].toUpperCase()), + ); + }).toList(), + ), + ], + ); + } + + pageBuilder(TimelinePosition position) => Timeline.builder( + context: context, + markerBuilder: doodleBuilder, + markerCount: doodles.length, + position: position, + maxWidth: 300, + properties: TimelineProperties( + lineWidth: 4, + timelinePosition: position, + iconSize: iconSize, + // icon alignment applies to all items in the timeline, unless + // overridden by the item's own iconAlignment property. + iconAlignment: iconAlignment), + ); + + Widget icon( + TimelinePosition timelinePosition, Color iconBackground, Icon icon) { + return Container( + height: iconSize, + width: iconSize, + alignment: Alignment.center, + decoration: BoxDecoration(shape: BoxShape.circle, color: iconBackground), + child: Icon(icon.icon, color: icon.color, size: iconSize * 2 / 3), + ); + } + + Widget networkImage(String url) => FadeInImage.assetNetwork( + placeholder: 'images/empty.png', + placeholderCacheHeight: 200, + height: 200, + image: url, + fit: BoxFit.contain, + ); - TimelineModel centerTimelineBuilder(BuildContext context, int i) { + Marker doodleBuilder(BuildContext context, int i, TimelinePosition position) { final doodle = doodles[i]; final textTheme = Theme.of(context).textTheme; - return TimelineModel( - Card( - margin: EdgeInsets.symmetric(vertical: 16.0), - shape: - RoundedRectangleBorder(borderRadius: BorderRadius.circular(8.0)), - clipBehavior: Clip.antiAlias, - child: Padding( - padding: const EdgeInsets.all(16.0), - child: Column( - mainAxisSize: MainAxisSize.min, - children: [ - Image.network(doodle.doodle), - const SizedBox( - height: 8.0, - ), - Text(doodle.time, style: textTheme.caption), - const SizedBox( - height: 8.0, - ), - Text( - doodle.name, - style: textTheme.title, - textAlign: TextAlign.center, - ), - const SizedBox( - height: 8.0, - ), - ], - ), + return Marker( + icon: icon(position, doodle.iconBackground, doodle.icon), + child: Card( + color: Colors.white, + margin: EdgeInsets.symmetric(vertical: 16.0), + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(8.0)), + clipBehavior: Clip.antiAlias, + child: Padding( + padding: const EdgeInsets.all(16.0), + child: Column( + mainAxisSize: MainAxisSize.min, + children: ([ + networkImage(doodle.doodle), + const SizedBox(height: 8.0), + Text(doodle.name, style: textTheme.titleMedium), + const SizedBox(height: 8.0), + Text(doodle.time, style: textTheme.labelSmall), + const SizedBox(height: 8.0), + ]), ), ), - position: - i % 2 == 0 ? TimelineItemPosition.right : TimelineItemPosition.left, - isFirst: i == 0, - isLast: i == doodles.length, - iconBackground: doodle.iconBackground, - icon: doodle.icon); + ), + ); } } diff --git a/example/pubspec.yaml b/example/pubspec.yaml index 7559548..db86238 100644 --- a/example/pubspec.yaml +++ b/example/pubspec.yaml @@ -1,10 +1,10 @@ name: example -description: Flutter Timeline package demo app - +description: A showcase application demonstrating the timeline_list package's features, including vertical timelines with custom markers, icons, and various positioning options. +publish_to: none version: 1.0.0+1 environment: - sdk: ">=2.0.0-dev.68.0 <3.0.0" + sdk: ">=3.0.0 <4.0.0" dependencies: flutter: @@ -15,3 +15,5 @@ dependencies: flutter: uses-material-design: true + assets: + - assets/images/ diff --git a/example/web/icons/Icon-192.png b/example/web/icons/Icon-192.png new file mode 100644 index 0000000000000000000000000000000000000000..b749bfef07473333cf1dd31e9eed89862a5d52aa GIT binary patch literal 5292 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 literal 0 HcmV?d00001 diff --git a/example/web/icons/Icon-512.png b/example/web/icons/Icon-512.png new file mode 100644 index 0000000000000000000000000000000000000000..88cfd48dff1169879ba46840804b412fe02fefd6 GIT binary patch literal 8252 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 literal 0 HcmV?d00001 diff --git a/example/web/icons/Icon-maskable-192.png b/example/web/icons/Icon-maskable-192.png new file mode 100644 index 0000000000000000000000000000000000000000..eb9b4d76e525556d5d89141648c724331630325d GIT binary patch literal 5594 zcmdT|`#%%j|KDb2V@0DPm$^(Lx5}lO%Yv(=e*7hl@QqKS50#~#^IQPxBmuh|i9sXnt4ch@VT0F7% zMtrs@KWIOo+QV@lSs66A>2pz6-`9Jk=0vv&u?)^F@HZ)-6HT=B7LF;rdj zskUyBfbojcX#CS>WrIWo9D=DIwcXM8=I5D{SGf$~=gh-$LwY?*)cD%38%sCc?5OsX z-XfkyL-1`VavZ?>(pI-xp-kYq=1hsnyP^TLb%0vKRSo^~r{x?ISLY1i7KjSp z*0h&jG(Rkkq2+G_6eS>n&6>&Xk+ngOMcYrk<8KrukQHzfx675^^s$~<@d$9X{VBbg z2Fd4Z%g`!-P}d#`?B4#S-9x*eNlOVRnDrn#jY@~$jfQ-~3Od;A;x-BI1BEDdvr`pI z#D)d)!2_`GiZOUu1crb!hqH=ezs0qk<_xDm_Kkw?r*?0C3|Io6>$!kyDl;eH=aqg$B zsH_|ZD?jP2dc=)|L>DZmGyYKa06~5?C2Lc0#D%62p(YS;%_DRCB1k(+eLGXVMe+=4 zkKiJ%!N6^mxqM=wq`0+yoE#VHF%R<{mMamR9o_1JH8jfnJ?NPLs$9U!9!dq8 z0B{dI2!M|sYGH&9TAY34OlpIsQ4i5bnbG>?cWwat1I13|r|_inLE?FS@Hxdxn_YZN z3jfUO*X9Q@?HZ>Q{W0z60!bbGh557XIKu1?)u|cf%go`pwo}CD=0tau-}t@R2OrSH zQzZr%JfYa`>2!g??76=GJ$%ECbQh7Q2wLRp9QoyiRHP7VE^>JHm>9EqR3<$Y=Z1K^SHuwxCy-5@z3 zVM{XNNm}yM*pRdLKp??+_2&!bp#`=(Lh1vR{~j%n;cJv~9lXeMv)@}Odta)RnK|6* zC+IVSWumLo%{6bLDpn)Gz>6r&;Qs0^+Sz_yx_KNz9Dlt^ax`4>;EWrIT#(lJ_40<= z750fHZ7hI{}%%5`;lwkI4<_FJw@!U^vW;igL0k+mK)-j zYuCK#mCDK3F|SC}tC2>m$ZCqNB7ac-0UFBJ|8RxmG@4a4qdjvMzzS&h9pQmu^x&*= zGvapd1#K%Da&)8f?<9WN`2H^qpd@{7In6DNM&916TRqtF4;3`R|Nhwbw=(4|^Io@T zIjoR?tB8d*sO>PX4vaIHF|W;WVl6L1JvSmStgnRQq zTX4(>1f^5QOAH{=18Q2Vc1JI{V=yOr7yZJf4Vpfo zeHXdhBe{PyY;)yF;=ycMW@Kb>t;yE>;f79~AlJ8k`xWucCxJfsXf2P72bAavWL1G#W z;o%kdH(mYCM{$~yw4({KatNGim49O2HY6O07$B`*K7}MvgI=4x=SKdKVb8C$eJseA$tmSFOztFd*3W`J`yIB_~}k%Sd_bPBK8LxH)?8#jM{^%J_0|L z!gFI|68)G}ex5`Xh{5pB%GtlJ{Z5em*e0sH+sU1UVl7<5%Bq+YrHWL7?X?3LBi1R@_)F-_OqI1Zv`L zb6^Lq#H^2@d_(Z4E6xA9Z4o3kvf78ZDz!5W1#Mp|E;rvJz&4qj2pXVxKB8Vg0}ek%4erou@QM&2t7Cn5GwYqy%{>jI z)4;3SAgqVi#b{kqX#$Mt6L8NhZYgonb7>+r#BHje)bvaZ2c0nAvrN3gez+dNXaV;A zmyR0z@9h4@6~rJik-=2M-T+d`t&@YWhsoP_XP-NsVO}wmo!nR~QVWU?nVlQjNfgcTzE-PkfIX5G z1?&MwaeuzhF=u)X%Vpg_e@>d2yZwxl6-r3OMqDn8_6m^4z3zG##cK0Fsgq8fcvmhu z{73jseR%X%$85H^jRAcrhd&k!i^xL9FrS7qw2$&gwAS8AfAk#g_E_tP;x66fS`Mn@SNVrcn_N;EQm z`Mt3Z%rw%hDqTH-s~6SrIL$hIPKL5^7ejkLTBr46;pHTQDdoErS(B>``t;+1+M zvU&Se9@T_BeK;A^p|n^krIR+6rH~BjvRIugf`&EuX9u69`9C?9ANVL8l(rY6#mu^i z=*5Q)-%o*tWl`#b8p*ZH0I}hn#gV%|jt6V_JanDGuekR*-wF`u;amTCpGG|1;4A5$ zYbHF{?G1vv5;8Ph5%kEW)t|am2_4ik!`7q{ymfHoe^Z99c|$;FAL+NbxE-_zheYbV z3hb0`uZGTsgA5TG(X|GVDSJyJxsyR7V5PS_WSnYgwc_D60m7u*x4b2D79r5UgtL18 zcCHWk+K6N1Pg2c;0#r-)XpwGX?|Iv)^CLWqwF=a}fXUSM?n6E;cCeW5ER^om#{)Jr zJR81pkK?VoFm@N-s%hd7@hBS0xuCD0-UDVLDDkl7Ck=BAj*^ps`393}AJ+Ruq@fl9 z%R(&?5Nc3lnEKGaYMLmRzKXow1+Gh|O-LG7XiNxkG^uyv zpAtLINwMK}IWK65hOw&O>~EJ}x@lDBtB`yKeV1%GtY4PzT%@~wa1VgZn7QRwc7C)_ zpEF~upeDRg_<#w=dLQ)E?AzXUQpbKXYxkp>;c@aOr6A|dHA?KaZkL0svwB^U#zmx0 zzW4^&G!w7YeRxt<9;d@8H=u(j{6+Uj5AuTluvZZD4b+#+6Rp?(yJ`BC9EW9!b&KdPvzJYe5l7 zMJ9aC@S;sA0{F0XyVY{}FzW0Vh)0mPf_BX82E+CD&)wf2!x@{RO~XBYu80TONl3e+ zA7W$ra6LcDW_j4s-`3tI^VhG*sa5lLc+V6ONf=hO@q4|p`CinYqk1Ko*MbZ6_M05k zSwSwkvu;`|I*_Vl=zPd|dVD0lh&Ha)CSJJvV{AEdF{^Kn_Yfsd!{Pc1GNgw}(^~%)jk5~0L~ms|Rez1fiK~s5t(p1ci5Gq$JC#^JrXf?8 z-Y-Zi_Hvi>oBzV8DSRG!7dm|%IlZg3^0{5~;>)8-+Nk&EhAd(}s^7%MuU}lphNW9Q zT)DPo(ob{tB7_?u;4-qGDo!sh&7gHaJfkh43QwL|bbFVi@+oy;i;M zM&CP^v~lx1U`pi9PmSr&Mc<%HAq0DGH?Ft95)WY`P?~7O z`O^Nr{Py9M#Ls4Y7OM?e%Y*Mvrme%=DwQaye^Qut_1pOMrg^!5u(f9p(D%MR%1K>% zRGw%=dYvw@)o}Fw@tOtPjz`45mfpn;OT&V(;z75J*<$52{sB65$gDjwX3Xa!x_wE- z!#RpwHM#WrO*|~f7z}(}o7US(+0FYLM}6de>gQdtPazXz?OcNv4R^oYLJ_BQOd_l172oSK$6!1r@g+B@0ofJ4*{>_AIxfe-#xp>(1 z@Y3Nfd>fmqvjL;?+DmZk*KsfXJf<%~(gcLwEez%>1c6XSboURUh&k=B)MS>6kw9bY z{7vdev7;A}5fy*ZE23DS{J?8at~xwVk`pEwP5^k?XMQ7u64;KmFJ#POzdG#np~F&H ze-BUh@g54)dsS%nkBb}+GuUEKU~pHcYIg4vSo$J(J|U36bs0Use+3A&IMcR%6@jv$ z=+QI+@wW@?iu}Hpyzlvj-EYeop{f65GX0O%>w#0t|V z1-svWk`hU~m`|O$kw5?Yn5UhI%9P-<45A(v0ld1n+%Ziq&TVpBcV9n}L9Tus-TI)f zd_(g+nYCDR@+wYNQm1GwxhUN4tGMLCzDzPqY$~`l<47{+l<{FZ$L6(>J)|}!bi<)| zE35dl{a2)&leQ@LlDxLQOfUDS`;+ZQ4ozrleQwaR-K|@9T{#hB5Z^t#8 zC-d_G;B4;F#8A2EBL58s$zF-=SCr`P#z zNCTnHF&|X@q>SkAoYu>&s9v@zCpv9lLSH-UZzfhJh`EZA{X#%nqw@@aW^vPcfQrlPs(qQxmC|4tp^&sHy!H!2FH5eC{M@g;ElWNzlb-+ zxpfc0m4<}L){4|RZ>KReag2j%Ot_UKkgpJN!7Y_y3;Ssz{9 z!K3isRtaFtQII5^6}cm9RZd5nTp9psk&u1C(BY`(_tolBwzV_@0F*m%3G%Y?2utyS zY`xM0iDRT)yTyYukFeGQ&W@ReM+ADG1xu@ruq&^GK35`+2r}b^V!m1(VgH|QhIPDE X>c!)3PgKfL&lX^$Z>Cpu&6)6jvi^Z! literal 0 HcmV?d00001 diff --git a/example/web/icons/Icon-maskable-512.png b/example/web/icons/Icon-maskable-512.png new file mode 100644 index 0000000000000000000000000000000000000000..d69c56691fbdb0b7efa65097c7cc1edac12a6d3e GIT binary patch literal 20998 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 MPgg&ebxsLQ025IeI{*Lx literal 0 HcmV?d00001 diff --git a/example/web/index.html b/example/web/index.html index 1460b5e..1aa025d 100644 --- a/example/web/index.html +++ b/example/web/index.html @@ -8,10 +8,13 @@ The path provided below has to start and end with a slash "/" in order for it to work correctly. - Fore more details: + For more details: * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/base + + This is a placeholder for base href that will be replaced by the value of + the `--base-href` argument provided to `flutter build`. --> - + @@ -30,16 +33,6 @@ - - - + diff --git a/example/web/manifest.json b/example/web/manifest.json index 8c01291..096edf8 100644 --- a/example/web/manifest.json +++ b/example/web/manifest.json @@ -18,6 +18,18 @@ "src": "icons/Icon-512.png", "sizes": "512x512", "type": "image/png" + }, + { + "src": "icons/Icon-maskable-192.png", + "sizes": "192x192", + "type": "image/png", + "purpose": "maskable" + }, + { + "src": "icons/Icon-maskable-512.png", + "sizes": "512x512", + "type": "image/png", + "purpose": "maskable" } ] } diff --git a/lib/src/marker_widget.dart b/lib/src/marker_widget.dart new file mode 100644 index 0000000..4cfbcb8 --- /dev/null +++ b/lib/src/marker_widget.dart @@ -0,0 +1,126 @@ +import 'package:flutter/material.dart'; +import '../timeline_list.dart'; + +class MarkerWidget extends StatelessWidget { + /// The marker data containing content and configuration. + final Marker data; + + /// Whether this marker is the first one in the timeline. + final bool isFirst; + + /// Whether this marker is the last one in the timeline. + final bool isLast; + + /// Timeline-specific properties that affect the marker's appearance. + final TimelineProperties properties; + + /// Creates a new [MarkerWidget]. + /// + /// Requires [data] containing the marker's content and configuration, + /// position indicators [isFirst] and [isLast], and timeline [properties]. + MarkerWidget( + {Key? key, + required this.data, + required this.isFirst, + required this.isLast, + required this.properties}) + : super(key: key); + + @override + Widget build(BuildContext context) => LayoutBuilder( + builder: (context, constraints) { + return Container( + decoration: TimelineDecoration( + isFirst: isFirst, + isLast: isLast, + properties: properties, + iconAlignment: data.iconAlignment!, + iconSize: properties.iconSize, + ), + child: content(context, constraints), + ); + }, + ); + + /// Builds the content layout of the marker. + /// + /// This method handles the positioning of the marker's content and icon based on + /// the timeline's position (center or sides) and the marker's position settings. + /// It ensures proper spacing and alignment of all elements. + Widget content(BuildContext context, BoxConstraints constraints) { + List children = []; + if (properties.timelinePosition == TimelinePosition.center) { + final maxWidth = constraints.maxWidth / 2 - + properties.iconSize / 2 - + properties.iconGap; + final balanceWidget = SizedBox(width: maxWidth); + children = [ + SizedBox(width: maxWidth, child: childWidget(constraints)), + SizedBox(width: properties.iconGap), + iconWidget(), + SizedBox(width: properties.iconGap), + balanceWidget, + ]; + } else { + children = [ + childWidget(constraints), + SizedBox(width: properties.iconGap), + iconWidget() + ]; + } + + return Row( + // align icon w.r.t. timeline item position in the row + crossAxisAlignment: data.iconAlignment!.asCrossAxisAlignment(), + mainAxisAlignment: properties.timelinePosition.asMainAxisAlignment(), + children: data.position.isLeft() ? children.reversed.toList() : children, + ); + } + + /// Builds the marker's main content widget with appropriate constraints. + /// + /// Handles special layout cases for centered timelines and ensures proper + /// alignment and sizing of the content. + Widget childWidget(BoxConstraints constraints) { + final child = ConstrainedBox( + constraints: BoxConstraints( + minHeight: + properties.iconSize + properties.markerGap + properties.lineWidth, + maxWidth: ( + // if timeline is centered, clamp the width to half of + // the screen size excluding the icon size and margin + properties.timelinePosition == TimelinePosition.center + ? (constraints.maxWidth / 2 - + properties.iconSize - + properties.iconGap) + : constraints.maxWidth)), + child: data.child, + ); + if (properties.timelinePosition == TimelinePosition.center) { + // align child opposite to it's position to make it look aligned around + // the center line + return Align( + alignment: data.position == MarkerPosition.left + ? Alignment.centerRight + : Alignment.centerLeft, + child: child, + ); + } + + return child; + } + + /// Builds the marker's icon widget. + /// + /// If no custom icon is provided in the marker data, creates a default + /// circular dot using the timeline's line color. + Widget iconWidget() => SizedBox( + width: properties.iconSize, + height: properties.iconSize, + child: data.icon ?? + Container( + width: properties.lineWidth * 2, + height: properties.lineWidth * 2, + decoration: BoxDecoration( + color: properties.lineColor, shape: BoxShape.circle))); +} diff --git a/lib/src/timeline_decoration.dart b/lib/src/timeline_decoration.dart new file mode 100644 index 0000000..712f013 --- /dev/null +++ b/lib/src/timeline_decoration.dart @@ -0,0 +1,203 @@ +import 'package:flutter/material.dart'; +import 'package:timeline_list/timeline_list.dart'; + +// A custom decoration that handles drawing the connecting lines between timeline +// markers. +class TimelineDecoration extends Decoration { + /// Properties that define the timeline's visual appearance. + final TimelineProperties properties; + + /// Whether this decoration is for the first marker in the timeline. + final bool isFirst; + + /// Whether this decoration is for the last marker in the timeline. + final bool isLast; + + /// How the marker's icon should be aligned relative to its content. + final MarkerIconAlignment iconAlignment; + + /// The size of the marker's icon. + final double iconSize; + + /// Creates a new [TimelineDecoration]. + /// + /// All parameters are required to properly render the timeline connections. + TimelineDecoration({ + required this.properties, + required this.isFirst, + required this.isLast, + required this.iconAlignment, + required this.iconSize, + }); + + @override + BoxPainter createBoxPainter([VoidCallback? onChanged]) { + return _TimelineBoxPainter( + isFirst: isFirst, + isLast: isLast, + properties: properties, + iconAlignment: iconAlignment, + iconSize: iconSize, + ); + } +} + +/// A custom box painter that handles the actual drawing of timeline connections +/// between markers. +/// +/// This painter draws the connecting lines between timeline markers based on the +/// timeline's position (start, end, center) and handles special cases for first +/// and last markers. +class _TimelineBoxPainter extends BoxPainter { + /// Paint object used for drawing the timeline lines. + final Paint linePaint; + + /// Whether this is the first marker in the timeline. + final bool isFirst; + + /// Whether this is the last marker in the timeline. + final bool isLast; + + /// Properties that holds the timeline's visual appearance. + final TimelineProperties properties; + + /// How the marker's icon should be aligned relative to its content. + final MarkerIconAlignment iconAlignment; + + /// The size of the marker's icon. + final double iconSize; + + /// Creates a new box painter with the specified properties. + /// + /// Initializes the line paint with the timeline's color and style settings. + _TimelineBoxPainter({ + required this.properties, + required this.isFirst, + required this.isLast, + required this.iconAlignment, + required this.iconSize, + }) : linePaint = Paint() + ..color = properties.lineColor + ..strokeCap = StrokeCap.butt + ..strokeWidth = properties.lineWidth + ..style = PaintingStyle.stroke; + + @override + void paint(Canvas canvas, Offset offset, ImageConfiguration configuration) { + switch (properties.timelinePosition) { + case TimelinePosition.start: + drawLineOnLeft(canvas, offset, configuration); + break; + case TimelinePosition.end: + drawLineOnRight(canvas, offset, configuration); + break; + case TimelinePosition.center: + drawLineOnCenter(canvas, offset, configuration); + break; + } + } + + /// Draws the timeline line for center-positioned timelines. + void drawLineOnCenter( + Canvas canvas, Offset offset, ImageConfiguration configuration) { + final size = configuration.size!; + offset = + offset.translate(0, properties.iconSize / 2 - properties.markerGap); + if (!isFirst && !isLast) { + // Draw a straight line from top to bottom + canvas.drawLine( + size.topCenter(offset - Offset(0, properties.iconSize / 2)), + size.bottomCenter(offset + Offset(0, properties.iconSize / 2)), + linePaint); + } else { + // Stop drawing the line if it's the first or last item + final Offset iconOffset = switch (iconAlignment) { + MarkerIconAlignment.top => size.topCenter(offset), + MarkerIconAlignment.center => size.center(offset), + MarkerIconAlignment.bottom => size.bottomCenter(offset) + }; + + final Offset top = size.topCenter(offset); + final Offset end = size.bottomCenter(offset); + + // Draw a line from top to icon + if (!isFirst) { + canvas.drawLine(top, iconOffset, linePaint); + } + // Draw a line from icon to end + if (!isLast) { + canvas.drawLine(iconOffset, end, linePaint); + } + } + } + + /// Draws the timeline line for left-positioned timelines. + void drawLineOnLeft( + Canvas canvas, Offset offset, ImageConfiguration configuration) { + final size = configuration.size!; + offset = offset.translate(properties.iconSize / 2, + properties.iconSize / 2 - properties.markerGap / 2); + if (!isFirst && !isLast) { + // Draw a straight line from top to bottom + canvas.drawLine( + size.topLeft(offset - Offset(0, properties.iconSize / 2 + 8)), + size.bottomLeft(offset + Offset(0, properties.iconSize / 2 - 2)), + linePaint); + } else { + // Stop drawing the line if it's the first or last item + final Offset iconOffset = switch (iconAlignment) { + MarkerIconAlignment.top => size.topLeft(offset), + MarkerIconAlignment.center => size.centerLeft(offset), + MarkerIconAlignment.bottom => size.bottomLeft(offset) + }; + + final Offset top = + size.topLeft(offset - Offset(0, properties.iconSize / 2 + 2)); + final Offset end = + size.bottomLeft(offset + Offset(0, properties.iconSize / 2 - 2)); + + // Draw a line from top to icon + if (!isFirst) { + canvas.drawLine(top, iconOffset, linePaint); + } + // Draw a line from icon to end + if (!isLast) { + canvas.drawLine(iconOffset, end, linePaint); + } + } + } + + /// Draws the timeline line for right-positioned timelines. + void drawLineOnRight( + Canvas canvas, Offset offset, ImageConfiguration configuration) { + final size = configuration.size!; + offset = offset.translate(-properties.iconSize / 2, + -properties.iconSize / 2 + properties.markerGap); + if (!isFirst && !isLast) { + // Draw a straight line from top to bottom + canvas.drawLine( + size.topRight(offset - Offset(0, properties.iconSize / 2 - 3)), + size.bottomRight(offset + Offset(0, properties.iconSize / 2 + 3)), + linePaint); + } else { + // Stop drawing the line if it's the first or last item + final Offset iconOffset = switch (iconAlignment) { + MarkerIconAlignment.top => size.topRight(offset), + MarkerIconAlignment.center => size.centerRight(offset), + MarkerIconAlignment.bottom => size.bottomRight(offset) + }; + + final Offset top = size.topRight(offset - Offset(0, 2)); + final Offset end = size.bottomRight(offset + Offset(0, 2)); + + // Draw a line from top to icon + if (!isFirst) { + canvas.drawLine(top, iconOffset, linePaint); + } + // Draw a line from icon to end + if (!isLast) { + canvas.drawLine(iconOffset, end, linePaint); + } + } + } +} diff --git a/lib/src/timeline_item.dart b/lib/src/timeline_item.dart deleted file mode 100644 index 3fc0abc..0000000 --- a/lib/src/timeline_item.dart +++ /dev/null @@ -1,164 +0,0 @@ -import 'dart:math'; - -import 'package:flutter/material.dart'; -import 'package:timeline_list/src/timeline_painter.dart'; -import 'package:timeline_list/timeline.dart'; -import 'package:timeline_list/timeline_model.dart'; - -abstract class TimelineItem extends StatelessWidget { - final TimelineModel model; - final TimelineProperties properties; - - const TimelineItem({Key? key, required this.model, required this.properties}) : super(key: key); - - double get iconSize { - // if no icon is specified, use smaller dot size - if (model.icon == null) return TimelineBoxDecoration.DEFAULT_DOT_SIZE; - // use [TimelineModel.icon]'s size when timeline is centered - if (this is TimelineItemCenter) - return model.icon?.size ?? TimelineBoxDecoration.DEFAULT_ICON_SIZE; - // use [TimelineProperties.iconSize] timeline is not centered - return properties.iconSize; - } - - Icon? get icon { - if (this is TimelineItemCenter) return model.icon; - // ignore icon size if timeline is not centered. - return Icon( - model.icon?.icon, - color: model.icon?.color, - textDirection: model.icon?.textDirection, - key: model.icon?.key, - semanticLabel: model.icon?.semanticLabel, - size: TimelineBoxDecoration.DEFAULT_ICON_SIZE, - ); - } -} - -class TimelineItemCenter extends TimelineItem { - // https://github.com/dart-lang/sdk/issues/29395 - const TimelineItemCenter({Key? key, required model, required properties, isFirst, isLast}) - : super(model: model, properties: properties, key: key); - - AlignmentGeometry get position { - switch (model.position) { - case TimelineItemPosition.left: - return Alignment.centerLeft; - case TimelineItemPosition.right: - return Alignment.centerRight; - case TimelineItemPosition.random: - default: - return Random().nextBool() - ? Alignment.centerLeft - : Alignment.centerRight; - } - } - - @override - Widget build(BuildContext context) { - return LayoutBuilder( - builder: (context, constraints) => Container( - decoration: TimelineBoxDecoration( - isFirst: model.isFirst, - isLast: model.isLast, - iconSize: iconSize, - iconBackground: model.iconBackground, - properties: properties, - timelinePosition: TimelinePosition.Center), - child: Stack( - alignment: position, - children: [ - Container( - constraints: BoxConstraints( - maxWidth: constraints.maxWidth / 2 - - iconSize / 2.0 - - TimelineBoxDecoration.LINE_GAP * 2.0, - minHeight: - iconSize + TimelineBoxDecoration.LINE_GAP * 2), - child: model.child), - Center(child: icon), - ], - ))); - } -} - -class TimelineItemLeft extends TimelineItem { - const TimelineItemLeft({Key? key, required model, required properties, isFirst, isLast}) - : super(model: model, properties: properties, key: key); - - @override - Widget build(BuildContext context) { - final margin = properties.iconSize + TimelineBoxDecoration.LINE_GAP * 2; - return LayoutBuilder( - builder: (BuildContext context, BoxConstraints constraints) { - return Row( - crossAxisAlignment: CrossAxisAlignment.center, - mainAxisAlignment: MainAxisAlignment.start, - children: [ - Container( - decoration: TimelineBoxDecoration( - isFirst: model.isFirst, - isLast: model.isLast, - iconSize: model.icon != null - ? properties.iconSize - : TimelineBoxDecoration.DEFAULT_DOT_SIZE, - iconBackground: model.iconBackground, - properties: properties, - timelinePosition: TimelinePosition.Left, - ), - width: properties.iconSize + 24, - alignment: Alignment.center, - child: icon, - ), - Container( - padding: const EdgeInsets.only( - left: TimelineBoxDecoration.LINE_GAP), - constraints: BoxConstraints( - minHeight: margin, - maxWidth: constraints.maxWidth - margin * 2.0), - child: model.child), - ], - ); - }, - ); - } -} - -class TimelineItemRight extends TimelineItem { - const TimelineItemRight({Key? key, required model, required properties, isFirst, isLast}) - : super(model: model, properties: properties, key: key); - - @override - Widget build(BuildContext context) { - final margin = properties.iconSize + TimelineBoxDecoration.LINE_GAP * 2; - return LayoutBuilder( - builder: (BuildContext context, BoxConstraints constraints) { - return Row( - crossAxisAlignment: CrossAxisAlignment.center, - mainAxisAlignment: MainAxisAlignment.end, - children: [ - Container( - padding: - const EdgeInsets.only(right: TimelineBoxDecoration.LINE_GAP), - constraints: BoxConstraints( - minHeight: margin, - maxWidth: constraints.maxWidth - margin * 2.0), - child: model.child), - Container( - decoration: TimelineBoxDecoration( - isFirst: model.isFirst, - isLast: model.isLast, - iconSize: model.icon != null - ? properties.iconSize - : TimelineBoxDecoration.DEFAULT_DOT_SIZE, - iconBackground: model.iconBackground, - properties: properties, - timelinePosition: TimelinePosition.Right), - width: properties.iconSize + 24, - alignment: Alignment.center, - child: icon), - ], - ); - }); - } -} diff --git a/lib/src/timeline_painter.dart b/lib/src/timeline_painter.dart deleted file mode 100644 index e2c00a5..0000000 --- a/lib/src/timeline_painter.dart +++ /dev/null @@ -1,172 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:timeline_list/timeline.dart'; - -class TimelineBoxDecoration extends Decoration { - final Color iconBackground; - final TimelineProperties properties; - final double iconSize; - final bool isFirst; - final bool isLast; - final TimelinePosition timelinePosition; - - static const double DEFAULT_DOT_SIZE = 12.0; - static const double DEFAULT_ICON_SIZE = 24.0; // default icon size - static const double LINE_GAP = 6.0; - - TimelineBoxDecoration( - {required this.properties, - required this.iconSize, - required this.iconBackground, - required this.isFirst, - required this.isLast, - required this.timelinePosition}); - - @override - BoxPainter createBoxPainter([VoidCallback? onChanged]) { - switch (timelinePosition) { - case TimelinePosition.Left: - return _TimelinePainterLeft( - isFirst: isFirst, - isLast: isLast, - iconBackground: iconBackground, - properties: properties, - iconSize: iconSize); - case TimelinePosition.Right: - return _TimelinePainterRight( - isFirst: isFirst, - isLast: isLast, - iconBackground: iconBackground, - properties: properties, - iconSize: iconSize); - case TimelinePosition.Center: - default: - return _TimelinePainterCenter( - isFirst: isFirst, - isLast: isLast, - properties: properties, - iconBackground: iconBackground, - iconSize: iconSize); - } - } -} - -abstract class _TimelinePainter extends BoxPainter { - final Paint linePaint; - final Paint circlePaint; - final double iconSize; - final bool isFirst; - final bool isLast; - final TimelinePosition? timelinePosition; - final TimelineProperties properties; - - _TimelinePainter( - {required this.iconSize, - required this.properties, - this.isFirst = false, - this.isLast = false, - this.timelinePosition, - iconBackground}) - : linePaint = Paint() - ..color = properties.lineColor - ..strokeCap = StrokeCap.round - ..strokeWidth = properties.lineWidth - ..style = PaintingStyle.stroke, - circlePaint = Paint() - ..color = iconBackground ?? const Color(0xFFCCCCCC) - ..style = PaintingStyle.fill; -} - -class _TimelinePainterCenter extends _TimelinePainter { - _TimelinePainterCenter( - {required iconSize, required properties, required isFirst, required isLast, iconBackground}) - : super( - iconSize: iconSize, - properties: properties, - isFirst: isFirst, - isLast: isLast, - iconBackground: iconBackground); - - @override - void paint(Canvas canvas, Offset offset, ImageConfiguration configuration) { - final Offset? offsetTop = configuration.size?.topCenter(Offset(0.0, 0.0)); - final Offset? topLineEnd = - configuration.size?.center(Offset(0.0, offset.dy - iconSize / 2 - 2 * TimelineBoxDecoration.LINE_GAP)); - final Offset? bottomLineStart = - configuration.size?.center(Offset(0.0, offset.dy + iconSize / 2 + 2 * TimelineBoxDecoration.LINE_GAP)); - final Offset? offsetBottom = configuration.size?.bottomCenter(Offset(0.0, offset.dy * 2 + properties.gap)); - if (!isFirst && offsetTop != null && topLineEnd != null) canvas.drawLine(offsetTop, topLineEnd, linePaint); - if (!isLast && bottomLineStart != null && offsetBottom != null) - canvas.drawLine(bottomLineStart, offsetBottom, linePaint); - - final Offset? offsetCenter = configuration.size?.center(Offset(0.0, offset.dy)); - if (offsetCenter != null) - canvas.drawCircle(offsetCenter, iconSize / 2 + TimelineBoxDecoration.LINE_GAP, circlePaint); - } -} - -class _TimelinePainterLeft extends _TimelinePainter { - _TimelinePainterLeft({required iconSize, required properties, required isFirst, required isLast, iconBackground}) - : super( - iconSize: iconSize, - properties: properties, - isFirst: isFirst, - isLast: isLast, - iconBackground: iconBackground); - - @override - void paint(Canvas canvas, Offset offset, ImageConfiguration configuration) { - final double iconBackgroundRadius = iconSize / 2 + TimelineBoxDecoration.LINE_GAP; - - double iconMargin; - if (iconSize == TimelineBoxDecoration.DEFAULT_DOT_SIZE) - iconMargin = TimelineBoxDecoration.DEFAULT_ICON_SIZE / 2 + - 2 * TimelineBoxDecoration.LINE_GAP; - else - iconMargin = iconBackgroundRadius + TimelineBoxDecoration.LINE_GAP; - - final leftOffset = Offset(iconMargin, offset.dy); - final Offset? top = configuration.size?.topLeft(Offset(leftOffset.dx, 0.0)); - final Offset? centerTop = configuration.size?.centerLeft(Offset(leftOffset.dx, leftOffset.dy - iconMargin)); - final Offset? centerBottom = configuration.size?.centerLeft(Offset(leftOffset.dx, leftOffset.dy + iconMargin)); - final Offset? end = configuration.size?.bottomLeft(Offset(leftOffset.dx, leftOffset.dy * 2 + properties.gap)); - if (!isFirst && top != null && centerTop != null) canvas.drawLine(top, centerTop, linePaint); - if (!isLast && centerBottom != null && end != null) canvas.drawLine(centerBottom, end, linePaint); - - final Offset offsetCenter = configuration.size!.centerLeft(leftOffset); - canvas.drawCircle(offsetCenter, iconBackgroundRadius, circlePaint); - } -} - -class _TimelinePainterRight extends _TimelinePainter { - _TimelinePainterRight({required iconSize, required properties, required isFirst, required isLast, iconBackground}) - : super( - iconSize: iconSize, - properties: properties, - isFirst: isFirst, - isLast: isLast, - iconBackground: iconBackground); - - @override - void paint(Canvas canvas, Offset offset, ImageConfiguration configuration) { - final double iconBackgroundRadius = - iconSize / 2 + TimelineBoxDecoration.LINE_GAP; - - double iconMargin; - if (iconSize == TimelineBoxDecoration.DEFAULT_DOT_SIZE) - iconMargin = TimelineBoxDecoration.DEFAULT_ICON_SIZE / 2 + - 2 * TimelineBoxDecoration.LINE_GAP; - else - iconMargin = iconBackgroundRadius + TimelineBoxDecoration.LINE_GAP; - - final rightOffset = Offset(offset.dx - iconMargin, offset.dy); - final Offset? top = configuration.size?.topRight(Offset(rightOffset.dx, 0.0)); - final Offset? centerTop = configuration.size?.centerRight(Offset(rightOffset.dx, rightOffset.dy - iconMargin)); - final Offset? centerBottom = configuration.size?.centerRight(Offset(rightOffset.dx, rightOffset.dy + iconMargin)); - final Offset? end = configuration.size?.bottomRight(Offset(rightOffset.dx, rightOffset.dy * 2 + properties.gap)); - if (!isFirst && top != null && centerTop != null) canvas.drawLine(top, centerTop, linePaint); - if (!isLast && centerBottom != null && end != null) canvas.drawLine(centerBottom, end, linePaint); - - final Offset? offsetCenter = configuration.size?.centerRight(rightOffset); - if (offsetCenter != null) canvas.drawCircle(offsetCenter, iconBackgroundRadius, circlePaint); - } -} diff --git a/lib/src/timeline_properties.dart b/lib/src/timeline_properties.dart new file mode 100644 index 0000000..0cfcc6e --- /dev/null +++ b/lib/src/timeline_properties.dart @@ -0,0 +1,50 @@ +import 'dart:ui'; + +import '../timeline_list.dart'; + +class TimelineProperties { + final double itemGap; + final double iconGap; + final double lineWidth; + final Color lineColor; + final double iconSize; // icon is assumed to be square + final MarkerIconAlignment iconAlignment; + final TimelinePosition timelinePosition; + + /// A class that holds the properties for a timeline item. + /// + /// This class encapsulates various properties that define the appearance + /// and behavior of the timeline, including gaps between items, the gap + /// between the icon and the timeline item, the width of the line connecting + /// the timeline items, the size of the icon, the color of the line, the + /// alignment of the icon, and the position of the timeline. + /// + /// By default, the icon size is 0, which means the icon is not displayed. In + /// this case, a small circle with double the line width is displayed instead. + const TimelineProperties({ + /// The gap between items in the timeline. + this.itemGap = 16, + + /// The gap between the icon and the timeline item. + this.iconGap = 12, + + /// The width of the line connecting the timeline items. + this.lineWidth = 2, + + /// The size of the icon, assumed to be square. By default, the icon size is + /// twice the line width. + double? iconSize, + + /// The color of the line connecting the timeline items. + this.lineColor = const Color.fromARGB(255, 163, 163, 168), + + /// The alignment of the icon relative to the timeline item (top, center, + /// or bottom), by default the icon is aligned at the top. + this.iconAlignment = MarkerIconAlignment.top, + + /// The position of the timeline (left, center, or right), by default the + /// timeline is centered. Note that the timeline item position is + /// ignored when timelinePosition is left or right. + this.timelinePosition = TimelinePosition.center, + }) : this.iconSize = iconSize ?? 2 * lineWidth; +} diff --git a/lib/src/timeline_widget.dart b/lib/src/timeline_widget.dart new file mode 100644 index 0000000..749e79a --- /dev/null +++ b/lib/src/timeline_widget.dart @@ -0,0 +1,107 @@ +import 'package:flutter/material.dart'; +import '../timeline_list.dart'; + +class TimelineWidget extends StatelessWidget { + /// The list of markers to display in the timeline. + final List items; + + /// The position of the timeline (start, end, or center). + final TimelinePosition position; + + /// Properties that define the default visual appearance of the timeline. + final TimelineProperties properties; + + /// Optional scroll controller for the timeline list. + final ScrollController? controller; + + /// Optional scroll physics for the timeline list. + final ScrollPhysics? physics; + + /// Whether the timeline should shrink-wrap its contents. True by default. + final bool shrinkWrap; + + /// Whether to reverse the order of items in the timeline. + final bool reverse; + + /// Maximum width constraint for the timeline. + final double maxWidth; + + /// Horizontal padding around the timeline. + final double horizontalPadding; + + /// Default icon alignment for all markers in the timeline. + final MarkerIconAlignment iconAlignment; + + /// Creates a new [TimelineWidget]. + /// + /// The [items], [position], and [properties] parameters are required. + /// Other parameters provide additional customization options for the timeline's + /// appearance and behavior. + const TimelineWidget({ + Key? key, + required this.items, + required this.position, + required this.properties, + this.controller, + this.physics, + this.shrinkWrap = false, + this.reverse = false, + this.maxWidth = double.infinity, + this.horizontalPadding = 16, + this.iconAlignment = MarkerIconAlignment.top, + }) : super(key: key); + + /// Builds the content for a single marker in the timeline. + /// + /// This method handles the positioning and alignment of markers based on the + /// timeline's position and the marker's properties. + Widget content( + BuildContext context, Marker marker, bool isFirst, bool isLast) { + final child = SizedBox( + width: marker.maxWidth, + child: MarkerWidget( + data: marker.copyWith( + iconAlignment: marker.iconAlignment ?? properties.iconAlignment, + position: position == TimelinePosition.start + ? MarkerPosition.left + : (position == TimelinePosition.end + ? MarkerPosition.right + : marker.position), + ), + properties: properties, + isFirst: isFirst, + isLast: isLast), + ); + return switch (position) { + TimelinePosition.start => + Align(alignment: Alignment.centerLeft, child: child), + TimelinePosition.end => + Align(alignment: Alignment.centerRight, child: child), + _ => child, + }; + } + + @override + Widget build(BuildContext context) { + return ListView.separated( + controller: controller, + physics: physics, + shrinkWrap: shrinkWrap, + reverse: reverse, + itemCount: items.length, + padding: EdgeInsets.symmetric(horizontal: horizontalPadding), + separatorBuilder: (context, index) => + SizedBox(height: properties.markerGap), + itemBuilder: (context, index) { + final item = items[index]; + final isFirst = reverse ? index == (items.length - 1) : index == 0; + final isLast = reverse ? index == 0 : index == (items.length - 1); + + return LayoutBuilder( + builder: (context, constraints) => + content(context, item, isFirst, isLast), + ); + }, + ); + } +} diff --git a/lib/src/types/marker.dart b/lib/src/types/marker.dart new file mode 100644 index 0000000..74b84a9 --- /dev/null +++ b/lib/src/types/marker.dart @@ -0,0 +1,70 @@ +import 'package:flutter/widgets.dart'; + +import 'types.dart'; + +typedef MarkerBuilder = Marker Function( + BuildContext context, int index, TimelinePosition position); + +/// A class that represents a marker item in a timeline. +/// +/// Each marker consists of a main content [child], an optional [icon], +/// and configuration for its positioning and interaction. +class Marker { + /// The main content widget of the marker. + final Widget child; + + /// An optional icon widget displayed alongside the marker. + /// If not provided, a default circular dot will be used. + final Widget? icon; + + /// The position of the marker relative to the timeline. + /// Defaults to [MarkerPosition.random]. + final MarkerPosition position; + + /// Callback function triggered when the marker is tapped. + final VoidCallback? onTap; + + /// Defines how the icon should be aligned relative to the marker content. + /// This affects the vertical alignment of the icon. + final MarkerIconAlignment? iconAlignment; + + /// The maximum width constraint for the marker content. + /// Defaults to [double.infinity]. + final double maxWidth; + + /// Creates a new [Marker] instance, previosly known as [TimelineItem]. + /// + /// The [child] parameter is required and represents the main content of the marker. + /// Other parameters are optional and provide customization for the marker's + /// appearance and behavior. + Marker({ + required this.child, + this.icon, + this.onTap, + this.iconAlignment, + this.position = MarkerPosition.random, + this.maxWidth = double.infinity, + }); + + /// Creates a copy of this [Marker] with the given fields replaced with new values. + /// + /// This method is useful when you need to create a new marker based on an existing one + /// with slight modifications. + Marker copyWith({ + Widget? child, + Widget? icon, + MarkerPosition? position, + VoidCallback? onTap, + MarkerIconAlignment? iconAlignment, + double? maxWidth, + }) { + return Marker( + child: child ?? this.child, + icon: icon ?? this.icon, + onTap: onTap ?? this.onTap, + iconAlignment: iconAlignment ?? this.iconAlignment, + position: position ?? this.position, + maxWidth: maxWidth ?? this.maxWidth, + ); + } +} diff --git a/lib/src/types/marker_position.dart b/lib/src/types/marker_position.dart new file mode 100644 index 0000000..8f05a83 --- /dev/null +++ b/lib/src/types/marker_position.dart @@ -0,0 +1,33 @@ +import 'dart:math'; + +import 'package:flutter/widgets.dart'; + +/// Represents the position of the individual marker of a timeline when the +/// timeline is centered. +/// +/// The marker position is ignored when the timeline is not centered. When set +/// to [MarkerPosition.random], the position is chosen at runtime. +enum MarkerPosition { + left, + right, + random; + + AlignmentGeometry asAlignmentGeometry() => switch (this) { + MarkerPosition.left => Alignment.centerLeft, + MarkerPosition.right => Alignment.centerRight, + MarkerPosition.random => + (Random().nextBool()) ? Alignment.centerLeft : Alignment.centerRight, + }; + + CrossAxisAlignment asCrossAxisAlignment() => switch (this) { + MarkerPosition.left => CrossAxisAlignment.start, + MarkerPosition.right => CrossAxisAlignment.end, + MarkerPosition.random => (Random().nextBool()) + ? CrossAxisAlignment.start + : CrossAxisAlignment.end, + }; + + bool isLeft() => this == MarkerPosition.random + ? Random().nextBool() + : this == MarkerPosition.left; +} diff --git a/lib/src/types/timeline_icon_alignment.dart b/lib/src/types/timeline_icon_alignment.dart new file mode 100644 index 0000000..7714556 --- /dev/null +++ b/lib/src/types/timeline_icon_alignment.dart @@ -0,0 +1,36 @@ +import 'package:flutter/widgets.dart'; + +/// Defines the vertical alignment of a marker's icon relative to its content. +/// +/// This enum provides three alignment options for positioning the icon: +/// - [top]: Aligns the icon at the top of the marker's content +/// - [center]: Centers the icon vertically relative to the marker's content +/// - [bottom]: Aligns the icon at the bottom of the marker's content +enum MarkerIconAlignment { + /// Aligns the icon at the top of the marker's content. + top, + + /// Centers the icon vertically relative to the marker's content. + center, + + /// Aligns the icon at the bottom of the marker's content. + bottom; + + /// Converts the alignment to a Flutter [AlignmentGeometry] value. + /// + /// This is used internally for positioning the icon within its container. + AlignmentGeometry asAlignmentGeometry() => switch (this) { + MarkerIconAlignment.top => Alignment.topCenter, + MarkerIconAlignment.center => Alignment.center, + MarkerIconAlignment.bottom => Alignment.bottomCenter, + }; + + /// Converts the alignment to a Flutter [CrossAxisAlignment] value. + /// + /// This is used internally for positioning the icon within row or column layouts. + CrossAxisAlignment asCrossAxisAlignment() => switch (this) { + MarkerIconAlignment.top => CrossAxisAlignment.start, + MarkerIconAlignment.center => CrossAxisAlignment.center, + MarkerIconAlignment.bottom => CrossAxisAlignment.end, + }; +} diff --git a/lib/src/types/timeline_position.dart b/lib/src/types/timeline_position.dart new file mode 100644 index 0000000..62132b9 --- /dev/null +++ b/lib/src/types/timeline_position.dart @@ -0,0 +1,36 @@ +import 'package:flutter/widgets.dart'; + +/// Defines the horizontal position of the timeline within its container. +/// +/// This enum provides three positioning options: +/// - [start]: Places the timeline at the start (left) of the container +/// - [center]: Centers the timeline horizontally in the container +/// - [end]: Places the timeline at the end (right) of the container +enum TimelinePosition { + /// Places the timeline at the start (left) of the container. + start, + + /// Centers the timeline horizontally in the container. + center, + + /// Places the timeline at the end (right) of the container. + end; + + /// Converts the position to a Flutter [MainAxisAlignment] value. + /// + /// This is used internally for positioning timeline elements within row layouts. + MainAxisAlignment asMainAxisAlignment() => switch (this) { + TimelinePosition.start => MainAxisAlignment.start, + TimelinePosition.center => MainAxisAlignment.center, + TimelinePosition.end => MainAxisAlignment.end, + }; + + /// Converts the position to a Flutter [CrossAxisAlignment] value. + /// + /// This is used internally for positioning timeline elements within column layouts. + CrossAxisAlignment asCrossAxisAlignment() => switch (this) { + TimelinePosition.start => CrossAxisAlignment.start, + TimelinePosition.center => CrossAxisAlignment.center, + TimelinePosition.end => CrossAxisAlignment.end, + }; +} diff --git a/lib/src/types/timeline_properties.dart b/lib/src/types/timeline_properties.dart new file mode 100644 index 0000000..d80aca2 --- /dev/null +++ b/lib/src/types/timeline_properties.dart @@ -0,0 +1,50 @@ +import 'dart:ui'; + +import '../../timeline_list.dart'; + +class TimelineProperties { + final double markerGap; + final double iconGap; + final double lineWidth; + final Color lineColor; + final double iconSize; // icon is assumed to be square + final MarkerIconAlignment iconAlignment; + final TimelinePosition timelinePosition; + + /// A class that holds the properties for a timeline item. + /// + /// This class encapsulates various properties that define the appearance + /// and behavior of the timeline, including gaps between markers, the gap + /// between the icon and the marker, the width of the line connecting the + /// markers, the size of the icon, the color of the line, the alignment of the + /// icon, and the position of the timeline. + /// + /// If no icon is provided in the marker, a small circle with double the line + /// width is displayed instead. + const TimelineProperties({ + /// The gap between markers in the timeline. + this.markerGap = 16, + + /// The gap between the icon and the timeline item. + this.iconGap = 12, + + /// The width of the line connecting the timeline markers. + this.lineWidth = 2, + + /// The size of the icon, assumed to be square. By default, the icon size is + /// twice the line width. + double? iconSize, + + /// The color of the line connecting the timeline items. + this.lineColor = const Color.fromARGB(255, 163, 163, 168), + + /// The alignment of the icon relative to the timeline item (top, center, + /// or bottom), by default the icon is aligned at the top. + this.iconAlignment = MarkerIconAlignment.top, + + /// The position of the timeline (left, center, or right), by default the + /// timeline is centered. Note that the timeline item position is + /// ignored when timelinePosition is left or right. + this.timelinePosition = TimelinePosition.center, + }) : this.iconSize = iconSize ?? 2 * lineWidth; +} diff --git a/lib/src/types/types.dart b/lib/src/types/types.dart new file mode 100644 index 0000000..d36b8b6 --- /dev/null +++ b/lib/src/types/types.dart @@ -0,0 +1,13 @@ +/// Core types and models used throughout the timeline_list package. +/// +/// This file exports all the essential types needed to work with timelines: +/// - [TimelineProperties]: Configuration for timeline appearance +/// - [TimelinePosition]: Timeline positioning options +/// - [MarkerPosition]: Individual marker positioning +/// - [MarkerIconAlignment]: Icon alignment within markers +/// - [Marker]: Core marker model +export 'timeline_properties.dart'; +export 'timeline_position.dart'; +export 'marker_position.dart'; +export 'timeline_icon_alignment.dart'; +export 'marker.dart'; diff --git a/lib/timeline.dart b/lib/timeline.dart deleted file mode 100644 index 7be913a..0000000 --- a/lib/timeline.dart +++ /dev/null @@ -1,127 +0,0 @@ -library timeline; - -import 'package:flutter/material.dart'; -import 'package:timeline_list/src/timeline_item.dart'; -import 'package:timeline_list/src/timeline_painter.dart'; -import 'package:timeline_list/timeline_model.dart'; - -typedef IndexedTimelineModelBuilder = TimelineModel Function( - BuildContext context, int index); - -enum TimelinePosition { Left, Center, Right } - -class TimelineProperties { - final Color lineColor; - final double lineWidth; - final double iconSize; - final double gap; - - const TimelineProperties({Color? lineColor, double? lineWidth, double? iconSize, double? gap}) - : lineColor = lineColor ?? const Color(0xFF333333), - lineWidth = lineWidth ?? 2.5, - iconSize = iconSize ?? TimelineBoxDecoration.DEFAULT_ICON_SIZE, - gap = gap ?? 0.0; -} - -class Timeline extends StatelessWidget { - final ScrollController? controller; - final IndexedTimelineModelBuilder itemBuilder; - final int itemCount; - final TimelinePosition position; - final TimelineProperties properties; - final ScrollPhysics? physics; - final bool shrinkWrap; - final bool primary; - final bool reverse; - - /// Creates a scrollable timeline of widgets that are created befirehand. - /// Note: [TimelineModel.icon]'s size is ignored when `position` is not - /// [TimelinePosition.Center]. - Timeline( - {required List children, - Color? lineColor, - double? lineWidth, - double? iconSize, - double? gap, - this.controller, - this.position = TimelinePosition.Center, - this.physics, - this.shrinkWrap = false, - this.primary = false, - this.reverse = false}) - : itemCount = children.length, - properties = TimelineProperties( - lineColor: lineColor, lineWidth: lineWidth, iconSize: iconSize, gap: gap), - itemBuilder = ((BuildContext context, int i) => children[i]); - - /// Creates a scrollable timeline of widgets that are created on demand. - /// Note: `itemBuilder` position and [TimelineModel.icon]'s size is ignored - /// when `position` is not [TimelinePosition.Center]. - Timeline.builder( - {required this.itemBuilder, - required this.itemCount, - this.controller, - Color? lineColor, - double? lineWidth, - double? iconSize, - double? gap, - this.position = TimelinePosition.Center, - this.physics, - this.shrinkWrap = false, - this.primary = false, - this.reverse = false}) - : properties = TimelineProperties( - lineColor: lineColor, lineWidth: lineWidth, iconSize: iconSize, gap: gap); - - @override - Widget build(BuildContext context) { - return ListView.builder( - physics: physics, - shrinkWrap: shrinkWrap, - itemCount: itemCount, - controller: controller, - reverse: reverse, - primary: primary, - itemBuilder: (context, i) { - final TimelineModel model = itemBuilder(context, i); - model.isFirst = reverse ? i == (itemCount - 1) : i == 0; - model.isLast = reverse ? i == 0 : i == (itemCount - 1); - - final child = positionBuilder[position]!; - - return Material( - child: InkWell( - onTap: model.onTap as void Function()?, - child: Container(child: child(properties, model), margin: EdgeInsets.only(bottom: properties.gap)), - ), - ); - }); - } -} - -final positionBuilder = { - TimelinePosition.Left: ( - TimelineProperties properties, - TimelineModel model, - ) => - TimelineItemLeft( - properties: properties, - model: model, - ), - TimelinePosition.Right: ( - TimelineProperties properties, - TimelineModel model, - ) => - TimelineItemRight( - properties: properties, - model: model, - ), - TimelinePosition.Center: ( - TimelineProperties properties, - TimelineModel model, - ) => - TimelineItemCenter( - properties: properties, - model: model, - ), -}; diff --git a/lib/timeline_list.dart b/lib/timeline_list.dart new file mode 100644 index 0000000..bdf2845 --- /dev/null +++ b/lib/timeline_list.dart @@ -0,0 +1,81 @@ +library timeline; + +import 'package:flutter/material.dart'; + +import 'src/timeline_widget.dart'; +export 'src/types/timeline_properties.dart'; +import 'src/types/types.dart'; +export 'src/timeline_decoration.dart'; +export 'src/timeline_widget.dart'; +export 'src/marker_widget.dart'; +export 'src/types/types.dart'; + +class Timeline extends StatelessWidget { + final List children; + final TimelinePosition position; + final TimelineProperties properties; + + final ScrollController? controller; + final ScrollPhysics? physics; + final bool shrinkWrap; + final bool reverse; + final double maxWidth; + final double horizontalPadding; + + const Timeline({ + Key? key, + required this.children, + this.position = TimelinePosition.center, + this.properties = const TimelineProperties(), + this.controller, + this.physics, + this.shrinkWrap = true, + this.reverse = false, + this.maxWidth = double.infinity, + this.horizontalPadding = 16, + }) : super(key: key); + + @override + Widget build(BuildContext context) { + return TimelineWidget( + items: children, + position: position, + properties: properties, + controller: controller, + physics: physics, + shrinkWrap: shrinkWrap, + reverse: reverse, + maxWidth: maxWidth, + horizontalPadding: horizontalPadding, + ); + } + + static Timeline builder({ + required BuildContext context, + required int markerCount, + required MarkerBuilder markerBuilder, + TimelinePosition position = TimelinePosition.center, + TimelineProperties properties = const TimelineProperties(), + ScrollController? controller, + ScrollPhysics? physics, + bool shrinkWrap = true, + bool reverse = false, + double maxWidth = double.infinity, + double horizontalPadding = 16, + }) { + return Timeline( + children: List.generate( + markerCount, + (index) => markerBuilder(context, index, position), + ), + position: position, + properties: properties, + controller: controller, + physics: physics, + shrinkWrap: shrinkWrap, + reverse: reverse, + maxWidth: maxWidth, + horizontalPadding: horizontalPadding, + ); + } +} diff --git a/lib/timeline_model.dart b/lib/timeline_model.dart deleted file mode 100644 index e77caa6..0000000 --- a/lib/timeline_model.dart +++ /dev/null @@ -1,47 +0,0 @@ -import 'package:flutter/material.dart'; - -enum TimelineItemPosition { left, right, random } - -class TimelineModel { - final Icon? icon; - final Color iconBackground; - final Widget? child; - final TimelineItemPosition position; - bool isFirst; - bool isLast; - final Function? onTap; - - TimelineModel(this.child, - {this.icon, - this.iconBackground = Colors.grey, - this.position = TimelineItemPosition.random, - this.isFirst = false, - this.isLast = false, - this.onTap}); - - @override - bool operator ==(o) { - if (identical(this, o)) return true; - if (runtimeType != o.runtimeType) return false; - return o is TimelineModel && - icon == o.icon && - iconBackground == o.iconBackground && - child == o.child && - isFirst == o.isFirst && - isLast == o.isLast && - position == o.position; - } - - @override - int get hashCode => - hashValues(icon, iconBackground, child, position, isFirst, isLast); - - TimelineModel copyWith( - {icon, iconBackground, child, position, isFirst, isLast}) => - TimelineModel(child ?? this.child, - icon: icon ?? this.icon, - iconBackground: iconBackground ?? this.iconBackground, - position: position ?? this.position, - isFirst: isFirst ?? this.isFirst, - isLast: isLast ?? this.isLast); -} \ No newline at end of file diff --git a/pubspec.yaml b/pubspec.yaml index 1e5f564..621cb0b 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,16 +1,17 @@ name: timeline_list -description: Displays customizable timeline of widgets -version: 0.0.6 +description: A Flutter widget for creating beautiful vertical timelines with customizable markers, icons, and flexible positioning. Perfect for onboarding flows, progress tracking, and history displays. +version: 0.1.0 homepage: https://github.com/furkantektas/timeline_list environment: - sdk: '>=2.12.0 <3.0.0' + sdk: ">=3.0.0 <4.0.0" dependencies: flutter: sdk: flutter + dev_dependencies: flutter_test: sdk: flutter diff --git a/test/timeline_test.dart b/test/timeline_test.dart deleted file mode 100644 index 53b11c3..0000000 --- a/test/timeline_test.dart +++ /dev/null @@ -1,335 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:flutter/rendering.dart'; -import 'package:flutter_test/flutter_test.dart'; - -import 'package:timeline_list/timeline.dart'; -import 'package:timeline_list/timeline_model.dart'; - -void main() { - testWidgets('TimelineModel equality and hashCode', - (WidgetTester tester) async { - final child = Container(); - final icon = Icon(Icons.add); - final icon2 = Icon(Icons.remove); - final TimelineModel model1 = TimelineModel(child, - position: TimelineItemPosition.random, - icon: icon, - iconBackground: Colors.yellow); - final TimelineModel model2 = TimelineModel(child, - position: TimelineItemPosition.random, - icon: icon, - iconBackground: Colors.yellow); - final TimelineModel model3 = TimelineModel(child, - position: TimelineItemPosition.left, - icon: icon, - iconBackground: Colors.yellow); - final TimelineModel model4 = TimelineModel(child, - position: TimelineItemPosition.random, - icon: icon, - iconBackground: Colors.blue); - final TimelineModel model5 = TimelineModel(child, - position: TimelineItemPosition.random, - icon: icon2, - iconBackground: Colors.yellow); - - expect(model1 == model2, true); - expect(model1.hashCode == model2.hashCode, true); - expect(model1 == model3, false); - expect(model1.hashCode == model3.hashCode, false); - expect(model1 == model4, false); - expect(model1 == model5, false); - - final TimelineModel model6 = TimelineModel(child, - position: TimelineItemPosition.random, - icon: icon2, - iconBackground: Colors.blue, - isFirst: true, - isLast: true); - - final TimelineModel model7 = TimelineModel(child, - position: TimelineItemPosition.random, - icon: icon2, - iconBackground: Colors.blue, - isFirst: false, - isLast: true); - - final TimelineModel model8 = TimelineModel(child, - position: TimelineItemPosition.random, - icon: icon2, - iconBackground: Colors.blue, - isFirst: true, - isLast: false); - - final TimelineModel model9 = TimelineModel(child, - position: TimelineItemPosition.random, - icon: icon2, - iconBackground: Colors.blue, - isFirst: false, - isLast: false); - - final TimelineModel model10 = TimelineModel(child, - position: TimelineItemPosition.random, - icon: icon2, - iconBackground: Colors.blue, - isFirst: true, - isLast: true); - - expect(model6 == model7, false); - expect(model6 == model8, false); - expect(model6 == model9, false); - expect(model6 == model10, true); - - final model3Copy = model3.copyWith(position: TimelineItemPosition.random); - final model1Copy = model1.copyWith(icon: icon2); - final model5Copy = model5.copyWith(icon: icon); - expect(model1 == model3Copy, true); - expect(model1 == model1Copy, false); - expect(model1 == model5Copy, true); - - final model6Copy1 = model6.copyWith(isFirst: false); - final model6Copy2 = model6.copyWith(isLast: false); - expect(model6 == model6Copy1, false); - expect(model6 == model6Copy2, false); - }); - - testWidgets('Empty timeline', (WidgetTester tester) async { - await tester.pumpWidget(Directionality( - textDirection: TextDirection.ltr, - child: Timeline(children: []))); - - expect(find.byType(Timeline), findsOneWidget); - }); - - testWidgets('Empty timeline builder', (WidgetTester tester) async { - await tester.pumpWidget(Directionality( - textDirection: TextDirection.ltr, - child: Timeline.builder(itemBuilder: (context, i) => TimelineModel(Container()), itemCount: 0), - )); - - expect(find.byType(Timeline), findsOneWidget); - }); - - final key = UniqueKey(); - testWidgets('Single item size', (WidgetTester tester) async { - await tester.pumpWidget(Directionality( - textDirection: TextDirection.ltr, - child: Timeline(children: [ - TimelineModel(Container(key: key, width: 200.0, height: 200.0)) - ]))); - - final captor = find.byKey(key); - expect(captor, findsOneWidget); - - final box = tester.renderObject(captor); - expect(box.size.height, 200.0); - expect(box.size.width, 200.0); - }); - - testWidgets('Multiple items', (WidgetTester tester) async { - await tester.pumpWidget(Directionality( - textDirection: TextDirection.ltr, - child: Timeline( - children: [ - TimelineModel(Text("1")), - TimelineModel(Text("2")) - ], - ))); - - expect(find.text("1"), findsOneWidget); - expect(find.text("2"), findsOneWidget); - expect(find.text("3"), findsNothing); - }); - - testWidgets('Custom Icon', (WidgetTester tester) async { - await tester.pumpWidget(Directionality( - textDirection: TextDirection.ltr, - child: Timeline( - children: [ - TimelineModel(Container(), - icon: Icon( - Icons.add, - color: Colors.yellow, - )) - ], - ))); - - expect(find.byIcon(Icons.add), findsOneWidget); - }); - - testWidgets('Reverse List', (WidgetTester tester) async { - await tester.pumpWidget(Directionality( - textDirection: TextDirection.ltr, - child: Timeline.builder( - reverse: true, - itemCount: 1, - itemBuilder: (context, i) => TimelineModel(Container(), - icon: Icon( - Icons.add, - color: i == 0 ? Colors.blue : Colors.green, - ))))); - - final finder = find.byIcon(Icons.add); - expect(finder, findsOneWidget); - expect(tester.widget(finder).color, Colors.blue); - }); - - testWidgets('No icon timeline', (WidgetTester tester) async { - await tester.pumpWidget(Directionality( - textDirection: TextDirection.ltr, - child: Timeline( - children: [TimelineModel(Container())], - ))); - - expect(find.widgetWithIcon(Object, Icons.add), findsNothing); - }); - - testWidgets('Center timeline item alignment', (WidgetTester tester) async { - await tester.pumpWidget(Directionality( - textDirection: TextDirection.ltr, - child: Timeline( - position: TimelinePosition.Center, - children: [ - TimelineModel(Container(), - icon: Icon(Icons.add), position: TimelineItemPosition.left) - ], - ))); - - final RenderStack actualPositionedBoxLeft = - tester.renderObject(find.byType(Stack).first); - - Alignment actualAlignmentLeft = actualPositionedBoxLeft.alignment as Alignment; - expect(actualAlignmentLeft, Alignment.centerLeft); - - await tester.pumpWidget(Directionality( - textDirection: TextDirection.ltr, - child: Timeline( - position: TimelinePosition.Center, - children: [ - TimelineModel(Container(), - icon: Icon(Icons.add), position: TimelineItemPosition.right) - ], - ))); - - final RenderStack actualPositionedBoxRight = - tester.renderObject(find.byType(Stack).first); - - Alignment actualAlignmentRight = actualPositionedBoxRight.alignment as Alignment; - expect(actualAlignmentRight, Alignment.centerRight); - }); - - testWidgets('Icon size', (WidgetTester tester) async { - const DEFAULT_ICON_SIZE = 24.0; - const ICON_SIZE = DEFAULT_ICON_SIZE + 1.0; - final children = [ - TimelineModel(Container(), - icon: Icon( - Icons.add, - size: ICON_SIZE, - )) - ]; - - await tester.pumpWidget(Directionality( - textDirection: TextDirection.ltr, - child: Timeline(position: TimelinePosition.Left, children: children))); - - RenderBox box = tester.renderObject(find.byIcon(Icons.add)); - expect(box.size.width, DEFAULT_ICON_SIZE); - - await tester.pumpWidget(Directionality( - textDirection: TextDirection.ltr, - child: Timeline(position: TimelinePosition.Right, children: children))); - - box = tester.renderObject(find.byIcon(Icons.add)); - - expect(box.size.width, DEFAULT_ICON_SIZE); - await tester.pumpWidget(Directionality( - textDirection: TextDirection.ltr, - child: - Timeline(position: TimelinePosition.Center, children: children))); - - box = tester.renderObject(find.byIcon(Icons.add)); - expect(box.size.width, ICON_SIZE); - }); - - testWidgets('Left/Right timeline item alignment', - (WidgetTester tester) async { - await tester.pumpWidget(Directionality( - textDirection: TextDirection.ltr, - child: Timeline( - position: TimelinePosition.Left, - children: [ - TimelineModel(Container(), position: TimelineItemPosition.right) - ], - ))); - - var finderLeft = find.byType(Row); - expect(finderLeft, findsOneWidget); - final Row row = finderLeft.evaluate().first.widget as Row; - - expect(row.mainAxisAlignment, MainAxisAlignment.start); - - await tester.pumpWidget(Directionality( - textDirection: TextDirection.ltr, - child: Timeline( - position: TimelinePosition.Right, - children: [ - TimelineModel(Container(), position: TimelineItemPosition.left) - ], - ))); - - final finderRight = find.byType(Row); - expect(finderRight, findsOneWidget); - final Row rowEnd = finderRight.evaluate().first.widget as Row; - - expect(rowEnd.mainAxisAlignment, MainAxisAlignment.end); - }); - - testWidgets('Center timeline item alignment and icon size', - (WidgetTester tester) async { - const ICON_SIZE = 120.0; - - await tester.pumpWidget(Directionality( - textDirection: TextDirection.ltr, - child: Timeline( - position: TimelinePosition.Center, - children: [ - TimelineModel(Container(), - icon: Icon( - Icons.add, - size: ICON_SIZE, - ), - position: TimelineItemPosition.left) - ], - ))); - - final RenderStack actualPositionedBoxLeft = - tester.renderObject(find.byType(Stack)); - - Alignment actualAlignmentLeft = actualPositionedBoxLeft.alignment as Alignment; - expect(actualAlignmentLeft, Alignment.centerLeft); - - final Icon icon = find.byIcon(Icons.add).evaluate().first.widget as Icon; - expect(icon.size, ICON_SIZE); - }); - - testWidgets('Multiple items viewport offset', (WidgetTester tester) async { - const ITEM_COUNT = 200; - const ITEM_HEIGHT = 200.0; - await tester.pumpWidget(Directionality( - textDirection: TextDirection.ltr, - child: Timeline.builder( - itemCount: ITEM_COUNT, - itemBuilder: ((context, i) => TimelineModel(Placeholder( - fallbackHeight: ITEM_HEIGHT, - ))), - ))); - - await tester.fling( - find.byType(Timeline), - const Offset(0.0, -1 * ITEM_COUNT * ITEM_HEIGHT), - ITEM_COUNT * ITEM_HEIGHT); - await tester.pumpAndSettle(const Duration(milliseconds: 10)); - final Viewport viewport = tester.widget(find.byType(Viewport)); - expect(viewport.offset.pixels, equals((ITEM_COUNT - 3) * ITEM_HEIGHT)); - }); -} diff --git a/timeline.iml b/timeline.iml deleted file mode 100644 index 70b4a9b..0000000 --- a/timeline.iml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file From 2c88c80dc7ee4683d3945603587aaa45aa254dab Mon Sep 17 00:00:00 2001 From: Furkan Tektas Date: Tue, 19 Nov 2024 23:01:12 +0000 Subject: [PATCH 02/14] Add GitHub Actions workflow --- .github/workflows/publish.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 .github/workflows/publish.yml diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml new file mode 100644 index 0000000..1592a06 --- /dev/null +++ b/.github/workflows/publish.yml @@ -0,0 +1,11 @@ +name: Publish to pub.dev + +on: + push: + tags: + - 'v[0-9]+.[0-9]+.[0-9]+' # tag-pattern on pub.dev: 'v{{version}}' +jobs: + publish: + permissions: + id-token: write # Required for authentication using OIDC + uses: dart-lang/setup-dart/.github/workflows/publish.yml@v1 From acac93645d53e04e7d16d658e0cf2b0df185f729 Mon Sep 17 00:00:00 2001 From: Furkan Tektas Date: Sun, 1 Dec 2024 18:13:32 +0000 Subject: [PATCH 03/14] add simple timeline example --- example/lib/main.dart | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/example/lib/main.dart b/example/lib/main.dart index f419fda..796fd4b 100644 --- a/example/lib/main.dart +++ b/example/lib/main.dart @@ -1,9 +1,25 @@ import 'package:flutter/material.dart'; +import 'package:timeline_list/timeline_list.dart'; import 'timeline.dart'; import 'onboarding.dart'; void main() => runApp(MyApp()); +class SimpleTimeline extends StatelessWidget { + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar(title: Text("Simple timeline")), + body: Timeline( + children: [ + Marker(child: Text("Step 1")), + Marker(child: Text("Step 2")), + Marker(child: Text("Step 3")) + ], + )); + } +} + class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { @@ -13,8 +29,9 @@ class MyApp extends StatelessWidget { initialRoute: '/', routes: { '/': (context) => ExampleDirectory(), - '/timeline': (context) => TimelinePage(), + '/fully-featured': (context) => FullyFeaturedTimelinePage(), '/onboarding': (context) => OnboardingPage(), + '/simple': (context) => SimpleTimeline(), }, ); } @@ -28,10 +45,13 @@ class ExampleDirectory extends StatelessWidget { body: ListView(children: [ ListTile( title: Text("Timeline with icons and different alignment options"), - onTap: () => Navigator.pushNamed(context, '/timeline')), + onTap: () => Navigator.pushNamed(context, '/fully-featured')), ListTile( title: Text("Onboarding example"), onTap: () => Navigator.pushNamed(context, '/onboarding')), + ListTile( + title: Text("Simple timeline"), + onTap: () => Navigator.pushNamed(context, '/simple')) ]), ); } From d35a1f8910da13c04f8054e0f0f87375d95032dc Mon Sep 17 00:00:00 2001 From: Furkan Tektas Date: Sun, 1 Dec 2024 18:13:54 +0000 Subject: [PATCH 04/14] Simplify example on README --- README.md | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 07d3c56..90c551d 100644 --- a/README.md +++ b/README.md @@ -28,23 +28,17 @@ dependencies: ## Usage -### Basic Timeline +### Simple Timeline ```dart import 'package:timeline_list/timeline_list.dart'; -Timeline.builder( - context: context, - markerCount: 5, - properties: TimelineProperties( - iconAlignment: MarkerIconAlignment.center, - iconSize: 24, - timelinePosition: TimelinePosition.start - ), - markerBuilder: (context, index, position) => Marker( - child: Text("Step ${index + 1}"), - position: MarkerPosition.left, - ), +Timeline( + children: [ + Marker(child: Text("Step 1")), + Marker(child: Text("Step 2")), + Marker(child: Text("Step 3")) + ], ) ``` From 2983213858f500c3e59d87d56877d15e3947434a Mon Sep 17 00:00:00 2001 From: Furkan Tektas Date: Sun, 1 Dec 2024 18:20:33 +0000 Subject: [PATCH 05/14] Fix: gaps between timeline, simplify API This commit changes: - default position of the markers to be left aligned. - moves marker position from marker builder to marker constructor. --- example/lib/onboarding.dart | 3 +- example/lib/timeline.dart | 31 +++--- lib/src/timeline_decoration.dart | 146 +++++++++++-------------- lib/src/timeline_widget.dart | 12 +- lib/src/types/marker.dart | 7 +- lib/src/types/timeline_properties.dart | 10 +- lib/timeline.dart | 79 +++++++++++++ lib/timeline_list.dart | 7 +- 8 files changed, 173 insertions(+), 122 deletions(-) create mode 100644 lib/timeline.dart diff --git a/example/lib/onboarding.dart b/example/lib/onboarding.dart index d6d83a7..bf65cf7 100644 --- a/example/lib/onboarding.dart +++ b/example/lib/onboarding.dart @@ -25,7 +25,7 @@ class OnboardingPage extends StatelessWidget { iconAlignment: MarkerIconAlignment.center, iconSize: 16, timelinePosition: TimelinePosition.start), - markerBuilder: (context, index, position) => Marker( + markerBuilder: (context, index) => Marker( child: Padding( padding: const EdgeInsets.all(8.0), child: Text("Step ${index + 1}"), @@ -33,7 +33,6 @@ class OnboardingPage extends StatelessWidget { icon: index >= 8 ? emptyIcon : checkIcon, position: MarkerPosition.left, ), - position: TimelinePosition.center, ), ])); } diff --git a/example/lib/timeline.dart b/example/lib/timeline.dart index 353d6fb..6f8586d 100644 --- a/example/lib/timeline.dart +++ b/example/lib/timeline.dart @@ -2,12 +2,13 @@ import 'package:flutter/material.dart'; import 'package:timeline_list/timeline_list.dart'; import 'data.dart'; -class TimelinePage extends StatefulWidget { +class FullyFeaturedTimelinePage extends StatefulWidget { @override - _TimelinePageState createState() => _TimelinePageState(); + _FullyFeaturedTimelinePageState createState() => + _FullyFeaturedTimelinePageState(); } -class _TimelinePageState extends State { +class _FullyFeaturedTimelinePageState extends State { final PageController pageController = PageController(initialPage: 1, keepPage: true); int currentIndex = 1; @@ -81,8 +82,7 @@ class _TimelinePageState extends State { context: context, markerBuilder: doodleBuilder, markerCount: doodles.length, - position: position, - maxWidth: 300, + maxWidth: 250, properties: TimelineProperties( lineWidth: 4, timelinePosition: position, @@ -92,8 +92,7 @@ class _TimelinePageState extends State { iconAlignment: iconAlignment), ); - Widget icon( - TimelinePosition timelinePosition, Color iconBackground, Icon icon) { + Widget icon(Color iconBackground, Icon icon) { return Container( height: iconSize, width: iconSize, @@ -103,19 +102,25 @@ class _TimelinePageState extends State { ); } - Widget networkImage(String url) => FadeInImage.assetNetwork( - placeholder: 'images/empty.png', - placeholderCacheHeight: 200, + Widget networkImage(String url) => Image.network( + url, + cacheHeight: 200, height: 200, - image: url, fit: BoxFit.contain, + loadingBuilder: (BuildContext context, Widget child, + ImageChunkEvent? loadingProgress) { + if (loadingProgress == null) return child; + return Center(child: CircularProgressIndicator()); + }, ); - Marker doodleBuilder(BuildContext context, int i, TimelinePosition position) { + Marker doodleBuilder(BuildContext context, int i) { final doodle = doodles[i]; final textTheme = Theme.of(context).textTheme; return Marker( - icon: icon(position, doodle.iconBackground, doodle.icon), + icon: icon(doodle.iconBackground, doodle.icon), + // Marker position is ignored when the timeline is not centered + position: MarkerPosition.random, child: Card( color: Colors.white, margin: EdgeInsets.symmetric(vertical: 16.0), diff --git a/lib/src/timeline_decoration.dart b/lib/src/timeline_decoration.dart index 712f013..23f3b88 100644 --- a/lib/src/timeline_decoration.dart +++ b/lib/src/timeline_decoration.dart @@ -97,37 +97,29 @@ class _TimelineBoxPainter extends BoxPainter { } } - /// Draws the timeline line for center-positioned timelines. void drawLineOnCenter( Canvas canvas, Offset offset, ImageConfiguration configuration) { final size = configuration.size!; - offset = - offset.translate(0, properties.iconSize / 2 - properties.markerGap); - if (!isFirst && !isLast) { - // Draw a straight line from top to bottom - canvas.drawLine( - size.topCenter(offset - Offset(0, properties.iconSize / 2)), - size.bottomCenter(offset + Offset(0, properties.iconSize / 2)), - linePaint); - } else { - // Stop drawing the line if it's the first or last item - final Offset iconOffset = switch (iconAlignment) { - MarkerIconAlignment.top => size.topCenter(offset), - MarkerIconAlignment.center => size.center(offset), - MarkerIconAlignment.bottom => size.bottomCenter(offset) - }; - - final Offset top = size.topCenter(offset); - final Offset end = size.bottomCenter(offset); - - // Draw a line from top to icon - if (!isFirst) { - canvas.drawLine(top, iconOffset, linePaint); - } - // Draw a line from icon to end - if (!isLast) { - canvas.drawLine(iconOffset, end, linePaint); - } + // horizontal center + Offset iconOffset = switch (iconAlignment) { + MarkerIconAlignment.top => + size.topCenter(offset.translate(0, properties.iconSize / 2)), + MarkerIconAlignment.center => size.center(offset), + MarkerIconAlignment.bottom => + size.bottomCenter(offset.translate(0, -properties.iconSize / 2)) + }; + Offset top = size.topCenter(offset - + Offset(0, -properties.iconSize / 2 + properties.markerGap / 2)); + Offset end = size.bottomCenter( + offset + Offset(0, properties.iconSize / 2 + properties.markerGap / 2)); + + // Draw a line from top to icon + if (!isFirst) { + canvas.drawLine(top, iconOffset, linePaint); + } + // Draw a line from icon to end + if (!isLast) { + canvas.drawLine(iconOffset, end, linePaint); } } @@ -135,35 +127,27 @@ class _TimelineBoxPainter extends BoxPainter { void drawLineOnLeft( Canvas canvas, Offset offset, ImageConfiguration configuration) { final size = configuration.size!; - offset = offset.translate(properties.iconSize / 2, - properties.iconSize / 2 - properties.markerGap / 2); - if (!isFirst && !isLast) { - // Draw a straight line from top to bottom - canvas.drawLine( - size.topLeft(offset - Offset(0, properties.iconSize / 2 + 8)), - size.bottomLeft(offset + Offset(0, properties.iconSize / 2 - 2)), - linePaint); - } else { - // Stop drawing the line if it's the first or last item - final Offset iconOffset = switch (iconAlignment) { - MarkerIconAlignment.top => size.topLeft(offset), - MarkerIconAlignment.center => size.centerLeft(offset), - MarkerIconAlignment.bottom => size.bottomLeft(offset) - }; - - final Offset top = - size.topLeft(offset - Offset(0, properties.iconSize / 2 + 2)); - final Offset end = - size.bottomLeft(offset + Offset(0, properties.iconSize / 2 - 2)); - - // Draw a line from top to icon - if (!isFirst) { - canvas.drawLine(top, iconOffset, linePaint); - } - // Draw a line from icon to end - if (!isLast) { - canvas.drawLine(iconOffset, end, linePaint); - } + // horizontal center + offset = offset.translate(properties.iconSize / 2, 0); + Offset iconOffset = switch (iconAlignment) { + MarkerIconAlignment.top => + size.topLeft(offset.translate(0, properties.iconSize / 2)), + MarkerIconAlignment.center => size.centerLeft(offset), + MarkerIconAlignment.bottom => + size.bottomLeft(offset.translate(0, -properties.iconSize / 2)) + }; + Offset top = size.topLeft(offset - + Offset(0, -properties.iconSize / 2 + properties.markerGap / 2)); + Offset end = size.bottomLeft( + offset + Offset(0, properties.iconSize / 2 + properties.markerGap / 2)); + + // Draw a line from top to icon + if (!isFirst) { + canvas.drawLine(top, iconOffset, linePaint); + } + // Draw a line from icon to end + if (!isLast) { + canvas.drawLine(iconOffset, end, linePaint); } } @@ -171,33 +155,27 @@ class _TimelineBoxPainter extends BoxPainter { void drawLineOnRight( Canvas canvas, Offset offset, ImageConfiguration configuration) { final size = configuration.size!; - offset = offset.translate(-properties.iconSize / 2, - -properties.iconSize / 2 + properties.markerGap); - if (!isFirst && !isLast) { - // Draw a straight line from top to bottom - canvas.drawLine( - size.topRight(offset - Offset(0, properties.iconSize / 2 - 3)), - size.bottomRight(offset + Offset(0, properties.iconSize / 2 + 3)), - linePaint); - } else { - // Stop drawing the line if it's the first or last item - final Offset iconOffset = switch (iconAlignment) { - MarkerIconAlignment.top => size.topRight(offset), - MarkerIconAlignment.center => size.centerRight(offset), - MarkerIconAlignment.bottom => size.bottomRight(offset) - }; - - final Offset top = size.topRight(offset - Offset(0, 2)); - final Offset end = size.bottomRight(offset + Offset(0, 2)); - - // Draw a line from top to icon - if (!isFirst) { - canvas.drawLine(top, iconOffset, linePaint); - } - // Draw a line from icon to end - if (!isLast) { - canvas.drawLine(iconOffset, end, linePaint); - } + // horizontal center + offset = offset.translate(-properties.iconSize / 2, 0); + Offset iconOffset = switch (iconAlignment) { + MarkerIconAlignment.top => + size.topRight(offset.translate(0, properties.iconSize / 2)), + MarkerIconAlignment.center => size.centerRight(offset), + MarkerIconAlignment.bottom => + size.bottomRight(offset.translate(0, -properties.iconSize / 2)) + }; + Offset top = size.topRight(offset - + Offset(0, -properties.iconSize / 2 + properties.markerGap / 2)); + Offset end = size.bottomRight( + offset + Offset(0, properties.iconSize / 2 + properties.markerGap / 2)); + + // Draw a line from top to icon + if (!isFirst) { + canvas.drawLine(top, iconOffset, linePaint); + } + // Draw a line from icon to end + if (!isLast) { + canvas.drawLine(iconOffset, end, linePaint); } } } diff --git a/lib/src/timeline_widget.dart b/lib/src/timeline_widget.dart index 749e79a..066bffa 100644 --- a/lib/src/timeline_widget.dart +++ b/lib/src/timeline_widget.dart @@ -5,9 +5,6 @@ class TimelineWidget extends StatelessWidget { /// The list of markers to display in the timeline. final List items; - /// The position of the timeline (start, end, or center). - final TimelinePosition position; - /// Properties that define the default visual appearance of the timeline. final TimelineProperties properties; @@ -34,13 +31,12 @@ class TimelineWidget extends StatelessWidget { /// Creates a new [TimelineWidget]. /// - /// The [items], [position], and [properties] parameters are required. + /// The [items] and [properties] parameters are required. /// Other parameters provide additional customization options for the timeline's /// appearance and behavior. const TimelineWidget({ Key? key, required this.items, - required this.position, required this.properties, this.controller, this.physics, @@ -62,9 +58,9 @@ class TimelineWidget extends StatelessWidget { child: MarkerWidget( data: marker.copyWith( iconAlignment: marker.iconAlignment ?? properties.iconAlignment, - position: position == TimelinePosition.start + position: properties.timelinePosition == TimelinePosition.start ? MarkerPosition.left - : (position == TimelinePosition.end + : (properties.timelinePosition == TimelinePosition.end ? MarkerPosition.right : marker.position), ), @@ -72,7 +68,7 @@ class TimelineWidget extends StatelessWidget { isFirst: isFirst, isLast: isLast), ); - return switch (position) { + return switch (properties.timelinePosition) { TimelinePosition.start => Align(alignment: Alignment.centerLeft, child: child), TimelinePosition.end => diff --git a/lib/src/types/marker.dart b/lib/src/types/marker.dart index 74b84a9..48c7f0b 100644 --- a/lib/src/types/marker.dart +++ b/lib/src/types/marker.dart @@ -2,8 +2,7 @@ import 'package:flutter/widgets.dart'; import 'types.dart'; -typedef MarkerBuilder = Marker Function( - BuildContext context, int index, TimelinePosition position); +typedef MarkerBuilder = Marker Function(BuildContext context, int index); /// A class that represents a marker item in a timeline. /// @@ -18,7 +17,7 @@ class Marker { final Widget? icon; /// The position of the marker relative to the timeline. - /// Defaults to [MarkerPosition.random]. + /// Defaults to [MarkerPosition.left]. final MarkerPosition position; /// Callback function triggered when the marker is tapped. @@ -42,7 +41,7 @@ class Marker { this.icon, this.onTap, this.iconAlignment, - this.position = MarkerPosition.random, + this.position = MarkerPosition.left, this.maxWidth = double.infinity, }); diff --git a/lib/src/types/timeline_properties.dart b/lib/src/types/timeline_properties.dart index d80aca2..a68308a 100644 --- a/lib/src/types/timeline_properties.dart +++ b/lib/src/types/timeline_properties.dart @@ -40,11 +40,11 @@ class TimelineProperties { /// The alignment of the icon relative to the timeline item (top, center, /// or bottom), by default the icon is aligned at the top. - this.iconAlignment = MarkerIconAlignment.top, + this.iconAlignment = MarkerIconAlignment.center, - /// The position of the timeline (left, center, or right), by default the - /// timeline is centered. Note that the timeline item position is - /// ignored when timelinePosition is left or right. - this.timelinePosition = TimelinePosition.center, + /// The position of the timeline (start(left), center, end(right)), by + /// default the timeline is left aligned. Note that the timeline item + /// position is ignored when timelinePosition is left or right. + this.timelinePosition = TimelinePosition.start, }) : this.iconSize = iconSize ?? 2 * lineWidth; } diff --git a/lib/timeline.dart b/lib/timeline.dart new file mode 100644 index 0000000..7aa9938 --- /dev/null +++ b/lib/timeline.dart @@ -0,0 +1,79 @@ +library timeline; + +import 'package:flutter/material.dart'; + +import 'src/timeline_widget.dart'; +export 'src/types/timeline_properties.dart'; +import 'src/types/types.dart'; +export 'src/timeline_decoration.dart'; +export 'src/timeline_widget.dart'; +export 'src/marker_widget.dart'; +export 'src/types/types.dart'; + +class Timeline extends StatelessWidget { + final List children; + final TimelinePosition position; + final TimelineProperties properties; + + final ScrollController? controller; + final ScrollPhysics? physics; + final bool shrinkWrap; + final bool reverse; + final double maxWidth; + final double horizontalPadding; + + const Timeline({ + Key? key, + required this.children, + this.position = TimelinePosition.center, + this.properties = const TimelineProperties(), + this.controller, + this.physics, + this.shrinkWrap = true, + this.reverse = false, + this.maxWidth = double.infinity, + this.horizontalPadding = 16, + }) : super(key: key); + + @override + Widget build(BuildContext context) { + return TimelineWidget( + items: children, + properties: properties, + controller: controller, + physics: physics, + shrinkWrap: shrinkWrap, + reverse: reverse, + maxWidth: maxWidth, + horizontalPadding: horizontalPadding, + ); + } + + static Timeline builder({ + required BuildContext context, + required int markerCount, + required MarkerBuilder markerBuilder, + TimelinePosition position = TimelinePosition.center, + TimelineProperties properties = const TimelineProperties(), + ScrollController? controller, + ScrollPhysics? physics, + bool shrinkWrap = true, + bool reverse = false, + double maxWidth = double.infinity, + double horizontalPadding = 16, + }) { + return Timeline( + children: List.generate( + markerCount, + (index) => markerBuilder(context, index), + ), + properties: properties, + controller: controller, + physics: physics, + shrinkWrap: shrinkWrap, + reverse: reverse, + maxWidth: maxWidth, + horizontalPadding: horizontalPadding, + ); + } +} diff --git a/lib/timeline_list.dart b/lib/timeline_list.dart index bdf2845..0277724 100644 --- a/lib/timeline_list.dart +++ b/lib/timeline_list.dart @@ -12,7 +12,6 @@ export 'src/types/types.dart'; class Timeline extends StatelessWidget { final List children; - final TimelinePosition position; final TimelineProperties properties; final ScrollController? controller; @@ -25,7 +24,6 @@ class Timeline extends StatelessWidget { const Timeline({ Key? key, required this.children, - this.position = TimelinePosition.center, this.properties = const TimelineProperties(), this.controller, this.physics, @@ -39,7 +37,6 @@ class Timeline extends StatelessWidget { Widget build(BuildContext context) { return TimelineWidget( items: children, - position: position, properties: properties, controller: controller, physics: physics, @@ -54,7 +51,6 @@ class Timeline extends StatelessWidget { required BuildContext context, required int markerCount, required MarkerBuilder markerBuilder, - TimelinePosition position = TimelinePosition.center, TimelineProperties properties = const TimelineProperties(), ScrollController? controller, ScrollPhysics? physics, @@ -66,9 +62,8 @@ class Timeline extends StatelessWidget { return Timeline( children: List.generate( markerCount, - (index) => markerBuilder(context, index, position), + (index) => markerBuilder(context, index), ), - position: position, properties: properties, controller: controller, physics: physics, From 1276a0fdf58aa25364d1b98812360ae3190525d9 Mon Sep 17 00:00:00 2001 From: Furkan Tektas Date: Sun, 1 Dec 2024 22:03:39 +0000 Subject: [PATCH 06/14] add web demo deployment workflow --- .github/workflows/publish-web-demo.yml | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 .github/workflows/publish-web-demo.yml diff --git a/.github/workflows/publish-web-demo.yml b/.github/workflows/publish-web-demo.yml new file mode 100644 index 0000000..a81b60b --- /dev/null +++ b/.github/workflows/publish-web-demo.yml @@ -0,0 +1,19 @@ +name: Publish Web Demo + +on: + push: + branches: + - main + pull_request: + + +jobs: + build-and-deploy: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + - uses: bluefireteam/flutter-gh-pages@v7 + with: + workingDir: example + baseHref: /timeline_list/ \ No newline at end of file From dbdd2e1b860a80c71d3dabb23b6c6cc7d9675abd Mon Sep 17 00:00:00 2001 From: Furkan Tektas Date: Sun, 1 Dec 2024 22:04:24 +0000 Subject: [PATCH 07/14] fix: web demo deployment --- .github/workflows/publish-web-demo.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/publish-web-demo.yml b/.github/workflows/publish-web-demo.yml index a81b60b..3f53931 100644 --- a/.github/workflows/publish-web-demo.yml +++ b/.github/workflows/publish-web-demo.yml @@ -14,6 +14,6 @@ jobs: steps: - uses: actions/checkout@v4 - uses: bluefireteam/flutter-gh-pages@v7 - with: - workingDir: example - baseHref: /timeline_list/ \ No newline at end of file + with: + workingDir: example + baseHref: /timeline_list/ \ No newline at end of file From f6ee5e10657a8c74368cfa320bb88259d1e378db Mon Sep 17 00:00:00 2001 From: Furkan Tektas Date: Sun, 1 Dec 2024 22:08:22 +0000 Subject: [PATCH 08/14] fix: set up flutter for web demo workflow --- .github/workflows/publish-web-demo.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/workflows/publish-web-demo.yml b/.github/workflows/publish-web-demo.yml index 3f53931..b9306f4 100644 --- a/.github/workflows/publish-web-demo.yml +++ b/.github/workflows/publish-web-demo.yml @@ -13,7 +13,13 @@ jobs: steps: - uses: actions/checkout@v4 - - uses: bluefireteam/flutter-gh-pages@v7 + - name: Set up Flutter + uses: subosito/flutter-action@v2 + with: + channel: stable + cache: true + - name: Deploy to GitHub Pages + uses: bluefireteam/flutter-gh-pages@v7 with: workingDir: example baseHref: /timeline_list/ \ No newline at end of file From 71fb6c786035d14d5eb4b9a69aaf77c2994a5f90 Mon Sep 17 00:00:00 2001 From: Furkan Tektas Date: Mon, 2 Dec 2024 00:37:46 +0000 Subject: [PATCH 09/14] change example timelist to iphone release dates Due to cors issues on web demo --- example/lib/data.dart | 108 ------------ example/lib/iphone_releases.dart | 284 +++++++++++++++++++++++++++++++ example/lib/main.dart | 6 +- example/lib/timeline.dart | 146 ---------------- 4 files changed, 287 insertions(+), 257 deletions(-) delete mode 100644 example/lib/data.dart create mode 100644 example/lib/iphone_releases.dart delete mode 100644 example/lib/timeline.dart diff --git a/example/lib/data.dart b/example/lib/data.dart deleted file mode 100644 index fff77ad..0000000 --- a/example/lib/data.dart +++ /dev/null @@ -1,108 +0,0 @@ -import 'package:flutter/material.dart'; - -class Doodle { - final String name; - final String time; - final String content; - final String doodle; - final Color iconBackground; - final Icon icon; - - const Doodle( - {required this.name, - required this.time, - required this.content, - required this.doodle, - required this.icon, - required this.iconBackground}); -} - -const List doodles = [ - Doodle( - name: "Al-Sufi (Azophi)", - time: "903 - 986", - content: - "One of Al-Sufi's greatest works involved fact-checking the Greek astronomer Ptolemy's measurements of the brightness and size of stars. In the year 964 AD, Al-Sufi published his findings in a book titled Kitab al-Kawatib al-Thabita al-Musawwar, or The Book of Fixed Stars. In many cases, he confirmed Ptolemy’s discoveries, but he also improved upon his work by illustrating the constellations and correcting some of Ptolemy’s observations about the brightness of stars.", - doodle: - "https://www.google.com/logos/doodles/2016/abd-al-rahman-al-sufis-azophi-1113th-birthday-5115602948587520-hp2x.jpg", - icon: Icon(Icons.star, color: Colors.white), - iconBackground: Colors.cyan), - Doodle( - name: "Abu al-Wafa’ al-Buzjani", - time: "940 - 998", - content: - "Abu al-Wafa' is an innovator whose contributions to science include one of the first known introductions to negative numbers, and the development of the first quadrant, a tool used by astronomers to examine the sky. His pioneering work in spherical trigonometry was hugely influential for both mathematics and astronomy.", - doodle: - "https://www.google.com/logos/doodles/2015/abu-al-wafa-al-buzjanis-1075th-birthday-5436382608621568-hp2x.jpg", - icon: Icon(Icons.exposure, color: Colors.white), - iconBackground: Colors.redAccent), - Doodle( - name: "Al-Hasan Ibn al-Haytham", - time: "c. 965 - c. 1040", - content: - "Ibn al-Haytham was the first to explain through experimentation that vision occurs when light bounces on an object and then is directed to one's eyes. He was also an early proponent of the concept that a hypothesis must be proved by experiments based on confirmable procedures or mathematical evidence—hence understanding the scientific method five centuries before Renaissance scientists.", - doodle: - "https://www.google.com/logos/doodles/2013/alhazens_1048th_birthday-1974005-hp.jpg", - icon: Icon(Icons.visibility, color: Colors.black87, size: 32.0), - iconBackground: Colors.pinkAccent), - Doodle( - name: "Al-Bīrūnī", - time: "973 - 1050", - content: - "Biruni is regarded as one of the greatest scholars of the Golden Age of Muslim civilisation and was well versed in physics, mathematics, astronomy, and natural sciences, and also distinguished himself as a historian, chronologist and linguist. He studied almost all fields of science and was compensated for his research and strenuous work. Royalty and powerful members of society sought out Al-Biruni to conduct research and study to uncover certain findings.", - doodle: "https://www.google.com/logos/2012/al_biruni-2012-hp.jpg", - icon: Icon(Icons.account_balance, color: Colors.black87), - iconBackground: Colors.amber), - Doodle( - name: "Ibn Sina (Avicenna)", - time: "980 - 1037", - content: - "Avicenna (Ibn Sīnā) was a Persian polymath who is regarded as one of the most significant physicians, astronomers, thinkers and writers of the Islamic Golden Age. He has been described as the father of early modern medicine. Of the 450 works he is known to have written, around 240 have survived, including 150 on philosophy and 40 on medicine.\nHis most famous works are The Book of Healing, a philosophical and scientific encyclopedia, and The Canon of Medicine, a medical encyclopedia which became a standard medical text at many medieval universities and remained in use as late as 1650. In 1973, Avicenna's Canon Of Medicine was reprinted in New York.\nBesides philosophy and medicine, Avicenna's corpus includes writings on astronomy, alchemy, geography and geology, psychology, Islamic theology, logic, mathematics, physics and works of poetry.", - doodle: - "https://www.google.com/logos/doodles/2018/ibn-sinas-1038th-birthday-5768556863029248.2-l.png", - icon: Icon(Icons.healing, color: Colors.white), - iconBackground: Colors.green), - Doodle( - name: "Ibn Rushd (Averroes)", - time: "1126 - 1198", - content: - "Averroes was an Andalusian philosopher and thinker who wrote about many subjects, including philosophy, theology, medicine, astronomy, physics, Islamic jurisprudence and law, and linguistics. His philosophical works include numerous commentaries on Aristotle, for which he was known in the West as The Commentator. He also served as a judge and a court physician for the Almohad Caliphate.", - doodle: - "https://www.google.com/logos/doodles/2014/averroes-888th-birthday-born-1126-5645446378684416-hp.jpg", - icon: Icon(Icons.blur_circular, color: Colors.white), - iconBackground: Colors.indigo), - Doodle( - name: "Nasir al-Din Tusi", - time: "1201 - 1274", - content: - "Tusi was a Persian polymath, architect, philosopher, physician, scientist, and theologian. He is often considered the creator of trigonometry as a mathematical discipline in its own right. Ibn Khaldun (1332–1406) considered Al-Tusi to be the greatest of the later Persian scholars.", - doodle: - "https://www.google.com/logos/2013/nasir_al-din_al-tusis_812th_birthday-1054005-hp.jpg", - icon: Icon(Icons.category, color: Colors.white), - iconBackground: Colors.pinkAccent), - Doodle( - name: "Ibn Battuta", - time: "1304 - 1368", - content: - "Over a period of thirty years, Ibn Battuta visited most of the Islamic world and many non-Muslim lands, including North Africa, the Horn of Africa, West Africa, the Middle East, Central Asia, Southeast Asia, South Asia and China. Near the end of his life, he dictated an account of his journeys, titled A Gift to Those Who Contemplate the Wonders of Cities and the Marvels of Travelling (Tuḥfat an-Nuẓẓār fī Gharāʾib al-Amṣār wa ʿAjāʾib al-Asfār), usually simply referred to as The Travels (Rihla). This account of his journeys provides a picture of a medieval civilisation that is still widely consulted today.", - doodle: "https://www.google.com/logos/2012/battuta11-hp.jpg", - icon: Icon(Icons.navigation, color: Colors.white, size: 32.0), - iconBackground: Colors.deepPurpleAccent), - Doodle( - name: "Ibn Khaldun", - time: "1332 - 1406", - content: - "He is widely considered as a forerunner of the modern disciplines of historiography, sociology, economics, and demography.\nHe is best known for his book, the Muqaddimah or Prolegomena ('Introduction'). The book influenced 17th-century Ottoman historians like Kâtip Çelebi, Ahmed Cevdet Pasha and Mustafa Naima, who used the theories in the book to analyse the growth and decline of the Ottoman Empire. Also, 19th-century European scholars acknowledged the significance of the book and considered Ibn Khaldun to be one of the greatest philosophers of the Middle Ages.", - doodle: "https://www.google.com/logos/2011/ibn11-hp.jpg", - icon: Icon(Icons.supervised_user_circle, color: Colors.white), - iconBackground: Colors.teal), - Doodle( - name: "Piri Reis", - time: "1465 - 1553", - content: - "He is primarily known today for his maps and charts collected in his Kitab-ı Bahriye (Book of Navigation), a book that contains detailed information on navigation, as well as very accurate charts (for their time) describing the important ports and cities of the Mediterranean Sea. He gained fame as a cartographer when a small part of his first world map (prepared in 1513) was discovered in 1929 at the Topkapı Palace in Istanbul. His world map is the oldest known Turkish atlas showing the New World, and one of the oldest maps of America still in existence anywhere (the oldest known map of America that is still in existence is the map drawn by Juan de la Cosa in 1500). Piri Reis' map is centered on the Sahara at the latitude of the Tropic of Cancer.", - doodle: - "https://www.google.com/logos/2013/500th_anniversary_of_the_piri_reis_map-1696005-hp.jpg", - icon: Icon(Icons.map, color: Colors.white, size: 32.0), - iconBackground: Colors.blue), -]; diff --git a/example/lib/iphone_releases.dart b/example/lib/iphone_releases.dart new file mode 100644 index 0000000..a130a2b --- /dev/null +++ b/example/lib/iphone_releases.dart @@ -0,0 +1,284 @@ +import 'package:flutter/material.dart'; +import 'package:timeline_list/timeline_list.dart'; + +class iPhoneRelease { + final String modelName; + final String releaseDate; + final Color color; + final String emoji; + const iPhoneRelease({ + required this.modelName, + required this.releaseDate, + required this.color, + required this.emoji, + }); +} + +List doodles = [ + iPhoneRelease( + modelName: "iPhone", + releaseDate: "29 June 2007", + color: Colors.deepPurple, + emoji: "📱"), + iPhoneRelease( + modelName: "iPhone 3G", + releaseDate: "11 July 2008", + color: Colors.cyan, + emoji: " 🚀"), + iPhoneRelease( + modelName: "iPhone 3GS", + releaseDate: "19 June 2009", + color: Colors.lime, + emoji: "⚡"), + iPhoneRelease( + modelName: "iPhone 4", + releaseDate: "24 June 2010", + color: Colors.amber, + emoji: "💎"), + iPhoneRelease( + modelName: "iPhone 4S", + releaseDate: "14 October 2011", + color: Colors.deepOrange, + emoji: "🦋"), + iPhoneRelease( + modelName: "iPhone 5", + releaseDate: "21 September 2012", + color: Colors.indigo, + emoji: "🌟"), + iPhoneRelease( + modelName: "iPhone 5S & 5C", + releaseDate: "20 September 2013", + color: Colors.teal, + emoji: "🎉"), + iPhoneRelease( + modelName: "iPhone 6 & 6 Plus", + releaseDate: "19 September 2014", + color: Colors.pink, + emoji: "📏"), + iPhoneRelease( + modelName: "iPhone 6S & 6S Plus", + releaseDate: "25 September 2015", + color: Colors.deepPurple, + emoji: "🔥"), + iPhoneRelease( + modelName: "iPhone SE", + releaseDate: "31 March 2016", + color: Colors.lightGreen, + emoji: "🧩"), + iPhoneRelease( + modelName: "iPhone 7 and 7 Plus", + releaseDate: "16 September 2016", + color: Colors.amber, + emoji: "💧"), + iPhoneRelease( + modelName: "iPhone 8 and 8 Plus", + releaseDate: "22 September 2017", + color: Colors.indigo, + emoji: "🔮"), + iPhoneRelease( + modelName: "iPhone X", + releaseDate: "3 November 2017", + color: Colors.cyan, + emoji: "🔟"), + iPhoneRelease( + modelName: "iPhone XS / XS Max", + releaseDate: "21 September 2018", + color: Colors.deepOrange, + emoji: "🌠"), + iPhoneRelease( + modelName: "iPhone XR", + releaseDate: "26 October 2018", + color: Colors.lime, + emoji: "🎨"), + iPhoneRelease( + modelName: "iPhone 11", + releaseDate: "20 September 2019", + color: Colors.pink, + emoji: "📸"), + iPhoneRelease( + modelName: "iPhone SE 2", + releaseDate: "24 April 2020", + color: Colors.teal, + emoji: "🔄"), + iPhoneRelease( + modelName: "iPhone 12", + releaseDate: "23 October 2020", + color: Colors.deepPurple, + emoji: "🧲"), + iPhoneRelease( + modelName: "iPhone 13", + releaseDate: "24 September 2021", + color: Colors.amber, + emoji: "🔋"), + iPhoneRelease( + modelName: "iPhone SE 3", + releaseDate: "18 March 2022", + color: Colors.lightGreen, + emoji: "🔍"), + iPhoneRelease( + modelName: "iPhone 14", + releaseDate: "16 September 2022", + color: Colors.indigo, + emoji: "🛰️"), + iPhoneRelease( + modelName: "iPhone 15", + releaseDate: "22 September 2023", + color: Colors.cyan, + emoji: "🌊"), + iPhoneRelease( + modelName: "iPhone 16", + releaseDate: "20 September 2024", + color: Colors.deepOrange, + emoji: "🚁") +]; + +class iPhoneReleaseTimelinePage extends StatefulWidget { + @override + _iPhoneReleaseTimelinePageState createState() => + _iPhoneReleaseTimelinePageState(); +} + +class _iPhoneReleaseTimelinePageState extends State { + final PageController pageController = + PageController(initialPage: 1, keepPage: true); + int currentIndex = 1; + static const iconSize = 36.0; + MarkerIconAlignment iconAlignment = MarkerIconAlignment.center; + + @override + Widget build(BuildContext context) { + List pages = [ + pageBuilder(TimelinePosition.start), + pageBuilder(TimelinePosition.center), + pageBuilder(TimelinePosition.end) + ]; + + final navButons = [ + {'icon': Icons.format_align_left, 'label': "Left"}, + {'icon': Icons.format_align_center, 'label': "Center"}, + {'icon': Icons.format_align_right, 'label': "Right"}, + ] + .map((marker) => BottomNavigationBarItem( + icon: Icon(marker['icon'] as IconData), + label: marker['label'] as String)) + .toList(); + + final navBar = BottomNavigationBar( + enableFeedback: true, + selectedItemColor: Colors.purple, + currentIndex: currentIndex, + onTap: (i) => pageController.animateToPage(i, + duration: const Duration(milliseconds: 300), + curve: Curves.easeInOut), + items: navButons); + + return Scaffold( + bottomNavigationBar: navBar, + appBar: appBar(), + body: PageView( + onPageChanged: (i) => setState(() => currentIndex = i), + controller: pageController, + children: pages, + )); + } + + AppBar appBar() { + return AppBar( + title: Text('iPhone releases'), + actions: [ + DropdownButton( + value: iconAlignment, + icon: Icon(Icons.arrow_downward), + onChanged: (MarkerIconAlignment? newValue) { + setState(() { + iconAlignment = newValue!; + }); + }, + // chose default icon alignment from + items: MarkerIconAlignment.values + .map>( + (MarkerIconAlignment value) { + return DropdownMenuItem( + value: value, + child: Text(value.toString().split('.')[1].toUpperCase()), + ); + }).toList(), + ), + ], + ); + } + + pageBuilder(TimelinePosition position) => Timeline.builder( + context: context, + markerBuilder: doodleBuilder, + markerCount: doodles.length, + maxWidth: 250, + properties: TimelineProperties( + lineWidth: 3, + timelinePosition: position, + lineColor: Colors.deepPurple.shade700, + iconSize: iconSize, + // icon alignment applies to all items in the timeline, unless + // overridden by the item's own iconAlignment property. + iconAlignment: iconAlignment), + ); + + Widget icon(Color iconBackground, String emoji) { + return Container( + height: iconSize, + width: iconSize, + alignment: Alignment.center, + decoration: BoxDecoration( + shape: BoxShape.circle, + color: Colors.white, + border: Border.all(width: 3, color: iconBackground)), + child: Center( + child: Text(emoji, + textAlign: TextAlign.center, + style: TextStyle(fontSize: iconSize / 2.5))), + ); + } + + Marker doodleBuilder(BuildContext context, int i) { + final doodle = doodles[i]; + final textTheme = Theme.of(context).textTheme; + return Marker( + icon: icon(doodle.color, doodle.emoji), + // Marker position is ignored when the timeline is not centered + position: i % 2 == 0 ? MarkerPosition.left : MarkerPosition.right, + child: Card( + color: Colors.white, + margin: EdgeInsets.symmetric(vertical: 16.0), + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(8.0)), + clipBehavior: Clip.antiAlias, + child: Padding( + padding: const EdgeInsets.all(16.0), + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + const SizedBox(height: 8.0), + Container( + height: 200, + width: 200, + color: doodle.color, + child: Align( + alignment: Alignment.bottomRight, + child: Padding( + padding: const EdgeInsets.all(16.0), + child: Text(doodle.emoji, + textAlign: TextAlign.center, + style: TextStyle(fontSize: 64)), + ), + ), + ), + const SizedBox(height: 8.0), + Text(doodle.modelName, style: textTheme.titleMedium), + const SizedBox(height: 4.0), + Text(doodle.releaseDate, style: textTheme.labelSmall), + ], + ), + ), + ), + ); + } +} diff --git a/example/lib/main.dart b/example/lib/main.dart index 796fd4b..3d33dba 100644 --- a/example/lib/main.dart +++ b/example/lib/main.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; import 'package:timeline_list/timeline_list.dart'; -import 'timeline.dart'; +import 'iphone_releases.dart'; import 'onboarding.dart'; void main() => runApp(MyApp()); @@ -29,7 +29,7 @@ class MyApp extends StatelessWidget { initialRoute: '/', routes: { '/': (context) => ExampleDirectory(), - '/fully-featured': (context) => FullyFeaturedTimelinePage(), + '/iphone-releases': (context) => iPhoneReleaseTimelinePage(), '/onboarding': (context) => OnboardingPage(), '/simple': (context) => SimpleTimeline(), }, @@ -45,7 +45,7 @@ class ExampleDirectory extends StatelessWidget { body: ListView(children: [ ListTile( title: Text("Timeline with icons and different alignment options"), - onTap: () => Navigator.pushNamed(context, '/fully-featured')), + onTap: () => Navigator.pushNamed(context, '/iphone-releases')), ListTile( title: Text("Onboarding example"), onTap: () => Navigator.pushNamed(context, '/onboarding')), diff --git a/example/lib/timeline.dart b/example/lib/timeline.dart deleted file mode 100644 index 6f8586d..0000000 --- a/example/lib/timeline.dart +++ /dev/null @@ -1,146 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:timeline_list/timeline_list.dart'; -import 'data.dart'; - -class FullyFeaturedTimelinePage extends StatefulWidget { - @override - _FullyFeaturedTimelinePageState createState() => - _FullyFeaturedTimelinePageState(); -} - -class _FullyFeaturedTimelinePageState extends State { - final PageController pageController = - PageController(initialPage: 1, keepPage: true); - int currentIndex = 1; - static const iconSize = 36.0; - MarkerIconAlignment iconAlignment = MarkerIconAlignment.center; - - @override - Widget build(BuildContext context) { - List pages = [ - pageBuilder(TimelinePosition.start), - pageBuilder(TimelinePosition.center), - pageBuilder(TimelinePosition.end) - ]; - - final navButons = [ - {'icon': Icons.format_align_left, 'label': "Left"}, - {'icon': Icons.format_align_center, 'label': "Center"}, - {'icon': Icons.format_align_right, 'label': "Right"}, - ] - .map((marker) => BottomNavigationBarItem( - icon: Icon(marker['icon'] as IconData), - label: marker['label'] as String)) - .toList(); - - final navBar = BottomNavigationBar( - enableFeedback: true, - selectedItemColor: Colors.purple, - currentIndex: currentIndex, - onTap: (i) => pageController.animateToPage(i, - duration: const Duration(milliseconds: 300), - curve: Curves.easeInOut), - items: navButons); - - return Scaffold( - bottomNavigationBar: navBar, - appBar: appBar(), - body: PageView( - onPageChanged: (i) => setState(() => currentIndex = i), - controller: pageController, - children: pages, - )); - } - - AppBar appBar() { - return AppBar( - title: Text('Muslim Civilisation Doodles'), - actions: [ - DropdownButton( - value: iconAlignment, - icon: Icon(Icons.arrow_downward), - onChanged: (MarkerIconAlignment? newValue) { - setState(() { - iconAlignment = newValue!; - }); - }, - // chose default icon alignment from - items: MarkerIconAlignment.values - .map>( - (MarkerIconAlignment value) { - return DropdownMenuItem( - value: value, - child: Text(value.toString().split('.')[1].toUpperCase()), - ); - }).toList(), - ), - ], - ); - } - - pageBuilder(TimelinePosition position) => Timeline.builder( - context: context, - markerBuilder: doodleBuilder, - markerCount: doodles.length, - maxWidth: 250, - properties: TimelineProperties( - lineWidth: 4, - timelinePosition: position, - iconSize: iconSize, - // icon alignment applies to all items in the timeline, unless - // overridden by the item's own iconAlignment property. - iconAlignment: iconAlignment), - ); - - Widget icon(Color iconBackground, Icon icon) { - return Container( - height: iconSize, - width: iconSize, - alignment: Alignment.center, - decoration: BoxDecoration(shape: BoxShape.circle, color: iconBackground), - child: Icon(icon.icon, color: icon.color, size: iconSize * 2 / 3), - ); - } - - Widget networkImage(String url) => Image.network( - url, - cacheHeight: 200, - height: 200, - fit: BoxFit.contain, - loadingBuilder: (BuildContext context, Widget child, - ImageChunkEvent? loadingProgress) { - if (loadingProgress == null) return child; - return Center(child: CircularProgressIndicator()); - }, - ); - - Marker doodleBuilder(BuildContext context, int i) { - final doodle = doodles[i]; - final textTheme = Theme.of(context).textTheme; - return Marker( - icon: icon(doodle.iconBackground, doodle.icon), - // Marker position is ignored when the timeline is not centered - position: MarkerPosition.random, - child: Card( - color: Colors.white, - margin: EdgeInsets.symmetric(vertical: 16.0), - shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(8.0)), - clipBehavior: Clip.antiAlias, - child: Padding( - padding: const EdgeInsets.all(16.0), - child: Column( - mainAxisSize: MainAxisSize.min, - children: ([ - networkImage(doodle.doodle), - const SizedBox(height: 8.0), - Text(doodle.name, style: textTheme.titleMedium), - const SizedBox(height: 8.0), - Text(doodle.time, style: textTheme.labelSmall), - const SizedBox(height: 8.0), - ]), - ), - ), - ), - ); - } -} From d6af442b31de8861322a52f1ecff0770de69b012 Mon Sep 17 00:00:00 2001 From: Furkan Tektas Date: Mon, 2 Dec 2024 00:38:12 +0000 Subject: [PATCH 10/14] remove random marker positioning feature --- README.md | 2 +- lib/src/marker_widget.dart | 6 +++--- lib/src/types/marker_position.dart | 19 ++++--------------- 3 files changed, 8 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index 90c551d..9b700fd 100644 --- a/README.md +++ b/README.md @@ -102,7 +102,7 @@ Timeline.builder( - `child`: The main content widget of the marker - `icon`: Optional custom icon widget -- `position`: Marker position for centered timelines (`left`, `right`, `random`) +- `position`: Marker position for centered timelines (`left`, `right`) - `onTap`: Optional callback for marker tap events - `maxWidth`: Maximum width constraint for marker content diff --git a/lib/src/marker_widget.dart b/lib/src/marker_widget.dart index 4cfbcb8..22e3147 100644 --- a/lib/src/marker_widget.dart +++ b/lib/src/marker_widget.dart @@ -100,9 +100,9 @@ class MarkerWidget extends StatelessWidget { // align child opposite to it's position to make it look aligned around // the center line return Align( - alignment: data.position == MarkerPosition.left - ? Alignment.centerRight - : Alignment.centerLeft, + alignment: data.position.isLeft() + ? Alignment.centerLeft + : Alignment.centerRight, child: child, ); } diff --git a/lib/src/types/marker_position.dart b/lib/src/types/marker_position.dart index 8f05a83..7dacb64 100644 --- a/lib/src/types/marker_position.dart +++ b/lib/src/types/marker_position.dart @@ -1,33 +1,22 @@ -import 'dart:math'; - import 'package:flutter/widgets.dart'; /// Represents the position of the individual marker of a timeline when the /// timeline is centered. /// -/// The marker position is ignored when the timeline is not centered. When set -/// to [MarkerPosition.random], the position is chosen at runtime. +/// The marker position is ignored when the timeline is not centered. enum MarkerPosition { left, - right, - random; + right; AlignmentGeometry asAlignmentGeometry() => switch (this) { MarkerPosition.left => Alignment.centerLeft, MarkerPosition.right => Alignment.centerRight, - MarkerPosition.random => - (Random().nextBool()) ? Alignment.centerLeft : Alignment.centerRight, }; CrossAxisAlignment asCrossAxisAlignment() => switch (this) { MarkerPosition.left => CrossAxisAlignment.start, - MarkerPosition.right => CrossAxisAlignment.end, - MarkerPosition.random => (Random().nextBool()) - ? CrossAxisAlignment.start - : CrossAxisAlignment.end, + MarkerPosition.right => CrossAxisAlignment.end }; - bool isLeft() => this == MarkerPosition.random - ? Random().nextBool() - : this == MarkerPosition.left; + bool isLeft() => this == MarkerPosition.left; } From ccdd50b6fc951676231169140c1294419f57e97a Mon Sep 17 00:00:00 2001 From: Furkan Tektas Date: Mon, 2 Dec 2024 00:44:56 +0000 Subject: [PATCH 11/14] remove unused assets from example --- example/assets/images/empty.png | Bin 142 -> 0 bytes example/lib/iphone_releases.dart | 2 +- example/pubspec.yaml | 4 +--- 3 files changed, 2 insertions(+), 4 deletions(-) delete mode 100644 example/assets/images/empty.png diff --git a/example/assets/images/empty.png b/example/assets/images/empty.png deleted file mode 100644 index 0cb6d4116a1a0206a71afb87515b19fee550e062..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 142 zcmeAS@N?(olHy`uVBq!ia0y~yU^>9Sz}Umc3>0}cxlIj7F$egBxc>kDfB6yV6F@Fw zNswPKgTu2MX+Vypr;B4qMcms1hKxYoA%)+|w;kh)kN~prg9D76YZw?Ce$9;psq=L8 Kb6Mw<&;$T<@gS4{ diff --git a/example/lib/iphone_releases.dart b/example/lib/iphone_releases.dart index a130a2b..aac057a 100644 --- a/example/lib/iphone_releases.dart +++ b/example/lib/iphone_releases.dart @@ -267,7 +267,7 @@ class _iPhoneReleaseTimelinePageState extends State { padding: const EdgeInsets.all(16.0), child: Text(doodle.emoji, textAlign: TextAlign.center, - style: TextStyle(fontSize: 64)), + style: TextStyle(fontSize: 48)), ), ), ), diff --git a/example/pubspec.yaml b/example/pubspec.yaml index db86238..8ade119 100644 --- a/example/pubspec.yaml +++ b/example/pubspec.yaml @@ -14,6 +14,4 @@ dependencies: path: ../ flutter: - uses-material-design: true - assets: - - assets/images/ + uses-material-design: true \ No newline at end of file From bb2f3bb3f60268fbddd60fada1459eb9ee98f1be Mon Sep 17 00:00:00 2001 From: Furkan Tektas Date: Mon, 2 Dec 2024 19:34:39 +0000 Subject: [PATCH 12/14] replace emojis with icons for flutter web --- .github/workflows/publish-web-demo.yml | 3 +- example/lib/iphone_releases.dart | 80 ++++++++++++-------------- example/pubspec.yaml | 4 +- 3 files changed, 43 insertions(+), 44 deletions(-) diff --git a/.github/workflows/publish-web-demo.yml b/.github/workflows/publish-web-demo.yml index b9306f4..7655ff6 100644 --- a/.github/workflows/publish-web-demo.yml +++ b/.github/workflows/publish-web-demo.yml @@ -22,4 +22,5 @@ jobs: uses: bluefireteam/flutter-gh-pages@v7 with: workingDir: example - baseHref: /timeline_list/ \ No newline at end of file + baseHref: /timeline_list/ + webRenderer: html \ No newline at end of file diff --git a/example/lib/iphone_releases.dart b/example/lib/iphone_releases.dart index aac057a..7ba7ad0 100644 --- a/example/lib/iphone_releases.dart +++ b/example/lib/iphone_releases.dart @@ -5,12 +5,12 @@ class iPhoneRelease { final String modelName; final String releaseDate; final Color color; - final String emoji; + final IconData icon; const iPhoneRelease({ required this.modelName, required this.releaseDate, required this.color, - required this.emoji, + required this.icon, }); } @@ -19,117 +19,117 @@ List doodles = [ modelName: "iPhone", releaseDate: "29 June 2007", color: Colors.deepPurple, - emoji: "📱"), + icon: Icons.phone_iphone), iPhoneRelease( modelName: "iPhone 3G", releaseDate: "11 July 2008", color: Colors.cyan, - emoji: " 🚀"), + icon: Icons.piano), iPhoneRelease( modelName: "iPhone 3GS", releaseDate: "19 June 2009", color: Colors.lime, - emoji: "⚡"), + icon: Icons.sailing), iPhoneRelease( modelName: "iPhone 4", releaseDate: "24 June 2010", color: Colors.amber, - emoji: "💎"), + icon: Icons.diamond), iPhoneRelease( modelName: "iPhone 4S", releaseDate: "14 October 2011", color: Colors.deepOrange, - emoji: "🦋"), + icon: Icons.dashboard), iPhoneRelease( modelName: "iPhone 5", releaseDate: "21 September 2012", color: Colors.indigo, - emoji: "🌟"), + icon: Icons.star), iPhoneRelease( modelName: "iPhone 5S & 5C", releaseDate: "20 September 2013", color: Colors.teal, - emoji: "🎉"), + icon: Icons.cake), iPhoneRelease( modelName: "iPhone 6 & 6 Plus", releaseDate: "19 September 2014", color: Colors.pink, - emoji: "📏"), + icon: Icons.view_comfy), iPhoneRelease( modelName: "iPhone 6S & 6S Plus", releaseDate: "25 September 2015", color: Colors.deepPurple, - emoji: "🔥"), + icon: Icons.fireplace), iPhoneRelease( modelName: "iPhone SE", releaseDate: "31 March 2016", color: Colors.lightGreen, - emoji: "🧩"), + icon: Icons.badge), iPhoneRelease( modelName: "iPhone 7 and 7 Plus", releaseDate: "16 September 2016", color: Colors.amber, - emoji: "💧"), + icon: Icons.golf_course), iPhoneRelease( modelName: "iPhone 8 and 8 Plus", releaseDate: "22 September 2017", color: Colors.indigo, - emoji: "🔮"), + icon: Icons.alarm), iPhoneRelease( modelName: "iPhone X", releaseDate: "3 November 2017", color: Colors.cyan, - emoji: "🔟"), + icon: Icons.ten_k), iPhoneRelease( modelName: "iPhone XS / XS Max", releaseDate: "21 September 2018", color: Colors.deepOrange, - emoji: "🌠"), + icon: Icons.wb_sunny), iPhoneRelease( modelName: "iPhone XR", releaseDate: "26 October 2018", color: Colors.lime, - emoji: "🎨"), + icon: Icons.color_lens), iPhoneRelease( modelName: "iPhone 11", releaseDate: "20 September 2019", color: Colors.pink, - emoji: "📸"), + icon: Icons.photo_camera), iPhoneRelease( modelName: "iPhone SE 2", releaseDate: "24 April 2020", color: Colors.teal, - emoji: "🔄"), + icon: Icons.sync), iPhoneRelease( modelName: "iPhone 12", releaseDate: "23 October 2020", color: Colors.deepPurple, - emoji: "🧲"), + icon: Icons.gpp_good), iPhoneRelease( modelName: "iPhone 13", releaseDate: "24 September 2021", color: Colors.amber, - emoji: "🔋"), + icon: Icons.battery_full), iPhoneRelease( modelName: "iPhone SE 3", releaseDate: "18 March 2022", color: Colors.lightGreen, - emoji: "🔍"), + icon: Icons.search), iPhoneRelease( modelName: "iPhone 14", releaseDate: "16 September 2022", color: Colors.indigo, - emoji: "🛰️"), + icon: Icons.space_bar), iPhoneRelease( modelName: "iPhone 15", releaseDate: "22 September 2023", color: Colors.cyan, - emoji: "🌊"), + icon: Icons.waves), iPhoneRelease( modelName: "iPhone 16", releaseDate: "20 September 2024", color: Colors.deepOrange, - emoji: "🚁") + icon: Icons.rocket) ]; class iPhoneReleaseTimelinePage extends StatefulWidget { @@ -223,27 +223,24 @@ class _iPhoneReleaseTimelinePageState extends State { iconAlignment: iconAlignment), ); - Widget icon(Color iconBackground, String emoji) { + Widget icon(Color iconBackground, IconData icon) { return Container( - height: iconSize, - width: iconSize, - alignment: Alignment.center, - decoration: BoxDecoration( - shape: BoxShape.circle, - color: Colors.white, - border: Border.all(width: 3, color: iconBackground)), - child: Center( - child: Text(emoji, - textAlign: TextAlign.center, - style: TextStyle(fontSize: iconSize / 2.5))), - ); + height: iconSize, + width: iconSize, + alignment: Alignment.center, + decoration: BoxDecoration( + shape: BoxShape.circle, + color: Colors.white, + border: Border.all(width: 3, color: iconBackground)), + child: Center( + child: Icon(icon, color: iconBackground, size: iconSize / 5 * 3))); } Marker doodleBuilder(BuildContext context, int i) { final doodle = doodles[i]; final textTheme = Theme.of(context).textTheme; return Marker( - icon: icon(doodle.color, doodle.emoji), + icon: icon(doodle.color, doodle.icon), // Marker position is ignored when the timeline is not centered position: i % 2 == 0 ? MarkerPosition.left : MarkerPosition.right, child: Card( @@ -265,9 +262,8 @@ class _iPhoneReleaseTimelinePageState extends State { alignment: Alignment.bottomRight, child: Padding( padding: const EdgeInsets.all(16.0), - child: Text(doodle.emoji, - textAlign: TextAlign.center, - style: TextStyle(fontSize: 48)), + child: Icon(doodle.icon, + color: Colors.white, size: 2 * iconSize), ), ), ), diff --git a/example/pubspec.yaml b/example/pubspec.yaml index 8ade119..c951986 100644 --- a/example/pubspec.yaml +++ b/example/pubspec.yaml @@ -1,4 +1,4 @@ -name: example +name: timeline_list_example description: A showcase application demonstrating the timeline_list package's features, including vertical timelines with custom markers, icons, and various positioning options. publish_to: none version: 1.0.0+1 @@ -10,6 +10,8 @@ dependencies: flutter: sdk: flutter + cupertino_icons: ^1.0.2 + timeline_list: path: ../ From eb9a943c68209f302f8e67b18a95a519cf8fe362 Mon Sep 17 00:00:00 2001 From: Furkan Tektas Date: Mon, 2 Dec 2024 21:00:05 +0000 Subject: [PATCH 13/14] Update readme and docs --- README.md | 88 ++++++++++++++++++++---------------- doc/timeline-grid.png | Bin 0 -> 145219 bytes doc/timeline-onboarding.png | Bin 0 -> 84546 bytes doc/timeline-simple.png | Bin 0 -> 23637 bytes doc/timeline_list.png | Bin 289674 -> 0 bytes pubspec.yaml | 29 +++++++++++- 6 files changed, 76 insertions(+), 41 deletions(-) create mode 100644 doc/timeline-grid.png create mode 100644 doc/timeline-onboarding.png create mode 100644 doc/timeline-simple.png delete mode 100644 doc/timeline_list.png diff --git a/README.md b/README.md index 9b700fd..914491b 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,12 @@ # Flutter Timeline Widget [![pub package](https://img.shields.io/pub/v/timeline_list.svg)](https://pub.dartlang.org/packages/timeline_list) -[![Build Status](https://travis-ci.org/furkantektas/timeline_list.svg?branch=master)](https://travis-ci.org/furkantektas/timeline_list) [![codecov](https://codecov.io/gh/furkantektas/timeline_list/branch/master/graph/badge.svg?token=jDCYhfSuea)](https://codecov.io/gh/furkantektas/timeline_list) A highly customizable Flutter widget for displaying vertical timelines with custom markers, icons, and flexible positioning options. -![Flutter Timeline List Screenshot](https://github.com/furkantektas/timeline_list/raw/master/doc/timeline_list.png?raw=true) +![Flutter Timeline List Screenshot](./doc/timeline-grid.png) -> 🦚 Most of the documentation was created using LLMs. If you notice any errors or typos, please submit a Pull Request or create an issue. +> [!WARNING] +> 🦚 The documentation was created using LLMs. If you notice any errors or typos, please submit a Pull Request or create an issue. ## Features @@ -30,6 +30,8 @@ dependencies: ### Simple Timeline +![Flutter Simple Timeline List Screenshot](doc/timeline-simple.png) + ```dart import 'package:timeline_list/timeline_list.dart'; @@ -46,44 +48,38 @@ Timeline( Here's a more advanced example showing an onboarding timeline with custom icons: +![Flutter Onboarding Timeline List Screenshot](doc/timeline-onboarding.png) + ```dart var checkIcon = Container( - width: 16, - height: 16, - decoration: BoxDecoration( - shape: BoxShape.circle, - color: Colors.green - ), - child: Icon(Icons.check, color: Colors.white, size: 12) -); - + width: 16, + height: 16, + decoration: BoxDecoration(shape: BoxShape.circle, color: Colors.green), + child: Icon(Icons.check, color: Colors.white, size: 12)); var emptyIcon = Container( - width: 16, - height: 16, - decoration: BoxDecoration( - shape: BoxShape.circle, - color: Colors.grey - ) -); - -Timeline.builder( - context: context, - markerCount: 10, - properties: TimelineProperties( - iconAlignment: MarkerIconAlignment.center, - iconSize: 16, - timelinePosition: TimelinePosition.start - ), - markerBuilder: (context, index, position) => Marker( - child: Padding( - padding: const EdgeInsets.all(8.0), - child: Text("Step ${index + 1}"), - ), - icon: index >= 8 ? emptyIcon : checkIcon, - position: MarkerPosition.left, - ), - position: TimelinePosition.center, -) + width: 16, + height: 16, + decoration: BoxDecoration(shape: BoxShape.circle, color: Colors.grey)); +return Scaffold( + appBar: AppBar(title: const Text("Onboarding example")), + body: Column(children: [ + Timeline.builder( + context: context, + markerCount: 10, + properties: TimelineProperties( + iconAlignment: MarkerIconAlignment.center, + iconSize: 16, + timelinePosition: TimelinePosition.start), + markerBuilder: (context, index) => Marker( + child: Padding( + padding: const EdgeInsets.all(8.0), + child: Text("Step ${index + 1}"), + ), + icon: index >= 8 ? emptyIcon : checkIcon, + position: MarkerPosition.left, + ), + ), + ])); ``` ## Customization @@ -116,4 +112,18 @@ Check out the [`example/`](https://github.com/furkantektas/timeline_list/tree/ma This repo is looking for maintainers. Contributions are welcome! Please feel free to submit a Pull Request. -![ehlibyte games](https://ehlibyte.com/images/ehlibyte-logo-small.png?raw=true) +[Thank you for all the contributors!](https://github.com/furkantektas/timeline_list/graphs/contributors) + +- [@samramez](https://github.com/samramez) +- [@stijn1989](https://github.com/stijn1989) +- [@JJCLane](https://github.com/JJCLane) +- [@mjhansen3](https://github.com/mjhansen3) + +--- + +Sponsored by: + \ No newline at end of file diff --git a/doc/timeline-grid.png b/doc/timeline-grid.png new file mode 100644 index 0000000000000000000000000000000000000000..faf1a840f26c68d7c5b9e94ac6fd1e9abce58986 GIT binary patch literal 145219 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

I~ObgUhrdP1NAeW4wf1QUL3LCR=l#u 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

-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

Y>o8l$`eU%9Ahf7Fs846+B-ye>@ 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 C4`{Ri literal 0 HcmV?d00001 diff --git a/doc/timeline-onboarding.png b/doc/timeline-onboarding.png new file mode 100644 index 0000000000000000000000000000000000000000..3075d48e11ab01321b41ee2851f7af7c94af67c8 GIT binary patch literal 84546 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 literal 0 HcmV?d00001 diff --git a/doc/timeline-simple.png b/doc/timeline-simple.png new file mode 100644 index 0000000000000000000000000000000000000000..b33c53dcd1c4e857815000e5b8861c72298745d0 GIT binary patch literal 23637 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 literal 0 HcmV?d00001 diff --git a/doc/timeline_list.png b/doc/timeline_list.png deleted file mode 100644 index bf37da0a3e2c4e53352d58ef51e3cc45c4c7730d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 289674 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%0D-h1v-C!UjE#`9}%6Ug9Ye$fQ7 zHF~XnO?-0TLb)?^&3v6_ceoN-Q!%$Zk`Jh%lb0xD^R1hiFUuWVRClqzJi_dNT(7QQ zarm6?iw(7{T~n@ln<2U;vLFC(%7<79sk$^9;me`{a`l~=e$oj5IbKQ1+jDRVuSef# z`v(e=NY-lYgXwHPK@Bw~yYVea$zz(|Ji}AivgRQGP3n@MRufK==~F*l5gFC**AauB z-m;rH2acfy{<>g%iP^yzK7CvSzU8D2bn#>xq+SbQ5ZV?ja8La9Ls(i5Zf#j-S!^4!~0mCOCw6&8^-^m{3(@`Nt- z5&fD~s*h>)^@+>%+E@qQvqTIi@Bduz}K;Yxgzs~7+ru)Ao9Hb}G>)Vj_yy@DgY zRh`-&zwokhkVl%+SE-$^pPtwLy2kMA znlL#uiYCo4naIPDNxo}lo{MB2A&{R<&~N;5QDfwX7_pgPD?G$SWSFn3aT4uppMd%7 z5qzAGM&GDsi6>TP_{)x%7b0nG>b{G*y1(`ZOdXJ$>vllCv%u8sU+{IC{iJp|CSP3A ztj6@PmsO_5YN{0Y)rW=Vbcu*uwc2 zf(&jjX3<2(7M8c|&@LJuvGr*@W)+Q%jwP*;Ua*iqS8A!vENqqYdj?(t<1RnY^%QmD z{b>Ji%_E~@xJE-(Mx|YjwtC^%&ebcmO@(Z)8`7GUSn#>eXvF`mckuxyTkDoA%*LNw&-0?Nb`QBhG1s65&mHDvc8gNNb!k3ZEm_&SpMWsGf&uKS}p*m z57l9qN9f~?$i62}-A4lKWcYnjpoOMzZpWnk5)rF^iUb1Ol)8K0r)^`?^)`%b#Z)Ww zF!z;>yqtMvoEcR{S;u9H_N9tUhgdxuqtMWy-cVrbM&-nmj$}p$TdH;)g86b9EkeO@ zjmx2+P?i4fgY0?`Bk9z%tezMR2j_m-;-`v=^`nI7mw;B~Yp^LVlY zulaIOrButLgiPeikv{h&k;Usvo69><;u5bcY~L(nP3wyZ$7nzo{Me6!pbuIJ3!S`s z1RjxjXidlfHY>7R%p_-HDQ&j++}f{J{>og?6wshg(Y4^;0=Rkp7y$!KQQm84Ax;F0 zsh(6y@ax5G!-S!%za+8EO`@2vfc3FD9j7F!4C(ez)n8k)#Ny!$BO$TRn|5h3`{XI% zi4>KvJHAW)$d7l@zi50MjGL_ldz~5(OM_zhUEyoXU?C zXJb4b{Gws1BP64be75DtzA%W{zUt?^lo!#TsauB+!J%2{! z{?hX~qu4rf%NvHwVU0L3}~`|giZeK?ltc` zru!Wu#q744XzA%2*?J^9&`gZc+q*Dw4^4-1pz3(ESTWo1(tzq>!dN4Oz<1%{fE@52 z$LQn`Kf@J&u_d%-_IC02E%Mdj>Za=MosOa~va)Qy-iM1-wyq!GE469l04cy`UJN=kSKKQ=2Ly{6o{Y`_vk@HdX|y>*w3eB zSn-f^E(-Jk??WA2d)Ira$T@kb05vqVrrEr1*I6}3RCi|m>M&Zub(sodN3_pMau_DN zt`Aclt_N{kDFFWWBk4Izmb%v3&!aX-aoor5%0rZl^YHTH6AUp%Znq5|U#3-FNV;y8 zRlu4=HQ53KezyoV2J3r0&nmc5>8v)^XLSt?5y+kgmq;z=qxzonNEA6o7MUxOSlLF_ z)_&VXD*jRiqVFiU|6Ga{|!t&-VZVsu&yzlNzMOGf-o#p@#QB)4mO^3H3}N zl?Ij*Ovr4Jru?eN)>+CzeRJ;=FUIMaZ|QBdTCIySOxChVi~J<~CsKtq4p+BGpFgs+ zxaz&c1BuyN3Hy^_(n%`!K*YOB_oGJ2z@$m#W1ArJYn0CJW&)e6W&;DkdzcuEfTm1SpN1PKhiDbj)u^9puTdE zGWNN(JxCv0hB>YoH&pck(pfNP``@^EcK#aAT;I-qTd^E&eF_JD=lA**NAWP8kRiM_ zAn@1x#OZc%t`>=LnGbiE}Q?hoIRbzZ|^UGu%|iz(GLP2`=oW(OGzHHz0BxxO;GW^bMrpMo4CLed$bq5>5+ZNfwsy{AgtjftH( zHi{Yq{DP`O#zZfcwbuehrcF0b3s%;^)~SjPII-bq(Vz}Wsq6n)Lzt&+FHYHqUd5dn zUfJC@CmWTeCCk}s&IvNkkyJE_X9$y45!qGJ_^va6Qh~*9CQfRtU+42iGO+gkX}aV} zEL!fXct36S=1);c@g8b!>u$o{El_gBs@L=pthCADU0eGxnc3sZ{={X)`kMhQf>Q=9 z6+AK{$f|MzKO*z(oe`Is{}@>wOog06Iwc3Rur7>{VpSLeCcy)Zt!TsOOs9)$5aodp zN{F6HoP@g0VKrm+NwCZ)o+Ea)3A?ul5~>@R8JUJ+d)FAnts8<#fA7gmjlof?nQ046 zf z@rxpluV1RL{+RpO#Uk#tf(%heQg3;yt#?BU%f%+yU}Ez-dSYDvF@`P?g1}VzB~79b zj&>~k`bUK@We+g*-@nK}9phHT}mGxa*JqRxVwb;#{AQ5XbAEr02gmgqEi zUxrr7%P0P`{tds&15OgO_w^&*fHS+p-bU!G?w=W_$N|q-_uqg;7nnd!waE@f)bI zvVV>Fc|a>8bI`wh+4cWh-_PrjF8kDu*E?39wR54jS&ELB^T)>R6D*y|RZ@prNa${V zJjKHT%G-jE)>VR-OIG&7eibLlBcIo)-N9plVb|zkLWB;S*#A-r9!DKRC>>kFYPlD( zf{eSHFic#;{S1_(aPe28ZBmpZ^!ygoREkmHZ#%(}+c^W|8(i6*Y3|d%_B!#Jgu?O! z$w6x@hRt@F@23>6mRYYA43BYQk0LLAVmB3m@G2s=oMsgK@>T0}QWKloNZRQmQ15ar=#@kr;{w>9`->>1=dy^-cn)sCuaSnjZ3F|(G^uc4smlG z`e&N*25wbk19Q*(U(w2{xX}W^^D>U=)WLEc0zKNF*ka6inexr#L7}+zLv_ElC<~8_ z73Gg z_671Ej_1VI0;tv19tjnj8hXZztpt{3W%-=c1snh*Oeb`tdz;#p_Q7Ieb$mKeKs@bH zqcIIP%lp%Se3ibDaPgw-a?s7I3c7Q!@O_EOr8Cm;-!$C;-e$Lr4_~j2!rGdh-Y^Io z?-pyxMt?{glHRz7YPvwY1&lW1Om?H{%{g_LgnlP@az3rIWzY7za?1$1!Fy_wIl3x@CYS)@extt%m*Vsv|vO7 zgKZxtmmgm6Cay-gs;&l?m5*t(%bbMPu2p=_W}v@Iv>$2C{bk?hHs;q0O-!8H&ULnX zlH^Bb(giL0La8rFpCnWXGu#f)v%R*6d7GTwHsU;-wm(hsX8nU>ekpi=L0W8Y9Ey4C zv%MgCJBqpXTED~We18@#CVWwx(f4|`K-{mYy`EJl?|fx}#rH0Vg#IkBUIEMyx7dCl?fIjw!74h_CMVIS4Ou<{;2K%B&YE&emwoJi zj*szLUUu7rE=kulTym!{L7I>aE+HBV@e*%5iNV?T5(k-XO0Ey35~4u>1h5UeV&XdE z!=Eai{#a==1$=9rH~?}XwVR5$aAygliB8@UC%Fx?;4Ho)=4w@YIFwvIW{sReUVN+2 zHxTRkTT{m%w;f!OE_9;bIsP;R_ds9k;Y1;p^|kz7YvrK!9)hVWgyvZ&II{Sg024zL z$s4vlkOlZ8UnWt=!>uH#OPET5hhteS?H5WXGvUhJBcLFXW}dHz4xA^F1=p`qBYvG!EXPn7~0BQ8GgbkrC6~87P zxi7g}r%T5Ch_y#enVuHc zV|Oc?<%AY!2*XMZrv;iv@1mITyIoJr2?_VQe6Jr1(*ZOSV(-F0sFvnNRRUS~c2=E* zmDPT4lo&ApMn&|I)_VEZ!6X&A_k*$87tb??Y_OSGh;q?iXkB)XtsHiW_xbPN1j^Z> zO3RJHk2?vZ!mhC%XDuNW6|7lqd&D22$wh{t73`tFt3EsxXa|Sg_@y6~r*ADw7vuUd zls0)RRU+^?cviWrff^*Bn3KcH&P3+^L!2m9hW6g0gOKpu0SsbZ()%q%$Kajvn9to` zv&EIH3$U2|nbJB~4N3Gh=wpVk_x+2cNVZRr8Qa)lk_~nXE zNlyy~Na{|Z5UNJCXEFKB1OcJ0t~!+~3|bY%i?aa=>adFv6|pj2XK0wngW=m**G9i) z<%Q2{0L6}n=$%2d&%vn_`^#RHSX4uFLeY7yHFYNj{`b1KZTSGeCLDz;{JMaYzwe*_j#Lmaj7uiJtw`a48;TQh%n}=OdcgYiL{!a)xceS;s}ZtN$LmO-)-xI@%8hCqc6z zB^1N*WHnoUS)Ukk4=fQLTsl*9z=kW) z?Tj_5G;;ljD5Xz{7@9TZJ!bT^Zju=YfbDf9)z;Ssoo>K3YEDf7u*MD8CQ#>dE-o4GGrXTIF!7P8BIjT$wRDpj`7TMCMm z6IF|0P?Q0eJ1o@F_H~=fGV`c^4cmh+l^v8ZJhfN6 z^20}}u4Uq33F9f zI{(Y9!T4Q@I+L{q>weLD0C#T^2a`->ENmvGy1iabmq5Uu&roe_Ki%xV31&0w9Bpyf zmt(x_XZMa98&hJ_Z-wtxVDIP)!((uLxg2oY3?c$xhP=$#z7hguM4zT&rca$)JRh(4 zZnO*^dWo8yPf4oUuTX(9|6PukkFUk;n*Kxf(`*sH!yfv%_kEjy%NgnO^Rr&FonNE% zBlJ4o-8;yuy564nN}3Z~pB_(}ULKFW^i#aOwLM0u7;F}KZ}NZ?^;!jYqDJ68bl$Ac zvv)PhMuufS1un;tT^AvV_IhDu(Gw3;y+epBAUyAX*PrA| zr?1xE!fe4czepdum%F>W-p1HLr~_@}LIEcjVF5Tc)7baHfj#i4+<~t+r$&8wX3@1< zaM|y_CoZRFs*EH?3YeDz^V5f*S!<*ePZu;V4P7r3mkwP|0^Xa+qM7L=xDtJ`6ITI6 za>^-s9R*X!Hzo>eqXPgt#Lw21?$ec1FuMX${?2zhE;!+7{f*E8((6HY(PfLYoLrppCe2(iQ7yuZmxTZ;WjW}9d$(jZ+D(`&}+)qIh)o#QM+pm z+!YOI5KWLgUQm{HvLlwC|XAK`uqa5Xpo|^|~C@W<&EA?G7sThkKo|)fFTkA;u8yU7jXfQVGv(Ph3MFmdZ zhF*`FIt@JsX+!(eX`P{#GrIw;L0A6++Wz8u>O{@W$V9any`IpL@xEQmres+pxlRvz zK)ND-?YUb4SB^F*9ua+gdb(cg1NE}4aKw6R-&C@Vooha5jFd(o+qO`^{QJ#zo3LeNWr5hu?zc=pnby@azTIcx5;)Dun6<0@ zbB`0s2sDK3mlY>v($njWMS`~niuPo&_iRz*ZlBvCian&RYxp7+R{Ogf&aOLMO)YIU z0sE5*VED+qEce)dGW)J&u6veu(TPvAs1&z>h1DqrVT>63Qy3Kr`R2&hM(twV0EMm@ z)v`x2-;+{x>U`}He;i5e?(K6o-{kR*9-r6ww=UtEZvB@*EFb0o_O4zC_}&;p_!mqOe zW_;?%bDiKCCUT-1(_FUvJ}ZHXG13b_)T$kzfB zKjduE@DUFWVj*30_2HXQstsG@m=cnz%HMJvC$b&Kh8g@1bHDTPFGP(h{>`+Xa5h)8 zTKx6jLIM$zgBqnnPKr4~<=t_K19(-Dr6_=i<@OJM(hm+Lv?IT^#19LAB3t%mu=5&~ z0e&1MCAL;LGT&h7ki{Cn~criKIg}xqp$)Ix+qha^N)$_KYQI_KS&XSU60{lwtzUIPJt_HdcxC6R7d&(D5UOF%XD$o0J~nge zHBseQtT?|%lM1rrq58n{^&JwUIxo`(Nhiq-$z&p^hxp$9(AE6ur{l+p8K9lmsUDtq)yP;6Q@5hkBl(iF_ZY-?+)>tYWF5fR=2baK_G}&q7Rh+z2^@c1y_9DU)>Ru!=Ois;7z;1r6rR4RhRX2^5b#1W`pyw zqFV;#j14~TZ9Xl1{oSkG5mHf4z`4lwWs0Vu7msF)kHfIL(#OR`Yv`jOA_C!W+=fS7hsV0E?0;Vc+7(e*DBHO6tBs4b{&q zqKM%VT7vb%LS6T|u2*R6SCIaXD`sCRMccdbr}cZ_UQ-AM~+~3jZa!;aDOc-uW+w*M5qXlA}UH-$+l&WvNU1x&?-v z+9z2q{w#Z3tFbWA*%aF2{KZT0l4$MkTrzS8;LkSOko67jWBg`nye>aW7{2fjvhK6w9A-K8OFSp8jtR9E*j|*Hagv2y zG8CWw@@g*DBbmrgYNkHXBxj5eKwue})oi`GvNL=5cV#8p?x>r}jsPF?_{*7~6Z|<` zRo5M&kOvK705Ha9LzP3GMy!VhvQ<76uAv)?+!`b&TF0d5EFu+o@Vw|6Qx`44=_C1d zlaV)YNEEp~4_I=b<|L@4Suz8@6Scr7=Hw#n`<@QJbm@s9mTha*_w_fy>6w#_{>qj+ z>dJNFOkj=K^_Ej559{+Yjk|(ATbFAVf0!##^S!>=#j?!BHPgw{e zms6Q_Mx7^V7Ak*W=#ykaDjEKGUkwrld~HQNbRw2D*?Fi9P%+Br0T>HcGUnw}2jl-i z4-2zBXkeYvan1CK0mZ zq9H}zW$I)uJ_~Ikrp5h`eBc| z$c*Ox_;i|Q=ZkrQ9B>NLFHHay@lLX7)@TZrir6hT^kMK& z=z-Ot;`;u*hnB85og+dTJ%ly6GRhSDn#f>nbI-H_DG40YaOA}t-qhLTB;q3Q|KiH= z+iC!6*rSv%+~bFIzIBuk9%Yr={#dIpTaij@Y;~ygRx?tC4OLgb!+3 zQr8<%S9a^2=Vm`&Y(faJ=bk_#eU|Oxfe?x~C-x*IvEpGuR%-!vk4HHzXnN*}zfK#! z{kX$+-|+3K=wWw4Y~bGe!g_YTiDTSoo+vIwOZWWR?EOLZ@%jB>zGZ*yFTZB@ny;xx zjG^0>3AwPhZvz+j1f-%e>3}A|%d&&#*n_{sXd5-wr~!k=F^!vt?O>hXu(V@j1)D%g z(1(A)xY2juFQzH21(s7Y{g4k!lkl6^E9=At8(dGq6*QU>d%`s2lt~*@6xO39iQY=t z^!=Eb&Z5F%G+dO^#Pa7JpG*wk?{36=i~TO5<+*ptv_(f&fdUzILD|**2f-m&7)#vE zX^f|kWO>kHSMAWz)NM(i1Ue2F!LZ5ma$BXgy|eqD{fO5`q=q;4HV|SmpZ2+vfYXG% zfyXJTt5`{VSRU{wb-1eP03SHgfnO81V}Mw}?gQ$-dgP&_DBvvK z^ag4JE6#k;(KoH*3;rOzG&y9}@7?mW{c^@_`Jbe+V|Vr~A09oy^IGVYcBCDa0jHK8 ziX;GDKbnDg~4Nd3}gmdm<1BeHr+n z1x_$q;SOA)nc9eFSc2CoMfxsZVpV$-FV+}6ab#+2x-*Yov=)9&W<7UjPLxE)~154PM;r%{QlxjtU{l>XR2tx+RPHB#D|xj@sYQIevOIn?7h+pgfa*KKze?0CW8Uw${_~ z&0Z}p1I8T8V8(OG2n8GjT1Y+{K8-d$2Vyym{13O5kr~64JwH?b2CvVH_(239^VIJ* zB|ErrDXs@SZI>1M4cE5SZCraBaXc9sG!BSR>v<27=nJNx{s8-X83W}tn-ojn;F?`N ztgN=(MCvwIWl$XKP3nHBGPe5eTvT99TrBlafD>6{u^fKD{MeT?Z+ZlpVBVYwAp|uS z6b6Dqoe%RG_o1`}&kO-hbYtd$T(KYpja$azwfe*VloxORcq05{v_xvhw{n~e+#X55 z=kl1Cs~tVZwpPEq9Flh>MM?<1LhUoIctpO+(!mEK_;nU?LdVnesTXKvao-4VXvBnbCtBuewO&3-e-xOE~Y z%Qj}DITk$Af7sZ|KCGsgYK+1zWO1ZPiyuwwu-f<3?K!riS`V>I(= ztPJFvt;4r;*@Fu9gh;xfj3bV0+e&Q%gH8Q&_xY19EK+_BFzbrPc}IC=C`n98B?P*sgiqua;L;!CgFT$4pQr*m^84b3p9YU+-%g zJ0T60^Udd-&(Nh{mT%WXPa~<}cYK*)kCW@+3mf&t0?qMDUbZ&^u3kH*5m-O(lh~U& zJD$YW)jz5aK2I_0Sg`CJt&Z zLiV!-CRU4LdiQvR*gMCk55e3XG@Y+Ii0{`buZUt7tLM9CbwzSDyHM^sFqXP4+bd~J zBt&B;l(Q^@yK(kAyedOT4eIZV@83vtrV&&f^+!rj zA0;wc1e)grmiLG9e+xkk`8%ON`^R1rUQCMone*ahMs znsIc6^go4T8e@S8Cuy|{^Q5kRuC8F(E6%(@%dj6_NVk;UcFWDEWrnarVo;O`VzNu~ z-I9jjD_h7o)C3>s+_cBF$^G$utzY6ES<|p}bYoAHIYd*y?ut@6M{UFP6lSUZ3*ZIT z@~={Kq|Fo~g7_+k3@F_2gh}GUE9nb2)IEJb60)TGfPY!<=z(d$IY2iL)21}xx?uD~ zCr+I%?Ke=v(JXzOa~C(Pq)WUMgYquWX-sDLZsz~*r` z6%4MO|2iNSJ_%c?4(jJ5x8MrG`DV`J&q~^PiN6XP0D1AedZ3Dw^-HPZ`gmf0bTreh z*Pa~bfX|3CBC6s{L1i^Z3KXIZO95C&80l4Bl1AH18+j-!AXfo=BUs(; z^?U2!xIm|{_YJ8i5a(22NZC>)0q-Nu7~L#3iJk2oF1~)9Kl`8jQ81Rx&%MCjpkXIk&YU^U zJKwv+XFmNrPdxD)?|a_^8smt!p=DKJi8+&+e8A35_#wqWKo^2W4Bz+NkCS3z<-jtX zUd2;iI>*M5H8u=9|Fgfv>fu%He*8hce=y`9|Lkw^*Z%Sm3O|5Z=sQ;}e{VKv(>j=STrbEPtBSsXInNRHW z#i_eOBLq28fL3{C)nVoYh)I8jAw(wQ8oOl4849hy6cvI@u5%-w7K&Js)#!#AG1Mi2 zq#UcsUys#B4I`AL!__sTt2Y=A#)Q@*2_{X8A>qmbACp>vjo=DLB2knM<4T@*=>lsj zeHOYsCUv4;8e$eM+K_0QgzFfEJmw~eY1{|NjT6}s61`WkZ0fdFNhgaz+NOe71dU(# z(30>}rP10<-$JS}{Z(R8fyG&aSf_$R0tuder&2+w?2+0ADJ;>G;g$25&+mMN6>&@k z6JGt&MUFpo52>lye&agVLSWd`tgI|>@zQnn+DPdfcXhjrZtXF?u}|G=SU$YQQdMwi zYnRyTb7M2mU2gGpplLn3J44p)S|?%H+#GP@`X2o_;O)(jB8~|@(CmAvUd3cGp{y!c z7|}MKvT!)D)J;nq4UlMbLoEX9i-Zf?_{>fa3t`|%I}LS!{e#OmpI91hG8#_kbSs=Q zR366XE@A7IbYhLRvq;A#!lb3%uZba$4y_`grRQtvPQhfSVQImE)2LJuD6MCE(9$uM zw)Gfih&EzMi%E&ldN2y`4Z$PHVIA5q;lQ^w-u78Pa}?t`8Y!~{C(90p$77z@^mGm$ zB>IN9ahNX`A7abj;Gi8+7|UjzxY#+&8*YS4HIo#y5;HreQcOrvN5murCCZgO-~ZoV;!Luv#H+epD(P2KfCnX56B_@Nol4@a<@y>u|Tq9LiBMfAaq%lBH!goSX z<5Pxt88FTv*6GGPdH&h2JjH{L-a}_$f&FJ+W%KFR*j(uFz~OZkRu}Ox@y_?&&(mLe ziC_A~&+uK}_1+nDQAo5+J&QHO7>F@qjS$Ig5-IZX^KWqGfxGiY*&`v+>6X0ry$|y9 z|J%R3oZBq9nw zAfX(DBpMyCBz#ahyfuaxT8uULXmL3QO$^Gy0Gt?%)srtH29o6Ot!)`8H%v@L4M9bp zlp$b#`gJ4~53J4Ug+Sp9wy*ZL(A1PwS2x~jHOTdz*-6m`jO%C}WrjT#E<)1Bk1-If zU<{CvhuD=R77wnHe2e(RLJSISjEOb`T;UL7aD~mo#4WS z>uel8z|9-mEH3si5>!=4iOIO8+p7?3w5?-mp++z%XuKt&F&?9@8!`CS6WT;o7Pq4& z)AuPQk}=q#B*m6U!bXoN3R1BEMTdl7oeC8pMk1mac}e;607(jb-Owr3GA+i;6BhIN z#$;V1n5v?4V1;4pIeh96$-uQ6dyGQj)S*@0^Ih-a%H>UVMlDSnIsVWIiq!?K-`HnV z2accKpnG_kOBc2n1Jy#8QxBcw=CvKJ-rQw4^jy8V&v-D=&vWUZG%yA+ma-I56RG!F zS{E7hCyZ>36~O?;T8)0iL|c1|19!Mf^V%k%@l1vjs(yu^c>e$F{db(CM`7oWzpLsA zohRqn+1VVmyUIBMLLgzX&lnR9gAoP{HpiJe-`VG%ec1Oq+t`O~Y!eLFVB(R300}D~ zp)BpLHs{%$oTuXxs_Oek^{ylY24iywyFV{pXs4(9>FMX`uCDsjC#1(0S-E%wfg(RS zNkd6YVvt#Z%=n~2ks0nH9bbf0P%E`j9r1}nsLoU|fq;P$B8lnBWl&NvHyfcA8hD*K z!nN&~G^SLL%ud#51Ob_17UfIQMv9FSeB~@^D$G*s>_lbr6gs;JSB|06vdgrIEuz>* zF56C;)G)e%z#v7$PO(I|WSEV%a9}RP6hhKMi80m2@z{X%D0T-JnNXS8kMJCM;5c@t zDie54ixwxOsV0}rp#6|~(s18ZN|GiC%J-2{HOX^}R36$&k~ktY8W2qQIcidpJCo9X z)5WYT&XdoDjGa1xhepPA#EM{6Hz=!+iRF39jffYI3^TY8KrLbIY)D$laAfizneIO7 zwL04B)<>{~7Fzhe*tD*VEgRa{dtmV?w~tR&`IEoe%iG?tjo*6PPOiIRfa7Cj78WCl z1)rT;JK4FdlM`cQ{?7;Zb7HLgv}5nu*2($XJ6k8Yg%;`1!c(D>6hG|6^P6e?)}TCv z5k6975Yodoef)uP)o4N~XjV^Js~u^f95G>WyFiDJPVgJQ_7bAyD#BCj_dM2}H$qQe zCmMrQ3Z;B5ykIkX_a5W++aKmR&$$Si`4OIKrj%Pt5+^P}-8$br%JS8(-p~5c0Wukn zM5icev1!WUfiYIbXL#20F6PjDg~#SsxS%&=<>)y1HA7r^@h1N7SMK9i-*A%)Nwc6b zA!#jgVU0>S`L6O%(kDp`i8f?{z^OaT6Jg-e3WV~S3t|mY5Qct}B+;DR@RHUof~^JR zHScem)&nV;b_9*JP9b41h$P|o*Y9KXb1p(3YwezvRO&#YBiM~kZO&v zxF!;#u{wb?W$EZROUGvzy7oN6?k=QMXxXGx1Q;Qj(&6TU-EvMTQLjX(xPkCPg0>>5 zHAuj-%}`2X2&D_CFj^xqct}!hh--D$oWF(9wF8_vHN*Zxr&zys01{_kuof!yn9gPp zDF}?V_?~ypTroFI3Y>FdXjpQkn=ohD=~#OACd70e8tMl0#Pcc zM|HA6hNLE#(Eapt8bzIKCdbNB1<&)588;S1QG~UYY#0*75#Dl{a=n7p7UO|z5AX*H z*rN;h86T+>gb9)Lu(<+-@&a*c2oP=&T__L<$znZbaJV0n&EaJN!eevftRYv(Ge2Kp zsV|GJHK_ZEXaF0>bl= z60}YbwI$MM0clb^-zSZ8EKws}S;SL{Y#~c|xr()xVyVEoo|Mg*!)!=3^A$-$ORNmo zZAK7n-7dx5HfY2tp#YOY(ntt=-w~rifN|Bup64|!YUg5XTqcl}pq<%G8jEcbI8m(* z(#OUrXjt?;rVDxc_8-M73c?GAN!m*6&t+MMAW1y-EzMG^NWx-)$%R?Ak$99&{1p87^K6V<*O$Tw0-LW|7jGer~vW zJAd_ew-ME1{4j8Tzf>+)p}9!4LSoJ}X-KlZcP^CB*p%^86C67=$L@V6IecWCT9i_1 z%hA`{$?#womtU}v4I77CfTJ~7BT!Pf&3EIh143G-6w%Fw2IGE4DYv8V2h?ZE-1k5K zo((U!oQ~~l2ugV@5}jJ4w9HJ-v#_#4rJAy3?Etknp_t2%&4*aw>=#x*8fnUp9p{mU z4$(c-$4E9$nrJ*+-KLNNZ5>%;gv*k!#x|80mNZUz;NHEg&4-*^SYZjp>4{n5Bq5i} z(cfF*iiGv3W7KC?*iQ%B*LJa~{veI&GD)Hl2K*p!JMKaeMF~1h z(b^K$>LiVXu)Txj{05c`3=SVfPA=ic&4Alnz{+S3-3KNReG)(PNppFYb56ilNU^VwrCUY*mrVh7^sVu$+)jQoO+d zM5zx?L7X;7;uut&+R6$^l9Fgm;QO@OI-c+HZ|aK)6(!KBfmDhx3^A!D2;BDwCLxaM zNNMSB3+X9nOxj>#IU#Oj$O}u*hg6~}wYfR!?WLwtjMhNaLJKW?UtD={FE6}d zn9qIf=@yCkg$Dodxnq3#ODE{+aJddzL$#Jrt|UM3m@l|ti0iKCYn|K{TBJh@-^)0F z6oxcSk;0zat+C2OB9TJ6@I&c#gN2Z88>hM3E2YFLiB3|CH6&4t9|SzO=LADTJuK}# z#=(=56Oh-qFqesT*?=F(->SEvCb-EKNAufjB~BM8^fk){cc?K#Fr|NiS7JU)e|6NdUb8R+le zWj9|&p_t*ZeW&>F-`~og{l#aw?9#1Vap`t`;iXp)1R1cP6kx0iBs2o4d>42qn(Y|Y z)j`VUVt8QZI{dC8zL5Azp@ihv*bMjHy^s4IJ4E0KMh3eX$puut^C+|zIaH6aT2nQa zotszl+-L2=%jbwYifq4R3o@TUWU?+V!x-$@mIn*qCds1NMq;gSyL55F%;7P)4JV1;VHZ((PNDz)dpXH)-KRZAqh(b#CdC(*>{4=c5NWv-A-D{ zb8=yY+wVU}SKAoVOBJ4X{(3fzbkW_J#iAX-WB^4o6<;{(i+v(;(>~#KK_`Z|kx+;t zq#uHgS|O4x{KyDBMPMv5^DD&F7?sHqdWz*JBC01W%#;~fTOjbDl3F~eDCM)1vpyyl zqJ^MVj_K(ylK38#uVE zFkV-Qu9-zTGagzQA}lua$wm>@Dprmzl1kScOficd%F&1um&sx+Ndyg@k_iHOq|abb z#F&^_e5#$@bQJ64Oohe82vsT)*XwAbF-Ey2B`wHjG6Zp*fGQ&Ji5CqkUY<->J3;d^ zT&qUtG{s^Gf&gI*K@bo(Vp3BF>pJVp4IjZ6Nt}|zKC&31G8sHi;`=!$W7C+Vkvcngy|$ync6FrpNbTISkI=vcE*4B6dS z;mpBV+Io6<_|OqVqfFcIFy*-=;&PoJrwB4_)MJClqy&MF%H%m-TA`K{QI!hD+9r|x z?OIxfLJ1c-IYi1OW)cUEg_}p3VYWx31>&=@~x%**p05osW{sg=`=0 zptrw+>#x6vP3s5A<#Qy`Jz7qF08)2Honz&iIh3rr#YtLUtGB(3}xyDC7@D=9f%Upl$PJZj{FQ>Pw z$g!{9$L#K-RHo-yf8{oIT(O;=ZEM-H_ZVNe?NJ`zcbtpQ-^4~`>Djdr+i2h^4=Y`E zhS4$Bf|MRgfYxro?fGuOKRvz7hd%ms)~p%ezdvgiS_rzftZTMtNCbupFW88+nv;i5 z^O4Wp#r{KMyybN_A;JKGATh2ERG?5mM_YkvwMw>>1LLYtT}Y^DRt!q4Nt+oLt{!vc z=xI<;S~rAh+Bv{dYR|JA8~U%=iS*p?(J|CT-%6ESdybi z6;P7Ft^KIBEE8i(WPC+X4C&u7%EH4ZNVUZX?_BV$mH}D>oXtCt&7E+mU^*RUa~<8x(n5|c5& zOa^^ zMnIgnrj2~oBf;Qlu=7)dd4o~VSb?(5L0BNQnlwtWMmT~2LoT0nSv@A95jTj1WXj9X zFA~O;WHRSdterx~3V}yG?IJ2$f{ei6V{sNbYbWgLkb*o8e))N0a!37swKrWYKU|^s%?zGUt zkBCgD_{}$O=Y1bN#O-%a{@BO4{>pyd_^OTMvaMxY3oX*2h3_{Xwk~DXDnqT_ppB+M zUn0l;x0blka5)HPlfAL7 zwop1tgK8d60z!tIf7veXxcy-)9+zIV3v=KoQuuuLz5{f3w;`6Rj2}ITh!O^_zZhRN zi#nT@0Bv!;TjLZOIx$$Ix%ycTZyRxH2E@4#OjplnXv+nRuIl5q zZ#~RMKK2c|a~{LJCHe=txaQgm*|B3Cz7lxSqIHZmDMCpuxp*@jr7U~)9_7J@j$|n5!u0htTh~1Ec5=~`CD#$`E~rK zxBooGDw6UFdv1G(LVqWtLzknhVR3Al!f-dUyN@uO&GO&h@d{2HJI!Bx_-hRJ6#2Ew zwjfKLK`If@jXeDYP2>e&t*#ZVTNp5k>!~MF7GVR{ni)p zH~(-aANJkSsW2p|Mo5=2a?X}woAs@@z|U-^jnMP42uvK~B28PK z#TI@D;~;S3N;9XRnnaX>0&zVh$a=_7A!A4?4g69TFQbSnF^x)VM5!lBDVL{~t7DfU0^yM_Wy$%9%ETg%>NRXDl~5+)L}Q4_S{@2nr1Y>R z1u3x_N?l#lmZ7#>C2VAxgr7i$dB%Ho5cH>{C-+ks9ilijPh#p!3>8`3--k>LjolLj zrz&`HjFASvFN@hZOf)jgnF8d(0{NvyN(GNhTRYX2d6FbT$1!mnLnec?K5@Rt%0k zSPvxgktL~DG1hQcWvPmolld%-l_lckWwMzZ!g_e6Hd0Sv;|7T*@WX)ESfr;&lNe70 zV4omtrGRX+|m9A+59g+Bo*|9otlCWymT2^fwArLOrH|1rJHS}sys@&GbD&)HAQD7V!YPy^9FjO; zW_Fn>g3E8XxS5VF5XK^#3vFX{)5;;7jJ>H!K)G5(Ej_M#{-xY==WdqDRSH6I@W^SV z#->=E^{GT2!`EJfF4w3XI}JlUc!jK!v??DYXlt934~z07R>#=(61y(k!dUhc<1@=H z@X+(IK-`EC`4DL}N=SC?T+gSz_#NK&7yp;deQhLZL}yPsFMIj37+y8tCUe&Lp@kHn zB-RMD)vVh%%$kiuJnQ<4cQo0oC@Ie_@`W$m!}D&u zkdf5`V2sODu+3J7v$dL{X-E*Bv!ZCjD}Vl3eCt~e@@Mb+BJXnpAfDl6boJ^gUn<|qJ%Kx zIg+VTB`Q}LxL_mW_wQq!Me%H$>t}8SxG>&NU)DyWLLYOD= zH;jfP1p?AILU;i-j%n!}TKLgu2a9ht%f}{A1B3XfraCsw!NaE*+A>T&lVf>)nuB9g zwDq^MYSSQ7hbEaFo5IhAjO&0HnUL;MC&55B(?_OQ zIx~-#31}PXLrX~nOj}L++D>Gx&ZL*c_j2@3R!AEO%e4rx9McsGWHH3=4e8q4OWd0! zkt-;Cq9kQj)Hzepbf$H3af7Vyv0SNwwX_#INmEUuQ9~B8)clZz`8hInjzVWAXH1?# zeVL-J;pHttC{mSSwkjZ(!)AS|l^OxK`cB`&n3OQ<6E`%vVL39t%xvE%HQ^CRg*Jv@ zrNXL$Pbp40ghxgQq)liu%hVeg5CPUW(p{tyPYJX!q*3ewdzAp2B8(-e*U^m#;dvee!sG|*{^3VnKpyBXThOX>wgn^&=FO*e=- zQDu=#rkz4}4i&}J=EkW91^iNxVtaI(O|veunE_!f<0q$4o=0EzqB|lkM6FgtL1f5yoHzTz%ax_C0!tL#Jlw^AuNYT20&bwWuHf3|>b& z8Rap*?+BURc1o*nm1oUyBtM zYXx`Sy_>&!{}_)Bm|uCr&rvAk zLC2i@%3VaMX2Z{2ey;c33PmoTCvD~*SOFVea1}F;9cAJ>kJGVZl-IoSIh2>HRBI`@ zT<8)eC8W*l3Lyoa=OHZUIOPNH{X7>x|58TR4`4J1BO%c^s=_H;n(l+hnov7a4u_`B)>c%ID`^`#g&4hxyQlZs%?P z`4^F0Ih1cPaom*cfHjFDB8TZWPS)ug}+rkeg96-tpr3~y`wZJ2b z4F-lfnM-DA=#=@TG8;GbkPLLPvXDhfNiEi7y9>12UMiJ{`Eo?(NH4zU5yhINMoiym zAFH>IFgIPMp$#hV*?8dw>Xn2bm%(OW_<~V-*Y-0tzQ{@vksldkTXz>n51wIca-M-u z(caNR(f7%QZfs1Fgu(Mx(YJPxg}DlmvBYso)~k{F5#{m%GLvD=rfv#Kk__h2Nb*Kt zSE^{EDRk#CQm~{ofr2D%5acstbj*OKX&6|HB5HmHF}nce6;#Hj(WnwN8W^L=1O-%} zP;Et)mda!!jnNU~1KngQ6>P1BpY@T}CtoU%D;23#s${}|Mie<41eQiz2LwtS4@nydQJlJb8wJ`p#gwTfH0Ea+J#Q3^C8H9e#aV)$ zVLJNTsm)JgO+=w*h?SWs>hm*@YOEB5Qe$RjF*+e=?`3UwH(LgFA%w;AI{5dXbg*at z|EvVFMGHT(uUB&+>y)MTUxhIG-o^31CIMy7ZDRdo?*B}}=&Ay5dEI7S{ql9}-oMDi zRE>q@n0h@Wn^APMg{&UVvwd?r`JC6vZ)l-KI<)YkqrQ|N(gi%3Lt>k|BObmd&($az z1X?>Agpe*|(N#6No#B<`Di1$&fUB?C?wtE!K+m={U<}H&9a38?gHo=}(2dHtJOi3J z5&~@mQmSS>q(xc5dAl}p^tK0Cp3E}7ROLC_Mi6*d+@Kzm^7LN3jp_Ryr#`;G&^70i z8tcdqt=*0}2Gjge@8sowkt#Ri#)mYC%SVtsDDcsJUg`01>gx~wakMpaS zZFcGn>xiXPr>yGhV7XkQv%P@U8rM$gYC4T@B#4!eTho1R(kz8Qr|!AEz{3JoN=l`G zsf8s*)(?VlZ6s0&!rpeQPMba=i%t#KT(g~}nMJ<*(OY@$8*idqF4NcF?bVHYy@6uKJo6@DzN44%@g?ew28EzX zZcT=AyWsTr4Ad=cZIWCVFfq15M^4kzZs;$ybL!+Y+E&PTRR;S*L|S2aB_SiKgc;~8 zg)|y<5@GOz6tB;tvQ#IRLS8kG??IL2R(TAroY%H#AYLN~0E2D7KMAboG1p`fNmJ8Y6_H z)X_<%=Ai&%1SYi@%eiJJD-?zltK7JmCJ87XlO~uXL3zHbD3y}X6Eqqrxk3gq8O(A_ zRB4cD&$>(_Z7G&=Y`JJHI+d8^= z_Rwms>K}4BPc1xS@U3rsi+k?5hu{3o-{ijg?&IEj@8uoucnA6XkN}NlF z?&oYa%gD$GFMs*V>F)0Sv5$NB@DV=rp%3zwx4eask&z$iG4Flvds)AJJvZNc^Uv%x zDiwXMzO=XXW^JKGI<)Ywha~Y)I>MOHExfGTb=Gl=(FQ*VQL0H0XpJ@&83Z6C+FHPp z%>`U?!A7)|1VKQ)tAr|L+;OxaO%2&x29vlTNw>4E&aUuK%EMZX5DM8OA*6u&AKcH( z^bDa=Y~Hqt_kZ~7oIZYr%dbD5^DfxtHa3JsDv!Y{c5?cThj{$+cd+$E*CM2F%^S^K zFPS#5+8{iM@jb$9fbu14HmyPc)sy4+SbQw+`QX=BnqOx7P#elvO17TH7FzokA))>40N_* z1&rT+kTo}6jPfM38AY5)p zduNGCxk_6{0i&G-CexcmU6Jkr4pU<_7)F9o)v zlXQCltz(q*on1*vbQ+$^+!0Dbe?P|2q8MU~-r=kV3fGFzBymMku_c5>r*+r-a&G5R zVTD9`Az+(CrNHWxR7dPo9*M9>EnVY7v$9qjgAfYQY&a4^fYun>z-sLXZ$-0i*mt%r z+~1Pun7d~Vv9VBMLur(S@*IaJ4^duTL@3KjrknO`7xT3$aihxC?a$(ZfuW`y!i{N4 zxPP~eO=3?T!=#$XTBP)v4NX2#;uLXONrdm?7jsx635zA9C(*(pEC{7gN|0(zrJk@< zb=E?qR5RZQ0x1~i?BQ3R^J|DS1*x$5tQbvVX=djLg=_{d8=Zns%`jhq5f)E{_3U(>Q}$YfA|mofnu>l z97lZO6QAI=+iv4e{^UmWBejKGp=&Cs>GkPjVV`rgOry?6^oN~CmZ4Iw2$dPpls zy4&e)&!Lobze6H30n+nXT&eNk{rlNI+Cv~9t;b|TkB+VqVHl9lc_<+nyzBV-hC%{@X@1Ov}>&k)zE1(v{0fX z965ZNuYKzwe)Y9CG5MVX6uLU-x@Il4u_+3x`e@885Y;q6e^>K7YE0^ae}s~BuODD` z&ry2M-|Qx(B4G6D9n=>pqzfyo%LRPlYY*`YFT2Jq9-6iqVGYV^B!*3!M?kurG^bq9 zNMGW~5OGe$C_pJJ(k;Rbc*-T>TWc`duwlz;Zr^(xaOwroRL%?xbTK_K!>ZMTSgl=$ zhtMcrVS$yClLUi3SnGBr0klcM2!v`DR!Y~P(p}22QjL%v9J}o?+Pd3`W6jXjI}t*V z>L#(({KE?aoxJ$vS98Z_?&9j9}whnrC@j$M1oG0u+DGy`v)=E&XGVw%q* zpA<^l)CJjQZ-vv(1m@+-q*e!#FgvaV8eWd2DJwjhcZ% zA2L6T)NO2CwThv_Y4)6a0M#?VvaTb;9IJBuY+JR1QhWasi}U8GF#^&vE8xt9NZ)tL zxzyt46c&w%Q%s;Jbmvj|kd-qlNIyXOs#&)zkk*Cl#)+X+$RbS{D=kqJW3@-4)*z=m zm$T8n`P{X2|C3KtUWzB3{}ktE@6Ito@_QtTU*<|$!jw|KTlUzSL;pMLW^{0 z;m3oumarHgWGBMY80~g-ZEBiI1l62?f=(m1V=Sech6x3!al6N!;L0m^Vr@cV6J({% z;_NcT)qNNQo+ps`Jn8&0X1KpuZD~NqNTI+w62dK5J!Zzo*}Lxq$B&P(s=tjy8+Pp2 zgf*JY>xU>GpTOFbiN{Y+nx4nY<>}qE9%EAmF4{o4P-fxrqZEgG2zolPQev#%+!cbd z6&P42ZvNNq z*v+QicIF>HPWQHT_?;z?5Ds+#g0QQN_0PNXTnMMKQ0yq2YXB*%TZK2hfDsmJ+J=Lv!Ujcd3ND1-zr@ZFL}3RiI{6c*!l zN1KZYZD}@42!u2Y4R+%9cDVcwnq+~o4EDEi?>&3ianTl%G(}sG(svw8l8`P}@qEwi z;+fP{4|=L;m5>#%gHqI0Kv>8!HM>NTSfohLwK7=?N*J_p#O?A*jkcUmtzn3*AW2e^ zMg!SaBv5Vm*^Qj7aDMVj|6!-&saLZ}`ZS54e@lbZdmn#<|MB46L|Xq?kN=Ck4>ML- z;SVmpnzg0&*0A&pn~Q$xQ=j7VpZ`3QlapL?%{9FBt#4(`nl=3PZ~r#iwr%6osZ-o{ z-+iQM$}3;_N^ZI37L@v@N5u2aJC95z!^x8;*|TR4zx7+c#h?HApR;MxCIH_5{tvKc z&u;$qZ~vD2?z@loyyrb=ttpqw+;r1Ty#4KOKXvHr4cK!{Z0W z7+KYa6&j1AINZs>d-u?O-n!-vo5k~_lic&fBG04|M-QK7*LiEm=CW+qGD`f|QIa%a z=gtjGo|$DS@bQmKlPMMHI)4)fzkDw?iLjocZ`VdtcaiS49AkGsM$kUT;6+YmYAkrd z5|?X?4EG|G0%J+)5xLd0cd#aZSEDR#9pIkkYX7H!-Dy`z-luKNz~&U!+S&z_rF8sn-& zPwzR(FTMH2bZuGdb^(Q@a(Ikjs0V!63{gzoC2ZOjN*hN&fsz6%6xpF(r=q}ec5~1d zU`$HS&ULikx1ZxjPqA(1CTBwtZs# zw|i=h+j>-H9zb$s{J z|HuoUeIX~#%&~TL56cUSbauBRm4`Knd+j=PA#{F*`pN>vBuHcNWQx`ao)@&nkQRQl zp;m}<#GKo~{vP$f*?%<`iNgNyvHPD~-HU%}kuUhC=EUO3A|CtCWeuJn1jN7Kdx?LN zXZZd{o?e-vkZtFxP0wMeI?w*&_fjpFsnzRr`FZl0ECb!^IEp136woT9kZ%XfxojKv zTn1w`OZ6HiP8@+?ESW+E)66tV;*?Aw!*nf1DvzQcqEvE@RJGQCHmE=mHDYX({S;+OeXjK@>%#Y05Xg@eRhu$IoRkOioUcrs=u+ zCP~cH)D(?IgTMHTzu=;aF5;G3ZsF+BqrCgw@8*gtu0Sb8wOZxq(WCtKZ~r!ni;Mi> zAO0c#`+xs$KK8MX@zIZdlzsd5@jJisJFHr@ijRN%fhA$sn_c)EG#fJHPw2v zw$LISTKF+x!KC2%xpTgGfplJd6v7Xh(p6VYXrl%Qh0zHnZeWA}PvJKw)oH5Hjf9IY zSj&TB(^%n%i8zUo#xlHRn59D}=~y%1LM4R?dQ!yw}i9ANT+{cL~1WeDYQ?AH5{Ns93W-P_hPbnW?^_{O75K5&qp zi?$%p)N3)xsR?q;5H5s7gaHITwQ7yZ>@1yax#mnx;wg_t6caTfgpl~kqpgrd2^c$i z20yN|eN`LEB-p4g*wD<Wt_qxF|3SF z(O6ujck5b|@6oYlfOxsgmi7G{KR(WsF>KyEM8ql^P{ad3P9-N)x_aDCZ2NDhiKVU;gC!@tSe5t4=F^|qpGf^#n-}`^%Vv##}3BF$9doT-p4!N`Az_CxZwtV{^x%lfY-d{ zHGJkXpW(=nBTpk8R#sN{joY$} z=1@w7P##JujPy~`b2$%2xH_=f7+ohWPte!d&+~7-953*lGC;WCF>5SI5)(+v?9@Cx110(|Tu*g+iHW=SQd~d4 z+UH&f7A77%$m}DBAqZG^fh^KY{xv7xfEOj}z4U;5ntz&^%LPot#bvBMs1`G99%w2tLk%yK1SYIc$FnKGHq zPUh#9Q9_Un13F6u>Ww=69a-jPml;_-1hQG3W;J{EpP;>~Kz(rqZ+V54@dXAh-iY=j z)zj1TUa}oytP4N1ra9jh)K5=Q80n{(?TGXQ%STR=jPz3I>qe)s3m>zBrNd_!9PZ)n z`;MTj#afMR+QzF(Rf4%i`Yu?9^kg&ULoztri?W7}o_4~FkFl&9h&66)K-6NfT$|ksf{_hp9F2lyZIcX#$=lP7<;Mosc9*AraOETApn= z!HOrUI;|m-@yTaB#=dnweb=5(w%hqLSEgsFE-urxeido0ir-NrU9Pcw;3SR2uy*H0 z=5PHjaivbC)W-PfX*$~^zVG8@3rI;bxK5CylFDL&P);o&(XG+Cg%+MEl#UPx>orwS zZt2}y=;g7o2dPxbT)634f=rQz5B($3dK{iPOcby1=!v^AX^rPz@C$fez*#*?Y*MCI z=3P6FcC9{2Kx_m?rwA-cSn{DFPBryW??dk7{OeVt% zUho1sJ3IO2H@``v(cq15eB-%%h#!PvvB=xr_BKB9k&p1&*S?m)!9kw&tY`7s*S_}L zar^q7uwfMn1&lE)EG#fLH^=&Q>!0#kGMP;4qPEaNi*)$uV`OB6|MuVh8|&7sdnQcP zutcP_S(2!Twm#Sf_3{+?QYUGuks^bTK2|8FMlb*d8Fr4tj>3VHf^+g*?$0%V9^7{LhZQr4Rd7Oo+{Lr9M>TVmbT zb)<1ZHWXBIrgQyxbO5F zSDe2Q>AA2kFP}vfvseq2TFltg5+l7OJkKZ5#`UyYL$z9GVQQA6N6+Ae0pGrRH;vSg z^*!QLlMNJ`SNCw=o|7CLTci;ulnNPkw6|fjAq*r452*yo^XMpL@dIaR5VlztX)Mbt zbvCRWq~RVC zxL{7B^*Mh!%0miAE}eCCNC~Fipdl5aP$bnFDHT?ym^7uYv%vlL?ZfkZJms1tjMnsT zU4>utLDw$Sx%WEmVDV0m$o`Pn5#)@7T`6)9MQ^b@R!Fp0p5 z3g`yV)*7)}XyF;dJUn6SuvXGh>_H@&O>4HZc3=y;k3Ya8NA6+M@J{*ypN^nNd%lCV zLJudV_Y-H1pMk7_+4=X=fZ&b3tdO5u4P zQIueeahWpa?4YO+Shqkn5~Vzhl|;=TU|IpSPr)}&pWstR4?KOMC?)^DORnM9cV0vw zpX%#ZLeQVf^Y$GVacSQmZ@lB{99Wop%6)2S%KzT|0DpJ=P581!_58GPHo&o1ECMh# zHiotKpS?L31OYeQbTfm41B{G}@Wwa3kuQAV3*2(cEqI>Gc8a3t-2IcpeeSG<%PzZ& zE3dqg)2B~!|NZy#r+@mVc%FAo-5|b?DyC2<(9_ey!s5cY+g4Uqs8lMgi`qg9Ez;o` zBwbZlRP7c9B!*5&=^VNnq`SMNq!Ezr?(Xgq7&@e+OB$30>6VtRv-!`(zML5zp1r=c zzPA=D3sw-ISAHS5_^!if(mSogSrR#v1+PUn%Hitbo7mDTI;q)BuwY=)JTzv(W*zl~ zrkJ5{QuAAdNMUkHcD}Fh>+Lam!*=JjPPVC{-25%by?XmX;1=uJb!L4bunCKrYFWpU zniY&2s)-WE^rn?Z?P~-@Jp-Rj0pn?7uOk zfl*y3CfPA9`&m+{&S7G>VY{Tck9mI5iVnx2?q6ba7AT0RqlwutQXKO%5<=9iO42l| z9$O!)ZW}p;hPi6np{LRpebVyeTTH91vFK_l#No-Uv1W+80GQjA!(EYGpjpJy9g!M# zD1bAJcit+uu8ATegL`~kV6v14Qt0zQj$~UyIliM`?1s!Fn4E#I%9=cp(rR;s`hjr0 z|KhOtufPpdCS)pesUM#K|1Y7~hC0g1{gDu9JbC?aK*n==gyk1B= z2R}W7>_abes5&$~oEE;%6sO8~Su zxk%2bfi#Ix=R;@Y=kGhb>^XQmuB=ZE48Z0CipAEwEZe*yzq|ddw+q-_w!2%>T1rZa7jOW0-~5F(HZ{$83kF{Gxte$@Jr`Hki=WDVNpw-KKlg!8 zm;=bo+lXnhP-7TVL$V9(@_lX7iU9_|H{R0G&5MTGNFQO-6soQ& zoZ}eN+3SU>2zz%u<9E1K_Y3=_yoXz__}%Jc|8ceqgxrN*&wbYwUZ18@&TODglt#P% z6SomZeDJSbaN;RUwsbpz%~V}!ZO@_lm3c`~b%KfIpLYzhE`2WsahHXNPd;%ai3KHO z*%uYGS$Til_*a}4IfwMb_it2NXuyC;XGf}CchNUya-!;>+btcLpwU<@RwL-C(&%fI zSK@q8HMJr(M9n4VdzzbVqE*wEfE!W7c6W%R%+J|Ew$bhAl%xm)cL7T6{Pk66M{}8C z%tWFCllyuz7lW4O3hu%s-mhuF4Rp$;5T~zOG@DegI`)`-oY)jpOE(mQ$IMn*&h#lR zshMITHfr-RH|$pRm#rT%$_lpZ;W%!yUvdREs!PY%A-plYl zCehgIk2A7zVPD!gDFuIj+VsDxJ!P)JF0O3_v#F`@s!67M+H^SLHuA{|3QS2CRCyRU z^160OrX_>7h4V7j4lJylWkd{WX~PzY2rsZjo==9gQZ2ZMfMPDDgmfM~e|Wi zf=RK}`|{tfFYABS#vD%De%m$tW zISExNTEVK82rbpbNFQ_8)B;5w$VUaLEYC5tD1}Hj_oq3ji!0=Jxy5*|1Lx>=HwEJQ zc12~mFvS8A$;+9obkEE>%GPYC0St-ul#O+30&heU~>}-gS+4XO!oYVfi?M=EEXQ`KM>0>k)Bp zOg^Xk!i%ITm0Tz)a&2+$8@0?XCOov1Z3y=%UzP%d6&Kk0k`R*Dhkx8)V;XyoVhux& zG2j#>f=O>Baq6w9L$`2bRi*!LH`%eFvoCVDw0zBPyOPVrq5%prfJwUCogHbD8UJB* ztk!N#R%q^Nd2M~Gy%6)|F;sg){%7>O-G)&7+LT!FON!YVpKF#jz%}tNy~bZKbYC*O zA@_iD+32=?!D%~|r{T*Q|Cg?Ni!I)=+S>RywDgI8!~RdhoP@E?@rKPd??2s-Y6E@9 zXO!*JO+$J;0PH_Jk+G2csJg4zX)AWC%gPpAy=hvPDj~b#eW5O(t%wC zE$lJNl9;l#0O|cd;?A4Yh2TIn=}1EXF_?ABhd)B&r$SQudvh7nKfY|<8>{;;!hgRJ z=j4FRnn010YieHnP4?WwMQB_RH-WK${q#qv9ig4i_x4MYxLFJWwEUQ6p6{Ac8sOgg zC*;LlD~5M@V4)sprDcW||4*HH!Ei0JoHbIaB_yLtkTVkE(GgN5I)PPUuAzweG zbQ%7^@kZBkxh!NSXvPh9|LAw{huwjK>PBqyM)IPB!USY%7OjKRFYmA*O1!SOBoA(O z7A{TsV&9--&(c)W(DKSG_u&C#iSq)2LK%J6}!)9<=<4%=w7QuI|i>M4D3#lNjUtO#SeEaYWzq>g`SKU#>_4WI79|w+> zjv(f=(ZR;fKXMh}L9%{x&&&?eS811J<2J#5m(PjEEFNsWhLo$YJfG+*kHT*Z9;qM=X)1B{(6XGK4%bIQaJU?SZt>zil?@wFOZv^5cYnNElO_Mm8RHtWXxxAK;dZiIzIOW)I?nPUn0=;e{e-egI`8r- zi_6w;!>ql%{ov^6p>PEFRG5CT+vXH4g_+wXAUkca+{5`UZ!o{&4f`R{Zmmbw4%Yk8P9j-}wjGU3Du z?!_9$w8m;vB#x}&`3;`6u~cNmY&YuVw8^0AW!Y7o4dCkB#H-!i=w&1EItPL9_zCWW zaSu971!6UEg+mTkR{b*Y58Xvgm`idP?)aj88N@1Mrm9F#c1fLX(3xtM9PKegL5N8n z#2HmF$x`?$W!FZ+TR*V(1~CUV9J);c%znU)nGhGH>Wbj72rxFuy8P8rYiyM(Kd{Uv$~AsR?{CP;x~uOx-Yj>$w(mPljTueQ zI(T3fs&#ry!24ZyBHt%h<%xfquaNNtBmOAo;2(4P%|8Q-V*j1}mKlz`j!@UM{y|SS z-!ZQr;$ODVKZyKzeI8Nvn_Xh{+p3$qJCYBntt+uYQA31q8(@wvI|CxnP@+$LL3*oX`+M7*5B^c{?%=fCx}=DT;i9PS^*8VoES=ehpoRTaQUQdTC{FjD>^qk!BL3v)@r3RIts}|Ja5co|%h_h2%f(Zo5v;&B@t#59OF0;2Bdo-*<6R*mlB36 zGpjO}TQRXsJZLK@WKrqNEN21IP0KqTc9?RH16xv47c1+E*{qmMqs6GB2v#sx6^YRK@l zi<6hV$>V~p@qLvfeR)a{%mOBBEY*0k`5hs(lOtpyvz$S(dmXUqgk7K=xPNOA=h@dD zR0WV$rk-w@`$mnqoLo6w-Yjd!@R%Z;KO#Wy%xQvWaKTjbgkAvFc5`|1fzK=IR4nXg zg(R->6ebsii!WFW&P=nq^8r3qxmNsZhU^> zZNmh_`(AT8BEdQ)5h*0RN3qr3z|wOHdeqE$0KUDYrp)=6t}of#HxwXr>N`jVQCu4z zk|uC?YWnCc^Uq5fKj$?66wLheTgoi<^R?B-IVrgo-L|89l3ZH^9YJ={{hK)tIWi{# zTs0WEf@aZ!y_4ytb*q@TI=b?#UR|dcrCvRV8}X?c;@)ju$+RjJ{$CMKX5N%CX?-4^ z1v$@9MDgWlXgM7WXf>Ur0pl%L_1i@D1;S#XpER!8qDDQszpb0#lt^jc&{46m%{q(Ws{`Cy)Q2folUB zs9b~JAlMzFgzdxPDBAB71zU1f`0Mwa@^_tZ=Yz4m^HiU#!7UBX%mMsAF8e%peHY>b zdRJG+-|LF2!e6gP-0vU7<2ekgib{5tdof=YJ};;u!6-o(g--awt_J5Lzr3kx-&o4v zAdF(JCr( zMObi%WmzS8y{n?ighIqVuU@63ocD^w>Xe&xw3R8bw7;ocn(I_7!Su? zPd5SS4%X{UNcs+}S9hvgzU5XctP-EU=5fj$=v5SH5o&1BL>{}gv#f?_z#Pg#WY@lg z&71RIrNrk+$^N|j%T7xwI38wSrIJgnKuNu_rsP+UZEgxrJZ%0Tz{c&`AuqSJnLGe~ z-K0);8WXr>=jm3+!Y|?+#6MOWtNv_JqtL9@fAwCT!PTZYBhDw_pP(sarha8{3RxW1 z-mqo;T!blD+7t!-uh7qxmu=01Z$T;~9weECXz<}3GOkCs4{}bwT=nmJK0Z+b8~unf zTHQZ}y1vs{OIbexm4qiEQR7I_rp%)y5u%q!$VAR(^$*kFAK6oW8Z|8~RsB-8zX?ZE zmhSPZszwqdzaDyQAm*J^uneOx+e230C+^9tFG_j1+)T2zK4F;Ol`QnhH(={Q)SMQG4r}u&5j+2MiFx&Kn;VLu4#$e6e3AzIn$$~U~|7r9Pha8Dlmd~rSmQr z?~BD*d6(kw%^YVDVV=g_Xg^Y9Le1uYUND<+j3~G^6MOS%PK+<8moUe4DCk&sCM8~3 zRhUbBDozy^rkV>-{^W`gDG-`9i_(eEr8FII!kFn~)M5^UceBVx9>0lM+WrP!pZw4> zOL7d5)~$ob@)^4*i7hIZ;r7h0;kw8n5ZxZkZ7v;L7Z$Vph!`_bQ7keq_XNMSH7Y0+ zLuEYlw=Fo+PUM5_tW>ZKwG>EH_+KOu=4|WC1!NFLzVW(TQVRTjiW%5m$R97`=^g1e>q>bUplgPI{ST!l|C^K52Kw~*1WiQAGd2cOCrCGCIDfW zDV{|3@rqzzb#;jVP4HN^&TTDTiI56$)f4Z7z)?iFgCBOIHTF%zn4ef9tBP)9OBU5- z1rJsag0-xAaB2lI)c}*l8bpRipNVSrwtjwzWn8zSB1uNsgvsShZ)*G*0l&+XW9Vwh z^#wkv6ej<1^qt_-9oXmP{;C#XqEwE7+VL*#n-xrFuy3 zTik?Nz7ADmC4#lVa|Q;9%y|Qe6VBDSba(H8r!DW$hJ zn|GYh+`kwJL=<*D7GJIV67h`?6PF_n)=Ez!#Wl|?psq0lApLM;;@b`-i{x_qtkBz4 z$#vx-2*Kz=fPVgMOa+JkMxKvh(R0@Xq4+{)SFXmif5V;c8)<}U1 zCIPPA8}so*)Eil9eWR#I>5C4bM!^{yLuCyz5H88%EfOU1U}V&)ABwdd)dne>G?(g( zs8nm5gIJ{!2zjJr*TsoO(!|oV2|?@c7>&3^=+WmIY=qz>r}me`tL_g9e<-&-U$hbY z>3(JV)9?(Vq&@mHL%Hrc(AKO>{-MR~<{Tm2P@YNgesOa+-_7TfT+Lrno7{tZ3c^@; z6a046VA{1kPm;Xb##_(2c`V79Uqz;kq7zRi?V45m9DOoT!K+l16W6rP}0LBB1L$JFa_%ik2I~Z2(s+_ zZI2Elkt*_PjW%)!{as2qh8l%4L4%>>o?Cv&Ro_I3BKTR~!Bd#@<+uA?zW;-#(fQx2 z#V)gVMN6&II(p=DVaT5zeH5}(goS&bc0PnY4}W9%eG#SGDN^6*o%mM;K}_7YEl9Vf zP9vV}nYihmTS(Dn?VSUii&@TaBFxVA@P0ZMS~%QY>q^N zeQYl-q1T1DCnVDyHn~{ZU_+eb;Bt+7o4Iw|f1u(<_MrRxd3e~rz&qKSrJwhtdh6{2G4P zuljvWTYnB#zB+bjPpmn0gN%6$)1$BW*n5y@$w3^2u2-h? z1VcDYL!e7xE0knooI;uczP81wed(;>VPFwWpvjuP8nJ*Wl7gYbz$gtfB@f1Xi0GkB zN4@w;F3Trso}<|hGFYqsr;oQOiy`LNe@^%6XuhrvLv2=k{{x|0{1fxkYv(^g_$xR$ zQILptMj=P?ZkVR6$75Xd!KnFt?Ahwjv--BOz{^C{g0r9dr(=oNl=JIa|J*5ncLM^o z&q`Gscblaho!6$#h`($TsZM&$8R-e~p>jd|k_U}V$> za@~clTN;t6t2gKM*Zilp+K&q~ypEpF+Q)Wze3Zk2@rlI$IHT{iAN#RmSL-CCa3PO{ zk*N1jF&n5BWQls>exj2>r2^+A1wj3RU?*1+Fn_y9fvUnBVv2Lkny$A`xgS=lb2;G5 zU0EOt;Giw@c=m4%0!D(n<=ptISZ{Ra`+M8Ay(4?Z54@6Rp0*fRDrtRT(93DKh}!PS zpY}}%neEth=_q3gE19^U!|}8i>z$d1iS6;Lz@*t5Pu@S8;Ckgu!^_mJ6wm;c9j^TNqSY_|(n&~K)`(mulIguc>D9!;oG zy%@(f)J(`$Y;9ZIt?!+i@IQ2S$FZ^60>S2y+22$oNmR`smL9^f)kN6`9<;ta=2w@}b9iy)%PU z4a35GA}^^L|0lRGfK81kCYFK8$TXiImo#V#2xJcg(7TkFC=}P`<78ya7R;@i;EPoV)|XJ5q_S~L z)+khs*@hDIFx1FX!h2?&d!;N+SB7Ud)g?~&NItq`Y1(=%wfl1Ex5Tl#*+fmPKH!Jn z2@dvr@#n2qC_b3I@{nv8hAN?gOq(HQS!lMVwnl(b5M; zUTpbKPtSrak0IL`O%`9fV%+Vr!n)L}}oB<~#j0(AaCobUvr#sA-l@mpj+_&r}B@No-8WAvTWm4WBHVg{3@ z9>*ut;>W6bVaZ47}BHc;O^4WReyOu*E-=d)#A?8+%fV(Yu~{T5~fn zrlcRD$Tev!DQ6Xfdi|F@*}V5H^Ryf?@%#OsPd{GrJd*4V+VZexFpz~97pm@WE`d*h z3ThIJXuONhc0ZrxBGRM1D-U_|#F!1oT|g{_j#uqfaW3Ah?AZ=onF6P+!47^`*`1rH z4h2TFS0j}1b%1GRd3hPCoNlqhokjoqm*VQ`fkaB_x2^9`c%OXOLdBq~xzIm8u@dpv z?d((}Phv4rw;9Ay$-eEIS}=4c29*47UV^11U4UI%YIi+u>z1{h*z6DI1HJ+<+5rNt zaZT@cV`F1)d*%)gt-ZXx+YXANp<1`1819NcK2UZ64uO{6K;q7S?dwwv@Tb2+Zt?cs zTswOym-^)Kia@65cYc9R8fNo8>a|^V40l>H!WJurOqQZ3Oqy`mgCG|0P#zYR?Avh0 zic(B#@lc--QukU}cB_a1|9&~zC7y$_uLVjAgSHv1&MX~g8K1A=jxmuS^9P(J9^Yc! zpDtZXRLA?*eNs5&$9%S~Xc1H8DHxR%ezonx-us043>AOxkg3numz?5@xAVq?xKxwg zV`R4*mJAuBE>}plv*;+=XvtJX7s$~aCexs%q|jw!B^Py4%(pYbk^2fBQVPY}VHjiB ztuOYUz3%T{rLMR+@B0q7-EMAEEvr>ev3IMO*tlhylAE`72TuaR3N&Rk`;yL0?Yybd z{aTt&AQ|k~dBW0^6=H0{NGmMP(^VwpK(-7jm_oy>Hf<5FsP8YAjk=loJL38G%-h)N zc5BUXn&Lk|w&xH@OW!nGt|G7C?Q)COc-_J{?wYA1E zs?n9Wre^f%b)C=sFmPYu2TVoF?QlO*qR3VPm5%8MI9KR6X-S2ZEb|LhbxVGH@42D- ze0S;U^Z2s8>bJ1H`Y-2%jB63UPz=-%AR-qTN2o&oU^A`I*t+$9y#?bS zbzU<$eEzkk_(8xe2KdDNTSZaH>KGYWcz9$0EH>%u1?ijp)ZhOjpzqqWckm{v^?yFb z6gxk4@6LYn$z2~WaBy=E&1rv{==gKZT$1v%|N4~A=d=Y27v+wCre8?(pB8G|8#c;il#>W$ zh{ovV0&O04;9#11@qfiwHYm-qgxbp1B^<%#>IJd(5NOhb^%6gWARl#>a@DP%?WRE7Z$8um)8RDa8fZ!E9nFmDRXD51IV37gKOPk@voZ(ZPT1S_d(aZPoou)a^__ zym{H!vs8?G->CoKh{WjODK{qWpD{#=C{_b{-bw|D97l{6gsQV!Q|{WF)kk=9LeM{D zvDjqBL>QflrQFUcbFMl{t4OI}APJKEBN4L1JSq4! z#ZbJWk+=$Vs02e3b9OjmK+_qXnU*3JE2d^U+@3jtJyMlZlS477;P$BcpFurbqXDH+ zO`wyevl@^HSV8i^(ge^xe4-^{`4dC`navsrSHZ3qAw+~0EENo6hn0vl<%mcr=K{ywg0>q{4|n3tJ)lTWX6?GDsKPn9pGnU$)E(~IKY{Z5ur-!#4`p$ewX zo+xPE4CEO0eAyd2*R$O$-%P6($b@Kmp8W}z@n7^g%BC+k38bSdp&DGMBUm9Nb-Jp)G=T4$@ z>-}DK#hi`L#yisgR+@WUSACio9YuOGyiH1fd{F)KuZ#zpRZwvJ)64EBELi9_or$`- z`rD=K^RF_+&a2$BlJDQs(f#kn~u!uhZ6S+prQuK z?(n=ea&XZ9#q7(E_rQ;kD)9z1@fRNKsZss}12|p%NGcVx#AF!GT zOTVVBsC2o6-w4SNMo7IYgvE`{M_2WmIpHTjq;W;QBol#JmawwF2#!$)-I2^%VI;W% z97SUndM*uU*GwS_Bh3Z~(wf)+hbm#?9ns}R4rbtht0^sDWvFLpqzI+cc-dhf7$BfG zp^(|fC<@UYa^Tt_8Nrjb?v0`v_|A~^Ig?xEspwG6BZcgDtnq}XD~#aC)awN!IaVEj z7&t)G^-`@H(>Nr;{DaOl>rr^H`0x5`AT!LdO9S}Gv&figPCN5!5vC-c?(wnJ2@gtG z7klq~!>t&#JU6+Hd3jq#sDTsYJ)O18Ht4X;nWls+l0k+Xqr}5+k&05}7}f;K1q*v` znY9m-(;BC^A&E@;E9!ea>|@w!t|diZ$Z`u(g-?izQaG8x`&=b;?Kv>4TA)glRCN#r z;Wk+CBbl{E4%~42ZSB5n%4~pB8?}zu6z#a=@8O%I`Kr4%tzZD`eX{HOx_%h!vzz!x zK4&f{yZ?kV^EKEr^hkwNO2ewkb=E1Y$e<_RbCU?VWkinc>uMfYQ?L7<4XDWYy%sSL zjN;v`g?EYb#l2>#6Zax()$R+Wf0|P1;xc+|k_`u5ROKn`v#Zil>bFP}qc>p|5Ul`Y zA^iC9!{<=`lj&I6Yy1y^_{L&-?AKSmeT_Loul3m_ajk~LgoHZEpn{Piy0|TFq~f@k zmD_#p^)ue9*_liea|4SH!%iOzqz2*e;h^C#DKXOOU}0osKuh11%5P6QH0E^u{C_JZ zC&2cVG44Nm!L^@N>wiD`ebVll$G`8nciwgTBmPYY_IEXt8urI=O~+kF_oD!?Fi|*a zkU|Vp^W#Pjs*iQ27lE`yuNtP#xEF?yh={GZ)8=Y#!t76{=f8jd9D$|DSFg|huj^Ju zk#EXqAHWf7c7M5Rx6%>|Rxf*-mRlUwA0ueuYSy3ccwYcKCh4K`ytp$#xq5d zIi7o&bg7D&x$K{j#?o16^oJO7hTWQ|26jcNHxmm01(R z-*E|cK`9iG;Z91Fmx?+BGxf%V7tF+aa-MK!_LhOvQPUAZ5T3;-WbfXhR zL*&&ox@4HO^EC%mpeA{=p(V96WDVTR24;8RpuMNC}W+~s8uDPTUNLZNA8wnNC8irif@`T(k`O^x=v70Q4(8FqJt5l-p zrp=T|;5Qc

$-RjDG&*6C(x1FPor(OeMj)t)d#Df>qUM_8Ian8w(Vv1wAy_$|;(K zU%kzU5atY`HMUAHZ=FIQ7Cif0S&98+y)JC%L28+h>KJn-38A!5d*Ub4EBLO)J(DKyy=-pem0`!9GsEXK z1kT^kDc2MHfsMk>AaXPi#L)lw+Qr@7c}`RN0?2UqFmlPw_^B%g=xpqJ6WP*0@cH%8 zTyZg?lF+qAP4|lzJUskjoyj}Z6yg;ixPim} zRS9Qj4n13V1OyjsQ4u(&c| zYM+3BpqGy)>$Uglt#US%ieh7>{d~_m);~js^M?IQ-bDTs;NXi);;~_^M;$PPXTn>M z5ONK@d%{2ifx|XyhIwznM}WawST{)_nFh-`##qr9*YK{&EXTQ|k3up811%XX z@qpc=B%y(%gkpSd69Z>unEm7$8+`Uh{1v+ce1=b^jrWV)l6`lNU3s-7Ez^>8>>1tO z)YLccK_t*wqx~TQLE4JXM(|nrFU<*Y8NXVg*$Yk-_A&7`{1}IP+8WzS@ zBCSbXM!}vx24gAr$+!QNxPcp0v>=(YN`<0Pl~fF*@EISEi(O65QI3KdWZP)}wI&T& zwAeMOACp(!^BHZcvW!_HCZ8ja?TRKbZH$*m#TB!fV_1EuHQB`hk(`=>(b!IlSwk*$ zcO3(%q7R~BRg*x>!H6U($R5P@-kh8QMGWGsqfee+HGDu{IIcRU*~DC!OwI_;V8Cri z$6X>5RLAz{!!KPR!L(E%s!d-|6%rc8h*;^0pKko?EBBg&IiGM-4Hg`sEfy@A8MzCR zCUkCCfe(f3ly_THP(pl;mvDNnn{acxg05uNvgao#=5LyWmAMQRaFwdMFvj~0Xct|! z0lvwYjpSOm)D7SdeM^i4P2VOooSU1_biTPJgpAE^o1ulff8B>wI?d_Hj?e1#UF&G; zu*IwL>L8HChB*HY$DC*rbkz~ zKmWCqUT|Iay`5QF`U#*b32K-3Q~r5!rG3o{Mq}MiW8LRvJU=2sk@47hd1aW>$K+zX z^Y(+$Sia5AQ|f3827M$lMF=^@ zu*r>zUlKlQb&*Yha3N4p?IC}$|BrNw3Z0Z)hb2+`-&N%5SPjDCMWZ#jv$QWog;=P> ziYe`3*11A?TX$N^N64VWR3#iG<5*Ei-9L!Out`v6C}Q|2Ft&_J@c7xO4k)DqAUHKl ztL)UeCiwRf&91GGWM)_~xsn8Y7hDb27Vgr4LL0pDGHxs~BE>ouqOg8ml|TtPM72bQ zZ_EGC9Qi-5&y|r?C2T6-x?m*fC6H0gEzu#Rh`~Wu&i_#|=fk67MwT1F5Vgk{?272X zY3{_-g_4MZvP+X;qHm%I_+u0K63D*r=bUVVb!ZDRxeOIJw=~xvQZR;CltAlih3wQO zv6d#(?52*7<2ne^k0e;^Ob--##~Eu)jpV$Pf?(TQ#!Iwq5CysfLASH#R8z*N(2MBF zW3*88Q!Eq0q!06jH;d~)i!LhQ@5pG#Sd)=M9QrlA8w28!t%!pG(q1uBoIY|AK8{Qg z4l~5cHjyG-kwDcmWIE%w$t=4Qe+;UKUMw40Dw5s%tt9F=RPLI)#+Lmb3Se^U(FOjJ z$=EPtj7O}2sO6=}xtCY-iZNf&KwnFbixg?&?x)#iYv*tzYV!&oyA$2ba;*=AzlM}{ zn(DFdcVOsB!NIZ$HmIRwCBi5b$YSd$<1P3) zkOEe}0}zHWWxq@8w;BKpXC%O7=yo$_8}QNKLY3!yMFJ4XT_F1h3D3Y0S`74t#~Zyq zEI9w9P8U3JURdC;oc!STv`xxkJxety{AdRVln37+i-qnNS0%n( z9H0>IF4McmEk8c$W@TsJzajj>FBkF7M-}C2)mjy`wWPUaGb<}&TZ7TQ)4f+d)0?4| z>CBRUypDgd{0slsld5e2jS%3p-H?a|)o9tjvFXg+TA}V_Z_je)CSWQ13)Y^vzJ;oS zrpBg{l6){tP)i%LQiP1kWI6~`Z08m1wi5*hnUSc;SSw8JPNkPMl~IpY!K_vv#(GcL_aNqmCydkx zCCY@{T2B~A6%)irXRJ_7>R|hP0tphwkZp1m;ck{Vwu22v7K5N9vX5NiLiK$Xg-aP9 z#A@;F8b~}SIQ~h16gOZSPL|~CL zt57IPM${yEr7H|f3Tnp@*1h5R6?+2NoYFo~thCwfghmo93-nZSb@0BFEM@SPsYOM8 zMNAz3s?o|S_A@~RZndpC{PV5D-s*y!F>Llwh$^;JfO8Pph)EK8;Y8zY9`h>^ zQ!~iq_VP*NO9J3T3idbFzEC(E_AyiyB2${sDnmuMZ+h_ln;+C7^q@rpE2(ohCru4A zQmJr)=sv|a!qdK2qX$vXSNx6pK2gc5gF+9&bR{=2OmL0)DTNQHT;|DPQmL)RYZepa z=5Ofad%oFx7KmkoRWqk14egUnoM>}}r)@BSqxhDZoU+6XEWSwEY``jZ4q8(CjvWk2f2+OtsOgu@D zf&vQZ0Y!4rApZfZ{4wvzBqBIqs2l9l#WqSLY~{&p`FI(Z{P1I48gOSELD_KHQK1n8 z9Q>-gA>S$z6fx^1)zpUw_5DH<6iK?&q)eB+Lx zY}?D3-0p&MVLCGr(T^BvSi4!QLlkTxQKS2^zmP;RRBJRM82Y~%P_m;ms-=k;gBrF! z6GuUTqX$yS`&h+B;e*0-BkG`-VNlcv7{Po?0SRd4(6(E4RKZ|MgAj})k&wS@jmR@l zs&trCpvn>_0u$;&_Jd0DNSxr(l)NH}7UP_c)gZ;rFU=Es2pSgwtt~Z{HDkRI0TQ`yDxzVSB=b|B(yd^`fgWr%Na6!aM=tr$wcugXv@c zfaaI}dH(&ve3*XI!L+jQIh293BDZf*^Yu@ErU_O-KnY7@w~|JkBKW)g_{gz5_r}zo zFE9bLS*NtsL?%LJAEmLR0Ygp24yvocRly(^&3Lz&5IAufz#yUc7?W>FEr{`Xac< zaXA&FKqoAX5Tq-N5Zyme6%CV}WBj$P5sW9MY3Y5s!GorDT8Ge_6>*JV8tz^sAewBz zJd)Plegwh+pMLcBxt`b3Hs4&eYAZ2yLcxW5xu0LV3RLK%1Qo?P{<)W^!baS#kedh& z-1s~zwLmXm9!dO*_h*>{e)Jp-QITz94jNWsGdle72f5MZZ}8zWY*O02G*-#RC4-2l zvs=@DJ?{|hiWV)Ye}yr2K@o?=9^fTK#S5qFv<>smd+x4 zXt|+q?pHWU!Cy;`m8h_l42dm~B@hjA;vU;AI8rs?pg=ifL4*$vpGk%8Q^DH#3W6>C9?+w$jF7s zhZ%Ojv(iv2s)s0I@b?bBf4D_aC!W`+L_^i6j3W#3F`UV77Mi+x8PJ00^v3)BqfDZ@ zh`qpC0OsBBk54AR4GsF{@6uHegaf7Da(w&TC9h^wLOA~;*+yMFMi9`)X9C2Ns01%Z zC=I^;q~_$|d3<-`$>PK^m53&0%+iTb4@B@-(RoAE0t?A?I(d;9KWusdl9zY=Ftxr+ zU$zGDZ2O(W$fBb(h>+S6OcJU2IZZ+&3b11ngUB>=Ew%WX=37-L?5eYZh$mKZsW&Of zI}Y>L>haj63n-F)8^=;dP@y4m%g3~`ECe{CRWz((nXU`!WyYdmOa{nK^Gkwlh+P^w zQE*FKtjtskMPveJ(pX2ZxG4G={nHzbxhDDh$o|LFdw^5@zv1J?!69Ua>`gWanaAE7 zvXY&d>=m;2-m>?|$V|#6d(TK#goKbS{;zkR@9+2jU6;CC#X0Bw8qc_&`+lC0cD8J) z9II877?uRox#9&IOtXfccVbF}6}4sf5(Dq(Ogtr=s; zb>bLWB%zBT;8&?%n50Rl9NazY?83S}0e@M8j9 z(m*!DgGgJ=K$*~h6ga9ptD>x~3y~&rtx6gbja51!HF!iG-)5;@3`N~iIzZFhZW;?l zCo7dytXKkP2z4t=TSBgtW6)<;yWh}D1u7*-r=(V=;A~O#y{Ve8M2;!D<6w#2$EMRX z;6GZFWNqjTYD&Q^Dk3DnFVNxgVo)f10@u3VX6nxML`2`L79TB9&4gD-nj_McaLT|f zDTzT7QJ7MNL5M4_95NhbXqbqhR}8bKLJUsUr=dl{NybW6VH|M9Cix0Z#X?ImlsX1k z18o&L0~ISPuDQr6L95KUQw%hF+m~b3C697?iUDyVE>zw9bTiM8GM=XA{Yq7#!|VI% zN}TjTRhH#$SEcj4@Tf0_49JkM{0LY4P{t-qW>PNgegeUHYf|=Zmd0voA9~Fukq>i* zDY*3^sZC3?W7r9V6%U)d*$r$k%MxT4%I~IQxYc4Z>o~yFr0jO z38PWX_y$c+`JRZpbta80s;I+wstNmqS*u(0UD+Wjp;(8g*f6;?$|Vyi%||d_KM8p- zf25%`s_E8sc60hDhCe~;(J4Fbb>IoK;fdI_TX}bTddjn2=bXHpe>Z+3o=zw4C;r31 zF}Sbq9*^dFJ~tMJHF+W$v+y5OB-0)k$nK(p5_R^5WLP}i@^5|xVHNilmEjdrX! zgPfO)^usUlAVZ{FWt|YFgLEJ+N#D#{Wnm@q&3c#Q(lpibw8}2>*oRLnYcigs6Bx+B z6KAVs4YVo?)Ap(aGOIWh=4?F_vnLG( zi1-cjq7G4syGOwfG&egsR@*m^2(zp)WFo6Z%5>yj7!Dq}2}cv7a#Rh=UuTfm zlS-4DURh+a#)SGxWbM;4z17W;ArEe%v?s0-P&9MW&%VRU-6bMt&S^$cSSgTN2!UDT&LUqulQZ%s_DXEnys`mRU zK30tssV8#u(Gfah?5013sG)g{vXaU_vIJqG=yHg=u2PjLDm?QfX;+ zmVn~zoMQbbv1}qjlvgNhW>qzS7{r#>@G*T((^z>Jp;8i^Y?^gDA%Q$wV(L~E zhEcHqynvVGb3vqzeikxu9asN>lObctNNK`{s`aos95W0Ad!stMh=6_iMK1ku~G#v!EwrD zxuk5VNV>1;>3+qr)3CP@wU}F+W2FW=Y9*TdDs(tR3rT))PGq~Bwm7y_#Ba&7PEDuG zlI$pyr0Vu;*1s^wDYqxcnAU6Ei39}OHS?q|1!$2Zs3Odh-Dd6>%q}|aJX5g7<{#TO zDtzy;ibxq=l<&!-vs4Fh()H+uOvB<9-Le|VR5=QAdUs&jPhw(7*zWd`Fb--i6fo%! ztH`mEbYmLc&(t*A7+(Z8{@+(HzQ3$ih~L?#f)+f+Wg4zjY6@6^j z{G6utPoxP@;o-4(@_K`tGAU}ji)P(afr1M*_-{t}6HB9%wNLlC8mxy=6vkh4;r?0G zgyFgC+dUV;fTuD(OykYNLJQ#w36wQR_S@)2af|9ER7}UP8Iaf2ht-obcph^bZmIQB zWHFPwFQnk)^x9Bclk!r9XvKMbKrHGpJSxTi=>k(Xcf+tZA7Vs@X9bm;s`6CCX-Pje zbH)K^x~3fPPFGIwZaOJtwWQvVV$E23Rw>MFzeBNf(~5i@RC;7KwKPU-#)rEVN5x8^ zyp+K``9XbE{E-x0QE+xdQe%kFb2L)RK*k*NO45{Ac&ap-^DLo~oCWz*#=V(PRI^nZ zHra)(&SSCD{cpp$;yxLY{t_tnAHB2$$##g@z+pcvhztP=TI;%{p2W1ak*p!lF6ZdT z^Yr}-GeC$*){uDf8?Hi&kB3)hafNS1EpG3Y;n8Ab1#)Xn{n`K{ZiObp=RIL~peuK+ z+YW$BUsz57Le4_F-{Vk3;P<%4W3-UD89$Z|PiOU6_WtlWIwJlqsWw+Qm)JSO%7ygwi_*5^U5+MIO8LvXle zCj^%BM8DPkWWMbcFQ{bxfj7qPr+*`4j+IuR;w$&;Dwbj%`Dl3&VXR+` zeUjGo>=WC;&pynkNLKY8OdL0yIfj_N%nUltiR0f^LgKY=-ju1c>d@C9`xY|<_eM)+ zGKi4mQy*g7)96;z$(tB+q$1%DU~`I%6!HToJ50(}{hvitxOv$19(rTzh6$&u-FFrp zNU~b5omqPkz=x_Fi2TgyT|&&{%wyJ$L4VxD&VxozT&!Mat4j7$GlZXxG>mNqHpL(_ zoDvuDERqffR-mJ}W@GC(mgMW|a|WtYE?0Za4bO+kK$A!4 zzZ$H^tw4QP?D}^PmCvs_2&o6W##)E3LQr8DV38@-z8#>8k8X{T5@1~kSdEeUU4s&{ zC7_6mWBy*#>Q=L3VU~I!R z?)#q!?)3avQzaR_rq#Xrp^apuZ0m{StWg7+g?;z5wD85v6U{W(z7oyVvNbrX@_YHQa)xUYV#`wmKU(yTln~r6?2y6z)+MlJXZJ0d+x*hMzxE zK4_SvDkfsCUqag^A%xMrm_tpYADb;T7p|4gh>as4d%(m!S@cBWZ3#y=MuZzVGs)rt zr$`B51Y5jNDrdM{HbW8zn?aT#swhW7?-K-UtZ!Q)T8)ceCqWOM8s6IZ2F856{e^%$ zHT9btyYnr4afg#`Ll7x7F%#irs~bfWiNwf$C~Qye3FdN=*8k`OFy@Nd^bEdXSyRE0 z!NW*lcCAJHNJWD`V;91S327c{C`Br4X1th2Tqfa2wT+*BbUh!df+C%TwdFzS+T-TwVBO4^P z(zZ5=Qo#Zxcr`BdnIoHC18;417#X}<@D4eK!Plqud}J|rnk@`hKi_*TS1x4mS!D2< zp*@;;%R}uxqow+WAHxDS$3ir)>etd#iHer878}X-&W^P5;Pu5Zg@6?<0!{-CC*!LQ zKuZ`C{;mp$8O=rU)kZBu0ORgMCFti%RSpH`7Vw7uUY?{3KZi_jwutNY{=U`C^@YUh zD&&nNwtshjy!=^t_Z(nI{#Uft@1o>>Rg`sCl(iRAK1Jak+@E;LTF%64G}}umCuYuP zM#_50TZ7O{XB-KIY0>P$D&E5j21rR1@35fObD)n=W+#5>O(@P}1Fbcbnns5V<9b8f ziL9wa)fGAN2|}h4Vfiu4>`%0`A~cCC!jzIjj11Oh6m=Pr1A3X*vdkTHUl5AG4HJHn zB*rHQbqT8g;0CRamw|eRHNu5$Z$jR*x({1gRXh+0BYHcltXn~!B8-j`u5Qt&)F4RB zkkv=X5uFgmR81Gk7=xB1%a}<1Os>2N4Qno;loYL?Ry6BnB99QAE1n{DB&Jc+ET{*Y z9i5P4ailxMM?ZWo#K0JVrka@$lR`&J9~2;n4KHD-E*{WlM8wjNOK&nEo>asY5AZVJ zFz>VnJ7UOFHmYkDFz@e-AMwl#<%zOmTc(K%sy|@TFU>ZTWtVQ6>Hj@p9HgAlB*)EQ z<396P$=g)MVFuN}ypK0r8!bl{TQ;%Rh9J(Z9E<&upqSjAAVf+kA1xc3cb1c|0*9(w z-^fl$g{%xFub+e(_(JE4VH06c)uLj`gQWOH0)00m{bZUid0>i8vhljIYK?xpfU^)o zpFxV|g0-H$YIY%v+}cT=m=w`1HDyf_*$~lLki$F|CtpCo(~!{vaoFxXnlK!;I97Pv z{E7z~4-c=`S?ux?GOEqz>}W#fu2zMPuvHhIBDaN%}h!YhOR^GWuSon_vN2D;kbqh2dM&0 zDSI_wGCz6j6$0ct^?@D{tji|9`#ATY<$%=n+fVP@Gn|f>Cl;x<874`>=A;Sl(l*%(7ym#cKC-I_Zw_h3Lyv6xzOx*91)p!u9E$7*ra=hu?|`qbe%{rhToV zZM{oGlPwm9lfel(X_5|=8Ggu!^8F98^k}Ha=YtfXQduZw)Df@;^;6m1hS|vra2#eQ zLrZNA9oYc7CL&T88-48?9wF!$NSkl9!$ zP0Eg{8JrN0ALDCsq}qTg_^*a>D-e!B7$24Y^`RoW2!N`|$;nrN2es-B!M3Sx0c5QV zz?b^oA1`StzUlHNaB-%$Lc5IS^e^OPJr0)fEVX$+4A;NZ;;K-2TE58E%@#GV>7tq? z6bniw>%vx`Q>DcAKP&c*|6No*z!YUC^CWiL2$K3r8R|ksN%_QZPcTB0@W113>RWH} z%Sg-kDH=Y^r*9-nr0ixx7zQVya^O03Klebkhl=Hbd1htrJp-%Gh+~)v-{MxEJ$7DAVC-ukCejSy#3sZpRUZ5K&fCfIut>f`~-cnn_!b^5uTDl z&c&;RZs0bcQTMy`ue-Z@o%gX78JA&i9Q9)xJG(+)Wk?_BI(1{S*1GS`O%lR^0iy*< z;V^n|4lIr~28(vz2-*@Q$I(?Bb%)+j2qya4>{!;+l46$Cd}I}U<*6AA z6)pC&umS2p#AwA9rI z=fDuUJG^jKrAjHgIs|b#vl53AGMXUmV^F?luU3==W@V-#dv|L-lJXE0YrIlRxz6j* z90i<#zTdxj?+d*!9ZF$W1@olYnO%R3n0@by6@2)x&S?#i#8gmMM>rtQ*4We}9-ZG} zI+iU0m~JF;pjL}gYdJ^+I6ff+LBtwjiQzP_B7iDmkTp;2qXUS*pn(piT|taEc3%HG zVmuEZnT1Km4Rd0vG99_++*j;=jjlAzNk$o%O-e-&#XwlCN+7&JO4jHhN%t#d^e5e~ z0*S+XE$~_E3yv5@eyn_*SubY7VQ{O6nqfy^5*QM2WL?<=|JrX7gqLjZXxO+V6@>(Y zPPXQ@FUVkcP2R^%y|FO*_nCz%3xc5^enp_g!nr=$5pv{9%VeZ)NA>6o4m}f9d+02< z0lNGpBDC;`b?oQ-$QDhB0~P724OKY+O0_d2?4VTLg+V_h&5flFk7*jH62>s2Bg}Zg z=BO_HEFu*x-9~4@>QS$DG%-;Qc@SKOskRBfIk_p3Xpt_Ydsbd%<}Qv4+EJoRC?%r* z!v#?RDZ(&FYL!W!K7fQ25j3paTZ&B-T2bu85^G1cRVamB^YV?Waw zMIac9LEjIzIGsDHO^A$PGcGnWCsF#?2g0O8o1A9SQd&VI22Tiy8Ij@9csjVYPYNt# zN;n%5Ndxp zDR>1q5l8rCavmcw!P$&B%>1frt;Z~kAA~qBH^aDv-4>_{D0O0<~TRkQO7@_>;2up3HfqxxQI0G*itZI z!zTu%N}ZKN(!XvRHD&J^6oj70Y7UFkI%ehZXWp#NXyLE*20FGm3Vpu0`jhf($mOw< zl#dA2p4dexTDbca4}-j?fPMTgC3`^x1{^kL7~%wK?>4cY4H^#KQrle+l<&QBU9E-J zZ^2B}l2QdpIee;{;AMpT!z+nuu@w&S1j1P}?{%%7i#frq`B<{l*HyXT#FkgTV*Fgn z06>j|#R*od*3Oh+>)sD>C9%7*YpPKTR3fxhH5uj-PrU*+Bv^%~a};zG;>p@LFElguxb+~(V4^V>1LUuStTf6nioBnWRa2bE#6 z;TuU&{SNvYgxO8~GcStG)i4$>5&-=>iWWF=nqov2EIQL++(DnZ&epp_fz0M!s;;*LS1%F}c5dZKZF>EtP4M^&z9HWr>azw zl)Vi$CDt7dSK=(WU+q6fPmP6NHAa+qhk6-v{eEGb-DWJ|ARr;K%5ueSQiYXYQ{gU1 zzD58?wb5ZRM%x_$DWA@p9pQ=Gs9hP?rSJt!Y@@bU8_KxzQE2}RS6 z;^RI^dB)JAL0>!x=Fbv!%3iFz&+(<#P*J(lVl?I{Z(| z^6|$ohubFik&^V|hm}hU6>#ccN(Qxk^}83pam2=?2{hSA$RB%fYLQ%YCT&rN zfz$BcTP@#FgiF`yGv$q2#2liA>#?yjE3?zS_}yx~8jSznkK~>)xGVdaOM{0!*+Q(q zmWOkiP6yH-o{F@E^ZkfeInx||mAfULyz+P76VfCJZ+$qKdkSXhygqK7_XaERwiU97c~FM>C`mkBRG zlU!P$nGo5nYB=A~@K*-xRWSeLe%`$3J0PwIqFZe}9z!<;Fz&ygNli`7=+FCTeK7YL z^vk{-ie$|l*ceRCoBasdGuq*VqFLwpol1|#g82_%j7sns7)Hiv*f>CI1Z|iP=`ka9 zYkD=4(ibp^1^lE?G#Quq?As?c)u>;-)`GZ#nVc6Y?9jSnqE!R|2rgYtrv;-%fq^vr76nHL3DI*v=~0{ z`6g#(dM)C``}q2)dU8CMv86mc9|4Sztwi`|d6E7n53aEmYt`!p9`uv;5KR!)79pzv zw_cS1MqoM34h}lSqnA|ik~hMT>TPdt&&|#49NML07l_6`Y;uzXphpVp>@LvHw0r;C zr;GJ_9RpyzoAK+vyCw~L) zUjc-gZt_|r?|Osv&0|k)lzAgpJkM|L_n?2gy*aoY10Hc_clSG(RZ!Z}^5zatYeIAD zCf5!6f4LmW>*CRy59m zHtignIKk+_H*^4W$o}R&{|w4jeSZhjS`H>LLtWm#huwck7iY2Gc4piTlz+S+ZCD0( z`uKOxU1(6&MJ*#CB;|7kzk3Mrv%y8a4A_d{TLP~IxpE`l!_Q0JTRG4%0txTY(1Vu! zkGo)0-uaz>(m_D0Js!Wk9%oW==@e}T2I6Qs?wRSTV?0lT00xZZ&!0cH4-Wbbhrwb&{qI3mRMOU#6MO#=8ZW;X!q4w7>OwKATBfYM z{ew=_78-EBK`n-cT1ZS#FeD`jtRlbvjc*DPda2!AaE*MtM(vGdfaD`y{FMCZ`QD-pj7qoMaarw`aFgQ&Zh*1icI)myl8iAp8sL(E zm%FPE?V)~)3-hd9DtHo5$(cgWoi}s^JM41!`5rn1K|#aNpm7$!9(jG+HSYhl(7@MM zYu1BV)AECIX!B@$*YnqxE{Hh%JpEZ8q~kSkR-C6(K zKi`O(59qDY=Te6^C7CuG2{?qHvOr4@%X;KkimZsiG3`$S}%Zo!11fS8!C=2&=py9Ag#W%R-6 zPaU9e$6~s~_kyB>LfNO;`T6AG&2rt!8=3zhz^mT=hGjV(lptSbjbiBYh@);3Uh$;& z1H@_~IYJccTyGXAl?HQnmX}}4?mF7pt-HVTp$1Q1P*d~r55wh*wg$D|%Gj7X3UDt2 z#Y)NK6clEQjkf=&UBEuM>T;wiPP_fdE^R8Uu8yS}c)R{f(r|YNx+JYTYL4bRQza1h z@ZY7YH2M1zb*o%vvzf2&cj`OeP_`&}1*7X<){>CHkT7kzynL1I3WR$x61vs83T1Ei zo}S%wMU`PH#JQP3ZgTKcO~yxPb5;Ccv(tarhsXXZY#rPrGW`K&)O@Vx6vnabGiV%{DlrYytpIO_yW*$8P&9P-x-g_K3X0Ch0MU2JbuyRDdyro=eVH&Q#NYu?{32*QkIPd+G*BF-LGQ@7= zcQR|_y_pJ*4xd>!3{1&AlYEzy1X1j1F9sC;neQrt22exjGfQ{)Pld7tnFqiTrc?E`o(UL%cOT5pr5^2{02&hrqlG$hxQvURnZ}fqlq}Gif)K9k z%OlaViWYA%NX+)nLoai;{XrJ8A=p2cq#G++STGW^s#`A9KL;dYb+JQP!>3Py>gyT| z+nu(#Pzq=mm&l5Xiwow~kvtE)YyK-)n<9h&5=dJEj{-&lSdCx{Fx$>q~p6 zVg|h0znL4*p#!#!)3`N*7uNuU6QiS}Mz01-^wTlu0X3B>PU6xAs=tA|!KS!mvu3YKlKh`* z|8K1cKpiD!GEYPNWM(pt=i_!EdfEfB=xonrZ!EF7$;qw-5R*)Z#!If92h(UPA70J_ zb=w)R)n@@)WvXvRQrMFNITgkXtaIEukHNygR(q4x#a0gis>$#Eb7pd7T=MpMGOves z16-ePsKWHGo)`Ibu*#KuPBbcUnj^^m_UJ~CA+m-K5a4T2?}MW5SMEXh^J+fzrSq>Y5}6-X=sW<;BBjpY=@13>SvLc=fW zDVPHtK-cB}ci#UH`qA)b_d3(Ko}T;P9^5)FJWsDP>j~@O24kbo{!NDk9+2v=ed+bp z9<;Gm2g_~Y&wljXcicdyJ@4G^fF^}OFSQBMX@BFr^X;Peqk_AB5m2@*^3KB4G(ZFB zRUp~QP5l3P5@y^RWPe;Cw7 zK!v*{#J;8_48TqT4vUS!XlR< zza3ZFb3j-GYU2t%K39YeD?r_oA@-c#ey(b*s$mSx6sSQV>;e+1ef_EeVm%Oon}b(? zJY4{&g#)}^4MYLSENTd4C9r^xJ$?by3xo67M-mHMr1Hm4pP*si)z#Ii8N8_UFrX!( zavk9Vo{pjw`b^^D;^4FJdi>H4Ay8QQ0g}Mh-Dd}d)zx?b;Pz%hbAf*?wIrXOdI0(` zl(?CZ$6*R6mk<%NsODEz?&h;oLGiGMhf5d6J&@bsf9V6OIR&=w{O~()_rk&h0|Rid z85SU_2C*#g`EuOpMeQ}Yk2)?!6?|X(ciURi$+oDF$|=b4pO-T}7h1|@G1B(plp(*R zu@0Db=AJq}2hRj`gV=-)K4?HD%(e{z#_IqRAZvn*GYAnSt`^4Yfq$2{z4(VTOI!?U zph4t;<)gIb-=BG2CxS!b|L4S+>bQi*FY?p=$7q01gMKg14qn~!2g6%0V!lFD>KF=v z4)}2?d;w{#USABG0O_J4 z@M(@dU%#IBvPv9g$9Dk_nt+^IS{hkwvj3+w01Ky<#{CSZljrr}9cZA@&3DP0;Et&K zgeXA*qR~cxJ3c;s5(^fKZ7Y}>?{&Tw{x3xWjXebZZQlXNUlg)=)vO!Y(12}0V|dZnG7gs zx(0G;UtJLjK%25RxuOIiiT^N`#BWq69&QH>NCYhUVkU)_`~`!X(m+}S64?t#M)yST z*=Oj_PFY79$g0$Z*Fq-eMYi<81fEALz5<|q_H8F5?UOjE&^VO5J(gVZzx^w`1x4pb z<=5cQ|BKC_9xH%&ZRJMoOm!uR|Icx?rkhQettc8C%re4_KNcDKo)3S&xjL{0?3f~L zJm}Ox<9~qj9t36?ONuOuAh^an*Fx#IW#Ygh)Af&jSzVECy}S_$>egj87@;Hs{I z7MtS0KCOd00ld}Z#DtuWCvt$-vJbMH(JZt4EBQpSC#SO>Giz#XSoZ4RevSLmEirMJT@J!ith!ahLB z^5buisk=TuEPD3_kV=%2fC2RCJ%Av9_RHCKNDz)Eh4A7|8q&JC{QCK`@Y5%sKWAfO zW0MY$oCqp}fZ{DwxMeHJ5U|E)WMqVBOlny|b)eP(tS*$v0|!uOSdG-vQ}FaWqgT;B zJv}{w3|h`(4`fXWkYkqVa1@-Zg|qH0G=u{i5ej2j3wHw#~(}$DW6udHfPV zit~1s1Mn7fDrYAhQjka!J%1^wUVp9sf}u8F3X8<4Ehn!g_cs_>oVSw0xy!YnjW^(@Y&mXFz zHgMc%wM!G@M!*c6=<4*&LY=98*2f=6(g^;P!z}r zf}#*)Df?n5dO-U2;pTF;1%d^~JllJ~J?IDS$4WU2!g43_URn_l8m)AD+C2WQ|j&-?&CRnp*wo@+>hJV2Z4289Q81GK`j!q z7?FI{of~H1@4`QzOAO&L>Bg^i=;u90o8}=x8iZi*fovFL!Y)#Ac;i0p*{(&$@&JI{ zxyhm7Sl#ztesJQryq=vWeQS4u#1jT&waO&`UP071sF#^O=&G{)9m;PZEW@DA93ug5 z_5$4DyWA}sL;(7QU_(Fz$?gV;;Tv%uA>eQw_20jsfbQb^uP+~Oh}DCg1cA{G?ZC}9 z0GN(nBDO~a#y3DmCc%m2)YQ6{QxKi0U|$zAra(FR zpR+RvcK~8cUn%Qbrzydb=H`1_RG?!hqf(OC?x{)hOKOlvFe!CcH!lx8^ZfSNTH=@j zAWBe30mXyh?W};~5j$TEE_!zbti247B!uMMLS>~AqO-B&^BO&9P&^AR`&OWz`E#rJRs8-!4i`I_5?!V00(e;d)pK^ zM2Ioiaaq}64tTE2DrvtXHGG43asN&Dygb>x0Pa^BSf#BTPa0sz1Iu8GH$UIqL_uz` z6>Qz}%Rf8W?sEnp=R{w4c2kx%FO~udOi(1HE^%QAti1xQc@ zK+n3?a9{+Tmc6%P_oI#&^iez~CkG1r*OOGZ>EUSqur3Jg{rd7# zEO=rE1qY|0!xQBFNdO@A8~kS?p}JX4yx%Viatr*A+6y2D zJnOjit7-z}+(W2y!u$6^&^ZFu1E8-(o@zi*JLZ3T=HK9R_7VW#V4>H*XBXM78A@VS z`2gr~J3BiC6%~=Cr7YYZw;8~J$p9DW!2kAYaMMNOQyZjnhZ0$v-=??jP~HRT!Z9yz z_1cd}!I(!S5;+jeg`Kr-iNmA=kV(Tl9od4TZ|y-S90=v(reM@6I5MCmr||9dF-R$D zze0f|z{d_IXJ_R=j0fW8>xI0(6adHsSHTv5H4_8Df1d$-5li(G0RoEQZ5pC^+A}}^ zcLIQ_iMcs>iM%bSTP|>L*XR9`66f(Ea4*m^HvyS6z6GiVlu&tM=jTsKwc?BS&26y& zRRN8XAW*%f#QV>Q$>mf!z=%M-`w-ZnTtwFj>2a>HM4q*cO+;5$*JOnrfEXLm@Ilyu zwPAS#tvX1nZpu%;fEU^D9TI_mIVM|;_BG4O|{ zXEXCE?0~c}MQ@^KV&bnE{@3ZNyRa6C_?BNH5}^8x@88o*q-l6k?YC^vK(R~%DA$*& z=Ui4b*8#v2+(B!1&Q`sPdx``TOG~OC-2$Gfh|v~E%%=JKCRSE7KoAQy^H4kge;-in zAan<1Kg;~ktw<1juLG(;fJzCnkE*B5aYo!*Wm{g$c@w~N_K^qC4L(;%Pi$Um6;x}x$lI`93j|661N`rgX0 zhndAQ(UW|lk%a1WGLd%piPHPt)nC`x(!*Q)E@H3OmQ!PPvj;vcU#g2f7By+wPMb$EO%H#f^?2A-SuSF!|RL(E;J9ONN#EZY?vCesoiibyh z(eK}eR((?Wz71-g@b4CZzkTMu{qnm#{X2hnG_Y$4rb`pKQCd{@kq4u=iA6lzX)w;? zV~?*f?s9+hI$l9{MJi;k00e}r13*K38KThEH zHyAe_kZCEqZNiaBeV1aytZux{*W|?s3+p`6N)_=p)bUz2l)-@LfDC2pq>N1X8Ijeq z_NDfaa8AsF*5{Q6Q7GYOg!rmWmE(HkX#CV;{^x?cBL@#e(vRY)HOAnYPqTWBPFdJE zIGjlTKOoN6e$oC*Ru899o}13xWg?&iW;Y`N(>cx9q-BLGBf0}V7&55iYP{H4i{ug) zdv7Li@M?E=+s4s*@;zUyicUBdTk3;G&o~)541%NDV9xA^ACx8WKBKuy6Wh<#$oEg{ zyIfw7Wc44l}*uG;eS{}32h&;|=+z-6?wd&BEY)WSRdg)iC0fkH;b z^}aPsga8~$)I%ioDL{$-OQ^u#%d}6EN|&65+m<}~du+Iz@I@E1GWZKZiPJ`kN-E+I z5{R!PIffs7!WTX|u-+Hix0-(cGDxbyZv zWjtflxqnQCJ(S?rJw>PDR5OmYPqv)Ob9>w7yp!1hV3a$775{5(Hi~6;{QuxdNUzPt-zL;bL;U$hvxS z58s!z=+ZdnrW4x1T^QaTafb6ymhfwtd&yR#tNqQAL!Pfa?njf2Y!(yW6L24bvBWy| zi%PF_@`Ci5r}<{p&`LG0^HS~U#fFK0THhE2Oba#qG28Eni7&W=1fr252PX&RYWE1? zYvsL9-v4@)Ei(OsK2)?<=qex>1PT8w{&xPT___yarF#Fi@dE$VD=YwmfAzN9vl{dNdzkIsm&Ewf?Qy;#WvQrGr(eg1q`9Iv zt4WG2ViL-D8=p`D;WsWfk5}YGr~0w1vPVq(e!2)bd>dR2srir;afabS}pwG56JbdEdQ=kR+^Hw7Q!su?S*sRGY^O23H~spI~wLA zjnswEEe)_6PmT&<-M>YD;CRm0w_WyWwa9N> zl`<={!rtb2-=CuMvT^?)Ph&UyST#J{yLTO;I}Zqt!V!Tly=hzps4eEb0{L zmGF!_kHxQ#<~?bgO*E7v6Ovwxgn14e;H|*M)smRVE#y1AK=f{Vlf$Bf@O#z}TDMb0m)&&S2O zIXsgg$I(Ig+~>^H^Gs*R$A;ojmYYq6g5wSLoiV?=M*%z3_~91gX+As4*K~iMX-s?( zjWj>j?^A!A*!;{(h?Ux(GroFd#L1w+VapgqTgup%SjtS!L*KK8bU2tp2tu?X9^#iE zUbebpd`9%%9}_Mh(-FC53*&|Jiuwt0{oT0jt+a3pIpCATLcqIuq28;Y%Cth4dq(sS z)Wx~ekBh$j=c;nM#=eO!wO@l_zUv`!0wNyEjn=cQafQF(J;ZTXFE2$-xVUif_M{W1 zL{DuBeFKkH)u)Q1p2)3#NZ+rHpAs^|??LzbWq8I*yv6yte)lEb{rxNKzn^G}U58#A zg;wC69GKaR3%!?o9}}sNH&&IrJX(yMBW$g(LQVDQ)78b{!{#~%Pf7QaSaJ&>c@9Eh zXLfEHIeE15IpaMG8CUk-#;YPr{ihvXVVc1*!sI*OdIqFuosA0GOM>T|iSvZ?00X5p zYV+9p^70bEY?Eum;a#^_SCH~CkQaV6g zI|U~Jv7TKZ$d91XQ?&T3*1S9%W1DRAqTE08wHd0#$@G3hQ`pVuuJ`%;JpWQ#PC=lw zxr5D%msZ^)-XpI@?~@ByKq--i?FYJikn=zL{z@AxLgBpv_lEDoqE z(#Kf;k(Fu?q)=YX37nhWRY3?AQD zqK0$Y7W0LH;2Z!!d1}@FV>ac^b!xtGzwf~il3&!8_;Eej4R6!bX-oIWAqUsZu}tiX zj1f(~?HC`^tnn+)n$qVZZiam{Y6M}pr!N>x=4Fj2N-L^!3UawKMf>Xa>K+f0GISdS zA|%EYpA=}9&gQ2UcmfA6pJ`OfX8Z+7b3f1Ddiz4ZGkoIt;7&c-2uLv~hZC?kbQ zoh@CScaDhl2}df?SeK{27ngN*ea7MUJ}Q^=qZS64;I{B@YfT-0G3?)ciVD5=SEOO= z)g45TOhAL!t6lf1)-~(iHoq5s=QJ!MPp_k{eF3&`48`Q2$O>S%V%whrn?B2V2`Ndu zxRHeeSSX(cQ$6F>69a<$h9@;&ct49AYds*QZm$}@%0hOdfzy0 z;Vhq=9;5OZ&LZffq)2`UyKUn1o6f7x-R#R}vZ!19*j<(tvS7YHY)TC$Mb`9D`J846 zuN9uPF(`RtLmx)&Yk-*q9 zp0cS==@csJ(r;NmEzeQTee)2v_xBMmYyZoW;R&kR+w5KcPiTI|kyctNv`J_BfyAQ9 zNBVKpoM?=@P0kemYohpXe;<=&pUTs;UX(F8Q`8n4Y7Yc9k+Gk-caoa5$N9GBT9)U{ zVJ8#9`=}p=pPW6@AYeyhX2Uz3(BwpNJfZltr+}lz9Whb(ru6hs80(XV`{ewz9A!W7 zteP|w^m#l4q27jzq7g14z$;xK0{L>jm+Q)dgqJ+|_j%YTr%7Gf$4i!&u(>o&C$nmh zXPr5Z|Mheon!1xAc{P|H>>juF?Q0@Jv)pmutsXRBZspzUzSAqmt&KCIzG4hkDt*!E z7Cj?&wg1Yo#sp&`#VI_C-w46!y>`@sn>_e(+{&oOwo&gIuJh+^3Y(s}i-JDdap!S7 zvl>^MANsGo`=$P-5!9cqcJ?ayd27Q}mfi7_K|9hR6BC(&n$*)l0rD?xG^88O>Jx1a z%oZ#>2$*-sz~zcN9+%rY{}4WHYt5=yCYwCrXx^1h&9j$5*$gI}fJ_#WgbC|)9-3Gt zw932Y?k<;l80USS_)zD;^B6wM(8qXih4zH98vV{p&fi2K^kbry1Zzg2Ml}KNlX!d& z^WF%$)4Ohses7?azzP8r7}u#nZ4tXA;kT*ury49fRnKdivFNF0*XW(ls)_f{S7@gj z+|kSYSEpm%h$fe@8|R?gSidp_cb=@d;8MBSRORh5wu zSH>(hBo0HJwIg*v0+gWI57)XNLA8p~Oka}P=ewAF?s2Seq`a~W zs4$T{R}u~-Ah}P;X3)Pn=8%GQ<@M`y1<9T+eEaT(HuSPD7OtV#9 zrVqdOH@OaBA5&1UA0FR7C_-{;bNk1No%(0J% z-i(fj+)#y#)M(5}wqr9h3xhNsk-(}3)9r^-l^pS&#E#lH@GcTWb0CA1-u9*vDNz-5 zQ+>_*kSB8dqrt+ON1)6dEzMwhi(ha_tvt%j{lN67cgJ8tS~;^%&5{m>VzGrno7(JV zVXL876C@*YhVS1!RqNl_c~?H3-l6;lxPn}ZUeEv^B(H6MLd-H|BhIF|06W>tq~bvG zb9qVC%Ev!vlIuNOTuA5Zal+Z#?IjA=vZw_5i%Cdd9vD86CCCFcv9QY5X$ zGh_SG96*rd%5xzM4u;>$tFA{GpEfKFS=5UxmOz`bN!y{!r!^&lGyQd2#v{FN`l;5% zSTbIZ*k=gc>ZIYGAi41f!$c^bE^2iJV&6PS<><4)(TWq~F8cq7`m3lmxaR#IE*?C% zyM|)H-QBggYoWLmFRsOlySuvGy%w{f)EK|`et15PUl(P(!ddZ)i z4TN)um)F-HA^_3DM&45tdukFwlg>rvd zoCj1}Tp8UnOJ;pqQjcf&zT$x=rndQ4)K`7jB*k+l;^(*Z`iLtm+Jy0a&`%UBSd0+U zcpfGC1y0i{8Wj}~dXORrI|@IMGT3x-4bIgy+DySEfE=*Y*_C2yAHHzl9t`9`COI<$ zQs&xDF%P*beKKBKgWDU9wsL%-U08D_nMjN+b{o45f~KG3EvFJ+^O$2Pwf$N&J^dK@ z{Ox75RU_)?uTJ}+nk12s?F zogdzaY7drk#QRuti|WvV$(2xH#BqLa|B(9{H#YKVewG~a;hFe@WjLO|-IEb>m3WjX z6edfT6~xTZU^x#{*?QB0UyyUh1?iXmHwk^KoZ|B4_8|`r9Fq}NFPYeLJM0WuzQI)~ z`!dZ}qzj54()4;bhq8(Y1Xz(!iHlSJN;Sh}w0yoTNagegEt!N$NwG>n>RBj2Qsk%J zKDgmJ--qTIyYOqcgG>($S^SwE4|EUTkIkjFdy`7e0;-wJ21s<#zAw0_wYU>k&~p`N z6I=iMui-6{?AW*pPNZZd=Rcj?klb$s0?70UL|f4Pc=+eJ!9KPx22o6W{2qHA)T?dO zGOjZ=Yx=Z@%jB)%$0e2ZMx8dBL^BJ&EiXuxb3zAzS@q@WyVI1O?lg@`tcKx}pg|Oo z*lLK+%^vFO8-q!pvv05a=*J9$Nn?mk<(^YvLjB8l`mdFfW?}${iaRDPbgc#HV27y& z?3^RC)ZRxJ@M!+#S!&-$gvP-P<#m377R3*A(QplvRo~&EjlpWR*By@LjhYD_QK_|i zL5s<7;RryI3Stxk@aYa;UQ&I27%!np^;xq`ZTm`f;?NP`{GfFHI^|z%Hz`Iqq(m9* ztO1F+x7qy1%UwZb$SKaxdYgBV{6;-HL1;y4h*g{`{~M;-K>li^vItpV;1Ztgy)nG@ zFH}*?bAXMv);AzcM*@aOb5v}HPzD>{M@M9OOQoIoy#Sm{OLco|{9b?=&39mLDZ055 z*Xe~>kz8yDL|7$4-TmUY#J_f+c*3A^wKgqan;{%nMIt5#4W%!1PnHPoFeR!wC>f zQe0H@lM!im?YEshNiw*v=A;c%2 zV9wBlfa9p->t}f(DFd^c&*xO{k?4GoJ_isM>d6Npn*U!N4!L8p5SuKFiWaJrsu01T zIBOZjg?J{Z)-*FGcD_2R$soik|4ci~K=s%hSs?7|zhndgVn&Pu=Ssttth)?%RYur7 z@n1A%e?benYE-3P)T1Y^M+W9G3X$U2I#$WxFhRrs;G`=3Uzb^;jd3QeH>!4BT1C{d z#OMtE5NG0>BS*2OatyJ!C}`O9_iVw}+p!v_Wh-X76c(YV?=idQ-lTig9rjjZtzJr* ziy~(00+l3|rY-}8VCg!m(jV>^NPB>;}NKXJ0vwxAOJaskx zAV5EHH7*+O`Oc#QP9)p+^K@x_W_63Z;ByMS4Y zP-uu%rns5>%jfHcb1YfNa>)NRsNd=WQCGcyJvt$scBrPgu16tb;Cw6m^W`6%_d=&_ z!={_=(2esS7|`emi7^>Ng;x`m+HC===h{D!q6+JZp_Ak_E5Xr8p%{G_k~(ZdtkI4? z)F`T$B!?QCoUajG(s-&vz$8pMz)z*NHkPMJZH#iHCn*`?*)>czSZ^kK)kq^DM{$uANW->nS1O(3lsrDK(f-QrTa@ipj&md$o0i zgUj0fo8|1|D5NP@dPxI}&H$%4u^-ew21bFJhWHSoPGBaWW-~=nAw|%03O+3h!Dd$u_ zWUl&Et^wiy6%ebz1)BsTi9NS_)Y+b3{V{Y!${_Q;3~%-u^hI}BcjLZ(Z^;UDMSSyJ zZ*1Z;tHZwGWteAk`-zGYn-orY^o=##oP{Vce1gaw3*DpcYNlhU*&S0nXr0HP$nAhA zmF*2*PE!_yNKm$4_6Z`$_b2X)zzzS=xoli5=_5w9Ytx!I{J#{rQ|r@k-oba$+oL=@ zZ!YA{{FTGyu77RK6Y`~s2Fbi{Pjp9o^}f!N@e}uM%aYvr_YH$OQDAs0PIr!NZ6+kob=Hw_!+?FS*3NQ3aFKf5d!s zIH;UUUrHgBvXv(;!M6qU$I+vx1mOQ<3NOhnxaU7aqM%>kh5}0Rnrj!jovI@ASPHj^ z1r#?=>OKckjjOt>jLLugR%tb{;#Rm%8j~@nGoGVjIkAG;*wn06MvEQk1{+}7zk4E! zB~FAncZC1dXuuJZwYed2UAdC{pSIjz4pb1$V1BLxy`{tEh@X|Yzv2D=PQ-=9nhxn% z&AgW>^gtpB?=~!edu7yR(lmNVCu;s{vV_CtiR~hTnydzp()gZO~&q|Ep5TUzB$*dMh#svW?!7NKoNrL9c3 z6Gv^>>rp$L`UOx+lhSo!iaN7=4(H0f{YTWexFNuDSPr1I8al)Lm?-}@hVCU9wyc*5pEU(@5hNa3HJAKN==zJCHz_eE{+lQ#bMrXrW zla)`S4YJQCovcUhj|c_vVDA! z-4vPjqEPpU^yoPnG53f7NOz^VB6-?jD1j?*DQg#A#kilgw~)#CR}65cPS8fWjRRKw zan9qw5ilElCbj`kj#3444D++B^Ru7&-`117+*JvWN;m|dnfDX+RNq_jGo z)rcD45>77hH+0&j3K2&0^RcxP7czjHhCH54BospwKR*x%YFKQ43sle!;zIn|6sS~w zR2V&@16}VMfO|qLC0?W}DJPu^`-M)sAYvS6#|ADdX=WZn3f?PR8lF}5*Q}%P5H-Z^ zNiE)5JaruFAPSo>9kCx^%SiiEmVqW=jFnFjth<}pud#c|4rDOLk0U~t3#c6OX6p}X(IuF^*auho};Ci_W1voBm{%(}Ca@^4qj%R`-&g0@!tpEJa1?qqF zr`>GdHyNWDQOG5k{`KF8%;vq1P1xO*JPDWL)%YGf`fiKywJ6)*K@&7cWaQ7c`8btT z+5Qg2r+33BXvwz3Fz@_F<>S*=8q?k4tTnHPU6i)EKf?P=ulL2ah<(JvUGG#QJ~7Ed zaVnfM^F(Hnzr>6Qh#3lg(xALPE&Wd|=uDA%&2{%MH4+x=FgkaXQYRoNzT3X0rx^`m1m(PV? z17|>D+Kve}5TKh;SR`~DX2b~JKe4UK!8H6zlhzUWiu4Y!wg%!Dp_dia4X{a0mV#z(u^IB;vw%v z!R>70mpSk0={YIo2LE0Oz8)dx5pU8RwEo!yn$*c>mByvQ9H_IH$~JWNloa=cqLFY% z3204M0sYJ^Bu9ZMgaN@ebL~(iZ3X|v4;nB@VEC#}!Gvm#r)KiQF}G?^JB%~gwKQ5S zAvcvS+9qN?@Q1!om=jta2XquRGjgcTPfln&^PGNi00vL=XkG<)p%}kHR1Utq#dHpd zVdN<>65?zzLiB~Q`PBCSZnG0s=o-G1*70Fic@tq%@W<INBNq~UV4>rIj)W-kbN@22o`f1x@p<6^UV zw@uBoHSRC?jL&Y5G9` zzr36E4}%j@W5)}r=1T9RygUj*%E1^WJrD=y%)&;r(ztb%YJiwrgd(Th4={XXzqL4I z#54nzg62sd3J11e(XiNNCIX%U&{xYfYm}cP5rXttf@#i`E95ty%20wv1s0M_Grht``W5o@S zLMlZ;3u=~_xC0=!>-P?5R@Uty!^I`&C!ivuLI+^$Ot?k;<_W{hO~j`Yg~OnXhOmcH zu@6Uz0Y|Xgu&PPJI>5=DLh&-79V1($qnK&c+sE=tgZ6U$fB@FZLTd^BzNp+bLZ0aPM zCE^DuZ70XZjyF1Q(#+QS(_d?MHvX78B~jGY6APC!G)zW>L#D8VJ}*2k3Ik24hhE#| zHG&p^l#||(<&&{m>Em`t; zuImd36}kRJWK-jWq&#BBvjMRr$d0sJ0?|{?e$)@*k|Bm8;EjA7Wcc61WI+4v-xy=R zvb?`szJ*=Vaq0=^1%KQ)B>3Ik6c!vy->i_AO8LLL;HlL$c$`hWJ(@Un-n!X`?;rZzpwXLYG+Mn z^$Z`cd$2ZdcRi4?lV0RX(?l&NESFobRZr^%{7HsKY}=4SYMfm*V}S)rCaIwKDyxK2 zV@lZ;0?$a zq=VPWFA4f-srW(S>~hvZz>IX{EP0^_!Ovt&Q*w!j*~mIjYwJfUC87_~QJ>n7OppBx z*JpfJ&fcf&WAotOSe;a%;j>6ps6pt3fT1r-HWG5AwzdmZ1=ht&?Y*clYH}KK)}VTe z--H12Bv>Y$8oq(t+GgW6!+Luy{R!RnjcqBjm1c|O`&-}G1x#DQ>g3P&?zE@4@%db* zJ$`?H&|j?8()g!BzLXLca#@=-RMAKU&staU2?RApWj3MGnJ@AAxd4pCLnQuKDp+NJJ%1_WFP642 zc?ADgC~Bi-|^*JT#}fP8wcHmM!)Ck$Q}`T>bc3^Hht zq|c8dl8+0c7u=plmmEtgz750M|98?>3gxMlHlJX+?}$ENVfFb1j2nBRG}1>+Q=Y!b zBB52FYE{HMkO}SYCSv7CDET!iHURh|6^8d$oJ^66@z+gL3q{es z;U5q*RM~I+tAmzJ+D|naEXKdA{MgL=oJaS*M^9rGjDH*TbnmyT8^jfU+Vpo2dT$`R zZNsZ?+Ub8(_J{AjVt(CT7k=^tQFK3idOyHxHVO5AotJ(?eBu@Z3>Ac4m3qE6)K~hQ zf~O3n!-=_*s<6qdC&a=l7X-)m`LG^Wr%dGeUc>s>JHyINe=w(vDxv;YlJgYI2XjX$#pZj+NxU6e?VB z3pPG1s*vC;974?_-1YlGuxJz)F8=q@TIhBb0)?nV@C;CtMusxKDX)|$)cxlPU!x|9 z&<=EJdtVYwVsUY0#pxMdV6S%}q6CU6efd@D2F(Esu~IQ0-gz+?JW_fEHqHR;e^1#j zP?zdZ56z=%h04?G3#BKR$FVw0843DoXui7RDIbJQxG5D)B919jq^i5?BfSbKQ)m&P zOy!KKTsw;-sy}Mssc86LI%Gh{9h^Zo9CM*pt(IL!^wN=8L4wuQUn+H{ro}W7 z%>&0vQUGRYF-U9sNO;xZs+6$WW~t}rz_s7=%Q)@dmX~vO#I{~p*dluuo!?@wffI-)BfCT%#`#4i1s;J!~Nc(R~IJWyLhb zlb!^9{DEZ66KQ(iu2g@wOLyMwDf>syUq1LTuYMMac0%-ju-f)UH@@`0emy)ZnMPA_ za4~#m%T3z5_{cI^S+KO14g0tZ4pRH)*>ewh>aJ1*9}gv7@pqE}uZTfO(015(H*m7O z`}5FcoYLIYCK-`JeHA%A5nXSB|5QVch{vPk8Ei`%_jX(dqiPJOXpXdCn%S&Dh(ZYp zE2m-rwQ%~P@b8^Qn1v(B$Y%KZxePXq;O~d5w0g{#a0Act=rs^1BYU4b3%Oxfhn>Pgt%G4}O z#!3Ah#2t`81Xne?+)foNfz(#l2wMmXhtfdf*F+f^oSMWd!9f$vAyZVZwe+OGV4cA) zp+@NyTZJYVnCj@3lzu+h{1$@g*511#C1}ug@fk z$!`{(E34~ybD4G9_coEkH8X;_7Qa2m z6+KDLZDmnChpU9ztkh~(tCUkmhL_nMD1X6D49AU3rLLD*TG`1eIn!0pIk@?SS%m%4 zp+3oc&^R72N*%^4M76=A!u=5;(?}G0vhCiM@ zu4?GZ6MC-5e6#2K*^{mC^aZn=E;1Z$=IaJ?^eGJaq_{E3M91`9(lB9D#Dy>tQYrg_ zHiPX0#c|S$L0~>B?NgE%mFC}r;ph>xaDg6;<7*Q2*pY*~F0c{!m{Pri^U!e$#r!A+ z(yB;f&JwD+uUkv2Bvfh=1EH;D!ulOyh;8AMBeuIqv!{_ai6Z@q{e?*><#XBEAph4o zxQ4o$sP$uL^-p#3snP>)w;4u=)x{BE$;BC!=>Tm&;+C1cq0^)t_uuBF9V#)taL<<# z;e!|SYyS@(1=~1iIhgev5w2>lOTAx*xO%hOC79r$s{fspz&s5@6`=-UyQ>rws1@wO zR8~1>XFe;nU)UBRHsh?Y$x$u~22;~$r=+KB1V3dqf;5hter^bERVEUX{Jl*%3~uX< zAsQP6T#zsit~rv65=6z|mZ5B*0?L5xYp3VZ`N-B4?4xn8)OBB*YpH+9sF|97LEB@5 zi2%x)dBl;$(KxoH#Vn0#)En;St zR}wqojxV=7a-OeFdkR#7Ggm*k4D-Zz86<5Rln{AD)y%-VmgDRMmbPWJ#4=391ksA! zRwk49Uv^wL-!x_88Fq%oGM{cyF+KgSi9-z0rJSMQL3GA)BlY-C~H~ssp z{Ld{89;UPfc@MoeeKRsHx|Myd_;y+RpuM#zmK&`K2Ws^b3x9jYawaD^bDBrTW4i#Y zUE9j?rMFXHcE3gt@g>a+45p9YAfHYqMJVYDZn;NIhsK;ExjIS)U*6Eqp zi)w9#uSi%3MCp=7ir`3~9yz3g1<1-kfoO&ZXMqvmI59~0Qnlf5#^Qrte~RYean(^F zK8u&=dk~yK4R2Ic;!%zhe^-zpuUCY-ek*`%L4?dk;$y8lPoj6f!Fz{EE8M%6qSJO> zw@pnm?B6^%TOfxAsz8RHbLZRD zZqLh9H&RaPQ-LslTJOglcSGMc**o;>8H>g0K$rR>i$6m5{TrEomTVRgOY@Q`B&)gY z^;Xu@Tt)sbcbXXpD!$;4UQQl=lkg#>#e()uOqg?t{StvqbpgqoF0eFBA`o%$wDdEx zollDJc-!4Y$hpxJ?ioUx!o&*7F(yiBn_%AN*jL;Y8IjQJH^`*|;@V{M8RZXr(aq zCr?hgV3Bn|qlR@J1yZuh<2L$5p4`NFH4RDxL}_(LN?7FB4Qx-Jc8@u?nM_ApBvLR4 zQlSUkc+yKwvZ3G?;dA3?HPCc)UL-(j??(>KPRztwu-;pM%T@-lCUe>r;f`nc=P|!%07{PIrZ7W$(I>P zbwTNj4TlB6kEtq#$M^Dw2kbi!79hkfZ!T~DyUGmDC04!!vk}IU?~Bcgf%GF)zR**o z8B_w*rju|c-I8=MGOavx)xXfF%C~Q*Cc{a7b$Kg`lZZcy1zfGU@9K*%#5V|wjX)L1 zC7O2kjCl=wSDUTTs#H>96*H6Kyt^V5vq`Q~D-YQtweGFaq;4s~ z3T)zmh5tY0U{mjuYzxO_)2x zzS)KiP^TK{*QHK8y*c=V8NHFc&aZ_rQF|B)?d%F}c7 zN%A*>BEFZzS9&SJVCgZWgg$G@@a$%T{c;sM;7I2s6N+T5ex^}<2RrRhuuDv}-Aw!5 zbJQ?nH_S!1OYh)u^l~|z-STQy;Hgd}$y^pF%3^QplD32i-|Lj0ZI` z=VSIW_8cgsssMJyZ*uY{20+p=fLa*ft_a=^%|1dHQdA6&ab`1V)17Gx$j86hJI0ZE zTx;E?a<>}TcI{(zEsYDGp|EHcbcLbL`x=J!6?N7+-ANH88z{g~ssM!2J#?JL#)Qhj zL6-xXQX&E=c3z+^1TbRj;d}lau_Q-7+!J65_&5(;?j;P)A)BtM{$z+8s`qA<%n;Gx zPWy2UBaSz%yX_6r)P+neMw|ILLLci!z zc6p(l-+bo%M!57VFfWOk;Ih{N3EaH9f~)64t)e$O9E0H?{1hd4VP*J!#TD6)==1MB zHXiMmy`|yJG>WOYuwR+zFiz<2YCA+8dL3YPk)$PQ#*NAWVvc-Ck_=eEi2kvK`NpcE z=uuV-sWkH&Y2vh*QvOUGzK(A`lGy8S9xha6oJN2CH=CGQ@<3|Az@WYbqpe<-Ow#ia zNH--}eZ zYo{}+mARf66CsRyiBk)I{|eG3kK7{kJ^NW3yoZQuQPr@%qZ{?P&A^sleV_N9^({5qO2*YHQskJ?o?~mPNMN ziu?YL{?^VpVuSQ&>UeL5b?Hf6uSH6g(mX1__bW4x@7wdXozMSJqg7pfbIugO(;hHq zUdCPDFm$))Fv}=I7C4&n2rk$d@e1SU-E9`^kcDPzz6=<%77c_1gOLmf{;3X@PmmmU zAgFgfi2V7G#fXrI!*9otwP{=cfU>Pjj_93wx5J>AsI5oWJ+d#4CSImnj@k#3;d~)A z`{au?^^&Y2KIM1=L0C)73}u)V-{A~pf<#~vJJa(WCI#gNY8n|Z0UP>pF1QDT6^VgR4ZLi{UV zWw~jEp;Ho)Yn`I+uY1vS7sBSA;NAPEmQt=?DZ5S)407!hrj3*gsZ6+?uDjv=T^JQ^ zQ|n=L0z#e&HYAFw#&*4b5EL}Q+0kj|ic9=_=4@GPq?$4!aW`ITtmHw%2(fXVb^j20 zorR@Vr^lxO2YV^n~*mHhd{ z6sy>F=ix>o`_M0wh3c6x6~YOR?ibRY7YKXFCC4vB+5a5Q(DRH|Er3YCU{zIvhTnVn z0DMbo%XGqAds?%U7M+$=r4nLtcCcp{E5TkKr)GLWSmuli52&tYD`O+%4o?Nz6o^pR zRe~dXJr{0p?&uLT$Ef4Lmivi7>=m}c0Kc{&mPN+Zn0=eUiDP^wSi;t~Yh(@YL$fEW1jTg~I8?Ithz`=9aEsLsJ;*QNiW(vm6iCp`{pJur%(m5_a5%7%zQ{AThi^ zewK4`&Odle1uOM@J>-Z{RmlTM)>6sk*R7)L+1S+7n(7YeWWQ^?u`&78S`{5lBb^&c z;p|W)Rl#2=Zz^bB5Y&TZTu+iECTnZWT%t6c^oYIa9vJWQy8Y@vcRP3=4ng8GntJV6n89P8LLOG>5kl&Yd+8~3(F1qdn1fuCb* zk)+^_L~7C9#Vq)Nkt_>*;U)Aw7^}{KGf_H3Kj_so@ItIa;4>K?4%!LJ&aWN8)^4#a zWW*2s{ir*!RWE36WhG%<Th2R;&v&Z5Q5^k@*CVr>Ki9$^6`SJ|I3J^UBJ!=e{U2wxmp?uH z_qMOJgplWA?T6NUgbpEaRiFEY9JsCCAOr!QN1!c}(PJOpCmun;{r9(*!lXwCc{Lmu zXoBDB{lLs^zh=xq_|_KV=Iq=D`7#7fNmDf7ebF@x!AFn#c=pNs!^4n@##+jgj^rBcX~QW9OvBduTwZX- zcizQYP-yM>;(x+e4iN{duj$*2SXS6RBGAH~#t0t9w@*#wp(HWQmG6bHN8&qP~ zsr4r7ywQpPoLb2Mwop@>h>B#BrXda-DI&<*@1>l}C?EWzovrc<2_Bxy&@SU3YA=@f zq<`Ef71fWebM%c}y`C4C$l~ALQ~e%ftlclE*d!%Gxe|MWZzS(yDTZP%*$)>6qP5yM zt5@aP%Ra->!Tp1HD;+QR@3!hS2DGdtC(#}LUgYI^r z|Ewyu)gItiCzXub;2(}2cvruF?K3&fvRTM1uO`>|cGhy7EI5((+d3)^Gmm-S))Lj^-86QlqM%S>A6|_%1*WgG*lm&g$G1~**MA7WO z26ps(pc+08_Vk@MfrVs}Pk5n4skeis+zQp8zg9Ry;#@3nr^W~E>dqt1=mYrm(*LpM z$*D_iEHbpW-~Wnb>*Eg98mU#kw?B%^cY>uy>@~yab;K|+F%j!Oz=YGox!`{gu*=6Q zv;R?@{zLfu2MZ%6A#rka{O!?wL-HTN?D{{#-G9J~&ifVH*L#N#E(nYY&Hv)!txI^Z zZsYqdLMLRf$TS*~w^Y3LlD$IRJY`P#9I(G0IK0zB_!ee-S@~{;gb>!2(cyoHt55%d z!p2*=@0i>@JX#9-|KI5*5&Np3nqNq52kqI^Om8QvW>SusBrX>Kh`94ogzcQF`cw{D zBH^xNsnKSd0?yGz~QRrf2X4O+^L4M$*6%SSXV%?MpNre2``L zb*7*Ws~+!j($OM}v@~bO3%`Cg^HP?L+L2D>*1887)vujPIll`9|?p- zoM2cVxl||dZ+bghy|@F|vfw>9M*t9-jb>;!VLXbn%30g)s@uX*(9%r(`|CR>pVaKz z;9&m#-ZAeNeD{>kv(q!CHnLLru13ea0ZAl<3dHg$!TiqBgOJZ3ew#Yj`^T z5!eRQ5~|}q4*qWO`!Gm9z#`sUDkA*pj0Oj-o;)Cgh1@@M*OfXb85yya+7Z?Ki5{TaC%?^t4M-{`0NR>Dt7JrF06r6Mr>&a~qiZK)QOT1=PFvKf9Jaa~`QJG%16>S6eP^Zd&>K=RhbxQOB-wI>`cFx8XqO|5&dr50}ZV zkJjYSJIfz{UUthHf}S*I8hF6d@VTK6FgRtY@rRvh;Xs3yKUdXM4{&NN`zdF~^Ym}S zZZSIP2OWvS4dd0R#T>$6=5>Z>A$m+a`dglh?2dR%_G3IdCK)l^#ZvfTEHL9CZXmWZ z`Bj|9jQC7|04?4pI4>7^V&mJ)@RA=wD?(>p56iyn^?s$&VzaAG8TrT-x*a2XRrogf zAzl-|XIb(j9@Tr;GI2n@1JmLt2VR`^eN6X1n)G!Sj}$&nexAOQ&9HsyMR+;YI)2i8 zDY!!3iCq&Eqc&b8yor~9rr=n?jiXev(ci=}BmWmuPsok}Lm7||+RNX_boBDxX0%B! zxy~U2WufEZ?mTo?V33py3GpR(@|1y6+G8_G^DA>rfzARuST+7A7lO^DVpLqH5)Zs6?kAGe8w_o`Ypc84ZbPtPv4CH7XT3}|;T)i3I`vz@Ol z6Cef4u9IX3%8{Dm*ObVV#Q~^KN-uHLxBFtV? zdQfX7oZk(1&p6}X-<_W8Ch6p=v8to9&oSgjvI$O8)7lou`VmvmybBfE_Tn=g7)Em6XBgAq;D4z$O zmTB&+`}PyngUM1^`2KzUDW5QRL%?5T@sBd-1f-asc1lk3xW%fb{wq|71{<1*S_t-= zfoY>TS4M+>XV?tkH)@cie-kWr)F3epC4UE2VR$Q4ctphWHQeC*lktPh^ujP*wffL81;(#0%~@zkA1C_PpWzg*-q&|Hk`kmTSHm zVvP5c55d`=>#?_YrRD#mom-;8_-5a)9}$P}4ZYtuH+*gsArQGw5KkwuT>3~d?{jtm zzuQ#5k>q|n!|&Uk;g9F%%;WplPcG$rdTQMeze4q7h&)K9KOTloc0FI?_X{5j!tUC= z$@vi2gdikaxc_%;|1|g44pklIY8bX2{JOk>yJ<-BExNPZ{skN%qrg)OFU==!g;I~f zU*Rpbc3elQk`MI@U?w!Z^pvLdN&=}A{~7k`&U^=oUeWzyznPtViSgr{a&r=ijHjlQ z6g0ty&%eL`G=dQA$t7Ze>02Z~E`E`zu~95JL{k)MYD${?PgTgBC#t$;C5spbh`$6Uyo$86ivd4H z)M+MDNQc#N`W*>r*M1Huqb&qFz7ZE8_f6-0ivUR#Vn;}jSlSCk zmNBcM6sE%U2UED{GP6}RWbK5~WyCNe(vn2%ai6BX2i(5;c}ihZI4c_Xorl89W(;=A zq~Xh@6=H~C%C_Di$)wucW(LGf@r0nOewj*rpcYc_y7XD(OH?9%q}rQuF{KpltHOH{ z2(mg_6^KZNCnG5gPe{j~b4gHS_*piLZDHtWf2C?cLM_Gsk4N6SznnR`fu^?ClQ>?Y zB~!H|xF&g|uk|$wlZt8FJwPV1qC(y@I+~WseV6oPFi<*n%1QQWnZ-Bzggdsh9McTt zt$1ZtHwfE&*2J+?F+;TD{Af|IL^=EN_6p?C^_Gg~a4~}#W6IV?+uGG2-lKbUJEOkg zdni=n`-~&Dc@xAbM(nO9)n(WL8`l$4-APF6vKrH<%7W|7b1s|{BX~agROG*mUzKI2FH*snV zQ&PIX2iI|&{%O^e$mMT?@4aZv3f6gP3i5t;4!&t*@9!Cz+4?&LMQ5C1mF?kVFlpZ}6j`Jw)`XkH)-skUhxXQ zX29#~CLa2UarhN8Uv?4;K;)CkWr~ywaNcG?^MSxmGweOuyXU95zbplo^Ah_lKjHFR z%q;A5_M-~gr4X@d7^q>VKRrcnVfm6B@hL~gd-3JfreDd_>HYz;VJ6ZQ4Ya&p8k}z$ zO>0E3`0cancL+++2Vf&s;f&#a=g$3EXwaf_jA21~$el(V|06CPTR_dGa3!Gz(pisx zrG5Ql*9SqWQhtm&Q2F1y_}9_Ni@pxVV!a>wpA9#V`^h=_`AudB`y{gX9?Q!>M&l1W zC&eJeq0IZ$u8~~CpmVQjUGCR(;fAJD2&jE)Z!h>i;=kW}1B79UMFFcgcL`y}UqkAs z+@zhihs}};Z%C#9iZu16a)2n_(@?a1|E@usuXi8(4AtO;txhxi_Cw53e3Le7&*OQm zIJs>fB{y`6{3cQBiGMZ|6S2M_6&2EJUT=r3FYB8J_n&hPkKZn4G$0zl8)}S$Kf}1z zFB8A}I2#TN*R#~)cg6B!H-+WbcoNK~JmIm&Z;FT_;n@$6)Ys>x=Zz&Er1B-X`@+f3 z_~TL2vO#{KfsW@8|ALsc^3e4x!LnXHl0=T$Ty3duC&&!nt9TBPS>kz8Tn<2)c+8os zrCdgb(0TpKX#08(D&?Ukwi#!b?1g~#WjIst8A|!0J0Lp7)OBRzj-Qb^dzNWZwb=aO zfNrVd3TZ{x6y?#+_~<2bt(v;uX2|9}`08A-y60L_EizN^dr;y-_wf3~J6aJ2O7GR! z;XA|0Ak9r80`{Fy!_5P0GkK9jmq#MYYg5nE@jAEX3;G95!Ld*Z9eV5CXwGhk@&`1X zM^C@`1)sxf#s{6r5n#r|PIR+srup|B%v?WJjL|c(W#jmKqIV(oGQU@VSAAGDQ8=dh z&r%OG9TsL#258+z^mMVZX0o;bOf8Cup{^ujLJk)TjPEuu_ivaoSMF#ZOPr_Io|-yZ zz&olhE`7i-F}AiMN1eAGOZ4cGj*O4}=-bR&ZX24e($3zXD;lxB;G4W_b(d^Oj|cwU zH873VNEB3yWSk5n`rc8nt*^cV5K--s!>y`cD{FiDMzMI`qj|} zfrp`QS_7TDI~rk9J)@;<_J)67@13|3X;ysnF#hcs2-)sh#6A8W#ANxpdB39#)?8aMNtO#{T^M`NgOtIGq z2-}L%K35l{B&b>}2{#{!QO-bK+VEZ)+TFm>bHJu3yPXV(+?>{;>5Gh>IQD>M80lg# z{w2(J?meGi*agDiS;hm~YJ=55+|ay-Q~gzolCO_LkP#7F+u?o_Nz4SVzgz7wbm%M~ zX)1ldZAAbAow5i$TFiZ$$86txf~EdGNl~B5m-Mb7$5t&zzxMq4NMEy3TDY8->)|qn zC^F(V)4`olP{B!9I5wjF@4J|X^B!drc`ufw)vrL1lb7eD5)F?hk5vi7GQpXPAMc^H zhB{Z|1Upjf^6EEzpRPb2eP;{164ouuC@Adb+Yp$cB)YX}z&rDx!{#Ko8Y z=4HvY-FmA8`##Pc61pETuZ?_=uOM^0C7gDMqOX4ycl@7eW~Y2lsqD%g=U8*5o*?Fv ziiZAgZpSEx!#N)R|UH;<6eyE=2?R@0*4iwnugy2s|e-sUr|@Joa6 zc!6|mtKS=+9O!(bYy3YJE6n9i6w53J>L-XJj-`WxzdX->ZNA%4uGI28Yg+v-{~Sv- ztRO0fHl9YdVC=LkVN17GX+axc#=jbDstt4*+laj3rx-u*;p>cn(x!jn{yeX}o2<^? zEqJAK-;{0#ur9?f%KO8|d6>z~H@@Pvg3@8@Rn{J#vB{b7weN3MZQozHyoXt4CzR8& z)~tB>EdWr$up7@o{{72A9#7F$nc~<2*iH@n5h+j`h8<=+Nc`}R zeu*Ha<_Ma2x()3Yc*u4}%?4`zNvIh-4ZL{cdbFQ-{s%r;R?kNk@O>f5+KWU)MjZG7PPezdvM0YKvA5;sHLiHzzzfabU(+e^T*-9O76TtIwQ z-^oMq7=TS;VZe?;DnoBTsg`fIsGTu)e^M+VBYXR_Aq(CoQMq81!!U(S!}AAB59MkG z5J7|C-!DII{09~i1&-YX#pD#?JyeV0WH5y!lGxhPC-)*QYSY2DFhltHWJjx?FP^CeTL&G_Tq?%xa)0?XRgHorq%`W<8P=g53>D}Ou?PE-_4 zc|vO0P)l}63Uc@3e2t^)8;}N;KJA1$X!z*|XEOec*mW9~jE(rMrw5;evI0~WBEaYF zPHS0sZTF0>)0m6xNVl4J19AKjicw#`k+jVHTGG$GuS9M$-=g%Y*6i6i-X$ zu%L=f(@6TSH}a3#L z?7FU9+${tOMS}+`!L3Mu5~MBeP~5G!ySoI6yA%o(_u}qS+$maUakoFu`j1HaN z@vj}$83sZs*^aw`AaxBwuTMPW$;Q$}5zhED@1Q#DNwmnL_5-bd%Vb@d9()bI2r<{^ zxXl&5H>>)%R&N0;Ov-+e(@4~oTK(2oQS+_9u(gu_bKU=lYTfS${8!lULDl|qW|A9j zBm0zVAn6h(2&VP@i+-PFO_>y0ajlmLrtPtu5U#3^mSi&(;6J^*6FF@ZIA&xUZ_MgtUH~NFm{om@=&JHS=5d#CG z-fr~hN9TlxD0&_Xw*6WwT7YvLg@C>7$qK@SM?4{fskE&0i@4P^ANp{QkeG0Tden4$75~@4hQ^*UA`sLpBt7iP9Sbci#+(q28=E+n7plrrb$Hy^Nf6&eN zKBxkcO~@#Z%m$|#Z^;sMriieNhE#k&iLE8ySb?crmwgE^Wr+wf#_9L=RiBK>C?S^> zRT?aXWK{q16a#Nsa@SqiV&)Mx!SdET_qYhAz5oP6fo~o&Y@R-m1#A3UPaCYqDE3vp z1XF712}q`~1*l_ENf#2J5ygDsiy?puH>=Tx3o7P=&{)5xz4Hp*tQ%}(!Ly8EE@sX*i}8_2%#B(E_T}4 z`HOi`i1sas=GUHCPwoRni3LCBrW3*aH&8I>P2>6o-=^=ux+6wR12Z2{^Nl%IUpBb6s z-wJhnff->3&1Q-E#1Lm>|3=x1Myt~OVs{d7^4R9!czI6ccJ1cjb%UfCpUd4ynh)&3 zS?_#Fn|wL`+Wh6n(qvEt22`;OA%bN~-9j;0igN_$cVt?}aNdKa8ztmo2?3{y?xjA6 zg*H0^&qqIM^ltRTv#PDV2L!HfA8imPDW4NDDZP{=AW-D(2eRDC^v|4D#=}p8I1wDl zKf}&kpvr3SQ0d5_yMEluh}l^lLdN7oCa;HfD?(|R6HdxEI}l?AlA)~(@P36nfsgYyoX{}iPgt}%;v zL3UPnf~D$aYpM}nAv?obYrls=A%jz?WC|KAQX>jTuPhf4R8U4FXILlA-B3ySqcO2dsrTJa=*#k=(2m_yrnN#zH*+LF=^fu^=f{M3 z4QjYcJkCZ;c(>`X3t{3H+=mEb%BDp&%J;h$4Dm8Tgx|eyYYP+}9xi^J_WSp5ag8lU z#2TW`shX$)kLN5A_kWKylm71oAC=oLXB1YvT@mhs9eRsHtLv(@?VMlrN2w+2JM6X$ zT~JeU+XYuo<$X$-M6)LlddQf_z|j&htzl7VYbxVENMF`9CkcdUq_*HhaEru3&~ z_*L>#8;8S@)XmK#XMd@Eh_#i7l-_XfBh%JnCtpS?HfnA9q^)^r7k}gh&zNc85WA%; zN}-g;f&YT<@|K1^NNf0belWtR8J5UB+d#lVEA zMk+`U{~H@Th!<^XB?@lUpw9Tj1gfqnA5?jVwVe_@oh3@|MME8NC>Qbb{(iGhA4_SG zA_-es-$bw1_~n}Jy`^gKtr*ju?6gW2TLzBxodk@ks7hEUfz72uSKRH&7UmbK@#aLQ zA|*x^56Wcx2ZR{~Re|%_W0HZuMI{a-zkh-s1nljrUPx)oaD6A8_$@4SYTNaAL{7Ri zd>$`yjcYrD8Kx#QL_Hs)Z9){hD=jGxH@0!L*)?1L`>CHHguy^atcZF} zf=)VK4WO#+qAV2yKdLY|f67`@4*jKWZ$+CBV+e7uYNJ+>Q%8%lr&0z6-B~G2B_5z< z&t|ccl9?=~Ye*X%Xi!}&b*&c8l}VzjTuSF!{s}4= zIjOY9{rnuN36o-A3A7R6HJA(0EOtHt1Poe3SxLZl=ZR2iRTFB;$jlJu zViLL_3QA1N1r9UqsY%2fRZzT*?mdzmmkWNOgq55lz6|uu2kjJ(eSRVSP5nhwNehJN zg{Jbp<1T#T_tsCI0_^5Atq5tJbi)jE{*-DJ$*4d$^0ZJ$#IM3ALZ?v~Y$60$%qj%d z#}FYOI0Z9n4CzH!(CQ0T8)t267^xa>Z;Z|mfx@y9j9-QC!sf8bmVI7POq$C_wpOM8 z&~)*QpXNV7Wvn?%e;+lo<6^fzr89j+HQFE3VJEi}y2(|4{O>QqKS37Hj2kQ!A-$$% zStuwb90Vt8r9P=s>}0{#+nA}+WNE_ z>E9e5$AU+KHt#8StbpCFMPybb#PE8LleB*^7o2chOwc!q;3TOW7gBZnQN_e=JYXm& zQ9Kw%Hz2K_0z@<$UK!>XHf;A*Qb&~6+Q4+&vP>dZeL|_cBi(^n0GI^KSdsYaDkPs~ zYM`JVgypCot`vDV5m66%qrz)x;xrICW(0=@PTy&Rut>M zC2z&oCl#XQMTa4S(Oh{7DF3SbrKE@Xo3l)jif@_ZEAqygz3c2^!Li<)7ebRkpLGV3G4tZQ?!wOiem=YKrt6sSXPpB$nQ+q$@ z0?Q6B*-B=kQE)$DU^8dJ@kydaWNj4#0L5?D8`DM46%<}C%uuVh8=S(hr};-)ymxx~ zs!3$)&rXQZoC@k-^5E-Z#S$P!IOR{DWEM2*!VwkuJ?vjV0qoGg13mjd7yyJOqfA>5 zwHe)=OS)P%8pSr@Gt>6V{Z0(kc2QT-QgGsQKxe^%CaMe}Ie@oah_7!ogpiW2(B&Vr>%r5zF0T<{-sbvVODq4Mn}A`1*j zE0B5UUDvh_Dg0fVGvKF z)f>!WmP~XaWM3R^EWHg?IElLU^v%0QZdzwpss?t9@j-3_9xQ3h)l&JF;7M8xYtoI& z5uc29UeS=q6IRybBu=kHr;c)b39OJv-WZYik^|AENK?otTLZM;ZDPbvV^^ZuTPEs& z>KTMF!1)afsPT&66`CmIV&J+r^b~i(Bt_CXT`tNh+yp1X6yZ)V!<*X(+8q zDq8$T`tOH`!SjRcaNG;m>+fF?iRCJ);~j7LU{z|?SZ9vc@srKMpB+8+Nq_%*2UUSF zPL0q85E4TqPlaq%-pFAJ4FOT1a@%1sL#SErv9VMNVrcE%DuQo@7=&81&hPid2P;Kn zVdO-X65CG+#Sai;0m(WrV@dg@ReRTB(w>CLQJ?kCz3JY;U%#VdnoLEPKyt%pfAurI zAaT-aBt>Jj&4={DWeG@9z^qVJz}44pLm%F5C^JD6q^Y2*7X7Yj!&wtfCM zjTCnycR})OE!iS2!yF8r9lF2#LRb9mNA3)genT)L)>UfC+9+yMJdDuGSy2YvR)YX000Y z*0SPYkn^46D7TiqZQ}{+HFNb*1^0tJHqMU|-|RcP6n^{+O0^m?eLaIrvc-KneI5wp2 z#N@%-?NajHPc-Yh!@t?0R7@C#B)3*1R3lc=8JzRXu!+hfSS4dx-t+WT*Q9}q6r0JM zaL`-uhFN2|(eoQc@)4t+*@zRro3_U~|Le)y2gIt+3&bi=Yj4TM#Uy-$)7N}u(%su+ zBzbM~g24mwnHx8*+tYr{6KfwCv0dS7`9#k6&o$qu+M%mJiUJAI(Rcve=zCQ!&N}8@ zrEvsv-xUfsx}Lz!8k1du%4QaQh@N;$+BhPpnSSmKhvubB;2P zi3T$u>rb$mFRHn7CT!_Yjrd?AH`X=@3L6j6Glyc{roU~6>CdgU`49L^Cm9z}2#4hl zE+ZFzSbvA>SwJbk8nuZ6F%=01ZaxN3h$8O7T4Ut#%(MXcBipy+VYYZq`1_(@TWg8p zk@*-SLs!?RvKy{U$7T+(q%k(Im*M8YGH34yaS%h8gz{_nEO^(2z=&_6^30=kCz4Jn zCDmgoKcr-7Ww%cJLZ%+lOjfP3N16x3l>Swc+RPGVTLXK?%>*q0o=-R}H@k*-X_+w5;3E#of?6O2MFfVE;$L403zIi9Qq-0>NOWL zgNx~w_!`dAr?^rIC&Fr!XPe!)+9ZmDc;jlugN(|QhU!Qvv#v;Xd{9O}&?bF&xDd

9Nsir(Xukehf1w~>NG3PDI}Co<kC_)mh(zHnX0eNF*8 zA&8a`#zDx6V1G!M8G9di-&e_im8_*K35d$Z2MiFVeZ*yY3*mQt9B_CG5o#~<)p82<}NZ3dSv@_v#?l^Y}jk2*=!S0{$xgjMxwDQK(F&Rs0G zr_oK|rF&qe|KjE!t%?*v(zorINP(X%gxQ)XFhCg@ zOvlh^WfbWlK-)0V)(6>hRA_>-N$G3q=^IpMP1fkBl4hSo+bWs=Pa40UWJnC zliYBUDO0g*xOc^5mE~mBw;MM}@cp_G&gg{c*lelhYKODLLY1<*q<>AA!#n#i;QznfoFY|b)yg9|kkHZ)2 zXq4R-UY_6bEpk}U(&fsDDf3r!q>NSZd-xBP_pLG2yAJ)*4jS#?qn|DfiVc z`6eOjrlfs~?4EVwC=wM?9Y|VzB~O$!=t_0v0dLz1Ez-SguIjf8o(U?bmEJ$66F`S9 z5KA)=)=y&=D#_cMjxr|t{M{L_`3seH;KowJ!~{W{OoUk25%!Be*c${(tdJcSw@SQq z5sf;bRu-iZ+W)KtFo>~y^y=|tGN9@RYhpTvBJ0Rmzv$zVG~v7H=>5U>Nw3kkM~#2F zz!D?u18P^*s_(`b)VF^!mqe^C3f)&R4us4^QU2RgdhcKhN~*F6R20Lc4GEZL(rlKC zBu(0^t?eSqW}cfQy_7K^ltBie$8cgoFic7a`L~h`;j770@ys7;utVulyQn#FF0 z5S;=G7k_SUby$L^^rsC1GLz}~Jkt+RkyqA;85ZtO6H)t9srW|p6BIxsjo$Sy4B05; zt>M&y0~o`IdEf2nd?Uw2=_}u+yc3N);*lUuHd~&4QoL>rn2nXDLTa7Rch_+6@t!AD z^lsE#?eFVB1Ea8!N z%$`K8nujy3^cbHGp+e+}=C%2D-hr!Y^e~M>FnPU+OTyD(l&ze^-zJPI^UK-v&JTK= z21zmb@(Q}%>bBmo>h@tPbRL`q(|dlRsU5L(caYD=1AA38Xg>w)Y&ym>(0!tr^f>nz z@K90u#h=`RSstwai0BVzRYz8Hs> z5wcmloVzen+G1enCg0Ouh#4tsA-?lx7+)%& zmKBWs!N_@ZI=Pe?_XvMOq=;;asTNFn03D40rI$eO+YCZSN=*Z_TO_;c^rw;D54`Hlq?F zZ>wFsfKN$H1-XpdA%?P_lKUU83+O_9rgFcKUmy5N5VzL}TN-Fq4PIr$5?#)KD^)~lc!o*nfbf%5|uu4L(F+ZR6(Oi}iX;E5a z%4+#00*%%#OA*V-K4R%J=80Vtf;v+B-adkehH@IMqLC2l*G^L_-{rl-Wmw5r4D0-Z zIUyAVbj4E1tC)~GVqI{P&nCgeP4MYsOLsSpM%FfWLZU5^P+qL4$3!w4Gsl?R7sW`g zqfo)b6-x$!Jk-Xlaci)|R7Vnq{v;xXYD{5QL7R0IP3(DAwd1B_sR3Pxz}w|ty3d~z zpDr<5lnn&$CqRHZ>LZcVXc>D#%q>svh8p^7?nT^6c2uQ zPbKdLc34e{Xotsx;EL;a)n#~%q*#Wym;`*EsAT93;EAj4|At28c(JnPQ4f_iLm zU1MgvoQg|fK}u&Qjk>b2wm+`j6N+E0%ZFUWE^)F($mJyd)RlO+fdr0^lwg4)O zR!X8@;yVCjS|G)ShY*c4cFm&YC-nYgNx9{WphlfxmhqNonY>ysqLBjw2O?fa;ZGB2;4_o7uRrBF{k3QYT(@q{- z;|8W+A^<*qX}a`ch{wB?(D?y-+t*9Uxw-(rJSl3flZv-|a|iux;EofI6gE~RyVSzA zK(~QY-HL34i!T94Y=d!ZJ~r^q_T!uy3{8K9-V7C7qn^n4yq>RUz~W8g7>zH&30s$n z83K~sQ!o603@8a)l~Ba$545J812d#IC_~&F%xJGjV;yOK*QSeQUe>BPr z7k2LL_>>^N0ot3I7^joR4&@I!KxaUYxb%$%pLdqRea9d{YTPF~cZf^c^fKXNLNHiB z8oqkl&}Kh$lQR!@4OLmvpo6J}GJTV7(#fmuCT-!KAXqCQeY@a^4NBw=Ki&1_nXb}A z-LGlPv;1S5zr-SUIj~0`(j^pMCcka|g%)=CS7M(snH37iq)qyS^inL57F`TSL zh7Y;@IH0FPRRVy3I^V~Ci&{B5gDa0hz+fHc(Hwf>-QX#R%1<8{&-nv8fn;xGENXj3|l7uQJ9W|PT-UultLWic3tlwD=!)I#dW3s}kGDOR~0J-D`? z5tJQGG~c$pbzOIGximRqkk_^Qgl4^zkB#Drh8?!cSfVzTyg$4fl-=uVzb^O+O!kqp zECanwpc{{RAMo|HbBqRAwk{bI7gii0y-j%98=wTxB@KyHdF%0Mfk3+$@|j1(zRV^% zDavi_-Q?EdS}q;y=<-$CvdZ5Nmap07>-hA~$%-XpeH6#$72F7JT3qXcHQpfdsOrxW!I1O@4WdH|K+y6l+5h1eecw-(pJkFDzQZh+q1FtR2pXrne>1MZ{3ql2^_8cCK zZ8o-&j`(ux+2r^97Njso->-~)^K{bEx-zF&WsDl6MW|9M`)dp*M05(#>gs!PHLp}j zJ)IN{9c`rL$xIGKWO+E97mdcYLaJ!E)FUg|^fn5I_~1{;jD^8eNizvyS?-2-5J_bX zn3=%ObE2?-+BYV4sge%1$aV__qe+D5&=INwh#fb3k~Bjo9SFW$PXolXOV=MKL++EX zZ;wC*)BBM*2GiR|;GO7SZ!y&*p0S0A+5MqM0WrC#Ly-%CB^8dCMKhL#SQBOd$$%NA zWMpI)Wl#u1!hs$Jx0!381_P?b>kvYg5GGvw6x4kOG4qoY6UE{$z7zT^N5UAZcL|mB z-8`2lk#IIfRcIap0f_yfHq7YYVq5+@!9V802#SV4l@{pK)jK(hmYSJ2;`M5-vD4gd zaYDPUayo82_67W02q16&6h-uH!a(7MZ)~uPOrAhnCS7RpKmemt@ycC4nwc^nr3)hv z!5VCpYLke-H(rnB{El9R8<|yC)7kk+TzV?w>KvIT!+tO^UQn;IkCap&2$YGeSt>BA zXFAMSH>2^x{8A`bTf|VyV6f*kzxG5$805BA*VY!CRITHN%Q;o0Yi=K>;-zZAqCB0S z9b79}PMLsMOU%8MsxpC~?d`jzrrGd?8!c*~^OFjdDZQ7%6g)XdRfyp@w@LVJg=YM_ z_rsDs5f3?eaACbrT8;jVXuJ27mVc^@+w)YKZ=R@>ZF zGa@Tjk4wC5^I(8TB>X|N5LSE7%Kb)Dv4rnauEE*mA>(+nA$L{X_=#ow)o)cF9H4eV zXVc1Qc;|~g_M8dE>Y#&RY}SzDg&UVS_sxC`bcZR0c9OV zsi@Bpk-I@h_xgIoQB&2I`)BYKdyNea(=52^BtgO{u=Mp;wKfy$Ldfr|UB}BFzKZdy zj=xTl(`wBIi9Q}xn3td?JuM?u1_0Ntj z?UN51cSt{0+uv(z?=fqNHfPki@1uYA+a;ATa-MR=tkASkaS`=(>i+3YbM|Lcz|#Jo z>iB}_Pj`aZm}*y)zSt|SeA^Z|=-U5xu!aj^Ac4{5qj`d891WCzF%Gb{Uoas5jCT1e zVRTWIm4MBLsF@qEef{fT*6d8AqE*F_cWc(MVBWsKG|I>ig&|3>lwOq3B$i5+lpege zP0DiCLk+gaO($Kch|Gb&tk+5!j5^p#N}pssgVqV^?V=HyH6xTM%r!ohlmqAfJIPf8 zRu42v}@o>Z9zttBC9sYkId6>D%}j z)$eqk(c$qls+`N`+#^Or%lWnkU+OfEUjqlpzJm_+ps+*%-;6>1fJ`7&*^Eej=MS&I z=GrR|w+j`rWOXX=iHQdpY9t3W-A2U()73M%c!D@xs|2DmpAlQupdBn6kgof)n6tlB zNxYtcK|?84X6ec6Ca-Go7)lg1WKK>YY~np(F7gm!MKRQN8^{2yN>z)u+sn@6=fY@Y zdef?kV~piFz>qcq0CM_HrG!#U*pxzgg5(Uh+hpuL#Mo&q?*?UEsD8xiXc8(OOmLfE zM+@>;EibhifU6H%ibAboYdkTXdJ}ZTj19V4#Au{ok}fE9%qO+ZkJ}oDr$iP8CZ}Y@ zx$#CIK{Z8~e*O`}=;r`XW?g80`)-f}T2P%@JAxFA8CVvl8xDS`>0(+ z*6igtj1YmO{(Y2SEaI#wgtW4N<#8~J5*3+E;Oj9zjSDN}(gopk@!9h__ii69QIY~+ zNGDXwu$_SsBA=nYbT!nIn$Y3s75nkRhxnF<-X?`x*&j&2=A1c^sY4iKT$@mPGi zEgxE@0}UI_Pj7{OzQ9EW!xe8z)P561eu&iE@^mZdTxLOu}@ z)hvoMUK15KLSg)JI^(Kn#)93Oj8WR|?bSWu5;X_W)L8La*{=If9mW{!4JWv3`24`< zcctl{f^b_Abd0NRFZe$#)Xblcc0P{282os;UU9h4?Yz=`4E8@IK*awxj`(s!J$uAo z_Fu9(pPF9yA08h3k4@G+AE-L6e{^0yzUbPt_&)G|em?(-i2d9#^@=~0zQF&B_w0qf zHn?@Bdic-z-ud#-nOm8%z2v%NtAg3R@zm!3_3-j-qxN;f58qhXcFWKdZLrBHb)|xIOws0< zl)ZEWm~JRApoFVsrj~{Uf&0XYh^*y2T#3s+;ctjWHsWRNQ;cfH*Q3RyLj0mte+l2K z%+uG;d_!Ez6gqWiU#Y$hktxu6O3nhj9T5HLJ<5=qZ!0=D=258cqCZRuy$L=*~YE0l`!1be{=7!pI_EEz7w@ zzUj3~vgKEtg4aUdRICx+!<~=|7J4y!%XB+(dCcWHvxz^|=}PiDVE~!bRC>UOEet1s z?2B(aq`w4 z!H|L?+^JOl?8h>$dsje;;IJUdQz2842>!i0*E6xa;?3nPqzMt}5x(!3i4-#YlNN;o zj_Vdn)d?X9nUbh)HaI%;sCUFmVNP(#E#{s6;yD&>xegGPF1vUMwpd2;e?& zg0W}H`Ro>pkH`Wj6;*#kYQ>oA@i!$)fs5LKTieMm6o?JG)il_w6xi5%dLU@|=T#E^ zaJ3tPI>LX-Qfp&S@&Ik zo*)3@jL#L~6U&?O46sBx#%&vpO_3b?ZsUJi4s@eRCnarZif(29rf2GpSzo)gwPG0Y2%%tLsMWi7IPfoYql)H#V@fexGo_7A9l}sYg5jiLKZ)dr~iA>d(={Q zm!dxQR35c4ETAyTNh7|Sk4JruzVA zZM#Gj`&05|YW-9S#x*8BvAs7&Hth2IF_dO}y_=YvrgXYPS+9#w-^=}b-sEguX5^S4 zqxr|(;@Nkodvfvo+j*xu?MQ$CT(R`+4ddN+dW$ziDjhE=v{ZtZbYxDy`7r&g&K+X`Q$cZH?){gvQUIb9Z_qfhiJuKX<*8u$^ik=03~z= zgCho5;>2hqRM6DP(RR?jZN-kNUddg6HBH^q|V!Kc;!Mw!o% z5E*|7P4#-aWb1`TO2QqPoB|S@)>imo0@G_z0*9CCd16omQN@Me2BC5JE^eeqDk?HE zk?bXr4HY}S8-h@VYNHEJl|EEfp*0P%58F&yDXiP^jEfH}shpM%7&~ZH`_9@>V3VPC zXC)t_;nG-G#l&L8rS0~qU7`pjED}&4pFwG5L)k7N|3PC%@b#fixIsjqA+S+dnGf_s=gQo~}5`>f3Qs`v33+js&*k}<3UOAr&kdQxJ^DA}zt#(~5 zM<46ELmjA+i(5wob+Ok310}kxCbNaQ4OWLqW2dZ0rjmJ>la*qF07$y|B_D(3{_vr< zf%JeBxehkXd*WF6`?f|MH8JyR6&)imIO%yL&04s)@(upA1#Vy!Vt3}I3xI@}7#)sF zDbg`Aek7vT>XJF#<>=~wkt|s^=V-bsD8<&C!e+{@wZawBV&-y9X8o(w-HXJxAM_Ar zOpjqVq=O(uMKzighDCqXl@}@%A0kVoHMkSfY#7#0u#&bx!bj)_Gy-CjC&ryzFOz>_QrrS&wK1dUc`L;nn+i&SX38{K&h+lX?NQie5rQ* zIzCPkq7jlNeK6$_GS8A9F_Wj&$A-V}hZ>Wbz4-R{rW*?)MRn zKguML?eu5od5Qr39umaJW~lbl9!8;tV!6MwOEpumN}7jGaJt+%DpL;%x=aD_QhhRt zQfL`VxRs0rLsP5(r3iK@tnNMC38$yuZ>yg!Nu+ZUcd^O48>w2qLIlN_D9m9Tj;=By zN7d@4FWc1ao$bA+9cFQ&ViM$1F2im#!BU4=u&xzO8Qvm8;qU31RJl)&d}0qRY_R-8 zg~h3;5e)8z#ht+}A2F#x7$)A*A|cu>=DRXl!74rR&E;6%5#!LGav#K-Oy5Kq1ahMn z&MXYK;M*42v0^42hUz!wu0aci2HxE>zlV>a)EcA*Sn10iBd2#b8004?{LgW{e z7I+sMr4A)hZ6c6NE_*y*t(j(6BPGI+AzB&c@5SFn5S6!ngvzHE((Xn|p(f^edR7tj znAip5Cfyb31}G)p&fTGd(8)NI-p|hAhR#_f;9##$HHlV{tBIK zZ#Kos@p?8SSBS}OoYp$5H}%eE#PL_}`a6kqBG1l2OSOUqg8+ls?s&o^SFt{C4#@Is`y_PvQ`vBFq07u@FZ z{(r~BMO~NjBh#;HEU|UOYeP{NGPR)5#8R}=N{!1yQ#7~5)0`sx`0fk(XHs5Q z1zl4m^e|>kOoc=rvj{7W2hGNBoPQzuB67Jx$-3T`C!X z56rmc5GK{-u{fD-P02e}iYy z`?b>}@c18RaEc_r-kWh$c0R%Vda2bb^NMG1ss*H#i|PU??e#Zy=TmekKWiIX`Jx?h=e{EoD<{IjNXk&H|fgh2(?2S7rzrPE9u{8JjG}{Y^w~I?lMuL>*nVol;kH?eG z>_i-90OYYzMLGWW!{g z?EbPDT#$U(B?;V0S$LWI{G{G-8v6E>Ui_S%r8oj|ZX$kdk|pMw(fRoGg`4JKaqxEc z^Rt=#M#p%K$)Lx}!^Wh5@2tSte}yvo_1p7a@yA|7CER*EEW%hBKWvQ>{d&OOE21D< zn=a5OckSL_85aR+z!_4rK&Z7{*VjlgMvJRts@In^LAOu|%V18r3I2#QLyJ(PVw7T5 zOOvk91h46ak{nImanYr}!OU+TEKMxgR79k37wz%6xhV-ES@Q~L*?729@GJa~c9N9y zqN&Nc&)jqJvo)l@QjZlWZK9NO9ndMDdeEf*mAhP&nqo zjPj+1ykbeZ8M7I<>J&`|3P6v zqwHFZt!MkxydLC2rLSsK`60xwI3fCPK29L}q^iq%VR%%?=4m%wJt~pak@j+P1D}qW zsTq=TQi>V!!Y=wQd+C#Um9YH^2Oqci3t z^v9K;+xpS&)EwA^VT~X32odHCxrGKolI~I)o(3ICZ2T9t2z*RQT%-lHJnkqTX~$GD zsU*vjxz3W*$Xb^4R~^paIH^9baQ(;R{H;1XK0nW0nse1rb5GJdNFCHo>~Hy0YP+d%Ti ze8R^c`F-Ne!{xoRx%*A}IO{nb{pUA%JjvU(>Qb)mG!DA8el*&o&6{b8ZbaE;Hl&T+1LnTxc;_W0m_iS#RGc_LxM;@qqGG4Zgd@-nZbn8N>?YpDWa8D zaNzA?39i&VF5qmbv>Dk-pi9p3++@)F?2%r}qEraT=e=v5 zrNA1}rR()p{Tup(G3e+AU<D^v(%Fd^Lv%SA9 zc#ZjW8>mI#hP0d#)mWA`xu@r`h3(7BoGPFCsmkam^>Cj5!Ts9GPJ%#zTJYybtv;TH z;bE_*Ud#S1%84zX@x8ZC#hrcQnF4prFFU!X7ve7$pIu+>%5v|)|0@z(1paBk!6=A& z=odvs?|*ahtnYWu?4J}Hi}$=m@FJDtd#&yFIOw1C@UJbtvXUdm>ks%<)#uKMACDtH zPOm<{T=}dt`BJd4vE3Lvl$GXeV<6HpcM~U%A3L6pI&L6L7q83>#8Gr5k9*m+|7 zqvo2o1EO5beiDBo>AV@^nKZ22oyZn>{7;ATxM|xMzww#8IjxEJjX^Zm&qM@bx3mae zk~qucVVj4R9s2rq0`MAJ+v4>xN+OZc@EPG#4@Iu!^DCQC z-y+3VJSXfEe3*&0Y3p9JNncTd96+PWObB>mU0eWd;F8R8a~b^8HN-FmS|$_MFf@!E z%S>A*refuTdywWe7Rzrn%aQaTnTZRQF1P0uqMM`@v?WeprJo$zCVWGS+A54ir7dnz ztuxb*vq`Ve&mCNdVlVDZ;i=8j>=0QMEaHvVq15(7jn~fjRZ(y|1Gbh* zV)FZv@H)L3AHU%9A;OK~lE`*;6*Q~Qi5#!F9Kb}l49CKQ-DBtdum7FjS)5FrDDZ1M zRB(Q+h;a%FH8g9H)wV?MMOyjXF3ERO@$(wB-pb?Gcg8VdE_zY7Es!!C8DU&RDC;@e#bQx+%y}qpFzTgR$XDYsYG=?hX z&QE|906s~mtU(yuy>xj(1UrrZ*2z_bmy|`~ly};RROmb2nbdZG%OclxMVDMrlO`x1Vv#M&i6e|)e>y7u=)^OWo{%e=bxY;~x-j#LuWpIbLgfA@wYIqmS~UWGzoyVAQ>YBx){}sR zk|eDHS-_DJ`Cc9;&|G7Y2`2OXYeE?RFhJBR#^=;=elF#0Orh2WRy&BK%|1tHJ zK~cW%ALtiEI+pHQx}{mVYe8DNySux)L%Ktdl5Rx0mXZ*VkY;I+jB)tRyCl_?iTG*7<__+4)Qs27RTUmHsaig0v7Hux z3fvQ910P?)nm*^!0CzX*bi8ni z38JQ+9&KOd|IXn>Q6&$?QOI_%0&no5E*Htq!r49kpMfDO8l*c>B+EW7yi zQi$D$i;ZnQ=LM%5KMx!4{wsjIjb>RSdO!=_=D2_XR^<6&!4&5rura|iBYcexQ@a}U z_@p*l&s>esBwrksC0}iYW4S%v*c$mARW$fe$|aF)Q@-s4OE%nPs*eBrT*KSn{(Tsj zC9XLB_$b)___cqcPQShH&nde>$5z8Sf$tHiQK*N1gpm;BJj?5rPmHuxBlm$l4Ov6f zCAkW`$&{Ge+Prfhd9<3f|A2CF%eb7lr7qCOPE7pc0U$M`D>ASJou) z>pTTC*+Ja_ee4k?9V*sxqx5i$mo&YCCxln0;|se(p^pRe1Y~^oBwr=EGLl`cAV5CS zI5mnXE-#0Ylxutuma>c04PZCC@Iis$Us(spsjO>;YbDLBzlM5ckg;^W|6+mf1O;)TMqGOQ1}=ZD zaeTx&h*vc(}Bc(1a?*WxIbK*0pdyzFI^>B5pvJyVbb zM2aiI32H%rbiO}fkees0F+iP8qRn=7R~4BW#6oa)f)KN3lqVBG+crUq3NAYb@tGwY zJ-NAx#SP%*4|9anGm8fc6cgR3$+{mLJC?>VF;n4Na*9v1h){B1T#A0kQ_fbZl&0++ zrUng#G*cW%n*q!9Xq%eKjdu;!HsnNIa4Iz6&%6lg(y2}z znxi(tN2`%QmD*I@QC97yU+@{8-dlex7||lv)%}yd6UoBg*=zmleCvM9?avM1m#?&K z%&KZsmVP?}nMk+nC*)5^JLMW^q0Qu|iT{-^-5`eV{#36HtU6xRUiD80gVDm?#fJU2 z@B(UgI&-@ka;4ChyDb=S|QpC=K;o`nvorJhj}Q(@k;HU(QNa~Ni(Hc-Tf(*CxQ{Xpxv zoPp?=G-JyL+2jdj!i47z%h@r588-nkm~G>9)0ZS~b(iRZj_BdM8{sWs}3 z|6QkGW5|sn@J8)*Y4cGZ1|dBsgJ3x?+GJE|Pe0+R5Mn?Nm zl#hV^8*u-SwdghR1}x9>`riy1frVjxH466i%_$x0KfZf<5&g_=_~#(#>;RVEi=>`k z2JLF_>4ptEmCI&WDwZ+zr)RbEgUo7Z?zqK|`T6@~4-VKQdEIzxsH?j?X`a~#$9S{d z?|VAi`8T~FGtW~q7w2y;{RfH80W|+|u+MpI$>K1hud4!=q8L?mDLK@g#9#^iUPAEY z(c99`;QA;)Ou2C1xOzcpGl8x6Sb&7x`Grwqv(V0;Rup5uvsHNEYJsLs>Hg1Z7HJQ! z?A`uI(u(_9lgF#5Wqp5!_UC~?)N>;=Tq(NJxgpLXdesOm9vTUd@i+&#h72M)_14k} z+>2>(>GFw>&=j1eb=r7`&t`~iQ27&y*bj)+yi5Kb^(l<2m2}JlhH&m2_wyRwojv;8 zBH5{y#0-4?WI}?KtnO{?2L@eTU@dQX1bf*gb;d3Llf{rvauJX8=AV3N7MVs0Cf=7l z>dOr4y9YLpQ=O$$EiOAsDi%h!;W@483Ag0l>b=$JKr5{+FrnA|mDc!!x|@UL*h%sJ zP)BhC{=AS&uBPHEP)mK6xHdpA0>+ zx=3+U~dHl`<$)i#-NyzvxCK&?t0FC3K4XS~D1r%6`-r8KaqF0KP98RVF`jNB?@-1MOb=ZZ;bB4kWvtcz=@zu1|fr?kn zXUr^)z@|b+k7RBMHy_L}Q*-)(zKow_?&Op^?^8CbiW*X;c)GmIng<^Ez2c;dr{$mD zV??R67wqcP2@%<=S}?olGxe52%rKk|HFfJZ-0y1{Rf+_dVuzk7@GYY%> zpRXy*fvp)gh$2c^YUe68d0E>wFlZ0zU{@P*(={$V;v-yYOmJtkFp5BZvYPe!Wv0i8 zn2KPrmB}yDegFc21DA=WNN1Qx#m#}DRdbt+)mt$pz_mYbBE@gegSad$J5|c?z3s+L zRu0zZu*-sCy+dDKm@3e2{6We2AjzC_H(zjL;D?>v9=VLP4<|cLGek%OUKpL|5s_oZ zy(+>vDShmE45otYuLUq{THG46iE!nvY6FYv|X^h@(usBeKdK#Q^TOs_j_v|zP>l6PE+cE)0z9zF*_;8@4Y#> zq^3SDNxOJF_=9&q+0}YkWC7AMJ!2E ztF9Jn*31=XV?bnPbCqoSo}c4;9vq#Ol2CBON*KWoYn9NCF?h)-TLc%Q+N-`e8QSdf zzknz>>h!4+6XWarrgD9>`0`=|5e~ogr_?*e zt01gzCNnLNZ+u32nm?H{=8u9XcmGfoN&^@OB>$AgePUL~vL+J>%E%*Z_~RI@j-#4g zD%ViEvR2U8*A#J=`Vf%RoMZ>nfdDz^f|ks>5%qN=R0S*#v7&arN=2v}^aZ7lpnYV` zWX%LYgmSwE9>te*1+in*T|6A8{?-|G^;k4q=8N0)+ zAFbI@Im}B=4-QMT7s~h;7I7Im>y_<_Ws5gFpS@t@c66-#qn7^9II1%GxFf#26Gu+o zE?Giak1_YJ-}(V;G#f~dJ8&c^4RPC`I`vlF)cd z**OSzxxx5gz5@KeuVFa*yjxpaGwAih4?!bjzu)#Ehe5U$0c6?|2HwLT3UTk5Z zcYpEMqr{xp4ZDV5Ao#y;y!+1acE!P6@Uj2+w2AeJMxVnd=g4Eig3DC22xhH+f%_jM z-@W?Z=x4PC%%v>)^lRqoak;-|o^WxVn3LGbIr z18MM%^Tp}r>uC>+S=?$5eroqU>pZ}ei5`47=RGPuEg1C*b(mW|?P6d2W>es|nAoFD z$3SqU1CMNH=3>z2_5JPP?GfE(xHEl{%y>cgGVuUVB9%uLQB}tVX~UC2l&<-e;rEHg zB5D48XG^}0N+Pmf$?${ZZ=G2bU0h|~ASKeY+9c=ez{v)H9^GN~DS$CU z72&haJDi;V(!SA2!~PUgEvth*O1ET1Y~d8FNh~TFb+yba=Aq>BlKf?gPBk@dB6*)2 zxIiomey_(=^YMCI#dt@fsPBiz>UMy5`pE!IS)oRqpmt>(AqDwz;J-VJXr? zd%>$vt42PHV1HRh8Wx<|g!PuB`qcH-!p-0-=4RbNdkWp10VM6tw`ck%efL{2U$|2Y zr(j5hy~Zsj+1H)0Wsz?K9%qM{#Cq&{v@LoLK=J`l0yDrSV*@FJ<+E(Tbv z6g2^kK#3trnKSJsFy*>>HG%869^bFi$cxl*5rXA3vE|C5tIL{Ee~?|!bZ=2|O|Io1 z(pR|&rP8nx8K$yAhRaca!~ov)HB(8*%gnJ5;)`K3mDKFpSROh^Eo)U{YNCaqS?DSx zz*+JzSC*>978g!6Dkn07=#(W%Z(D#YEM4Of9VB z;zeVt713%Q@QC4ce~ogO+5GMK;Wz5Sqr>AGGVUJ3Il!nO8PkkO06{CE^;Ki<;0S$f zOg3ES)_D#fs;is*iO+wg#2IOtVwn-1KqPF)4;<0d7HlAGNtntF;eY=()m*bFx(he9 zonifwz?o+-w1m;^_U;zI7a~ukY)l`dRA?#e@+eRge2JJdHwLi5+P?=5R)YeoY-(Z4 zYxdsa%}bI}$`mWu6QYM3+u|z+TN54ihW-i>)g2~AQPJhhNecrfXY*LH0XCJ~9#*Ql zW<7W>K{bu&*h~oCcelTU+hWz@>YcJ72iZZG5DoS-(;)1s)K!yksc{6XzjI}tAA<$< z&l2@lrb?PUD9;6>BYq0dQANowdr1>tO6PV}EPEZT&f#o&o&5e?c9@(!!xDgpE-Ph* zoKYc5IzYPdOhqy9I*=cf!%?F*D2cu>MwI3v6?aA3y|bNo@lQzb>R{#Wp5A}${ffEy z)VqmRPBgf-`RWyP7#$P?L!gb3(gsZg3*7dnh@%Fn{|6FvZ~SG4mGZ#C7`=O;hQd!L z&2L)g=P=SuA9hE&hwFnC_v9Hh{Nv+v_4FQ{AF~gxL7Ueio8cL0Ff?2exd&=^{>Q)n z&Yvmn?G=B>*?(*0Y>z(dB z2O{U&KO)io@8(0ygt4LDHIizXOGKlaMIG^7Fusly2$z0Y>eAXWTvM8_&9^19;J<#=A zppql$hXOByPTsu=dkoKl;&^a)!h#%HT$9PHpi}Uzpxp8q4Qa;7+56W)=l<^+D#n(g z?JgbG_C<(nCTITz z*CYo5#%A%DxR?}@Qe$M5@!n$PC z`&~8mkZ$sjd5hjkAk7cmFfL^5ZzZy*$*MSnKy`YG@McVE!eWgg1JsmNVUIZ)7TW0^ z;E2V7RqA9C_Uh_(EBraV@~n(-2|pXc>eTO^?6D*eQ$zSP zFUQaMqy;kai9Zn?xmL$92fXEdvn_+PHs56qJjtVH0T5(Cr93uxrH*OChAfroD1x{| zhVz>E5U-W3v8#la@VK^9fMSWcS-w2e5f*Aq4Xj#19fu(eh(Z(-1Q)5aM4s_UK8MD< z>n%>Er>?oMzM2}rAw5^8W`wK3u4yXe0HpjoG54QX>QBB|ePh$pf#y3OF5oW%0GdgZ zchU-@X6hU_y^M1TN)n4D&fX;YoKAi`dX$JX`e9GUL6WMv1adLFGGU|g~NDOZv~{WQ7w3GzBFk2S4xF)cGC=ZH~ut^vSE? zCCJhQos0%0z$Wb5*zazke}d0FM`wRhFc=*0)E+EkeCKKG%?N|zi@ek^7j8y8o|a?6 zVZlndc1b##?Vz<#JPTjhgsd&W)h?hFND`&c{}tv1SGs2jzQj=anl!??lvzmWb_8&aCp+jo9gBRXWBcuN~`w3ZmlKaf-(B)pd2K(k0f$S+=ioII) zzXE|~V?GM$)iJ%NvCRZ!=mm+-OQS~n%|*SES{3xkKai6!z!EK_LxD#|L26pIDt%vLhCFjybbR#=uPi4TGxmMg76 z?6Qi>Qe)J|FaJ1}SF>@U2EZZ}YB+FDIJ6#y0kae3Y$e_T%ck9!*uy^r$;REnGl<(c zf^xP5$F2tT$G<+Xe~I_^6qQ5{!$PJ}^$aic?l1~PKYDCy3%9}Ml0hv`8!MGLSLqBm zV#X5opyVo-vc(G(56f+6gct((Y~wr;_i7`2|GEe$7YZLqlkqf&13gAZ9HD<-D2hm6aI^rKJz)w_}1s0osD z8E+G}u$yFjx5*(AQ3LLleu|hQwk`=`{) zZMkIRT|DJPa;Uh&$K4GUs3U;TJt73V4b@x!n+WUc6K4KXcJBuI616c}3l@}$&=KAJ z#PU;C%Peu0^z5LLs(>5}<3BsOD z_K;GJL9mS4tT6>Q#o5&rnzrwPKBWu?8?KBr{J?|9nB0!!)-f9F3?E|qg{M85j4XcT z*A)tk5ME%++4)M`bb=cRObO|2vrk8^-7T%unm;FGq-MM#OSjfs%yWn<3W&C?G#0R(QrgXW5>fZQG*YZf}_clZ!}mp>WUjr8+RK|p8cB#FR%?x zyJwn(O11*;JOEaJe#{Fg6q)?hYz^mgza8xhd*9+IM|YCNAh0*+eEIF@=@HhHxG#3= zu48QcR+D@xRs_3aJ#D_#1@A)N3Bx$JfA8CH|65TId&AWJKK(yH>-@zJreNB5Ba|5^ zdU8L1s#yjFzdmdK$BOlDU&Bovf65Oytb=t{KzXi-)hqR~SSJY{{3Wa=ehQrnw#?rk zf#p$(g04^rVZFD|4c8L&fK+da`Fn*?P7s`IM|p!PhpkO0XHBI{{!J_{@GR zV#(YoH}-x{AFUL*7=HllbP9PGs%l@^_-f0RFWNSAv;&gk_d|~+evwE*5A9y7M(fSx z4R}7vgLO$7l-9FJ$|m6D>m76Rg&9c8(uYIn<=00-GNbu*{ar*t$pZaCK36E_jo9Ee zezdNIC2VrXKhCoq+vDn0QTaXo*l8Kk|59t|>^w5b!63hed)L5lQ2xeO$S7TNh{)a7o~J>S{FmUSjR1Jej4bfafE!HN>$=_-w%n^8h#@Pc_($ zNj)$7iHd0gy@F;yFJs(wX|9D$lwOxuv!`SO_ymsZ`irW|+q4XI*_3lmWW4_gjXmv`7a>4u52JEhP+Fk#lNS76YQD z6bU|`Q_Ejz3D57^hC_FLU~Cl^;Dil0QNZGxHt|_8Ga#% zI^Lc^8A`%9)H16*grKJDI0f=r1J6~t@uOYhk{0a4|HwLj%ugVAWt*$-o|D$ zVpl_O#s?$aVRS_^DqcfPjD_xQgYM43hv+ldf~>OLg-R;(xUrPWm==@8t`Vz=YPgGV zz!{I23*^WqSJEZMm~ZQEj)72z!`dhH*64g-`R@gKoIpLOjIi{#E}q?yzxtX;+%0oT z`}os6rrxU;_oQc4MD#db8&K+}aZ%=0;FNtijt_SA?E!jVu^LHpo3w*ol5@TL(FldM zv%}@kp!JvDvct~^YpI_>m7Czr2(AxxY=P;Q-&50cv|BVL2YO7o>b^*VL1e00N%o(e zX)?q~rTUGVcn;|ZrLJ`7zR8p~TwhIOuW=Y|TkND*3i@Du8g8uwiisW+34u5Z`5d0;LBtJ|Hln| zoBz>n|0CaE3|2Y?8UbnSU+!erz3Vq)10m{>7G*E-C6=`2?=}fp$VUL$l-+a{ilX|oo!)tj zsK_C&Rw7?+Rt#U5lI_O*Sd4X_@WIF_inWThMWl^%M7W8CK#iooOPDJzG*+eTTivOex#x zJyKlJmz*_QTw)KYV)>YwsO0~#5>zAntj=ze$dVEZyr!$S3b`WFv-ghY#56-!b z+fH{jKRaCuQT9(+5ZqTf3y+U4*b~*M$0Gt@X_H5Ka>yo1kHUaZA_w52 z^*c%VPp1$W*h!)1=y!>)ozm5%fH|HLfYGI5^Z?tnxYIh6WoI&%%PaO~U+|g^M67XS zZNr0^R}a>)7v`p#vX=&6h4@RyNW-hstEx6=7q`g&@;SJyf46;v;qCwhFuK9An0H4Y z`5dC|>7?!U$89_JvI9O}i0|I%ksR~6Tt6m!)vmOm0l8X?b*2YChQl+_{;ide%{hFE ztaQwMa|kC)v5aM!92|vecVFbvfdf1YC+g5*FOIf|%IFwl&#dtrB@P9<#uIEWcn0VO zY~c*@$(6oAG^C5#27RN{bGP2eloeG+Ezy zh+k&n8ch9*pW9|0>|NCK;Rf*?mxwfK=u({DC)@xF+Z{&dfJu9t^ijFelv%w9l`S#- z<)290UAi)PbSvd)OgkJEKajIGKqgEokmNQ;>dCZ_QheE}X+Bz6IN&7_0z9QKJ-3D9 zDB94Dy-jUifA|A-sJC2qw2H|T)t4}D zwRSWg8rer(60GSmeKQ#;s0+Me)e>vFMv)(I$rl|>zbmkKI)md74i4qU%BMQdq%!H~ zoTyfqp8Q;Yb;D3-+S4|4yqdivh*`-i#NQ_1>X5iNjqhaGJMAQNFt^+v)tb0CM4*oH zA22>_g-8D25=J#h9uVu<;ym+d=`I_BZzy7m-3jd3^lTN;A#(Z2RFZK&5C(p6Gju-w z{JgS4M57p<9F|S|Nlps$jH1!kB7D1Xh6bxZ!afoWMX{zS{|nCAD2)5-4IE)HA2A=) zgt-e9Qix@$W7Vi+MwW)HK~F0}<5#cS%Kz^I2Mc6}-5rjJ>x!h0(%L$~zgSXp=s6S< z#tC?{Lu=}B&?Mx~PCokH#%te4dFM;4fEIL>vkq43&085dJAb>pbUeH*=`J zPSVkX3r;t@5YBCDvbmZAbP896-0OAPt3oP>?fZ`5TM1BB8pYnagM<5C+>_W z4&nZ3b7o#yWL}eC!K!m!nH)|E49=$Qy#7nkr7W=M>o{2Wp_4^m`6~2|G^t33dMw60 zb<1(JbT~zivD`?23}Jvi#_)oI5+3P^7uGENKH#F~uj8n$E_r1Z$|h@#4zHqh#ESX# z7;3UG>JqGER!n$ip{RcZEO~iv&On60m7o@n2q)oUJBXBOBZ3?~jxk?Fl#r5Yw7FGV zZa>gTP;m7Akli|X^YUoMXn(aX*WFs~xzkwyrJjZdLtVNQ*`l-3{@t`Nul9*D4ZoA} zO5fVW$SA)qNkwAIJPx(I@qs@Ed@K`=q{-=Ftn}XlmxepLLQQU_OHQgXIfPUJEXA#3 z;%}!Zvgx)8%abcbRSg{{I4ZQH87)X4vxXm@1lX2#fx5e!Qs^1IVd3ElT@CVZ$YJfV zG$F+_Zq~sg$B)@hNlxn8+#8Qc{BAFge1B{AR@AZbcYakBRTL^6CCceok0;W5uo1Fv z?%qfpz0g(&$)h_UxRpbL+QO4cIbr)T6Cx5IB2)z%2E(Kcnb0vT2HDn+X`t_HpR zR+&8bGQG;S$^zS)3j3iK>c6+_(-ZWi$=Ced>z$Q}_C+9d z^)65doP1&duSMc0Kbz^|EI%-LBFND-s!G5Q>A9|qgisI6zSHAkjN;391soAj)t>N4+MvG`G%5k2Tz;pOx7 zGBKXq5td?pYXpQHI0?r@qh5|=N{u5h8ND0I-)W_Lps6*wxQ0*pw(eL7YuUmD3*USv zIe;V(-IjbnwfHZ!wvEd!!ugxl=ydg7&R6dX(Jga}>e+nqDzfV|i0a(j@K`6(CmkU* zv#7v~;|jJ;=bV!h?4D5z8Z%At)!AqOt`672mni`Ez(vQOsWp|k=aG1aX+gUKPU)r$hZ*hr<9NGEF_68 zjiweSttt0k?q{P8<^GJGJHx6RW#-qdJLBEwK{)|WyKqK}(g!pu)Bqjfn91xdf9#qX zS)eURye4V|@6s>-L|kt#yP#|HWmVus+o)W=XshA@j%gnT<}&EG#?nibI^u^#+@au7 zRNUXWm`Q$n(U)KL!q4APN0XDjwMoQjPS$94Wp&lltnT`Kuxu)!WX5dRh?Op#ACm!# zCj`L}Mr@(`uj#WoI=}?Q{!dTn+T4CGWCt`a63GzI{$hTuF&ATH&&|5b#{CkVg;fk> z!Lz#Q6DniNk59aFz6J}kQw;JL7hZ8O6ZStbJYLNL{Y0Fb!Y5tx` zNM}Nk_Cf&cb9hM``gG>jsF*RE*+B}>1Y{cQKt|5B*>>Y8>t&JId&%6+apLCI2@Ayz z2m5mu20aKyrrmH!WZ|EDB&mVm=#O5y#hMwFF!1^>admPJoV1hOCt2~%E`v1L>e~>? z)O@4tCF7W4{!=VxEMXd}sBGYlW0jj2^YDya1v&KukTU^yrnQuEG;YBjH$D5F2Xlhp zXjix;P|a_qCm~!+Ntj$=j4OSe#-f8Ag;J9CRxSaX|Ld%!ouI2ab%mkkXGDW#H7z!P z4n>{11zmw-j^nx7^s(k8Gp!;DAkJ*IOoyTbK4UNC%fhmQt$SwPa(f5N{k8hYrFVp2 z_6dHV^u0_B!X`#FJ|n!Ld8%lL;wfXp`ZI8A4RQ0+k>C?|7t`xv|D*N;47sr4YY_tgWM)%4YB|kE?iY`IBP6(C)Fpc^tvO_VJK_w z7z!G+8IH!Lvj{&u8}7eQyv!FTz;FenI7xqvX0MYnRh;Vp6q_)G~w zMXY`1H3;6hK&0?`ES&D8@MGR-y)u@uWJw||5V@{u)!E0%|Kox1MmTEd6H=h2hYg!9 zSLy^)lG815qFXs+7Uf#gqMbQ-`Q5=zqZ)5144q1sp^E(W>q3+?_rS6(t@ z)ziAC0lLQqr)JnEBrC}#=)3F6ohJPJwH)`ID@^Y*B>}(kWSA<8Is!AaY>LO(cY#T% z@RGFuQW)lXN3*2eyzLhoDvpsiADbL7%i}=)W{8Z4W6D$9>FYjmP}Da}l?+nHEtZ2kV$8Jr?ZoCIYx-qI3s z2><~m-sm2B_+o|9f^wSVys`{3>IB~dp)=C9yw>TLWxzR9< zyw-O`(w2{TCX#|mo}Pmi$6s~~yA+})@K?qf`HR1iFUfK_W(&xXk`1bb=AB%2Zoc3# zs1)t~d|^mIyI_+|wFWJWCsb6>T^WTQ5u(Jfz(?xkA4iB=fvk9>86!EPW?Msm$jKVT zi32x&8R9~D*fbuZuBJVDA^wEQqF7=LeO*NlqCNueVSdYq09k;vC!jr$J6{}3pcaxs+Ctq;XgvX=wo z62Zf4aY~q&hkyOiqeY@#!g?6Rs|If;if72tHf!>xbW zZ`F-zcX~Y#ET6Zn=SVj>U>%TIFKH9u(LJpdhO=8Yx)`r0IQN8qwfg%cp)Q>yBr9Ih57N7+pox@Gbf!m{k_dRGCJhpNf` zku2svTQDYZJvk)F#w)O)=Pd|Bf)tsbpRrpu&`xq0ATv^5urHp;{^^}CS@vRV{?gcX zw5dayc=NikZ0_ugb%5J04^A9UcmII$K7|o8)or$F?N^yKTX+S2N|-E45}bB_KrDdV z-u|lvP%1v=s~rGa15du1uuiKwhekH^4zu+?>F$&uBm0U=;Nr|{j;OHRKYt{qv%~*y zAj}9L2`#VmJ;GZqNw6Jqu)&1^s9F4BkUCd)r4lCjkT_)vdnV?tMO9a z9z00C_!DVJAtVOuBFJI+NJ;s@Xu|hsKA)pU=lc6mzH6|!#`3+4NInC--5vbL{en@? zB;kdXwqcuL^_hzbwC;QXK{H{1MI`;IO9QS5EMrd^+w2&JpI$`Zl!E7Z;Na|Pez==V ztZRtWsQJe)4JkyCSQrhHE{<((rwjmEHU&a|^>H6O_6+LAAY`FU>xiR^cA`X-mYN3k zA{3nSFl8|81c>D-zmulM;KRCm+fpqoLlD$fHL zev#YyZ+A~jnLslX37Sa6)ITg^A;>N+vo70vY#W!J2Sm486G_n_2v*g8lh;Qxd+ z+hV?aGu&NWBsbuNUC44ybeg7IJbI;3r(vcs%Z+OY(y#RssYZFr?<@e3h@U7Yhcu3) z)yGLjMbaM0v0P#W-$!3}c)4(WF0w~F@!=ITmhmhHp0`4_-a$MqawKHOYwfA+l(KdV zn!Y2QkF{=va=(MgZ@~RJrY)M{0FO4BA$bs4+8ua5Jr@F+*AR^+|J$&tFe?Jn1Sbp) zmwdbrLC#9AT56nt*=>-#4-iN>D~fZcIV->Gfm08B4q$rTfW>*wqyyu=?~gB4I;6>I zF-VNn0Ofdo)H*J%G8?F`V2dU3oGz?fryw*zKDC9_5;Y(O0ncylmP%Q6Bc10uiimpV z`lgpr<9T#-m-!G&5qP2B|G@P6{AF}vHDtpif*rhCQ<4igOqTOG*VUtNFSY&E=M_J5 zI_+~48_kJG3ty*cN34FuLX|Ba>yE+&t*fw=dc3m{vI8PrC%Lr@o#u73V)#2auyYgL z%qapKz!$kz-bu{_>BLDesDEQg3vm=|)WuWrJk?A#TBgNG*^}_JJf(b;6`V z&br!;yVFaZj9y?S6?fFTdhM*TKM{d zx9`=FA%?LWdz>6VrI(CGQO#YNVncUPVEM^c^m3QYX`@hsfH=93()H~Z+)JoLbpjEs zB(2kT7VJbKy1qP(b1j24`|8?3xv>hfvJV-Nv{5l%NNOP;L%E&6c-iJv|gdj6L zQcD{M^W-8REN~I?^w1!LdSh<#w!jH4nq1+`E$=dn{`7X{n&Q!bj+I+zu~dF?-J(&3 zcJ`hNY{OS2HC$c{nmcG{2*oq;&~sDKrph-k_@0`ZW8NlR+xNTXY`!LI6SMyH-SnRc zYegX=mdFcZL_m;RTMD>s=7*W`J)^?2jlhfs7dCim$YywGB|m7&C7=mgWHGsU{C7I! z$YJi;tX0hf2P}NrupNMJcRBbP^g7?(UuaYx!{~)6Soi`vb>ze@`#0*$(0DjHiD7x| zX&ZYqiHlB-^~$d-g#w#{t;%5!dnD(=ZT5uI2ykXY>?dcwsR;Pp9rYOy8=-g)Ogj9k zb3o~zyVb0!5>EbWIDs%F}qTlw|q zb66sc`RnG}^7&QpTYn&$j8S7t-$W}%zjOw+p#@_Z}Jmva){Gt*A2WbrIxC|1EKE>z6&c`{0RR_%wQ@SgCho@+M*#Z_uZ7 z!nkdSs1`#9i`U%O8p;7XMiYJB~X{8RQ&f`2z;ML#!n^0%Rs&s`F8wyS@Z}kb5nPi*(&x4pBQOJ z%J1PNcDkar$aD)e&{4%DJp|5e){<6I>^_7RbR*qd!=DT5I(^8IU{Z#%DX*#WyFU)X z0lx7KV~&E~B^3%!6xg?ezVXRsFt>^@jZYkv!AcQ3S_d-^*j?>2n)y!Bt%*B{ff=Kp zG)l)^Bt8@@uT*|aEdm_f!7O&2Qhs0-i(x7dW`7j$q$Qle8Odn|=uP^?q1+h(D&n() zJ>L0EphxQehdPK2X4gvF!q|mIfovJli@7SwB|%57HgCI+6tGt0@@mrB)(F7GQbm$G zf*y0}ozj6j-)HohGdZVo(3$ZuwFi7MF)8dAL1CAHEsdgIe;(^ZHmjBF|SOXyM=Dl;M z|6nw$jYDWk1q8$IEB=YtvRVwqun7EORcOQ>GhhmB$>h>aLL={UC#v%~5TY>QT6i8+ zG1^Km>KYq7SQhX!6GvuSz5j_2MhzaYcAgk(xJUKJVHrg*Y{0?VWWpLHMq-aZ7QzSk$c zSp8=HN#2k@0ZA%g&CTUQ#ZuIA@2l`gd0N?q2}VUzL(bMkd(9V#k*~&ay>LT|^jn@L5IJ zGkV893Q6TIo7%>4Wf=zBcqpuQ^S4W)cmeNIkn1=|q z?J|&&wdSFp19tq+5B^k;S7si#7xjdK81)_h{Z7vD9TaLA7o6flrbzc1{*xr)2Of5X zk#CqtgkVn`9g=rq@Y)b2i9bbnO+e$ zl}oTV!}Qs2*KzW<5dXtZ=kp3>ul^bRzB5N9dhVz)3QmERaaVEia{8E*`c6iKB|7%F zrK6DS9Q5=GW|?y`$u9^+8K?)a4qi#6I^udqH7+fVrGgzc=RorQSIVHz+zi^jyS#U< zXMN4)fNiQRxgz)Phz>sQ{KJ-Pmh_7NwKO%3)>PsZT_a6v$(E8=gKa z>1$wmMmO#{f^{?%jhS(@!J`GaU!5NDlN^RS&t3K;wqFA6eYDfVNME9m_3vPj7~wR9xzHYXkuPK%3)A!FBD~O{>LW< z!Xt@tWt8k-p+jK5a+Du_1*3>cbF^)k#+R~S0a)5mc?kB40u#iMWERMP=Jhrw^RK?K$2a!Q;zB;57WJR)g#u({k0}wGa3S=hP z*ri9}c=B`CdGi~O5oK~z2r22RmSLfJ*BjQjd8g%>FYog4&+qg4M^@PwNTSmq0wD$l z!#=a=3@K8L8_{y+WRGW`yUn@d1yVuu5h*itRwNFC3#ce)z2wH7!0PHUMo)RmYt}ik z-Y3uVv|(}<9~-1JNTHFYOq<0nG8#$d6U#x>(8fgeMnFH;NFtdsWPO2XQWo3@iJd#T zxkvX^a$VTS!Ic9peDXS5yESf55;ILt8RBkDc5}-5)dP;b?kM?*9$9YyQsW6AB_arj z8c%9b@WEpOX-lOQ%6VK6%tK(ZJLh-~wn;?v5Cc(4f{;Yl61_v`nzR(MjF%MedG|Sf z<3GH_rOSIX=jR4=uS_(+Tj?>)+=wvwz@a^l2@gGt93sTlSZkH6+bvMq~%>uQ`6 zRCQp`E0GcQb{k&4u*GXm6%Yblm#p8z34 zF1_vAdQPu|(NaG}L3G4*E;$=s$yW!7Ydd_Di}s2`!Qs_AskSgUhwUsvrY4upb=XdD z`^JRTBO8nc5)mZr+|nN@bXJgO3Rt5odo)c$(=?07jztv(#b`)yCC7RtMhJw^?C(wa z{AWJTnfp$W$%v2(fkB(ZuOuP??>aQ8q7@V|f^&hoP2309bp+BDTB;Pwf`#)z2$a#} z{XSA^OrCMD7kS|RbG+&GcliJO+NW6G9J6_3jXck|dg(eBFW%(%rlnss6yp(PuSZ#y zlyXj6*R*BEtb%6VarMe&jvqOSRFPvx$K1KI&&!{`z)DZi%T0m<%fM(f!duJS&x!LI zAwZ1=iJgHUxGuTLW)+iZhtZIiNlY2`2b?{5hKtv(aeH!y{!vNYFPZMlFcv6Ah=W~} z64?C;Z4Ax4WujoBTI^cJ%El7Ala8_&bK>+_qO;gZMeJMVcROrv$S{K<%kZ`5?%n}{ zfDw}3NGv!oiB}<&0;3T95@ifp3aY(527>`@HN|BO*=WRYX_>8q87GDXPDJveNVgv! zQcK6$h{?sj2;hYx(=lvWH3Ct!7>Wh)-=x3I*+iPy(`zad~=7*bEoJP64%V}F7oi(zlBqe zy!oE<=6}>&+>dC6O&)yE~Ht?ax)ZuOWa1Q5i4(D(VMTf8TWMz+H zw1iZ1bgs~uCI*3X4%@b5Cg<+{jD8{MnuexrD9apWa{9wQUENa6Ya&qg(!nmKb~e2C zoY>Gb^NyYEhGWMJ2a}4n4Q#CBl!F1Tv79_2Ik9nu=P&N?xB!QlX;9d55)b;RHxe6m@O6JF(oj-QXOYJ2~dqM#*595u?T1 zfcI^x$BYqFKq*0_Nq4r1xxfV2nv^5HmZsxF+#|&~} zjC6I)&U0JbJgAu*S!K_4*e)V$O<@eBfp(`Ne&IGp$7jft!}JV7cx>BpaC@H@zr01; zTB49dB~gG9f}xf`KoV(vU^=T2zGb>U!yk6rtn|2aeV@l3IZmb>9*>YYA@%cN7T(yR zH^2+Qt?eB&g3&O?x{jjA2>~QEnNB%)lO<8CYdi8hr)}DFD9keMP6L;(Th`V}&Yu}k z$bjn{LJEp3Cu9Xaczo>8T2u5(5Rv)bjB3&_T3#hYkiv;6MwJk9^{f4q~T$hiOfIldesxA*s1 z3!Z8|rx^4RGBD~Jp8nM5DS9QHjYI;&LBY!}JWtnj%qKH6u-wm}>zFvl?SqzwUULp% z9o5}EG9mEe5*GzJFA1Sr2t44uWcTibwIgFnlO@Mph&bD_yuQxEOG|wE(@%3y9WXvx zAlD5|)e&vWyqVBtil%UQ6A`6gxHe>5jA$#1&iXw1@CFA}dG~b3^tZIePT#kO|Z73 zKi=T<>)wr2`Tx-G(`%E+_x-Nr`MdE?{2DgEPkhE&qK6(bF&;3M8fwr|gATT7WsMuR>v zq)15g0Us23AsG#GLJY{fL<+g60Tm!MN-K1932zW25k=QHp8L`bmP$oz8(QJfO5@rN zV+>hQqBBk1%<1)eh}aRmTW8-1pAV0S-q z_IMIIOs22 zPa}=Swhca7VgxD7VzUlfJ0(Ka1z)1s7Ov@~MS8&Z}fLP@%=!;KxsMFj6rLZ()V7@%v?J!?MUPF)j% zM@Y$NFrY65qk$m~R)JLx_V&4bYm2(=h)5bASzGCYHYhC-QGtjA@4*L(Tw>c9QYnVx zBYe~U_748fU;RzikF4^JH=gHUd%{BxpXK_EJM8Z4(dnJL45PCrwWYoinu$N~h3 zYa3kGQb@^YsZZx4lg@$3SzcM<^$(6HTx4=*7g3s2a1deC>!%uHFX-wPX9G>svavRz z%rbPIlbeigTA_LcU35(LC%oZxk5aV_dpo;K_x2D<6P;sYV+A2KoegNEshWlmCH=vG z)t+Yg^l<{9i;A7?DP3!cW zY;x_|9j*iC&Yl9T&`J{8#PzV9CHhE~8G@47uH)R9V=S$X7!3N9c|n#Lgc1mumM`5j$N5OtT3+++ucyDX!T-pZS?A#=o^*dI!Qqt&5q|dbjuS({U%2lO z@^CnZb2x`{C^{U@*KDLT^v9d*?Y)fXp;U&omi^tDwPB#CYmCXzD$%#C zb!3^L*YBr;Z1fmo@YXS(&r=dYC%T$ zLQ4XIOs0IlcYzo@QYS!|l&OP!V?Cp7dsH-pnA*WoN4=y_5aumyo#2yAsR;cH+gSR; zg8HCC-#VZel{9xd>RE?AvW%W}^hXArWh^fjY{vt3ryaEr$js2*smRAU7KgVMH|?11 z)kNztS|>=HO?7obBxZz+fz}HODeykveIPG-n4(XlMFfkG1#wYFDpZD)5@iIF%JSmH zUGgGhy(f6^Y)7}~aDe|HBh13Nnv zt9{Apl4MXy+9pBS`hz~>XhL_K;GNYfWYflv1g7HY6D%2q;!p5Y~}PN%8+<@4tdA z%kuM1?6=%@$6asJXO_2JUDXclfX2XsMj(dcFovUGC_;*P(1RW{FM3iaq!)%>IE*o3 zkkSlD(F_O@h9J-Y8tuEQx~scr{ahL2^h=H@h46i^zzoym`+( zcb|RMS^sZ+rm9d{GdVb*na=QDQT57n?|V;-k+!oO&&G5iptK<`3I^NTY!n4rOJ=91 zrk-{fUGilj=$e2CGA^tt~UG3fk!uXFYPzLy1WA0arI< zS&p|Zk(;#kq4!$i+~vb;k5~jLx$}NS;h^E&!5VSy8Pk*jOis$b6{A}wm3bWGFUFD)|c@}n#r7#*^DR!K`Xd@!ocL% z80gg>o~C=JO6a82i6YfqOQ}#g!zhyioQ+uoR{9iP83o&$t8A=~ICyZ#{o8jrZDy2% zjFp`cqd}icOB5kBqXdul4(~l8D0GNidi*&a|J0vB3h_N%2LI}}9KZGMpKPfpjo^_L z$!Z~ZanEzy{IkSFt_2S*3nm@BcbXofb?{fd>3Dw2u+=+Tzt3=nGo0a!bU4HJhjdVi z;pRCGZ@k~{?GYj(V?>F73o;FfN>U95IBT)alc|MFzez0?!F!a_bZzoSL+W!cb%79Y z`TU4)y?Mfu53h3N$}+3VRSF@L8NzsiOP*>WGL&+B^0`$WzC7UT-`?lH_9w8XiHcM+`w znH2cWp^ZTZMOo$$XP8BE#=(0JXr?K#+_!;dS~ERu+4K?RIy#dvcgZ7MMv0FC=Oe+# zMH;!pxen_Eo(d5qF{&gP4-q9zs^$!l>8#!%nUdFJVJEG^}LNY^3H$wFjl zP(akg(9q3isl`F6q&V@B&{#qMAJeJ7Yb|fSd7JIc^tuND!N)~*h@ovQN~Kf47$fzp zMoL3ol(cQ&Wj>uVYvwo?$jS^61KsJ2HU^e^>&#|T z%CexYYeu6bq|u9N!GO_*UYUm5(|h+AA0E=SEk#*UWf|6XoX%<@l6=@twZSIGn2e>o zV6)1}bAvG&E!79lQ-r{N)9|I={SrU*OFv6=9w`J(YiVlBaFi1ljXPR6a$_iaeLnue zhq!-Q^Of(s$L{6`>jG=*%V?DbU7 zdp#t{S|WTvC`Hk$hyj$4v~9!j(J{k*kI_;|UX&>>K}hB&6Qop_UJqkRIy+%yb%c~D z3^;~}=@pQ)&Tmo<`*ib$4ncos6?el@Pv#7VJz_{iL6(`M zxC)W1C^)*a$KHFlAqXx#b(OqV(##uT@brcw>|*(eokbdx6c$mDmleunn5;l4jnZkQ zYU?^tZ6W}HZa$+BmW#V z59X0yzy8k?4$o~VKC!F#`Ky|XBZ*OP^EB`Ww>)3I?Ro7m@aYTb>(6W`{>FDZ{_kJu zKKTAyl(+;(Dh|uz*w@ zNIHp&As~f98iNgjh+we1gm;eJb3(WJf{crKcw_fMjANvqqL~h@_&z;-HeDV_yF`Ld<*;>bx23_PZ_T+iN&wlm= z{^~35kXJo+&#z!xhqoQUMe;mH8iAIQqD(`j)G9SCbe7;f)^>E0IkxG@2gzm;y-2}^ zKGHT8qckd0xZs%08ct3ds;Z}V2EhmNJf~|~g0)B~SX%CL{momrlR1NakLj$#pUjxo4X2Z2TZt0RKYWGdFFX+R4cm1qk;vMv2t!eQT0(eLz#R*+;k`*l48$WTvKD)I<*S< z^jWHO8VW=Nf=eI8F)R#-r1lZ15L)xdr~W)E+Yc?mPQQ2fpI!^xn*6ha%1SBtZ+^O9 zt@`8j_pf}tqtNi@A2$5T6NZyEvRov>4M6@0QjFiZ;rTC~l&n{0>-ZVY@IC*m6#{E5 zWm%qGj6a2_>-vmzI0Fa*&EyafEzSlqodTAW);Q--QgL`(b9HwWtpt;CORrxspVu@^ zO|L4j*3ou#+Aw93*1z?BaU5hF?^320WB zRKFEEq-uHUp=DMF8Q*z(!tZ=-kH@c$c=*B+TB@WH2q|rxC=fB(FSM34b4Q*luI?Ca z-)(vG-G=W>9X8zIXFj>Z`bv*n%T%*T#JX;=Nr?nPs#7ciz5Em{71l=_fk{{-WeQ0X zCG+4YVyYBtL`3Hr=L5n;WE5+$H4a$b4kE;8@&=tF~4B`O3m%7yP&W1Z#T zsNwauPH+J>H%gv)Y=vGqNJEEDesw$VI6j)tSxaU5=>#n}kSQTw2!X;NO$kClR5V>= z@7{!mFO8B|T}G;^KuCc`5krS<9WJC3RjDOPXuP-Bc}nHaP1+O-kt{dfdxA^^g!LW- zD3h_gGGsm;v$549IM4B(FKG#J0<&Jhg2G!7s)!X@We+XQW;F16J?8# zDes{)1|cGL-e59?T}$NjH>#4^2a{| zF|xmZz{b`FwrxN7x6b=Sl8Lk~Nu^LiCFy=}>1#0=%1oyD$j6`IrLVor^;h2I@{?DY zpNyFt9^%3yv{oavLa7peut%IU^hRq)3=j2tymjLqH{RW2duN&86KSk6O^gwvG+HH< z)cYq?!8w}KF~LVnQ4n>;@nlZhr3RU*%y69p1VXkHg=T&_r=B^oUP17Ry}c<_=`g0H zuJzJ@)t%HK@qS0%a6gR&wv&A@^_HV+UkhW`Vy^HlwXOLI_AH5u{T;*9El75P;U2-k?v{bU5o56`7H)>lh4&^m`fKdhL+$ zbj0dXj&l|fBvNaHNMTn}r;P@;04<=*a}bfJ!4w(ZM+kx-1a0FPSBAW9xey|IMMltyQY(68 z#;%O0DA?;|lui($qi!?GN)TnFzg(hQg|`8LqZ(+MR%5KAkrHhrxd$BrMWwiSag7&W z*~7aniaf{r7H?|^0_!3N2Q{z1b)$n8Ph#l8UlhsDwX70_Q9v2<>iFMi=gMq8`2b;s$rX8&+PYg_vL0eDMu<1K{lldUdsvNxwE z1Wi5V@BjK2`7i&opGgFR6SPf-(uxo|lu~GIQk%wj!hABtD}l}{y3P{4W3vA=iZb87_AJLcM+Kt^h$}&Oj0;>5xv=?Hz)`paBy(K`3oBuW3XL|bB;@#qB%$+>nUl>X{&3iSORV{aDu_Je;tIrhOk^7r0w zeDa*;@wI=o3gfrl^*pY3=o3F z`-qaDjlsu2JDYL&{D8M_j#(OJ2(3~**upRBog?^EU8to55tz&Z2M3PvWP*~CYv=oX z^Yt+&wd41{ew+X37oS9%6b2Y&Knh8WnyRm8+dzykFpkfDbdxA0Uw&zyZ@zNK$)x5p z&u?($!jOKMqogEyM-a&((sY3+0{xYOffO8wboO)X15JqJq`*U*M;8VqQ}|$iVDLoV zyE$WfqfcHa=1qY-JYlD^l)1u0Piq|$@0c4+)+^|1MTqeBJ7daHvAN!(X}XjrU^IkO z)v0}8U?lH}NYyJb){N1%D7TF>(dZbJzux;BA;|Sj= zCR0o26*|kfc6F1YENR+?EU!>nptMA)451_@%W$1fDhulgBuh&mEab+4=mWOxAVl&k z!!5#6y>*BX(Rof35~RXZhNx0j`}Z!h{S4m^2q92PFHU!pg-l9KW-_G6h{Dn}EeCtY ztPKT(Dp_j;;KV{fqX^!ia+OF=rSYz%o76PZ8LsPy-V>URtjgFuw@pAGg`hX+addRV z`r0}WAVxB6a6SdbDkYQE!Y}0RixYHjJqQO;F`3TUIKM;wowxbgAH7UF9V3AA7uK2W zKcGJv;3deNbCg*{H=S^N>mE{Qe)6Y&jNknHS9tLoZ}P%NA12T91>u-14X*33-4x$i zbic$z@NI)@1Cv?DtgWevoZw~%4aO*Jm!A7{+Cb}2c?nuE$_*f?+lF4$)N-x~vlrPUrqr3l6#Tm%QQ(45@aXKPTgytT^gbdJ}WwbfC|u_zRI zUf`^!o;T!0jxm}n(==_1wT`0fk!i)!>Iw(%-o)N~57q0l{lqnF=TJ%^lxBEgi*l*Y zgPZrcb8C<7oei?dgvqUY9K3l8QCn6<1sNVw(b~+)r4rwy7JOicZoJ%2`CPOIo zK~9m7V$smFs5uTDU7KdH&*iZf^jMgq7g#5ns z^&HgDxbN*xyFEEu1J7`V?-$Clq-h%N-o49UFkm+Ei65I&t4zF%{e37V!sD9Orl#m{_Zmww;y2Vc3z zORpTTx8Lw{KYotKA6jBq7`$siczkfYci&Ol6q2=?OYVEcyzQ7+*zY{sxj=iF2o~p% zMMc{*P1*wM8XV+2|ovZactR@^>1q3{tUBVH+Hou^+&2Bkq~imr83eZ|3H%hD*d zhuAid=LX+8npw**dQ@&W?mR&Wj4*8UGPZZua9zhESB8j?DkR?z7dts@_{ul#^XhB& z@GkPv7cQ{9Sy9g|`5;fK7UzgcAx#edd6eV(vtq;^!gZ)2&7CNVWQ-n>-V^{ zS>c)~d0sJ_wHTvm+J=6Ahz|m73bfA1GeOrSFSbyUqSxd8tubq>z0`scYziln8WBOt zNbn(@+6fQA^4wFK{O-|=YS1Ionn<9m`WRytm4g|mWZj5OOYjjPC0SV!LLhrzo#F%Y zagA#_2mw>(Xk!S|8O?Nt?JPxAB1r8jzHiuh>a%Q|e{#XppHU7!3TvR!G7VHAqK)Rk z-W)j?-~)gsR}oY6I2=1B^NxO&qYWv`Mx-p1-~;V^&g|rr*~x^iX_>bjHh6-7&UrR3 zUqPBIy@!M#D^u8G+jitxvH_K4w#b@E^_MYtqW5@fQQFWp4PE1y&Za!Le@x#%KI-$i zpZg@g`Zs?K<1+FpCtC0pw2b7+V3xM=3ff!mvUhinqj}5I7ccRdj~?>*-+PHCp18np zRHZzgwj<0MRHo2nju}*V>xoJ;Zvs*V@_tUW+^20C+F6rGl02sk4b#aS)2mos(#WFE zU{vB;ix1GR6#jHhrxj+9QEEZgc643K#?~4Lh$1P7g0(1P649+B&PN7={(>=2$~vu+ z^+XUUij3)`Mk<-YWwk-Mq!K|0giHz&V>}TUjxwANWK|E_raYOux9`!NPTBp~Qz=Yy zHbeIEWNR^+o-QzXhV3kEJ!d*`7-Oh3>+EkTQkEW^d-l8+} zfoFL!>Z7!#YnpVz?2^*JN6;!@a)m_k;ScTbxBlLD`QkV3@QDv^A_eR}m@=Jo7zt%= z=@)`WFP0c7@xh~wp=lbF*4*E3`OHVQ*xBmy<(D7uxBt=WeCi|HJp0%NMIk}x)KxDc zMVZmHju1S9UdE@N-(pae{O%WT^4`5Ef9JQ}LzzGpVhLO;@z~rQ5e{W7zD%`?8Fc{=0Q(*E`@7A>*-v)F@ z$?PGBx$ecIv;S>roq{JwzT3T!XyZ^6!^xnv%QR}B2QgiL#dF$ z-=s_=&eZYE7w_@v8xOEf^87Q~JonTV!CSOQ(pzIR&ZXP~K_o;6Xtp=kxw|)GeRCNi ze|%~yBvK?x%p2GDI5{|G`)Wnk1$@_{P4XuDpi{l41R)|O&+x8IGUxzVo+FArZ@+hg zpZ)1akvN=pi@pSXtFvzPQZSUfSc@Lr)@UfJm^5j(Hc5F*RQJ z;EBPfP&BEL#AG}19%n=HKFf}xEa)!}u#KagcL-rnT0#)a#xuIs5;0VR6@)ljs(us@ zqhF9zDHkS$WFHb5=BKBW)hg}jgw5SG21_egwMQleBFJQg2p+Tq8L208_TIh0$?-9| ztXNrFXQ|g?xU@vkE7OUyNcJz4ehkq^UjD*Yh$k~HJoh+P9)BeD^9pc2tsNppq6K4uO!6Cr#}4=e&g4^#Lz?6)|{T4vUTw>g!XjJoN9TQ z)(J!uEbpFUw6Vr#mOjqGo!{VVUwwmr?;+lh9$jTMHH48 zSr7*iohAF6_o*UN8<~c8zq4@8ja}n zdURd4u+06Nv5RLGjUP-@RmEU1AkTA*HVFBH`#PQNkujlN;32Lj-}~JoU^{ zDveT_?ad*tymFUvFv6&a^I&2|m8DZ-x#$X4T2m=WjOi3Sg;53~f}$GWoa4RQV@@ZY z&PDe3=iEK4SsfX!o$GOBr-$$w#q9HYLrz75xLWL9J!n|Etnz^Mj(PmBA87r z({V#|8I!7|KS;@~F*-&|1#ROnMlu=+igK7XhB45#j_I`F^k|yMf^mx)rJi-$SX^yc zZ3F$4jGIx>&gZO@3fT%acLrpAg~2_EXEV?1?y?d!LB?ac>hA$Z}1^F06bIzM@_R1YeL>MXDH-X^^pP1fOgb@1Lsb zEKB(jZD2BKdFSSsot2EHvv?%AQP{S_*$&s*^nIM^9De8#{9+K(ND)#VixiAjDx_4D z24c~pT3=>-RO4O1dy8B&w!{$eHXsF@?(cDQaLmqy^Q@lRA@5a*%!sL(g%DEas`pGz zC#fzrGn~A4hxJDA<=^=|zVo$j^7zM}=kaHsN=-A9DaVJ$xUQqu>#?%2N^el4&_O9_ zCljQEJj;pE^N~+~m{(uA&W#)U?A<-(=yXcIC-J@oQxd(P*BdZ7I;L0j@lC+!j9>Wq zALlp!!9V8SrFC|%?ck+I7KRw{T_OR5669sZ_U;Pv$pqt4;G!dv_bb|2jaHhK)g`1< zG{-Pp8?vSgY}c{6vd!t;dju8etuE0YmGlNf6oG?-BbG-M&b2A%RY+t=*Hx)>or4Pm z7my+l14N~fMyFgA()&^AWS8m29pl@3Y&^b0GZy$RP>m#7gOHJGSTWQkhlf*)QD~J^ z6Crqxj!w8Z7-Bv%F{L5O3{fhk+R|I9$a0Nn zI=bl`6(w>w#1!Qsdq&{84y`qLo@2W?(bf2_CfJ(jEr@`Wf)EnvCPb=r)h0(5B_=P) zdMj*S`w+X2er!Qr$M1V~%~~nQB-GzSwZnROwt}DG4Bv0OAGCX>a5%#m>F}p*&m9A; zk7VVD`FJ0#CFmsc4bdY!#Aw;vSmtyd+1)Bo*3%#M5JJ(mb25{p#jf+91TjKA^UO{? zCnsI1I-JbNij4KOAuH=J8uYlhyTrF&-)DW4bNPJ1d|WfDTb#8(NPcE1QN}EK-dhBc z@4hwT(zzuD!vY}{Qp3gb1ODUx&Ex#xSMKt+fBh|lqAoy^gH3m zvcQ##75~vMJ;v|+;Vr)W;%&b2o%`HBZ20)I8$5Pxz{YyUPk;72b?a!4hHSiX%!#a% z*VTI7YC4|k=Zpl@ZNS+E8wKN;Cj>!TTe{ZZO3!@OkmVX{9lgFzz4JygS}KuBGMjbO zwI_xKA2po~%qEtVeulRe-#GHRW7{b1S(p`({=i@&toC!(FD}ztS|O?wX4ce}`}*& z0a9v^5`pK%Z@z=DPkiP)|L`BZ#@b4shaX-?8cnXjRE8{O zXrq(N`298(5y2?xSxs;bXD!Y~+Bzv{tn+;H#XGF8miQPs8h0q;* z=YPQ`2{_`6ZU153{78k$3d+F{=N#|Xh)bm?bxuB9#U9KE-l3I43Qbo##EOC#=$u7r z#e6d5;Qj+T@7OrEgUmA&g5V>*bG-N7JM3P%$h{kPh>hjdKl}Gvmu&_!h$~ zkm&)o=?K1|%Nu5s6PlA5YftQe3Yccjg`IPJ{9{k?#+x_Te(1uYK}Hf?`WacCNV(`O z(R*T)I4AJFWmdP$Ye&CVksFwfr)XU=pS84cLfal<@(gq5kXhRzs~pixI69uPy4s?( zBGZECTe{8>qa)80u4^fJ1x`Y=9^O}_2tkMu6(dq=thMM&6JkI~L$B=f;NA(@YCmPN zWDvS3#*|1ju7fhyINKsZ!_6BfT)4Q7&hiwdNNSI;T}M{r*v>MWOv$nwr8LoaG9{?% zmMA1yv9M%0%hISIplG{@Zau~eW{0QvnWI=)W_Fk5cxQQ6@v_45cXXn-*@Hq0>hEE$!UBK5E9$gbo1neEe8XXkc;Gg0WNUi+>lq_+(&82?$(ej69^1Q zLFYUVj%Q3~9h13D!&}>N;lesQyMo+!dcB;iED5&5WEv?XmoJRCaBjr6zI(`nB<6^Vp+XJbYydLPLxad?b2}&{-M;Vxa9DZQUY5ht}zNIjcCgIpEL!x##)E zzx@iq2QHoOljjD4N9QF%s8ppY(m;licxw?NrU53VE_bcdJ@%Dv++$^Vz{TxUhnSTG zw(~qVoYGpy@<3tlzsuh3x7fV!Fe099T7TGAK$Ydm1D}~hI(U!PnpmVjQSAlB9jYdcOSim-y6YK9STlLh_|Q_yXO_@9=hJP_1WZ3eHKx zaAk?28Zxh^987EO1<(4EkMZb}kFqozU^2Zp<#z~?B=6q&53)oAf)ErYGpV-Gwsf-& zAz@=>h4H}woi6Z`Ls~RClPDx7d#4;9pR(Lc>1P#vJ4PNH^Z0Wg=Jj9wJN)kNex1*L z>TznD)^cKMA2KF2b`(V-d#irQyzU4Q*49@DF`$*A7fUc1Ya7d)j!ziK0Xle86{*Tq zioBwiN1Rh+rQ!5s%Ia#5dOk*KiP7mj8`}ocA0eEllVDx|~1c9n-nR^p-q{ELW@;pZ=^#haSDU~9)IrGy!q)|vj^4p8F z`BFjyiqRlrURz#z?T}gRSX=4SxrV)i3G1sv2BRJqF7HxQIlaQrv~!Hn7_G3j#kMIN zFwYEOA!iODfcHH9=o(-7%5~NXgYa`Afe->(r&Fwczek>Dcm!|0G2yXCx7pfUB1Vhv zTH4m4b(U)0JY3o-IsfM#<&VC0kH7sJZ}7;KHGb|VuTT|flPZKlsep(989mE`jGy?} zdCqMP_=B(9Cy%S&-Lr~xU^Fe zeVzQbN+G3UHk(ltWvcp%Fd2{O5Biibt+a%QO%z0nfBwVXdEdH(qe{NC?h=R;3!@!@ASP%5HxgVGA`EpB1) zAf{Z2;FCnV?mTbYIACR|;0u3rkDZO2hc9F_^C{XC>GhO?qDYS=L_}%L(&{#g0E{#I zFjEdvB9%ccPI3bfWf~fh3WP`ZGD>5}b3xmAkb#lWWQyeT$Dxg4dvld}Yq@tiLrS@@ z257qJjAfCrGFU?lQ$|DUBVAT7iGkzOQ{J8&@Yqj$j3=LYg3+i?*Ll46D77HRQrZc| z{Beekk_r_g8n7-9f@F4l3{s(U&4mjqOspYWS)!Mhv~5i@8*{vWha#_78m$2}%~GFg zX&IgM_}Irj#Q*#6{4N)ER#;o>QT8kHyj)n-Qiv=fVlu;II;ZU%%PT`%=#WB_6+MhL zDJWAJwt726>xk2uVtYL)tYUzWs+jlp4k!za>uQ3t5WopdrV3(+3&J)ceE^ajOp3)r z5RgXW+YTgXq3|9M1|uNLG&VTuaYwl^Ae zc%@Q!?=af1vAoPX@7>{*@rZLNTZci+Cvt8>fKFFcJ}ki|l$ zdT0UkR+m#qWNfLAj}XD(yhUXa5yK*9LP3bEUVe^iANhImYH3l!BY)uDn?}OVUXgtD z-oM;maoj|H{DS5$J|_6zJ!kmBEzhOVA1}-{{K+jC7e|7R?Z~r5@C;`-!x_#M8AzW(L6xU#8n zT}#)tWMxiSRy0jVBye-zGj8EO_{cU9zZe)KD#Ua`870Ydiw|jIA4#Wp4__Xzwe~Py{Q4cf^6h)vyg%dQwB_NeOI*7& zWM?(!@kds8@%1r>%HT;Vk9X!Bp)hP4%~(QSX|zq(_GH$g4g*C$Lu*NvEB5CTnkLyS z$|@(~nNA$zam(q%GH+v&@y1BsI(DVxj`duZ3O&?}a!XlT1~%~U6Wdf9C7o@#eRs;2 zzIuyy-#fv3xOl$LkA3_i4_({DD1nQLZeFK>#bkINQZ`sH$i-$}gw*-&ML-ac8ock= z-Cp5^4`1eY|KPhke0K|?V5t{a9uAq$Bwn<%ZIg(#EME{;9x1b=R*@-9(&PqY$=APq zi>jaVnNM6L%Or@L5Nkr{&^jWNAYuvLrcg5xur9q`UDILm3S$IOORRG|{p2qFLh*$! z-{jp}r+nfgyId{`q%81VhqnQ35`m_S#FPP{1@n^`Z@hhkvyO+aEOCCLLrRd32&l?00 zhn?3P-QVMMHfQhjl!u>qVxg?kL?7v9Gb(9PwPs#&{d6Brr)kX1>h6qg@L?(XhJ znjsVL^Z7Q;-N8Vp}RW0YvB~elBNh9qS~;9j$xXKe_}uehsd zarG}4X4|>m!db6uh}Yzg(5EB~xuQ%Yi3+U&Rm zFtRI?FrY6Z<5At>j*Uz4^~z)%@jH89_|Mcvv+4sF7g%02f2-Bgo=@z0k4ImtQ#Q$5 zz+HDvJFV{fO$zxM!RamaywSe>aQ<4`^zni*ZY>w~`2TMZ zJJYU!d#pq3LGVHgkl8qYClH_C*)lGHd>+1YaWA9x!5y&{;ZBBSh*j64)90^xzJM0LvJqJdbNWdaI$%Ce33aIYk?n!ezaDuc8KowX%(rjpz)l9 z;idWlf4WBs#kJZeZ3D>06UHM;ozc=?E%UfZwIr0vQigtDHfFyN*kGkW3ZkBZh5}B+ z#HyfXI8sMsVbPqES;$>|(`FZOPG7w(Q|IR%Tj7PTU)}Ee$*NKVj^n-WrW|i`7m`Y6 zr2d_e()oE6)Fz@3V)>K<<6ks@6F|Qz?n6>gLVJG1d?T$Ug;SQC_cn@+Z?_?MW)8C- zlY&wVc;SrU>AK;~N z*_TZoi#&v`VsxV#4T}KI3@}NU^9sFUsu3zCvpLrjl03El88bw`}=w|<~LziSreDKt@vNIEztUlA{#V)IAy$RY?d zHS}ScQ!voy@-vz~Q%DlhBRkMrZYzI`EB4HCdf8S{#i4~?Y3lD2e_x{oM^*_$gNbJmJck#VC0HHcrQLD|=}c(j3!1RdT!*_h|H{J@TjT{7Qo(Qd8ow=PGh1{hj? z6rG7AUDtEj6t5k=Uks24Ft+*ojO^WOuCP_ zxA^zRQ|7jf)pd$ce!w_BB@PS!)d8O0)q~O)DK2Wd9b0<10D0{>$A*)NRBnUUffWCA z%oIZm8@jyO@=#-kkZj5y&Sp5E8ZbrlBdNx?*CczH!g|1qwsyC)MHCp=qpV&3>QrjY zFAS@iK^dACJE#{Jr3AqcdI}ROM9v#Q#3-S9apcm=J$rj0r(JI0PP0w(zqmEC_3(F> zV*=Wek5Dy#TQ_aq`AkfWb31XoUOb)t1v%>uG(Hc$Fa5i5 z`f4xr`Ht>qM<5~enH{6QuJhooS(GMt_mGAxDvYW!HTNk!xHmcrqx*4Wi8AQ_bu1KJ z$pH$A?73R@dW!!=0)SYm{Q>-VS2Af7qy6~Kd_|JxftMl4GOd$;`0k5Y)AP1fCtJ+} zdTP#dChA+35vwOL<8MU_DfPkZ{6<+Kk|4YuxR)X849mp;(cwg;U_ee9do&;oyy3%h zH#g22@QBQB3)fDNK}Tj`BX5!emeLf737>4{1|6=lXUCd7F=Qb|OQskhj9<&~i$3 zGc||yI|0gHGZ7<>^I4a#KzJR_4%scp_GTG zARdNKL`wB5K^!2VVj71!lQ}^Cs%nEkr%XU$1tSBP5vlqNzt{UhikCfIhlIe0I6MBg zj#z543KTCZQg19R)n-U*?4W0G?VZCIJr{Gaen{_Jj<&gZMOED2j%~KU zkYN~+cjL3)M`#%Bj*Kjkm^VD-%T)%?trN}oz6!xf8}*nPodu15akPIqg8%wB+CW87s8B-neBiI)J-lSUg6I>J(^CuK+Gd?nq|@=4OT2Ly~kZG5j{hmFjP z_U^TVGSVxNq9|l$04=ER%68}o;=eD!7W#Xb?)c|lo$ za7`^w84?X&4~IKp}{gA?&c1sfFf=hmUQ9t4CD9 zV`Xo$Dryg$RNlEogj5{nOq(=HNz2Gtk~$NmfzML!2M9{bkDx*5BLWc<>;|-=w#hCLWCI$Ep7PM8Yh6URb!{dQk&-Ld&2Ln;!blA%-F|0TV6h z>$)w}NbYxo_bH0{isOieRTRdr^9V`N)62#5xAUj8QXKPlu8AL6*jHF3hALTYjasVO z6L5KCrWlLv?L3xjdZ#Y?Q$qie(dq>3e%NSTd$MWn`-1gsJw8|--{E$~`%d>Eccc5E z{vG@4^y&iSNaKH75k{7-M#qWhmjeAouzmgqd&vk0Id^PtxJECu z2Wuc4lEy})dOp&u-*uIk#~XYpGA+{;RjTl1Hm0x_~`P~iT(Qg+}S{d z0yXwFt0ghEY6Q29ANk`c-+rwsrjPt=iKLrb7SKQy=&NBb|9}w|6ZgJe@RN-X5il;SjAqFQG&FOD?;TInw73 z`N>)$ca8I^GHapRm53dWP%hW8(BCV2n9jrwnxc!x(Gd^SqpTr?eDoNb1Im|XYQ-hQ zB6HTz%!BS(oE>u$96RuxKJYX&NNhdc>(jQkD{1XKTuXm7Gu@6v)HObDjZ7 zA$@S+ToH0-7oNF^q4*OEr5J7o^p4Y!3qlaC8Dhq0YEQYSHjx&|yLnl?2GlMjX-XVy z!MlVex)*+sQBhOS*#oD(2inBkS?XfO{PdxMyc-?jD1*Vi{d!OdbxXmq!jT74u)=-E z~x{p*+q4!W!O$~}7?6`u}2?qTYd3(VO&&JX?6!#v|UGqg?BBq?t zQuQR!`YO)`pcQS2Eb|0QO-J2r)4i(wYv&nSeN`6qKYrObe;KxHquU(`L@-<+DRHQ?L6m26OKGWiK$8(Hl|HM<-*LENMHATfppXC zJ`9J9OHH+=d9g(ar^=qlAnReVMJqICjj_3B|I_F>J91j2ruNCRe4kF`w~(z7zP+>> zG(rte0wils!x~MLC8B1l=Rl(4OD{-EMt>)3B1){T;G|pW$ir-uHQ#~<7r((zf+Dzo z-Gs0)$%pW#0nwD%+x-fSHRICQFqGZHv;)Pm!Y<_bz%htx1x zGqMBYXgK?2pis^3SmdMWL@X@(B2C{HD6rSmxKr0$@@hUZNUiIWGPpYQ>n%; zu3weLWZeV8cmz;U%529*fnjdY{OH#=_H3Us=_ngF1Ie+U5y{Xb%Hf5RrjTpNXn1{^&7gxEVUNm)5DN@7@^dbZkYVzrkbUikQGC&N?}iUDAg+&maK}0I&qk{ zuqL&$Qulkf6>r6nuJ3`|cez?78QmleH`UK6LxnI1k}zocKs)$8Li15>_HP$nR_t3!O}kfiGfa(=7fB zZ;ZU0;|+^SCQ10_i(0(Rz(b`356#3;-FP)ziryU`#AuuhLnA$dKvUAs56TIJmfX$> zIgJcBa_@Ru1tT&5wSZYrx$OJML#HvqgshgYv9v?1cm{Q0?#0B_UH^^-j-syQckfX)tq$Q-JX#yzxLjreh=Zavnl~DHO@8Xi}TvR@{Rp{ z@>An5_p9hY=k3e5;Ab7r zmJ?)^@Jv|`=Yc2sc=1oUAT1lRCw9Nz>Kw1DeE<03#6s*QT;c8z5KOc5BmsKS!oX-6e@zp7>S6~N)WfC3`&00FYuYbc~gdL#=s7__rl6c8bUhZB!m%_=!sW55r z=&pTUAbN8j&bzj8Ory$ca(MHLT1dwZQTqVnb}97~S_PpK?Q!sf&jc^GMRHo1B@+1>mV2q$c)@ zLK)Ku!6zT0M!Nw$+<%+*yOtnXx^WDiX9cac<{LY}gD92LtLBth{2ar;pDS+sv?1O4 zk?t~*w-Xs6Lq=<26$tC`7XEfleQJzT#>bFym=w*6=kvJf{9#ReQ{AFl^^lRXpEjGf zmZ4deGt{e)L9m9`9_j!1R3nblWT5)+1sMt)LwlOOAol%L0YyXtJvCwE*vpQXBk3H$ zTz?)5nqqW^bVg6*EUJW9uZP3 zxju<4kq?uGBLV`%lNU41<|5-McU<(Oxm=>Q!ddl6ZtcGIH~l*@%_VYzT$JITt7!@w znlRy&Td^R$GpZMKTx^*mhGir&Vqs~vzC$iEW#Sa++05E9m$>r%os!<8V+l(>agqgY zhXwgy_QmfWC}w&;J@LR7De|V__%Ryv8B9@%H%VDp`?U#TG(~*Jlu_Cic6K&+zu;1T zcgm`y`kP5@$26<8homki`jH!*;P@4PL7d%@#CLjjR|e6mzgO%<@R7MAho>~Dha;n- znx!d=6$&{f09IE4fkH_qmnI${v0mh6?GJwq1kLz33J6`ERwwM`xlT@GFb8_@hS`J+b{uV16#@)uw z$J`Rs3PIwPE+-QXbS7sD`?+{^J!op(Ghn@v@gfv0j{HM!ijw45n@-I%2=W=6hGd z2bLVU!9PuSL!;q=pFS=wuF2o3#le^{J88|ZE?aD>NR$fue8+>5GmkyB)&r97 z56C;E!WIdZqaLm@N>do5RQKE{k7kZ@-qD}QyV-Z|satf8 z{_fPhnAiZWA}N={(q7(CHFfxG@whg)zJ*pl^fp;w%GFH-n(qOrwlnf&nm7T1xyl@= zY3sVZjD$XWqugK3*S2oEeZsrXy)AYbr=8D`D}s^{^->@hSyaCO>3_32Ajy0G!`f3= z8zp5}*!xs7CyBfDv~X?+Q$Le>Daj7;eMf3sz>N@n5-GtnYz%(QyzQ9wtH*G-@faZI z@>W%%c!5*=VDHXyRABPNYw+Iv2NJS`soqbk=Ep>no3_vOs|1=(RHoja5cBfADyUpu zee@71e2C<=K%8?j!lP0(RF;==fY$Hh0Q|e}#iCESCIhA{H`p&n-07B)^!juB;KTgK z32o^?g|`OvJOpy`;IP(>9~szN4Ce1TifB{i$5CTqAPo8jgfV?U8UVo?K_P_6lCHrX*!0?ciNh!B{8p0454iEhbCDYF@oUFfI$LT%?egn^ z7{$-9MB=l@ED<1EJUB6g9Q=Bqe`tk@Z+n>zYpi;`I%+cPGNp zB7i_NU$DllNv))n6)W25h;+hUH!J&X>?~|JK5S;H!I)m*v!Lmk;U3ZRCa;SNf>gV3 z#jdFloqr=-fj(x6(YjcY);-`FA6AGD-D?k6jc!b|iT=?vp9PzfX&ODo1+ur?%yFP4+{kAf#Iy*&fjJW}4Rc zW%68HopYV^Qput!&NW!vC8$Oc=>4=8ysD}U&5y$&5%gzTr5Cul>dQ;GWWo^Tfez(8 zX3cr}i1N4Bi(TKxA5XYXXpUwJrgR(`TWGtZeCwyrpBTS(-|#49p8sTh9kpz@J2n1s zYcFXl?H_$SD^4s&qX(S__t%1rGDa`bS`0|oOxTAtVAIanW%tNXGh%M%iBUGm0Q294 zVBEA>#v}YkC^Glva?I+H2#sHqqc{C9%)-y`+~!Bx1sDGj((NHCU$=l(%r*Wk-Ze^a zZWAlc#o<}x^ZjYa$@(Mz5rW{H+~VJYV%tCIl@AJOBWlj|aPG7vB?vnD{@!RXRVgdF z_JVMRotyv!U>dVeZe%fOMEjwk%edjza*C?;M7OHPp=y5@@v+r0i0SU0f|y? zG5cQ0h@jx&S6~pCg4bB<-O1st@A)8Azyl*<#DTOsUsgFs8zE*7T_Ig*s;-pr9%(75 z<*r++@!dHeM?RILWtpJo{noC@qUS;THWw?5g10^&v8O81!4#y`XDGHzae6Q^8(Fnj zXGtJx?C^>rfUSVpBtgjOLyi0C3H$9yA!J%QTE%7=?sk7csKXU--8W+t8iNXTiy%O* z9XBEIv9eX*rlj^lBAcFl+!E5ws-{bH-M4>gij{ z!q2M4jb95N2#0ki+B9vie$HdF4&${P&n%Zqj42H(i~sbY5EsvxsS_AVk6NQ27NKE9 z4sAa%@d|~{xvZ;eX${wK-7YR0m$v?7lx!WHr24zs5fm=mJ?P*b-}t(;9X^cJ>*5=0 z&1d;VXavBDMZ{w+8SVZm7Afek>$YBlBk$li2BbH_mI#g z`JX~NTtRH{wPJJd(|VlC-G=5#SESQFj;@Eg(9;4e9eT0b8TU{AkK5G0AH68so3z4> zV!-KygMnbTo3G9U5Y{>Q0oyj0F!D6F&AxlPBp%+&6G^O&>nSAYpS+B@KS2oiM^@+MW zelG0SFIq%P_Tul)Rc?`|QgVKAr5Y%%@#KkM#eooa8VG6pi>8l;y~PU*TPq^|bd?VL5&wdCSXlIrB?D zuF>-Jgy5S$(Vr*mcK1c7LeQdBS-3`etpV4^WWM}yDIH2C0&Y}gm9fv3QqZN}M!oy8 zxUXs%S#-gmGa0kL;EUJ8N|~QtAe{q>@B2H$qdo>6vP?_0jMb+!6|gLxp^R=6Fh+zJ z;H2827ZIa($`!SqP9T%X;!S_F%Nf`qqXPyvy3!Eg3x~f_(0mP6jWCp!Z?uh&J>BUZZeuiCCD-AM^;`9K2JcE;gd8%bV zDbhkOtla7xD9n{XLksLHgE8RXsS(AzOzXF7L_I~Hzb9W1K^md|fD@`w`Ox3UyLtG8 z-KN4eQ@$dtzXCN6>?0R}gnw$}FQdH`V7L#sn@Q$_%<$ z(P_kOLrX}W8~gfQSzVZC4gO!ig6sEI6#&7y2lAwvufMkRv?++sp0--SG;zGpAaqK< zPzI1 z4%*it+o($fJhwU2Z&_zAOh8l-At$R((UF{EY9%na(^TP^I$CZc;*G0JqJ<4dVjL`v zQyoL+F2em~)Z`3EJy>;Z3t=;|+Q*!s-%L*1$(2oJh z46s96Y2v_5sa(9SFx!D-;ff>(Bzp8U}Et69YVU}tCfY& z7)~GbH?Yi4D%d5Ems=6p@f{i(O8JYgg_LBoyIZ3p7#rd}yrM`6nHf6gEX!r76sXk< zH1WAfdYScCVZRCbb{KZzU%i8Jva!i{cGn5`QLS-I6H5>l`HC{|3=Uuaa~;lFw(C6;r!CmG%G zI2P!}O~JkEe*6;95DivU8 zsYR)JIMVeJlAPLd?NFP-0Lh>Tm($X(u+#tvLsEB^bWjPZap&Td=6*2yB=fVo=#D6A z1RRflboH&Yv?t^}ukX8rQncC`u2e7*+jh}_V{`EgBMB$83)S?KGBl_Ad-YjAd; z{km^$E#mdv*5Tt^Q6NvOY6`ioWuQ84>z~g0xx%ipY#O%XxNZV6i{5G1aH*SX|$3c|Ep^ z#!_eQW%4lZkRD+qUmDWyBvE!~tXyVA>Gp|HkV38UvmyH+Rw&H=uEeA%H0DiS4O@)N z3j#XEKBJ}uKrOJBpo{}*?pskE6J zKDED$&44rHIqC8SLW+6VE18_S(K#q8sOa+Z8|B_XkiKzQ=HAYJ#(Wun>ss6NY`LAY z;{e=E?xSHn+-IK)e@~c7JuWdbtO^4}$%51e!vBKPH^c20dD%WEkTaqT`bce${lbd~ z@mrg1=2m-&Oc^-M1WI2wDaSMgJ>-P>9zGFWm}A&wEjw5%Iwodt?7kM$o`?LT6{FE%RENq0*CWG~c8#$5u<{FPIo@JPJ?1P-H;5ip3ny1uAaaA^Q`>7#^DH z=C(gQv-=p_6|(Hvs@dYGVZH6uzdY~0g49BfDXm?= z>^f^(O)Nu{zo<48=&wX2K@iCE~&;PFk z>A$8Pkn-yDUp#>5GwgY&ZN&BubQzq5{gBD<{MJM1%gx)^2O`C`o6Z$)MvAY;mSco= zcRkM*KRg=C%Qei7)EETAMN;>XxiiitpVY(4`TblQNsxUzSzN7K2>iWkdrjh62;0^FIV8qW~%BHGL9Vdvj3U0O8dpWFRr8n&M%1svh z81DE7M}bQ`JcYePz!yyq1t~ekAgR0e)*-Dvj;?0;HJI@MVPCSd+5)bryD#tG-akM7 zdFy+#L=&_nh!48{d+|r<2Ufg<4(P0wbs!`Q6ZX##FO7^siyddSj81pN3P4-U1Q}Pl zE9+|`MM#Xzl?Pqp8*6F2C&uQF%wv!Ii78KiC!}cKCP$@>bQ(#@$AD3Lea-#1QQBfn zR}c7QWEk#pAU^{QQ@!M9$c&tK==R?|f+F4=cr(g(XEXgOdO}XBrn}G0 zPL65n8|Jj@%2L3YTH>8A(Yr@Xz|_MGf=oau^2{=iByR!&^x1DCzrl4V45c2X=tqMd z?~l-p!za*l)xtH2QJK|ZQ0&PD;4&i%ktWSFnHj5QU+NvHax z-R~WP!p$Ths+hXWml4xs7R@dYrXl{_?logXTJ7aHZoX_G#hBdCFRRhW@$qD3m7kOa)*&HJCkU_&lCXmsTCGsbMn{H08`c~OjL8FJ?*zg4VU zAwa*3Nk7%9)Be_)u7r3BLq3FSUhL4}59Nv{I-P5mCdrRp0=xIi^*p5s%Fyr$&c<1e zGDj*W^Po?&L*h|~i2Y;(KBd$?MYFM-9L*##@$ZvY`!c`pfa?>kUy=E1{Du{j2|&oV zMoD|<6TyehC(@@xck~7MeL#ubb_t^GG1fvp*QtT0pjPvLMy3Bg&i#~Eu2Dxp+ZK1b z^9=~P=YQDGJNR0@hXr|MHY$bKB5*;Zv<6i4)BxfQsCs4%cK;sj60A7!Z}oPk`lZ~( z@8v9V>Ru%ep7UOizC`NDAMvl>_PH2e?qU@#k~8u%!9v~?3*>^MuLcO@1Np?pFPg6PEsR(!7Zz#`$OV(abR;g2IgT;WUq77v zEecNW{`)#Odph6`4#F#HfZSyYWX;qbqKB!daZCYT?W5yKiO4BD{Tm7e#1h785DY|4 z=P315$onAk_nr#Rix{HiW%CsM6i*4%NYOqQskY53!6j0>(M$2xP;yABLCL#^(ZC-Z1=Td#8v;Bmnb_mlVb+WfUr+fTg z&>|g)c++-$87NBomoQb;I^MGQ&XwWEDxT4jkSan9Kl$*0Gs!V}RoYuZ>%UJ&Xb&i# zu_q$c%UX(Z^#_iS&-gKzAI;)$^;P}2_1ck@s)weEL5AVSgFMPom3&;J#{cC2o0zyb z>@$aL$i1!FTTvjRGW$DLe;<=Fjc2D{|3FHVqv$#mJe_BPwwxwERq*St$ybEga$_KL zka+nlMD>lnnung=6Ug|z^;Jz#bj!(N;gq4VMK7_mEJ#z!z+lHWmYpMGia;$`_Cb!a z=QTZfBt81euVwkuF2@l|=V}c9&IrMBUXpG)RDn^KMd&{7A=sWlua)lN> z<~ajwB&9;5L_d^Wt+8|fYjoKqdJ_^E6JJBd&>QWMm?{5KbD?S9T(xi)4141nIpUx3 zDyO+Viio9G{ zjjfSC9gn2kLOVFBvqY<-zThsj9Mqja@UllQ7*fRm0f5D?R(@_hk2@&aWoUUzTLVJ1a{=0ONWW3+#kEI;Pttq#lMG$XGE}na$UEO62Rx~ z{b;3(NI4XZH_(14_;TU&QuH5O=6N@`an#~prsn5A&+AmQsWZFqfXxrGkxFZXLCn<`*!z}$w{ecD?kcxPluY#kUFjuj@_&u^d3oP zTW^6kymziOt~GXKuO)rSq0~e1hJ~UZNFR~nt924^DsHdsSi4T=xSnoGC=Ur|vg)*` z>ybtr9n^GAuQ>+7F9T@TRj9&QVVYDxLJORH_fw-fbVgZD8~euap1sR=Mm!$ij-Hn2 zvBuT2X|E||UAl5&q0GR&i9eRT9oXRM%0k;Kyo7q2VZgN1{J8EH?-JpRIFw0l<_axn zWi>nfS&hPXVwB5w-u(6kWZtWtNp!1ch;(Jh>1jK>=P;qe&NOadJY6l#psAtaobZw3 z7wtgrcrh(_b+m8ez+?@%RZP%|*_POKBT`MHM+Q#HjDxoa;v~U1gM`cJM}LwHgHCXJ z7BAAFaaX7j=(T@*x^})tnym((3UU?xPDpYtmo)%j>=Jw2As+y{g zHld~(KBN1K?^eJJYEa&&qDqX<3thPLxDn|&YjWxnmX(rkt{e`f7m|!Y4r|lcW9dlG zLfPU*A)H)Hs%lwG4w6a+E=oDD7J`DtTuC8DlZqIc_sM z3^YkzyS?CLmWhhMts|+=%0@=>Inth^Dv4HZf-3%H4X8N=v57h73K3^~hVE;#gDMLR zQ;cw3+i9OUp{-nHn$rtcewOEc^2AZd)&p=B{2J;>UH~IU3o40u%SD84;3PDZ0>g#| zrZkBtI#*>oIEelVH5*U}+~<<3WQY{CSj`Pk|te}7ymL{JM~k@z?NE$qEo z!+s$jquh*g)m25+J?4Vr?F*=_fFSD8ky+W~3r;C5gUAUX1JmlQOlChk0=&f)) zW(2;VjjA`Sm=kzaF>OB)dN{kiD%P?u< z3;!f^dNcq%n*_?wO&2lhBpYK7px;x_diO5k>G62|V?}V!E7|96PFA;FlXmQYP(<(c zm-hjG=vvQ4w)MLnKCUb^aBkYr6}Bgz(f^c)p!Gq4a5+V{bomRe&~`_MWv8;Rj{$Jx zxBh}urF$=>)G`I+0aTw~p%)_A^m=yS^=}OFd3yxdLbx|C`uKWo(aJNJVm*PPeN!$= zMxQ!vel(ytTr^>XGO-c6l_^qjgQW1&RW#|DLQm6U7AfVEyqKhU@#n9BETXi621ivH z3TiN~3JnJ|Mjgti&)AawQ3r=#&Nuo^s^ISxQ%gIW`*va{J+zOC-A#!QMZ)>M-`c;Q zmf$_!Rfc~GTJ{)fCetauOQ|FS0HgQ-PAa_3d%@YZU!bbkvotAW==*@Rbp$>#=HLQHS6TDXZA}jzyoQ4)H65V`sV{0p6UE ztW2)NIy4l$m(o(a4j$3c2b;b!eMDEdP~+idn|iy)(q%qE@L@k-`WvS6(2OwweL$%O zgae%^oRLWtUEe|AI09A?z*jNj5HS@~8Y32W_7qZlWR=h~lw5tC!Ir^6pHMqeg2$nM zhap+~4K=;@64xA9nl|7U@1T$e^I1-@GkAj?#z%KX;gOg64t`*!RGlbtjyC5Pk%Iaf zKU}m8P@eFvZ%3608aD8Ti!`aTxXCo-SI82Sn8+!QhR-_d}k)_<$D@nijT^MUS~&)Xmt|LI&&=Eh#vcO1DBF<1zAR_XL;x_`WX z7QHvJE41bd?6D%Ix#(Kxxw&5T9&e3}_GfR&RNWrfgYSLV=(3+DQ+9urwqO`3d)d?| z&A<*$A83z>MkzTBZ|cG-o5fdy^*B_INf)r&X!KK0SpJ@Jc2@tLLo7Jt2QD9rxQ|rSe8#L zlVgBsR+AU-(U35Cm>UqnW{q`mE{2?>g9FmO6~<~y%?>M`lm--VO>b%Qvzp_kJ+TI4@t%ZLkD9O%_; z`XI6NT);~9L3xyJdWvc|Hb1 z*q>G+-8Pm%m%Z>*hb^1mVU7t?!F)|SRAiu8LS9X3y~5$noR-$&O9@0XZ;7zL3WQ#J z?4qjH)F`-=Yk-@aFaw`WO7&WS(yDIX%LHw#5Y`Hi)4&%A3zD)k-kjICZV?1j-H7h0 z<3FYpzq#k`K5uY8p?($Jk31@~oBMx;a@GRZempFj)tJ!LG6McdIys!M|WaFdQ z@aI4R(qsScJ>?}L!^g*t#Ac&Ac&7i5_t+Mm(0L)C8O7I0{k0^K#(e4dWc7^gS7CDm zGd@f(fH|cvUWxE+djU%Exht#%r!cXXBO^|UU&6`Xn1rjshzk)V zf_7yLePOjp#l)`EyR@&&ZImaA`B@b1WC|M!iR8yR-?_O7%Gi44APkHYdy6NwYlQ6a;Wptv$3*>|4Z)$j{ zROVzG#fv`4t(5=1q(PsfytcSlF!RU3%QLrdQ5*XUSkvb7P&qvY3=%39dj?~=RLBq@ zR%7OrEoaYE%Z2C?z?_UHmTB}Wrr#^s@>38_XGcVa;jL&1mKxI}$olzWB!p?_?QUtC zGt|9d1Kyzwu?eBb0ZSVJwKbQ29h#!GtRu2hp>}wO382Kow%f34=ve@MLN9LwIjkB# znO-WERl12E9Uyg3643(M^Bs_X133Pb#&*Uep@tpSvp4UkK&@YUV3q-4BUMe0ppk6R z#d(=hvEL!|c|?f^6!?hjoXVN52^zm^z4?GyDUQ59{&zO0wLFm3(d=S2rq^wS&Dxg? zCa5)dPMVR}nI4z9u+{zsX0ULyT980OGva=SpAD8b|3fgjaU+b}&k%=qxP{B&yfMnl z7hi6S9&(6CZJRBxFS(!l))!X4OQ~Bs3yp)93I5Gf(;cL|!_30*ICl=x8BkQA7r*yotBl2-Z537x{y0q`?QK^!K ziNk;nn&$H~<@E!w>}{)NoU&3 zp4MMP5z!EA0o|%uDRa=J&BBeC^6!gCBp9^tFA04OG)IK;!d=jBErI_oD5keqBMhKW zewsSKZ}e__bV-d7zR!ajP-=>fEswvBA5%IKCnp~+P^C97nlbY_!_`fNf*1D!Kn(uY zL}0e*Ps^csrfB&j)^wd))#QPER-BE|!-SHYf66&1kq9VI4i@)b2I%Fbs>&I1?TRm0 z>cL~KfOGwvci_!3LM3V?c+>nXdjyKS+Dx8?BZsEu9dq~;u@SXR2FvG#8r1?sDmka( zfNR1j`y5l53}n(-NJytv%i?2qVm;f^K5+qzNhb_9po6dc4HrmCuB}?$v%F~Sm@1d= zP;B+6`oFs%Nu)gED?t+IXVpP_|E5@!5|;SXAJj4hJCyA1_VgboG}bO7L1zPhD0wAY z6UQy2lTO!vA~C^5@fPr@C`|(Gx>`|q;I^ZLxHI(fn-|bh@o-a56-oLMzU~bQTMec^ zL!&yW)9gRf84F0^axwy^$73i{38bgmQIwTkK-#Pm=?5JmRep`QPnI2wA}d6a6ag}E z<;$vJIN{qd_;=AcMs<=xdwOj___DHyPa8CUG!iwx|FGnmR#!Q*!s`V-x!t_tBfXQJ z2oP|Xy5YOn9_J6U0yw^4SJsu70k8Lu04*G~q^u;=U{$-i6xA$8tNgao{5XYp!?#R* zm$gN*d8jv%>d+a&j@2?*m;{-&KsgY=I68-0D`fP^vR*!s&hR5{sN$E12Nx11pTc@} z%BYUG$dO4Qyvz#16_Mkf^kekM6d~1f>2=y<5ppOXEXBAs?kYfeE8%kLlbnjllCoif za`mDVDb8S+@Z|t~VyD&|lLBQTfdnt;Jw|zz0c-r$D&G_iL z6)4q*t+wV=K5LT<2Yo0=6a>18Q#AVR#}@%IC*NBmo%1tM)G@DRAgfH!3{&#PYZeo5)c!M5XnnQ^77XQr@r-6P2o@gCkts}D_M?jL&J593b&7GFaG=N z#Tpx6)15aj%rUP6Zcy;m}Fb>#5j)e?_gO8Jqs1S1wyy zIKh8Yt2>_J&NI}JnWm5Z3oZOYPLZ)h$oa{F$x;}n^?l4PcsyQzSXm9xnB$v+Qbm&zotz0-kwiss}nr3aG@@WI)&H$Lz zayiRmPX#WU&EX0^cTvtJj!mAe zvvb5LgE~ACwgW?X0vu?rdGs}3a1z6u{jxsGie z0lltKS%(8jm)8!;kl-z!En$#lIW7vzDes)#MTCZVD=aS&M{wvXX2Pp z3WjoK^$1K^r~a!bRlaV}!#u+J)n$EVjLSSvQumPe1^28R7J_jbsYZFG`ADf2H7pfmXJI9!?E=4e_wSE_ZjOlEI_1icNldC)^z~+0 zW~qc!&xx7jQp1-bwYCt1$v0VEQLmrNl&TM1_T$o|B$@Dcja-B2w2^KEnb3gO+64TR z7T~4^<9C`j=CBkCNU039-6?C><6fZGfG*pW#Yt`n$8Rv;PUx;p!tsS zWlSlIG6{5#qLP=qsa6JXN`cwW!hz`(;DgP-U1so3$vb8_5xs!;jlujBZ=4X-TLJt#{?qke=(G^f}2JczSTJs z;3v*d7TA`%IwcB7TTK#0%HAQL^OOMsawqY5zlmNJ(cA@S!W!{vT-d10C|JC6SodZBg$EQTy10T*v88uaw^!vP9qjI}}U zt0?^Gcq8STR;<@^`_yp}&Q86{x zQ?vrbN0e!cq2n1^8DqAwT|(ztXImO);y6$t0>Mm&k&7I1Eaq`i_Mf?s@H4~^Dm5D@ z;i$HmR=nYun=>7HDTUsWQK}{QSR8VSWviM1X(@+YU7~I~93qO-0`^QSJ#0BSe8RZK zkGPtNBdk!$qy-9=?;Ux`6f^MRwFL&j!I?KVjYxNA8K{p>ab$K32qbF6;4#~kvrBsZOvCyyj!myHN0ut_)ZiBK@63=$4PY zse{+V!dRgnaF#lMsF|oD?4+F|Lg}LJLYtr*=6zw2L@8D=9}}*9!GcY*OwHs4&^`#Z zokxEiVx=N$F1S;q!fd_j&I9j~Qm(_nmY0*?aB1*E**xfLq?qW_o#iitUL+ zq6MSC415RIO9T!|S~5d$Nj0W*&qPYhZ%PLZCNLSaXx!kC=YH^cjWUfwO=aSKIA+Fo zJ5TL3>T-Ii83758;1E0sNFY1qCt2&tqh7?;ru|}rDm6^WPt>oxeTkIQZ{G)pK-aH5 zI^w>=C=>j`kGOWJdp&oGo&aST^8r|FGTc^+M(#w{zCP zG1yQ%T?n)X8@{BcPkg;s63D~OjZ*kF=4J?zp{G>ckaY z*Ie-Rvl3N1Y^`ZOzR!Dw;gkU(e_c~7chwm6cVMYPw|1o1<|+z`*`&}LiK65I98AU{ zluWlgy30bS*b5a1B1J~pF*xutRU&oq!^e2*B4}>hA#xdax3xta2tYCNsq;SaYjp$R z8AHOvcKRM2IN||E#mdz~Uxa!Bm-%{9TeKE4;l!A^6lyG~6-`04zXI7X<%xCK&>4^K z*sE`#MPIm8Yis;q00X#lA@S#7Hib>s!?u>K}Pav9TKFiq_6(prWEy&j>S&e~nf9N+9@X zf{C^Yn-U~9mHz^9QP|>x`{PX&qhh?uUYEy2Q`UqQ`9Xg_$C1O7$HOOxD%J({O5Rt4 zrxjt6iF)dCjOIV7e6yY>^rP9pk{G4^{Y6UxWm~jpVs`VN`57}?Bl(GKqnhiPXvutn zX?QW1F%U#zVxA?G7NLAOC^+!2Nuoi!Tydwkzkk|xGn2-<>VMRY>bYC~(PM*TO%94w zp;H@}Bj~Qd0AnDC%61wc0u*aAyVbS~i2^ZOTV}=7Y$-U(SS#2~YR>uJ{iXBG&POi$ zMQ*=`)4Z+Rmx&Sh^zWCQ29JlRaq4_;-Fn!I+uL)JR0JZ(1l^8)2H|M1rl~79bt4l( zLkk2WV$F!tw2vnx6y!5YRa}69@=PFzg``nUEXfi*E zu1&zqtuMHf&(_01u_1m&fG8?fQq&_p&90RU-rv0bDTMh{P>wK>A#(e0uW1KKV{&#j znnJFa)c2>Zv&hbM3;Pp!bJQpks`^373br7Q9%9+eKNKk%F_Rfr9Wj|=^KYMOKxNTC zNZg2s7d&a1HB8aIK!O@k06O_p?wm+q=Z%SoMlkmpO=wWEs3Vl&iPCAKw zX8%prcCqN>kDW9c1*15cT84}TM-RRyqw>ian*JiEvK>tX;cpTA44I62b@guekkVUe zQpyp|tj0tPem_GdO@#W}FNUIA%11K(>gud@qT zmfSgI;<@moJ};ZhiIXIhom<{OX3i#ZaPUJqVVX{1mS|PS-n$OrSlKy@(s7KT7>K%&`6;J*A{!V&kI<88K@r&_kiN zn?bB}5$Q^enS_;?evp7e=PJ8@9jT?TD3)=*vOctvghbFIEe2>1@5pnO92Z-C#=SB$ zGq#Oqz%m~CQjx$*RWJSrmr%x*IrnOofg?gAGjjHahMYVlt$gO!CvS4!~U7`Tr&<|zL=uy;vnJmNMwmk8H61C$V>57csv}95jE+#Tuaj_$j z11akzqIk{avp;%X!Hd34!Wb(8Orj+eDAq0~bc`@do=L#(C~IcmzmRGMQ_H8xogKn= zJjrFm8VseazN({~*K1n6Te4T>bX5>EnHa?Ish_o5$QfUpRVargzO`pIGv~e2y~(xL zSAG7Wn0#yE8N!mA_QF@!a9WI3%3(^(qmZ~!n7A>P?5k3_U+{8FYFB0hPZKdXh^%q1 zA>Zn|anRvNxn~>->J;Q(CiviY>@{=2(5nwtOKh>HiJ81CdR7-cVf}^An3Yyazx}2w z&h7J3FmFU0s#ZlpP{KLoN{~68aJ`s z3H<%&%Pn?`?=UZKZ_l3}P`9_Y^XuxSa>T-Vos>A5>q-UkV{@}@7HD$*Bp-%8iKGkrbwrdFy^w?MiY1b4nA^x z={q)hfr==~u$UNxcD8>&Ka(lZU8M1e@}$jAkTUfuH%=SH9ww8u44;I`GD^&YwY>K3{)qk5+=!^LY_Q@!^3qtodmh8T*epe6zQ2t#s!8opCj(g z7@rxY$RXLJ{*3Bk&HD3)y6y+IX~TfEzKsM#JQ2=J`kN6V!+a;Ehl4s6Nd*sz&#eq+ z-~A8|4wusKf)^|ILJ>`1x_DcL1lmumlWV3kS>nE^fgT>$B#k(wvwA;$FFGD#_mvZ} zijW^?obW=g(viJvG@luQb(EC<_-1-7TM#9#>#Q zt(=AdNgGpa>#2vNzCKs(;l!HY&=W~HDrZ=@gj+q^QF z7J3q@b!wMWq3b2_mhENWVaNTzims!{- zq;7URl~~%wLeh9U`6H6yf-7PRHU8tv`Lpm z;wfkTDNWt9vSppC)*^_9$;aM&V|;d#_9e2h8@CNRbDtgepj*N&_3 zkIdEnWHgKDMqD-<%PFe*Q7BCQt&PJ^%TtBBE-yI`6S4BiU|t=H$TA22D?elEm&J}# zYQidf2{jtqw~pNATaje}99}xGZb#!K-Im$nf?G z=~HUHZ;UB zYK*zb=5&0YxI@j^HU^cfuEfK|;s+QtAUQSXzaP0PX#+4wn#>IU2%6Ev1= zIUw{3kBXTq6TnRYfxCce~@EDaO1CgE{nHZg3%lTt~vjOXj0VrtZh$1aC{rRxdH zln~jkBpKvZ^wtuVXrKjvkk>$kBFC7)=SVINW%pflIcV7;M?pogIkf($!%~>Cx$1pL ztE{P~ub;tfQ!(#H`Ls=4y!+BOG&HmsSR|aB-16?~xaD2$`!V55s5EYhLP%pH@6F9k zGl--ltNipiE{TFp|JM>@ct+lnR@8f%aO^tt7gy?nUu|tHk!r}T-k(mu$J3Df6nP-v z4Dm?9$LObbAa?|@$#tWUaVUFZauFM?go3^Uu4F2$X9kxEGnqMh2`IDS$=L>4E21d` zzEkB6m>^~>s4F6}&#!LETQ3mL)X!ufkO*Y2uiF^-8DS876xe1OvS7x`XulXZ9$(7) z+DJ~k07`iTon&PTc_y!QAYR}SdS-qwXAF_pqsr&h7w?fFp4Uj1Sk#Ei(9lLYrm@ay zTt{P$?sHmZ53QF;5CQqTH3sAO_xXJYJLHHamqn)&!QRdVDSrx+8rc}?NgT?$K#2V2E>);rTN}Dypc;>w+y$IAgrHv7)LaI*|^Cxb4W_9qHVK>9_^b z!n*KdG7Cf#P0{*PIkw^|>YGpva{u>y?N5ow_7S$SMRF9ZHI<8T8--(PClD0Ol3$cF zA_i?KLL#>rQ0x``&}}{!#rsp(b7#yV4UnhJ5@}$#l&Z-`&i)LOHg^b3?nCR9lsvmQ zLkR3T6(_nI|5#VvYq+ZLp}Q1`v8>;0(6mim?i z7ZELnyND7JUWAlG!%$LIA5$j+J?Pkfr^W#D=w~+M*c4`@-OBZLphjFTPEvgyYnH4L zGaco5y2ar;;4;ZwVo*goDU!ybJ9%~cw{EOdukv|`T{y)cg};y!X_AGmnSY(-i0N)} zxs;Psi-B9!1NNY^3k=_ED0-ieD4)U3%l0iMd7zq}|BHmn;|hrAMMPOLoidip5_udw zY_bWTuSdXyTFOvGn2(mwTUZARC8fk;@+lR3u_MFlko8vAl>S{bLX62>;f9)?I>mvk zg1qhJw2ZvNhbOA@BAFax3B)!{uSkgL>^>Poix<7@iIM{4arJa19Sd-KdM^=+UrT*w zuRgL=?kuUdY4Ysav7XCPvegoC;<@SIv7~pjNJtZF+NTYnti%TUf-g_5AH2p6!zas) zdh*7D>+3sY2}fyj)j%S#bOg%2A?)bv=wpH)hKJEmHoAZGC9+U2qz~s@<9bUcDV%)R zN}7R`HR{L%e_b_a8EE0;5ffsHFU=)hJGnq|*vwF8GQJ-@r6@WndrF1dfodb;tVwjV zeMn(CpHyG3#Xy55PDP22w{snw+iqhU{UT~dzL?@kInT?!(IX73#rZaq9W)`;KTlto z47+c>ye^6hVE9y^9M0>Os&qr1yS1T7sfd?Y=Afx26qm0iaf7Ty98~*?Be{`lE%$JN ziKwM302KB^jaYOOWCGL~nTFMBkr=~^7}$olmtYagY0r5PJK6P~PaB^MVXJyvbZ3gv zaFvML2D10zNKA55N0pS8T%gPCD0D?jZa6Vk z`l2^l>oa7dAjG8kQ}`}Nh#F^kYhTa8v#+h0N4{MiG3XQx3B-R&(G8&*d>k3L9z8{d zm5Ie1;#uICN}o- z;<51~_WgY_SZ_Rcr2H?Wh-bnT38h2Kp4Kv-c{0JmI&VG6S+BK*PlH!*Ki)_OT`W51cZQk@sH>csEfTr0sQ5Y(;Ub?5iDM?%WwU(Y_QD4qL%r=q^HYRmN?blKActvI{wu%VYTJ#^2;BF^~nm|)GRmkO|a|! zoTkZD;SZIn6&9o4qHG+y!*(i5R;3}jzs%NP83G{H=y2-?0F0dhYW5gm2PGNkuquj)oK}>LyvPDJKdgQ z?4eTw?IgoTl2WJ`#!z%5q)*TT50Wzd^5cfi18;rUAcNQQ9A$f#T$XfD>$7VjOHq-U zlw4em77eCkvUd6pFUEkbQ~Tc`-TBd#oPZROM6SU6Wjdagk+b&C%lj@{4+)5>2IQ|r zDJL?MB!*gT&iQCE+4jc>p08&ZjY!24C^Tg>)G>)de|m199v>=?5=uDaNf$oY8SYRq zEN-Y4GIYZ1(9|n=oP=v};nzRfxbcF+zIDa(d^dSpDX%Fgxb2Mqx7Epzb~7sKz|~`n zenKsM@DlfVbWVtzEf2}{Pj3K-Na+C}r3%nYQ=uxKi`Zk7FO=hfR|g#0WHOPLA-#%X zK%&Y(*zvyNtf3X=%3A%&DA;@ynSXkQTYzaJJYc@4J$ocPNdqFh&(6AHRu!d>I5%gY zHj%Edv`1$C&kb)X-B0uFtzqkLQyMRL^)i{b8@TaNsAdXGet9XSn!Bxu8+N?XAB%eU zK!r3uxg0HqM=*>eE|ywsE}xl)9ie^U11|~x#3RUXZ0{P!@L88jMN~?LLjVGaw78Q1 zBt}!!w#fgI7g^C>rj0p4UM|+*bPWen5=0II>ec!b`q0~Qm?WK>OHCzjkE>{F1{VQ1 zbxXQVr}hS+KK`nN(|I#{bc8t+3W`WmO9KwB&vV4_vmE~sW3XO730l&gTGW-1BFgf6 zphnlw#POEXQ_bg{2A(Rbk7WHAD+^9k!Rh>Utm=j2wq6XaX6C}OrrAKY0}2p_64_fm zWV3#6$8EKUNKrjkQwuEktlk5+YNYd3j;-pR(@v>83_GN2B}2hdx+QYyx5X3Hb|h zdP3ry7Ni3tvcAJIH;(No1%bx>JadzihT@G#?_&4t`2oj-pZJ?Fo)6=M32x5V?h@`t zvf!CLSCUOyB)YmkbR~znGl((tSRIGz5RAsfkkO-PR0ZmjlbE6)%aXtOtG&a+MvLrC zEDf7+e;f5L@G6pT*rGRM2e*1#+WbZUZe|fc zlj~;wE@yIMKm7KD4T76%#cW+H?+^)}M<trDjOJ*KY|m6W%LhR$)hTKSXbaS(Yl4CG&4DclkE(%2QRCE>xm zA+*X9xik#HaLS2@`&F2HVsgC$wW8Liqo;9R$()=TwDKC6nF`T|yM+d<1+Jmmfe8%# z)*mJt6C)amhvIuO=drL}O)P?*^;9IO=hsN__)$iUFnU-oqDevUB+yv=N#$K^{rHnb*f`+BIkOHdo3US7#rqw`AQN3R=d4nd~=T|2wz0Ec7U4 z7i0QVuTA5m@sSZz_jVioYpPPgUC|mlw>RCbuU-SYc^Y5K|a+2YaI}cFhRW>O)_uyU5u$tJ=Lz~ zD|GgH?i6_rOdRcRU!rGc>GqyNVRjE$lYP3;(8<(r7+z(?pk$`CIVB@sh*I85Y^Bgi z-ov#_nLsg9tx%L?+=?a6o>6=1><*vj64pXHNz-N;)HrD@JM9~ zm)tM7riy}Zx%1Hi4FbM#0vc>3rp?>lhYgxW3%-fqemo>RA^l46Ck@@iy26EEw`jy) zZ)LRN;(;4xS|@zu4P$4XoMfOdcAFE;tee=r%OK%G+*U^rle^obYon~+Asoo08E6p5 zO@^$EO@SnOU`dvdRimujcvQZHG}1IgPA_`kA>TDXA%PuJPE-2DC#rY` z%zh2rA}SS)MDA`3bZdJ+EG^+IWS|;B6dD`Dl3IybdaRTUq73w59(pBySfRFyrRiU% za;x%+&pP-TQm?o5TNh*DX5Oo@azSh^S)22jS+`08<6Kfy?KhggQ3=LaZlu0CtK_p@ zQBw8)jut}fZnteU5sdCs_VVsQlrjs=F5Qy-~I#~e#N-J}{^kuOC=-ODO2A+RX*uHZ>))VONh0e1m@LzHLY7RZ4 z(M>JXjG-4!R4SOlTwfwG$#TF=v_#*rNu-gmwWZs>6%m-~lfgyO_Bj%=#pd2cO?bU3 zbrZPzligbK6MoiB09kQR&PZCWYKvBJ)5pBB)XABZ4-{TBP7(xLwAjdQvnx9O$ZPYu zz9le3994y1Qu=YoCC5TGSgZ}=7U-3jC^6%Vm6gc#h>XZKi3{9#FBqQ*7kUMMulQi* zO7k2OeJJp}2}nH_-%05}&?G3>FcC-=tG{3t*?m(ffjPl68FZ>qLSDT5G>KHgCAM*k zCnT<+IBp}O<{<8=w*Q$bnr=#sC5*cPhAV+LL;XbyA0`=p-GPrx7iR}oj*-_WrdTWs zkkX~@r|HL^ZRU){XGWBxSW9D|p7aw-6rnA(z~xFnlBUq6&MGAK9!( zCy_y#QjSxw4mp&%z5`tpO=f+<9dOGro}8E`=86156mNt9wSDMFr7B%wuX zn==)W@5rEOu+3iiiDg=1TJj|F58wm}rAVekw_2tH22LU>1j|sQjh)>B@X>c~=P8}lWo?qxg&zJN@Ka$=PJD$KS zS%iqz_e)(j97Z$drT-EhV?4WY<&%)J+zsyT7_nQeiG9UPPJhN!vBuw(KlgoQ%{#Qz z^utQS`44N>_ZNw@XDWN<_xN#NO6ZO6<$e@9;m_OPN!buOwM3C+r5$$(Q`;@qXByrA zk`I;fI(B7t^pK@zA~mIqv|+rmQ+e)&InAJ&Bqfip{3a7Y;+N@%^YfL8wRQ{+o}cv> zPD=BJh4$})t9tAj2lPGuR-rC%*m8CUvbx#%g+^p?DI^rGu6FM#@a0sek5#2UZy;+I zy84{=A(ZloV@*_JDc!90CnalpS)1-aPmJY$Fs>8pKg;L#&Mq(OoVP{^&-oJ>=*qDv z6<A;PW!#mtwe_-v@2u6z(;#@>^!9I%C& z-k0iomMmi{IF(nPUikXCJZGX;XtGGZh8%Q}31Uco%r3+q$dOrSWNMu+LuxB9*hH-? zV_zJ~iN}TsxB?70cynfnfZB>#`Hqv_)Oo)|+{;k%>Zm<{1vCqIMqs)54Sy$A|7wzy zC-pH7z2W^!+3XH^eoBYg-APT>8{`VX`K3suQ~3Q=4yTSi^|qv zDKll*vVG@YbB=L@0JlVfu~>`Mq#nsaZBebV-vdvpU7=EM@X}}U2l2ZblYoJzm1XBR z3*7kY>I?*80c@~x1vxWG(i!wWh%ukPr7AHWHacJ^5ng*?1o0 z32D$7yG4oiTn(0I?2Fn{;k#&nB*D$YgMUNov%@8%GmIP!S(it-+4V3K!|U%mhm<^f zhSfnYUkEqbl{3<)ejSmNEK!i*^@285i`9VzN3{gKEniYosn4VaK z-XJ&?v!73wV#@26))CVJo={H!jA*7nL|{Y->Tm&^>tn!bC!zlRjxVm-pnphgC?n12 zTOlLi@zEH!y=H5M$d<M7MJS)>3HMTyLjikL*4z&dEPUp{ zqK8XCDM>WJ&_%gSjO>Yo$$w%PIBxgkpU*9#qtd4M_+#ru65d1W-rX>1ya}v{!cbx5 zsMHv+mcD&Q(dsUw(x6Q>>^3oFmF_lKt|aV$-L&e-=6`q4G*!%V|KY7Gr|ztJ@_s)Pl(*V?i;`m~LsCXkO+p zc7%oEwdHXzveGpEb{YEH29rjI#i4pG71OlcBCFys8kJ*jA6}6YXwKrs-Q1h*YF;~& zljeZ^bx8Z3HmB!_`KbT!(zUcJ*%r&opw};iabog$#|JkmbG8?u)r*Z8=f1tuyS`;R zNgg$wc@pIj_!d`%1~{4@RsJMvs+jCfmmds*AQrR%#Z`0Ix7?xi@0+^(7hLe5zn$3_ z-WY+~unVOYoGY9RW{8C-z9@D|sVB!JQ1sA?r*$&ym`E*=3ZMuD;-gsVyYWT8$REMGq zr?tMIWH?z4x0E#QhQ2O)4ol7&)*4VQY+shp9Hf~Q_7T*dtEwMJJBRaB$R&d1IrJ&A zo?MgclX{huhoM}eZk?hK1tV4E%&}0`L1A=(786yQ`qW5Yro{7vjy^t-+%3(|uP5ZA z6$+LYBMFPAKjU_=JS7@n;M|}V$}=s=pplQak*dw#w%)UxT*fb}cbjN(#R?Lf#kCTK z3FVa$6qLl_;#o*Y)&6LXs7z;({ES(w>S`U{tc_Z99Ehk8w8dDjQM{O$G|-U#sg^F& zDI2c@4K7};MfK?;JO`Hmu|AbX{n-v-*Qwk_a97hRnF2{Nr*%$2y@Ut(BK+3<=h9@k zM{x$#2sffKj5*Q-A;G3m_wN&Y_!&12cPTyg-HRwz6&)@8 zs6b(67%RR})V$4u_df2$$yFyin`EwXPNdKS3mpxIjGR7^rfo3v2V>ePWTK9Ej~J=P z<&ZD9rlc|`LUZfg-Q*go-M8=Rt2d2Je=l2Il+(rMf{EOgWd1hIPyeEQac#skuQ~L7 zz);cJ&dQO6j_-IiO_(E|@ZfyJ z&=;1CHh<&F;5VaMg#22B1hw+AH=B_)tosFOkZ2Is8=0I`Y$TXh=-)$324R*XdOwU0 zSwp=V3+jSPXSI`gkwVZb-)Qcn3#BoMTpt#u=THU?{SCVXPDohmMtg#4pAyrqs zrDPcAbVBh{E1p~y-oIHL)rjvRTEbrKcAm6RKvD{5oMMJoJ`m zcSWUracoEor-z|XN|PZKqDXtkF1>@Gm8r%+a2$m9Js=g)N1p1;4v_2;6g0Ui@hv$V z7EL3SH`JI)ONx?8o!(F)D!h2Z&C`Vc3Y9T6Qyuba_es0{T+%Gc1X6TXOE`N)zE>oey$MRb$ zlf3NH6LLo?{O=HUTix+feIi4iXH3F|soo@Qac*5r?W|m2G9O+ems~igbR6-(6qL{G zR;2t7Rlb(~0F7l1aOSrb866RMp*DrduL@*tcb5b@GW#UNhC%K(-#`8BHu5ZuSF9CfS3Bj<%N3C76 z_K@zv*$0t-8Y1ZwKT~WPPKLkrfRR2cP1fvKZmF2(!rA!$jL zxcM9?!GwiV@DdHcK!&~h{(1ESMe@;IK#0|Yh>X?jicx^L8pA6fSIwaB3}lJv(y`!I zrY>fO?5q=hZ!{>K3~w_H8geWiVE9rT`yKYdNQ{I;8VX}FhFQ_$5<`0F_Vn{LqbFwj z)R!jHC5GBqLc}5R<+kYfggFrj0i)~+TesXT8K%)^LPDMCAC0YpF`+%|hf4NF7!gq7 zB8v?o<7jc66=HUXiQVt8S$NU7Oi--|T2YF~7Z!(PbRI}BRBq=_n62G6r8QYO9P{ur z(Rty{q2&H84wHu+$QZGQp0n&NSxf?)(($@9d-R9V9k`yodsSh>nHL`>EAFRY{0zaPIDbKy%Zg2rmTny1W0j zU|}Nw;F5;@dTy9D+`tFwom{|SHT>J& zA!}c^?#UPrdRk8=2i_u=T^C^p2XnXqQcaLo5Tpx3f*Xa+9|uzg5`4_~TELpSuPh+M zUeTW0Pp1$s^{-pQo7d=Qxy#P?kPO+-?`>Fpur+64ZmHggi&6_M}d8~og?Y@1i zIn8m9q%|D8?EE+2Gh5n^FqYoC9zY}SG1t1gJbW z)*`@Heg8+{VJGh)!nAe>aAkQ{A1<2ejJrE5)`Z43z(>pumRoLp8eR9a4R06c-UA+V zJPn$v$TiK{-6r3$P~2tvq3>A6>leX4?@q_)A&B(+V0{fbvrjWO?}a4}`n`xK3eq2Z z;wzZ%81{R8iAK?=>g5&=?2qMK?*B{b@%R9U8+cne?&MFZL3e)siv`9bvnW$rUbHc-e-{xq}@Q(~G1Zzh}`p7~VuK}(xq25yEtS35OT|l9w@*wynX>1xxmNuH- zog=v*-^1ER8!eQ}`}tC{Y|jkKhw??9irxt9|ItJI_&jn4gVFFGSx#^`{O707Rlmmm z-Hm04`imU;UA8_FH9fZr!aOcp*G822R{Cr{<_yS+oFr_m9Q^*4Q9lwAjEk}w?G^&JJhR__XM|8a(p~Ov&i_YC9=z&#tQt!cboE8x ztUuxR$6rs=a!86wE03VLl zh_o0^C1da3le3y>Pt1F09aLLeUs&Dzh|K3VvhfQkR&W>%CzhIGC$sA@4U8?qujEl+ zoaDCHUu*!pda~?yJ!r5fGqS_Xdp^^)Z|}H)VRVHEWtRRM$6T-7{7X+@i0^Oro9Zlv37(Mq-#GzEKx=E3_d!b- z%dk$JC6=n_JvW!-597hueQ?`Qy~=^eXUyrqf^}1m!NMYM*zY*tAX$G`6DSEKUw(hi zboYCSe2?52tqKei;m%{51ba~Z`-`UKo=hHFKn8Z*o1K`L=myKL@m{+^r_qi`Sy|a! z*R9Lm4|tIEuX|P0!=OU^3k=&&Ns1fLNIZPxJpHj?^Cse3^Kq6m-rm_+-}#v5P;ux< z4hDJIYp+r%S16-IG3}(u|F&s#uY27i!N$R1^9R?M`EcqB2-2H3Zwx%vL*y83Y-~(C zJkmQlL<$*9XDf6cznAy#Zi}G=Dp6y<#GA@yG`cyG1&l|}mVnhjPEk?Okco`og&rWj zSb{H_)`ll1f?vR4HA)INRs1`}N$Kn+i0588ln_A4ENN&+>FDSv`Z9v*hUWJ`K~DV? zwW;k%YCGvcJ1raHh0t{9I^mp$!Lhou;zzD@7t)qyIn+UpL2Hp?#d|mysM@h;A}*Z{ zpO;(N&e#<9+p>>qLbu*}!Y@sDUi=@$zhesLDP_LnxPMo1!6rl5FP*L5zAZGYPO=~Z z&+zKAcJ134rne2muMM2~;r#X%coG?CBAy|$?m zX$n4njsnCs>;NEXsRKF%u(GUjTnT{DJSr0GR=z%?LIMojY?n#-+Z^P(&M#mDzOZau zZNv@2dnIv%`;Lx|(l-#{+Z4wAz08mHHZn4TiG}qT3xJsc8+Q23BLK#}`~BVVAc$pc zTQxXJbSl|H!1eJTww+!9qv8WW?fK%;5+e-#@kTKkSzx%IF>6PcCl(}|j%4z*-S0bY z2_Jgm*v?h`83Seat92azA)uAWt3wR!UB6mMq(K8zJivXAQ_kY81rq?wYd$=5Qcqu< zQhxrcD|4OI$mWDBg~irrPPWId2p1O@?i+IuzL3oNLrP0ax0bC)2Y+Po#et~n1WbU# z{lH+7#R72sl(KlS)-D%79BI(YQ7GvdHhOsf7)Z~n{YO3<-R~BC^3C(qImybxuIzm2 zPn4Yb^EZa^>28qGVXYv|#}0)l;a*1I)9}G!<^QFoFflbHNjf;z@&oYg<@NPRKIXU) z3%dO^zHQvc#KAc|n^JW?`9{y>ys0!>ZGNW_a#Ey zMuIH43GmG^cLRgu-qHNAy1=aW=Bk@;OvG$^d*g(DJfaA7=;fNf=v1k)8KA!k9d$h| zyC<}91D=%-nF{I9d+qiy@c08UC0Jd5UO0MU03Z0T*S+)h4Y|ip1d-E>u_MqGj9^&Q zynPY*{J+<8{`YeghV7Xk9D=}+F68+IpA-l;!+~t-q%QA1x}bon(S9j3IWaaCJDTIs zoPj>q z8P%Eeq5!=C00ki491l{A?aq8Ag2RnhzPi>oHBC)UDuKvGO-&81kG3XyvnfAU4cnGH z@?d#oe7tjU_>x}IcB{KOtK{7lj*z>$V64ug)raGgI<)Td22xu8Mig11T7XN!q`~yY zXp}$tpWE1d7;5BI#~4^fJHQ75_hu*b8wCYLr}ct}fX&cHZLpwWb5`Hc9s&c5WOLx( zZdv#oSA_ro7^rMoMeo{F&eHvA#|Weq*QZ-`W`o#3^y7IpA#3g6P+B)7BA!S?75ThW zB`1<2^!BhbPp|SKoAxirAT}02KnYVQ`LZ@voDBXP6xsIeJicTAwQw>n>v`{-cCufD zEIM7!UK?~f`kj)nwx4NKecfdWhAzMB#X37b=K$s+a{Wzpa(Vg3a*OjqhcA$)hp77B zOc{9ZH~1U{QP4mTSv#&wK~!jJN!onZHUy#K2Wk;qiT@LJ{EDF8-raq4+F%59t#bN5 zz4{Dbj@7qBS^!h(ZKj?uqzx-&a@%y;5RCOVJ8gg;1(K;pl(`Wns#2@-8;n=64htt( zIKV>!3}rbGP4pw3<0%zVP*9K%xEWya^C>)~c+tnB<2hI`vd`*`T)$`sTWmERjW`;w zMD2XIaAjX+vvzQw!2S=N5fTcV+b z>*FGvoIRi-#LU_TxU_5Z5Fa|#+#kSSjxZY@qxX#KJ-q~-1*Z*}C#9-+t8z~BH6~BR zq3^&^fd$FLNkz?kf8Mun^jbxW+st@Cy>n&T4Xr>h0)`CE-(_iZTw8^bT|9s)UqWel z>l5J0!~y^6-wE5llkB{v`ud}lL%*iu8!OS})$d5vuR7MY`(nQ`9zOcGTDt{K0RaJPTiYTKRKZgH z{)cm8Fm4O@YcQ@)DtUnISpbjoBa;Wi>_<9+KM+QjmuGC2S}K%iZ1|RFQ70c>pWt8m z#e)&xp5y>)m60H-;!SHR2>y?pYF_)rK42KJ&_IUBii{)<>&n5uYXH>6o_!duqo%!( zEl_(G7}UG&@vYW*qo5>l#PEb=0%1E7rA}4Ir52FEQELS&|O0ZeXuX=!-6Tr;9D8~~KUWK)0?A3qMf(d5cXOmgC5&;|*ILJ3~S zVH}z)D-0bhFz>vLbY6R6+t~_}Ki^Y8kW0znvYK32_y&?F?DWFN7)|c|m&0;2TfS1; z>|2DQ*tp!te2X*vV+x^B&JGIjey3S$+zJveC;n?#fZ5x&GCvwmHEJgPUB^NcIPN7R zbP7S;$C_yBz24-HRmvvah?l=4J!fEx#y zgb7@ODTN%Mb~$Uz8{X71E>P1}J9g>+ApW zRn&m&CP`JKg-V;$|L%DDEsu)Ou~d(Q931pQ>&GW2dlsznMnLL-@Cbo`I3ju2;?ct0 zPssk4k;Ec|-eUV5t#Kd_WPklPM!*u5>V(?4wwrJ3J(v&?GHrVgBLm?TD^W`o_Fq9y`76!IEIC5^&r96Z`yE zr>2Yi6Qs`yS-+~wyLG1ec~xikawMpre5Rp&W2o={@~ZzXn_gB=2GTy2kO(fEHl<6< z^o}FS%cb4#76M=@w*Q08k5}X;4T~6+N9DW9tA+HPMh_ID(q}uryR|=fXMf1g=~Vdt zx%p=H-Q6ELy0K7AR)OaI7dqHENxA+l5p|ED<^O;C?R0B6-*FdW*K$%f&ZV#Dr-NHV zo!}BS(Ib(iug0VDi##10;eD^F|2GPc>jD8Rp_ZM}tmf^)M=jQ}&*_MP&vCzttLuGU z(@WssKnf^DIv7ydF$3^D0O+H@2^$n0hAChuwgC_|o-5q`TzLQ<3=AS*ednz46bE7-||Jm+i-9$|2?x@#iS2OQdAHFJ$ zvgX4&#lr_6mpE_2BWrY6`3~HhE=Yd?V#iQme1xM{#~as^X&rrMJ5xB#55VlcJ;f2~ zqPXj(P-9Jdj6kCIJF1@NpN)Lg3j0<4PVj+;0V(!@x-08wo6_<0y@-7Mp;eShm{SsE zj7cy4(RTIEh_%0ro-KQ~M_E~ReZF~d|S=UAH1 za|X&tr}LTD&O0S(8Y~35oqobbH99-&aBe$&ZOFAjCd?;wgh%EwXy(31XcUAt#x)~?70dG2Ex*m2nrM~N9*=0=D( z>e+5OC(|8D->)-a(thvGZjH4^(e&?PupT+oqFU=f!ku)2pZZ%G<)bxRZ_A2)7rtEP z+Pr^Ek;nWl>a;%3Y#Ch2ir(PnJ)C_c@$@a~bNZ3id1v9!em+Zh-f9og2E{LJUW-WK%)OB25LT^)xTce5*Y+bpyg~*5#g$bu%pZOas_OT z_@>|1@RS%lEX8r9qi@tB9t07$haJ>qSl6Fbdms~L`-8n)-hmp}I{>}D0Jux;`8%N< zWg!#fJvHDZ2=#UVu8aaa*K&6iQmJ zM-A?#PWB~73LL`rSL!ydb6-KNDV7>yhRL_$g1`3f;j-m;fMn1IY-teZv}E5z_U`__ zAJij(M{nT1;wp5rUBtF~xdh^z=-oOF(f^7+kN=^OKMCA-yuH}J12ecN8@!M;lEvrT zi^T_(o~RoQdFFJ`e!04~>thH$>vO-i)&-Z$EPec9h1dI()_F2E{-X6t5F>~D4w(N~ ziW_|blMHh3-rLnnk=3(OzGFiFV?v>`aY>XA%$FhIle}s@7Ws|H#_MWemjEu4>tE?n@??T8d z${s}#l2!Je$tHVy%=ea$QBt*P?X_2wItQIP^T3f9PgJ^(Z7z#P3_0>Rznq?NWgjUgvOSVhESc`z zH&=~c=)Fm+D8*GZ!_o}=%RzshPgCOLi8-7mqi(45EG!oA3-h46dSip9>B-xem>Awv zLL#EeExfmG-69Wd;!RG6zWsOiz{Vt4zXxR{5LQnL?m*QCz1|}p8-+HxIzX)UjEpFg zV1-*Nv%@xkF2jVwFqkq=dGl6(;tdx_J`@Kxs(Qy~x04nXq^}F{I z5)+q}m*te9K7C|z$gBh%-$S-PKchbfk@yMRZ7qD>?z{jQt5U`yA>$jPVH)`*>`s6y z&CA&MSG%EccW<@$tE{fBZaM?JwSWcpm7xNYn$aUDEgcac6UGZa@Q0KT?RC_bI-d%Z zG0-eCBUX8HS(z!a>`hQq5Z$z=JhCZ!)f7tMIQL%H0XB_2kb?Gb%IWq_$KZf^ zty&qS*VLrm2q`_72|YwhpP9gCK3sFH84dmi=EYPl-L;*8;2_!m>^-;FG`_^alt07; z^Nxh3(MdqzV#l1-NBwzeKQdsxN1{zRFgBzJrM(4N#x?9|fwWGZVTW$@))gQD*^%)6 zX!1x0wyOm4S3p&akB^VJp~I1aAL9LS<@xFQq(vffN+DpK*TH51`VXi`ge{Q_`q2U0 zY5RiIz9@vcJ3k(pK}M)tHdvpDw@8`hFgmf9vS{}E83JLgP$j)> zg3s}ovV3w;h1`Sy8oIWlB9!D_*W}iYJ1H|TMZKOq#)`bBUQG~ z_G?l*JJqUT%N7CS<1f~%Iqk82Djln_2gDO{QMZD84}vP^1@k_pr~9jW&5$WJmBm#L z@z}dG8%XcCZ7f6`{rqT~-g_al67JacIpj%`!DK`_jpaY|1^8V7tWgGSQhd{fx0wqwoR=(^8nc|?W=0pWy+@W3YU`w~U9aaU7+}~BS zr`;~=@{UmPS-*U?Yjpk|n4A^&$bH}#<{**?rk;;2yuG)TrS2W_@6?b+fCMd5Q`b_D z#}?dR54R!N-@tWT(EL=;YG4C-Abw}f3%GIDBYmI4IWHJ$V+;jO&`x*FbRbRh_hHy< zCBsnt8aMo|0ZI*X19^G)VU5M^pMK=SBfLL=g9s%ngk6m1GrP17Uz57p#j4?%9nTIIkV-h^ht(iVc1Gy) zN5#*lqf<|qWAz>IK;|%-Lp~Iu57Vu)NJ*MYr!RAMuS5Ph9Vq7V=B z-M7t=8b?ihRUjcD0nu8TB{&K>(@RPyObBF1jKdxSBlt8I@&OS-Q=A>3KUw}d-Jg^; z_h!U`S7y6=AAmVb?U{Z>Q3xqKfW#z5vKKFO06m?Y+A4y+*U=asxWG|OdewMLzCko^ zuyW3puhTajNHIkQuHI>u##7?4E~ZF{dKi!(gPPa~6y88!1{9q?c=hP!01-b1Y!f~R zVO!s!l_eab*}7z0h_&5keQXVMv<2yNcVO}c?~uibIp0JEa^O>N$tx?7E8sHz6$_gv zjM_nvDFb9t3fm7zK8jS=vWP26HR(&lvL%(N_7ViMpco65aUEoOOT1o_jsH4sqtmJY&U+9Z~)p*u3hq_-FP z1`$=JKS#F@GKK<$K_ftjHt~r~qNC&EG6Y$L)*Rp?6*wqN5I5i=3s$mpN^GklfB{1z zOY2~`%cmI%c0_wa^q$4FHP$vh!@a`T&E$2jAnVa$42_%b-CD#a>VWl!-_9Q`=OKJn z5@hYx4IPxcSyTv5d=6N&7QvQC%H#u$1PPe@K)79cRj*0qJuEtG*E33Pd0}+$Qt{WT zJFDc4g2CB-vaK36FZXO3-nj?j@e|76mVS%9HCTO~m=V$BZ^ANcg5L5*~nh80iz&_J+=zeRYl#4MlN#lW* zdm6e-9s-zj9F8;cQsnG_jM`T{NraRU3m$DP5vJI1QYdgPc#uS&hw`p5)@f<(f9Gvu428&b+8A#iewqTYadEVN=S=+ zKs$GAyH%18^bmsdM@B}d7fgJ=m#h~k**tp&W4Wpf*&Oxm$*?dGrX5-JPDG)G z6t@JJdh%>_5`;|_SQK-Z(&7aS)+~Y&a4#UW2B?#pf$9y9Cbq7^NtUTHw3Y9f0L>M2 zFgVk#N4v|B4=1Cp1z6$}_FY|DdSr<$I}(+Mw0hGjUV()6SD%H6X^<%?80FJP>biW- z94A27k9=^3h>crq+zg&3V>#%{fzy=Rr98MT!8GafvKFb{LcnH$yXoxIMX{(*Ym%TG=i4n0v@lfT z`Ch>?goh7O=-buBNi9s|v8l%KWJHei_dBa5%Pn1qMz{vr+%W(Ph+wboGZW1zZS9Ue zrQ$c=(DmKb{R#(a<<;~t;oR|g?=&1Z)nqY*1BRMg2N9{Sg4O_KdIJ)HwuF7Rg_B%H zEU{#2VIWT%ARB}}hdCFQqgn5!Wo8D!zB|hI+6P(4*KFjwCGeRJPnE?nCw0u50Iy3iqO^#^BfY1N9`%FY$q6qZr6z@9IST}8liF$W4-cUu5@$8 zZoO)M3*jta3X?w~s(zFCyDbcm;Ld!vmv{OU1!agAm;x-{eUX646f{N4$LI!zGalG@ z%X`CWjw<|!F9+}Bg+01?6OjRN7`)zq99RDeAM`Oq=m$BJO==Sl0W~~e#{zB;COFk@ zOCVJTSLxIR4-XG04la?gsZCkideXr6Stf?VI}Je?Ulr?-P3#>;6$=UyvatY~Kyizd zMVt@62MYseKrAHRzHtEwLexDp|Mb8THiZiCba7gw$jqp1&|P8`>D@osSHela0L2;! ziimT@gn%Wr0}3N$!1ukuT$BpRbuChRyfY%K1afDS=f}PX&@z3{yfR#b*YE}qs!;Dk z^RAS;Bv?tV6YeJW47e&*_z=X1uynw`9K!00u+BVzxQk$9)g+O(uq5{AaA8CZ2cafj z+?5O281WMBd{EdU@1s+VCPT#M#0^15K<0H14Ipo!SHPLE;y(;#P&|Nog#QD_&5S(G z-$2R$GQQZCt_bn9QcRo7tgI!`*x_Su_PMxhf`vSp^ny11ldou8@3 zxXy1uGNPvji2~*uC;Fpf;x%@*ptb^J7{S=Lzm{SZ56L*f-Mb!-ZN;_9bG<5d9j-g- zWMbW*u*+rd%;$J?aAN((_wV^$hg<$fTwOkrzGq(hCJuiodW0p%3D2>bx1*i@WI19N zaE5SRkW=*2|M&Zd^b3d?g?1XE1dw@}C=1Tn|IwWhHxb627F(p?KUxXwQrhr;*=NJF zr@019|9u`qjfhJ<(9MsM4!Vw=dH_#DjMu(O~Ncs9K%@J_y%!d_3W{BAJHjV zNTcn-@%Pq>N|%4ybJ}YK6V=>p5os%ICf>Jm&JX7`eK0S!0_K>15;6{|eN|%*cO<$f zWU+!yP#XsMiJ&lLU)+9mBc$G>Z1RuDk%lr|vHi##^A$?eQbIuA}S@1r9sI(y3013Vzo% zNIgMw@kdAu0P?SIczB8RB8*+A+5J+Q;5*8&nWhk`Z!tdY_WE*Q&1k`SXb-QBvRQN7 z?__KEd|#i0y?%dhxVyWXbkbEahH06$i}!<=>IInsJujK&TaZ)6ZBLUUk_=jgrtL~2 zKrRD1=AwQL6ilT)%hPpt2gMN;1i5m^H#ZqDJpS)r@WTiStp5(d`hO1*Z9yI@k~Rzn zg7KC#?A^hq+)s{G*a15@5xT~e&f7N;r|1NI@6_cYi0k>&PJqZp_NG(vK@E+8G7UI3 zk^*@jr62rptP`MkJ|ouLauFElPfH(9FOE%hZ+h+Q>};r?@2JBQu*B-u1E^S{Ug!A_ zDhu>C^g+0V9){DmR;3M%e)fK5WJI}n-3Io4{^*VU#4-Nkjje(TKKkL$#2$yA$(R|$ z8wkhYBflo%b|?CAU&AGL9bS?Iu@i!iX`3;38!RG2c+wG=Ff^41AUvTU( z3=HF9zCSF(eO|$J-}7scSDNWzqvUC*mYn)HtzB~3vXMv%4%=e&fs-!LT@8J{iMv|m zJ~?D`hFk4VuT(C}ufJ$hy@9X4WIo6%rGp4|U`ZAK-rgKAHJ2m)?fULqTw|Ro+||lNmOD`N)tcI^=NT)9K70b?CU-?T$X4=QNDAj1;gHNEwoFU zZIw!RQ*j8@7XhSF+HKzkQ7*>TCA$L8zQ@cP74W;0A*&mq12yMnY zTT7aH(I!$?w^@maVq2u=C1~0hIloI4vj3j$;U&M+YN=13r$$222wYm-s~ zoaVz=O3|Sku5@UVcfc@8tQ!|(Wwi>vL%)Dh9Wa#poxcV@%f5`VW^vWO6MM(YcR$4D zf!YeC-nVHYvVGe@uf2(tHv@-D%W@eNPjOl>?2yIw9u@o{aby1Lnv7Tv`4%pMjKK4(EzA#93EaZlcYX!if(*SsifU1?DR}4%!nd#{bf+=WGD4w1` zaTN4jO;Hg7IT2H$u&p^L5ja&RAWj>k)7_pZA3`U|(LP0%*-J!bziAMTHW=Qdjh~I;H+&r4(_T$cjtApGy7i}w0 zxU%kZ-YJpW^OAYb93oD!$|r$|gwC{-$SF~^CJpCp{Ebc`2wwKkE$UF*W2;or*$ zqi=so*s>WLR{XSOAcEtvhuBujpmZZHZAZ8wU7w%!|9l?+m6Ogc9*k~-8Z}H%i0viz zJ-qooNoF0tv4~B!D~a=PZVo5n>rT@AlpB502hUlasM_6}EB>3+sXwkxh2!hrEJiL` z-CO>2ZFs$ZLJE>`*rZD%HhH}rH%}MnIK|}XTef>Z;m66*2qrumeW5j4R*WZ=3w58;mp@by>WWav{gRTXGiJ zl3TBAp4B;r8I`xEN~c~E`9Arg!d^TjQu+QXV37I+8$*AxXC}>1*G-Ew|9z+Du7xZJkdCCRr3;El!Cw zLqc&5BbG*V-Ht*LT5eV*c7mooDY83@H`kZepVRQFJ{#Hg@a*SF8sb@g{a$i?J)5d| z{l|pe1(wN#uGMd=p2VY`iQMz23wk~_u>B$Foerd{I*D8sZyr@7AWPlt{$|n5uqxVf zA#R9yNSoi(Q}U5Y^@pjtej)TxOCWcI1nCU zASmLSFsnlRFnYPgh30BFSpfaX?vm8_dy0}8-e-$mU!{b{s&+rOMr1!;d{A%v^+SnN zahG(K5)ZjQ_s2@zfb%cir4{CPQu|LgSi-pRi^EqcZdtEX*B!}+ao}CBz(ybC!sMHB z@n+47zTUdc3thWQoU86nrN7H<$9wXd&zWW4{5X}~CVA!>K2Jd-fNpas<7ZXL5W+uO zV1IOBd6T}uKG|AP|9nDtz>Zg0!2 z8Y=;5kJ~-uBd>p&kuk4}_L$7sbQq1t^JaFOZ7IK;;#S)|=n(4IPw72rQ^2r3Oh0hk zH>*51O=a^Wls3v+j9g)!YuBk$8jlj@+HsrY<}2rzT9BR@)h3xX*RUZ*={&AY5j>(yP?Qr&iXM*-D@%dn9kucmwPuerv^z_B_{hHQ;KMFEv zZ#V@EOAFVPqIj(@7JnUhDthZPdH=I3L-!XRvA-fo<3(vHqum`+qZHB?ddDk`-2Uty zkv>4QkkkyrJV#&=1t&bA7Xa}fy;sJ5(WfRJ4mvR+F+$M=BbtGIK^(U;A{iwmu~0N2 zq7xAHW5oNSK5d90;DNbCePUuFVkvV2X8&J{Aok=w0$+fI13z%5^tl%}3VqK{p%e=O z8yDC(n?YnpoKjG^nSvV(sm{Xnhe6`uF=;0FR<-vKsG^qx2@YlL@J`ocyZ2>L36hqi zo<)T%`Cd`a+miz6y*B+&pFhS>z2kjOB^0g{dgiv`LX(VdKfA-9a*KrCD%l5e$oCu~P!lEm&_$!yU=7##!U^VuB;fhVo^h}DN)-+eKe%H+OF z+Zs7&Nk5r;_|u`nM(||@$=TW1is$tb_NSy?b7sZrd+8Pe=M}e$octta|9C)F zI?CmK&@+8!m2y4uZDYQ*o4Q+HfP}&IUwdPBLMEz-eFj$@=+Nm%^MWJXDgcl>Ou9ix zmsj`{TfnqMsc=`l1K|+7#x$b2)$4#T77&#IR05j7)GmplKmjF7Yb!*`d@@>Wjkr~T zxPs;JX&kGKoP$7|Hu`oiadNUC*=wuS1S>$`E+VbO@tWL5S0M&wc;Ritn*nrt`>8Q; zEihPCpiUypKr`hUC|6*+1r0W}c;F#&lL5qw14i{beIT-dRhSl-#hI8#Hq(CiT-ONX z(r%=IzYp~9F9kjz7Q_GJbCrS*MtIB)M%*=ocaE!^=|3O%T@*I)ljM$DgI__>tfaH} z2b7yz?0k8qfO5lnM-1m0`O4RNVFu0cx~BQZ4TX4$dyY9eIdpydI>@ziGmQ;@XeiQo zw)P9dYcC1KZfq9G`fD$Y7{w|$I%gGAox z*}uQUX>Kw0*?3L=JyNV<&By51^bNWU#UYzXE_DoCg>*p-lIf+sLE24*;)CckDm6M6 zxIWMsg0!=T@pnS1wW-{^jqG@k)=-E~1w8Et*PweL5_q_s7gzk6k@n zr87pA-Dz3m?IRyo5AT+PF@i{m+ zpiuq&{rRJ-xOjMVVAFeWZHF&zc5ZGLTbmJlzK1A*rwM_e&7@~#;YBe&1_~G2rw$Jf zMI7e|X3%Kviq-9fE_CfnOw^0tzqR5z%-tmD^*FBrEzQKocbSoqQ397@?9H{un@&{X zQv0>cm`c+Zgch34Q;o|HXkA^x0#fI2D_zF?`RS;?gSmbXUnUPF{3Y>@H}cRIv$VXo&NRB=vG8^ z4{6A6;lmZo!CxAms(p>B2E%P!jXrMGQSrGcncA53Fy7%-J&b0SxPP!~Zt#vBozh-S zbo+7D%Q}%-XJ_ZSCj}oqf5z_V;gt*21Ga;SjSVLu<6}_~8SqcI#Kb}U&lK+7?Wldz z(cF9+DxRYAvJf$Gam=T-*fTRTZ{EB?F*eqkXeDIGWcJBvl3%3_ByGG%oO9K`dAg;g zg^7_7BZ`@jKtV8G^=Er~lC8y-QsZRFGLbRI%@os1LX5_F_lF|tz z3^8^j4N0xZ4;GfZ9q&{=%K3QhtuSqSE~gll0#C6x@5YJg;;U!oc{rGpYPdU+uGl-; z*X5i~y7?(_f`HwxH|6_STznNYh5a`hy_2F9<2F#CQG?Ja=iwn1cAF_JJ^gJ$!li3= z^UApM#$zCSh_K*b0DpvmuuNO)aI)yOtZ5C(z}u^(qm%aG11dXvX0a#zj=Fjf$qdaX zH43OTzxjD{T5%VG;o;%fv0}qKhOHyWJj|@D$m4l=dB5c3$T>Lh5np)ml!?THk%Ku9 z@5H1$VBGm;wXpVW9j!@0PEq|SBlDj_4!!=mQrop(P_B31zolX89>^tBHI_WM_+@zW zy$QvVk#IP)lr^m22TbOfw8LsfQ?NZoYZANkXO}YFl}*-e@TGS`e@v<-SfY3GMeXF; z@D54F^W7XB|MIk=uy1s}yp+@GyeiP}B3~NT|3eM=e-9=wJVi-`geMl4R1719Blh|3Bk%Gl-Xxx9jc!F5^utN3}fkjL}kP9R>u zjpski1(sD#ULH$UR`%k^!x%F#Xj}bcGRMZo1`iE=VQyWEEG|Z9lV4QSWz;{)%9p@n zaj9sS00lc--oyl{tw?ET_}3yE2=RK~P|Z^qdD`#PM`KfTq1V-7HpW{oi+LQ`@EyfA zgbLzG?7z3wSYT0!6JG4Sl7V@KzI}eAy5n12^$EM4*G$Is?`w3Sffz9N}ok=gweyl2Ng{xj8EzKY!54qi4_l z)NaR|K4EM0K`*1pW=K;>x`>y}z>y7fUITjbpT6%eyLO>$mNrcjMPa6{pH**9c>3~~ ziobgG3e#7ZlHg!7()Z-Y76m#k=*)G2| z-3Sc)^2ux-CE3SOSSq%YpEge&zp93k4%zPy28n0h#%-t4T8<}Y)o@zwPEF)jqTb?v z>@hVrTI0UBQ?p>HL(msd2(w^({?vb~l6K;mFDnT<^Q&#rE<;$1hJTUV?n+mFy z&UFj}^~Q_}HXVbW^`~<;78Vvpc6Li+aY##Y#o~bJE~2N6Gz?Ic^!tNjV-h@%_`{9- z<*vNVgWe6#(GrgU614|0lGP)MSDk{M$n5`;ryjc4p4*;lRFS%E#uO$%N#@VXvGP(* z^W6s#!1`WR zmM7OM>(5lcxoC3z2@kzDcq3Ncnw1&gKHh((n5>q^ttKze1( zUS!YHl{h{#WnuU;P2)KoBXz4^#;WoJ%_iL?)Zw@Djt9>0-;LWW)UjSqwJXyfs&LKI z&FeW5aS}67^zo6xFPE3ch(RumF%RqYi)hV-h~VI-y-QAp+(br(h7pjy=e%iagaJ;Kag zv^(0d{CB-EA3S(a_3`6JiyaSd|B}4ioSX(Q_O@ZF%bWaxjwo5H99RE~0(bATDE;Ay zS0#i-*ZfP20!FLc|6P4X4vtW`0L=WD1An#xZ^HjiFQMS6kcW@#HzZO-UjfHfcEL zN}0YM-0b4luU~=N4%(XUibzRG=k8~yTGnb)%l!K>nKJc1yYwPX<7O~&)8`LAe`Ql5 z?p<1UfEfPB6{h1AVN;_JD^GGtN_Cfc5nZt!XO=8(p7>8-22=}PfSdPNzzrdwLx^o0P49p-;i7B9=Oh>ZG;jdZ#^n*pJ~(Pi2Hlm zMMB`H6Ers()4r>ttTy`b1eY=3A$%1*X$rX))bMuQrJ^sek5xfIp?i53G58!0YVLp% zO9bctIzYT(N}u}YLTE5YiR$D1(LyS+2`r$=@>YA8KorkA$ASlgt9^`t|EPRs)<~a2Y5&dp!k& zn3d|G{(F;<@T-}Uv0^*|8hK5Ci*7h;et_GP)3>CiaQn7TTuRE>Avmm-w_^8O{`V&I zoKRCpUFpy3&&x~6PZ?P_Ha4~f`r^uuhq?TtBO_7T+TrwT#mG#6k&%ap4YqVH=8@Y4 z!u!xaYv{eJ4JILcX#ajrB7H5O7CL%0G&E5Db+s3%UiS9h`)X7}uNXl~wI?KS*PpY^ zC@>)49V-h9-4UqF#+%WaM94}s!n>iaMItzIC5S?d38bm!covg-1nyc%L8H~{hUuTs zv08%JP3-DvW@dJSo4W8!EJ{KWpN{Gs*GR@=pcK6u32=N?TXAeSSYpaU@BURB6S!>?Nb3h zO0u3fY!js@PS)t9Q`kV^pljcF1VaJP&y2>n&7e=46oyBf_!tZ5xm)1NedPO8S6jP30`g?ZxJ~LGmkRXl%VFa-!bEgp0npk8whNrB ztSnqY!nt7;0X6?km{PC_j(22K1=1Q9ZtTS@CU)doSX86}KN@|VBk^k*2#NC9^VOk( z1~5qtjtmVw1y5XOw?KzP@8sa{@aw`tKJaB@x>V5Fl+fVe;k_}7XQS05DH?u`)Ii|> z*@XM-eE9SUX$NPT_?BTwub`RTVZLnyfN7GQi_4~5s}2Koa;<`|N6p%0^>riMHg=6$^P zvAWtvt2oCpK{2z>o1TiQOjKOl^B4%JXVdAs;oOcgWn(^VAYpZ$fuqa^CLY+QW@nS# z-riS<3V^fz7}SlQot@1)R+&svjP$J0ui2P1U)<9sG%z3nFqkCfe2KyLg!ksno3{lT z_b;DD-)wV8AAWwO^6=rvJm5QBPNV9|eZIWMe=iE^S8jb5tNvpi*0dLR&7kTm?}pBL zVjJZri`dJaL&u~~W?|u$k+sn1zLs`4b&fYLB>~tT_}~j_&=;@C&?IDJ;c;=4^0#ka zmyn=^N*uCb_mYzaId&nZ33o)Vx{nv!vs(M+K7R?5d_-}<~W_!n29 zLWxA&x0nGn_}l-3WpdDUIbL_iQCnL(5IQQo)XdE0YKB+$)}JLbv-iDTe73utz^r5q zMX;~Bni>}uC+CSNxKoQc9^}@i7IOTXw#|DmJgQP4ZJ&ryHbm;=Y_Mw3OL>XR0>_o& zd9<_i89F_R3oiYXmycc2?E*Ml75nbp_uXb1TM5Y837s4U^nG0+aQNjL$2_Q_Qj2xh zp}SkU_1CWv%BxrRT$Q54+%A#!XcIL1sw*pxJk-;38=AaCGy(Z;`KZIz=YC9bauuV5 z#EESb^N+1NWN(R&wY6jBkaXv(qNFtJ1OqqL_cNwy5qRiUroDxBF#*_BgWvp8-;Pq> z4U**e8QeGOJR~G!gsaV=YTmYCBKXE4E~7q$PSy}q#^p=Jqc+F0ApE}#b1=HEs18I?L(N+McZS;0a9QzMeBb_#Y&ehvtSDV|xiPrw~~+nZpBs`^n@c9;q-s)aAv z)E)eQFJ8l*&S^Cr5w@RcteKyk^{O;&jmoI3lo-T4x&>e*4YsxNi|?65rKP0~@GNxj zEY`^9Gr~r1Z8_-j)L24^()T?BGWUry^!_*#5)$Hzi;LT?udY^IeDN|9Fb5AoYDjSK zkfderCs&KkB=?=Ng_LCy*)K9@1OMB8s3~`FT2h6*{%KKHT3M-2$F^>SY1}VhJqbze znX-zCw3V%`QFnj8;NYAC3mzkR3XA-#LTWEZn}heAJ3r6j;^OuT3k&z8VSK?|WJHPW z8%edgzo<<{#|d>5_*!q$=hzw$DRrN5*tLY3y3jp4%Y*?9L&LKg7}1jRB`ZtRxM=ti z9g$+n=&BmV2lN9u`N`fOr)8&dkMy1cOE)(+OJ(I>XJB;B@&I$#o;^?bzwpcd(_(km z50}-4$g}SnpMbGE3ted~fHFwP(0=#+z4s>A8rQRc_5dG6QAI^X=KkKE8ia0%D0k-I z8^LSYf*njsQBB4?zXJjSXo(34CEvVz=kz5%KOdP!@dJ`RsK^ZK9gXmL&|)PQ9bRc; zcK?7;DaZ@j^Y}o6qQvvhj1(fosKgA*D=iUpIb1hy9_43eKP!jKFx=PYXsxcUUf#E) zTHW2H{G2zM-dUru z*Rb&kG%`A_I<1EgQ=`~kxZLd%LnVoLAAO%j+@@LpmZJKfCI9a0DKSvhQOZjNzxcb7G`?K3P&Aw+R)ZA{disK)B|KU3FyxV?m~ zC@j5YR_a^crLQtvS5{SBY3=A(O_20-v3>shD~)%$iX`gyrcm0y+wy@^>8!Jp9S;{f zJ7gtli@JlUI)534Fu~RAnx?brtEhatY1w1&>ABZmE|_G5(~ck>Ttk82f4`n`o}8n~ XYThoq_xk(`1z$=EYVzM?js5-)RMBe_ diff --git a/pubspec.yaml b/pubspec.yaml index 621cb0b..8bd4dc4 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,8 +1,11 @@ name: timeline_list -description: A Flutter widget for creating beautiful vertical timelines with customizable markers, icons, and flexible positioning. Perfect for onboarding flows, progress tracking, and history displays. +description: >- + A Flutter widget for creating beautiful vertical timelines with customizable + markers, icons, and flexible positioning. Perfect for onboarding flows, + progress tracking, and history displays. version: 0.1.0 homepage: https://github.com/furkantektas/timeline_list - +repository: https://github.com/furkantektas/timeline_list environment: sdk: ">=3.0.0 <4.0.0" @@ -17,3 +20,25 @@ dev_dependencies: sdk: flutter flutter: + +screenshots: + - description: "Timeline with icons and different alignment options" + path: https://raw.githubusercontent.com/furkantektas/timeline_list/master/doc/timeline-grid.png + + - description: "Onboarding example" + path: https://raw.githubusercontent.com/furkantektas/timeline_list/master/doc/timeline-onboarding.png + + - description: "Simple timeline" + path: https://raw.githubusercontent.com/furkantektas/timeline_list/master/doc/timeline-simple.png + +topics: + - timeline + - widgets + - flutter + - ui + - mobile + - ios + - android + - onboarding + - web + - browser \ No newline at end of file From 86760a77067746dec684f76c8b991ede9d6a29ff Mon Sep 17 00:00:00 2001 From: Furkan Tektas Date: Mon, 2 Dec 2024 21:13:52 +0000 Subject: [PATCH 14/14] Add web demo link --- .github/workflows/publish-web-demo.yml | 2 -- README.md | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/publish-web-demo.yml b/.github/workflows/publish-web-demo.yml index 7655ff6..23e0cc0 100644 --- a/.github/workflows/publish-web-demo.yml +++ b/.github/workflows/publish-web-demo.yml @@ -4,8 +4,6 @@ on: push: branches: - main - pull_request: - jobs: build-and-deploy: diff --git a/README.md b/README.md index 914491b..bda0670 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # Flutter Timeline Widget -[![pub package](https://img.shields.io/pub/v/timeline_list.svg)](https://pub.dartlang.org/packages/timeline_list) +[![pub package](https://img.shields.io/pub/v/timeline_list.svg)](https://pub.dartlang.org/packages/timeline_list) [![Flutter Timeline List Web Demo](https://img.shields.io/badge/Web_demo-blue?logo=googlechrome&logoColor=white&link=https%3A%2F%2Ffurkantektas.github.io%2Ftimeline_list%2F)](https://furkantektas.github.io/timeline_list/) A highly customizable Flutter widget for displaying vertical timelines with custom markers, icons, and flexible positioning options.