From 93b7662a1a4b02335611a9aa2e9f8aa96b30c835 Mon Sep 17 00:00:00 2001 From: cty <1928508165@qq.com> Date: Tue, 10 Oct 2023 15:00:59 +0800 Subject: [PATCH] 1.0 --- .gitignore | 37 + LICENSE | 433 ++++---- README.md | 24 +- app/build.gradle | 26 + app/src/main/AndroidManifest.xml | 150 +++ .../java/net/micode/notes/data/Contact.java | 73 ++ .../java/net/micode/notes/data/Notes.java | 279 +++++ .../notes/data/NotesDatabaseHelper.java | 362 +++++++ .../net/micode/notes/data/NotesProvider.java | 305 ++++++ .../net/micode/notes/gtask/data/MetaData.java | 82 ++ .../net/micode/notes/gtask/data/Node.java | 101 ++ .../net/micode/notes/gtask/data/SqlData.java | 189 ++++ .../net/micode/notes/gtask/data/SqlNote.java | 505 +++++++++ .../net/micode/notes/gtask/data/Task.java | 351 +++++++ .../net/micode/notes/gtask/data/TaskList.java | 343 ++++++ .../exception/ActionFailureException.java | 33 + .../exception/NetworkFailureException.java | 33 + .../notes/gtask/remote/GTaskASyncTask.java | 124 +++ .../notes/gtask/remote/GTaskClient.java | 585 +++++++++++ .../notes/gtask/remote/GTaskManager.java | 800 ++++++++++++++ .../notes/gtask/remote/GTaskSyncService.java | 128 +++ .../java/net/micode/notes/model/Note.java | 253 +++++ .../net/micode/notes/model/WorkingNote.java | 368 +++++++ .../net/micode/notes/tool/BackupUtils.java | 344 ++++++ .../java/net/micode/notes/tool/DataUtils.java | 295 ++++++ .../micode/notes/tool/GTaskStringUtils.java | 113 ++ .../net/micode/notes/tool/ResourceParser.java | 181 ++++ .../micode/notes/ui/AlarmAlertActivity.java | 158 +++ .../micode/notes/ui/AlarmInitReceiver.java | 65 ++ .../net/micode/notes/ui/AlarmReceiver.java | 30 + .../net/micode/notes/ui/DateTimePicker.java | 485 +++++++++ .../micode/notes/ui/DateTimePickerDialog.java | 90 ++ .../net/micode/notes/ui/DropdownMenu.java | 61 ++ .../micode/notes/ui/FoldersListAdapter.java | 80 ++ .../net/micode/notes/ui/NoteEditActivity.java | 878 ++++++++++++++++ .../net/micode/notes/ui/NoteEditText.java | 217 ++++ .../net/micode/notes/ui/NoteItemData.java | 224 ++++ .../micode/notes/ui/NotesListActivity.java | 992 ++++++++++++++++++ .../net/micode/notes/ui/NotesListAdapter.java | 184 ++++ .../net/micode/notes/ui/NotesListItem.java | 122 +++ .../notes/ui/NotesPreferenceActivity.java | 388 +++++++ .../notes/widget/NoteWidgetProvider.java | 132 +++ .../notes/widget/NoteWidgetProvider_2x.java | 47 + .../notes/widget/NoteWidgetProvider_4x.java | 46 + app/src/main/res/color/primary_text_dark.xml | 22 + .../main/res/color/secondary_text_dark.xml | 20 + .../res/drawable-hdpi/bg_btn_set_color.png | Bin 0 -> 3588 bytes .../res/drawable-hdpi/bg_color_btn_mask.png | Bin 0 -> 245 bytes .../main/res/drawable-hdpi/call_record.png | Bin 0 -> 3533 bytes app/src/main/res/drawable-hdpi/clock.png | Bin 0 -> 3958 bytes app/src/main/res/drawable-hdpi/delete.png | Bin 0 -> 3490 bytes .../res/drawable-hdpi/dropdown_icon.9.png | Bin 0 -> 443 bytes .../main/res/drawable-hdpi/edit_blue.9.png | Bin 0 -> 3524 bytes .../main/res/drawable-hdpi/edit_green.9.png | Bin 0 -> 3565 bytes app/src/main/res/drawable-hdpi/edit_red.9.png | Bin 0 -> 3458 bytes .../res/drawable-hdpi/edit_title_blue.9.png | Bin 0 -> 5100 bytes .../res/drawable-hdpi/edit_title_green.9.png | Bin 0 -> 5627 bytes .../res/drawable-hdpi/edit_title_red.9.png | Bin 0 -> 5061 bytes .../res/drawable-hdpi/edit_title_white.9.png | Bin 0 -> 3866 bytes .../res/drawable-hdpi/edit_title_yellow.9.png | Bin 0 -> 6000 bytes .../main/res/drawable-hdpi/edit_white.9.png | Bin 0 -> 3441 bytes .../main/res/drawable-hdpi/edit_yellow.9.png | Bin 0 -> 3634 bytes app/src/main/res/drawable-hdpi/font_large.png | Bin 0 -> 3161 bytes .../main/res/drawable-hdpi/font_normal.png | Bin 0 -> 3097 bytes .../drawable-hdpi/font_size_selector_bg.9.png | Bin 0 -> 4101 bytes app/src/main/res/drawable-hdpi/font_small.png | Bin 0 -> 3099 bytes app/src/main/res/drawable-hdpi/font_super.png | Bin 0 -> 3188 bytes .../main/res/drawable-hdpi/ic_menu_more.png | Bin 0 -> 144 bytes .../res/drawable-hdpi/ic_menu_more_dark.png | Bin 0 -> 148 bytes app/src/main/res/drawable-hdpi/icon_app.png | Bin 0 -> 6887 bytes .../res/drawable-hdpi/list_background.png | Bin 0 -> 567323 bytes .../res/drawable-hdpi/list_blue_down.9.png | Bin 0 -> 4361 bytes .../res/drawable-hdpi/list_blue_middle.9.png | Bin 0 -> 3099 bytes .../res/drawable-hdpi/list_blue_single.9.png | Bin 0 -> 4618 bytes .../main/res/drawable-hdpi/list_blue_up.9.png | Bin 0 -> 3301 bytes .../main/res/drawable-hdpi/list_folder.9.png | Bin 0 -> 5608 bytes .../res/drawable-hdpi/list_footer_bg.9.png | Bin 0 -> 2837 bytes .../res/drawable-hdpi/list_green_down.9.png | Bin 0 -> 4488 bytes .../res/drawable-hdpi/list_green_middle.9.png | Bin 0 -> 3179 bytes .../res/drawable-hdpi/list_green_single.9.png | Bin 0 -> 4728 bytes .../res/drawable-hdpi/list_green_up.9.png | Bin 0 -> 3351 bytes .../res/drawable-hdpi/list_red_down.9.png | Bin 0 -> 4307 bytes .../res/drawable-hdpi/list_red_middle.9.png | Bin 0 -> 3075 bytes .../res/drawable-hdpi/list_red_single.9.png | Bin 0 -> 4565 bytes .../main/res/drawable-hdpi/list_red_up.9.png | Bin 0 -> 3277 bytes .../res/drawable-hdpi/list_white_down.9.png | Bin 0 -> 4305 bytes .../res/drawable-hdpi/list_white_middle.9.png | Bin 0 -> 3042 bytes .../res/drawable-hdpi/list_white_single.9.png | Bin 0 -> 4546 bytes .../res/drawable-hdpi/list_white_up.9.png | Bin 0 -> 3220 bytes .../res/drawable-hdpi/list_yellow_down.9.png | Bin 0 -> 4420 bytes .../drawable-hdpi/list_yellow_middle.9.png | Bin 0 -> 3150 bytes .../drawable-hdpi/list_yellow_single.9.png | Bin 0 -> 4670 bytes .../res/drawable-hdpi/list_yellow_up.9.png | Bin 0 -> 3335 bytes .../main/res/drawable-hdpi/menu_delete.png | Bin 0 -> 3426 bytes app/src/main/res/drawable-hdpi/menu_move.png | Bin 0 -> 3294 bytes .../res/drawable-hdpi/new_note_normal.png | Bin 0 -> 89221 bytes .../res/drawable-hdpi/new_note_pressed.png | Bin 0 -> 90126 bytes .../note_edit_color_selector_panel.png | Bin 0 -> 7030 bytes .../main/res/drawable-hdpi/notification.png | Bin 0 -> 3107 bytes .../main/res/drawable-hdpi/search_result.png | Bin 0 -> 3030 bytes app/src/main/res/drawable-hdpi/selected.png | Bin 0 -> 4959 bytes .../main/res/drawable-hdpi/title_alert.png | Bin 0 -> 3696 bytes .../main/res/drawable-hdpi/title_bar_bg.9.png | Bin 0 -> 5970 bytes .../main/res/drawable-hdpi/widget_2x_blue.png | Bin 0 -> 1946 bytes .../res/drawable-hdpi/widget_2x_green.png | Bin 0 -> 1954 bytes .../main/res/drawable-hdpi/widget_2x_red.png | Bin 0 -> 1892 bytes .../res/drawable-hdpi/widget_2x_white.png | Bin 0 -> 1901 bytes .../res/drawable-hdpi/widget_2x_yellow.png | Bin 0 -> 1978 bytes .../main/res/drawable-hdpi/widget_4x_blue.png | Bin 0 -> 4165 bytes .../res/drawable-hdpi/widget_4x_green.png | Bin 0 -> 4192 bytes .../main/res/drawable-hdpi/widget_4x_red.png | Bin 0 -> 4223 bytes .../res/drawable-hdpi/widget_4x_white.png | Bin 0 -> 4106 bytes .../res/drawable-hdpi/widget_4x_yellow.png | Bin 0 -> 4199 bytes app/src/main/res/drawable/new_note.xml | 23 + .../main/res/layout/account_dialog_title.xml | 43 + app/src/main/res/layout/add_account_text.xml | 32 + app/src/main/res/layout/datetime_picker.xml | 56 + app/src/main/res/layout/dialog_edit_text.xml | 23 + app/src/main/res/layout/folder_list_item.xml | 29 + app/src/main/res/layout/note_edit.xml | 410 ++++++++ .../main/res/layout/note_edit_list_item.xml | 39 + app/src/main/res/layout/note_item.xml | 78 ++ app/src/main/res/layout/note_list.xml | 69 ++ .../res/layout/note_list_dropdown_menu.xml | 32 + app/src/main/res/layout/note_list_footer.xml | 24 + app/src/main/res/layout/settings_header.xml | 41 + app/src/main/res/layout/widget_2x.xml | 37 + app/src/main/res/layout/widget_4x.xml | 39 + app/src/main/res/menu/call_note_edit.xml | 48 + app/src/main/res/menu/call_record_folder.xml | 23 + app/src/main/res/menu/note_edit.xml | 52 + app/src/main/res/menu/note_list.xml | 39 + app/src/main/res/menu/note_list_dropdown.xml | 20 + app/src/main/res/menu/note_list_options.xml | 31 + app/src/main/res/menu/sub_folder.xml | 24 + app/src/main/res/raw-zh-rCN/introduction | 6 + app/src/main/res/raw/introduction | 1 + app/src/main/res/values-zh-rCN/arrays.xml | 23 + app/src/main/res/values-zh-rCN/strings.xml | 126 +++ app/src/main/res/values-zh-rTW/arrays.xml | 23 + app/src/main/res/values-zh-rTW/strings.xml | 127 +++ app/src/main/res/values/arrays.xml | 31 + app/src/main/res/values/colors.xml | 20 + app/src/main/res/values/dimens.xml | 24 + app/src/main/res/values/strings.xml | 135 +++ app/src/main/res/values/styles.xml | 69 ++ app/src/main/res/xml/preferences.xml | 30 + app/src/main/res/xml/searchable.xml | 27 + app/src/main/res/xml/widget_2x_info.xml | 23 + app/src/main/res/xml/widget_4x_info.xml | 23 + build.gradle | 20 + gradle.properties | 16 + gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 59821 bytes gradle/wrapper/gradle-wrapper.properties | 6 + gradlew | 234 +++++ gradlew.bat | 89 ++ import-summary.txt | 36 + settings.gradle | 1 + 158 files changed, 12827 insertions(+), 233 deletions(-) create mode 100644 .gitignore create mode 100644 app/build.gradle create mode 100644 app/src/main/AndroidManifest.xml create mode 100644 app/src/main/java/net/micode/notes/data/Contact.java create mode 100644 app/src/main/java/net/micode/notes/data/Notes.java create mode 100644 app/src/main/java/net/micode/notes/data/NotesDatabaseHelper.java create mode 100644 app/src/main/java/net/micode/notes/data/NotesProvider.java create mode 100644 app/src/main/java/net/micode/notes/gtask/data/MetaData.java create mode 100644 app/src/main/java/net/micode/notes/gtask/data/Node.java create mode 100644 app/src/main/java/net/micode/notes/gtask/data/SqlData.java create mode 100644 app/src/main/java/net/micode/notes/gtask/data/SqlNote.java create mode 100644 app/src/main/java/net/micode/notes/gtask/data/Task.java create mode 100644 app/src/main/java/net/micode/notes/gtask/data/TaskList.java create mode 100644 app/src/main/java/net/micode/notes/gtask/exception/ActionFailureException.java create mode 100644 app/src/main/java/net/micode/notes/gtask/exception/NetworkFailureException.java create mode 100644 app/src/main/java/net/micode/notes/gtask/remote/GTaskASyncTask.java create mode 100644 app/src/main/java/net/micode/notes/gtask/remote/GTaskClient.java create mode 100644 app/src/main/java/net/micode/notes/gtask/remote/GTaskManager.java create mode 100644 app/src/main/java/net/micode/notes/gtask/remote/GTaskSyncService.java create mode 100644 app/src/main/java/net/micode/notes/model/Note.java create mode 100644 app/src/main/java/net/micode/notes/model/WorkingNote.java create mode 100644 app/src/main/java/net/micode/notes/tool/BackupUtils.java create mode 100644 app/src/main/java/net/micode/notes/tool/DataUtils.java create mode 100644 app/src/main/java/net/micode/notes/tool/GTaskStringUtils.java create mode 100644 app/src/main/java/net/micode/notes/tool/ResourceParser.java create mode 100644 app/src/main/java/net/micode/notes/ui/AlarmAlertActivity.java create mode 100644 app/src/main/java/net/micode/notes/ui/AlarmInitReceiver.java create mode 100644 app/src/main/java/net/micode/notes/ui/AlarmReceiver.java create mode 100644 app/src/main/java/net/micode/notes/ui/DateTimePicker.java create mode 100644 app/src/main/java/net/micode/notes/ui/DateTimePickerDialog.java create mode 100644 app/src/main/java/net/micode/notes/ui/DropdownMenu.java create mode 100644 app/src/main/java/net/micode/notes/ui/FoldersListAdapter.java create mode 100644 app/src/main/java/net/micode/notes/ui/NoteEditActivity.java create mode 100644 app/src/main/java/net/micode/notes/ui/NoteEditText.java create mode 100644 app/src/main/java/net/micode/notes/ui/NoteItemData.java create mode 100644 app/src/main/java/net/micode/notes/ui/NotesListActivity.java create mode 100644 app/src/main/java/net/micode/notes/ui/NotesListAdapter.java create mode 100644 app/src/main/java/net/micode/notes/ui/NotesListItem.java create mode 100644 app/src/main/java/net/micode/notes/ui/NotesPreferenceActivity.java create mode 100644 app/src/main/java/net/micode/notes/widget/NoteWidgetProvider.java create mode 100644 app/src/main/java/net/micode/notes/widget/NoteWidgetProvider_2x.java create mode 100644 app/src/main/java/net/micode/notes/widget/NoteWidgetProvider_4x.java create mode 100644 app/src/main/res/color/primary_text_dark.xml create mode 100644 app/src/main/res/color/secondary_text_dark.xml create mode 100644 app/src/main/res/drawable-hdpi/bg_btn_set_color.png create mode 100644 app/src/main/res/drawable-hdpi/bg_color_btn_mask.png create mode 100644 app/src/main/res/drawable-hdpi/call_record.png create mode 100644 app/src/main/res/drawable-hdpi/clock.png create mode 100644 app/src/main/res/drawable-hdpi/delete.png create mode 100644 app/src/main/res/drawable-hdpi/dropdown_icon.9.png create mode 100644 app/src/main/res/drawable-hdpi/edit_blue.9.png create mode 100644 app/src/main/res/drawable-hdpi/edit_green.9.png create mode 100644 app/src/main/res/drawable-hdpi/edit_red.9.png create mode 100644 app/src/main/res/drawable-hdpi/edit_title_blue.9.png create mode 100644 app/src/main/res/drawable-hdpi/edit_title_green.9.png create mode 100644 app/src/main/res/drawable-hdpi/edit_title_red.9.png create mode 100644 app/src/main/res/drawable-hdpi/edit_title_white.9.png create mode 100644 app/src/main/res/drawable-hdpi/edit_title_yellow.9.png create mode 100644 app/src/main/res/drawable-hdpi/edit_white.9.png create mode 100644 app/src/main/res/drawable-hdpi/edit_yellow.9.png create mode 100644 app/src/main/res/drawable-hdpi/font_large.png create mode 100644 app/src/main/res/drawable-hdpi/font_normal.png create mode 100644 app/src/main/res/drawable-hdpi/font_size_selector_bg.9.png create mode 100644 app/src/main/res/drawable-hdpi/font_small.png create mode 100644 app/src/main/res/drawable-hdpi/font_super.png create mode 100644 app/src/main/res/drawable-hdpi/ic_menu_more.png create mode 100644 app/src/main/res/drawable-hdpi/ic_menu_more_dark.png create mode 100644 app/src/main/res/drawable-hdpi/icon_app.png create mode 100644 app/src/main/res/drawable-hdpi/list_background.png create mode 100644 app/src/main/res/drawable-hdpi/list_blue_down.9.png create mode 100644 app/src/main/res/drawable-hdpi/list_blue_middle.9.png create mode 100644 app/src/main/res/drawable-hdpi/list_blue_single.9.png create mode 100644 app/src/main/res/drawable-hdpi/list_blue_up.9.png create mode 100644 app/src/main/res/drawable-hdpi/list_folder.9.png create mode 100644 app/src/main/res/drawable-hdpi/list_footer_bg.9.png create mode 100644 app/src/main/res/drawable-hdpi/list_green_down.9.png create mode 100644 app/src/main/res/drawable-hdpi/list_green_middle.9.png create mode 100644 app/src/main/res/drawable-hdpi/list_green_single.9.png create mode 100644 app/src/main/res/drawable-hdpi/list_green_up.9.png create mode 100644 app/src/main/res/drawable-hdpi/list_red_down.9.png create mode 100644 app/src/main/res/drawable-hdpi/list_red_middle.9.png create mode 100644 app/src/main/res/drawable-hdpi/list_red_single.9.png create mode 100644 app/src/main/res/drawable-hdpi/list_red_up.9.png create mode 100644 app/src/main/res/drawable-hdpi/list_white_down.9.png create mode 100644 app/src/main/res/drawable-hdpi/list_white_middle.9.png create mode 100644 app/src/main/res/drawable-hdpi/list_white_single.9.png create mode 100644 app/src/main/res/drawable-hdpi/list_white_up.9.png create mode 100644 app/src/main/res/drawable-hdpi/list_yellow_down.9.png create mode 100644 app/src/main/res/drawable-hdpi/list_yellow_middle.9.png create mode 100644 app/src/main/res/drawable-hdpi/list_yellow_single.9.png create mode 100644 app/src/main/res/drawable-hdpi/list_yellow_up.9.png create mode 100644 app/src/main/res/drawable-hdpi/menu_delete.png create mode 100644 app/src/main/res/drawable-hdpi/menu_move.png create mode 100644 app/src/main/res/drawable-hdpi/new_note_normal.png create mode 100644 app/src/main/res/drawable-hdpi/new_note_pressed.png create mode 100644 app/src/main/res/drawable-hdpi/note_edit_color_selector_panel.png create mode 100644 app/src/main/res/drawable-hdpi/notification.png create mode 100644 app/src/main/res/drawable-hdpi/search_result.png create mode 100644 app/src/main/res/drawable-hdpi/selected.png create mode 100644 app/src/main/res/drawable-hdpi/title_alert.png create mode 100644 app/src/main/res/drawable-hdpi/title_bar_bg.9.png create mode 100644 app/src/main/res/drawable-hdpi/widget_2x_blue.png create mode 100644 app/src/main/res/drawable-hdpi/widget_2x_green.png create mode 100644 app/src/main/res/drawable-hdpi/widget_2x_red.png create mode 100644 app/src/main/res/drawable-hdpi/widget_2x_white.png create mode 100644 app/src/main/res/drawable-hdpi/widget_2x_yellow.png create mode 100644 app/src/main/res/drawable-hdpi/widget_4x_blue.png create mode 100644 app/src/main/res/drawable-hdpi/widget_4x_green.png create mode 100644 app/src/main/res/drawable-hdpi/widget_4x_red.png create mode 100644 app/src/main/res/drawable-hdpi/widget_4x_white.png create mode 100644 app/src/main/res/drawable-hdpi/widget_4x_yellow.png create mode 100644 app/src/main/res/drawable/new_note.xml create mode 100644 app/src/main/res/layout/account_dialog_title.xml create mode 100644 app/src/main/res/layout/add_account_text.xml create mode 100644 app/src/main/res/layout/datetime_picker.xml create mode 100644 app/src/main/res/layout/dialog_edit_text.xml create mode 100644 app/src/main/res/layout/folder_list_item.xml create mode 100644 app/src/main/res/layout/note_edit.xml create mode 100644 app/src/main/res/layout/note_edit_list_item.xml create mode 100644 app/src/main/res/layout/note_item.xml create mode 100644 app/src/main/res/layout/note_list.xml create mode 100644 app/src/main/res/layout/note_list_dropdown_menu.xml create mode 100644 app/src/main/res/layout/note_list_footer.xml create mode 100644 app/src/main/res/layout/settings_header.xml create mode 100644 app/src/main/res/layout/widget_2x.xml create mode 100644 app/src/main/res/layout/widget_4x.xml create mode 100644 app/src/main/res/menu/call_note_edit.xml create mode 100644 app/src/main/res/menu/call_record_folder.xml create mode 100644 app/src/main/res/menu/note_edit.xml create mode 100644 app/src/main/res/menu/note_list.xml create mode 100644 app/src/main/res/menu/note_list_dropdown.xml create mode 100644 app/src/main/res/menu/note_list_options.xml create mode 100644 app/src/main/res/menu/sub_folder.xml create mode 100644 app/src/main/res/raw-zh-rCN/introduction create mode 100644 app/src/main/res/raw/introduction create mode 100644 app/src/main/res/values-zh-rCN/arrays.xml create mode 100644 app/src/main/res/values-zh-rCN/strings.xml create mode 100644 app/src/main/res/values-zh-rTW/arrays.xml create mode 100644 app/src/main/res/values-zh-rTW/strings.xml create mode 100644 app/src/main/res/values/arrays.xml create mode 100644 app/src/main/res/values/colors.xml create mode 100644 app/src/main/res/values/dimens.xml create mode 100644 app/src/main/res/values/strings.xml create mode 100644 app/src/main/res/values/styles.xml create mode 100644 app/src/main/res/xml/preferences.xml create mode 100644 app/src/main/res/xml/searchable.xml create mode 100644 app/src/main/res/xml/widget_2x_info.xml create mode 100644 app/src/main/res/xml/widget_4x_info.xml create mode 100644 build.gradle create mode 100644 gradle.properties create mode 100644 gradle/wrapper/gradle-wrapper.jar create mode 100644 gradle/wrapper/gradle-wrapper.properties create mode 100644 gradlew create mode 100644 gradlew.bat create mode 100644 import-summary.txt create mode 100644 settings.gradle diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ba4cbe0 --- /dev/null +++ b/.gitignore @@ -0,0 +1,37 @@ +*.iml + +.DS_Store + +# Gradle files +.gradle/ +build/ + +# Local configuration file (sdk path, etc) +local.properties + +# Proguard folder generated by Eclipse +proguard/ + +# Log Files +*.log + +# Android Studio Navigation editor temp files +.navigation/ + +# Android Studio captures folder +captures/ + +# Intellij +*.iml +.idea/workspace.xml +.idea/tasks.xml +.idea/gradle.xml +.idea/dictionaries +.idea/libraries +.idea/ + +# Keystore files +*.jks + +# External native build folder generated in Android Studio 2.2 and later +.externalNativeBuild diff --git a/LICENSE b/LICENSE index d41c0bd..261eeb9 100644 --- a/LICENSE +++ b/LICENSE @@ -1,232 +1,201 @@ -GNU GENERAL PUBLIC LICENSE -Version 3, 29 June 2007 - -Copyright © 2007 Free Software Foundation, Inc. - -Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. - -Preamble - -The GNU General Public License is a free, copyleft license for software and other kinds of works. - -The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. - -When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. - -To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. - -For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. - -Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. - -For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. - -Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. - -Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. - -The precise terms and conditions for copying, distribution and modification follow. - -TERMS AND CONDITIONS - -0. Definitions. - -“This License” refers to version 3 of the GNU General Public License. - -“Copyright” also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. - -“The Program” refers to any copyrightable work licensed under this License. Each licensee is addressed as “you”. “Licensees” and “recipients” may be individuals or organizations. - -To “modify” a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a “modified version” of the earlier work or a work “based on” the earlier work. - -A “covered work” means either the unmodified Program or a work based on the Program. - -To “propagate” a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. - -To “convey” a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. - -An interactive user interface displays “Appropriate Legal Notices” to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. - -1. Source Code. -The “source code” for a work means the preferred form of the work for making modifications to it. “Object code” means any non-source form of a work. - -A “Standard Interface” means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. - -The “System Libraries” of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A “Major Component”, in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. - -The “Corresponding Source” for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. - -The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. - -The Corresponding Source for a work in source code form is that same work. - -2. Basic Permissions. -All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. - -You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. - -Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. - -3. Protecting Users' Legal Rights From Anti-Circumvention Law. -No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. - -When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. - -4. Conveying Verbatim Copies. -You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. - -You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. - -5. Conveying Modified Source Versions. -You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to “keep intact all notices”. - - c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. - -A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an “aggregate” if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. - -6. Conveying Non-Source Forms. -You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: - - a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. - - d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. - -A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. - -A “User Product” is either (1) a “consumer product”, which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, “normally used” refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. - -“Installation Information” for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. - -If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). - -The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. - -Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. - -7. Additional Terms. -“Additional permissions” are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. - -When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. - -Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or authors of the material; or - - e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. - -All other non-permissive additional terms are considered “further restrictions” within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. - -If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. - -Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. - -8. Termination. -You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). - -However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. - -Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. - -Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. - -9. Acceptance Not Required for Having Copies. -You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. - -10. Automatic Licensing of Downstream Recipients. -Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. - -An “entity transaction” is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. - -You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. - -11. Patents. -A “contributor” is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's “contributor version”. - -A contributor's “essential patent claims” are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, “control” includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. - -Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. - -In the following three paragraphs, a “patent license” is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To “grant” such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. - -If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. “Knowingly relying” means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. - -If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. - -A patent license is “discriminatory” if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. - -Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. - -12. No Surrender of Others' Freedom. -If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. - -13. Use with the GNU Affero General Public License. -Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. - -14. Revised Versions of this License. -The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. - -Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License “or any later version” applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. - -If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. - -Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. - -15. Disclaimer of Warranty. -THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - -16. Limitation of Liability. -IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. - -17. Interpretation of Sections 15 and 16. -If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. - -END OF TERMS AND CONDITIONS - -How to Apply These Terms to Your New Programs - -If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. - -To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the “copyright” line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - - This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - -If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode: - - Copyright (C) - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, your program's commands might be different; for a GUI interface, you would use an “about box”. - -You should also get your employer (if you work as a programmer) or school, if any, to sign a “copyright disclaimer” for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see . - -The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read . + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/README.md b/README.md index 089206c..9c1f955 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,24 @@ -# minotes +# MiNotes +[中文] +1. MiCode便签是小米便签的社区开源版,由MIUI团队(www.miui.com) 发起并贡献第一批代码,遵循NOTICE文件所描述的开源协议, + 今后为MiCode社区(www.micode.net) 拥有,并由社区发布和维护。 + +2. Bug反馈和跟踪,请访问Github, + https://github.com/MiCode/Notes/issues?sort=created&direction=desc&state=open + +3. 功能建议和综合讨论,请访问MiCode, + http://micode.net/forum.php?mod=forumdisplay&fid=38 + + +[English] + +1. MiCode Notes is open source edition of XM notepad, it's first initiated and sponsored by MIUI team (www.miui.com). + It's opened under license described by NOTICE file. It's owned by the MiCode community (www.micode.net). In future, + the MiCode community will release and maintain this project. + +2. Regarding issue tracking, please visit Github, + https://github.com/MiCode/Notes/issues?sort=created&direction=desc&state=open + +3. Regarding feature request and general discussion, please visit Micode forum, + http://micode.net/forum.php?mod=forumdisplay&fid=38 diff --git a/app/build.gradle b/app/build.gradle new file mode 100644 index 0000000..3bd7e07 --- /dev/null +++ b/app/build.gradle @@ -0,0 +1,26 @@ +apply plugin: 'com.android.application' + +android { + compileSdkVersion 23 + + useLibrary 'org.apache.http.legacy' + + defaultConfig { + applicationId "net.micode.notes" + minSdkVersion 14 + //noinspection ExpiredTargetSdkVersion + targetSdkVersion 14 + } + + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' + } + } + android{ useLibrary 'org.apache.http.legacy' } + + dependencies { + implementation 'org.apache.httpcomponents:httpcore:4.4.2' + } +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..e5c7d47 --- /dev/null +++ b/app/src/main/AndroidManifest.xml @@ -0,0 +1,150 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/java/net/micode/notes/data/Contact.java b/app/src/main/java/net/micode/notes/data/Contact.java new file mode 100644 index 0000000..d97ac5d --- /dev/null +++ b/app/src/main/java/net/micode/notes/data/Contact.java @@ -0,0 +1,73 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.data; + +import android.content.Context; +import android.database.Cursor; +import android.provider.ContactsContract.CommonDataKinds.Phone; +import android.provider.ContactsContract.Data; +import android.telephony.PhoneNumberUtils; +import android.util.Log; + +import java.util.HashMap; + +public class Contact { + private static HashMap sContactCache; + private static final String TAG = "Contact"; + + private static final String CALLER_ID_SELECTION = "PHONE_NUMBERS_EQUAL(" + Phone.NUMBER + + ",?) AND " + Data.MIMETYPE + "='" + Phone.CONTENT_ITEM_TYPE + "'" + + " AND " + Data.RAW_CONTACT_ID + " IN " + + "(SELECT raw_contact_id " + + " FROM phone_lookup" + + " WHERE min_match = '+')"; + + public static String getContact(Context context, String phoneNumber) { + if(sContactCache == null) { + sContactCache = new HashMap(); + } + + if(sContactCache.containsKey(phoneNumber)) { + return sContactCache.get(phoneNumber); + } + + String selection = CALLER_ID_SELECTION.replace("+", + PhoneNumberUtils.toCallerIDMinMatch(phoneNumber)); + Cursor cursor = context.getContentResolver().query( + Data.CONTENT_URI, + new String [] { Phone.DISPLAY_NAME }, + selection, + new String[] { phoneNumber }, + null); + + if (cursor != null && cursor.moveToFirst()) { + try { + String name = cursor.getString(0); + sContactCache.put(phoneNumber, name); + return name; + } catch (IndexOutOfBoundsException e) { + Log.e(TAG, " Cursor get string error " + e.toString()); + return null; + } finally { + cursor.close(); + } + } else { + Log.d(TAG, "No contact matched with number:" + phoneNumber); + return null; + } + } +} diff --git a/app/src/main/java/net/micode/notes/data/Notes.java b/app/src/main/java/net/micode/notes/data/Notes.java new file mode 100644 index 0000000..f240604 --- /dev/null +++ b/app/src/main/java/net/micode/notes/data/Notes.java @@ -0,0 +1,279 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.data; + +import android.net.Uri; +public class Notes { + public static final String AUTHORITY = "micode_notes"; + public static final String TAG = "Notes"; + public static final int TYPE_NOTE = 0; + public static final int TYPE_FOLDER = 1; + public static final int TYPE_SYSTEM = 2; + + /** + * Following IDs are system folders' identifiers + * {@link Notes#ID_ROOT_FOLDER } is default folder + * {@link Notes#ID_TEMPARAY_FOLDER } is for notes belonging no folder + * {@link Notes#ID_CALL_RECORD_FOLDER} is to store call records + */ + public static final int ID_ROOT_FOLDER = 0; + public static final int ID_TEMPARAY_FOLDER = -1; + public static final int ID_CALL_RECORD_FOLDER = -2; + public static final int ID_TRASH_FOLER = -3; + + public static final String INTENT_EXTRA_ALERT_DATE = "net.micode.notes.alert_date"; + public static final String INTENT_EXTRA_BACKGROUND_ID = "net.micode.notes.background_color_id"; + public static final String INTENT_EXTRA_WIDGET_ID = "net.micode.notes.widget_id"; + public static final String INTENT_EXTRA_WIDGET_TYPE = "net.micode.notes.widget_type"; + public static final String INTENT_EXTRA_FOLDER_ID = "net.micode.notes.folder_id"; + public static final String INTENT_EXTRA_CALL_DATE = "net.micode.notes.call_date"; + + public static final int TYPE_WIDGET_INVALIDE = -1; + public static final int TYPE_WIDGET_2X = 0; + public static final int TYPE_WIDGET_4X = 1; + + public static class DataConstants { + public static final String NOTE = TextNote.CONTENT_ITEM_TYPE; + public static final String CALL_NOTE = CallNote.CONTENT_ITEM_TYPE; + } + + /** + * Uri to query all notes and folders + */ + public static final Uri CONTENT_NOTE_URI = Uri.parse("content://" + AUTHORITY + "/note"); + + /** + * Uri to query data + */ + public static final Uri CONTENT_DATA_URI = Uri.parse("content://" + AUTHORITY + "/data"); + + public interface NoteColumns { + /** + * The unique ID for a row + *

Type: INTEGER (long)

+ */ + public static final String ID = "_id"; + + /** + * The parent's id for note or folder + *

Type: INTEGER (long)

+ */ + public static final String PARENT_ID = "parent_id"; + + /** + * Created data for note or folder + *

Type: INTEGER (long)

+ */ + public static final String CREATED_DATE = "created_date"; + + /** + * Latest modified date + *

Type: INTEGER (long)

+ */ + public static final String MODIFIED_DATE = "modified_date"; + + + /** + * Alert date + *

Type: INTEGER (long)

+ */ + public static final String ALERTED_DATE = "alert_date"; + + /** + * Folder's name or text content of note + *

Type: TEXT

+ */ + public static final String SNIPPET = "snippet"; + + /** + * Note's widget id + *

Type: INTEGER (long)

+ */ + public static final String WIDGET_ID = "widget_id"; + + /** + * Note's widget type + *

Type: INTEGER (long)

+ */ + public static final String WIDGET_TYPE = "widget_type"; + + /** + * Note's background color's id + *

Type: INTEGER (long)

+ */ + public static final String BG_COLOR_ID = "bg_color_id"; + + /** + * For text note, it doesn't has attachment, for multi-media + * note, it has at least one attachment + *

Type: INTEGER

+ */ + public static final String HAS_ATTACHMENT = "has_attachment"; + + /** + * Folder's count of notes + *

Type: INTEGER (long)

+ */ + public static final String NOTES_COUNT = "notes_count"; + + /** + * The file type: folder or note + *

Type: INTEGER

+ */ + public static final String TYPE = "type"; + + /** + * The last sync id + *

Type: INTEGER (long)

+ */ + public static final String SYNC_ID = "sync_id"; + + /** + * Sign to indicate local modified or not + *

Type: INTEGER

+ */ + public static final String LOCAL_MODIFIED = "local_modified"; + + /** + * Original parent id before moving into temporary folder + *

Type : INTEGER

+ */ + public static final String ORIGIN_PARENT_ID = "origin_parent_id"; + + /** + * The gtask id + *

Type : TEXT

+ */ + public static final String GTASK_ID = "gtask_id"; + + /** + * The version code + *

Type : INTEGER (long)

+ */ + public static final String VERSION = "version"; + } + + public interface DataColumns { + /** + * The unique ID for a row + *

Type: INTEGER (long)

+ */ + public static final String ID = "_id"; + + /** + * The MIME type of the item represented by this row. + *

Type: Text

+ */ + public static final String MIME_TYPE = "mime_type"; + + /** + * The reference id to note that this data belongs to + *

Type: INTEGER (long)

+ */ + public static final String NOTE_ID = "note_id"; + + /** + * Created data for note or folder + *

Type: INTEGER (long)

+ */ + public static final String CREATED_DATE = "created_date"; + + /** + * Latest modified date + *

Type: INTEGER (long)

+ */ + public static final String MODIFIED_DATE = "modified_date"; + + /** + * Data's content + *

Type: TEXT

+ */ + public static final String CONTENT = "content"; + + + /** + * Generic data column, the meaning is {@link #MIMETYPE} specific, used for + * integer data type + *

Type: INTEGER

+ */ + public static final String DATA1 = "data1"; + + /** + * Generic data column, the meaning is {@link #MIMETYPE} specific, used for + * integer data type + *

Type: INTEGER

+ */ + public static final String DATA2 = "data2"; + + /** + * Generic data column, the meaning is {@link #MIMETYPE} specific, used for + * TEXT data type + *

Type: TEXT

+ */ + public static final String DATA3 = "data3"; + + /** + * Generic data column, the meaning is {@link #MIMETYPE} specific, used for + * TEXT data type + *

Type: TEXT

+ */ + public static final String DATA4 = "data4"; + + /** + * Generic data column, the meaning is {@link #MIMETYPE} specific, used for + * TEXT data type + *

Type: TEXT

+ */ + public static final String DATA5 = "data5"; + } + + public static final class TextNote implements DataColumns { + /** + * Mode to indicate the text in check list mode or not + *

Type: Integer 1:check list mode 0: normal mode

+ */ + public static final String MODE = DATA1; + + public static final int MODE_CHECK_LIST = 1; + + public static final String CONTENT_TYPE = "vnd.android.cursor.dir/text_note"; + + public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/text_note"; + + public static final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY + "/text_note"); + } + + public static final class CallNote implements DataColumns { + /** + * Call date for this record + *

Type: INTEGER (long)

+ */ + public static final String CALL_DATE = DATA1; + + /** + * Phone number for this record + *

Type: TEXT

+ */ + public static final String PHONE_NUMBER = DATA3; + + public static final String CONTENT_TYPE = "vnd.android.cursor.dir/call_note"; + + public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/call_note"; + + public static final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY + "/call_note"); + } +} diff --git a/app/src/main/java/net/micode/notes/data/NotesDatabaseHelper.java b/app/src/main/java/net/micode/notes/data/NotesDatabaseHelper.java new file mode 100644 index 0000000..ffe5d57 --- /dev/null +++ b/app/src/main/java/net/micode/notes/data/NotesDatabaseHelper.java @@ -0,0 +1,362 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.data; + +import android.content.ContentValues; +import android.content.Context; +import android.database.sqlite.SQLiteDatabase; +import android.database.sqlite.SQLiteOpenHelper; +import android.util.Log; + +import net.micode.notes.data.Notes.DataColumns; +import net.micode.notes.data.Notes.DataConstants; +import net.micode.notes.data.Notes.NoteColumns; + + +public class NotesDatabaseHelper extends SQLiteOpenHelper { + private static final String DB_NAME = "note.db"; + + private static final int DB_VERSION = 4; + + public interface TABLE { + public static final String NOTE = "note"; + + public static final String DATA = "data"; + } + + private static final String TAG = "NotesDatabaseHelper"; + + private static NotesDatabaseHelper mInstance; + + private static final String CREATE_NOTE_TABLE_SQL = + "CREATE TABLE " + TABLE.NOTE + "(" + + NoteColumns.ID + " INTEGER PRIMARY KEY," + + NoteColumns.PARENT_ID + " INTEGER NOT NULL DEFAULT 0," + + NoteColumns.ALERTED_DATE + " INTEGER NOT NULL DEFAULT 0," + + NoteColumns.BG_COLOR_ID + " INTEGER NOT NULL DEFAULT 0," + + NoteColumns.CREATED_DATE + " INTEGER NOT NULL DEFAULT (strftime('%s','now') * 1000)," + + NoteColumns.HAS_ATTACHMENT + " INTEGER NOT NULL DEFAULT 0," + + NoteColumns.MODIFIED_DATE + " INTEGER NOT NULL DEFAULT (strftime('%s','now') * 1000)," + + NoteColumns.NOTES_COUNT + " INTEGER NOT NULL DEFAULT 0," + + NoteColumns.SNIPPET + " TEXT NOT NULL DEFAULT ''," + + NoteColumns.TYPE + " INTEGER NOT NULL DEFAULT 0," + + NoteColumns.WIDGET_ID + " INTEGER NOT NULL DEFAULT 0," + + NoteColumns.WIDGET_TYPE + " INTEGER NOT NULL DEFAULT -1," + + NoteColumns.SYNC_ID + " INTEGER NOT NULL DEFAULT 0," + + NoteColumns.LOCAL_MODIFIED + " INTEGER NOT NULL DEFAULT 0," + + NoteColumns.ORIGIN_PARENT_ID + " INTEGER NOT NULL DEFAULT 0," + + NoteColumns.GTASK_ID + " TEXT NOT NULL DEFAULT ''," + + NoteColumns.VERSION + " INTEGER NOT NULL DEFAULT 0" + + ")"; + + private static final String CREATE_DATA_TABLE_SQL = + "CREATE TABLE " + TABLE.DATA + "(" + + DataColumns.ID + " INTEGER PRIMARY KEY," + + DataColumns.MIME_TYPE + " TEXT NOT NULL," + + DataColumns.NOTE_ID + " INTEGER NOT NULL DEFAULT 0," + + NoteColumns.CREATED_DATE + " INTEGER NOT NULL DEFAULT (strftime('%s','now') * 1000)," + + NoteColumns.MODIFIED_DATE + " INTEGER NOT NULL DEFAULT (strftime('%s','now') * 1000)," + + DataColumns.CONTENT + " TEXT NOT NULL DEFAULT ''," + + DataColumns.DATA1 + " INTEGER," + + DataColumns.DATA2 + " INTEGER," + + DataColumns.DATA3 + " TEXT NOT NULL DEFAULT ''," + + DataColumns.DATA4 + " TEXT NOT NULL DEFAULT ''," + + DataColumns.DATA5 + " TEXT NOT NULL DEFAULT ''" + + ")"; + + private static final String CREATE_DATA_NOTE_ID_INDEX_SQL = + "CREATE INDEX IF NOT EXISTS note_id_index ON " + + TABLE.DATA + "(" + DataColumns.NOTE_ID + ");"; + + /** + * Increase folder's note count when move note to the folder + */ + private static final String NOTE_INCREASE_FOLDER_COUNT_ON_UPDATE_TRIGGER = + "CREATE TRIGGER increase_folder_count_on_update "+ + " AFTER UPDATE OF " + NoteColumns.PARENT_ID + " ON " + TABLE.NOTE + + " BEGIN " + + " UPDATE " + TABLE.NOTE + + " SET " + NoteColumns.NOTES_COUNT + "=" + NoteColumns.NOTES_COUNT + " + 1" + + " WHERE " + NoteColumns.ID + "=new." + NoteColumns.PARENT_ID + ";" + + " END"; + + /** + * Decrease folder's note count when move note from folder + */ + private static final String NOTE_DECREASE_FOLDER_COUNT_ON_UPDATE_TRIGGER = + "CREATE TRIGGER decrease_folder_count_on_update " + + " AFTER UPDATE OF " + NoteColumns.PARENT_ID + " ON " + TABLE.NOTE + + " BEGIN " + + " UPDATE " + TABLE.NOTE + + " SET " + NoteColumns.NOTES_COUNT + "=" + NoteColumns.NOTES_COUNT + "-1" + + " WHERE " + NoteColumns.ID + "=old." + NoteColumns.PARENT_ID + + " AND " + NoteColumns.NOTES_COUNT + ">0" + ";" + + " END"; + + /** + * Increase folder's note count when insert new note to the folder + */ + private static final String NOTE_INCREASE_FOLDER_COUNT_ON_INSERT_TRIGGER = + "CREATE TRIGGER increase_folder_count_on_insert " + + " AFTER INSERT ON " + TABLE.NOTE + + " BEGIN " + + " UPDATE " + TABLE.NOTE + + " SET " + NoteColumns.NOTES_COUNT + "=" + NoteColumns.NOTES_COUNT + " + 1" + + " WHERE " + NoteColumns.ID + "=new." + NoteColumns.PARENT_ID + ";" + + " END"; + + /** + * Decrease folder's note count when delete note from the folder + */ + private static final String NOTE_DECREASE_FOLDER_COUNT_ON_DELETE_TRIGGER = + "CREATE TRIGGER decrease_folder_count_on_delete " + + " AFTER DELETE ON " + TABLE.NOTE + + " BEGIN " + + " UPDATE " + TABLE.NOTE + + " SET " + NoteColumns.NOTES_COUNT + "=" + NoteColumns.NOTES_COUNT + "-1" + + " WHERE " + NoteColumns.ID + "=old." + NoteColumns.PARENT_ID + + " AND " + NoteColumns.NOTES_COUNT + ">0;" + + " END"; + + /** + * Update note's content when insert data with type {@link DataConstants#NOTE} + */ + private static final String DATA_UPDATE_NOTE_CONTENT_ON_INSERT_TRIGGER = + "CREATE TRIGGER update_note_content_on_insert " + + " AFTER INSERT ON " + TABLE.DATA + + " WHEN new." + DataColumns.MIME_TYPE + "='" + DataConstants.NOTE + "'" + + " BEGIN" + + " UPDATE " + TABLE.NOTE + + " SET " + NoteColumns.SNIPPET + "=new." + DataColumns.CONTENT + + " WHERE " + NoteColumns.ID + "=new." + DataColumns.NOTE_ID + ";" + + " END"; + + /** + * Update note's content when data with {@link DataConstants#NOTE} type has changed + */ + private static final String DATA_UPDATE_NOTE_CONTENT_ON_UPDATE_TRIGGER = + "CREATE TRIGGER update_note_content_on_update " + + " AFTER UPDATE ON " + TABLE.DATA + + " WHEN old." + DataColumns.MIME_TYPE + "='" + DataConstants.NOTE + "'" + + " BEGIN" + + " UPDATE " + TABLE.NOTE + + " SET " + NoteColumns.SNIPPET + "=new." + DataColumns.CONTENT + + " WHERE " + NoteColumns.ID + "=new." + DataColumns.NOTE_ID + ";" + + " END"; + + /** + * Update note's content when data with {@link DataConstants#NOTE} type has deleted + */ + private static final String DATA_UPDATE_NOTE_CONTENT_ON_DELETE_TRIGGER = + "CREATE TRIGGER update_note_content_on_delete " + + " AFTER delete ON " + TABLE.DATA + + " WHEN old." + DataColumns.MIME_TYPE + "='" + DataConstants.NOTE + "'" + + " BEGIN" + + " UPDATE " + TABLE.NOTE + + " SET " + NoteColumns.SNIPPET + "=''" + + " WHERE " + NoteColumns.ID + "=old." + DataColumns.NOTE_ID + ";" + + " END"; + + /** + * Delete datas belong to note which has been deleted + */ + private static final String NOTE_DELETE_DATA_ON_DELETE_TRIGGER = + "CREATE TRIGGER delete_data_on_delete " + + " AFTER DELETE ON " + TABLE.NOTE + + " BEGIN" + + " DELETE FROM " + TABLE.DATA + + " WHERE " + DataColumns.NOTE_ID + "=old." + NoteColumns.ID + ";" + + " END"; + + /** + * Delete notes belong to folder which has been deleted + */ + private static final String FOLDER_DELETE_NOTES_ON_DELETE_TRIGGER = + "CREATE TRIGGER folder_delete_notes_on_delete " + + " AFTER DELETE ON " + TABLE.NOTE + + " BEGIN" + + " DELETE FROM " + TABLE.NOTE + + " WHERE " + NoteColumns.PARENT_ID + "=old." + NoteColumns.ID + ";" + + " END"; + + /** + * Move notes belong to folder which has been moved to trash folder + */ + private static final String FOLDER_MOVE_NOTES_ON_TRASH_TRIGGER = + "CREATE TRIGGER folder_move_notes_on_trash " + + " AFTER UPDATE ON " + TABLE.NOTE + + " WHEN new." + NoteColumns.PARENT_ID + "=" + Notes.ID_TRASH_FOLER + + " BEGIN" + + " UPDATE " + TABLE.NOTE + + " SET " + NoteColumns.PARENT_ID + "=" + Notes.ID_TRASH_FOLER + + " WHERE " + NoteColumns.PARENT_ID + "=old." + NoteColumns.ID + ";" + + " END"; + + public NotesDatabaseHelper(Context context) { + super(context, DB_NAME, null, DB_VERSION); + } + + public void createNoteTable(SQLiteDatabase db) { + db.execSQL(CREATE_NOTE_TABLE_SQL); + reCreateNoteTableTriggers(db); + createSystemFolder(db); + Log.d(TAG, "note table has been created"); + } + + private void reCreateNoteTableTriggers(SQLiteDatabase db) { + db.execSQL("DROP TRIGGER IF EXISTS increase_folder_count_on_update"); + db.execSQL("DROP TRIGGER IF EXISTS decrease_folder_count_on_update"); + db.execSQL("DROP TRIGGER IF EXISTS decrease_folder_count_on_delete"); + db.execSQL("DROP TRIGGER IF EXISTS delete_data_on_delete"); + db.execSQL("DROP TRIGGER IF EXISTS increase_folder_count_on_insert"); + db.execSQL("DROP TRIGGER IF EXISTS folder_delete_notes_on_delete"); + db.execSQL("DROP TRIGGER IF EXISTS folder_move_notes_on_trash"); + + db.execSQL(NOTE_INCREASE_FOLDER_COUNT_ON_UPDATE_TRIGGER); + db.execSQL(NOTE_DECREASE_FOLDER_COUNT_ON_UPDATE_TRIGGER); + db.execSQL(NOTE_DECREASE_FOLDER_COUNT_ON_DELETE_TRIGGER); + db.execSQL(NOTE_DELETE_DATA_ON_DELETE_TRIGGER); + db.execSQL(NOTE_INCREASE_FOLDER_COUNT_ON_INSERT_TRIGGER); + db.execSQL(FOLDER_DELETE_NOTES_ON_DELETE_TRIGGER); + db.execSQL(FOLDER_MOVE_NOTES_ON_TRASH_TRIGGER); + } + + private void createSystemFolder(SQLiteDatabase db) { + ContentValues values = new ContentValues(); + + /** + * call record foler for call notes + */ + values.put(NoteColumns.ID, Notes.ID_CALL_RECORD_FOLDER); + values.put(NoteColumns.TYPE, Notes.TYPE_SYSTEM); + db.insert(TABLE.NOTE, null, values); + + /** + * root folder which is default folder + */ + values.clear(); + values.put(NoteColumns.ID, Notes.ID_ROOT_FOLDER); + values.put(NoteColumns.TYPE, Notes.TYPE_SYSTEM); + db.insert(TABLE.NOTE, null, values); + + /** + * temporary folder which is used for moving note + */ + values.clear(); + values.put(NoteColumns.ID, Notes.ID_TEMPARAY_FOLDER); + values.put(NoteColumns.TYPE, Notes.TYPE_SYSTEM); + db.insert(TABLE.NOTE, null, values); + + /** + * create trash folder + */ + values.clear(); + values.put(NoteColumns.ID, Notes.ID_TRASH_FOLER); + values.put(NoteColumns.TYPE, Notes.TYPE_SYSTEM); + db.insert(TABLE.NOTE, null, values); + } + + public void createDataTable(SQLiteDatabase db) { + db.execSQL(CREATE_DATA_TABLE_SQL); + reCreateDataTableTriggers(db); + db.execSQL(CREATE_DATA_NOTE_ID_INDEX_SQL); + Log.d(TAG, "data table has been created"); + } + + private void reCreateDataTableTriggers(SQLiteDatabase db) { + db.execSQL("DROP TRIGGER IF EXISTS update_note_content_on_insert"); + db.execSQL("DROP TRIGGER IF EXISTS update_note_content_on_update"); + db.execSQL("DROP TRIGGER IF EXISTS update_note_content_on_delete"); + + db.execSQL(DATA_UPDATE_NOTE_CONTENT_ON_INSERT_TRIGGER); + db.execSQL(DATA_UPDATE_NOTE_CONTENT_ON_UPDATE_TRIGGER); + db.execSQL(DATA_UPDATE_NOTE_CONTENT_ON_DELETE_TRIGGER); + } + + static synchronized NotesDatabaseHelper getInstance(Context context) { + if (mInstance == null) { + mInstance = new NotesDatabaseHelper(context); + } + return mInstance; + } + + @Override + public void onCreate(SQLiteDatabase db) { + createNoteTable(db); + createDataTable(db); + } + + @Override + public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { + boolean reCreateTriggers = false; + boolean skipV2 = false; + + if (oldVersion == 1) { + upgradeToV2(db); + skipV2 = true; // this upgrade including the upgrade from v2 to v3 + oldVersion++; + } + + if (oldVersion == 2 && !skipV2) { + upgradeToV3(db); + reCreateTriggers = true; + oldVersion++; + } + + if (oldVersion == 3) { + upgradeToV4(db); + oldVersion++; + } + + if (reCreateTriggers) { + reCreateNoteTableTriggers(db); + reCreateDataTableTriggers(db); + } + + if (oldVersion != newVersion) { + throw new IllegalStateException("Upgrade notes database to version " + newVersion + + "fails"); + } + } + + private void upgradeToV2(SQLiteDatabase db) { + db.execSQL("DROP TABLE IF EXISTS " + TABLE.NOTE); + db.execSQL("DROP TABLE IF EXISTS " + TABLE.DATA); + createNoteTable(db); + createDataTable(db); + } + + private void upgradeToV3(SQLiteDatabase db) { + // drop unused triggers + db.execSQL("DROP TRIGGER IF EXISTS update_note_modified_date_on_insert"); + db.execSQL("DROP TRIGGER IF EXISTS update_note_modified_date_on_delete"); + db.execSQL("DROP TRIGGER IF EXISTS update_note_modified_date_on_update"); + // add a column for gtask id + db.execSQL("ALTER TABLE " + TABLE.NOTE + " ADD COLUMN " + NoteColumns.GTASK_ID + + " TEXT NOT NULL DEFAULT ''"); + // add a trash system folder + ContentValues values = new ContentValues(); + values.put(NoteColumns.ID, Notes.ID_TRASH_FOLER); + values.put(NoteColumns.TYPE, Notes.TYPE_SYSTEM); + db.insert(TABLE.NOTE, null, values); + } + + private void upgradeToV4(SQLiteDatabase db) { + db.execSQL("ALTER TABLE " + TABLE.NOTE + " ADD COLUMN " + NoteColumns.VERSION + + " INTEGER NOT NULL DEFAULT 0"); + } +} diff --git a/app/src/main/java/net/micode/notes/data/NotesProvider.java b/app/src/main/java/net/micode/notes/data/NotesProvider.java new file mode 100644 index 0000000..edb0a60 --- /dev/null +++ b/app/src/main/java/net/micode/notes/data/NotesProvider.java @@ -0,0 +1,305 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.data; + + +import android.app.SearchManager; +import android.content.ContentProvider; +import android.content.ContentUris; +import android.content.ContentValues; +import android.content.Intent; +import android.content.UriMatcher; +import android.database.Cursor; +import android.database.sqlite.SQLiteDatabase; +import android.net.Uri; +import android.text.TextUtils; +import android.util.Log; + +import net.micode.notes.R; +import net.micode.notes.data.Notes.DataColumns; +import net.micode.notes.data.Notes.NoteColumns; +import net.micode.notes.data.NotesDatabaseHelper.TABLE; + + +public class NotesProvider extends ContentProvider { + private static final UriMatcher mMatcher; + + private NotesDatabaseHelper mHelper; + + private static final String TAG = "NotesProvider"; + + private static final int URI_NOTE = 1; + private static final int URI_NOTE_ITEM = 2; + private static final int URI_DATA = 3; + private static final int URI_DATA_ITEM = 4; + + private static final int URI_SEARCH = 5; + private static final int URI_SEARCH_SUGGEST = 6; + + static { + mMatcher = new UriMatcher(UriMatcher.NO_MATCH); + mMatcher.addURI(Notes.AUTHORITY, "note", URI_NOTE); + mMatcher.addURI(Notes.AUTHORITY, "note/#", URI_NOTE_ITEM); + mMatcher.addURI(Notes.AUTHORITY, "data", URI_DATA); + mMatcher.addURI(Notes.AUTHORITY, "data/#", URI_DATA_ITEM); + mMatcher.addURI(Notes.AUTHORITY, "search", URI_SEARCH); + mMatcher.addURI(Notes.AUTHORITY, SearchManager.SUGGEST_URI_PATH_QUERY, URI_SEARCH_SUGGEST); + mMatcher.addURI(Notes.AUTHORITY, SearchManager.SUGGEST_URI_PATH_QUERY + "/*", URI_SEARCH_SUGGEST); + } + + /** + * x'0A' represents the '\n' character in sqlite. For title and content in the search result, + * we will trim '\n' and white space in order to show more information. + */ + private static final String NOTES_SEARCH_PROJECTION = NoteColumns.ID + "," + + NoteColumns.ID + " AS " + SearchManager.SUGGEST_COLUMN_INTENT_EXTRA_DATA + "," + + "TRIM(REPLACE(" + NoteColumns.SNIPPET + ", x'0A','')) AS " + SearchManager.SUGGEST_COLUMN_TEXT_1 + "," + + "TRIM(REPLACE(" + NoteColumns.SNIPPET + ", x'0A','')) AS " + SearchManager.SUGGEST_COLUMN_TEXT_2 + "," + + R.drawable.search_result + " AS " + SearchManager.SUGGEST_COLUMN_ICON_1 + "," + + "'" + Intent.ACTION_VIEW + "' AS " + SearchManager.SUGGEST_COLUMN_INTENT_ACTION + "," + + "'" + Notes.TextNote.CONTENT_TYPE + "' AS " + SearchManager.SUGGEST_COLUMN_INTENT_DATA; + + private static String NOTES_SNIPPET_SEARCH_QUERY = "SELECT " + NOTES_SEARCH_PROJECTION + + " FROM " + TABLE.NOTE + + " WHERE " + NoteColumns.SNIPPET + " LIKE ?" + + " AND " + NoteColumns.PARENT_ID + "<>" + Notes.ID_TRASH_FOLER + + " AND " + NoteColumns.TYPE + "=" + Notes.TYPE_NOTE; + + @Override + public boolean onCreate() { + mHelper = NotesDatabaseHelper.getInstance(getContext()); + return true; + } + + @Override + public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, + String sortOrder) { + Cursor c = null; + SQLiteDatabase db = mHelper.getReadableDatabase(); + String id = null; + switch (mMatcher.match(uri)) { + case URI_NOTE: + c = db.query(TABLE.NOTE, projection, selection, selectionArgs, null, null, + sortOrder); + break; + case URI_NOTE_ITEM: + id = uri.getPathSegments().get(1); + c = db.query(TABLE.NOTE, projection, NoteColumns.ID + "=" + id + + parseSelection(selection), selectionArgs, null, null, sortOrder); + break; + case URI_DATA: + c = db.query(TABLE.DATA, projection, selection, selectionArgs, null, null, + sortOrder); + break; + case URI_DATA_ITEM: + id = uri.getPathSegments().get(1); + c = db.query(TABLE.DATA, projection, DataColumns.ID + "=" + id + + parseSelection(selection), selectionArgs, null, null, sortOrder); + break; + case URI_SEARCH: + case URI_SEARCH_SUGGEST: + if (sortOrder != null || projection != null) { + throw new IllegalArgumentException( + "do not specify sortOrder, selection, selectionArgs, or projection" + "with this query"); + } + + String searchString = null; + if (mMatcher.match(uri) == URI_SEARCH_SUGGEST) { + if (uri.getPathSegments().size() > 1) { + searchString = uri.getPathSegments().get(1); + } + } else { + searchString = uri.getQueryParameter("pattern"); + } + + if (TextUtils.isEmpty(searchString)) { + return null; + } + + try { + searchString = String.format("%%%s%%", searchString); + c = db.rawQuery(NOTES_SNIPPET_SEARCH_QUERY, + new String[] { searchString }); + } catch (IllegalStateException ex) { + Log.e(TAG, "got exception: " + ex.toString()); + } + break; + default: + throw new IllegalArgumentException("Unknown URI " + uri); + } + if (c != null) { + c.setNotificationUri(getContext().getContentResolver(), uri); + } + return c; + } + + @Override + public Uri insert(Uri uri, ContentValues values) { + SQLiteDatabase db = mHelper.getWritableDatabase(); + long dataId = 0, noteId = 0, insertedId = 0; + switch (mMatcher.match(uri)) { + case URI_NOTE: + insertedId = noteId = db.insert(TABLE.NOTE, null, values); + break; + case URI_DATA: + if (values.containsKey(DataColumns.NOTE_ID)) { + noteId = values.getAsLong(DataColumns.NOTE_ID); + } else { + Log.d(TAG, "Wrong data format without note id:" + values.toString()); + } + insertedId = dataId = db.insert(TABLE.DATA, null, values); + break; + default: + throw new IllegalArgumentException("Unknown URI " + uri); + } + // Notify the note uri + if (noteId > 0) { + getContext().getContentResolver().notifyChange( + ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, noteId), null); + } + + // Notify the data uri + if (dataId > 0) { + getContext().getContentResolver().notifyChange( + ContentUris.withAppendedId(Notes.CONTENT_DATA_URI, dataId), null); + } + + return ContentUris.withAppendedId(uri, insertedId); + } + + @Override + public int delete(Uri uri, String selection, String[] selectionArgs) { + int count = 0; + String id = null; + SQLiteDatabase db = mHelper.getWritableDatabase(); + boolean deleteData = false; + switch (mMatcher.match(uri)) { + case URI_NOTE: + selection = "(" + selection + ") AND " + NoteColumns.ID + ">0 "; + count = db.delete(TABLE.NOTE, selection, selectionArgs); + break; + case URI_NOTE_ITEM: + id = uri.getPathSegments().get(1); + /** + * ID that smaller than 0 is system folder which is not allowed to + * trash + */ + long noteId = Long.valueOf(id); + if (noteId <= 0) { + break; + } + count = db.delete(TABLE.NOTE, + NoteColumns.ID + "=" + id + parseSelection(selection), selectionArgs); + break; + case URI_DATA: + count = db.delete(TABLE.DATA, selection, selectionArgs); + deleteData = true; + break; + case URI_DATA_ITEM: + id = uri.getPathSegments().get(1); + count = db.delete(TABLE.DATA, + DataColumns.ID + "=" + id + parseSelection(selection), selectionArgs); + deleteData = true; + break; + default: + throw new IllegalArgumentException("Unknown URI " + uri); + } + if (count > 0) { + if (deleteData) { + getContext().getContentResolver().notifyChange(Notes.CONTENT_NOTE_URI, null); + } + getContext().getContentResolver().notifyChange(uri, null); + } + return count; + } + + @Override + public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) { + int count = 0; + String id = null; + SQLiteDatabase db = mHelper.getWritableDatabase(); + boolean updateData = false; + switch (mMatcher.match(uri)) { + case URI_NOTE: + increaseNoteVersion(-1, selection, selectionArgs); + count = db.update(TABLE.NOTE, values, selection, selectionArgs); + break; + case URI_NOTE_ITEM: + id = uri.getPathSegments().get(1); + increaseNoteVersion(Long.valueOf(id), selection, selectionArgs); + count = db.update(TABLE.NOTE, values, NoteColumns.ID + "=" + id + + parseSelection(selection), selectionArgs); + break; + case URI_DATA: + count = db.update(TABLE.DATA, values, selection, selectionArgs); + updateData = true; + break; + case URI_DATA_ITEM: + id = uri.getPathSegments().get(1); + count = db.update(TABLE.DATA, values, DataColumns.ID + "=" + id + + parseSelection(selection), selectionArgs); + updateData = true; + break; + default: + throw new IllegalArgumentException("Unknown URI " + uri); + } + + if (count > 0) { + if (updateData) { + getContext().getContentResolver().notifyChange(Notes.CONTENT_NOTE_URI, null); + } + getContext().getContentResolver().notifyChange(uri, null); + } + return count; + } + + private String parseSelection(String selection) { + return (!TextUtils.isEmpty(selection) ? " AND (" + selection + ')' : ""); + } + + private void increaseNoteVersion(long id, String selection, String[] selectionArgs) { + StringBuilder sql = new StringBuilder(120); + sql.append("UPDATE "); + sql.append(TABLE.NOTE); + sql.append(" SET "); + sql.append(NoteColumns.VERSION); + sql.append("=" + NoteColumns.VERSION + "+1 "); + + if (id > 0 || !TextUtils.isEmpty(selection)) { + sql.append(" WHERE "); + } + if (id > 0) { + sql.append(NoteColumns.ID + "=" + String.valueOf(id)); + } + if (!TextUtils.isEmpty(selection)) { + String selectString = id > 0 ? parseSelection(selection) : selection; + for (String args : selectionArgs) { + selectString = selectString.replaceFirst("\\?", args); + } + sql.append(selectString); + } + + mHelper.getWritableDatabase().execSQL(sql.toString()); + } + + @Override + public String getType(Uri uri) { + // TODO Auto-generated method stub + return null; + } + +} diff --git a/app/src/main/java/net/micode/notes/gtask/data/MetaData.java b/app/src/main/java/net/micode/notes/gtask/data/MetaData.java new file mode 100644 index 0000000..3a2050b --- /dev/null +++ b/app/src/main/java/net/micode/notes/gtask/data/MetaData.java @@ -0,0 +1,82 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.gtask.data; + +import android.database.Cursor; +import android.util.Log; + +import net.micode.notes.tool.GTaskStringUtils; + +import org.json.JSONException; +import org.json.JSONObject; + + +public class MetaData extends Task { + private final static String TAG = MetaData.class.getSimpleName(); + + private String mRelatedGid = null; + + public void setMeta(String gid, JSONObject metaInfo) { + try { + metaInfo.put(GTaskStringUtils.META_HEAD_GTASK_ID, gid); + } catch (JSONException e) { + Log.e(TAG, "failed to put related gid"); + } + setNotes(metaInfo.toString()); + setName(GTaskStringUtils.META_NOTE_NAME); + } + + public String getRelatedGid() { + return mRelatedGid; + } + + @Override + public boolean isWorthSaving() { + return getNotes() != null; + } + + @Override + public void setContentByRemoteJSON(JSONObject js) { + super.setContentByRemoteJSON(js); + if (getNotes() != null) { + try { + JSONObject metaInfo = new JSONObject(getNotes().trim()); + mRelatedGid = metaInfo.getString(GTaskStringUtils.META_HEAD_GTASK_ID); + } catch (JSONException e) { + Log.w(TAG, "failed to get related gid"); + mRelatedGid = null; + } + } + } + + @Override + public void setContentByLocalJSON(JSONObject js) { + // this function should not be called + throw new IllegalAccessError("MetaData:setContentByLocalJSON should not be called"); + } + + @Override + public JSONObject getLocalJSONFromContent() { + throw new IllegalAccessError("MetaData:getLocalJSONFromContent should not be called"); + } + + @Override + public int getSyncAction(Cursor c) { + throw new IllegalAccessError("MetaData:getSyncAction should not be called"); + } + +} diff --git a/app/src/main/java/net/micode/notes/gtask/data/Node.java b/app/src/main/java/net/micode/notes/gtask/data/Node.java new file mode 100644 index 0000000..63950e0 --- /dev/null +++ b/app/src/main/java/net/micode/notes/gtask/data/Node.java @@ -0,0 +1,101 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.gtask.data; + +import android.database.Cursor; + +import org.json.JSONObject; + +public abstract class Node { + public static final int SYNC_ACTION_NONE = 0; + + public static final int SYNC_ACTION_ADD_REMOTE = 1; + + public static final int SYNC_ACTION_ADD_LOCAL = 2; + + public static final int SYNC_ACTION_DEL_REMOTE = 3; + + public static final int SYNC_ACTION_DEL_LOCAL = 4; + + public static final int SYNC_ACTION_UPDATE_REMOTE = 5; + + public static final int SYNC_ACTION_UPDATE_LOCAL = 6; + + public static final int SYNC_ACTION_UPDATE_CONFLICT = 7; + + public static final int SYNC_ACTION_ERROR = 8; + + private String mGid; + + private String mName; + + private long mLastModified; + + private boolean mDeleted; + + public Node() { + mGid = null; + mName = ""; + mLastModified = 0; + mDeleted = false; + } + + public abstract JSONObject getCreateAction(int actionId); + + public abstract JSONObject getUpdateAction(int actionId); + + public abstract void setContentByRemoteJSON(JSONObject js); + + public abstract void setContentByLocalJSON(JSONObject js); + + public abstract JSONObject getLocalJSONFromContent(); + + public abstract int getSyncAction(Cursor c); + + public void setGid(String gid) { + this.mGid = gid; + } + + public void setName(String name) { + this.mName = name; + } + + public void setLastModified(long lastModified) { + this.mLastModified = lastModified; + } + + public void setDeleted(boolean deleted) { + this.mDeleted = deleted; + } + + public String getGid() { + return this.mGid; + } + + public String getName() { + return this.mName; + } + + public long getLastModified() { + return this.mLastModified; + } + + public boolean getDeleted() { + return this.mDeleted; + } + +} diff --git a/app/src/main/java/net/micode/notes/gtask/data/SqlData.java b/app/src/main/java/net/micode/notes/gtask/data/SqlData.java new file mode 100644 index 0000000..d3ec3be --- /dev/null +++ b/app/src/main/java/net/micode/notes/gtask/data/SqlData.java @@ -0,0 +1,189 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.gtask.data; + +import android.content.ContentResolver; +import android.content.ContentUris; +import android.content.ContentValues; +import android.content.Context; +import android.database.Cursor; +import android.net.Uri; +import android.util.Log; + +import net.micode.notes.data.Notes; +import net.micode.notes.data.Notes.DataColumns; +import net.micode.notes.data.Notes.DataConstants; +import net.micode.notes.data.Notes.NoteColumns; +import net.micode.notes.data.NotesDatabaseHelper.TABLE; +import net.micode.notes.gtask.exception.ActionFailureException; + +import org.json.JSONException; +import org.json.JSONObject; + + +public class SqlData { + private static final String TAG = SqlData.class.getSimpleName(); + + private static final int INVALID_ID = -99999; + + public static final String[] PROJECTION_DATA = new String[] { + DataColumns.ID, DataColumns.MIME_TYPE, DataColumns.CONTENT, DataColumns.DATA1, + DataColumns.DATA3 + }; + + public static final int DATA_ID_COLUMN = 0; + + public static final int DATA_MIME_TYPE_COLUMN = 1; + + public static final int DATA_CONTENT_COLUMN = 2; + + public static final int DATA_CONTENT_DATA_1_COLUMN = 3; + + public static final int DATA_CONTENT_DATA_3_COLUMN = 4; + + private ContentResolver mContentResolver; + + private boolean mIsCreate; + + private long mDataId; + + private String mDataMimeType; + + private String mDataContent; + + private long mDataContentData1; + + private String mDataContentData3; + + private ContentValues mDiffDataValues; + + public SqlData(Context context) { + mContentResolver = context.getContentResolver(); + mIsCreate = true; + mDataId = INVALID_ID; + mDataMimeType = DataConstants.NOTE; + mDataContent = ""; + mDataContentData1 = 0; + mDataContentData3 = ""; + mDiffDataValues = new ContentValues(); + } + + public SqlData(Context context, Cursor c) { + mContentResolver = context.getContentResolver(); + mIsCreate = false; + loadFromCursor(c); + mDiffDataValues = new ContentValues(); + } + + private void loadFromCursor(Cursor c) { + mDataId = c.getLong(DATA_ID_COLUMN); + mDataMimeType = c.getString(DATA_MIME_TYPE_COLUMN); + mDataContent = c.getString(DATA_CONTENT_COLUMN); + mDataContentData1 = c.getLong(DATA_CONTENT_DATA_1_COLUMN); + mDataContentData3 = c.getString(DATA_CONTENT_DATA_3_COLUMN); + } + + public void setContent(JSONObject js) throws JSONException { + long dataId = js.has(DataColumns.ID) ? js.getLong(DataColumns.ID) : INVALID_ID; + if (mIsCreate || mDataId != dataId) { + mDiffDataValues.put(DataColumns.ID, dataId); + } + mDataId = dataId; + + String dataMimeType = js.has(DataColumns.MIME_TYPE) ? js.getString(DataColumns.MIME_TYPE) + : DataConstants.NOTE; + if (mIsCreate || !mDataMimeType.equals(dataMimeType)) { + mDiffDataValues.put(DataColumns.MIME_TYPE, dataMimeType); + } + mDataMimeType = dataMimeType; + + String dataContent = js.has(DataColumns.CONTENT) ? js.getString(DataColumns.CONTENT) : ""; + if (mIsCreate || !mDataContent.equals(dataContent)) { + mDiffDataValues.put(DataColumns.CONTENT, dataContent); + } + mDataContent = dataContent; + + long dataContentData1 = js.has(DataColumns.DATA1) ? js.getLong(DataColumns.DATA1) : 0; + if (mIsCreate || mDataContentData1 != dataContentData1) { + mDiffDataValues.put(DataColumns.DATA1, dataContentData1); + } + mDataContentData1 = dataContentData1; + + String dataContentData3 = js.has(DataColumns.DATA3) ? js.getString(DataColumns.DATA3) : ""; + if (mIsCreate || !mDataContentData3.equals(dataContentData3)) { + mDiffDataValues.put(DataColumns.DATA3, dataContentData3); + } + mDataContentData3 = dataContentData3; + } + + public JSONObject getContent() throws JSONException { + if (mIsCreate) { + Log.e(TAG, "it seems that we haven't created this in database yet"); + return null; + } + JSONObject js = new JSONObject(); + js.put(DataColumns.ID, mDataId); + js.put(DataColumns.MIME_TYPE, mDataMimeType); + js.put(DataColumns.CONTENT, mDataContent); + js.put(DataColumns.DATA1, mDataContentData1); + js.put(DataColumns.DATA3, mDataContentData3); + return js; + } + + public void commit(long noteId, boolean validateVersion, long version) { + + if (mIsCreate) { + if (mDataId == INVALID_ID && mDiffDataValues.containsKey(DataColumns.ID)) { + mDiffDataValues.remove(DataColumns.ID); + } + + mDiffDataValues.put(DataColumns.NOTE_ID, noteId); + Uri uri = mContentResolver.insert(Notes.CONTENT_DATA_URI, mDiffDataValues); + try { + mDataId = Long.valueOf(uri.getPathSegments().get(1)); + } catch (NumberFormatException e) { + Log.e(TAG, "Get note id error :" + e.toString()); + throw new ActionFailureException("create note failed"); + } + } else { + if (mDiffDataValues.size() > 0) { + int result = 0; + if (!validateVersion) { + result = mContentResolver.update(ContentUris.withAppendedId( + Notes.CONTENT_DATA_URI, mDataId), mDiffDataValues, null, null); + } else { + result = mContentResolver.update(ContentUris.withAppendedId( + Notes.CONTENT_DATA_URI, mDataId), mDiffDataValues, + " ? in (SELECT " + NoteColumns.ID + " FROM " + TABLE.NOTE + + " WHERE " + NoteColumns.VERSION + "=?)", new String[] { + String.valueOf(noteId), String.valueOf(version) + }); + } + if (result == 0) { + Log.w(TAG, "there is no update. maybe user updates note when syncing"); + } + } + } + + mDiffDataValues.clear(); + mIsCreate = false; + } + + public long getId() { + return mDataId; + } +} diff --git a/app/src/main/java/net/micode/notes/gtask/data/SqlNote.java b/app/src/main/java/net/micode/notes/gtask/data/SqlNote.java new file mode 100644 index 0000000..79a4095 --- /dev/null +++ b/app/src/main/java/net/micode/notes/gtask/data/SqlNote.java @@ -0,0 +1,505 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.gtask.data; + +import android.appwidget.AppWidgetManager; +import android.content.ContentResolver; +import android.content.ContentValues; +import android.content.Context; +import android.database.Cursor; +import android.net.Uri; +import android.util.Log; + +import net.micode.notes.data.Notes; +import net.micode.notes.data.Notes.DataColumns; +import net.micode.notes.data.Notes.NoteColumns; +import net.micode.notes.gtask.exception.ActionFailureException; +import net.micode.notes.tool.GTaskStringUtils; +import net.micode.notes.tool.ResourceParser; + +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + +import java.util.ArrayList; + + +public class SqlNote { + private static final String TAG = SqlNote.class.getSimpleName(); + + private static final int INVALID_ID = -99999; + + public static final String[] PROJECTION_NOTE = new String[] { + NoteColumns.ID, NoteColumns.ALERTED_DATE, NoteColumns.BG_COLOR_ID, + NoteColumns.CREATED_DATE, NoteColumns.HAS_ATTACHMENT, NoteColumns.MODIFIED_DATE, + NoteColumns.NOTES_COUNT, NoteColumns.PARENT_ID, NoteColumns.SNIPPET, NoteColumns.TYPE, + NoteColumns.WIDGET_ID, NoteColumns.WIDGET_TYPE, NoteColumns.SYNC_ID, + NoteColumns.LOCAL_MODIFIED, NoteColumns.ORIGIN_PARENT_ID, NoteColumns.GTASK_ID, + NoteColumns.VERSION + }; + + public static final int ID_COLUMN = 0; + + public static final int ALERTED_DATE_COLUMN = 1; + + public static final int BG_COLOR_ID_COLUMN = 2; + + public static final int CREATED_DATE_COLUMN = 3; + + public static final int HAS_ATTACHMENT_COLUMN = 4; + + public static final int MODIFIED_DATE_COLUMN = 5; + + public static final int NOTES_COUNT_COLUMN = 6; + + public static final int PARENT_ID_COLUMN = 7; + + public static final int SNIPPET_COLUMN = 8; + + public static final int TYPE_COLUMN = 9; + + public static final int WIDGET_ID_COLUMN = 10; + + public static final int WIDGET_TYPE_COLUMN = 11; + + public static final int SYNC_ID_COLUMN = 12; + + public static final int LOCAL_MODIFIED_COLUMN = 13; + + public static final int ORIGIN_PARENT_ID_COLUMN = 14; + + public static final int GTASK_ID_COLUMN = 15; + + public static final int VERSION_COLUMN = 16; + + private Context mContext; + + private ContentResolver mContentResolver; + + private boolean mIsCreate; + + private long mId; + + private long mAlertDate; + + private int mBgColorId; + + private long mCreatedDate; + + private int mHasAttachment; + + private long mModifiedDate; + + private long mParentId; + + private String mSnippet; + + private int mType; + + private int mWidgetId; + + private int mWidgetType; + + private long mOriginParent; + + private long mVersion; + + private ContentValues mDiffNoteValues; + + private ArrayList mDataList; + + public SqlNote(Context context) { + mContext = context; + mContentResolver = context.getContentResolver(); + mIsCreate = true; + mId = INVALID_ID; + mAlertDate = 0; + mBgColorId = ResourceParser.getDefaultBgId(context); + mCreatedDate = System.currentTimeMillis(); + mHasAttachment = 0; + mModifiedDate = System.currentTimeMillis(); + mParentId = 0; + mSnippet = ""; + mType = Notes.TYPE_NOTE; + mWidgetId = AppWidgetManager.INVALID_APPWIDGET_ID; + mWidgetType = Notes.TYPE_WIDGET_INVALIDE; + mOriginParent = 0; + mVersion = 0; + mDiffNoteValues = new ContentValues(); + mDataList = new ArrayList(); + } + + public SqlNote(Context context, Cursor c) { + mContext = context; + mContentResolver = context.getContentResolver(); + mIsCreate = false; + loadFromCursor(c); + mDataList = new ArrayList(); + if (mType == Notes.TYPE_NOTE) + loadDataContent(); + mDiffNoteValues = new ContentValues(); + } + + public SqlNote(Context context, long id) { + mContext = context; + mContentResolver = context.getContentResolver(); + mIsCreate = false; + loadFromCursor(id); + mDataList = new ArrayList(); + if (mType == Notes.TYPE_NOTE) + loadDataContent(); + mDiffNoteValues = new ContentValues(); + + } + + private void loadFromCursor(long id) { + Cursor c = null; + try { + c = mContentResolver.query(Notes.CONTENT_NOTE_URI, PROJECTION_NOTE, "(_id=?)", + new String[] { + String.valueOf(id) + }, null); + if (c != null) { + c.moveToNext(); + loadFromCursor(c); + } else { + Log.w(TAG, "loadFromCursor: cursor = null"); + } + } finally { + if (c != null) + c.close(); + } + } + + private void loadFromCursor(Cursor c) { + mId = c.getLong(ID_COLUMN); + mAlertDate = c.getLong(ALERTED_DATE_COLUMN); + mBgColorId = c.getInt(BG_COLOR_ID_COLUMN); + mCreatedDate = c.getLong(CREATED_DATE_COLUMN); + mHasAttachment = c.getInt(HAS_ATTACHMENT_COLUMN); + mModifiedDate = c.getLong(MODIFIED_DATE_COLUMN); + mParentId = c.getLong(PARENT_ID_COLUMN); + mSnippet = c.getString(SNIPPET_COLUMN); + mType = c.getInt(TYPE_COLUMN); + mWidgetId = c.getInt(WIDGET_ID_COLUMN); + mWidgetType = c.getInt(WIDGET_TYPE_COLUMN); + mVersion = c.getLong(VERSION_COLUMN); + } + + private void loadDataContent() { + Cursor c = null; + mDataList.clear(); + try { + c = mContentResolver.query(Notes.CONTENT_DATA_URI, SqlData.PROJECTION_DATA, + "(note_id=?)", new String[] { + String.valueOf(mId) + }, null); + if (c != null) { + if (c.getCount() == 0) { + Log.w(TAG, "it seems that the note has not data"); + return; + } + while (c.moveToNext()) { + SqlData data = new SqlData(mContext, c); + mDataList.add(data); + } + } else { + Log.w(TAG, "loadDataContent: cursor = null"); + } + } finally { + if (c != null) + c.close(); + } + } + + public boolean setContent(JSONObject js) { + try { + JSONObject note = js.getJSONObject(GTaskStringUtils.META_HEAD_NOTE); + if (note.getInt(NoteColumns.TYPE) == Notes.TYPE_SYSTEM) { + Log.w(TAG, "cannot set system folder"); + } else if (note.getInt(NoteColumns.TYPE) == Notes.TYPE_FOLDER) { + // for folder we can only update the snnipet and type + String snippet = note.has(NoteColumns.SNIPPET) ? note + .getString(NoteColumns.SNIPPET) : ""; + if (mIsCreate || !mSnippet.equals(snippet)) { + mDiffNoteValues.put(NoteColumns.SNIPPET, snippet); + } + mSnippet = snippet; + + int type = note.has(NoteColumns.TYPE) ? note.getInt(NoteColumns.TYPE) + : Notes.TYPE_NOTE; + if (mIsCreate || mType != type) { + mDiffNoteValues.put(NoteColumns.TYPE, type); + } + mType = type; + } else if (note.getInt(NoteColumns.TYPE) == Notes.TYPE_NOTE) { + JSONArray dataArray = js.getJSONArray(GTaskStringUtils.META_HEAD_DATA); + long id = note.has(NoteColumns.ID) ? note.getLong(NoteColumns.ID) : INVALID_ID; + if (mIsCreate || mId != id) { + mDiffNoteValues.put(NoteColumns.ID, id); + } + mId = id; + + long alertDate = note.has(NoteColumns.ALERTED_DATE) ? note + .getLong(NoteColumns.ALERTED_DATE) : 0; + if (mIsCreate || mAlertDate != alertDate) { + mDiffNoteValues.put(NoteColumns.ALERTED_DATE, alertDate); + } + mAlertDate = alertDate; + + int bgColorId = note.has(NoteColumns.BG_COLOR_ID) ? note + .getInt(NoteColumns.BG_COLOR_ID) : ResourceParser.getDefaultBgId(mContext); + if (mIsCreate || mBgColorId != bgColorId) { + mDiffNoteValues.put(NoteColumns.BG_COLOR_ID, bgColorId); + } + mBgColorId = bgColorId; + + long createDate = note.has(NoteColumns.CREATED_DATE) ? note + .getLong(NoteColumns.CREATED_DATE) : System.currentTimeMillis(); + if (mIsCreate || mCreatedDate != createDate) { + mDiffNoteValues.put(NoteColumns.CREATED_DATE, createDate); + } + mCreatedDate = createDate; + + int hasAttachment = note.has(NoteColumns.HAS_ATTACHMENT) ? note + .getInt(NoteColumns.HAS_ATTACHMENT) : 0; + if (mIsCreate || mHasAttachment != hasAttachment) { + mDiffNoteValues.put(NoteColumns.HAS_ATTACHMENT, hasAttachment); + } + mHasAttachment = hasAttachment; + + long modifiedDate = note.has(NoteColumns.MODIFIED_DATE) ? note + .getLong(NoteColumns.MODIFIED_DATE) : System.currentTimeMillis(); + if (mIsCreate || mModifiedDate != modifiedDate) { + mDiffNoteValues.put(NoteColumns.MODIFIED_DATE, modifiedDate); + } + mModifiedDate = modifiedDate; + + long parentId = note.has(NoteColumns.PARENT_ID) ? note + .getLong(NoteColumns.PARENT_ID) : 0; + if (mIsCreate || mParentId != parentId) { + mDiffNoteValues.put(NoteColumns.PARENT_ID, parentId); + } + mParentId = parentId; + + String snippet = note.has(NoteColumns.SNIPPET) ? note + .getString(NoteColumns.SNIPPET) : ""; + if (mIsCreate || !mSnippet.equals(snippet)) { + mDiffNoteValues.put(NoteColumns.SNIPPET, snippet); + } + mSnippet = snippet; + + int type = note.has(NoteColumns.TYPE) ? note.getInt(NoteColumns.TYPE) + : Notes.TYPE_NOTE; + if (mIsCreate || mType != type) { + mDiffNoteValues.put(NoteColumns.TYPE, type); + } + mType = type; + + int widgetId = note.has(NoteColumns.WIDGET_ID) ? note.getInt(NoteColumns.WIDGET_ID) + : AppWidgetManager.INVALID_APPWIDGET_ID; + if (mIsCreate || mWidgetId != widgetId) { + mDiffNoteValues.put(NoteColumns.WIDGET_ID, widgetId); + } + mWidgetId = widgetId; + + int widgetType = note.has(NoteColumns.WIDGET_TYPE) ? note + .getInt(NoteColumns.WIDGET_TYPE) : Notes.TYPE_WIDGET_INVALIDE; + if (mIsCreate || mWidgetType != widgetType) { + mDiffNoteValues.put(NoteColumns.WIDGET_TYPE, widgetType); + } + mWidgetType = widgetType; + + long originParent = note.has(NoteColumns.ORIGIN_PARENT_ID) ? note + .getLong(NoteColumns.ORIGIN_PARENT_ID) : 0; + if (mIsCreate || mOriginParent != originParent) { + mDiffNoteValues.put(NoteColumns.ORIGIN_PARENT_ID, originParent); + } + mOriginParent = originParent; + + for (int i = 0; i < dataArray.length(); i++) { + JSONObject data = dataArray.getJSONObject(i); + SqlData sqlData = null; + if (data.has(DataColumns.ID)) { + long dataId = data.getLong(DataColumns.ID); + for (SqlData temp : mDataList) { + if (dataId == temp.getId()) { + sqlData = temp; + } + } + } + + if (sqlData == null) { + sqlData = new SqlData(mContext); + mDataList.add(sqlData); + } + + sqlData.setContent(data); + } + } + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + return false; + } + return true; + } + + public JSONObject getContent() { + try { + JSONObject js = new JSONObject(); + + if (mIsCreate) { + Log.e(TAG, "it seems that we haven't created this in database yet"); + return null; + } + + JSONObject note = new JSONObject(); + if (mType == Notes.TYPE_NOTE) { + note.put(NoteColumns.ID, mId); + note.put(NoteColumns.ALERTED_DATE, mAlertDate); + note.put(NoteColumns.BG_COLOR_ID, mBgColorId); + note.put(NoteColumns.CREATED_DATE, mCreatedDate); + note.put(NoteColumns.HAS_ATTACHMENT, mHasAttachment); + note.put(NoteColumns.MODIFIED_DATE, mModifiedDate); + note.put(NoteColumns.PARENT_ID, mParentId); + note.put(NoteColumns.SNIPPET, mSnippet); + note.put(NoteColumns.TYPE, mType); + note.put(NoteColumns.WIDGET_ID, mWidgetId); + note.put(NoteColumns.WIDGET_TYPE, mWidgetType); + note.put(NoteColumns.ORIGIN_PARENT_ID, mOriginParent); + js.put(GTaskStringUtils.META_HEAD_NOTE, note); + + JSONArray dataArray = new JSONArray(); + for (SqlData sqlData : mDataList) { + JSONObject data = sqlData.getContent(); + if (data != null) { + dataArray.put(data); + } + } + js.put(GTaskStringUtils.META_HEAD_DATA, dataArray); + } else if (mType == Notes.TYPE_FOLDER || mType == Notes.TYPE_SYSTEM) { + note.put(NoteColumns.ID, mId); + note.put(NoteColumns.TYPE, mType); + note.put(NoteColumns.SNIPPET, mSnippet); + js.put(GTaskStringUtils.META_HEAD_NOTE, note); + } + + return js; + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + } + return null; + } + + public void setParentId(long id) { + mParentId = id; + mDiffNoteValues.put(NoteColumns.PARENT_ID, id); + } + + public void setGtaskId(String gid) { + mDiffNoteValues.put(NoteColumns.GTASK_ID, gid); + } + + public void setSyncId(long syncId) { + mDiffNoteValues.put(NoteColumns.SYNC_ID, syncId); + } + + public void resetLocalModified() { + mDiffNoteValues.put(NoteColumns.LOCAL_MODIFIED, 0); + } + + public long getId() { + return mId; + } + + public long getParentId() { + return mParentId; + } + + public String getSnippet() { + return mSnippet; + } + + public boolean isNoteType() { + return mType == Notes.TYPE_NOTE; + } + + public void commit(boolean validateVersion) { + if (mIsCreate) { + if (mId == INVALID_ID && mDiffNoteValues.containsKey(NoteColumns.ID)) { + mDiffNoteValues.remove(NoteColumns.ID); + } + + Uri uri = mContentResolver.insert(Notes.CONTENT_NOTE_URI, mDiffNoteValues); + try { + mId = Long.valueOf(uri.getPathSegments().get(1)); + } catch (NumberFormatException e) { + Log.e(TAG, "Get note id error :" + e.toString()); + throw new ActionFailureException("create note failed"); + } + if (mId == 0) { + throw new IllegalStateException("Create thread id failed"); + } + + if (mType == Notes.TYPE_NOTE) { + for (SqlData sqlData : mDataList) { + sqlData.commit(mId, false, -1); + } + } + } else { + if (mId <= 0 && mId != Notes.ID_ROOT_FOLDER && mId != Notes.ID_CALL_RECORD_FOLDER) { + Log.e(TAG, "No such note"); + throw new IllegalStateException("Try to update note with invalid id"); + } + if (mDiffNoteValues.size() > 0) { + mVersion ++; + int result = 0; + if (!validateVersion) { + result = mContentResolver.update(Notes.CONTENT_NOTE_URI, mDiffNoteValues, "(" + + NoteColumns.ID + "=?)", new String[] { + String.valueOf(mId) + }); + } else { + result = mContentResolver.update(Notes.CONTENT_NOTE_URI, mDiffNoteValues, "(" + + NoteColumns.ID + "=?) AND (" + NoteColumns.VERSION + "<=?)", + new String[] { + String.valueOf(mId), String.valueOf(mVersion) + }); + } + if (result == 0) { + Log.w(TAG, "there is no update. maybe user updates note when syncing"); + } + } + + if (mType == Notes.TYPE_NOTE) { + for (SqlData sqlData : mDataList) { + sqlData.commit(mId, validateVersion, mVersion); + } + } + } + + // refresh local info + loadFromCursor(mId); + if (mType == Notes.TYPE_NOTE) + loadDataContent(); + + mDiffNoteValues.clear(); + mIsCreate = false; + } +} diff --git a/app/src/main/java/net/micode/notes/gtask/data/Task.java b/app/src/main/java/net/micode/notes/gtask/data/Task.java new file mode 100644 index 0000000..6a19454 --- /dev/null +++ b/app/src/main/java/net/micode/notes/gtask/data/Task.java @@ -0,0 +1,351 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.gtask.data; + +import android.database.Cursor; +import android.text.TextUtils; +import android.util.Log; + +import net.micode.notes.data.Notes; +import net.micode.notes.data.Notes.DataColumns; +import net.micode.notes.data.Notes.DataConstants; +import net.micode.notes.data.Notes.NoteColumns; +import net.micode.notes.gtask.exception.ActionFailureException; +import net.micode.notes.tool.GTaskStringUtils; + +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + + +public class Task extends Node { + private static final String TAG = Task.class.getSimpleName(); + + private boolean mCompleted; + + private String mNotes; + + private JSONObject mMetaInfo; + + private Task mPriorSibling; + + private TaskList mParent; + + public Task() { + super(); + mCompleted = false; + mNotes = null; + mPriorSibling = null; + mParent = null; + mMetaInfo = null; + } + + public JSONObject getCreateAction(int actionId) { + JSONObject js = new JSONObject(); + + try { + // action_type + js.put(GTaskStringUtils.GTASK_JSON_ACTION_TYPE, + GTaskStringUtils.GTASK_JSON_ACTION_TYPE_CREATE); + + // action_id + js.put(GTaskStringUtils.GTASK_JSON_ACTION_ID, actionId); + + // index + js.put(GTaskStringUtils.GTASK_JSON_INDEX, mParent.getChildTaskIndex(this)); + + // entity_delta + JSONObject entity = new JSONObject(); + entity.put(GTaskStringUtils.GTASK_JSON_NAME, getName()); + entity.put(GTaskStringUtils.GTASK_JSON_CREATOR_ID, "null"); + entity.put(GTaskStringUtils.GTASK_JSON_ENTITY_TYPE, + GTaskStringUtils.GTASK_JSON_TYPE_TASK); + if (getNotes() != null) { + entity.put(GTaskStringUtils.GTASK_JSON_NOTES, getNotes()); + } + js.put(GTaskStringUtils.GTASK_JSON_ENTITY_DELTA, entity); + + // parent_id + js.put(GTaskStringUtils.GTASK_JSON_PARENT_ID, mParent.getGid()); + + // dest_parent_type + js.put(GTaskStringUtils.GTASK_JSON_DEST_PARENT_TYPE, + GTaskStringUtils.GTASK_JSON_TYPE_GROUP); + + // list_id + js.put(GTaskStringUtils.GTASK_JSON_LIST_ID, mParent.getGid()); + + // prior_sibling_id + if (mPriorSibling != null) { + js.put(GTaskStringUtils.GTASK_JSON_PRIOR_SIBLING_ID, mPriorSibling.getGid()); + } + + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + throw new ActionFailureException("fail to generate task-create jsonobject"); + } + + return js; + } + + public JSONObject getUpdateAction(int actionId) { + JSONObject js = new JSONObject(); + + try { + // action_type + js.put(GTaskStringUtils.GTASK_JSON_ACTION_TYPE, + GTaskStringUtils.GTASK_JSON_ACTION_TYPE_UPDATE); + + // action_id + js.put(GTaskStringUtils.GTASK_JSON_ACTION_ID, actionId); + + // id + js.put(GTaskStringUtils.GTASK_JSON_ID, getGid()); + + // entity_delta + JSONObject entity = new JSONObject(); + entity.put(GTaskStringUtils.GTASK_JSON_NAME, getName()); + if (getNotes() != null) { + entity.put(GTaskStringUtils.GTASK_JSON_NOTES, getNotes()); + } + entity.put(GTaskStringUtils.GTASK_JSON_DELETED, getDeleted()); + js.put(GTaskStringUtils.GTASK_JSON_ENTITY_DELTA, entity); + + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + throw new ActionFailureException("fail to generate task-update jsonobject"); + } + + return js; + } + + public void setContentByRemoteJSON(JSONObject js) { + if (js != null) { + try { + // id + if (js.has(GTaskStringUtils.GTASK_JSON_ID)) { + setGid(js.getString(GTaskStringUtils.GTASK_JSON_ID)); + } + + // last_modified + if (js.has(GTaskStringUtils.GTASK_JSON_LAST_MODIFIED)) { + setLastModified(js.getLong(GTaskStringUtils.GTASK_JSON_LAST_MODIFIED)); + } + + // name + if (js.has(GTaskStringUtils.GTASK_JSON_NAME)) { + setName(js.getString(GTaskStringUtils.GTASK_JSON_NAME)); + } + + // notes + if (js.has(GTaskStringUtils.GTASK_JSON_NOTES)) { + setNotes(js.getString(GTaskStringUtils.GTASK_JSON_NOTES)); + } + + // deleted + if (js.has(GTaskStringUtils.GTASK_JSON_DELETED)) { + setDeleted(js.getBoolean(GTaskStringUtils.GTASK_JSON_DELETED)); + } + + // completed + if (js.has(GTaskStringUtils.GTASK_JSON_COMPLETED)) { + setCompleted(js.getBoolean(GTaskStringUtils.GTASK_JSON_COMPLETED)); + } + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + throw new ActionFailureException("fail to get task content from jsonobject"); + } + } + } + + public void setContentByLocalJSON(JSONObject js) { + if (js == null || !js.has(GTaskStringUtils.META_HEAD_NOTE) + || !js.has(GTaskStringUtils.META_HEAD_DATA)) { + Log.w(TAG, "setContentByLocalJSON: nothing is avaiable"); + } + + try { + JSONObject note = js.getJSONObject(GTaskStringUtils.META_HEAD_NOTE); + JSONArray dataArray = js.getJSONArray(GTaskStringUtils.META_HEAD_DATA); + + if (note.getInt(NoteColumns.TYPE) != Notes.TYPE_NOTE) { + Log.e(TAG, "invalid type"); + return; + } + + for (int i = 0; i < dataArray.length(); i++) { + JSONObject data = dataArray.getJSONObject(i); + if (TextUtils.equals(data.getString(DataColumns.MIME_TYPE), DataConstants.NOTE)) { + setName(data.getString(DataColumns.CONTENT)); + break; + } + } + + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + } + } + + public JSONObject getLocalJSONFromContent() { + String name = getName(); + try { + if (mMetaInfo == null) { + // new task created from web + if (name == null) { + Log.w(TAG, "the note seems to be an empty one"); + return null; + } + + JSONObject js = new JSONObject(); + JSONObject note = new JSONObject(); + JSONArray dataArray = new JSONArray(); + JSONObject data = new JSONObject(); + data.put(DataColumns.CONTENT, name); + dataArray.put(data); + js.put(GTaskStringUtils.META_HEAD_DATA, dataArray); + note.put(NoteColumns.TYPE, Notes.TYPE_NOTE); + js.put(GTaskStringUtils.META_HEAD_NOTE, note); + return js; + } else { + // synced task + JSONObject note = mMetaInfo.getJSONObject(GTaskStringUtils.META_HEAD_NOTE); + JSONArray dataArray = mMetaInfo.getJSONArray(GTaskStringUtils.META_HEAD_DATA); + + for (int i = 0; i < dataArray.length(); i++) { + JSONObject data = dataArray.getJSONObject(i); + if (TextUtils.equals(data.getString(DataColumns.MIME_TYPE), DataConstants.NOTE)) { + data.put(DataColumns.CONTENT, getName()); + break; + } + } + + note.put(NoteColumns.TYPE, Notes.TYPE_NOTE); + return mMetaInfo; + } + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + return null; + } + } + + public void setMetaInfo(MetaData metaData) { + if (metaData != null && metaData.getNotes() != null) { + try { + mMetaInfo = new JSONObject(metaData.getNotes()); + } catch (JSONException e) { + Log.w(TAG, e.toString()); + mMetaInfo = null; + } + } + } + + public int getSyncAction(Cursor c) { + try { + JSONObject noteInfo = null; + if (mMetaInfo != null && mMetaInfo.has(GTaskStringUtils.META_HEAD_NOTE)) { + noteInfo = mMetaInfo.getJSONObject(GTaskStringUtils.META_HEAD_NOTE); + } + + if (noteInfo == null) { + Log.w(TAG, "it seems that note meta has been deleted"); + return SYNC_ACTION_UPDATE_REMOTE; + } + + if (!noteInfo.has(NoteColumns.ID)) { + Log.w(TAG, "remote note id seems to be deleted"); + return SYNC_ACTION_UPDATE_LOCAL; + } + + // validate the note id now + if (c.getLong(SqlNote.ID_COLUMN) != noteInfo.getLong(NoteColumns.ID)) { + Log.w(TAG, "note id doesn't match"); + return SYNC_ACTION_UPDATE_LOCAL; + } + + if (c.getInt(SqlNote.LOCAL_MODIFIED_COLUMN) == 0) { + // there is no local update + if (c.getLong(SqlNote.SYNC_ID_COLUMN) == getLastModified()) { + // no update both side + return SYNC_ACTION_NONE; + } else { + // apply remote to local + return SYNC_ACTION_UPDATE_LOCAL; + } + } else { + // validate gtask id + if (!c.getString(SqlNote.GTASK_ID_COLUMN).equals(getGid())) { + Log.e(TAG, "gtask id doesn't match"); + return SYNC_ACTION_ERROR; + } + if (c.getLong(SqlNote.SYNC_ID_COLUMN) == getLastModified()) { + // local modification only + return SYNC_ACTION_UPDATE_REMOTE; + } else { + return SYNC_ACTION_UPDATE_CONFLICT; + } + } + } catch (Exception e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + } + + return SYNC_ACTION_ERROR; + } + + public boolean isWorthSaving() { + return mMetaInfo != null || (getName() != null && getName().trim().length() > 0) + || (getNotes() != null && getNotes().trim().length() > 0); + } + + public void setCompleted(boolean completed) { + this.mCompleted = completed; + } + + public void setNotes(String notes) { + this.mNotes = notes; + } + + public void setPriorSibling(Task priorSibling) { + this.mPriorSibling = priorSibling; + } + + public void setParent(TaskList parent) { + this.mParent = parent; + } + + public boolean getCompleted() { + return this.mCompleted; + } + + public String getNotes() { + return this.mNotes; + } + + public Task getPriorSibling() { + return this.mPriorSibling; + } + + public TaskList getParent() { + return this.mParent; + } + +} diff --git a/app/src/main/java/net/micode/notes/gtask/data/TaskList.java b/app/src/main/java/net/micode/notes/gtask/data/TaskList.java new file mode 100644 index 0000000..4ea21c5 --- /dev/null +++ b/app/src/main/java/net/micode/notes/gtask/data/TaskList.java @@ -0,0 +1,343 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.gtask.data; + +import android.database.Cursor; +import android.util.Log; + +import net.micode.notes.data.Notes; +import net.micode.notes.data.Notes.NoteColumns; +import net.micode.notes.gtask.exception.ActionFailureException; +import net.micode.notes.tool.GTaskStringUtils; + +import org.json.JSONException; +import org.json.JSONObject; + +import java.util.ArrayList; + + +public class TaskList extends Node { + private static final String TAG = TaskList.class.getSimpleName(); + + private int mIndex; + + private ArrayList mChildren; + + public TaskList() { + super(); + mChildren = new ArrayList(); + mIndex = 1; + } + + public JSONObject getCreateAction(int actionId) { + JSONObject js = new JSONObject(); + + try { + // action_type + js.put(GTaskStringUtils.GTASK_JSON_ACTION_TYPE, + GTaskStringUtils.GTASK_JSON_ACTION_TYPE_CREATE); + + // action_id + js.put(GTaskStringUtils.GTASK_JSON_ACTION_ID, actionId); + + // index + js.put(GTaskStringUtils.GTASK_JSON_INDEX, mIndex); + + // entity_delta + JSONObject entity = new JSONObject(); + entity.put(GTaskStringUtils.GTASK_JSON_NAME, getName()); + entity.put(GTaskStringUtils.GTASK_JSON_CREATOR_ID, "null"); + entity.put(GTaskStringUtils.GTASK_JSON_ENTITY_TYPE, + GTaskStringUtils.GTASK_JSON_TYPE_GROUP); + js.put(GTaskStringUtils.GTASK_JSON_ENTITY_DELTA, entity); + + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + throw new ActionFailureException("fail to generate tasklist-create jsonobject"); + } + + return js; + } + + public JSONObject getUpdateAction(int actionId) { + JSONObject js = new JSONObject(); + + try { + // action_type + js.put(GTaskStringUtils.GTASK_JSON_ACTION_TYPE, + GTaskStringUtils.GTASK_JSON_ACTION_TYPE_UPDATE); + + // action_id + js.put(GTaskStringUtils.GTASK_JSON_ACTION_ID, actionId); + + // id + js.put(GTaskStringUtils.GTASK_JSON_ID, getGid()); + + // entity_delta + JSONObject entity = new JSONObject(); + entity.put(GTaskStringUtils.GTASK_JSON_NAME, getName()); + entity.put(GTaskStringUtils.GTASK_JSON_DELETED, getDeleted()); + js.put(GTaskStringUtils.GTASK_JSON_ENTITY_DELTA, entity); + + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + throw new ActionFailureException("fail to generate tasklist-update jsonobject"); + } + + return js; + } + + public void setContentByRemoteJSON(JSONObject js) { + if (js != null) { + try { + // id + if (js.has(GTaskStringUtils.GTASK_JSON_ID)) { + setGid(js.getString(GTaskStringUtils.GTASK_JSON_ID)); + } + + // last_modified + if (js.has(GTaskStringUtils.GTASK_JSON_LAST_MODIFIED)) { + setLastModified(js.getLong(GTaskStringUtils.GTASK_JSON_LAST_MODIFIED)); + } + + // name + if (js.has(GTaskStringUtils.GTASK_JSON_NAME)) { + setName(js.getString(GTaskStringUtils.GTASK_JSON_NAME)); + } + + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + throw new ActionFailureException("fail to get tasklist content from jsonobject"); + } + } + } + + public void setContentByLocalJSON(JSONObject js) { + if (js == null || !js.has(GTaskStringUtils.META_HEAD_NOTE)) { + Log.w(TAG, "setContentByLocalJSON: nothing is avaiable"); + } + + try { + JSONObject folder = js.getJSONObject(GTaskStringUtils.META_HEAD_NOTE); + + if (folder.getInt(NoteColumns.TYPE) == Notes.TYPE_FOLDER) { + String name = folder.getString(NoteColumns.SNIPPET); + setName(GTaskStringUtils.MIUI_FOLDER_PREFFIX + name); + } else if (folder.getInt(NoteColumns.TYPE) == Notes.TYPE_SYSTEM) { + if (folder.getLong(NoteColumns.ID) == Notes.ID_ROOT_FOLDER) + setName(GTaskStringUtils.MIUI_FOLDER_PREFFIX + GTaskStringUtils.FOLDER_DEFAULT); + else if (folder.getLong(NoteColumns.ID) == Notes.ID_CALL_RECORD_FOLDER) + setName(GTaskStringUtils.MIUI_FOLDER_PREFFIX + + GTaskStringUtils.FOLDER_CALL_NOTE); + else + Log.e(TAG, "invalid system folder"); + } else { + Log.e(TAG, "error type"); + } + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + } + } + + public JSONObject getLocalJSONFromContent() { + try { + JSONObject js = new JSONObject(); + JSONObject folder = new JSONObject(); + + String folderName = getName(); + if (getName().startsWith(GTaskStringUtils.MIUI_FOLDER_PREFFIX)) + folderName = folderName.substring(GTaskStringUtils.MIUI_FOLDER_PREFFIX.length(), + folderName.length()); + folder.put(NoteColumns.SNIPPET, folderName); + if (folderName.equals(GTaskStringUtils.FOLDER_DEFAULT) + || folderName.equals(GTaskStringUtils.FOLDER_CALL_NOTE)) + folder.put(NoteColumns.TYPE, Notes.TYPE_SYSTEM); + else + folder.put(NoteColumns.TYPE, Notes.TYPE_FOLDER); + + js.put(GTaskStringUtils.META_HEAD_NOTE, folder); + + return js; + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + return null; + } + } + + public int getSyncAction(Cursor c) { + try { + if (c.getInt(SqlNote.LOCAL_MODIFIED_COLUMN) == 0) { + // there is no local update + if (c.getLong(SqlNote.SYNC_ID_COLUMN) == getLastModified()) { + // no update both side + return SYNC_ACTION_NONE; + } else { + // apply remote to local + return SYNC_ACTION_UPDATE_LOCAL; + } + } else { + // validate gtask id + if (!c.getString(SqlNote.GTASK_ID_COLUMN).equals(getGid())) { + Log.e(TAG, "gtask id doesn't match"); + return SYNC_ACTION_ERROR; + } + if (c.getLong(SqlNote.SYNC_ID_COLUMN) == getLastModified()) { + // local modification only + return SYNC_ACTION_UPDATE_REMOTE; + } else { + // for folder conflicts, just apply local modification + return SYNC_ACTION_UPDATE_REMOTE; + } + } + } catch (Exception e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + } + + return SYNC_ACTION_ERROR; + } + + public int getChildTaskCount() { + return mChildren.size(); + } + + public boolean addChildTask(Task task) { + boolean ret = false; + if (task != null && !mChildren.contains(task)) { + ret = mChildren.add(task); + if (ret) { + // need to set prior sibling and parent + task.setPriorSibling(mChildren.isEmpty() ? null : mChildren + .get(mChildren.size() - 1)); + task.setParent(this); + } + } + return ret; + } + + public boolean addChildTask(Task task, int index) { + if (index < 0 || index > mChildren.size()) { + Log.e(TAG, "add child task: invalid index"); + return false; + } + + int pos = mChildren.indexOf(task); + if (task != null && pos == -1) { + mChildren.add(index, task); + + // update the task list + Task preTask = null; + Task afterTask = null; + if (index != 0) + preTask = mChildren.get(index - 1); + if (index != mChildren.size() - 1) + afterTask = mChildren.get(index + 1); + + task.setPriorSibling(preTask); + if (afterTask != null) + afterTask.setPriorSibling(task); + } + + return true; + } + + public boolean removeChildTask(Task task) { + boolean ret = false; + int index = mChildren.indexOf(task); + if (index != -1) { + ret = mChildren.remove(task); + + if (ret) { + // reset prior sibling and parent + task.setPriorSibling(null); + task.setParent(null); + + // update the task list + if (index != mChildren.size()) { + mChildren.get(index).setPriorSibling( + index == 0 ? null : mChildren.get(index - 1)); + } + } + } + return ret; + } + + public boolean moveChildTask(Task task, int index) { + + if (index < 0 || index >= mChildren.size()) { + Log.e(TAG, "move child task: invalid index"); + return false; + } + + int pos = mChildren.indexOf(task); + if (pos == -1) { + Log.e(TAG, "move child task: the task should in the list"); + return false; + } + + if (pos == index) + return true; + return (removeChildTask(task) && addChildTask(task, index)); + } + + public Task findChildTaskByGid(String gid) { + for (int i = 0; i < mChildren.size(); i++) { + Task t = mChildren.get(i); + if (t.getGid().equals(gid)) { + return t; + } + } + return null; + } + + public int getChildTaskIndex(Task task) { + return mChildren.indexOf(task); + } + + public Task getChildTaskByIndex(int index) { + if (index < 0 || index >= mChildren.size()) { + Log.e(TAG, "getTaskByIndex: invalid index"); + return null; + } + return mChildren.get(index); + } + + public Task getChilTaskByGid(String gid) { + for (Task task : mChildren) { + if (task.getGid().equals(gid)) + return task; + } + return null; + } + + public ArrayList getChildTaskList() { + return this.mChildren; + } + + public void setIndex(int index) { + this.mIndex = index; + } + + public int getIndex() { + return this.mIndex; + } +} diff --git a/app/src/main/java/net/micode/notes/gtask/exception/ActionFailureException.java b/app/src/main/java/net/micode/notes/gtask/exception/ActionFailureException.java new file mode 100644 index 0000000..15504be --- /dev/null +++ b/app/src/main/java/net/micode/notes/gtask/exception/ActionFailureException.java @@ -0,0 +1,33 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.gtask.exception; + +public class ActionFailureException extends RuntimeException { + private static final long serialVersionUID = 4425249765923293627L; + + public ActionFailureException() { + super(); + } + + public ActionFailureException(String paramString) { + super(paramString); + } + + public ActionFailureException(String paramString, Throwable paramThrowable) { + super(paramString, paramThrowable); + } +} diff --git a/app/src/main/java/net/micode/notes/gtask/exception/NetworkFailureException.java b/app/src/main/java/net/micode/notes/gtask/exception/NetworkFailureException.java new file mode 100644 index 0000000..b08cfb1 --- /dev/null +++ b/app/src/main/java/net/micode/notes/gtask/exception/NetworkFailureException.java @@ -0,0 +1,33 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.gtask.exception; + +public class NetworkFailureException extends Exception { + private static final long serialVersionUID = 2107610287180234136L; + + public NetworkFailureException() { + super(); + } + + public NetworkFailureException(String paramString) { + super(paramString); + } + + public NetworkFailureException(String paramString, Throwable paramThrowable) { + super(paramString, paramThrowable); + } +} diff --git a/app/src/main/java/net/micode/notes/gtask/remote/GTaskASyncTask.java b/app/src/main/java/net/micode/notes/gtask/remote/GTaskASyncTask.java new file mode 100644 index 0000000..56c8e5e --- /dev/null +++ b/app/src/main/java/net/micode/notes/gtask/remote/GTaskASyncTask.java @@ -0,0 +1,124 @@ + +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.gtask.remote; + +import android.app.Notification; +import android.app.NotificationManager; +import android.app.PendingIntent; +import android.content.Context; +import android.content.Intent; +import android.os.AsyncTask; + +import net.micode.notes.R; +import net.micode.notes.ui.NotesListActivity; +import net.micode.notes.ui.NotesPreferenceActivity; + + +public class GTaskASyncTask extends AsyncTask { + + private static int GTASK_SYNC_NOTIFICATION_ID = 5234235; + + public interface OnCompleteListener { + void onComplete(); + } + + private Context mContext; + + private NotificationManager mNotifiManager; + + private GTaskManager mTaskManager; + + private OnCompleteListener mOnCompleteListener; + + public GTaskASyncTask(Context context, OnCompleteListener listener) { + mContext = context; + mOnCompleteListener = listener; + mNotifiManager = (NotificationManager) mContext + .getSystemService(Context.NOTIFICATION_SERVICE); + mTaskManager = GTaskManager.getInstance(); + } + + public void cancelSync() { + mTaskManager.cancelSync(); + } + + public void publishProgess(String message) { + publishProgress(new String[] { + message + }); + } + + private void showNotification(int tickerId, String content) { + Notification notification = new Notification(R.drawable.notification, mContext + .getString(tickerId), System.currentTimeMillis()); + notification.defaults = Notification.DEFAULT_LIGHTS; + notification.flags = Notification.FLAG_AUTO_CANCEL; + PendingIntent pendingIntent; + if (tickerId != R.string.ticker_success) { + pendingIntent = PendingIntent.getActivity(mContext, 0, new Intent(mContext, + NotesPreferenceActivity.class), 0); + + } else { + pendingIntent = PendingIntent.getActivity(mContext, 0, new Intent(mContext, + NotesListActivity.class), 0); + } +// notification.setLatestEventInfo(mContext, mContext.getString(R.string.app_name), content, +// pendingIntent); + notification.contentIntent = pendingIntent; + mNotifiManager.notify(GTASK_SYNC_NOTIFICATION_ID, notification); + } + + @Override + protected Integer doInBackground(Void... unused) { + publishProgess(mContext.getString(R.string.sync_progress_login, NotesPreferenceActivity + .getSyncAccountName(mContext))); + return mTaskManager.sync(mContext, this); + } + + @Override + protected void onProgressUpdate(String... progress) { + showNotification(R.string.ticker_syncing, progress[0]); + if (mContext instanceof GTaskSyncService) { + ((GTaskSyncService) mContext).sendBroadcast(progress[0]); + } + } + + @Override + protected void onPostExecute(Integer result) { + if (result == GTaskManager.STATE_SUCCESS) { + showNotification(R.string.ticker_success, mContext.getString( + R.string.success_sync_account, mTaskManager.getSyncAccount())); + NotesPreferenceActivity.setLastSyncTime(mContext, System.currentTimeMillis()); + } else if (result == GTaskManager.STATE_NETWORK_ERROR) { + showNotification(R.string.ticker_fail, mContext.getString(R.string.error_sync_network)); + } else if (result == GTaskManager.STATE_INTERNAL_ERROR) { + showNotification(R.string.ticker_fail, mContext.getString(R.string.error_sync_internal)); + } else if (result == GTaskManager.STATE_SYNC_CANCELLED) { + showNotification(R.string.ticker_cancel, mContext + .getString(R.string.error_sync_cancelled)); + } + if (mOnCompleteListener != null) { + new Thread(new Runnable() { + + public void run() { + mOnCompleteListener.onComplete(); + } + }).start(); + } + } +} diff --git a/app/src/main/java/net/micode/notes/gtask/remote/GTaskClient.java b/app/src/main/java/net/micode/notes/gtask/remote/GTaskClient.java new file mode 100644 index 0000000..c67dfdf --- /dev/null +++ b/app/src/main/java/net/micode/notes/gtask/remote/GTaskClient.java @@ -0,0 +1,585 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.gtask.remote; + +import android.accounts.Account; +import android.accounts.AccountManager; +import android.accounts.AccountManagerFuture; +import android.app.Activity; +import android.os.Bundle; +import android.text.TextUtils; +import android.util.Log; + +import net.micode.notes.gtask.data.Node; +import net.micode.notes.gtask.data.Task; +import net.micode.notes.gtask.data.TaskList; +import net.micode.notes.gtask.exception.ActionFailureException; +import net.micode.notes.gtask.exception.NetworkFailureException; +import net.micode.notes.tool.GTaskStringUtils; +import net.micode.notes.ui.NotesPreferenceActivity; + +import org.apache.http.HttpEntity; +import org.apache.http.HttpResponse; +import org.apache.http.client.ClientProtocolException; +import org.apache.http.client.entity.UrlEncodedFormEntity; +import org.apache.http.client.methods.HttpGet; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.cookie.Cookie; +import org.apache.http.impl.client.BasicCookieStore; +import org.apache.http.impl.client.DefaultHttpClient; +import org.apache.http.message.BasicNameValuePair; +import org.apache.http.params.BasicHttpParams; +import org.apache.http.params.HttpConnectionParams; +import org.apache.http.params.HttpParams; +import org.apache.http.params.HttpProtocolParams; +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.util.LinkedList; +import java.util.List; +import java.util.zip.GZIPInputStream; +import java.util.zip.Inflater; +import java.util.zip.InflaterInputStream; + + +public class GTaskClient { + private static final String TAG = GTaskClient.class.getSimpleName(); + + private static final String GTASK_URL = "https://mail.google.com/tasks/"; + + private static final String GTASK_GET_URL = "https://mail.google.com/tasks/ig"; + + private static final String GTASK_POST_URL = "https://mail.google.com/tasks/r/ig"; + + private static GTaskClient mInstance = null; + + private DefaultHttpClient mHttpClient; + + private String mGetUrl; + + private String mPostUrl; + + private long mClientVersion; + + private boolean mLoggedin; + + private long mLastLoginTime; + + private int mActionId; + + private Account mAccount; + + private JSONArray mUpdateArray; + + private GTaskClient() { + mHttpClient = null; + mGetUrl = GTASK_GET_URL; + mPostUrl = GTASK_POST_URL; + mClientVersion = -1; + mLoggedin = false; + mLastLoginTime = 0; + mActionId = 1; + mAccount = null; + mUpdateArray = null; + } + + public static synchronized GTaskClient getInstance() { + if (mInstance == null) { + mInstance = new GTaskClient(); + } + return mInstance; + } + + public boolean login(Activity activity) { + // we suppose that the cookie would expire after 5 minutes + // then we need to re-login + final long interval = 1000 * 60 * 5; + if (mLastLoginTime + interval < System.currentTimeMillis()) { + mLoggedin = false; + } + + // need to re-login after account switch + if (mLoggedin + && !TextUtils.equals(getSyncAccount().name, NotesPreferenceActivity + .getSyncAccountName(activity))) { + mLoggedin = false; + } + + if (mLoggedin) { + Log.d(TAG, "already logged in"); + return true; + } + + mLastLoginTime = System.currentTimeMillis(); + String authToken = loginGoogleAccount(activity, false); + if (authToken == null) { + Log.e(TAG, "login google account failed"); + return false; + } + + // login with custom domain if necessary + if (!(mAccount.name.toLowerCase().endsWith("gmail.com") || mAccount.name.toLowerCase() + .endsWith("googlemail.com"))) { + StringBuilder url = new StringBuilder(GTASK_URL).append("a/"); + int index = mAccount.name.indexOf('@') + 1; + String suffix = mAccount.name.substring(index); + url.append(suffix + "/"); + mGetUrl = url.toString() + "ig"; + mPostUrl = url.toString() + "r/ig"; + + if (tryToLoginGtask(activity, authToken)) { + mLoggedin = true; + } + } + + // try to login with google official url + if (!mLoggedin) { + mGetUrl = GTASK_GET_URL; + mPostUrl = GTASK_POST_URL; + if (!tryToLoginGtask(activity, authToken)) { + return false; + } + } + + mLoggedin = true; + return true; + } + + private String loginGoogleAccount(Activity activity, boolean invalidateToken) { + String authToken; + AccountManager accountManager = AccountManager.get(activity); + Account[] accounts = accountManager.getAccountsByType("com.google"); + + if (accounts.length == 0) { + Log.e(TAG, "there is no available google account"); + return null; + } + + String accountName = NotesPreferenceActivity.getSyncAccountName(activity); + Account account = null; + for (Account a : accounts) { + if (a.name.equals(accountName)) { + account = a; + break; + } + } + if (account != null) { + mAccount = account; + } else { + Log.e(TAG, "unable to get an account with the same name in the settings"); + return null; + } + + // get the token now + AccountManagerFuture accountManagerFuture = accountManager.getAuthToken(account, + "goanna_mobile", null, activity, null, null); + try { + Bundle authTokenBundle = accountManagerFuture.getResult(); + authToken = authTokenBundle.getString(AccountManager.KEY_AUTHTOKEN); + if (invalidateToken) { + accountManager.invalidateAuthToken("com.google", authToken); + loginGoogleAccount(activity, false); + } + } catch (Exception e) { + Log.e(TAG, "get auth token failed"); + authToken = null; + } + + return authToken; + } + + private boolean tryToLoginGtask(Activity activity, String authToken) { + if (!loginGtask(authToken)) { + // maybe the auth token is out of date, now let's invalidate the + // token and try again + authToken = loginGoogleAccount(activity, true); + if (authToken == null) { + Log.e(TAG, "login google account failed"); + return false; + } + + if (!loginGtask(authToken)) { + Log.e(TAG, "login gtask failed"); + return false; + } + } + return true; + } + + private boolean loginGtask(String authToken) { + int timeoutConnection = 10000; + int timeoutSocket = 15000; + HttpParams httpParameters = new BasicHttpParams(); + HttpConnectionParams.setConnectionTimeout(httpParameters, timeoutConnection); + HttpConnectionParams.setSoTimeout(httpParameters, timeoutSocket); + mHttpClient = new DefaultHttpClient(httpParameters); + BasicCookieStore localBasicCookieStore = new BasicCookieStore(); + mHttpClient.setCookieStore(localBasicCookieStore); + HttpProtocolParams.setUseExpectContinue(mHttpClient.getParams(), false); + + // login gtask + try { + String loginUrl = mGetUrl + "?auth=" + authToken; + HttpGet httpGet = new HttpGet(loginUrl); + HttpResponse response = null; + response = mHttpClient.execute(httpGet); + + // get the cookie now + List cookies = mHttpClient.getCookieStore().getCookies(); + boolean hasAuthCookie = false; + for (Cookie cookie : cookies) { + if (cookie.getName().contains("GTL")) { + hasAuthCookie = true; + } + } + if (!hasAuthCookie) { + Log.w(TAG, "it seems that there is no auth cookie"); + } + + // get the client version + String resString = getResponseContent(response.getEntity()); + String jsBegin = "_setup("; + String jsEnd = ")}"; + int begin = resString.indexOf(jsBegin); + int end = resString.lastIndexOf(jsEnd); + String jsString = null; + if (begin != -1 && end != -1 && begin < end) { + jsString = resString.substring(begin + jsBegin.length(), end); + } + JSONObject js = new JSONObject(jsString); + mClientVersion = js.getLong("v"); + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + return false; + } catch (Exception e) { + // simply catch all exceptions + Log.e(TAG, "httpget gtask_url failed"); + return false; + } + + return true; + } + + private int getActionId() { + return mActionId++; + } + + private HttpPost createHttpPost() { + HttpPost httpPost = new HttpPost(mPostUrl); + httpPost.setHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8"); + httpPost.setHeader("AT", "1"); + return httpPost; + } + + private String getResponseContent(HttpEntity entity) throws IOException { + String contentEncoding = null; + if (entity.getContentEncoding() != null) { + contentEncoding = entity.getContentEncoding().getValue(); + Log.d(TAG, "encoding: " + contentEncoding); + } + + InputStream input = entity.getContent(); + if (contentEncoding != null && contentEncoding.equalsIgnoreCase("gzip")) { + input = new GZIPInputStream(entity.getContent()); + } else if (contentEncoding != null && contentEncoding.equalsIgnoreCase("deflate")) { + Inflater inflater = new Inflater(true); + input = new InflaterInputStream(entity.getContent(), inflater); + } + + try { + InputStreamReader isr = new InputStreamReader(input); + BufferedReader br = new BufferedReader(isr); + StringBuilder sb = new StringBuilder(); + + while (true) { + String buff = br.readLine(); + if (buff == null) { + return sb.toString(); + } + sb = sb.append(buff); + } + } finally { + input.close(); + } + } + + private JSONObject postRequest(JSONObject js) throws NetworkFailureException { + if (!mLoggedin) { + Log.e(TAG, "please login first"); + throw new ActionFailureException("not logged in"); + } + + HttpPost httpPost = createHttpPost(); + try { + LinkedList list = new LinkedList(); + list.add(new BasicNameValuePair("r", js.toString())); + UrlEncodedFormEntity entity = new UrlEncodedFormEntity(list, "UTF-8"); + httpPost.setEntity(entity); + + // execute the post + HttpResponse response = mHttpClient.execute(httpPost); + String jsString = getResponseContent(response.getEntity()); + return new JSONObject(jsString); + + } catch (ClientProtocolException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + throw new NetworkFailureException("postRequest failed"); + } catch (IOException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + throw new NetworkFailureException("postRequest failed"); + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + throw new ActionFailureException("unable to convert response content to jsonobject"); + } catch (Exception e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + throw new ActionFailureException("error occurs when posting request"); + } + } + + public void createTask(Task task) throws NetworkFailureException { + commitUpdate(); + try { + JSONObject jsPost = new JSONObject(); + JSONArray actionList = new JSONArray(); + + // action_list + actionList.put(task.getCreateAction(getActionId())); + jsPost.put(GTaskStringUtils.GTASK_JSON_ACTION_LIST, actionList); + + // client_version + jsPost.put(GTaskStringUtils.GTASK_JSON_CLIENT_VERSION, mClientVersion); + + // post + JSONObject jsResponse = postRequest(jsPost); + JSONObject jsResult = (JSONObject) jsResponse.getJSONArray( + GTaskStringUtils.GTASK_JSON_RESULTS).get(0); + task.setGid(jsResult.getString(GTaskStringUtils.GTASK_JSON_NEW_ID)); + + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + throw new ActionFailureException("create task: handing jsonobject failed"); + } + } + + public void createTaskList(TaskList tasklist) throws NetworkFailureException { + commitUpdate(); + try { + JSONObject jsPost = new JSONObject(); + JSONArray actionList = new JSONArray(); + + // action_list + actionList.put(tasklist.getCreateAction(getActionId())); + jsPost.put(GTaskStringUtils.GTASK_JSON_ACTION_LIST, actionList); + + // client version + jsPost.put(GTaskStringUtils.GTASK_JSON_CLIENT_VERSION, mClientVersion); + + // post + JSONObject jsResponse = postRequest(jsPost); + JSONObject jsResult = (JSONObject) jsResponse.getJSONArray( + GTaskStringUtils.GTASK_JSON_RESULTS).get(0); + tasklist.setGid(jsResult.getString(GTaskStringUtils.GTASK_JSON_NEW_ID)); + + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + throw new ActionFailureException("create tasklist: handing jsonobject failed"); + } + } + + public void commitUpdate() throws NetworkFailureException { + if (mUpdateArray != null) { + try { + JSONObject jsPost = new JSONObject(); + + // action_list + jsPost.put(GTaskStringUtils.GTASK_JSON_ACTION_LIST, mUpdateArray); + + // client_version + jsPost.put(GTaskStringUtils.GTASK_JSON_CLIENT_VERSION, mClientVersion); + + postRequest(jsPost); + mUpdateArray = null; + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + throw new ActionFailureException("commit update: handing jsonobject failed"); + } + } + } + + public void addUpdateNode(Node node) throws NetworkFailureException { + if (node != null) { + // too many update items may result in an error + // set max to 10 items + if (mUpdateArray != null && mUpdateArray.length() > 10) { + commitUpdate(); + } + + if (mUpdateArray == null) + mUpdateArray = new JSONArray(); + mUpdateArray.put(node.getUpdateAction(getActionId())); + } + } + + public void moveTask(Task task, TaskList preParent, TaskList curParent) + throws NetworkFailureException { + commitUpdate(); + try { + JSONObject jsPost = new JSONObject(); + JSONArray actionList = new JSONArray(); + JSONObject action = new JSONObject(); + + // action_list + action.put(GTaskStringUtils.GTASK_JSON_ACTION_TYPE, + GTaskStringUtils.GTASK_JSON_ACTION_TYPE_MOVE); + action.put(GTaskStringUtils.GTASK_JSON_ACTION_ID, getActionId()); + action.put(GTaskStringUtils.GTASK_JSON_ID, task.getGid()); + if (preParent == curParent && task.getPriorSibling() != null) { + // put prioring_sibing_id only if moving within the tasklist and + // it is not the first one + action.put(GTaskStringUtils.GTASK_JSON_PRIOR_SIBLING_ID, task.getPriorSibling()); + } + action.put(GTaskStringUtils.GTASK_JSON_SOURCE_LIST, preParent.getGid()); + action.put(GTaskStringUtils.GTASK_JSON_DEST_PARENT, curParent.getGid()); + if (preParent != curParent) { + // put the dest_list only if moving between tasklists + action.put(GTaskStringUtils.GTASK_JSON_DEST_LIST, curParent.getGid()); + } + actionList.put(action); + jsPost.put(GTaskStringUtils.GTASK_JSON_ACTION_LIST, actionList); + + // client_version + jsPost.put(GTaskStringUtils.GTASK_JSON_CLIENT_VERSION, mClientVersion); + + postRequest(jsPost); + + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + throw new ActionFailureException("move task: handing jsonobject failed"); + } + } + + public void deleteNode(Node node) throws NetworkFailureException { + commitUpdate(); + try { + JSONObject jsPost = new JSONObject(); + JSONArray actionList = new JSONArray(); + + // action_list + node.setDeleted(true); + actionList.put(node.getUpdateAction(getActionId())); + jsPost.put(GTaskStringUtils.GTASK_JSON_ACTION_LIST, actionList); + + // client_version + jsPost.put(GTaskStringUtils.GTASK_JSON_CLIENT_VERSION, mClientVersion); + + postRequest(jsPost); + mUpdateArray = null; + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + throw new ActionFailureException("delete node: handing jsonobject failed"); + } + } + + public JSONArray getTaskLists() throws NetworkFailureException { + if (!mLoggedin) { + Log.e(TAG, "please login first"); + throw new ActionFailureException("not logged in"); + } + + try { + HttpGet httpGet = new HttpGet(mGetUrl); + HttpResponse response = null; + response = mHttpClient.execute(httpGet); + + // get the task list + String resString = getResponseContent(response.getEntity()); + String jsBegin = "_setup("; + String jsEnd = ")}"; + int begin = resString.indexOf(jsBegin); + int end = resString.lastIndexOf(jsEnd); + String jsString = null; + if (begin != -1 && end != -1 && begin < end) { + jsString = resString.substring(begin + jsBegin.length(), end); + } + JSONObject js = new JSONObject(jsString); + return js.getJSONObject("t").getJSONArray(GTaskStringUtils.GTASK_JSON_LISTS); + } catch (ClientProtocolException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + throw new NetworkFailureException("gettasklists: httpget failed"); + } catch (IOException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + throw new NetworkFailureException("gettasklists: httpget failed"); + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + throw new ActionFailureException("get task lists: handing jasonobject failed"); + } + } + + public JSONArray getTaskList(String listGid) throws NetworkFailureException { + commitUpdate(); + try { + JSONObject jsPost = new JSONObject(); + JSONArray actionList = new JSONArray(); + JSONObject action = new JSONObject(); + + // action_list + action.put(GTaskStringUtils.GTASK_JSON_ACTION_TYPE, + GTaskStringUtils.GTASK_JSON_ACTION_TYPE_GETALL); + action.put(GTaskStringUtils.GTASK_JSON_ACTION_ID, getActionId()); + action.put(GTaskStringUtils.GTASK_JSON_LIST_ID, listGid); + action.put(GTaskStringUtils.GTASK_JSON_GET_DELETED, false); + actionList.put(action); + jsPost.put(GTaskStringUtils.GTASK_JSON_ACTION_LIST, actionList); + + // client_version + jsPost.put(GTaskStringUtils.GTASK_JSON_CLIENT_VERSION, mClientVersion); + + JSONObject jsResponse = postRequest(jsPost); + return jsResponse.getJSONArray(GTaskStringUtils.GTASK_JSON_TASKS); + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + throw new ActionFailureException("get task list: handing jsonobject failed"); + } + } + + public Account getSyncAccount() { + return mAccount; + } + + public void resetUpdateArray() { + mUpdateArray = null; + } +} diff --git a/app/src/main/java/net/micode/notes/gtask/remote/GTaskManager.java b/app/src/main/java/net/micode/notes/gtask/remote/GTaskManager.java new file mode 100644 index 0000000..d2b4082 --- /dev/null +++ b/app/src/main/java/net/micode/notes/gtask/remote/GTaskManager.java @@ -0,0 +1,800 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.gtask.remote; + +import android.app.Activity; +import android.content.ContentResolver; +import android.content.ContentUris; +import android.content.ContentValues; +import android.content.Context; +import android.database.Cursor; +import android.util.Log; + +import net.micode.notes.R; +import net.micode.notes.data.Notes; +import net.micode.notes.data.Notes.DataColumns; +import net.micode.notes.data.Notes.NoteColumns; +import net.micode.notes.gtask.data.MetaData; +import net.micode.notes.gtask.data.Node; +import net.micode.notes.gtask.data.SqlNote; +import net.micode.notes.gtask.data.Task; +import net.micode.notes.gtask.data.TaskList; +import net.micode.notes.gtask.exception.ActionFailureException; +import net.micode.notes.gtask.exception.NetworkFailureException; +import net.micode.notes.tool.DataUtils; +import net.micode.notes.tool.GTaskStringUtils; + +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.Map; + + +public class GTaskManager { + private static final String TAG = GTaskManager.class.getSimpleName(); + + public static final int STATE_SUCCESS = 0; + + public static final int STATE_NETWORK_ERROR = 1; + + public static final int STATE_INTERNAL_ERROR = 2; + + public static final int STATE_SYNC_IN_PROGRESS = 3; + + public static final int STATE_SYNC_CANCELLED = 4; + + private static GTaskManager mInstance = null; + + private Activity mActivity; + + private Context mContext; + + private ContentResolver mContentResolver; + + private boolean mSyncing; + + private boolean mCancelled; + + private HashMap mGTaskListHashMap; + + private HashMap mGTaskHashMap; + + private HashMap mMetaHashMap; + + private TaskList mMetaList; + + private HashSet mLocalDeleteIdMap; + + private HashMap mGidToNid; + + private HashMap mNidToGid; + + private GTaskManager() { + mSyncing = false; + mCancelled = false; + mGTaskListHashMap = new HashMap(); + mGTaskHashMap = new HashMap(); + mMetaHashMap = new HashMap(); + mMetaList = null; + mLocalDeleteIdMap = new HashSet(); + mGidToNid = new HashMap(); + mNidToGid = new HashMap(); + } + + public static synchronized GTaskManager getInstance() { + if (mInstance == null) { + mInstance = new GTaskManager(); + } + return mInstance; + } + + public synchronized void setActivityContext(Activity activity) { + // used for getting authtoken + mActivity = activity; + } + + public int sync(Context context, GTaskASyncTask asyncTask) { + if (mSyncing) { + Log.d(TAG, "Sync is in progress"); + return STATE_SYNC_IN_PROGRESS; + } + mContext = context; + mContentResolver = mContext.getContentResolver(); + mSyncing = true; + mCancelled = false; + mGTaskListHashMap.clear(); + mGTaskHashMap.clear(); + mMetaHashMap.clear(); + mLocalDeleteIdMap.clear(); + mGidToNid.clear(); + mNidToGid.clear(); + + try { + GTaskClient client = GTaskClient.getInstance(); + client.resetUpdateArray(); + + // login google task + if (!mCancelled) { + if (!client.login(mActivity)) { + throw new NetworkFailureException("login google task failed"); + } + } + + // get the task list from google + asyncTask.publishProgess(mContext.getString(R.string.sync_progress_init_list)); + initGTaskList(); + + // do content sync work + asyncTask.publishProgess(mContext.getString(R.string.sync_progress_syncing)); + syncContent(); + } catch (NetworkFailureException e) { + Log.e(TAG, e.toString()); + return STATE_NETWORK_ERROR; + } catch (ActionFailureException e) { + Log.e(TAG, e.toString()); + return STATE_INTERNAL_ERROR; + } catch (Exception e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + return STATE_INTERNAL_ERROR; + } finally { + mGTaskListHashMap.clear(); + mGTaskHashMap.clear(); + mMetaHashMap.clear(); + mLocalDeleteIdMap.clear(); + mGidToNid.clear(); + mNidToGid.clear(); + mSyncing = false; + } + + return mCancelled ? STATE_SYNC_CANCELLED : STATE_SUCCESS; + } + + private void initGTaskList() throws NetworkFailureException { + if (mCancelled) + return; + GTaskClient client = GTaskClient.getInstance(); + try { + JSONArray jsTaskLists = client.getTaskLists(); + + // init meta list first + mMetaList = null; + for (int i = 0; i < jsTaskLists.length(); i++) { + JSONObject object = jsTaskLists.getJSONObject(i); + String gid = object.getString(GTaskStringUtils.GTASK_JSON_ID); + String name = object.getString(GTaskStringUtils.GTASK_JSON_NAME); + + if (name + .equals(GTaskStringUtils.MIUI_FOLDER_PREFFIX + GTaskStringUtils.FOLDER_META)) { + mMetaList = new TaskList(); + mMetaList.setContentByRemoteJSON(object); + + // load meta data + JSONArray jsMetas = client.getTaskList(gid); + for (int j = 0; j < jsMetas.length(); j++) { + object = (JSONObject) jsMetas.getJSONObject(j); + MetaData metaData = new MetaData(); + metaData.setContentByRemoteJSON(object); + if (metaData.isWorthSaving()) { + mMetaList.addChildTask(metaData); + if (metaData.getGid() != null) { + mMetaHashMap.put(metaData.getRelatedGid(), metaData); + } + } + } + } + } + + // create meta list if not existed + if (mMetaList == null) { + mMetaList = new TaskList(); + mMetaList.setName(GTaskStringUtils.MIUI_FOLDER_PREFFIX + + GTaskStringUtils.FOLDER_META); + GTaskClient.getInstance().createTaskList(mMetaList); + } + + // init task list + for (int i = 0; i < jsTaskLists.length(); i++) { + JSONObject object = jsTaskLists.getJSONObject(i); + String gid = object.getString(GTaskStringUtils.GTASK_JSON_ID); + String name = object.getString(GTaskStringUtils.GTASK_JSON_NAME); + + if (name.startsWith(GTaskStringUtils.MIUI_FOLDER_PREFFIX) + && !name.equals(GTaskStringUtils.MIUI_FOLDER_PREFFIX + + GTaskStringUtils.FOLDER_META)) { + TaskList tasklist = new TaskList(); + tasklist.setContentByRemoteJSON(object); + mGTaskListHashMap.put(gid, tasklist); + mGTaskHashMap.put(gid, tasklist); + + // load tasks + JSONArray jsTasks = client.getTaskList(gid); + for (int j = 0; j < jsTasks.length(); j++) { + object = (JSONObject) jsTasks.getJSONObject(j); + gid = object.getString(GTaskStringUtils.GTASK_JSON_ID); + Task task = new Task(); + task.setContentByRemoteJSON(object); + if (task.isWorthSaving()) { + task.setMetaInfo(mMetaHashMap.get(gid)); + tasklist.addChildTask(task); + mGTaskHashMap.put(gid, task); + } + } + } + } + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + throw new ActionFailureException("initGTaskList: handing JSONObject failed"); + } + } + + private void syncContent() throws NetworkFailureException { + int syncType; + Cursor c = null; + String gid; + Node node; + + mLocalDeleteIdMap.clear(); + + if (mCancelled) { + return; + } + + // for local deleted note + try { + c = mContentResolver.query(Notes.CONTENT_NOTE_URI, SqlNote.PROJECTION_NOTE, + "(type<>? AND parent_id=?)", new String[] { + String.valueOf(Notes.TYPE_SYSTEM), String.valueOf(Notes.ID_TRASH_FOLER) + }, null); + if (c != null) { + while (c.moveToNext()) { + gid = c.getString(SqlNote.GTASK_ID_COLUMN); + node = mGTaskHashMap.get(gid); + if (node != null) { + mGTaskHashMap.remove(gid); + doContentSync(Node.SYNC_ACTION_DEL_REMOTE, node, c); + } + + mLocalDeleteIdMap.add(c.getLong(SqlNote.ID_COLUMN)); + } + } else { + Log.w(TAG, "failed to query trash folder"); + } + } finally { + if (c != null) { + c.close(); + c = null; + } + } + + // sync folder first + syncFolder(); + + // for note existing in database + try { + c = mContentResolver.query(Notes.CONTENT_NOTE_URI, SqlNote.PROJECTION_NOTE, + "(type=? AND parent_id<>?)", new String[] { + String.valueOf(Notes.TYPE_NOTE), String.valueOf(Notes.ID_TRASH_FOLER) + }, NoteColumns.TYPE + " DESC"); + if (c != null) { + while (c.moveToNext()) { + gid = c.getString(SqlNote.GTASK_ID_COLUMN); + node = mGTaskHashMap.get(gid); + if (node != null) { + mGTaskHashMap.remove(gid); + mGidToNid.put(gid, c.getLong(SqlNote.ID_COLUMN)); + mNidToGid.put(c.getLong(SqlNote.ID_COLUMN), gid); + syncType = node.getSyncAction(c); + } else { + if (c.getString(SqlNote.GTASK_ID_COLUMN).trim().length() == 0) { + // local add + syncType = Node.SYNC_ACTION_ADD_REMOTE; + } else { + // remote delete + syncType = Node.SYNC_ACTION_DEL_LOCAL; + } + } + doContentSync(syncType, node, c); + } + } else { + Log.w(TAG, "failed to query existing note in database"); + } + + } finally { + if (c != null) { + c.close(); + c = null; + } + } + + // go through remaining items + Iterator> iter = mGTaskHashMap.entrySet().iterator(); + while (iter.hasNext()) { + Map.Entry entry = iter.next(); + node = entry.getValue(); + doContentSync(Node.SYNC_ACTION_ADD_LOCAL, node, null); + } + + // mCancelled can be set by another thread, so we neet to check one by + // one + // clear local delete table + if (!mCancelled) { + if (!DataUtils.batchDeleteNotes(mContentResolver, mLocalDeleteIdMap)) { + throw new ActionFailureException("failed to batch-delete local deleted notes"); + } + } + + // refresh local sync id + if (!mCancelled) { + GTaskClient.getInstance().commitUpdate(); + refreshLocalSyncId(); + } + + } + + private void syncFolder() throws NetworkFailureException { + Cursor c = null; + String gid; + Node node; + int syncType; + + if (mCancelled) { + return; + } + + // for root folder + try { + c = mContentResolver.query(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, + Notes.ID_ROOT_FOLDER), SqlNote.PROJECTION_NOTE, null, null, null); + if (c != null) { + c.moveToNext(); + gid = c.getString(SqlNote.GTASK_ID_COLUMN); + node = mGTaskHashMap.get(gid); + if (node != null) { + mGTaskHashMap.remove(gid); + mGidToNid.put(gid, (long) Notes.ID_ROOT_FOLDER); + mNidToGid.put((long) Notes.ID_ROOT_FOLDER, gid); + // for system folder, only update remote name if necessary + if (!node.getName().equals( + GTaskStringUtils.MIUI_FOLDER_PREFFIX + GTaskStringUtils.FOLDER_DEFAULT)) + doContentSync(Node.SYNC_ACTION_UPDATE_REMOTE, node, c); + } else { + doContentSync(Node.SYNC_ACTION_ADD_REMOTE, node, c); + } + } else { + Log.w(TAG, "failed to query root folder"); + } + } finally { + if (c != null) { + c.close(); + c = null; + } + } + + // for call-note folder + try { + c = mContentResolver.query(Notes.CONTENT_NOTE_URI, SqlNote.PROJECTION_NOTE, "(_id=?)", + new String[] { + String.valueOf(Notes.ID_CALL_RECORD_FOLDER) + }, null); + if (c != null) { + if (c.moveToNext()) { + gid = c.getString(SqlNote.GTASK_ID_COLUMN); + node = mGTaskHashMap.get(gid); + if (node != null) { + mGTaskHashMap.remove(gid); + mGidToNid.put(gid, (long) Notes.ID_CALL_RECORD_FOLDER); + mNidToGid.put((long) Notes.ID_CALL_RECORD_FOLDER, gid); + // for system folder, only update remote name if + // necessary + if (!node.getName().equals( + GTaskStringUtils.MIUI_FOLDER_PREFFIX + + GTaskStringUtils.FOLDER_CALL_NOTE)) + doContentSync(Node.SYNC_ACTION_UPDATE_REMOTE, node, c); + } else { + doContentSync(Node.SYNC_ACTION_ADD_REMOTE, node, c); + } + } + } else { + Log.w(TAG, "failed to query call note folder"); + } + } finally { + if (c != null) { + c.close(); + c = null; + } + } + + // for local existing folders + try { + c = mContentResolver.query(Notes.CONTENT_NOTE_URI, SqlNote.PROJECTION_NOTE, + "(type=? AND parent_id<>?)", new String[] { + String.valueOf(Notes.TYPE_FOLDER), String.valueOf(Notes.ID_TRASH_FOLER) + }, NoteColumns.TYPE + " DESC"); + if (c != null) { + while (c.moveToNext()) { + gid = c.getString(SqlNote.GTASK_ID_COLUMN); + node = mGTaskHashMap.get(gid); + if (node != null) { + mGTaskHashMap.remove(gid); + mGidToNid.put(gid, c.getLong(SqlNote.ID_COLUMN)); + mNidToGid.put(c.getLong(SqlNote.ID_COLUMN), gid); + syncType = node.getSyncAction(c); + } else { + if (c.getString(SqlNote.GTASK_ID_COLUMN).trim().length() == 0) { + // local add + syncType = Node.SYNC_ACTION_ADD_REMOTE; + } else { + // remote delete + syncType = Node.SYNC_ACTION_DEL_LOCAL; + } + } + doContentSync(syncType, node, c); + } + } else { + Log.w(TAG, "failed to query existing folder"); + } + } finally { + if (c != null) { + c.close(); + c = null; + } + } + + // for remote add folders + Iterator> iter = mGTaskListHashMap.entrySet().iterator(); + while (iter.hasNext()) { + Map.Entry entry = iter.next(); + gid = entry.getKey(); + node = entry.getValue(); + if (mGTaskHashMap.containsKey(gid)) { + mGTaskHashMap.remove(gid); + doContentSync(Node.SYNC_ACTION_ADD_LOCAL, node, null); + } + } + + if (!mCancelled) + GTaskClient.getInstance().commitUpdate(); + } + + private void doContentSync(int syncType, Node node, Cursor c) throws NetworkFailureException { + if (mCancelled) { + return; + } + + MetaData meta; + switch (syncType) { + case Node.SYNC_ACTION_ADD_LOCAL: + addLocalNode(node); + break; + case Node.SYNC_ACTION_ADD_REMOTE: + addRemoteNode(node, c); + break; + case Node.SYNC_ACTION_DEL_LOCAL: + meta = mMetaHashMap.get(c.getString(SqlNote.GTASK_ID_COLUMN)); + if (meta != null) { + GTaskClient.getInstance().deleteNode(meta); + } + mLocalDeleteIdMap.add(c.getLong(SqlNote.ID_COLUMN)); + break; + case Node.SYNC_ACTION_DEL_REMOTE: + meta = mMetaHashMap.get(node.getGid()); + if (meta != null) { + GTaskClient.getInstance().deleteNode(meta); + } + GTaskClient.getInstance().deleteNode(node); + break; + case Node.SYNC_ACTION_UPDATE_LOCAL: + updateLocalNode(node, c); + break; + case Node.SYNC_ACTION_UPDATE_REMOTE: + updateRemoteNode(node, c); + break; + case Node.SYNC_ACTION_UPDATE_CONFLICT: + // merging both modifications maybe a good idea + // right now just use local update simply + updateRemoteNode(node, c); + break; + case Node.SYNC_ACTION_NONE: + break; + case Node.SYNC_ACTION_ERROR: + default: + throw new ActionFailureException("unkown sync action type"); + } + } + + private void addLocalNode(Node node) throws NetworkFailureException { + if (mCancelled) { + return; + } + + SqlNote sqlNote; + if (node instanceof TaskList) { + if (node.getName().equals( + GTaskStringUtils.MIUI_FOLDER_PREFFIX + GTaskStringUtils.FOLDER_DEFAULT)) { + sqlNote = new SqlNote(mContext, Notes.ID_ROOT_FOLDER); + } else if (node.getName().equals( + GTaskStringUtils.MIUI_FOLDER_PREFFIX + GTaskStringUtils.FOLDER_CALL_NOTE)) { + sqlNote = new SqlNote(mContext, Notes.ID_CALL_RECORD_FOLDER); + } else { + sqlNote = new SqlNote(mContext); + sqlNote.setContent(node.getLocalJSONFromContent()); + sqlNote.setParentId(Notes.ID_ROOT_FOLDER); + } + } else { + sqlNote = new SqlNote(mContext); + JSONObject js = node.getLocalJSONFromContent(); + try { + if (js.has(GTaskStringUtils.META_HEAD_NOTE)) { + JSONObject note = js.getJSONObject(GTaskStringUtils.META_HEAD_NOTE); + if (note.has(NoteColumns.ID)) { + long id = note.getLong(NoteColumns.ID); + if (DataUtils.existInNoteDatabase(mContentResolver, id)) { + // the id is not available, have to create a new one + note.remove(NoteColumns.ID); + } + } + } + + if (js.has(GTaskStringUtils.META_HEAD_DATA)) { + JSONArray dataArray = js.getJSONArray(GTaskStringUtils.META_HEAD_DATA); + for (int i = 0; i < dataArray.length(); i++) { + JSONObject data = dataArray.getJSONObject(i); + if (data.has(DataColumns.ID)) { + long dataId = data.getLong(DataColumns.ID); + if (DataUtils.existInDataDatabase(mContentResolver, dataId)) { + // the data id is not available, have to create + // a new one + data.remove(DataColumns.ID); + } + } + } + + } + } catch (JSONException e) { + Log.w(TAG, e.toString()); + e.printStackTrace(); + } + sqlNote.setContent(js); + + Long parentId = mGidToNid.get(((Task) node).getParent().getGid()); + if (parentId == null) { + Log.e(TAG, "cannot find task's parent id locally"); + throw new ActionFailureException("cannot add local node"); + } + sqlNote.setParentId(parentId.longValue()); + } + + // create the local node + sqlNote.setGtaskId(node.getGid()); + sqlNote.commit(false); + + // update gid-nid mapping + mGidToNid.put(node.getGid(), sqlNote.getId()); + mNidToGid.put(sqlNote.getId(), node.getGid()); + + // update meta + updateRemoteMeta(node.getGid(), sqlNote); + } + + private void updateLocalNode(Node node, Cursor c) throws NetworkFailureException { + if (mCancelled) { + return; + } + + SqlNote sqlNote; + // update the note locally + sqlNote = new SqlNote(mContext, c); + sqlNote.setContent(node.getLocalJSONFromContent()); + + Long parentId = (node instanceof Task) ? mGidToNid.get(((Task) node).getParent().getGid()) + : new Long(Notes.ID_ROOT_FOLDER); + if (parentId == null) { + Log.e(TAG, "cannot find task's parent id locally"); + throw new ActionFailureException("cannot update local node"); + } + sqlNote.setParentId(parentId.longValue()); + sqlNote.commit(true); + + // update meta info + updateRemoteMeta(node.getGid(), sqlNote); + } + + private void addRemoteNode(Node node, Cursor c) throws NetworkFailureException { + if (mCancelled) { + return; + } + + SqlNote sqlNote = new SqlNote(mContext, c); + Node n; + + // update remotely + if (sqlNote.isNoteType()) { + Task task = new Task(); + task.setContentByLocalJSON(sqlNote.getContent()); + + String parentGid = mNidToGid.get(sqlNote.getParentId()); + if (parentGid == null) { + Log.e(TAG, "cannot find task's parent tasklist"); + throw new ActionFailureException("cannot add remote task"); + } + mGTaskListHashMap.get(parentGid).addChildTask(task); + + GTaskClient.getInstance().createTask(task); + n = (Node) task; + + // add meta + updateRemoteMeta(task.getGid(), sqlNote); + } else { + TaskList tasklist = null; + + // we need to skip folder if it has already existed + String folderName = GTaskStringUtils.MIUI_FOLDER_PREFFIX; + if (sqlNote.getId() == Notes.ID_ROOT_FOLDER) + folderName += GTaskStringUtils.FOLDER_DEFAULT; + else if (sqlNote.getId() == Notes.ID_CALL_RECORD_FOLDER) + folderName += GTaskStringUtils.FOLDER_CALL_NOTE; + else + folderName += sqlNote.getSnippet(); + + Iterator> iter = mGTaskListHashMap.entrySet().iterator(); + while (iter.hasNext()) { + Map.Entry entry = iter.next(); + String gid = entry.getKey(); + TaskList list = entry.getValue(); + + if (list.getName().equals(folderName)) { + tasklist = list; + if (mGTaskHashMap.containsKey(gid)) { + mGTaskHashMap.remove(gid); + } + break; + } + } + + // no match we can add now + if (tasklist == null) { + tasklist = new TaskList(); + tasklist.setContentByLocalJSON(sqlNote.getContent()); + GTaskClient.getInstance().createTaskList(tasklist); + mGTaskListHashMap.put(tasklist.getGid(), tasklist); + } + n = (Node) tasklist; + } + + // update local note + sqlNote.setGtaskId(n.getGid()); + sqlNote.commit(false); + sqlNote.resetLocalModified(); + sqlNote.commit(true); + + // gid-id mapping + mGidToNid.put(n.getGid(), sqlNote.getId()); + mNidToGid.put(sqlNote.getId(), n.getGid()); + } + + private void updateRemoteNode(Node node, Cursor c) throws NetworkFailureException { + if (mCancelled) { + return; + } + + SqlNote sqlNote = new SqlNote(mContext, c); + + // update remotely + node.setContentByLocalJSON(sqlNote.getContent()); + GTaskClient.getInstance().addUpdateNode(node); + + // update meta + updateRemoteMeta(node.getGid(), sqlNote); + + // move task if necessary + if (sqlNote.isNoteType()) { + Task task = (Task) node; + TaskList preParentList = task.getParent(); + + String curParentGid = mNidToGid.get(sqlNote.getParentId()); + if (curParentGid == null) { + Log.e(TAG, "cannot find task's parent tasklist"); + throw new ActionFailureException("cannot update remote task"); + } + TaskList curParentList = mGTaskListHashMap.get(curParentGid); + + if (preParentList != curParentList) { + preParentList.removeChildTask(task); + curParentList.addChildTask(task); + GTaskClient.getInstance().moveTask(task, preParentList, curParentList); + } + } + + // clear local modified flag + sqlNote.resetLocalModified(); + sqlNote.commit(true); + } + + private void updateRemoteMeta(String gid, SqlNote sqlNote) throws NetworkFailureException { + if (sqlNote != null && sqlNote.isNoteType()) { + MetaData metaData = mMetaHashMap.get(gid); + if (metaData != null) { + metaData.setMeta(gid, sqlNote.getContent()); + GTaskClient.getInstance().addUpdateNode(metaData); + } else { + metaData = new MetaData(); + metaData.setMeta(gid, sqlNote.getContent()); + mMetaList.addChildTask(metaData); + mMetaHashMap.put(gid, metaData); + GTaskClient.getInstance().createTask(metaData); + } + } + } + + private void refreshLocalSyncId() throws NetworkFailureException { + if (mCancelled) { + return; + } + + // get the latest gtask list + mGTaskHashMap.clear(); + mGTaskListHashMap.clear(); + mMetaHashMap.clear(); + initGTaskList(); + + Cursor c = null; + try { + c = mContentResolver.query(Notes.CONTENT_NOTE_URI, SqlNote.PROJECTION_NOTE, + "(type<>? AND parent_id<>?)", new String[] { + String.valueOf(Notes.TYPE_SYSTEM), String.valueOf(Notes.ID_TRASH_FOLER) + }, NoteColumns.TYPE + " DESC"); + if (c != null) { + while (c.moveToNext()) { + String gid = c.getString(SqlNote.GTASK_ID_COLUMN); + Node node = mGTaskHashMap.get(gid); + if (node != null) { + mGTaskHashMap.remove(gid); + ContentValues values = new ContentValues(); + values.put(NoteColumns.SYNC_ID, node.getLastModified()); + mContentResolver.update(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, + c.getLong(SqlNote.ID_COLUMN)), values, null, null); + } else { + Log.e(TAG, "something is missed"); + throw new ActionFailureException( + "some local items don't have gid after sync"); + } + } + } else { + Log.w(TAG, "failed to query local note to refresh sync id"); + } + } finally { + if (c != null) { + c.close(); + c = null; + } + } + } + + public String getSyncAccount() { + return GTaskClient.getInstance().getSyncAccount().name; + } + + public void cancelSync() { + mCancelled = true; + } +} diff --git a/app/src/main/java/net/micode/notes/gtask/remote/GTaskSyncService.java b/app/src/main/java/net/micode/notes/gtask/remote/GTaskSyncService.java new file mode 100644 index 0000000..cca36f7 --- /dev/null +++ b/app/src/main/java/net/micode/notes/gtask/remote/GTaskSyncService.java @@ -0,0 +1,128 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.gtask.remote; + +import android.app.Activity; +import android.app.Service; +import android.content.Context; +import android.content.Intent; +import android.os.Bundle; +import android.os.IBinder; + +public class GTaskSyncService extends Service { + public final static String ACTION_STRING_NAME = "sync_action_type"; + + public final static int ACTION_START_SYNC = 0; + + public final static int ACTION_CANCEL_SYNC = 1; + + public final static int ACTION_INVALID = 2; + + public final static String GTASK_SERVICE_BROADCAST_NAME = "net.micode.notes.gtask.remote.gtask_sync_service"; + + public final static String GTASK_SERVICE_BROADCAST_IS_SYNCING = "isSyncing"; + + public final static String GTASK_SERVICE_BROADCAST_PROGRESS_MSG = "progressMsg"; + + private static GTaskASyncTask mSyncTask = null; + + private static String mSyncProgress = ""; + + private void startSync() { + if (mSyncTask == null) { + mSyncTask = new GTaskASyncTask(this, new GTaskASyncTask.OnCompleteListener() { + public void onComplete() { + mSyncTask = null; + sendBroadcast(""); + stopSelf(); + } + }); + sendBroadcast(""); + mSyncTask.execute(); + } + } + + private void cancelSync() { + if (mSyncTask != null) { + mSyncTask.cancelSync(); + } + } + + @Override + public void onCreate() { + mSyncTask = null; + } + + @Override + public int onStartCommand(Intent intent, int flags, int startId) { + Bundle bundle = intent.getExtras(); + if (bundle != null && bundle.containsKey(ACTION_STRING_NAME)) { + switch (bundle.getInt(ACTION_STRING_NAME, ACTION_INVALID)) { + case ACTION_START_SYNC: + startSync(); + break; + case ACTION_CANCEL_SYNC: + cancelSync(); + break; + default: + break; + } + return START_STICKY; + } + return super.onStartCommand(intent, flags, startId); + } + + @Override + public void onLowMemory() { + if (mSyncTask != null) { + mSyncTask.cancelSync(); + } + } + + public IBinder onBind(Intent intent) { + return null; + } + + public void sendBroadcast(String msg) { + mSyncProgress = msg; + Intent intent = new Intent(GTASK_SERVICE_BROADCAST_NAME); + intent.putExtra(GTASK_SERVICE_BROADCAST_IS_SYNCING, mSyncTask != null); + intent.putExtra(GTASK_SERVICE_BROADCAST_PROGRESS_MSG, msg); + sendBroadcast(intent); + } + + public static void startSync(Activity activity) { + GTaskManager.getInstance().setActivityContext(activity); + Intent intent = new Intent(activity, GTaskSyncService.class); + intent.putExtra(GTaskSyncService.ACTION_STRING_NAME, GTaskSyncService.ACTION_START_SYNC); + activity.startService(intent); + } + + public static void cancelSync(Context context) { + Intent intent = new Intent(context, GTaskSyncService.class); + intent.putExtra(GTaskSyncService.ACTION_STRING_NAME, GTaskSyncService.ACTION_CANCEL_SYNC); + context.startService(intent); + } + + public static boolean isSyncing() { + return mSyncTask != null; + } + + public static String getProgressString() { + return mSyncProgress; + } +} diff --git a/app/src/main/java/net/micode/notes/model/Note.java b/app/src/main/java/net/micode/notes/model/Note.java new file mode 100644 index 0000000..6706cf6 --- /dev/null +++ b/app/src/main/java/net/micode/notes/model/Note.java @@ -0,0 +1,253 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.model; +import android.content.ContentProviderOperation; +import android.content.ContentProviderResult; +import android.content.ContentUris; +import android.content.ContentValues; +import android.content.Context; +import android.content.OperationApplicationException; +import android.net.Uri; +import android.os.RemoteException; +import android.util.Log; + +import net.micode.notes.data.Notes; +import net.micode.notes.data.Notes.CallNote; +import net.micode.notes.data.Notes.DataColumns; +import net.micode.notes.data.Notes.NoteColumns; +import net.micode.notes.data.Notes.TextNote; + +import java.util.ArrayList; + + +public class Note { + private ContentValues mNoteDiffValues; + private NoteData mNoteData; + private static final String TAG = "Note"; + /** + * Create a new note id for adding a new note to databases + */ + public static synchronized long getNewNoteId(Context context, long folderId) { + // Create a new note in the database + ContentValues values = new ContentValues(); + long createdTime = System.currentTimeMillis(); + values.put(NoteColumns.CREATED_DATE, createdTime); + values.put(NoteColumns.MODIFIED_DATE, createdTime); + values.put(NoteColumns.TYPE, Notes.TYPE_NOTE); + values.put(NoteColumns.LOCAL_MODIFIED, 1); + values.put(NoteColumns.PARENT_ID, folderId); + Uri uri = context.getContentResolver().insert(Notes.CONTENT_NOTE_URI, values); + + long noteId = 0; + try { + noteId = Long.valueOf(uri.getPathSegments().get(1)); + } catch (NumberFormatException e) { + Log.e(TAG, "Get note id error :" + e.toString()); + noteId = 0; + } + if (noteId == -1) { + throw new IllegalStateException("Wrong note id:" + noteId); + } + return noteId; + } + + public Note() { + mNoteDiffValues = new ContentValues(); + mNoteData = new NoteData(); + } + + public void setNoteValue(String key, String value) { + mNoteDiffValues.put(key, value); + mNoteDiffValues.put(NoteColumns.LOCAL_MODIFIED, 1); + mNoteDiffValues.put(NoteColumns.MODIFIED_DATE, System.currentTimeMillis()); + } + + public void setTextData(String key, String value) { + mNoteData.setTextData(key, value); + } + + public void setTextDataId(long id) { + mNoteData.setTextDataId(id); + } + + public long getTextDataId() { + return mNoteData.mTextDataId; + } + + public void setCallDataId(long id) { + mNoteData.setCallDataId(id); + } + + public void setCallData(String key, String value) { + mNoteData.setCallData(key, value); + } + + public boolean isLocalModified() { + return mNoteDiffValues.size() > 0 || mNoteData.isLocalModified(); + } + + public boolean syncNote(Context context, long noteId) { + if (noteId <= 0) { + throw new IllegalArgumentException("Wrong note id:" + noteId); + } + + if (!isLocalModified()) { + return true; + } + + /** + * In theory, once data changed, the note should be updated on {@link NoteColumns#LOCAL_MODIFIED} and + * {@link NoteColumns#MODIFIED_DATE}. For data safety, though update note fails, we also update the + * note data info + */ + if (context.getContentResolver().update( + ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, noteId), mNoteDiffValues, null, + null) == 0) { + Log.e(TAG, "Update note error, should not happen"); + // Do not return, fall through + } + mNoteDiffValues.clear(); + + if (mNoteData.isLocalModified() + && (mNoteData.pushIntoContentResolver(context, noteId) == null)) { + return false; + } + + return true; + } + + private class NoteData { + private long mTextDataId; + + private ContentValues mTextDataValues; + + private long mCallDataId; + + private ContentValues mCallDataValues; + + private static final String TAG = "NoteData"; + + public NoteData() { + mTextDataValues = new ContentValues(); + mCallDataValues = new ContentValues(); + mTextDataId = 0; + mCallDataId = 0; + } + + boolean isLocalModified() { + return mTextDataValues.size() > 0 || mCallDataValues.size() > 0; + } + + void setTextDataId(long id) { + if(id <= 0) { + throw new IllegalArgumentException("Text data id should larger than 0"); + } + mTextDataId = id; + } + + void setCallDataId(long id) { + if (id <= 0) { + throw new IllegalArgumentException("Call data id should larger than 0"); + } + mCallDataId = id; + } + + void setCallData(String key, String value) { + mCallDataValues.put(key, value); + mNoteDiffValues.put(NoteColumns.LOCAL_MODIFIED, 1); + mNoteDiffValues.put(NoteColumns.MODIFIED_DATE, System.currentTimeMillis()); + } + + void setTextData(String key, String value) { + mTextDataValues.put(key, value); + mNoteDiffValues.put(NoteColumns.LOCAL_MODIFIED, 1); + mNoteDiffValues.put(NoteColumns.MODIFIED_DATE, System.currentTimeMillis()); + } + + Uri pushIntoContentResolver(Context context, long noteId) { + /** + * Check for safety + */ + if (noteId <= 0) { + throw new IllegalArgumentException("Wrong note id:" + noteId); + } + + ArrayList operationList = new ArrayList(); + ContentProviderOperation.Builder builder = null; + + if(mTextDataValues.size() > 0) { + mTextDataValues.put(DataColumns.NOTE_ID, noteId); + if (mTextDataId == 0) { + mTextDataValues.put(DataColumns.MIME_TYPE, TextNote.CONTENT_ITEM_TYPE); + Uri uri = context.getContentResolver().insert(Notes.CONTENT_DATA_URI, + mTextDataValues); + try { + setTextDataId(Long.valueOf(uri.getPathSegments().get(1))); + } catch (NumberFormatException e) { + Log.e(TAG, "Insert new text data fail with noteId" + noteId); + mTextDataValues.clear(); + return null; + } + } else { + builder = ContentProviderOperation.newUpdate(ContentUris.withAppendedId( + Notes.CONTENT_DATA_URI, mTextDataId)); + builder.withValues(mTextDataValues); + operationList.add(builder.build()); + } + mTextDataValues.clear(); + } + + if(mCallDataValues.size() > 0) { + mCallDataValues.put(DataColumns.NOTE_ID, noteId); + if (mCallDataId == 0) { + mCallDataValues.put(DataColumns.MIME_TYPE, CallNote.CONTENT_ITEM_TYPE); + Uri uri = context.getContentResolver().insert(Notes.CONTENT_DATA_URI, + mCallDataValues); + try { + setCallDataId(Long.valueOf(uri.getPathSegments().get(1))); + } catch (NumberFormatException e) { + Log.e(TAG, "Insert new call data fail with noteId" + noteId); + mCallDataValues.clear(); + return null; + } + } else { + builder = ContentProviderOperation.newUpdate(ContentUris.withAppendedId( + Notes.CONTENT_DATA_URI, mCallDataId)); + builder.withValues(mCallDataValues); + operationList.add(builder.build()); + } + mCallDataValues.clear(); + } + + if (operationList.size() > 0) { + try { + ContentProviderResult[] results = context.getContentResolver().applyBatch( + Notes.AUTHORITY, operationList); + return (results == null || results.length == 0 || results[0] == null) ? null + : ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, noteId); + } catch (RemoteException e) { + Log.e(TAG, String.format("%s: %s", e.toString(), e.getMessage())); + return null; + } catch (OperationApplicationException e) { + Log.e(TAG, String.format("%s: %s", e.toString(), e.getMessage())); + return null; + } + } + return null; + } + } +} diff --git a/app/src/main/java/net/micode/notes/model/WorkingNote.java b/app/src/main/java/net/micode/notes/model/WorkingNote.java new file mode 100644 index 0000000..be081e4 --- /dev/null +++ b/app/src/main/java/net/micode/notes/model/WorkingNote.java @@ -0,0 +1,368 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.model; + +import android.appwidget.AppWidgetManager; +import android.content.ContentUris; +import android.content.Context; +import android.database.Cursor; +import android.text.TextUtils; +import android.util.Log; + +import net.micode.notes.data.Notes; +import net.micode.notes.data.Notes.CallNote; +import net.micode.notes.data.Notes.DataColumns; +import net.micode.notes.data.Notes.DataConstants; +import net.micode.notes.data.Notes.NoteColumns; +import net.micode.notes.data.Notes.TextNote; +import net.micode.notes.tool.ResourceParser.NoteBgResources; + + +public class WorkingNote { + // Note for the working note + private Note mNote; + // Note Id + private long mNoteId; + // Note content + private String mContent; + // Note mode + private int mMode; + + private long mAlertDate; + + private long mModifiedDate; + + private int mBgColorId; + + private int mWidgetId; + + private int mWidgetType; + + private long mFolderId; + + private Context mContext; + + private static final String TAG = "WorkingNote"; + + private boolean mIsDeleted; + + private NoteSettingChangedListener mNoteSettingStatusListener; + + public static final String[] DATA_PROJECTION = new String[] { + DataColumns.ID, + DataColumns.CONTENT, + DataColumns.MIME_TYPE, + DataColumns.DATA1, + DataColumns.DATA2, + DataColumns.DATA3, + DataColumns.DATA4, + }; + + public static final String[] NOTE_PROJECTION = new String[] { + NoteColumns.PARENT_ID, + NoteColumns.ALERTED_DATE, + NoteColumns.BG_COLOR_ID, + NoteColumns.WIDGET_ID, + NoteColumns.WIDGET_TYPE, + NoteColumns.MODIFIED_DATE + }; + + private static final int DATA_ID_COLUMN = 0; + + private static final int DATA_CONTENT_COLUMN = 1; + + private static final int DATA_MIME_TYPE_COLUMN = 2; + + private static final int DATA_MODE_COLUMN = 3; + + private static final int NOTE_PARENT_ID_COLUMN = 0; + + private static final int NOTE_ALERTED_DATE_COLUMN = 1; + + private static final int NOTE_BG_COLOR_ID_COLUMN = 2; + + private static final int NOTE_WIDGET_ID_COLUMN = 3; + + private static final int NOTE_WIDGET_TYPE_COLUMN = 4; + + private static final int NOTE_MODIFIED_DATE_COLUMN = 5; + + // New note construct + private WorkingNote(Context context, long folderId) { + mContext = context; + mAlertDate = 0; + mModifiedDate = System.currentTimeMillis(); + mFolderId = folderId; + mNote = new Note(); + mNoteId = 0; + mIsDeleted = false; + mMode = 0; + mWidgetType = Notes.TYPE_WIDGET_INVALIDE; + } + + // Existing note construct + private WorkingNote(Context context, long noteId, long folderId) { + mContext = context; + mNoteId = noteId; + mFolderId = folderId; + mIsDeleted = false; + mNote = new Note(); + loadNote(); + } + + private void loadNote() { + Cursor cursor = mContext.getContentResolver().query( + ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, mNoteId), NOTE_PROJECTION, null, + null, null); + + if (cursor != null) { + if (cursor.moveToFirst()) { + mFolderId = cursor.getLong(NOTE_PARENT_ID_COLUMN); + mBgColorId = cursor.getInt(NOTE_BG_COLOR_ID_COLUMN); + mWidgetId = cursor.getInt(NOTE_WIDGET_ID_COLUMN); + mWidgetType = cursor.getInt(NOTE_WIDGET_TYPE_COLUMN); + mAlertDate = cursor.getLong(NOTE_ALERTED_DATE_COLUMN); + mModifiedDate = cursor.getLong(NOTE_MODIFIED_DATE_COLUMN); + } + cursor.close(); + } else { + Log.e(TAG, "No note with id:" + mNoteId); + throw new IllegalArgumentException("Unable to find note with id " + mNoteId); + } + loadNoteData(); + } + + private void loadNoteData() { + Cursor cursor = mContext.getContentResolver().query(Notes.CONTENT_DATA_URI, DATA_PROJECTION, + DataColumns.NOTE_ID + "=?", new String[] { + String.valueOf(mNoteId) + }, null); + + if (cursor != null) { + if (cursor.moveToFirst()) { + do { + String type = cursor.getString(DATA_MIME_TYPE_COLUMN); + if (DataConstants.NOTE.equals(type)) { + mContent = cursor.getString(DATA_CONTENT_COLUMN); + mMode = cursor.getInt(DATA_MODE_COLUMN); + mNote.setTextDataId(cursor.getLong(DATA_ID_COLUMN)); + } else if (DataConstants.CALL_NOTE.equals(type)) { + mNote.setCallDataId(cursor.getLong(DATA_ID_COLUMN)); + } else { + Log.d(TAG, "Wrong note type with type:" + type); + } + } while (cursor.moveToNext()); + } + cursor.close(); + } else { + Log.e(TAG, "No data with id:" + mNoteId); + throw new IllegalArgumentException("Unable to find note's data with id " + mNoteId); + } + } + + public static WorkingNote createEmptyNote(Context context, long folderId, int widgetId, + int widgetType, int defaultBgColorId) { + WorkingNote note = new WorkingNote(context, folderId); + note.setBgColorId(defaultBgColorId); + note.setWidgetId(widgetId); + note.setWidgetType(widgetType); + return note; + } + + public static WorkingNote load(Context context, long id) { + return new WorkingNote(context, id, 0); + } + + public synchronized boolean saveNote() { + if (isWorthSaving()) { + if (!existInDatabase()) { + if ((mNoteId = Note.getNewNoteId(mContext, mFolderId)) == 0) { + Log.e(TAG, "Create new note fail with id:" + mNoteId); + return false; + } + } + + mNote.syncNote(mContext, mNoteId); + + /** + * Update widget content if there exist any widget of this note + */ + if (mWidgetId != AppWidgetManager.INVALID_APPWIDGET_ID + && mWidgetType != Notes.TYPE_WIDGET_INVALIDE + && mNoteSettingStatusListener != null) { + mNoteSettingStatusListener.onWidgetChanged(); + } + return true; + } else { + return false; + } + } + + public boolean existInDatabase() { + return mNoteId > 0; + } + + private boolean isWorthSaving() { + if (mIsDeleted || (!existInDatabase() && TextUtils.isEmpty(mContent)) + || (existInDatabase() && !mNote.isLocalModified())) { + return false; + } else { + return true; + } + } + + public void setOnSettingStatusChangedListener(NoteSettingChangedListener l) { + mNoteSettingStatusListener = l; + } + + public void setAlertDate(long date, boolean set) { + if (date != mAlertDate) { + mAlertDate = date; + mNote.setNoteValue(NoteColumns.ALERTED_DATE, String.valueOf(mAlertDate)); + } + if (mNoteSettingStatusListener != null) { + mNoteSettingStatusListener.onClockAlertChanged(date, set); + } + } + + public void markDeleted(boolean mark) { + mIsDeleted = mark; + if (mWidgetId != AppWidgetManager.INVALID_APPWIDGET_ID + && mWidgetType != Notes.TYPE_WIDGET_INVALIDE && mNoteSettingStatusListener != null) { + mNoteSettingStatusListener.onWidgetChanged(); + } + } + + public void setBgColorId(int id) { + if (id != mBgColorId) { + mBgColorId = id; + if (mNoteSettingStatusListener != null) { + mNoteSettingStatusListener.onBackgroundColorChanged(); + } + mNote.setNoteValue(NoteColumns.BG_COLOR_ID, String.valueOf(id)); + } + } + + public void setCheckListMode(int mode) { + if (mMode != mode) { + if (mNoteSettingStatusListener != null) { + mNoteSettingStatusListener.onCheckListModeChanged(mMode, mode); + } + mMode = mode; + mNote.setTextData(TextNote.MODE, String.valueOf(mMode)); + } + } + + public void setWidgetType(int type) { + if (type != mWidgetType) { + mWidgetType = type; + mNote.setNoteValue(NoteColumns.WIDGET_TYPE, String.valueOf(mWidgetType)); + } + } + + public void setWidgetId(int id) { + if (id != mWidgetId) { + mWidgetId = id; + mNote.setNoteValue(NoteColumns.WIDGET_ID, String.valueOf(mWidgetId)); + } + } + + public void setWorkingText(String text) { + if (!TextUtils.equals(mContent, text)) { + mContent = text; + mNote.setTextData(DataColumns.CONTENT, mContent); + } + } + + public void convertToCallNote(String phoneNumber, long callDate) { + mNote.setCallData(CallNote.CALL_DATE, String.valueOf(callDate)); + mNote.setCallData(CallNote.PHONE_NUMBER, phoneNumber); + mNote.setNoteValue(NoteColumns.PARENT_ID, String.valueOf(Notes.ID_CALL_RECORD_FOLDER)); + } + + public boolean hasClockAlert() { + return (mAlertDate > 0 ? true : false); + } + + public String getContent() { + return mContent; + } + + public long getAlertDate() { + return mAlertDate; + } + + public long getModifiedDate() { + return mModifiedDate; + } + + public int getBgColorResId() { + return NoteBgResources.getNoteBgResource(mBgColorId); + } + + public int getBgColorId() { + return mBgColorId; + } + + public int getTitleBgResId() { + return NoteBgResources.getNoteTitleBgResource(mBgColorId); + } + + public int getCheckListMode() { + return mMode; + } + + public long getNoteId() { + return mNoteId; + } + + public long getFolderId() { + return mFolderId; + } + + public int getWidgetId() { + return mWidgetId; + } + + public int getWidgetType() { + return mWidgetType; + } + + public interface NoteSettingChangedListener { + /** + * Called when the background color of current note has just changed + */ + void onBackgroundColorChanged(); + + /** + * Called when user set clock + */ + void onClockAlertChanged(long date, boolean set); + + /** + * Call when user create note from widget + */ + void onWidgetChanged(); + + /** + * Call when switch between check list mode and normal mode + * @param oldMode is previous mode before change + * @param newMode is new mode + */ + void onCheckListModeChanged(int oldMode, int newMode); + } +} diff --git a/app/src/main/java/net/micode/notes/tool/BackupUtils.java b/app/src/main/java/net/micode/notes/tool/BackupUtils.java new file mode 100644 index 0000000..39f6ec4 --- /dev/null +++ b/app/src/main/java/net/micode/notes/tool/BackupUtils.java @@ -0,0 +1,344 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.tool; + +import android.content.Context; +import android.database.Cursor; +import android.os.Environment; +import android.text.TextUtils; +import android.text.format.DateFormat; +import android.util.Log; + +import net.micode.notes.R; +import net.micode.notes.data.Notes; +import net.micode.notes.data.Notes.DataColumns; +import net.micode.notes.data.Notes.DataConstants; +import net.micode.notes.data.Notes.NoteColumns; + +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.PrintStream; + + +public class BackupUtils { + private static final String TAG = "BackupUtils"; + // Singleton stuff + private static BackupUtils sInstance; + + public static synchronized BackupUtils getInstance(Context context) { + if (sInstance == null) { + sInstance = new BackupUtils(context); + } + return sInstance; + } + + /** + * Following states are signs to represents backup or restore + * status + */ + // Currently, the sdcard is not mounted + public static final int STATE_SD_CARD_UNMOUONTED = 0; + // The backup file not exist + public static final int STATE_BACKUP_FILE_NOT_EXIST = 1; + // The data is not well formated, may be changed by other programs + public static final int STATE_DATA_DESTROIED = 2; + // Some run-time exception which causes restore or backup fails + public static final int STATE_SYSTEM_ERROR = 3; + // Backup or restore success + public static final int STATE_SUCCESS = 4; + + private TextExport mTextExport; + + private BackupUtils(Context context) { + mTextExport = new TextExport(context); + } + + private static boolean externalStorageAvailable() { + return Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState()); + } + + public int exportToText() { + return mTextExport.exportToText(); + } + + public String getExportedTextFileName() { + return mTextExport.mFileName; + } + + public String getExportedTextFileDir() { + return mTextExport.mFileDirectory; + } + + private static class TextExport { + private static final String[] NOTE_PROJECTION = { + NoteColumns.ID, + NoteColumns.MODIFIED_DATE, + NoteColumns.SNIPPET, + NoteColumns.TYPE + }; + + private static final int NOTE_COLUMN_ID = 0; + + private static final int NOTE_COLUMN_MODIFIED_DATE = 1; + + private static final int NOTE_COLUMN_SNIPPET = 2; + + private static final String[] DATA_PROJECTION = { + DataColumns.CONTENT, + DataColumns.MIME_TYPE, + DataColumns.DATA1, + DataColumns.DATA2, + DataColumns.DATA3, + DataColumns.DATA4, + }; + + private static final int DATA_COLUMN_CONTENT = 0; + + private static final int DATA_COLUMN_MIME_TYPE = 1; + + private static final int DATA_COLUMN_CALL_DATE = 2; + + private static final int DATA_COLUMN_PHONE_NUMBER = 4; + + private final String [] TEXT_FORMAT; + private static final int FORMAT_FOLDER_NAME = 0; + private static final int FORMAT_NOTE_DATE = 1; + private static final int FORMAT_NOTE_CONTENT = 2; + + private Context mContext; + private String mFileName; + private String mFileDirectory; + + public TextExport(Context context) { + TEXT_FORMAT = context.getResources().getStringArray(R.array.format_for_exported_note); + mContext = context; + mFileName = ""; + mFileDirectory = ""; + } + + private String getFormat(int id) { + return TEXT_FORMAT[id]; + } + + /** + * Export the folder identified by folder id to text + */ + private void exportFolderToText(String folderId, PrintStream ps) { + // Query notes belong to this folder + Cursor notesCursor = mContext.getContentResolver().query(Notes.CONTENT_NOTE_URI, + NOTE_PROJECTION, NoteColumns.PARENT_ID + "=?", new String[] { + folderId + }, null); + + if (notesCursor != null) { + if (notesCursor.moveToFirst()) { + do { + // Print note's last modified date + ps.println(String.format(getFormat(FORMAT_NOTE_DATE), DateFormat.format( + mContext.getString(R.string.format_datetime_mdhm), + notesCursor.getLong(NOTE_COLUMN_MODIFIED_DATE)))); + // Query data belong to this note + String noteId = notesCursor.getString(NOTE_COLUMN_ID); + exportNoteToText(noteId, ps); + } while (notesCursor.moveToNext()); + } + notesCursor.close(); + } + } + + /** + * Export note identified by id to a print stream + */ + private void exportNoteToText(String noteId, PrintStream ps) { + Cursor dataCursor = mContext.getContentResolver().query(Notes.CONTENT_DATA_URI, + DATA_PROJECTION, DataColumns.NOTE_ID + "=?", new String[] { + noteId + }, null); + + if (dataCursor != null) { + if (dataCursor.moveToFirst()) { + do { + String mimeType = dataCursor.getString(DATA_COLUMN_MIME_TYPE); + if (DataConstants.CALL_NOTE.equals(mimeType)) { + // Print phone number + String phoneNumber = dataCursor.getString(DATA_COLUMN_PHONE_NUMBER); + long callDate = dataCursor.getLong(DATA_COLUMN_CALL_DATE); + String location = dataCursor.getString(DATA_COLUMN_CONTENT); + + if (!TextUtils.isEmpty(phoneNumber)) { + ps.println(String.format(getFormat(FORMAT_NOTE_CONTENT), + phoneNumber)); + } + // Print call date + ps.println(String.format(getFormat(FORMAT_NOTE_CONTENT), DateFormat + .format(mContext.getString(R.string.format_datetime_mdhm), + callDate))); + // Print call attachment location + if (!TextUtils.isEmpty(location)) { + ps.println(String.format(getFormat(FORMAT_NOTE_CONTENT), + location)); + } + } else if (DataConstants.NOTE.equals(mimeType)) { + String content = dataCursor.getString(DATA_COLUMN_CONTENT); + if (!TextUtils.isEmpty(content)) { + ps.println(String.format(getFormat(FORMAT_NOTE_CONTENT), + content)); + } + } + } while (dataCursor.moveToNext()); + } + dataCursor.close(); + } + // print a line separator between note + try { + ps.write(new byte[] { + Character.LINE_SEPARATOR, Character.LETTER_NUMBER + }); + } catch (IOException e) { + Log.e(TAG, e.toString()); + } + } + + /** + * Note will be exported as text which is user readable + */ + public int exportToText() { + if (!externalStorageAvailable()) { + Log.d(TAG, "Media was not mounted"); + return STATE_SD_CARD_UNMOUONTED; + } + + PrintStream ps = getExportToTextPrintStream(); + if (ps == null) { + Log.e(TAG, "get print stream error"); + return STATE_SYSTEM_ERROR; + } + // First export folder and its notes + Cursor folderCursor = mContext.getContentResolver().query( + Notes.CONTENT_NOTE_URI, + NOTE_PROJECTION, + "(" + NoteColumns.TYPE + "=" + Notes.TYPE_FOLDER + " AND " + + NoteColumns.PARENT_ID + "<>" + Notes.ID_TRASH_FOLER + ") OR " + + NoteColumns.ID + "=" + Notes.ID_CALL_RECORD_FOLDER, null, null); + + if (folderCursor != null) { + if (folderCursor.moveToFirst()) { + do { + // Print folder's name + String folderName = ""; + if(folderCursor.getLong(NOTE_COLUMN_ID) == Notes.ID_CALL_RECORD_FOLDER) { + folderName = mContext.getString(R.string.call_record_folder_name); + } else { + folderName = folderCursor.getString(NOTE_COLUMN_SNIPPET); + } + if (!TextUtils.isEmpty(folderName)) { + ps.println(String.format(getFormat(FORMAT_FOLDER_NAME), folderName)); + } + String folderId = folderCursor.getString(NOTE_COLUMN_ID); + exportFolderToText(folderId, ps); + } while (folderCursor.moveToNext()); + } + folderCursor.close(); + } + + // Export notes in root's folder + Cursor noteCursor = mContext.getContentResolver().query( + Notes.CONTENT_NOTE_URI, + NOTE_PROJECTION, + NoteColumns.TYPE + "=" + +Notes.TYPE_NOTE + " AND " + NoteColumns.PARENT_ID + + "=0", null, null); + + if (noteCursor != null) { + if (noteCursor.moveToFirst()) { + do { + ps.println(String.format(getFormat(FORMAT_NOTE_DATE), DateFormat.format( + mContext.getString(R.string.format_datetime_mdhm), + noteCursor.getLong(NOTE_COLUMN_MODIFIED_DATE)))); + // Query data belong to this note + String noteId = noteCursor.getString(NOTE_COLUMN_ID); + exportNoteToText(noteId, ps); + } while (noteCursor.moveToNext()); + } + noteCursor.close(); + } + ps.close(); + + return STATE_SUCCESS; + } + + /** + * Get a print stream pointed to the file {@generateExportedTextFile} + */ + private PrintStream getExportToTextPrintStream() { + File file = generateFileMountedOnSDcard(mContext, R.string.file_path, + R.string.file_name_txt_format); + if (file == null) { + Log.e(TAG, "create file to exported failed"); + return null; + } + mFileName = file.getName(); + mFileDirectory = mContext.getString(R.string.file_path); + PrintStream ps = null; + try { + FileOutputStream fos = new FileOutputStream(file); + ps = new PrintStream(fos); + } catch (FileNotFoundException e) { + e.printStackTrace(); + return null; + } catch (NullPointerException e) { + e.printStackTrace(); + return null; + } + return ps; + } + } + + /** + * Generate the text file to store imported data + */ + private static File generateFileMountedOnSDcard(Context context, int filePathResId, int fileNameFormatResId) { + StringBuilder sb = new StringBuilder(); + sb.append(Environment.getExternalStorageDirectory()); + sb.append(context.getString(filePathResId)); + File filedir = new File(sb.toString()); + sb.append(context.getString( + fileNameFormatResId, + DateFormat.format(context.getString(R.string.format_date_ymd), + System.currentTimeMillis()))); + File file = new File(sb.toString()); + + try { + if (!filedir.exists()) { + filedir.mkdir(); + } + if (!file.exists()) { + file.createNewFile(); + } + return file; + } catch (SecurityException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + + return null; + } +} + + diff --git a/app/src/main/java/net/micode/notes/tool/DataUtils.java b/app/src/main/java/net/micode/notes/tool/DataUtils.java new file mode 100644 index 0000000..2a14982 --- /dev/null +++ b/app/src/main/java/net/micode/notes/tool/DataUtils.java @@ -0,0 +1,295 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.tool; + +import android.content.ContentProviderOperation; +import android.content.ContentProviderResult; +import android.content.ContentResolver; +import android.content.ContentUris; +import android.content.ContentValues; +import android.content.OperationApplicationException; +import android.database.Cursor; +import android.os.RemoteException; +import android.util.Log; + +import net.micode.notes.data.Notes; +import net.micode.notes.data.Notes.CallNote; +import net.micode.notes.data.Notes.NoteColumns; +import net.micode.notes.ui.NotesListAdapter.AppWidgetAttribute; + +import java.util.ArrayList; +import java.util.HashSet; + + +public class DataUtils { + public static final String TAG = "DataUtils"; + public static boolean batchDeleteNotes(ContentResolver resolver, HashSet ids) { + if (ids == null) { + Log.d(TAG, "the ids is null"); + return true; + } + if (ids.size() == 0) { + Log.d(TAG, "no id is in the hashset"); + return true; + } + + ArrayList operationList = new ArrayList(); + for (long id : ids) { + if(id == Notes.ID_ROOT_FOLDER) { + Log.e(TAG, "Don't delete system folder root"); + continue; + } + ContentProviderOperation.Builder builder = ContentProviderOperation + .newDelete(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, id)); + operationList.add(builder.build()); + } + try { + ContentProviderResult[] results = resolver.applyBatch(Notes.AUTHORITY, operationList); + if (results == null || results.length == 0 || results[0] == null) { + Log.d(TAG, "delete notes failed, ids:" + ids.toString()); + return false; + } + return true; + } catch (RemoteException e) { + Log.e(TAG, String.format("%s: %s", e.toString(), e.getMessage())); + } catch (OperationApplicationException e) { + Log.e(TAG, String.format("%s: %s", e.toString(), e.getMessage())); + } + return false; + } + + public static void moveNoteToFoler(ContentResolver resolver, long id, long srcFolderId, long desFolderId) { + ContentValues values = new ContentValues(); + values.put(NoteColumns.PARENT_ID, desFolderId); + values.put(NoteColumns.ORIGIN_PARENT_ID, srcFolderId); + values.put(NoteColumns.LOCAL_MODIFIED, 1); + resolver.update(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, id), values, null, null); + } + + public static boolean batchMoveToFolder(ContentResolver resolver, HashSet ids, + long folderId) { + if (ids == null) { + Log.d(TAG, "the ids is null"); + return true; + } + + ArrayList operationList = new ArrayList(); + for (long id : ids) { + ContentProviderOperation.Builder builder = ContentProviderOperation + .newUpdate(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, id)); + builder.withValue(NoteColumns.PARENT_ID, folderId); + builder.withValue(NoteColumns.LOCAL_MODIFIED, 1); + operationList.add(builder.build()); + } + + try { + ContentProviderResult[] results = resolver.applyBatch(Notes.AUTHORITY, operationList); + if (results == null || results.length == 0 || results[0] == null) { + Log.d(TAG, "delete notes failed, ids:" + ids.toString()); + return false; + } + return true; + } catch (RemoteException e) { + Log.e(TAG, String.format("%s: %s", e.toString(), e.getMessage())); + } catch (OperationApplicationException e) { + Log.e(TAG, String.format("%s: %s", e.toString(), e.getMessage())); + } + return false; + } + + /** + * Get the all folder count except system folders {@link Notes#TYPE_SYSTEM}} + */ + public static int getUserFolderCount(ContentResolver resolver) { + Cursor cursor =resolver.query(Notes.CONTENT_NOTE_URI, + new String[] { "COUNT(*)" }, + NoteColumns.TYPE + "=? AND " + NoteColumns.PARENT_ID + "<>?", + new String[] { String.valueOf(Notes.TYPE_FOLDER), String.valueOf(Notes.ID_TRASH_FOLER)}, + null); + + int count = 0; + if(cursor != null) { + if(cursor.moveToFirst()) { + try { + count = cursor.getInt(0); + } catch (IndexOutOfBoundsException e) { + Log.e(TAG, "get folder count failed:" + e.toString()); + } finally { + cursor.close(); + } + } + } + return count; + } + + public static boolean visibleInNoteDatabase(ContentResolver resolver, long noteId, int type) { + Cursor cursor = resolver.query(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, noteId), + null, + NoteColumns.TYPE + "=? AND " + NoteColumns.PARENT_ID + "<>" + Notes.ID_TRASH_FOLER, + new String [] {String.valueOf(type)}, + null); + + boolean exist = false; + if (cursor != null) { + if (cursor.getCount() > 0) { + exist = true; + } + cursor.close(); + } + return exist; + } + + public static boolean existInNoteDatabase(ContentResolver resolver, long noteId) { + Cursor cursor = resolver.query(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, noteId), + null, null, null, null); + + boolean exist = false; + if (cursor != null) { + if (cursor.getCount() > 0) { + exist = true; + } + cursor.close(); + } + return exist; + } + + public static boolean existInDataDatabase(ContentResolver resolver, long dataId) { + Cursor cursor = resolver.query(ContentUris.withAppendedId(Notes.CONTENT_DATA_URI, dataId), + null, null, null, null); + + boolean exist = false; + if (cursor != null) { + if (cursor.getCount() > 0) { + exist = true; + } + cursor.close(); + } + return exist; + } + + public static boolean checkVisibleFolderName(ContentResolver resolver, String name) { + Cursor cursor = resolver.query(Notes.CONTENT_NOTE_URI, null, + NoteColumns.TYPE + "=" + Notes.TYPE_FOLDER + + " AND " + NoteColumns.PARENT_ID + "<>" + Notes.ID_TRASH_FOLER + + " AND " + NoteColumns.SNIPPET + "=?", + new String[] { name }, null); + boolean exist = false; + if(cursor != null) { + if(cursor.getCount() > 0) { + exist = true; + } + cursor.close(); + } + return exist; + } + + public static HashSet getFolderNoteWidget(ContentResolver resolver, long folderId) { + Cursor c = resolver.query(Notes.CONTENT_NOTE_URI, + new String[] { NoteColumns.WIDGET_ID, NoteColumns.WIDGET_TYPE }, + NoteColumns.PARENT_ID + "=?", + new String[] { String.valueOf(folderId) }, + null); + + HashSet set = null; + if (c != null) { + if (c.moveToFirst()) { + set = new HashSet(); + do { + try { + AppWidgetAttribute widget = new AppWidgetAttribute(); + widget.widgetId = c.getInt(0); + widget.widgetType = c.getInt(1); + set.add(widget); + } catch (IndexOutOfBoundsException e) { + Log.e(TAG, e.toString()); + } + } while (c.moveToNext()); + } + c.close(); + } + return set; + } + + public static String getCallNumberByNoteId(ContentResolver resolver, long noteId) { + Cursor cursor = resolver.query(Notes.CONTENT_DATA_URI, + new String [] { CallNote.PHONE_NUMBER }, + CallNote.NOTE_ID + "=? AND " + CallNote.MIME_TYPE + "=?", + new String [] { String.valueOf(noteId), CallNote.CONTENT_ITEM_TYPE }, + null); + + if (cursor != null && cursor.moveToFirst()) { + try { + return cursor.getString(0); + } catch (IndexOutOfBoundsException e) { + Log.e(TAG, "Get call number fails " + e.toString()); + } finally { + cursor.close(); + } + } + return ""; + } + + public static long getNoteIdByPhoneNumberAndCallDate(ContentResolver resolver, String phoneNumber, long callDate) { + Cursor cursor = resolver.query(Notes.CONTENT_DATA_URI, + new String [] { CallNote.NOTE_ID }, + CallNote.CALL_DATE + "=? AND " + CallNote.MIME_TYPE + "=? AND PHONE_NUMBERS_EQUAL(" + + CallNote.PHONE_NUMBER + ",?)", + new String [] { String.valueOf(callDate), CallNote.CONTENT_ITEM_TYPE, phoneNumber }, + null); + + if (cursor != null) { + if (cursor.moveToFirst()) { + try { + return cursor.getLong(0); + } catch (IndexOutOfBoundsException e) { + Log.e(TAG, "Get call note id fails " + e.toString()); + } + } + cursor.close(); + } + return 0; + } + + public static String getSnippetById(ContentResolver resolver, long noteId) { + Cursor cursor = resolver.query(Notes.CONTENT_NOTE_URI, + new String [] { NoteColumns.SNIPPET }, + NoteColumns.ID + "=?", + new String [] { String.valueOf(noteId)}, + null); + + if (cursor != null) { + String snippet = ""; + if (cursor.moveToFirst()) { + snippet = cursor.getString(0); + } + cursor.close(); + return snippet; + } + throw new IllegalArgumentException("Note is not found with id: " + noteId); + } + + public static String getFormattedSnippet(String snippet) { + if (snippet != null) { + snippet = snippet.trim(); + int index = snippet.indexOf('\n'); + if (index != -1) { + snippet = snippet.substring(0, index); + } + } + return snippet; + } +} diff --git a/app/src/main/java/net/micode/notes/tool/GTaskStringUtils.java b/app/src/main/java/net/micode/notes/tool/GTaskStringUtils.java new file mode 100644 index 0000000..666b729 --- /dev/null +++ b/app/src/main/java/net/micode/notes/tool/GTaskStringUtils.java @@ -0,0 +1,113 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.tool; + +public class GTaskStringUtils { + + public final static String GTASK_JSON_ACTION_ID = "action_id"; + + public final static String GTASK_JSON_ACTION_LIST = "action_list"; + + public final static String GTASK_JSON_ACTION_TYPE = "action_type"; + + public final static String GTASK_JSON_ACTION_TYPE_CREATE = "create"; + + public final static String GTASK_JSON_ACTION_TYPE_GETALL = "get_all"; + + public final static String GTASK_JSON_ACTION_TYPE_MOVE = "move"; + + public final static String GTASK_JSON_ACTION_TYPE_UPDATE = "update"; + + public final static String GTASK_JSON_CREATOR_ID = "creator_id"; + + public final static String GTASK_JSON_CHILD_ENTITY = "child_entity"; + + public final static String GTASK_JSON_CLIENT_VERSION = "client_version"; + + public final static String GTASK_JSON_COMPLETED = "completed"; + + public final static String GTASK_JSON_CURRENT_LIST_ID = "current_list_id"; + + public final static String GTASK_JSON_DEFAULT_LIST_ID = "default_list_id"; + + public final static String GTASK_JSON_DELETED = "deleted"; + + public final static String GTASK_JSON_DEST_LIST = "dest_list"; + + public final static String GTASK_JSON_DEST_PARENT = "dest_parent"; + + public final static String GTASK_JSON_DEST_PARENT_TYPE = "dest_parent_type"; + + public final static String GTASK_JSON_ENTITY_DELTA = "entity_delta"; + + public final static String GTASK_JSON_ENTITY_TYPE = "entity_type"; + + public final static String GTASK_JSON_GET_DELETED = "get_deleted"; + + public final static String GTASK_JSON_ID = "id"; + + public final static String GTASK_JSON_INDEX = "index"; + + public final static String GTASK_JSON_LAST_MODIFIED = "last_modified"; + + public final static String GTASK_JSON_LATEST_SYNC_POINT = "latest_sync_point"; + + public final static String GTASK_JSON_LIST_ID = "list_id"; + + public final static String GTASK_JSON_LISTS = "lists"; + + public final static String GTASK_JSON_NAME = "name"; + + public final static String GTASK_JSON_NEW_ID = "new_id"; + + public final static String GTASK_JSON_NOTES = "notes"; + + public final static String GTASK_JSON_PARENT_ID = "parent_id"; + + public final static String GTASK_JSON_PRIOR_SIBLING_ID = "prior_sibling_id"; + + public final static String GTASK_JSON_RESULTS = "results"; + + public final static String GTASK_JSON_SOURCE_LIST = "source_list"; + + public final static String GTASK_JSON_TASKS = "tasks"; + + public final static String GTASK_JSON_TYPE = "type"; + + public final static String GTASK_JSON_TYPE_GROUP = "GROUP"; + + public final static String GTASK_JSON_TYPE_TASK = "TASK"; + + public final static String GTASK_JSON_USER = "user"; + + public final static String MIUI_FOLDER_PREFFIX = "[MIUI_Notes]"; + + public final static String FOLDER_DEFAULT = "Default"; + + public final static String FOLDER_CALL_NOTE = "Call_Note"; + + public final static String FOLDER_META = "METADATA"; + + public final static String META_HEAD_GTASK_ID = "meta_gid"; + + public final static String META_HEAD_NOTE = "meta_note"; + + public final static String META_HEAD_DATA = "meta_data"; + + public final static String META_NOTE_NAME = "[META INFO] DON'T UPDATE AND DELETE"; + +} diff --git a/app/src/main/java/net/micode/notes/tool/ResourceParser.java b/app/src/main/java/net/micode/notes/tool/ResourceParser.java new file mode 100644 index 0000000..1ad3ad6 --- /dev/null +++ b/app/src/main/java/net/micode/notes/tool/ResourceParser.java @@ -0,0 +1,181 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.tool; + +import android.content.Context; +import android.preference.PreferenceManager; + +import net.micode.notes.R; +import net.micode.notes.ui.NotesPreferenceActivity; + +public class ResourceParser { + + public static final int YELLOW = 0; + public static final int BLUE = 1; + public static final int WHITE = 2; + public static final int GREEN = 3; + public static final int RED = 4; + + public static final int BG_DEFAULT_COLOR = YELLOW; + + public static final int TEXT_SMALL = 0; + public static final int TEXT_MEDIUM = 1; + public static final int TEXT_LARGE = 2; + public static final int TEXT_SUPER = 3; + + public static final int BG_DEFAULT_FONT_SIZE = TEXT_MEDIUM; + + public static class NoteBgResources { + private final static int [] BG_EDIT_RESOURCES = new int [] { + R.drawable.edit_yellow, + R.drawable.edit_blue, + R.drawable.edit_white, + R.drawable.edit_green, + R.drawable.edit_red + }; + + private final static int [] BG_EDIT_TITLE_RESOURCES = new int [] { + R.drawable.edit_title_yellow, + R.drawable.edit_title_blue, + R.drawable.edit_title_white, + R.drawable.edit_title_green, + R.drawable.edit_title_red + }; + + public static int getNoteBgResource(int id) { + return BG_EDIT_RESOURCES[id]; + } + + public static int getNoteTitleBgResource(int id) { + return BG_EDIT_TITLE_RESOURCES[id]; + } + } + + public static int getDefaultBgId(Context context) { + if (PreferenceManager.getDefaultSharedPreferences(context).getBoolean( + NotesPreferenceActivity.PREFERENCE_SET_BG_COLOR_KEY, false)) { + return (int) (Math.random() * NoteBgResources.BG_EDIT_RESOURCES.length); + } else { + return BG_DEFAULT_COLOR; + } + } + + public static class NoteItemBgResources { + private final static int [] BG_FIRST_RESOURCES = new int [] { + R.drawable.list_yellow_up, + R.drawable.list_blue_up, + R.drawable.list_white_up, + R.drawable.list_green_up, + R.drawable.list_red_up + }; + + private final static int [] BG_NORMAL_RESOURCES = new int [] { + R.drawable.list_yellow_middle, + R.drawable.list_blue_middle, + R.drawable.list_white_middle, + R.drawable.list_green_middle, + R.drawable.list_red_middle + }; + + private final static int [] BG_LAST_RESOURCES = new int [] { + R.drawable.list_yellow_down, + R.drawable.list_blue_down, + R.drawable.list_white_down, + R.drawable.list_green_down, + R.drawable.list_red_down, + }; + + private final static int [] BG_SINGLE_RESOURCES = new int [] { + R.drawable.list_yellow_single, + R.drawable.list_blue_single, + R.drawable.list_white_single, + R.drawable.list_green_single, + R.drawable.list_red_single + }; + + public static int getNoteBgFirstRes(int id) { + return BG_FIRST_RESOURCES[id]; + } + + public static int getNoteBgLastRes(int id) { + return BG_LAST_RESOURCES[id]; + } + + public static int getNoteBgSingleRes(int id) { + return BG_SINGLE_RESOURCES[id]; + } + + public static int getNoteBgNormalRes(int id) { + return BG_NORMAL_RESOURCES[id]; + } + + public static int getFolderBgRes() { + return R.drawable.list_folder; + } + } + + public static class WidgetBgResources { + private final static int [] BG_2X_RESOURCES = new int [] { + R.drawable.widget_2x_yellow, + R.drawable.widget_2x_blue, + R.drawable.widget_2x_white, + R.drawable.widget_2x_green, + R.drawable.widget_2x_red, + }; + + public static int getWidget2xBgResource(int id) { + return BG_2X_RESOURCES[id]; + } + + private final static int [] BG_4X_RESOURCES = new int [] { + R.drawable.widget_4x_yellow, + R.drawable.widget_4x_blue, + R.drawable.widget_4x_white, + R.drawable.widget_4x_green, + R.drawable.widget_4x_red + }; + + public static int getWidget4xBgResource(int id) { + return BG_4X_RESOURCES[id]; + } + } + + public static class TextAppearanceResources { + private final static int [] TEXTAPPEARANCE_RESOURCES = new int [] { + R.style.TextAppearanceNormal, + R.style.TextAppearanceMedium, + R.style.TextAppearanceLarge, + R.style.TextAppearanceSuper + }; + + public static int getTexAppearanceResource(int id) { + /** + * HACKME: Fix bug of store the resource id in shared preference. + * The id may larger than the length of resources, in this case, + * return the {@link ResourceParser#BG_DEFAULT_FONT_SIZE} + */ + if (id >= TEXTAPPEARANCE_RESOURCES.length) { + return BG_DEFAULT_FONT_SIZE; + } + return TEXTAPPEARANCE_RESOURCES[id]; + } + + public static int getResourcesSize() { + return TEXTAPPEARANCE_RESOURCES.length; + } + } +} diff --git a/app/src/main/java/net/micode/notes/ui/AlarmAlertActivity.java b/app/src/main/java/net/micode/notes/ui/AlarmAlertActivity.java new file mode 100644 index 0000000..85723be --- /dev/null +++ b/app/src/main/java/net/micode/notes/ui/AlarmAlertActivity.java @@ -0,0 +1,158 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.ui; + +import android.app.Activity; +import android.app.AlertDialog; +import android.content.Context; +import android.content.DialogInterface; +import android.content.DialogInterface.OnClickListener; +import android.content.DialogInterface.OnDismissListener; +import android.content.Intent; +import android.media.AudioManager; +import android.media.MediaPlayer; +import android.media.RingtoneManager; +import android.net.Uri; +import android.os.Bundle; +import android.os.PowerManager; +import android.provider.Settings; +import android.view.Window; +import android.view.WindowManager; + +import net.micode.notes.R; +import net.micode.notes.data.Notes; +import net.micode.notes.tool.DataUtils; + +import java.io.IOException; + + +public class AlarmAlertActivity extends Activity implements OnClickListener, OnDismissListener { + private long mNoteId; + private String mSnippet; + private static final int SNIPPET_PREW_MAX_LEN = 60; + MediaPlayer mPlayer; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + requestWindowFeature(Window.FEATURE_NO_TITLE); + + final Window win = getWindow(); + win.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED); + + if (!isScreenOn()) { + win.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON + | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON + | WindowManager.LayoutParams.FLAG_ALLOW_LOCK_WHILE_SCREEN_ON + | WindowManager.LayoutParams.FLAG_LAYOUT_INSET_DECOR); + } + + Intent intent = getIntent(); + + try { + mNoteId = Long.valueOf(intent.getData().getPathSegments().get(1)); + mSnippet = DataUtils.getSnippetById(this.getContentResolver(), mNoteId); + mSnippet = mSnippet.length() > SNIPPET_PREW_MAX_LEN ? mSnippet.substring(0, + SNIPPET_PREW_MAX_LEN) + getResources().getString(R.string.notelist_string_info) + : mSnippet; + } catch (IllegalArgumentException e) { + e.printStackTrace(); + return; + } + + mPlayer = new MediaPlayer(); + if (DataUtils.visibleInNoteDatabase(getContentResolver(), mNoteId, Notes.TYPE_NOTE)) { + showActionDialog(); + playAlarmSound(); + } else { + finish(); + } + } + + private boolean isScreenOn() { + PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); + return pm.isScreenOn(); + } + + private void playAlarmSound() { + Uri url = RingtoneManager.getActualDefaultRingtoneUri(this, RingtoneManager.TYPE_ALARM); + + int silentModeStreams = Settings.System.getInt(getContentResolver(), + Settings.System.MODE_RINGER_STREAMS_AFFECTED, 0); + + if ((silentModeStreams & (1 << AudioManager.STREAM_ALARM)) != 0) { + mPlayer.setAudioStreamType(silentModeStreams); + } else { + mPlayer.setAudioStreamType(AudioManager.STREAM_ALARM); + } + try { + mPlayer.setDataSource(this, url); + mPlayer.prepare(); + mPlayer.setLooping(true); + mPlayer.start(); + } catch (IllegalArgumentException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (SecurityException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (IllegalStateException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + private void showActionDialog() { + AlertDialog.Builder dialog = new AlertDialog.Builder(this); + dialog.setTitle(R.string.app_name); + dialog.setMessage(mSnippet); + dialog.setPositiveButton(R.string.notealert_ok, this); + if (isScreenOn()) { + dialog.setNegativeButton(R.string.notealert_enter, this); + } + dialog.show().setOnDismissListener(this); + } + + public void onClick(DialogInterface dialog, int which) { + switch (which) { + case DialogInterface.BUTTON_NEGATIVE: + Intent intent = new Intent(this, NoteEditActivity.class); + intent.setAction(Intent.ACTION_VIEW); + intent.putExtra(Intent.EXTRA_UID, mNoteId); + startActivity(intent); + break; + default: + break; + } + } + + public void onDismiss(DialogInterface dialog) { + stopAlarmSound(); + finish(); + } + + private void stopAlarmSound() { + if (mPlayer != null) { + mPlayer.stop(); + mPlayer.release(); + mPlayer = null; + } + } +} diff --git a/app/src/main/java/net/micode/notes/ui/AlarmInitReceiver.java b/app/src/main/java/net/micode/notes/ui/AlarmInitReceiver.java new file mode 100644 index 0000000..f221202 --- /dev/null +++ b/app/src/main/java/net/micode/notes/ui/AlarmInitReceiver.java @@ -0,0 +1,65 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.ui; + +import android.app.AlarmManager; +import android.app.PendingIntent; +import android.content.BroadcastReceiver; +import android.content.ContentUris; +import android.content.Context; +import android.content.Intent; +import android.database.Cursor; + +import net.micode.notes.data.Notes; +import net.micode.notes.data.Notes.NoteColumns; + + +public class AlarmInitReceiver extends BroadcastReceiver { + + private static final String [] PROJECTION = new String [] { + NoteColumns.ID, + NoteColumns.ALERTED_DATE + }; + + private static final int COLUMN_ID = 0; + private static final int COLUMN_ALERTED_DATE = 1; + + @Override + public void onReceive(Context context, Intent intent) { + long currentDate = System.currentTimeMillis(); + Cursor c = context.getContentResolver().query(Notes.CONTENT_NOTE_URI, + PROJECTION, + NoteColumns.ALERTED_DATE + ">? AND " + NoteColumns.TYPE + "=" + Notes.TYPE_NOTE, + new String[] { String.valueOf(currentDate) }, + null); + + if (c != null) { + if (c.moveToFirst()) { + do { + long alertDate = c.getLong(COLUMN_ALERTED_DATE); + Intent sender = new Intent(context, AlarmReceiver.class); + sender.setData(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, c.getLong(COLUMN_ID))); + PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, sender, 0); + AlarmManager alermManager = (AlarmManager) context + .getSystemService(Context.ALARM_SERVICE); + alermManager.set(AlarmManager.RTC_WAKEUP, alertDate, pendingIntent); + } while (c.moveToNext()); + } + c.close(); + } + } +} diff --git a/app/src/main/java/net/micode/notes/ui/AlarmReceiver.java b/app/src/main/java/net/micode/notes/ui/AlarmReceiver.java new file mode 100644 index 0000000..54e503b --- /dev/null +++ b/app/src/main/java/net/micode/notes/ui/AlarmReceiver.java @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.ui; + +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; + +public class AlarmReceiver extends BroadcastReceiver { + @Override + public void onReceive(Context context, Intent intent) { + intent.setClass(context, AlarmAlertActivity.class); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + context.startActivity(intent); + } +} diff --git a/app/src/main/java/net/micode/notes/ui/DateTimePicker.java b/app/src/main/java/net/micode/notes/ui/DateTimePicker.java new file mode 100644 index 0000000..496b0cd --- /dev/null +++ b/app/src/main/java/net/micode/notes/ui/DateTimePicker.java @@ -0,0 +1,485 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.ui; + +import java.text.DateFormatSymbols; +import java.util.Calendar; + +import net.micode.notes.R; + + +import android.content.Context; +import android.text.format.DateFormat; +import android.view.View; +import android.widget.FrameLayout; +import android.widget.NumberPicker; + +public class DateTimePicker extends FrameLayout { + + private static final boolean DEFAULT_ENABLE_STATE = true; + + private static final int HOURS_IN_HALF_DAY = 12; + private static final int HOURS_IN_ALL_DAY = 24; + private static final int DAYS_IN_ALL_WEEK = 7; + private static final int DATE_SPINNER_MIN_VAL = 0; + private static final int DATE_SPINNER_MAX_VAL = DAYS_IN_ALL_WEEK - 1; + private static final int HOUR_SPINNER_MIN_VAL_24_HOUR_VIEW = 0; + private static final int HOUR_SPINNER_MAX_VAL_24_HOUR_VIEW = 23; + private static final int HOUR_SPINNER_MIN_VAL_12_HOUR_VIEW = 1; + private static final int HOUR_SPINNER_MAX_VAL_12_HOUR_VIEW = 12; + private static final int MINUT_SPINNER_MIN_VAL = 0; + private static final int MINUT_SPINNER_MAX_VAL = 59; + private static final int AMPM_SPINNER_MIN_VAL = 0; + private static final int AMPM_SPINNER_MAX_VAL = 1; + + private final NumberPicker mDateSpinner; + private final NumberPicker mHourSpinner; + private final NumberPicker mMinuteSpinner; + private final NumberPicker mAmPmSpinner; + private Calendar mDate; + + private String[] mDateDisplayValues = new String[DAYS_IN_ALL_WEEK]; + + private boolean mIsAm; + + private boolean mIs24HourView; + + private boolean mIsEnabled = DEFAULT_ENABLE_STATE; + + private boolean mInitialising; + + private OnDateTimeChangedListener mOnDateTimeChangedListener; + + private NumberPicker.OnValueChangeListener mOnDateChangedListener = new NumberPicker.OnValueChangeListener() { + @Override + public void onValueChange(NumberPicker picker, int oldVal, int newVal) { + mDate.add(Calendar.DAY_OF_YEAR, newVal - oldVal); + updateDateControl(); + onDateTimeChanged(); + } + }; + + private NumberPicker.OnValueChangeListener mOnHourChangedListener = new NumberPicker.OnValueChangeListener() { + @Override + public void onValueChange(NumberPicker picker, int oldVal, int newVal) { + boolean isDateChanged = false; + Calendar cal = Calendar.getInstance(); + if (!mIs24HourView) { + if (!mIsAm && oldVal == HOURS_IN_HALF_DAY - 1 && newVal == HOURS_IN_HALF_DAY) { + cal.setTimeInMillis(mDate.getTimeInMillis()); + cal.add(Calendar.DAY_OF_YEAR, 1); + isDateChanged = true; + } else if (mIsAm && oldVal == HOURS_IN_HALF_DAY && newVal == HOURS_IN_HALF_DAY - 1) { + cal.setTimeInMillis(mDate.getTimeInMillis()); + cal.add(Calendar.DAY_OF_YEAR, -1); + isDateChanged = true; + } + if (oldVal == HOURS_IN_HALF_DAY - 1 && newVal == HOURS_IN_HALF_DAY || + oldVal == HOURS_IN_HALF_DAY && newVal == HOURS_IN_HALF_DAY - 1) { + mIsAm = !mIsAm; + updateAmPmControl(); + } + } else { + if (oldVal == HOURS_IN_ALL_DAY - 1 && newVal == 0) { + cal.setTimeInMillis(mDate.getTimeInMillis()); + cal.add(Calendar.DAY_OF_YEAR, 1); + isDateChanged = true; + } else if (oldVal == 0 && newVal == HOURS_IN_ALL_DAY - 1) { + cal.setTimeInMillis(mDate.getTimeInMillis()); + cal.add(Calendar.DAY_OF_YEAR, -1); + isDateChanged = true; + } + } + int newHour = mHourSpinner.getValue() % HOURS_IN_HALF_DAY + (mIsAm ? 0 : HOURS_IN_HALF_DAY); + mDate.set(Calendar.HOUR_OF_DAY, newHour); + onDateTimeChanged(); + if (isDateChanged) { + setCurrentYear(cal.get(Calendar.YEAR)); + setCurrentMonth(cal.get(Calendar.MONTH)); + setCurrentDay(cal.get(Calendar.DAY_OF_MONTH)); + } + } + }; + + private NumberPicker.OnValueChangeListener mOnMinuteChangedListener = new NumberPicker.OnValueChangeListener() { + @Override + public void onValueChange(NumberPicker picker, int oldVal, int newVal) { + int minValue = mMinuteSpinner.getMinValue(); + int maxValue = mMinuteSpinner.getMaxValue(); + int offset = 0; + if (oldVal == maxValue && newVal == minValue) { + offset += 1; + } else if (oldVal == minValue && newVal == maxValue) { + offset -= 1; + } + if (offset != 0) { + mDate.add(Calendar.HOUR_OF_DAY, offset); + mHourSpinner.setValue(getCurrentHour()); + updateDateControl(); + int newHour = getCurrentHourOfDay(); + if (newHour >= HOURS_IN_HALF_DAY) { + mIsAm = false; + updateAmPmControl(); + } else { + mIsAm = true; + updateAmPmControl(); + } + } + mDate.set(Calendar.MINUTE, newVal); + onDateTimeChanged(); + } + }; + + private NumberPicker.OnValueChangeListener mOnAmPmChangedListener = new NumberPicker.OnValueChangeListener() { + @Override + public void onValueChange(NumberPicker picker, int oldVal, int newVal) { + mIsAm = !mIsAm; + if (mIsAm) { + mDate.add(Calendar.HOUR_OF_DAY, -HOURS_IN_HALF_DAY); + } else { + mDate.add(Calendar.HOUR_OF_DAY, HOURS_IN_HALF_DAY); + } + updateAmPmControl(); + onDateTimeChanged(); + } + }; + + public interface OnDateTimeChangedListener { + void onDateTimeChanged(DateTimePicker view, int year, int month, + int dayOfMonth, int hourOfDay, int minute); + } + + public DateTimePicker(Context context) { + this(context, System.currentTimeMillis()); + } + + public DateTimePicker(Context context, long date) { + this(context, date, DateFormat.is24HourFormat(context)); + } + + public DateTimePicker(Context context, long date, boolean is24HourView) { + super(context); + mDate = Calendar.getInstance(); + mInitialising = true; + mIsAm = getCurrentHourOfDay() >= HOURS_IN_HALF_DAY; + inflate(context, R.layout.datetime_picker, this); + + mDateSpinner = (NumberPicker) findViewById(R.id.date); + mDateSpinner.setMinValue(DATE_SPINNER_MIN_VAL); + mDateSpinner.setMaxValue(DATE_SPINNER_MAX_VAL); + mDateSpinner.setOnValueChangedListener(mOnDateChangedListener); + + mHourSpinner = (NumberPicker) findViewById(R.id.hour); + mHourSpinner.setOnValueChangedListener(mOnHourChangedListener); + mMinuteSpinner = (NumberPicker) findViewById(R.id.minute); + mMinuteSpinner.setMinValue(MINUT_SPINNER_MIN_VAL); + mMinuteSpinner.setMaxValue(MINUT_SPINNER_MAX_VAL); + mMinuteSpinner.setOnLongPressUpdateInterval(100); + mMinuteSpinner.setOnValueChangedListener(mOnMinuteChangedListener); + + String[] stringsForAmPm = new DateFormatSymbols().getAmPmStrings(); + mAmPmSpinner = (NumberPicker) findViewById(R.id.amPm); + mAmPmSpinner.setMinValue(AMPM_SPINNER_MIN_VAL); + mAmPmSpinner.setMaxValue(AMPM_SPINNER_MAX_VAL); + mAmPmSpinner.setDisplayedValues(stringsForAmPm); + mAmPmSpinner.setOnValueChangedListener(mOnAmPmChangedListener); + + // update controls to initial state + updateDateControl(); + updateHourControl(); + updateAmPmControl(); + + set24HourView(is24HourView); + + // set to current time + setCurrentDate(date); + + setEnabled(isEnabled()); + + // set the content descriptions + mInitialising = false; + } + + @Override + public void setEnabled(boolean enabled) { + if (mIsEnabled == enabled) { + return; + } + super.setEnabled(enabled); + mDateSpinner.setEnabled(enabled); + mMinuteSpinner.setEnabled(enabled); + mHourSpinner.setEnabled(enabled); + mAmPmSpinner.setEnabled(enabled); + mIsEnabled = enabled; + } + + @Override + public boolean isEnabled() { + return mIsEnabled; + } + + /** + * Get the current date in millis + * + * @return the current date in millis + */ + public long getCurrentDateInTimeMillis() { + return mDate.getTimeInMillis(); + } + + /** + * Set the current date + * + * @param date The current date in millis + */ + public void setCurrentDate(long date) { + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(date); + setCurrentDate(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), cal.get(Calendar.DAY_OF_MONTH), + cal.get(Calendar.HOUR_OF_DAY), cal.get(Calendar.MINUTE)); + } + + /** + * Set the current date + * + * @param year The current year + * @param month The current month + * @param dayOfMonth The current dayOfMonth + * @param hourOfDay The current hourOfDay + * @param minute The current minute + */ + public void setCurrentDate(int year, int month, + int dayOfMonth, int hourOfDay, int minute) { + setCurrentYear(year); + setCurrentMonth(month); + setCurrentDay(dayOfMonth); + setCurrentHour(hourOfDay); + setCurrentMinute(minute); + } + + /** + * Get current year + * + * @return The current year + */ + public int getCurrentYear() { + return mDate.get(Calendar.YEAR); + } + + /** + * Set current year + * + * @param year The current year + */ + public void setCurrentYear(int year) { + if (!mInitialising && year == getCurrentYear()) { + return; + } + mDate.set(Calendar.YEAR, year); + updateDateControl(); + onDateTimeChanged(); + } + + /** + * Get current month in the year + * + * @return The current month in the year + */ + public int getCurrentMonth() { + return mDate.get(Calendar.MONTH); + } + + /** + * Set current month in the year + * + * @param month The month in the year + */ + public void setCurrentMonth(int month) { + if (!mInitialising && month == getCurrentMonth()) { + return; + } + mDate.set(Calendar.MONTH, month); + updateDateControl(); + onDateTimeChanged(); + } + + /** + * Get current day of the month + * + * @return The day of the month + */ + public int getCurrentDay() { + return mDate.get(Calendar.DAY_OF_MONTH); + } + + /** + * Set current day of the month + * + * @param dayOfMonth The day of the month + */ + public void setCurrentDay(int dayOfMonth) { + if (!mInitialising && dayOfMonth == getCurrentDay()) { + return; + } + mDate.set(Calendar.DAY_OF_MONTH, dayOfMonth); + updateDateControl(); + onDateTimeChanged(); + } + + /** + * Get current hour in 24 hour mode, in the range (0~23) + * @return The current hour in 24 hour mode + */ + public int getCurrentHourOfDay() { + return mDate.get(Calendar.HOUR_OF_DAY); + } + + private int getCurrentHour() { + if (mIs24HourView){ + return getCurrentHourOfDay(); + } else { + int hour = getCurrentHourOfDay(); + if (hour > HOURS_IN_HALF_DAY) { + return hour - HOURS_IN_HALF_DAY; + } else { + return hour == 0 ? HOURS_IN_HALF_DAY : hour; + } + } + } + + /** + * Set current hour in 24 hour mode, in the range (0~23) + * + * @param hourOfDay + */ + public void setCurrentHour(int hourOfDay) { + if (!mInitialising && hourOfDay == getCurrentHourOfDay()) { + return; + } + mDate.set(Calendar.HOUR_OF_DAY, hourOfDay); + if (!mIs24HourView) { + if (hourOfDay >= HOURS_IN_HALF_DAY) { + mIsAm = false; + if (hourOfDay > HOURS_IN_HALF_DAY) { + hourOfDay -= HOURS_IN_HALF_DAY; + } + } else { + mIsAm = true; + if (hourOfDay == 0) { + hourOfDay = HOURS_IN_HALF_DAY; + } + } + updateAmPmControl(); + } + mHourSpinner.setValue(hourOfDay); + onDateTimeChanged(); + } + + /** + * Get currentMinute + * + * @return The Current Minute + */ + public int getCurrentMinute() { + return mDate.get(Calendar.MINUTE); + } + + /** + * Set current minute + */ + public void setCurrentMinute(int minute) { + if (!mInitialising && minute == getCurrentMinute()) { + return; + } + mMinuteSpinner.setValue(minute); + mDate.set(Calendar.MINUTE, minute); + onDateTimeChanged(); + } + + /** + * @return true if this is in 24 hour view else false. + */ + public boolean is24HourView () { + return mIs24HourView; + } + + /** + * Set whether in 24 hour or AM/PM mode. + * + * @param is24HourView True for 24 hour mode. False for AM/PM mode. + */ + public void set24HourView(boolean is24HourView) { + if (mIs24HourView == is24HourView) { + return; + } + mIs24HourView = is24HourView; + mAmPmSpinner.setVisibility(is24HourView ? View.GONE : View.VISIBLE); + int hour = getCurrentHourOfDay(); + updateHourControl(); + setCurrentHour(hour); + updateAmPmControl(); + } + + private void updateDateControl() { + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(mDate.getTimeInMillis()); + cal.add(Calendar.DAY_OF_YEAR, -DAYS_IN_ALL_WEEK / 2 - 1); + mDateSpinner.setDisplayedValues(null); + for (int i = 0; i < DAYS_IN_ALL_WEEK; ++i) { + cal.add(Calendar.DAY_OF_YEAR, 1); + mDateDisplayValues[i] = (String) DateFormat.format("MM.dd EEEE", cal); + } + mDateSpinner.setDisplayedValues(mDateDisplayValues); + mDateSpinner.setValue(DAYS_IN_ALL_WEEK / 2); + mDateSpinner.invalidate(); + } + + private void updateAmPmControl() { + if (mIs24HourView) { + mAmPmSpinner.setVisibility(View.GONE); + } else { + int index = mIsAm ? Calendar.AM : Calendar.PM; + mAmPmSpinner.setValue(index); + mAmPmSpinner.setVisibility(View.VISIBLE); + } + } + + private void updateHourControl() { + if (mIs24HourView) { + mHourSpinner.setMinValue(HOUR_SPINNER_MIN_VAL_24_HOUR_VIEW); + mHourSpinner.setMaxValue(HOUR_SPINNER_MAX_VAL_24_HOUR_VIEW); + } else { + mHourSpinner.setMinValue(HOUR_SPINNER_MIN_VAL_12_HOUR_VIEW); + mHourSpinner.setMaxValue(HOUR_SPINNER_MAX_VAL_12_HOUR_VIEW); + } + } + + /** + * Set the callback that indicates the 'Set' button has been pressed. + * @param callback the callback, if null will do nothing + */ + public void setOnDateTimeChangedListener(OnDateTimeChangedListener callback) { + mOnDateTimeChangedListener = callback; + } + + private void onDateTimeChanged() { + if (mOnDateTimeChangedListener != null) { + mOnDateTimeChangedListener.onDateTimeChanged(this, getCurrentYear(), + getCurrentMonth(), getCurrentDay(), getCurrentHourOfDay(), getCurrentMinute()); + } + } +} diff --git a/app/src/main/java/net/micode/notes/ui/DateTimePickerDialog.java b/app/src/main/java/net/micode/notes/ui/DateTimePickerDialog.java new file mode 100644 index 0000000..2c47ba4 --- /dev/null +++ b/app/src/main/java/net/micode/notes/ui/DateTimePickerDialog.java @@ -0,0 +1,90 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.ui; + +import java.util.Calendar; + +import net.micode.notes.R; +import net.micode.notes.ui.DateTimePicker; +import net.micode.notes.ui.DateTimePicker.OnDateTimeChangedListener; + +import android.app.AlertDialog; +import android.content.Context; +import android.content.DialogInterface; +import android.content.DialogInterface.OnClickListener; +import android.text.format.DateFormat; +import android.text.format.DateUtils; + +public class DateTimePickerDialog extends AlertDialog implements OnClickListener { + + private Calendar mDate = Calendar.getInstance(); + private boolean mIs24HourView; + private OnDateTimeSetListener mOnDateTimeSetListener; + private DateTimePicker mDateTimePicker; + + public interface OnDateTimeSetListener { + void OnDateTimeSet(AlertDialog dialog, long date); + } + + public DateTimePickerDialog(Context context, long date) { + super(context); + mDateTimePicker = new DateTimePicker(context); + setView(mDateTimePicker); + mDateTimePicker.setOnDateTimeChangedListener(new OnDateTimeChangedListener() { + public void onDateTimeChanged(DateTimePicker view, int year, int month, + int dayOfMonth, int hourOfDay, int minute) { + mDate.set(Calendar.YEAR, year); + mDate.set(Calendar.MONTH, month); + mDate.set(Calendar.DAY_OF_MONTH, dayOfMonth); + mDate.set(Calendar.HOUR_OF_DAY, hourOfDay); + mDate.set(Calendar.MINUTE, minute); + updateTitle(mDate.getTimeInMillis()); + } + }); + mDate.setTimeInMillis(date); + mDate.set(Calendar.SECOND, 0); + mDateTimePicker.setCurrentDate(mDate.getTimeInMillis()); + setButton(context.getString(R.string.datetime_dialog_ok), this); + setButton2(context.getString(R.string.datetime_dialog_cancel), (OnClickListener)null); + set24HourView(DateFormat.is24HourFormat(this.getContext())); + updateTitle(mDate.getTimeInMillis()); + } + + public void set24HourView(boolean is24HourView) { + mIs24HourView = is24HourView; + } + + public void setOnDateTimeSetListener(OnDateTimeSetListener callBack) { + mOnDateTimeSetListener = callBack; + } + + private void updateTitle(long date) { + int flag = + DateUtils.FORMAT_SHOW_YEAR | + DateUtils.FORMAT_SHOW_DATE | + DateUtils.FORMAT_SHOW_TIME; + flag |= mIs24HourView ? DateUtils.FORMAT_24HOUR : DateUtils.FORMAT_24HOUR; + setTitle(DateUtils.formatDateTime(this.getContext(), date, flag)); + } + + public void onClick(DialogInterface arg0, int arg1) { + if (mOnDateTimeSetListener != null) { + mOnDateTimeSetListener.OnDateTimeSet(this, mDate.getTimeInMillis()); + } + } + +} \ No newline at end of file diff --git a/app/src/main/java/net/micode/notes/ui/DropdownMenu.java b/app/src/main/java/net/micode/notes/ui/DropdownMenu.java new file mode 100644 index 0000000..613dc74 --- /dev/null +++ b/app/src/main/java/net/micode/notes/ui/DropdownMenu.java @@ -0,0 +1,61 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.ui; + +import android.content.Context; +import android.view.Menu; +import android.view.MenuItem; +import android.view.View; +import android.view.View.OnClickListener; +import android.widget.Button; +import android.widget.PopupMenu; +import android.widget.PopupMenu.OnMenuItemClickListener; + +import net.micode.notes.R; + +public class DropdownMenu { + private Button mButton; + private PopupMenu mPopupMenu; + private Menu mMenu; + + public DropdownMenu(Context context, Button button, int menuId) { + mButton = button; + mButton.setBackgroundResource(R.drawable.dropdown_icon); + mPopupMenu = new PopupMenu(context, mButton); + mMenu = mPopupMenu.getMenu(); + mPopupMenu.getMenuInflater().inflate(menuId, mMenu); + mButton.setOnClickListener(new OnClickListener() { + public void onClick(View v) { + mPopupMenu.show(); + } + }); + } + + public void setOnDropdownMenuItemClickListener(OnMenuItemClickListener listener) { + if (mPopupMenu != null) { + mPopupMenu.setOnMenuItemClickListener(listener); + } + } + + public MenuItem findItem(int id) { + return mMenu.findItem(id); + } + + public void setTitle(CharSequence title) { + mButton.setText(title); + } +} diff --git a/app/src/main/java/net/micode/notes/ui/FoldersListAdapter.java b/app/src/main/java/net/micode/notes/ui/FoldersListAdapter.java new file mode 100644 index 0000000..96b77da --- /dev/null +++ b/app/src/main/java/net/micode/notes/ui/FoldersListAdapter.java @@ -0,0 +1,80 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.ui; + +import android.content.Context; +import android.database.Cursor; +import android.view.View; +import android.view.ViewGroup; +import android.widget.CursorAdapter; +import android.widget.LinearLayout; +import android.widget.TextView; + +import net.micode.notes.R; +import net.micode.notes.data.Notes; +import net.micode.notes.data.Notes.NoteColumns; + + +public class FoldersListAdapter extends CursorAdapter { + public static final String [] PROJECTION = { + NoteColumns.ID, + NoteColumns.SNIPPET + }; + + public static final int ID_COLUMN = 0; + public static final int NAME_COLUMN = 1; + + public FoldersListAdapter(Context context, Cursor c) { + super(context, c); + // TODO Auto-generated constructor stub + } + + @Override + public View newView(Context context, Cursor cursor, ViewGroup parent) { + return new FolderListItem(context); + } + + @Override + public void bindView(View view, Context context, Cursor cursor) { + if (view instanceof FolderListItem) { + String folderName = (cursor.getLong(ID_COLUMN) == Notes.ID_ROOT_FOLDER) ? context + .getString(R.string.menu_move_parent_folder) : cursor.getString(NAME_COLUMN); + ((FolderListItem) view).bind(folderName); + } + } + + public String getFolderName(Context context, int position) { + Cursor cursor = (Cursor) getItem(position); + return (cursor.getLong(ID_COLUMN) == Notes.ID_ROOT_FOLDER) ? context + .getString(R.string.menu_move_parent_folder) : cursor.getString(NAME_COLUMN); + } + + private class FolderListItem extends LinearLayout { + private TextView mName; + + public FolderListItem(Context context) { + super(context); + inflate(context, R.layout.folder_list_item, this); + mName = (TextView) findViewById(R.id.tv_folder_name); + } + + public void bind(String name) { + mName.setText(name); + } + } + +} diff --git a/app/src/main/java/net/micode/notes/ui/NoteEditActivity.java b/app/src/main/java/net/micode/notes/ui/NoteEditActivity.java new file mode 100644 index 0000000..0bbc25d --- /dev/null +++ b/app/src/main/java/net/micode/notes/ui/NoteEditActivity.java @@ -0,0 +1,878 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.ui; + +import android.app.Activity; +import android.app.AlarmManager; +import android.app.AlertDialog; +import android.app.PendingIntent; +import android.app.SearchManager; +import android.appwidget.AppWidgetManager; +import android.content.ContentUris; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.SharedPreferences; +import android.graphics.Paint; +import android.os.Bundle; +import android.preference.PreferenceManager; +import android.text.Spannable; +import android.text.SpannableString; +import android.text.TextUtils; +import android.text.format.DateUtils; +import android.text.style.BackgroundColorSpan; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuItem; +import android.view.MotionEvent; +import android.view.View; +import android.view.View.OnClickListener; +import android.view.WindowManager; +import android.widget.CheckBox; +import android.widget.CompoundButton; +import android.widget.CompoundButton.OnCheckedChangeListener; +import android.widget.EditText; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.TextView; +import android.widget.Toast; + +import net.micode.notes.R; +import net.micode.notes.data.Notes; +import net.micode.notes.data.Notes.TextNote; +import net.micode.notes.model.WorkingNote; +import net.micode.notes.model.WorkingNote.NoteSettingChangedListener; +import net.micode.notes.tool.DataUtils; +import net.micode.notes.tool.ResourceParser; +import net.micode.notes.tool.ResourceParser.TextAppearanceResources; +import net.micode.notes.ui.DateTimePickerDialog.OnDateTimeSetListener; +import net.micode.notes.ui.NoteEditText.OnTextViewChangeListener; +import net.micode.notes.widget.NoteWidgetProvider_2x; +import net.micode.notes.widget.NoteWidgetProvider_4x; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + + +public class NoteEditActivity extends Activity implements OnClickListener, + NoteSettingChangedListener, OnTextViewChangeListener { + private class HeadViewHolder { + public TextView tvModified; + + public ImageView ivAlertIcon; + + public TextView tvAlertDate; + + public ImageView ibSetBgColor; + } + + private static final Map sBgSelectorBtnsMap = new HashMap(); + static { + sBgSelectorBtnsMap.put(R.id.iv_bg_yellow, ResourceParser.YELLOW); + sBgSelectorBtnsMap.put(R.id.iv_bg_red, ResourceParser.RED); + sBgSelectorBtnsMap.put(R.id.iv_bg_blue, ResourceParser.BLUE); + sBgSelectorBtnsMap.put(R.id.iv_bg_green, ResourceParser.GREEN); + sBgSelectorBtnsMap.put(R.id.iv_bg_white, ResourceParser.WHITE); + } + + private static final Map sBgSelectorSelectionMap = new HashMap(); + static { + sBgSelectorSelectionMap.put(ResourceParser.YELLOW, R.id.iv_bg_yellow_select); + sBgSelectorSelectionMap.put(ResourceParser.RED, R.id.iv_bg_red_select); + sBgSelectorSelectionMap.put(ResourceParser.BLUE, R.id.iv_bg_blue_select); + sBgSelectorSelectionMap.put(ResourceParser.GREEN, R.id.iv_bg_green_select); + sBgSelectorSelectionMap.put(ResourceParser.WHITE, R.id.iv_bg_white_select); + } + + private static final Map sFontSizeBtnsMap = new HashMap(); + static { + sFontSizeBtnsMap.put(R.id.ll_font_large, ResourceParser.TEXT_LARGE); + sFontSizeBtnsMap.put(R.id.ll_font_small, ResourceParser.TEXT_SMALL); + sFontSizeBtnsMap.put(R.id.ll_font_normal, ResourceParser.TEXT_MEDIUM); + sFontSizeBtnsMap.put(R.id.ll_font_super, ResourceParser.TEXT_SUPER); + } + + private static final Map sFontSelectorSelectionMap = new HashMap(); + static { + sFontSelectorSelectionMap.put(ResourceParser.TEXT_LARGE, R.id.iv_large_select); + sFontSelectorSelectionMap.put(ResourceParser.TEXT_SMALL, R.id.iv_small_select); + sFontSelectorSelectionMap.put(ResourceParser.TEXT_MEDIUM, R.id.iv_medium_select); + sFontSelectorSelectionMap.put(ResourceParser.TEXT_SUPER, R.id.iv_super_select); + } + + private static final String TAG = "NoteEditActivity"; + + private HeadViewHolder mNoteHeaderHolder; + + private View mHeadViewPanel; + + private View mNoteBgColorSelector; + + private View mFontSizeSelector; + + private EditText mNoteEditor; + + private View mNoteEditorPanel; + + private WorkingNote mWorkingNote; + + private SharedPreferences mSharedPrefs; + private int mFontSizeId; + + private static final String PREFERENCE_FONT_SIZE = "pref_font_size"; + + private static final int SHORTCUT_ICON_TITLE_MAX_LEN = 10; + + public static final String TAG_CHECKED = String.valueOf('\u221A'); + public static final String TAG_UNCHECKED = String.valueOf('\u25A1'); + + private LinearLayout mEditTextList; + + private String mUserQuery; + private Pattern mPattern; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + this.setContentView(R.layout.note_edit); + + if (savedInstanceState == null && !initActivityState(getIntent())) { + finish(); + return; + } + initResources(); + } + + /** + * Current activity may be killed when the memory is low. Once it is killed, for another time + * user load this activity, we should restore the former state + */ + @Override + protected void onRestoreInstanceState(Bundle savedInstanceState) { + super.onRestoreInstanceState(savedInstanceState); + if (savedInstanceState != null && savedInstanceState.containsKey(Intent.EXTRA_UID)) { + Intent intent = new Intent(Intent.ACTION_VIEW); + intent.putExtra(Intent.EXTRA_UID, savedInstanceState.getLong(Intent.EXTRA_UID)); + if (!initActivityState(intent)) { + finish(); + return; + } + Log.d(TAG, "Restoring from killed activity"); + } + } + + private boolean initActivityState(Intent intent) { + /** + * If the user specified the {@link Intent#ACTION_VIEW} but not provided with id, + * then jump to the NotesListActivity + */ + mWorkingNote = null; + if (TextUtils.equals(Intent.ACTION_VIEW, intent.getAction())) { + long noteId = intent.getLongExtra(Intent.EXTRA_UID, 0); + mUserQuery = ""; + + /** + * Starting from the searched result + */ + if (intent.hasExtra(SearchManager.EXTRA_DATA_KEY)) { + noteId = Long.parseLong(intent.getStringExtra(SearchManager.EXTRA_DATA_KEY)); + mUserQuery = intent.getStringExtra(SearchManager.USER_QUERY); + } + + if (!DataUtils.visibleInNoteDatabase(getContentResolver(), noteId, Notes.TYPE_NOTE)) { + Intent jump = new Intent(this, NotesListActivity.class); + startActivity(jump); + showToast(R.string.error_note_not_exist); + finish(); + return false; + } else { + mWorkingNote = WorkingNote.load(this, noteId); + if (mWorkingNote == null) { + Log.e(TAG, "load note failed with note id" + noteId); + finish(); + return false; + } + } + getWindow().setSoftInputMode( + WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN + | WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE); + } else if(TextUtils.equals(Intent.ACTION_INSERT_OR_EDIT, intent.getAction())) { + // New note + long folderId = intent.getLongExtra(Notes.INTENT_EXTRA_FOLDER_ID, 0); + int widgetId = intent.getIntExtra(Notes.INTENT_EXTRA_WIDGET_ID, + AppWidgetManager.INVALID_APPWIDGET_ID); + int widgetType = intent.getIntExtra(Notes.INTENT_EXTRA_WIDGET_TYPE, + Notes.TYPE_WIDGET_INVALIDE); + int bgResId = intent.getIntExtra(Notes.INTENT_EXTRA_BACKGROUND_ID, + ResourceParser.getDefaultBgId(this)); + + // Parse call-record note + String phoneNumber = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER); + long callDate = intent.getLongExtra(Notes.INTENT_EXTRA_CALL_DATE, 0); + if (callDate != 0 && phoneNumber != null) { + if (TextUtils.isEmpty(phoneNumber)) { + Log.w(TAG, "The call record number is null"); + } + long noteId = 0; + if ((noteId = DataUtils.getNoteIdByPhoneNumberAndCallDate(getContentResolver(), + phoneNumber, callDate)) > 0) { + mWorkingNote = WorkingNote.load(this, noteId); + if (mWorkingNote == null) { + Log.e(TAG, "load call note failed with note id" + noteId); + finish(); + return false; + } + } else { + mWorkingNote = WorkingNote.createEmptyNote(this, folderId, widgetId, + widgetType, bgResId); + mWorkingNote.convertToCallNote(phoneNumber, callDate); + } + } else { + mWorkingNote = WorkingNote.createEmptyNote(this, folderId, widgetId, widgetType, + bgResId); + } + + getWindow().setSoftInputMode( + WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE + | WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE); + } else { + Log.e(TAG, "Intent not specified action, should not support"); + finish(); + return false; + } + mWorkingNote.setOnSettingStatusChangedListener(this); + return true; + } + + @Override + protected void onResume() { + super.onResume(); + initNoteScreen(); + } + + private void initNoteScreen() { + mNoteEditor.setTextAppearance(this, TextAppearanceResources + .getTexAppearanceResource(mFontSizeId)); + if (mWorkingNote.getCheckListMode() == TextNote.MODE_CHECK_LIST) { + switchToListMode(mWorkingNote.getContent()); + } else { + mNoteEditor.setText(getHighlightQueryResult(mWorkingNote.getContent(), mUserQuery)); + mNoteEditor.setSelection(mNoteEditor.getText().length()); + } + for (Integer id : sBgSelectorSelectionMap.keySet()) { + findViewById(sBgSelectorSelectionMap.get(id)).setVisibility(View.GONE); + } + mHeadViewPanel.setBackgroundResource(mWorkingNote.getTitleBgResId()); + mNoteEditorPanel.setBackgroundResource(mWorkingNote.getBgColorResId()); + + mNoteHeaderHolder.tvModified.setText(DateUtils.formatDateTime(this, + mWorkingNote.getModifiedDate(), DateUtils.FORMAT_SHOW_DATE + | DateUtils.FORMAT_NUMERIC_DATE | DateUtils.FORMAT_SHOW_TIME + | DateUtils.FORMAT_SHOW_YEAR)); + + /** + * TODO: Add the menu for setting alert. Currently disable it because the DateTimePicker + * is not ready + */ + showAlertHeader(); + } + + private void showAlertHeader() { + if (mWorkingNote.hasClockAlert()) { + long time = System.currentTimeMillis(); + if (time > mWorkingNote.getAlertDate()) { + mNoteHeaderHolder.tvAlertDate.setText(R.string.note_alert_expired); + } else { + mNoteHeaderHolder.tvAlertDate.setText(DateUtils.getRelativeTimeSpanString( + mWorkingNote.getAlertDate(), time, DateUtils.MINUTE_IN_MILLIS)); + } + mNoteHeaderHolder.tvAlertDate.setVisibility(View.VISIBLE); + mNoteHeaderHolder.ivAlertIcon.setVisibility(View.VISIBLE); + } else { + mNoteHeaderHolder.tvAlertDate.setVisibility(View.GONE); + mNoteHeaderHolder.ivAlertIcon.setVisibility(View.GONE); + }; + } + + @Override + protected void onNewIntent(Intent intent) { + super.onNewIntent(intent); + initActivityState(intent); + } + + @Override + protected void onSaveInstanceState(Bundle outState) { + super.onSaveInstanceState(outState); + /** + * For new note without note id, we should firstly save it to + * generate a id. If the editing note is not worth saving, there + * is no id which is equivalent to create new note + */ + if (!mWorkingNote.existInDatabase()) { + saveNote(); + } + outState.putLong(Intent.EXTRA_UID, mWorkingNote.getNoteId()); + Log.d(TAG, "Save working note id: " + mWorkingNote.getNoteId() + " onSaveInstanceState"); + } + + @Override + public boolean dispatchTouchEvent(MotionEvent ev) { + if (mNoteBgColorSelector.getVisibility() == View.VISIBLE + && !inRangeOfView(mNoteBgColorSelector, ev)) { + mNoteBgColorSelector.setVisibility(View.GONE); + return true; + } + + if (mFontSizeSelector.getVisibility() == View.VISIBLE + && !inRangeOfView(mFontSizeSelector, ev)) { + mFontSizeSelector.setVisibility(View.GONE); + return true; + } + return super.dispatchTouchEvent(ev); + } + + private boolean inRangeOfView(View view, MotionEvent ev) { + int []location = new int[2]; + view.getLocationOnScreen(location); + int x = location[0]; + int y = location[1]; + if (ev.getX() < x + || ev.getX() > (x + view.getWidth()) + || ev.getY() < y + || ev.getY() > (y + view.getHeight())) { + return false; + } + return true; + } + + private void initResources() { + mHeadViewPanel = findViewById(R.id.note_title); + mNoteHeaderHolder = new HeadViewHolder(); + mNoteHeaderHolder.tvModified = (TextView) findViewById(R.id.tv_modified_date); + mNoteHeaderHolder.ivAlertIcon = (ImageView) findViewById(R.id.iv_alert_icon); + mNoteHeaderHolder.tvAlertDate = (TextView) findViewById(R.id.tv_alert_date); + mNoteHeaderHolder.ibSetBgColor = (ImageView) findViewById(R.id.btn_set_bg_color); + mNoteHeaderHolder.ibSetBgColor.setOnClickListener(this); + mNoteEditor = (EditText) findViewById(R.id.note_edit_view); + mNoteEditorPanel = findViewById(R.id.sv_note_edit); + mNoteBgColorSelector = findViewById(R.id.note_bg_color_selector); + for (int id : sBgSelectorBtnsMap.keySet()) { + ImageView iv = (ImageView) findViewById(id); + iv.setOnClickListener(this); + } + + mFontSizeSelector = findViewById(R.id.font_size_selector); + for (int id : sFontSizeBtnsMap.keySet()) { + View view = findViewById(id); + view.setOnClickListener(this); + }; + mSharedPrefs = PreferenceManager.getDefaultSharedPreferences(this); + mFontSizeId = mSharedPrefs.getInt(PREFERENCE_FONT_SIZE, ResourceParser.BG_DEFAULT_FONT_SIZE); + /** + * HACKME: Fix bug of store the resource id in shared preference. + * The id may larger than the length of resources, in this case, + * return the {@link ResourceParser#BG_DEFAULT_FONT_SIZE} + */ + if(mFontSizeId >= TextAppearanceResources.getResourcesSize()) { + mFontSizeId = ResourceParser.BG_DEFAULT_FONT_SIZE; + } + mEditTextList = (LinearLayout) findViewById(R.id.note_edit_list); + } + + @Override + protected void onPause() { + super.onPause(); + if(saveNote()) { + Log.d(TAG, "Note data was saved with length:" + mWorkingNote.getContent().length()); + } + clearSettingState(); + } + + private void updateWidget() { + Intent intent = new Intent(AppWidgetManager.ACTION_APPWIDGET_UPDATE); + if (mWorkingNote.getWidgetType() == Notes.TYPE_WIDGET_2X) { + intent.setClass(this, NoteWidgetProvider_2x.class); + } else if (mWorkingNote.getWidgetType() == Notes.TYPE_WIDGET_4X) { + intent.setClass(this, NoteWidgetProvider_4x.class); + } else { + Log.e(TAG, "Unspported widget type"); + return; + } + + intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, new int[] { + mWorkingNote.getWidgetId() + }); + + sendBroadcast(intent); + setResult(RESULT_OK, intent); + } + + public void onClick(View v) { + int id = v.getId(); + if (id == R.id.btn_set_bg_color) { + mNoteBgColorSelector.setVisibility(View.VISIBLE); + findViewById(sBgSelectorSelectionMap.get(mWorkingNote.getBgColorId())).setVisibility( + - View.VISIBLE); + } else if (sBgSelectorBtnsMap.containsKey(id)) { + findViewById(sBgSelectorSelectionMap.get(mWorkingNote.getBgColorId())).setVisibility( + View.GONE); + mWorkingNote.setBgColorId(sBgSelectorBtnsMap.get(id)); + mNoteBgColorSelector.setVisibility(View.GONE); + } else if (sFontSizeBtnsMap.containsKey(id)) { + findViewById(sFontSelectorSelectionMap.get(mFontSizeId)).setVisibility(View.GONE); + mFontSizeId = sFontSizeBtnsMap.get(id); + mSharedPrefs.edit().putInt(PREFERENCE_FONT_SIZE, mFontSizeId).commit(); + findViewById(sFontSelectorSelectionMap.get(mFontSizeId)).setVisibility(View.VISIBLE); + if (mWorkingNote.getCheckListMode() == TextNote.MODE_CHECK_LIST) { + getWorkingText(); + switchToListMode(mWorkingNote.getContent()); + } else { + mNoteEditor.setTextAppearance(this, + TextAppearanceResources.getTexAppearanceResource(mFontSizeId)); + } + mFontSizeSelector.setVisibility(View.GONE); + } + } + + @Override + public void onBackPressed() { + if(clearSettingState()) { + return; + } + + saveNote(); + super.onBackPressed(); + } + + private boolean clearSettingState() { + if (mNoteBgColorSelector.getVisibility() == View.VISIBLE) { + mNoteBgColorSelector.setVisibility(View.GONE); + return true; + } else if (mFontSizeSelector.getVisibility() == View.VISIBLE) { + mFontSizeSelector.setVisibility(View.GONE); + return true; + } + return false; + } + + public void onBackgroundColorChanged() { + findViewById(sBgSelectorSelectionMap.get(mWorkingNote.getBgColorId())).setVisibility( + View.VISIBLE); + mNoteEditorPanel.setBackgroundResource(mWorkingNote.getBgColorResId()); + mHeadViewPanel.setBackgroundResource(mWorkingNote.getTitleBgResId()); + } + + @Override + public boolean onPrepareOptionsMenu(Menu menu) { + if (isFinishing()) { + return true; + } + clearSettingState(); + menu.clear(); + if (mWorkingNote.getFolderId() == Notes.ID_CALL_RECORD_FOLDER) { + getMenuInflater().inflate(R.menu.call_note_edit, menu); + } else { + getMenuInflater().inflate(R.menu.note_edit, menu); + } + if (mWorkingNote.getCheckListMode() == TextNote.MODE_CHECK_LIST) { + menu.findItem(R.id.menu_list_mode).setTitle(R.string.menu_normal_mode); + } else { + menu.findItem(R.id.menu_list_mode).setTitle(R.string.menu_list_mode); + } + if (mWorkingNote.hasClockAlert()) { + menu.findItem(R.id.menu_alert).setVisible(false); + } else { + menu.findItem(R.id.menu_delete_remind).setVisible(false); + } + return true; + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + switch (item.getItemId()) { + case R.id.menu_new_note: + createNewNote(); + break; + case R.id.menu_delete: + AlertDialog.Builder builder = new AlertDialog.Builder(this); + builder.setTitle(getString(R.string.alert_title_delete)); + builder.setIcon(android.R.drawable.ic_dialog_alert); + builder.setMessage(getString(R.string.alert_message_delete_note)); + builder.setPositiveButton(android.R.string.ok, + new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int which) { + deleteCurrentNote(); + finish(); + } + }); + builder.setNegativeButton(android.R.string.cancel, null); + builder.show(); + break; + case R.id.menu_font_size: + mFontSizeSelector.setVisibility(View.VISIBLE); + findViewById(sFontSelectorSelectionMap.get(mFontSizeId)).setVisibility(View.VISIBLE); + break; + case R.id.menu_list_mode: + mWorkingNote.setCheckListMode(mWorkingNote.getCheckListMode() == 0 ? + TextNote.MODE_CHECK_LIST : 0); + break; + case R.id.menu_share: + getWorkingText(); + sendTo(this, mWorkingNote.getContent()); + break; + case R.id.menu_send_to_desktop: + sendToDesktop(); + break; + case R.id.menu_alert: + setReminder(); + break; + case R.id.menu_delete_remind: + mWorkingNote.setAlertDate(0, false); + break; + default: + break; + } + return true; + } + + private void setReminder() { + DateTimePickerDialog d = new DateTimePickerDialog(this, System.currentTimeMillis()); + d.setOnDateTimeSetListener(new OnDateTimeSetListener() { + public void OnDateTimeSet(AlertDialog dialog, long date) { + mWorkingNote.setAlertDate(date , true); + } + }); + d.show(); + } + + /** + * Share note to apps that support {@link Intent#ACTION_SEND} action + * and {@text/plain} type + */ + private void sendTo(Context context, String info) { + Intent intent = new Intent(Intent.ACTION_SEND); + intent.putExtra(Intent.EXTRA_TEXT, info); + intent.setType("text/plain"); + context.startActivity(intent); + } + + private void createNewNote() { + // Firstly, save current editing notes + saveNote(); + + // For safety, start a new NoteEditActivity + finish(); + Intent intent = new Intent(this, NoteEditActivity.class); + intent.setAction(Intent.ACTION_INSERT_OR_EDIT); + intent.putExtra(Notes.INTENT_EXTRA_FOLDER_ID, mWorkingNote.getFolderId()); + startActivity(intent); + } + + private void deleteCurrentNote() { + if (mWorkingNote.existInDatabase()) { + HashSet ids = new HashSet(); + long id = mWorkingNote.getNoteId(); + if (id != Notes.ID_ROOT_FOLDER) { + ids.add(id); + } else { + Log.d(TAG, "Wrong note id, should not happen"); + } + if (!isSyncMode()) { + if (!DataUtils.batchDeleteNotes(getContentResolver(), ids)) { + Log.e(TAG, "Delete Note error"); + } + } else { + if (!DataUtils.batchMoveToFolder(getContentResolver(), ids, Notes.ID_TRASH_FOLER)) { + Log.e(TAG, "Move notes to trash folder error, should not happens"); + } + } + } + mWorkingNote.markDeleted(true); + } + + private boolean isSyncMode() { + return NotesPreferenceActivity.getSyncAccountName(this).trim().length() > 0; + } + + public void onClockAlertChanged(long date, boolean set) { + /** + * User could set clock to an unsaved note, so before setting the + * alert clock, we should save the note first + */ + if (!mWorkingNote.existInDatabase()) { + saveNote(); + } + if (mWorkingNote.getNoteId() > 0) { + Intent intent = new Intent(this, AlarmReceiver.class); + intent.setData(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, mWorkingNote.getNoteId())); + PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, 0); + AlarmManager alarmManager = ((AlarmManager) getSystemService(ALARM_SERVICE)); + showAlertHeader(); + if(!set) { + alarmManager.cancel(pendingIntent); + } else { + alarmManager.set(AlarmManager.RTC_WAKEUP, date, pendingIntent); + } + } else { + /** + * There is the condition that user has input nothing (the note is + * not worthy saving), we have no note id, remind the user that he + * should input something + */ + Log.e(TAG, "Clock alert setting error"); + showToast(R.string.error_note_empty_for_clock); + } + } + + public void onWidgetChanged() { + updateWidget(); + } + + public void onEditTextDelete(int index, String text) { + int childCount = mEditTextList.getChildCount(); + if (childCount == 1) { + return; + } + + for (int i = index + 1; i < childCount; i++) { + ((NoteEditText) mEditTextList.getChildAt(i).findViewById(R.id.et_edit_text)) + .setIndex(i - 1); + } + + mEditTextList.removeViewAt(index); + NoteEditText edit = null; + if(index == 0) { + edit = (NoteEditText) mEditTextList.getChildAt(0).findViewById( + R.id.et_edit_text); + } else { + edit = (NoteEditText) mEditTextList.getChildAt(index - 1).findViewById( + R.id.et_edit_text); + } + int length = edit.length(); + edit.append(text); + edit.requestFocus(); + edit.setSelection(length); + } + + public void onEditTextEnter(int index, String text) { + /** + * Should not happen, check for debug + */ + if(index > mEditTextList.getChildCount()) { + Log.e(TAG, "Index out of mEditTextList boundrary, should not happen"); + } + + View view = getListItem(text, index); + mEditTextList.addView(view, index); + NoteEditText edit = (NoteEditText) view.findViewById(R.id.et_edit_text); + edit.requestFocus(); + edit.setSelection(0); + for (int i = index + 1; i < mEditTextList.getChildCount(); i++) { + ((NoteEditText) mEditTextList.getChildAt(i).findViewById(R.id.et_edit_text)) + .setIndex(i); + } + } + + private void switchToListMode(String text) { + mEditTextList.removeAllViews(); + String[] items = text.split("\n"); + int index = 0; + for (String item : items) { + if(!TextUtils.isEmpty(item)) { + mEditTextList.addView(getListItem(item, index)); + index++; + } + } + mEditTextList.addView(getListItem("", index)); + mEditTextList.getChildAt(index).findViewById(R.id.et_edit_text).requestFocus(); + + mNoteEditor.setVisibility(View.GONE); + mEditTextList.setVisibility(View.VISIBLE); + } + + private Spannable getHighlightQueryResult(String fullText, String userQuery) { + SpannableString spannable = new SpannableString(fullText == null ? "" : fullText); + if (!TextUtils.isEmpty(userQuery)) { + mPattern = Pattern.compile(userQuery); + Matcher m = mPattern.matcher(fullText); + int start = 0; + while (m.find(start)) { + spannable.setSpan( + new BackgroundColorSpan(this.getResources().getColor( + R.color.user_query_highlight)), m.start(), m.end(), + Spannable.SPAN_INCLUSIVE_EXCLUSIVE); + start = m.end(); + } + } + return spannable; + } + + private View getListItem(String item, int index) { + View view = LayoutInflater.from(this).inflate(R.layout.note_edit_list_item, null); + final NoteEditText edit = (NoteEditText) view.findViewById(R.id.et_edit_text); + edit.setTextAppearance(this, TextAppearanceResources.getTexAppearanceResource(mFontSizeId)); + CheckBox cb = ((CheckBox) view.findViewById(R.id.cb_edit_item)); + cb.setOnCheckedChangeListener(new OnCheckedChangeListener() { + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + if (isChecked) { + edit.setPaintFlags(edit.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG); + } else { + edit.setPaintFlags(Paint.ANTI_ALIAS_FLAG | Paint.DEV_KERN_TEXT_FLAG); + } + } + }); + + if (item.startsWith(TAG_CHECKED)) { + cb.setChecked(true); + edit.setPaintFlags(edit.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG); + item = item.substring(TAG_CHECKED.length(), item.length()).trim(); + } else if (item.startsWith(TAG_UNCHECKED)) { + cb.setChecked(false); + edit.setPaintFlags(Paint.ANTI_ALIAS_FLAG | Paint.DEV_KERN_TEXT_FLAG); + item = item.substring(TAG_UNCHECKED.length(), item.length()).trim(); + } + + edit.setOnTextViewChangeListener(this); + edit.setIndex(index); + edit.setText(getHighlightQueryResult(item, mUserQuery)); + return view; + } + + public void onTextChange(int index, boolean hasText) { + if (index >= mEditTextList.getChildCount()) { + Log.e(TAG, "Wrong index, should not happen"); + return; + } + if(hasText) { + mEditTextList.getChildAt(index).findViewById(R.id.cb_edit_item).setVisibility(View.VISIBLE); + } else { + mEditTextList.getChildAt(index).findViewById(R.id.cb_edit_item).setVisibility(View.GONE); + } + } + + public void onCheckListModeChanged(int oldMode, int newMode) { + if (newMode == TextNote.MODE_CHECK_LIST) { + switchToListMode(mNoteEditor.getText().toString()); + } else { + if (!getWorkingText()) { + mWorkingNote.setWorkingText(mWorkingNote.getContent().replace(TAG_UNCHECKED + " ", + "")); + } + mNoteEditor.setText(getHighlightQueryResult(mWorkingNote.getContent(), mUserQuery)); + mEditTextList.setVisibility(View.GONE); + mNoteEditor.setVisibility(View.VISIBLE); + } + } + + private boolean getWorkingText() { + boolean hasChecked = false; + if (mWorkingNote.getCheckListMode() == TextNote.MODE_CHECK_LIST) { + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < mEditTextList.getChildCount(); i++) { + View view = mEditTextList.getChildAt(i); + NoteEditText edit = (NoteEditText) view.findViewById(R.id.et_edit_text); + if (!TextUtils.isEmpty(edit.getText())) { + if (((CheckBox) view.findViewById(R.id.cb_edit_item)).isChecked()) { + sb.append(TAG_CHECKED).append(" ").append(edit.getText()).append("\n"); + hasChecked = true; + } else { + sb.append(TAG_UNCHECKED).append(" ").append(edit.getText()).append("\n"); + } + } + } + mWorkingNote.setWorkingText(sb.toString()); + } else { + mWorkingNote.setWorkingText(mNoteEditor.getText().toString()); + } + return hasChecked; + } + + private boolean saveNote() { + getWorkingText(); + boolean saved = mWorkingNote.saveNote(); + if (saved) { + /** + * There are two modes from List view to edit view, open one note, + * create/edit a node. Opening node requires to the original + * position in the list when back from edit view, while creating a + * new node requires to the top of the list. This code + * {@link #RESULT_OK} is used to identify the create/edit state + */ + setResult(RESULT_OK); + } + return saved; + } + + private void sendToDesktop() { + /** + * Before send message to home, we should make sure that current + * editing note is exists in databases. So, for new note, firstly + * save it + */ + if (!mWorkingNote.existInDatabase()) { + saveNote(); + } + + if (mWorkingNote.getNoteId() > 0) { + Intent sender = new Intent(); + Intent shortcutIntent = new Intent(this, NoteEditActivity.class); + shortcutIntent.setAction(Intent.ACTION_VIEW); + shortcutIntent.putExtra(Intent.EXTRA_UID, mWorkingNote.getNoteId()); + sender.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent); + sender.putExtra(Intent.EXTRA_SHORTCUT_NAME, + makeShortcutIconTitle(mWorkingNote.getContent())); + sender.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, + Intent.ShortcutIconResource.fromContext(this, R.drawable.icon_app)); + sender.putExtra("duplicate", true); + sender.setAction("com.android.launcher.action.INSTALL_SHORTCUT"); + showToast(R.string.info_note_enter_desktop); + sendBroadcast(sender); + } else { + /** + * There is the condition that user has input nothing (the note is + * not worthy saving), we have no note id, remind the user that he + * should input something + */ + Log.e(TAG, "Send to desktop error"); + showToast(R.string.error_note_empty_for_send_to_desktop); + } + } + + private String makeShortcutIconTitle(String content) { + content = content.replace(TAG_CHECKED, ""); + content = content.replace(TAG_UNCHECKED, ""); + return content.length() > SHORTCUT_ICON_TITLE_MAX_LEN ? content.substring(0, + SHORTCUT_ICON_TITLE_MAX_LEN) : content; + } + + private void showToast(int resId) { + showToast(resId, Toast.LENGTH_SHORT); + } + + private void showToast(int resId, int duration) { + Toast.makeText(this, resId, duration).show(); + } + + + public void OnOpenMenu(View view) { + openOptionsMenu(); + } +} diff --git a/app/src/main/java/net/micode/notes/ui/NoteEditText.java b/app/src/main/java/net/micode/notes/ui/NoteEditText.java new file mode 100644 index 0000000..2afe2a8 --- /dev/null +++ b/app/src/main/java/net/micode/notes/ui/NoteEditText.java @@ -0,0 +1,217 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.ui; + +import android.content.Context; +import android.graphics.Rect; +import android.text.Layout; +import android.text.Selection; +import android.text.Spanned; +import android.text.TextUtils; +import android.text.style.URLSpan; +import android.util.AttributeSet; +import android.util.Log; +import android.view.ContextMenu; +import android.view.KeyEvent; +import android.view.MenuItem; +import android.view.MenuItem.OnMenuItemClickListener; +import android.view.MotionEvent; +import android.widget.EditText; + +import net.micode.notes.R; + +import java.util.HashMap; +import java.util.Map; + +public class NoteEditText extends EditText { + private static final String TAG = "NoteEditText"; + private int mIndex; + private int mSelectionStartBeforeDelete; + + private static final String SCHEME_TEL = "tel:" ; + private static final String SCHEME_HTTP = "http:" ; + private static final String SCHEME_EMAIL = "mailto:" ; + + private static final Map sSchemaActionResMap = new HashMap(); + static { + sSchemaActionResMap.put(SCHEME_TEL, R.string.note_link_tel); + sSchemaActionResMap.put(SCHEME_HTTP, R.string.note_link_web); + sSchemaActionResMap.put(SCHEME_EMAIL, R.string.note_link_email); + } + + /** + * Call by the {@link NoteEditActivity} to delete or add edit text + */ + public interface OnTextViewChangeListener { + /** + * Delete current edit text when {@link KeyEvent#KEYCODE_DEL} happens + * and the text is null + */ + void onEditTextDelete(int index, String text); + + /** + * Add edit text after current edit text when {@link KeyEvent#KEYCODE_ENTER} + * happen + */ + void onEditTextEnter(int index, String text); + + /** + * Hide or show item option when text change + */ + void onTextChange(int index, boolean hasText); + } + + private OnTextViewChangeListener mOnTextViewChangeListener; + + public NoteEditText(Context context) { + super(context, null); + mIndex = 0; + } + + public void setIndex(int index) { + mIndex = index; + } + + public void setOnTextViewChangeListener(OnTextViewChangeListener listener) { + mOnTextViewChangeListener = listener; + } + + public NoteEditText(Context context, AttributeSet attrs) { + super(context, attrs, android.R.attr.editTextStyle); + } + + public NoteEditText(Context context, AttributeSet attrs, int defStyle) { + super(context, attrs, defStyle); + // TODO Auto-generated constructor stub + } + + @Override + public boolean onTouchEvent(MotionEvent event) { + switch (event.getAction()) { + case MotionEvent.ACTION_DOWN: + + int x = (int) event.getX(); + int y = (int) event.getY(); + x -= getTotalPaddingLeft(); + y -= getTotalPaddingTop(); + x += getScrollX(); + y += getScrollY(); + + Layout layout = getLayout(); + int line = layout.getLineForVertical(y); + int off = layout.getOffsetForHorizontal(line, x); + Selection.setSelection(getText(), off); + break; + } + + return super.onTouchEvent(event); + } + + @Override + public boolean onKeyDown(int keyCode, KeyEvent event) { + switch (keyCode) { + case KeyEvent.KEYCODE_ENTER: + if (mOnTextViewChangeListener != null) { + return false; + } + break; + case KeyEvent.KEYCODE_DEL: + mSelectionStartBeforeDelete = getSelectionStart(); + break; + default: + break; + } + return super.onKeyDown(keyCode, event); + } + + @Override + public boolean onKeyUp(int keyCode, KeyEvent event) { + switch(keyCode) { + case KeyEvent.KEYCODE_DEL: + if (mOnTextViewChangeListener != null) { + if (0 == mSelectionStartBeforeDelete && mIndex != 0) { + mOnTextViewChangeListener.onEditTextDelete(mIndex, getText().toString()); + return true; + } + } else { + Log.d(TAG, "OnTextViewChangeListener was not seted"); + } + break; + case KeyEvent.KEYCODE_ENTER: + if (mOnTextViewChangeListener != null) { + int selectionStart = getSelectionStart(); + String text = getText().subSequence(selectionStart, length()).toString(); + setText(getText().subSequence(0, selectionStart)); + mOnTextViewChangeListener.onEditTextEnter(mIndex + 1, text); + } else { + Log.d(TAG, "OnTextViewChangeListener was not seted"); + } + break; + default: + break; + } + return super.onKeyUp(keyCode, event); + } + + @Override + protected void onFocusChanged(boolean focused, int direction, Rect previouslyFocusedRect) { + if (mOnTextViewChangeListener != null) { + if (!focused && TextUtils.isEmpty(getText())) { + mOnTextViewChangeListener.onTextChange(mIndex, false); + } else { + mOnTextViewChangeListener.onTextChange(mIndex, true); + } + } + super.onFocusChanged(focused, direction, previouslyFocusedRect); + } + + @Override + protected void onCreateContextMenu(ContextMenu menu) { + if (getText() instanceof Spanned) { + int selStart = getSelectionStart(); + int selEnd = getSelectionEnd(); + + int min = Math.min(selStart, selEnd); + int max = Math.max(selStart, selEnd); + + final URLSpan[] urls = ((Spanned) getText()).getSpans(min, max, URLSpan.class); + if (urls.length == 1) { + int defaultResId = 0; + for(String schema: sSchemaActionResMap.keySet()) { + if(urls[0].getURL().indexOf(schema) >= 0) { + defaultResId = sSchemaActionResMap.get(schema); + break; + } + } + + if (defaultResId == 0) { + defaultResId = R.string.note_link_other; + } + + menu.add(0, 0, 0, defaultResId).setOnMenuItemClickListener( + new OnMenuItemClickListener() { + public boolean onMenuItemClick(MenuItem item) { + // goto a new intent + urls[0].onClick(NoteEditText.this); + return true; + } + }); + } + } + super.onCreateContextMenu(menu); + } +} diff --git a/app/src/main/java/net/micode/notes/ui/NoteItemData.java b/app/src/main/java/net/micode/notes/ui/NoteItemData.java new file mode 100644 index 0000000..0f5a878 --- /dev/null +++ b/app/src/main/java/net/micode/notes/ui/NoteItemData.java @@ -0,0 +1,224 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.ui; + +import android.content.Context; +import android.database.Cursor; +import android.text.TextUtils; + +import net.micode.notes.data.Contact; +import net.micode.notes.data.Notes; +import net.micode.notes.data.Notes.NoteColumns; +import net.micode.notes.tool.DataUtils; + + +public class NoteItemData { + static final String [] PROJECTION = new String [] { + NoteColumns.ID, + NoteColumns.ALERTED_DATE, + NoteColumns.BG_COLOR_ID, + NoteColumns.CREATED_DATE, + NoteColumns.HAS_ATTACHMENT, + NoteColumns.MODIFIED_DATE, + NoteColumns.NOTES_COUNT, + NoteColumns.PARENT_ID, + NoteColumns.SNIPPET, + NoteColumns.TYPE, + NoteColumns.WIDGET_ID, + NoteColumns.WIDGET_TYPE, + }; + + private static final int ID_COLUMN = 0; + private static final int ALERTED_DATE_COLUMN = 1; + private static final int BG_COLOR_ID_COLUMN = 2; + private static final int CREATED_DATE_COLUMN = 3; + private static final int HAS_ATTACHMENT_COLUMN = 4; + private static final int MODIFIED_DATE_COLUMN = 5; + private static final int NOTES_COUNT_COLUMN = 6; + private static final int PARENT_ID_COLUMN = 7; + private static final int SNIPPET_COLUMN = 8; + private static final int TYPE_COLUMN = 9; + private static final int WIDGET_ID_COLUMN = 10; + private static final int WIDGET_TYPE_COLUMN = 11; + + private long mId; + private long mAlertDate; + private int mBgColorId; + private long mCreatedDate; + private boolean mHasAttachment; + private long mModifiedDate; + private int mNotesCount; + private long mParentId; + private String mSnippet; + private int mType; + private int mWidgetId; + private int mWidgetType; + private String mName; + private String mPhoneNumber; + + private boolean mIsLastItem; + private boolean mIsFirstItem; + private boolean mIsOnlyOneItem; + private boolean mIsOneNoteFollowingFolder; + private boolean mIsMultiNotesFollowingFolder; + + public NoteItemData(Context context, Cursor cursor) { + mId = cursor.getLong(ID_COLUMN); + mAlertDate = cursor.getLong(ALERTED_DATE_COLUMN); + mBgColorId = cursor.getInt(BG_COLOR_ID_COLUMN); + mCreatedDate = cursor.getLong(CREATED_DATE_COLUMN); + mHasAttachment = (cursor.getInt(HAS_ATTACHMENT_COLUMN) > 0) ? true : false; + mModifiedDate = cursor.getLong(MODIFIED_DATE_COLUMN); + mNotesCount = cursor.getInt(NOTES_COUNT_COLUMN); + mParentId = cursor.getLong(PARENT_ID_COLUMN); + mSnippet = cursor.getString(SNIPPET_COLUMN); + mSnippet = mSnippet.replace(NoteEditActivity.TAG_CHECKED, "").replace( + NoteEditActivity.TAG_UNCHECKED, ""); + mType = cursor.getInt(TYPE_COLUMN); + mWidgetId = cursor.getInt(WIDGET_ID_COLUMN); + mWidgetType = cursor.getInt(WIDGET_TYPE_COLUMN); + + mPhoneNumber = ""; + if (mParentId == Notes.ID_CALL_RECORD_FOLDER) { + mPhoneNumber = DataUtils.getCallNumberByNoteId(context.getContentResolver(), mId); + if (!TextUtils.isEmpty(mPhoneNumber)) { + mName = Contact.getContact(context, mPhoneNumber); + if (mName == null) { + mName = mPhoneNumber; + } + } + } + + if (mName == null) { + mName = ""; + } + checkPostion(cursor); + } + + private void checkPostion(Cursor cursor) { + mIsLastItem = cursor.isLast() ? true : false; + mIsFirstItem = cursor.isFirst() ? true : false; + mIsOnlyOneItem = (cursor.getCount() == 1); + mIsMultiNotesFollowingFolder = false; + mIsOneNoteFollowingFolder = false; + + if (mType == Notes.TYPE_NOTE && !mIsFirstItem) { + int position = cursor.getPosition(); + if (cursor.moveToPrevious()) { + if (cursor.getInt(TYPE_COLUMN) == Notes.TYPE_FOLDER + || cursor.getInt(TYPE_COLUMN) == Notes.TYPE_SYSTEM) { + if (cursor.getCount() > (position + 1)) { + mIsMultiNotesFollowingFolder = true; + } else { + mIsOneNoteFollowingFolder = true; + } + } + if (!cursor.moveToNext()) { + throw new IllegalStateException("cursor move to previous but can't move back"); + } + } + } + } + + public boolean isOneFollowingFolder() { + return mIsOneNoteFollowingFolder; + } + + public boolean isMultiFollowingFolder() { + return mIsMultiNotesFollowingFolder; + } + + public boolean isLast() { + return mIsLastItem; + } + + public String getCallName() { + return mName; + } + + public boolean isFirst() { + return mIsFirstItem; + } + + public boolean isSingle() { + return mIsOnlyOneItem; + } + + public long getId() { + return mId; + } + + public long getAlertDate() { + return mAlertDate; + } + + public long getCreatedDate() { + return mCreatedDate; + } + + public boolean hasAttachment() { + return mHasAttachment; + } + + public long getModifiedDate() { + return mModifiedDate; + } + + public int getBgColorId() { + return mBgColorId; + } + + public long getParentId() { + return mParentId; + } + + public int getNotesCount() { + return mNotesCount; + } + + public long getFolderId () { + return mParentId; + } + + public int getType() { + return mType; + } + + public int getWidgetType() { + return mWidgetType; + } + + public int getWidgetId() { + return mWidgetId; + } + + public String getSnippet() { + return mSnippet; + } + + public boolean hasAlert() { + return (mAlertDate > 0); + } + + public boolean isCallRecord() { + return (mParentId == Notes.ID_CALL_RECORD_FOLDER && !TextUtils.isEmpty(mPhoneNumber)); + } + + public static int getNoteType(Cursor cursor) { + return cursor.getInt(TYPE_COLUMN); + } +} diff --git a/app/src/main/java/net/micode/notes/ui/NotesListActivity.java b/app/src/main/java/net/micode/notes/ui/NotesListActivity.java new file mode 100644 index 0000000..2fa42ce --- /dev/null +++ b/app/src/main/java/net/micode/notes/ui/NotesListActivity.java @@ -0,0 +1,992 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.ui; + +import android.R.menu; +import android.app.Activity; +import android.app.AlertDialog; +import android.app.Dialog; +import android.appwidget.AppWidgetManager; +import android.content.AsyncQueryHandler; +import android.content.ContentResolver; +import android.content.ContentValues; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.SharedPreferences; +import android.database.Cursor; +import android.os.AsyncTask; +import android.os.Bundle; +import android.preference.PreferenceManager; +import android.text.Editable; +import android.text.TextUtils; +import android.text.TextWatcher; +import android.util.Log; +import android.view.ActionMode; +import android.view.ContextMenu; +import android.view.ContextMenu.ContextMenuInfo; +import android.view.Display; +import android.view.HapticFeedbackConstants; +import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuItem; +import android.view.MenuItem.OnMenuItemClickListener; +import android.view.MotionEvent; +import android.view.View; +import android.view.View.OnClickListener; +import android.view.View.OnCreateContextMenuListener; +import android.view.View.OnTouchListener; +import android.view.inputmethod.InputMethodManager; +import android.widget.AdapterView; +import android.widget.AdapterView.OnItemClickListener; +import android.widget.AdapterView.OnItemLongClickListener; +import android.widget.Button; +import android.widget.EditText; +import android.widget.ListView; +import android.widget.PopupMenu; +import android.widget.TextView; +import android.widget.Toast; +import net.micode.notes.R; +import net.micode.notes.data.Notes; +import net.micode.notes.data.Notes.NoteColumns; +import net.micode.notes.gtask.remote.GTaskSyncService; +import net.micode.notes.model.WorkingNote; +import net.micode.notes.tool.BackupUtils; +import net.micode.notes.tool.DataUtils; +import net.micode.notes.tool.ResourceParser; +import net.micode.notes.ui.NotesListAdapter.AppWidgetAttribute; +import net.micode.notes.widget.NoteWidgetProvider_2x; +import net.micode.notes.widget.NoteWidgetProvider_4x; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.util.HashSet; + +public class NotesListActivity extends Activity implements OnClickListener, OnItemLongClickListener { + private static final int FOLDER_NOTE_LIST_QUERY_TOKEN = 0; + + private static final int FOLDER_LIST_QUERY_TOKEN = 1; + + private static final int MENU_FOLDER_DELETE = 0; + + private static final int MENU_FOLDER_VIEW = 1; + + private static final int MENU_FOLDER_CHANGE_NAME = 2; + + private static final String PREFERENCE_ADD_INTRODUCTION = "net.micode.notes.introduction"; + + private enum ListEditState { + NOTE_LIST, SUB_FOLDER, CALL_RECORD_FOLDER + }; + + private ListEditState mState; + + private BackgroundQueryHandler mBackgroundQueryHandler; + + private NotesListAdapter mNotesListAdapter; + + private ListView mNotesListView; + + private Button mAddNewNote; + private Button mMenuSet; + + private boolean mDispatch; + + private int mOriginY; + + private int mDispatchY; + + private TextView mTitleBar; + + private long mCurrentFolderId; + + private ContentResolver mContentResolver; + + private ModeCallback mModeCallBack; + + private static final String TAG = "NotesListActivity"; + + public static final int NOTES_LISTVIEW_SCROLL_RATE = 30; + + private NoteItemData mFocusNoteDataItem; + + private static final String NORMAL_SELECTION = NoteColumns.PARENT_ID + "=?"; + + private static final String ROOT_FOLDER_SELECTION = "(" + NoteColumns.TYPE + "<>" + + Notes.TYPE_SYSTEM + " AND " + NoteColumns.PARENT_ID + "=?)" + " OR (" + + NoteColumns.ID + "=" + Notes.ID_CALL_RECORD_FOLDER + " AND " + + NoteColumns.NOTES_COUNT + ">0)"; + + private final static int REQUEST_CODE_OPEN_NODE = 102; + private final static int REQUEST_CODE_NEW_NODE = 103; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.note_list); + initResources(); + + /** + * Insert an introduction when user firstly use this application + */ + setAppInfoFromRawRes(); + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + if (resultCode == RESULT_OK + && (requestCode == REQUEST_CODE_OPEN_NODE || requestCode == REQUEST_CODE_NEW_NODE)) { + mNotesListAdapter.changeCursor(null); + } else { + super.onActivityResult(requestCode, resultCode, data); + } + } + + private void setAppInfoFromRawRes() { + SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this); + if (!sp.getBoolean(PREFERENCE_ADD_INTRODUCTION, false)) { + StringBuilder sb = new StringBuilder(); + InputStream in = null; + try { + in = getResources().openRawResource(R.raw.introduction); + if (in != null) { + InputStreamReader isr = new InputStreamReader(in); + BufferedReader br = new BufferedReader(isr); + char [] buf = new char[1024]; + int len = 0; + while ((len = br.read(buf)) > 0) { + sb.append(buf, 0, len); + } + } else { + Log.e(TAG, "Read introduction file error"); + return; + } + } catch (IOException e) { + e.printStackTrace(); + return; + } finally { + if(in != null) { + try { + in.close(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + } + + WorkingNote note = WorkingNote.createEmptyNote(this, Notes.ID_ROOT_FOLDER, + AppWidgetManager.INVALID_APPWIDGET_ID, Notes.TYPE_WIDGET_INVALIDE, + ResourceParser.RED); + note.setWorkingText(sb.toString()); + if (note.saveNote()) { + sp.edit().putBoolean(PREFERENCE_ADD_INTRODUCTION, true).commit(); + } else { + Log.e(TAG, "Save introduction note error"); + return; + } + } + } + + @Override + protected void onStart() { + super.onStart(); + startAsyncNotesListQuery(); + } + + private void initResources() { + mContentResolver = this.getContentResolver(); + mBackgroundQueryHandler = new BackgroundQueryHandler(this.getContentResolver()); + mCurrentFolderId = Notes.ID_ROOT_FOLDER; + mNotesListView = (ListView) findViewById(R.id.notes_list); + mNotesListView.addFooterView(LayoutInflater.from(this).inflate(R.layout.note_list_footer, null), + null, false); + mNotesListView.setOnItemClickListener(new OnListItemClickListener()); + mNotesListView.setOnItemLongClickListener(this); + mNotesListAdapter = new NotesListAdapter(this); + mNotesListView.setAdapter(mNotesListAdapter); + mAddNewNote = (Button) findViewById(R.id.btn_new_note); + mAddNewNote.setOnClickListener(this); + mAddNewNote.setOnTouchListener(new NewNoteOnTouchListener()); + mMenuSet = (Button) findViewById(R.id.btn_set); + mDispatch = false; + mDispatchY = 0; + mOriginY = 0; + mTitleBar = (TextView) findViewById(R.id.tv_title_bar); + mState = ListEditState.NOTE_LIST; + mModeCallBack = new ModeCallback(); + } + + private class ModeCallback implements ListView.MultiChoiceModeListener, OnMenuItemClickListener { + private DropdownMenu mDropDownMenu; + private ActionMode mActionMode; + private Menu menu; + private MenuItem mMoveMenu; + + public boolean onCreateActionMode(ActionMode mode, Menu menu) { + getMenuInflater().inflate(R.menu.note_list_options, menu); + this.menu = menu; + menu.findItem(R.id.delete).setOnMenuItemClickListener(this); + mMoveMenu = menu.findItem(R.id.move); + if (mFocusNoteDataItem.getParentId() == Notes.ID_CALL_RECORD_FOLDER + || DataUtils.getUserFolderCount(mContentResolver) == 0) { + mMoveMenu.setVisible(false); + } else { + mMoveMenu.setVisible(true); + mMoveMenu.setOnMenuItemClickListener(this); + } + mActionMode = mode; + mNotesListAdapter.setChoiceMode(true); + mNotesListView.setLongClickable(false); + mAddNewNote.setVisibility(View.GONE); + mMenuSet.setVisibility(View.GONE); + + View customView = LayoutInflater.from(NotesListActivity.this).inflate( + R.layout.note_list_dropdown_menu, null); + mode.setCustomView(customView); + mDropDownMenu = new DropdownMenu(NotesListActivity.this, + (Button) customView.findViewById(R.id.selection_menu), + R.menu.note_list_dropdown); + mDropDownMenu.setOnDropdownMenuItemClickListener(new PopupMenu.OnMenuItemClickListener(){ + public boolean onMenuItemClick(MenuItem item) { + mNotesListAdapter.selectAll(!mNotesListAdapter.isAllSelected()); + updateMenu(); + return true; + } + + }); + return true; + } + + private void updateMenu() { + int selectedCount = mNotesListAdapter.getSelectedCount(); + // Update dropdown menu + String format = getResources().getString(R.string.menu_select_title, selectedCount); + mDropDownMenu.setTitle(format); + MenuItem item = mDropDownMenu.findItem(R.id.action_select_all); + if (item != null) { + if (mNotesListAdapter.isAllSelected()) { + item.setChecked(true); + item.setTitle(R.string.menu_deselect_all); + } else { + item.setChecked(false); + item.setTitle(R.string.menu_select_all); + } + } + } + + public boolean onPrepareActionMode(ActionMode mode, Menu menu) { + // TODO Auto-generated method stub + return false; + } + + public boolean onActionItemClicked(ActionMode mode, MenuItem item) { + // TODO Auto-generated method stub + return false; + } + + public void onDestroyActionMode(ActionMode mode) { + mNotesListAdapter.setChoiceMode(false); + mNotesListView.clearChoices(); + mNotesListView.setItemChecked(0,true); + mNotesListView.setItemChecked(0,false); + + mNotesListView.setLongClickable(true); + System.out.println("-----------------onDestroyActionMode------------------"); + mNotesListAdapter.notifyDataSetChanged(); +// closeOptionsMenu(); +// mNotesListView.invalidate(); + mAddNewNote.setVisibility(View.VISIBLE); + mMenuSet.setVisibility(View.VISIBLE); + + + +// mNotesListView.setChoiceMode(ListView.CHOICE_MODE_NONE); + +// menu.clear(); +// menu.close(); + } + + + + public void finishActionMode() { + mActionMode.finish(); + mActionMode = null; + mNotesListAdapter.setChoiceMode(false); + mNotesListView.setLongClickable(true); + } + + + + public void onItemCheckedStateChanged(ActionMode mode, int position, long id, + boolean checked) { + mNotesListAdapter.setCheckedItem(position, checked); + updateMenu(); + } + + public boolean onMenuItemClick(MenuItem item) { + if (mNotesListAdapter.getSelectedCount() == 0) { + Toast.makeText(NotesListActivity.this, getString(R.string.menu_select_none), + Toast.LENGTH_SHORT).show(); + return true; + } + + switch (item.getItemId()) { + case R.id.delete: + AlertDialog.Builder builder = new AlertDialog.Builder(NotesListActivity.this); + builder.setTitle(getString(R.string.alert_title_delete)); + builder.setIcon(android.R.drawable.ic_dialog_alert); + builder.setMessage(getString(R.string.alert_message_delete_notes, + mNotesListAdapter.getSelectedCount())); + builder.setPositiveButton(android.R.string.ok, + new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, + int which) { + batchDelete(); + } + }); + builder.setNegativeButton(android.R.string.cancel, null); + builder.show(); + break; + case R.id.move: + startQueryDestinationFolders(); + break; + default: + return false; + } + return true; + } + } + + + private class NewNoteOnTouchListener implements OnTouchListener { + + public boolean onTouch(View v, MotionEvent event) { + switch (event.getAction()) { + case MotionEvent.ACTION_DOWN: { + Display display = getWindowManager().getDefaultDisplay(); + int screenHeight = display.getHeight(); + int newNoteViewHeight = mAddNewNote.getHeight(); + int start = screenHeight - newNoteViewHeight; + int eventY = start + (int) event.getY(); + /** + * Minus TitleBar's height + */ + if (mState == ListEditState.SUB_FOLDER) { + eventY -= mTitleBar.getHeight(); + start -= mTitleBar.getHeight(); + } + /** + * HACKME:When click the transparent part of "New Note" button, dispatch + * the event to the list view behind this button. The transparent part of + * "New Note" button could be expressed by formula y=-0.12x+94(Unit:pixel) + * and the line top of the button. The coordinate based on left of the "New + * Note" button. The 94 represents maximum height of the transparent part. + * Notice that, if the background of the button changes, the formula should + * also change. This is very bad, just for the UI designer's strong requirement. + */ + if (event.getY() < (event.getX() * (-0.12) + 94)) { + View view = mNotesListView.getChildAt(mNotesListView.getChildCount() - 1 + - mNotesListView.getFooterViewsCount()); + if (view != null && view.getBottom() > start + && (view.getTop() < (start + 94))) { + mOriginY = (int) event.getY(); + mDispatchY = eventY; + event.setLocation(event.getX(), mDispatchY); + mDispatch = true; + return mNotesListView.dispatchTouchEvent(event); + } + } + break; + } + case MotionEvent.ACTION_MOVE: { + if (mDispatch) { + mDispatchY += (int) event.getY() - mOriginY; + event.setLocation(event.getX(), mDispatchY); + return mNotesListView.dispatchTouchEvent(event); + } + break; + } + default: { + if (mDispatch) { + event.setLocation(event.getX(), mDispatchY); + mDispatch = false; + return mNotesListView.dispatchTouchEvent(event); + } + break; + } + } + return false; + } + + }; + + private void startAsyncNotesListQuery() { + String selection = (mCurrentFolderId == Notes.ID_ROOT_FOLDER) ? ROOT_FOLDER_SELECTION + : NORMAL_SELECTION; + mBackgroundQueryHandler.startQuery(FOLDER_NOTE_LIST_QUERY_TOKEN, null, + Notes.CONTENT_NOTE_URI, NoteItemData.PROJECTION, selection, new String[] { + String.valueOf(mCurrentFolderId) + }, NoteColumns.TYPE + " DESC," + NoteColumns.MODIFIED_DATE + " DESC"); + } + + private final class BackgroundQueryHandler extends AsyncQueryHandler { + public BackgroundQueryHandler(ContentResolver contentResolver) { + super(contentResolver); + } + + @Override + protected void onQueryComplete(int token, Object cookie, Cursor cursor) { + switch (token) { + case FOLDER_NOTE_LIST_QUERY_TOKEN: + mNotesListAdapter.changeCursor(cursor); + break; + case FOLDER_LIST_QUERY_TOKEN: + if (cursor != null && cursor.getCount() > 0) { + showFolderListMenu(cursor); + } else { + Log.e(TAG, "Query folder failed"); + } + break; + default: + return; + } + } + } + + private void showFolderListMenu(Cursor cursor) { + AlertDialog.Builder builder = new AlertDialog.Builder(NotesListActivity.this); + builder.setTitle(R.string.menu_title_select_folder); + final FoldersListAdapter adapter = new FoldersListAdapter(this, cursor); + builder.setAdapter(adapter, new DialogInterface.OnClickListener() { + + public void onClick(DialogInterface dialog, int which) { + DataUtils.batchMoveToFolder(mContentResolver, + mNotesListAdapter.getSelectedItemIds(), adapter.getItemId(which)); + Toast.makeText( + NotesListActivity.this, + getString(R.string.format_move_notes_to_folder, + mNotesListAdapter.getSelectedCount(), + adapter.getFolderName(NotesListActivity.this, which)), + Toast.LENGTH_SHORT).show(); + mModeCallBack.finishActionMode(); + } + }); + builder.show(); + } + + private void createNewNote() { + Intent intent = new Intent(this, NoteEditActivity.class); + intent.setAction(Intent.ACTION_INSERT_OR_EDIT); + intent.putExtra(Notes.INTENT_EXTRA_FOLDER_ID, mCurrentFolderId); + this.startActivityForResult(intent, REQUEST_CODE_NEW_NODE); + } + + private void batchDelete() { + new AsyncTask>() { + protected HashSet doInBackground(Void... unused) { + HashSet widgets = mNotesListAdapter.getSelectedWidget(); + if (!isSyncMode()) { + // if not synced, delete notes directly + if (DataUtils.batchDeleteNotes(mContentResolver, mNotesListAdapter + .getSelectedItemIds())) { + } else { + Log.e(TAG, "Delete notes error, should not happens"); + } + } else { + // in sync mode, we'll move the deleted note into the trash + // folder + if (!DataUtils.batchMoveToFolder(mContentResolver, mNotesListAdapter + .getSelectedItemIds(), Notes.ID_TRASH_FOLER)) { + Log.e(TAG, "Move notes to trash folder error, should not happens"); + } + } + return widgets; + } + + @Override + protected void onPostExecute(HashSet widgets) { + if (widgets != null) { + for (AppWidgetAttribute widget : widgets) { + if (widget.widgetId != AppWidgetManager.INVALID_APPWIDGET_ID + && widget.widgetType != Notes.TYPE_WIDGET_INVALIDE) { + updateWidget(widget.widgetId, widget.widgetType); + } + } + } + mModeCallBack.finishActionMode(); + } + }.execute(); + } + + private void deleteFolder(long folderId) { + if (folderId == Notes.ID_ROOT_FOLDER) { + Log.e(TAG, "Wrong folder id, should not happen " + folderId); + return; + } + + HashSet ids = new HashSet(); + ids.add(folderId); + HashSet widgets = DataUtils.getFolderNoteWidget(mContentResolver, + folderId); + if (!isSyncMode()) { + // if not synced, delete folder directly + DataUtils.batchDeleteNotes(mContentResolver, ids); + } else { + // in sync mode, we'll move the deleted folder into the trash folder + DataUtils.batchMoveToFolder(mContentResolver, ids, Notes.ID_TRASH_FOLER); + } + if (widgets != null) { + for (AppWidgetAttribute widget : widgets) { + if (widget.widgetId != AppWidgetManager.INVALID_APPWIDGET_ID + && widget.widgetType != Notes.TYPE_WIDGET_INVALIDE) { + updateWidget(widget.widgetId, widget.widgetType); + } + } + } + } + + private void openNode(NoteItemData data) { + Intent intent = new Intent(this, NoteEditActivity.class); + intent.setAction(Intent.ACTION_VIEW); + intent.putExtra(Intent.EXTRA_UID, data.getId()); + this.startActivityForResult(intent, REQUEST_CODE_OPEN_NODE); + } + + private void openFolder(NoteItemData data) { + mCurrentFolderId = data.getId(); + startAsyncNotesListQuery(); + if (data.getId() == Notes.ID_CALL_RECORD_FOLDER) { + mState = ListEditState.CALL_RECORD_FOLDER; + mAddNewNote.setVisibility(View.GONE); + mMenuSet.setVisibility(View.GONE); + } else { + mState = ListEditState.SUB_FOLDER; + } + if (data.getId() == Notes.ID_CALL_RECORD_FOLDER) { + mTitleBar.setText(R.string.call_record_folder_name); + } else { + mTitleBar.setText(data.getSnippet()); + } + mTitleBar.setVisibility(View.VISIBLE); + } + + public void onClick(View v) { + switch (v.getId()) { + case R.id.btn_new_note: + createNewNote(); + break; + default: + break; + } + } + + private void showSoftInput() { + InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); + if (inputMethodManager != null) { + inputMethodManager.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0); + } + } + + private void hideSoftInput(View view) { + InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); + inputMethodManager.hideSoftInputFromWindow(view.getWindowToken(), 0); + } + + private void showCreateOrModifyFolderDialog(final boolean create) { + final AlertDialog.Builder builder = new AlertDialog.Builder(this); + View view = LayoutInflater.from(this).inflate(R.layout.dialog_edit_text, null); + final EditText etName = (EditText) view.findViewById(R.id.et_foler_name); + showSoftInput(); + if (!create) { + if (mFocusNoteDataItem != null) { + etName.setText(mFocusNoteDataItem.getSnippet()); + builder.setTitle(getString(R.string.menu_folder_change_name)); + } else { + Log.e(TAG, "The long click data item is null"); + return; + } + } else { + etName.setText(""); + builder.setTitle(this.getString(R.string.menu_create_folder)); + } + + builder.setPositiveButton(android.R.string.ok, null); + builder.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int which) { + hideSoftInput(etName); + } + }); + + final Dialog dialog = builder.setView(view).show(); + final Button positive = (Button)dialog.findViewById(android.R.id.button1); + positive.setOnClickListener(new OnClickListener() { + public void onClick(View v) { + hideSoftInput(etName); + String name = etName.getText().toString(); + if (DataUtils.checkVisibleFolderName(mContentResolver, name)) { + Toast.makeText(NotesListActivity.this, getString(R.string.folder_exist, name), + Toast.LENGTH_LONG).show(); + etName.setSelection(0, etName.length()); + return; + } + if (!create) { + if (!TextUtils.isEmpty(name)) { + ContentValues values = new ContentValues(); + values.put(NoteColumns.SNIPPET, name); + values.put(NoteColumns.TYPE, Notes.TYPE_FOLDER); + values.put(NoteColumns.LOCAL_MODIFIED, 1); + mContentResolver.update(Notes.CONTENT_NOTE_URI, values, NoteColumns.ID + + "=?", new String[] { + String.valueOf(mFocusNoteDataItem.getId()) + }); + } + } else if (!TextUtils.isEmpty(name)) { + ContentValues values = new ContentValues(); + values.put(NoteColumns.SNIPPET, name); + values.put(NoteColumns.TYPE, Notes.TYPE_FOLDER); + mContentResolver.insert(Notes.CONTENT_NOTE_URI, values); + } + dialog.dismiss(); + } + }); + + if (TextUtils.isEmpty(etName.getText())) { + positive.setEnabled(false); + } + /** + * When the name edit text is null, disable the positive button + */ + etName.addTextChangedListener(new TextWatcher() { + public void beforeTextChanged(CharSequence s, int start, int count, int after) { + // TODO Auto-generated method stub + + } + + public void onTextChanged(CharSequence s, int start, int before, int count) { + if (TextUtils.isEmpty(etName.getText())) { + positive.setEnabled(false); + } else { + positive.setEnabled(true); + } + } + + public void afterTextChanged(Editable s) { + // TODO Auto-generated method stub + + } + }); + } + + @Override + public void onBackPressed() { + + System.out.println("-------onBackPressed---00000"); + switch (mState) { + case SUB_FOLDER: + mCurrentFolderId = Notes.ID_ROOT_FOLDER; + mState = ListEditState.NOTE_LIST; + startAsyncNotesListQuery(); + mTitleBar.setVisibility(View.GONE); + break; + case CALL_RECORD_FOLDER: + mCurrentFolderId = Notes.ID_ROOT_FOLDER; + mState = ListEditState.NOTE_LIST; + mAddNewNote.setVisibility(View.VISIBLE); + mMenuSet.setVisibility(View.VISIBLE); + mTitleBar.setVisibility(View.GONE); + startAsyncNotesListQuery(); + break; + case NOTE_LIST: + System.out.println("-------onBackPressed---"); + super.onBackPressed(); + break; + default: + break; + } + } + + private void updateWidget(int appWidgetId, int appWidgetType) { + Intent intent = new Intent(AppWidgetManager.ACTION_APPWIDGET_UPDATE); + if (appWidgetType == Notes.TYPE_WIDGET_2X) { + intent.setClass(this, NoteWidgetProvider_2x.class); + } else if (appWidgetType == Notes.TYPE_WIDGET_4X) { + intent.setClass(this, NoteWidgetProvider_4x.class); + } else { + Log.e(TAG, "Unspported widget type"); + return; + } + + intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, new int[] { + appWidgetId + }); + + sendBroadcast(intent); + setResult(RESULT_OK, intent); + } + + private final OnCreateContextMenuListener mFolderOnCreateContextMenuListener = new OnCreateContextMenuListener() { + public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { + if (mFocusNoteDataItem != null) { + menu.setHeaderTitle(mFocusNoteDataItem.getSnippet()); + menu.add(0, MENU_FOLDER_VIEW, 0, R.string.menu_folder_view); + menu.add(0, MENU_FOLDER_DELETE, 0, R.string.menu_folder_delete); + menu.add(0, MENU_FOLDER_CHANGE_NAME, 0, R.string.menu_folder_change_name); + } + } + }; + + @Override + public void onContextMenuClosed(Menu menu) { + if (mNotesListView != null) { + mNotesListView.setOnCreateContextMenuListener(null); + } + super.onContextMenuClosed(menu); + } + + @Override + public boolean onContextItemSelected(MenuItem item) { + if (mFocusNoteDataItem == null) { + Log.e(TAG, "The long click data item is null"); + return false; + } + switch (item.getItemId()) { + case MENU_FOLDER_VIEW: + openFolder(mFocusNoteDataItem); + break; + case MENU_FOLDER_DELETE: + AlertDialog.Builder builder = new AlertDialog.Builder(this); + builder.setTitle(getString(R.string.alert_title_delete)); + builder.setIcon(android.R.drawable.ic_dialog_alert); + builder.setMessage(getString(R.string.alert_message_delete_folder)); + builder.setPositiveButton(android.R.string.ok, + new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int which) { + deleteFolder(mFocusNoteDataItem.getId()); + } + }); + builder.setNegativeButton(android.R.string.cancel, null); + builder.show(); + break; + case MENU_FOLDER_CHANGE_NAME: + showCreateOrModifyFolderDialog(false); + break; + default: + break; + } + + return true; + } + + @Override + public boolean onPrepareOptionsMenu(Menu menu) { + menu.clear(); + if (mState == ListEditState.NOTE_LIST) { + getMenuInflater().inflate(R.menu.note_list, menu); + // set sync or sync_cancel + menu.findItem(R.id.menu_sync).setTitle( + GTaskSyncService.isSyncing() ? R.string.menu_sync_cancel : R.string.menu_sync); + } else if (mState == ListEditState.SUB_FOLDER) { + getMenuInflater().inflate(R.menu.sub_folder, menu); + } else if (mState == ListEditState.CALL_RECORD_FOLDER) { + getMenuInflater().inflate(R.menu.call_record_folder, menu); + } else { + Log.e(TAG, "Wrong state:" + mState); + } + return true; + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + switch (item.getItemId()) { + case R.id.menu_new_folder: { + showCreateOrModifyFolderDialog(true); + break; + } + case R.id.menu_export_text: { + exportNoteToText(); + break; + } + case R.id.menu_sync: { + if (isSyncMode()) { + if (TextUtils.equals(item.getTitle(), getString(R.string.menu_sync))) { + GTaskSyncService.startSync(this); + } else { + GTaskSyncService.cancelSync(this); + } + } else { + startPreferenceActivity(); + } + break; + } + case R.id.menu_setting: { + startPreferenceActivity(); + break; + } + case R.id.menu_new_note: { + createNewNote(); + break; + } + case R.id.menu_search: + onSearchRequested(); + break; + default: + break; + } + return true; + } + + @Override + public boolean onSearchRequested() { + startSearch(null, false, null /* appData */, false); + return true; + } + + private void exportNoteToText() { + final BackupUtils backup = BackupUtils.getInstance(NotesListActivity.this); + new AsyncTask() { + + @Override + protected Integer doInBackground(Void... unused) { + return backup.exportToText(); + } + + @Override + protected void onPostExecute(Integer result) { + if (result == BackupUtils.STATE_SD_CARD_UNMOUONTED) { + AlertDialog.Builder builder = new AlertDialog.Builder(NotesListActivity.this); + builder.setTitle(NotesListActivity.this + .getString(R.string.failed_sdcard_export)); + builder.setMessage(NotesListActivity.this + .getString(R.string.error_sdcard_unmounted)); + builder.setPositiveButton(android.R.string.ok, null); + builder.show(); + } else if (result == BackupUtils.STATE_SUCCESS) { + AlertDialog.Builder builder = new AlertDialog.Builder(NotesListActivity.this); + builder.setTitle(NotesListActivity.this + .getString(R.string.success_sdcard_export)); + builder.setMessage(NotesListActivity.this.getString( + R.string.format_exported_file_location, backup + .getExportedTextFileName(), backup.getExportedTextFileDir())); + builder.setPositiveButton(android.R.string.ok, null); + builder.show(); + } else if (result == BackupUtils.STATE_SYSTEM_ERROR) { + AlertDialog.Builder builder = new AlertDialog.Builder(NotesListActivity.this); + builder.setTitle(NotesListActivity.this + .getString(R.string.failed_sdcard_export)); + builder.setMessage(NotesListActivity.this + .getString(R.string.error_sdcard_export)); + builder.setPositiveButton(android.R.string.ok, null); + builder.show(); + } + } + + }.execute(); + } + + private boolean isSyncMode() { + return NotesPreferenceActivity.getSyncAccountName(this).trim().length() > 0; + } + + private void startPreferenceActivity() { + Activity from = getParent() != null ? getParent() : this; + Intent intent = new Intent(from, NotesPreferenceActivity.class); + from.startActivityIfNeeded(intent, -1); + } + + private class OnListItemClickListener implements OnItemClickListener { + + public void onItemClick(AdapterView parent, View view, int position, long id) { + if (view instanceof NotesListItem) { + NoteItemData item = ((NotesListItem) view).getItemData(); + if (mNotesListAdapter.isInChoiceMode()) { + if (item.getType() == Notes.TYPE_NOTE) { + position = position - mNotesListView.getHeaderViewsCount(); + mModeCallBack.onItemCheckedStateChanged(null, position, id, + !mNotesListAdapter.isSelectedItem(position)); + } + return; + } + + switch (mState) { + case NOTE_LIST: + if (item.getType() == Notes.TYPE_FOLDER + || item.getType() == Notes.TYPE_SYSTEM) { + openFolder(item); + } else if (item.getType() == Notes.TYPE_NOTE) { + openNode(item); + } else { + Log.e(TAG, "Wrong note type in NOTE_LIST"); + } + break; + case SUB_FOLDER: + case CALL_RECORD_FOLDER: + if (item.getType() == Notes.TYPE_NOTE) { + openNode(item); + } else { + Log.e(TAG, "Wrong note type in SUB_FOLDER"); + } + break; + default: + break; + } + } + } + + } + + private void startQueryDestinationFolders() { + String selection = NoteColumns.TYPE + "=? AND " + NoteColumns.PARENT_ID + "<>? AND " + NoteColumns.ID + "<>?"; + selection = (mState == ListEditState.NOTE_LIST) ? selection: + "(" + selection + ") OR (" + NoteColumns.ID + "=" + Notes.ID_ROOT_FOLDER + ")"; + + mBackgroundQueryHandler.startQuery(FOLDER_LIST_QUERY_TOKEN, + null, + Notes.CONTENT_NOTE_URI, + FoldersListAdapter.PROJECTION, + selection, + new String[] { + String.valueOf(Notes.TYPE_FOLDER), + String.valueOf(Notes.ID_TRASH_FOLER), + String.valueOf(mCurrentFolderId) + }, + NoteColumns.MODIFIED_DATE + " DESC"); + } + + public boolean onItemLongClick(AdapterView parent, View view, int position, long id) { + if (view instanceof NotesListItem) { + mFocusNoteDataItem = ((NotesListItem) view).getItemData(); + if (mFocusNoteDataItem.getType() == Notes.TYPE_NOTE && !mNotesListAdapter.isInChoiceMode()) { + if (mNotesListView.startActionMode(mModeCallBack) != null) { + mModeCallBack.onItemCheckedStateChanged(null, position, id, true); + mNotesListView.performHapticFeedback(HapticFeedbackConstants.LONG_PRESS); + } else { + Log.e(TAG, "startActionMode fails"); + } + } else if (mFocusNoteDataItem.getType() == Notes.TYPE_FOLDER) { + mNotesListView.setOnCreateContextMenuListener(mFolderOnCreateContextMenuListener); + } + } + return false; + } + + public void OnOpenMenu(View view) { + openOptionsMenu(); + } +} diff --git a/app/src/main/java/net/micode/notes/ui/NotesListAdapter.java b/app/src/main/java/net/micode/notes/ui/NotesListAdapter.java new file mode 100644 index 0000000..51c9cb9 --- /dev/null +++ b/app/src/main/java/net/micode/notes/ui/NotesListAdapter.java @@ -0,0 +1,184 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.ui; + +import android.content.Context; +import android.database.Cursor; +import android.util.Log; +import android.view.View; +import android.view.ViewGroup; +import android.widget.CursorAdapter; + +import net.micode.notes.data.Notes; + +import java.util.Collection; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; + + +public class NotesListAdapter extends CursorAdapter { + private static final String TAG = "NotesListAdapter"; + private Context mContext; + private HashMap mSelectedIndex; + private int mNotesCount; + private boolean mChoiceMode; + + public static class AppWidgetAttribute { + public int widgetId; + public int widgetType; + }; + + public NotesListAdapter(Context context) { + super(context, null); + mSelectedIndex = new HashMap(); + mContext = context; + mNotesCount = 0; + } + + @Override + public View newView(Context context, Cursor cursor, ViewGroup parent) { + return new NotesListItem(context); + } + + @Override + public void bindView(View view, Context context, Cursor cursor) { + if (view instanceof NotesListItem) { + NoteItemData itemData = new NoteItemData(context, cursor); + ((NotesListItem) view).bind(context, itemData, mChoiceMode, + isSelectedItem(cursor.getPosition())); + } + } + + public void setCheckedItem(final int position, final boolean checked) { + mSelectedIndex.put(position, checked); + notifyDataSetChanged(); + } + + public boolean isInChoiceMode() { + return mChoiceMode; + } + + public void setChoiceMode(boolean mode) { + mSelectedIndex.clear(); + mChoiceMode = mode; + } + + public void selectAll(boolean checked) { + Cursor cursor = getCursor(); + for (int i = 0; i < getCount(); i++) { + if (cursor.moveToPosition(i)) { + if (NoteItemData.getNoteType(cursor) == Notes.TYPE_NOTE) { + setCheckedItem(i, checked); + } + } + } + } + + public HashSet getSelectedItemIds() { + HashSet itemSet = new HashSet(); + for (Integer position : mSelectedIndex.keySet()) { + if (mSelectedIndex.get(position) == true) { + Long id = getItemId(position); + if (id == Notes.ID_ROOT_FOLDER) { + Log.d(TAG, "Wrong item id, should not happen"); + } else { + itemSet.add(id); + } + } + } + + return itemSet; + } + + public HashSet getSelectedWidget() { + HashSet itemSet = new HashSet(); + for (Integer position : mSelectedIndex.keySet()) { + if (mSelectedIndex.get(position) == true) { + Cursor c = (Cursor) getItem(position); + if (c != null) { + AppWidgetAttribute widget = new AppWidgetAttribute(); + NoteItemData item = new NoteItemData(mContext, c); + widget.widgetId = item.getWidgetId(); + widget.widgetType = item.getWidgetType(); + itemSet.add(widget); + /** + * Don't close cursor here, only the adapter could close it + */ + } else { + Log.e(TAG, "Invalid cursor"); + return null; + } + } + } + return itemSet; + } + + public int getSelectedCount() { + Collection values = mSelectedIndex.values(); + if (null == values) { + return 0; + } + Iterator iter = values.iterator(); + int count = 0; + while (iter.hasNext()) { + if (true == iter.next()) { + count++; + } + } + return count; + } + + public boolean isAllSelected() { + int checkedCount = getSelectedCount(); + return (checkedCount != 0 && checkedCount == mNotesCount); + } + + public boolean isSelectedItem(final int position) { + if (null == mSelectedIndex.get(position)) { + return false; + } + return mSelectedIndex.get(position); + } + + @Override + protected void onContentChanged() { + super.onContentChanged(); + calcNotesCount(); + } + + @Override + public void changeCursor(Cursor cursor) { + super.changeCursor(cursor); + calcNotesCount(); + } + + private void calcNotesCount() { + mNotesCount = 0; + for (int i = 0; i < getCount(); i++) { + Cursor c = (Cursor) getItem(i); + if (c != null) { + if (NoteItemData.getNoteType(c) == Notes.TYPE_NOTE) { + mNotesCount++; + } + } else { + Log.e(TAG, "Invalid cursor"); + return; + } + } + } +} diff --git a/app/src/main/java/net/micode/notes/ui/NotesListItem.java b/app/src/main/java/net/micode/notes/ui/NotesListItem.java new file mode 100644 index 0000000..1221e80 --- /dev/null +++ b/app/src/main/java/net/micode/notes/ui/NotesListItem.java @@ -0,0 +1,122 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.ui; + +import android.content.Context; +import android.text.format.DateUtils; +import android.view.View; +import android.widget.CheckBox; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.TextView; + +import net.micode.notes.R; +import net.micode.notes.data.Notes; +import net.micode.notes.tool.DataUtils; +import net.micode.notes.tool.ResourceParser.NoteItemBgResources; + + +public class NotesListItem extends LinearLayout { + private ImageView mAlert; + private TextView mTitle; + private TextView mTime; + private TextView mCallName; + private NoteItemData mItemData; + private CheckBox mCheckBox; + + public NotesListItem(Context context) { + super(context); + inflate(context, R.layout.note_item, this); + mAlert = (ImageView) findViewById(R.id.iv_alert_icon); + mTitle = (TextView) findViewById(R.id.tv_title); + mTime = (TextView) findViewById(R.id.tv_time); + mCallName = (TextView) findViewById(R.id.tv_name); + mCheckBox = (CheckBox) findViewById(android.R.id.checkbox); + } + + public void bind(Context context, NoteItemData data, boolean choiceMode, boolean checked) { + if (choiceMode && data.getType() == Notes.TYPE_NOTE) { + mCheckBox.setVisibility(View.VISIBLE); + mCheckBox.setChecked(checked); + } else { + mCheckBox.setVisibility(View.GONE); + } + + mItemData = data; + if (data.getId() == Notes.ID_CALL_RECORD_FOLDER) { + mCallName.setVisibility(View.GONE); + mAlert.setVisibility(View.VISIBLE); + mTitle.setTextAppearance(context, R.style.TextAppearancePrimaryItem); + mTitle.setText(context.getString(R.string.call_record_folder_name) + + context.getString(R.string.format_folder_files_count, data.getNotesCount())); + mAlert.setImageResource(R.drawable.call_record); + } else if (data.getParentId() == Notes.ID_CALL_RECORD_FOLDER) { + mCallName.setVisibility(View.VISIBLE); + mCallName.setText(data.getCallName()); + mTitle.setTextAppearance(context,R.style.TextAppearanceSecondaryItem); + mTitle.setText(DataUtils.getFormattedSnippet(data.getSnippet())); + if (data.hasAlert()) { + mAlert.setImageResource(R.drawable.clock); + mAlert.setVisibility(View.VISIBLE); + } else { + mAlert.setVisibility(View.GONE); + } + } else { + mCallName.setVisibility(View.GONE); + mTitle.setTextAppearance(context, R.style.TextAppearancePrimaryItem); + + if (data.getType() == Notes.TYPE_FOLDER) { + mTitle.setText(data.getSnippet() + + context.getString(R.string.format_folder_files_count, + data.getNotesCount())); + mAlert.setVisibility(View.GONE); + } else { + mTitle.setText(DataUtils.getFormattedSnippet(data.getSnippet())); + if (data.hasAlert()) { + mAlert.setImageResource(R.drawable.clock); + mAlert.setVisibility(View.VISIBLE); + } else { + mAlert.setVisibility(View.GONE); + } + } + } + mTime.setText(DateUtils.getRelativeTimeSpanString(data.getModifiedDate())); + + setBackground(data); + } + + private void setBackground(NoteItemData data) { + int id = data.getBgColorId(); + if (data.getType() == Notes.TYPE_NOTE) { + if (data.isSingle() || data.isOneFollowingFolder()) { + setBackgroundResource(NoteItemBgResources.getNoteBgSingleRes(id)); + } else if (data.isLast()) { + setBackgroundResource(NoteItemBgResources.getNoteBgLastRes(id)); + } else if (data.isFirst() || data.isMultiFollowingFolder()) { + setBackgroundResource(NoteItemBgResources.getNoteBgFirstRes(id)); + } else { + setBackgroundResource(NoteItemBgResources.getNoteBgNormalRes(id)); + } + } else { + setBackgroundResource(NoteItemBgResources.getFolderBgRes()); + } + } + + public NoteItemData getItemData() { + return mItemData; + } +} diff --git a/app/src/main/java/net/micode/notes/ui/NotesPreferenceActivity.java b/app/src/main/java/net/micode/notes/ui/NotesPreferenceActivity.java new file mode 100644 index 0000000..07c5f7e --- /dev/null +++ b/app/src/main/java/net/micode/notes/ui/NotesPreferenceActivity.java @@ -0,0 +1,388 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.ui; + +import android.accounts.Account; +import android.accounts.AccountManager; +import android.app.ActionBar; +import android.app.AlertDialog; +import android.content.BroadcastReceiver; +import android.content.ContentValues; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.IntentFilter; +import android.content.SharedPreferences; +import android.os.Bundle; +import android.preference.Preference; +import android.preference.Preference.OnPreferenceClickListener; +import android.preference.PreferenceActivity; +import android.preference.PreferenceCategory; +import android.text.TextUtils; +import android.text.format.DateFormat; +import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuItem; +import android.view.View; +import android.widget.Button; +import android.widget.TextView; +import android.widget.Toast; + +import net.micode.notes.R; +import net.micode.notes.data.Notes; +import net.micode.notes.data.Notes.NoteColumns; +import net.micode.notes.gtask.remote.GTaskSyncService; + + +public class NotesPreferenceActivity extends PreferenceActivity { + public static final String PREFERENCE_NAME = "notes_preferences"; + + public static final String PREFERENCE_SYNC_ACCOUNT_NAME = "pref_key_account_name"; + + public static final String PREFERENCE_LAST_SYNC_TIME = "pref_last_sync_time"; + + public static final String PREFERENCE_SET_BG_COLOR_KEY = "pref_key_bg_random_appear"; + + private static final String PREFERENCE_SYNC_ACCOUNT_KEY = "pref_sync_account_key"; + + private static final String AUTHORITIES_FILTER_KEY = "authorities"; + + private PreferenceCategory mAccountCategory; + + private GTaskReceiver mReceiver; + + private Account[] mOriAccounts; + + private boolean mHasAddedAccount; + + @Override + protected void onCreate(Bundle icicle) { + super.onCreate(icicle); + + /* using the app icon for navigation */ + getActionBar().setDisplayHomeAsUpEnabled(true); + + addPreferencesFromResource(R.xml.preferences); + mAccountCategory = (PreferenceCategory) findPreference(PREFERENCE_SYNC_ACCOUNT_KEY); + mReceiver = new GTaskReceiver(); + IntentFilter filter = new IntentFilter(); + filter.addAction(GTaskSyncService.GTASK_SERVICE_BROADCAST_NAME); + registerReceiver(mReceiver, filter); + + mOriAccounts = null; + View header = LayoutInflater.from(this).inflate(R.layout.settings_header, null); + getListView().addHeaderView(header, null, true); + } + + @Override + protected void onResume() { + super.onResume(); + + // need to set sync account automatically if user has added a new + // account + if (mHasAddedAccount) { + Account[] accounts = getGoogleAccounts(); + if (mOriAccounts != null && accounts.length > mOriAccounts.length) { + for (Account accountNew : accounts) { + boolean found = false; + for (Account accountOld : mOriAccounts) { + if (TextUtils.equals(accountOld.name, accountNew.name)) { + found = true; + break; + } + } + if (!found) { + setSyncAccount(accountNew.name); + break; + } + } + } + } + + refreshUI(); + } + + @Override + protected void onDestroy() { + if (mReceiver != null) { + unregisterReceiver(mReceiver); + } + super.onDestroy(); + } + + private void loadAccountPreference() { + mAccountCategory.removeAll(); + + Preference accountPref = new Preference(this); + final String defaultAccount = getSyncAccountName(this); + accountPref.setTitle(getString(R.string.preferences_account_title)); + accountPref.setSummary(getString(R.string.preferences_account_summary)); + accountPref.setOnPreferenceClickListener(new OnPreferenceClickListener() { + public boolean onPreferenceClick(Preference preference) { + if (!GTaskSyncService.isSyncing()) { + if (TextUtils.isEmpty(defaultAccount)) { + // the first time to set account + showSelectAccountAlertDialog(); + } else { + // if the account has already been set, we need to promp + // user about the risk + showChangeAccountConfirmAlertDialog(); + } + } else { + Toast.makeText(NotesPreferenceActivity.this, + R.string.preferences_toast_cannot_change_account, Toast.LENGTH_SHORT) + .show(); + } + return true; + } + }); + + mAccountCategory.addPreference(accountPref); + } + + private void loadSyncButton() { + Button syncButton = (Button) findViewById(R.id.preference_sync_button); + TextView lastSyncTimeView = (TextView) findViewById(R.id.prefenerece_sync_status_textview); + + // set button state + if (GTaskSyncService.isSyncing()) { + syncButton.setText(getString(R.string.preferences_button_sync_cancel)); + syncButton.setOnClickListener(new View.OnClickListener() { + public void onClick(View v) { + GTaskSyncService.cancelSync(NotesPreferenceActivity.this); + } + }); + } else { + syncButton.setText(getString(R.string.preferences_button_sync_immediately)); + syncButton.setOnClickListener(new View.OnClickListener() { + public void onClick(View v) { + GTaskSyncService.startSync(NotesPreferenceActivity.this); + } + }); + } + syncButton.setEnabled(!TextUtils.isEmpty(getSyncAccountName(this))); + + // set last sync time + if (GTaskSyncService.isSyncing()) { + lastSyncTimeView.setText(GTaskSyncService.getProgressString()); + lastSyncTimeView.setVisibility(View.VISIBLE); + } else { + long lastSyncTime = getLastSyncTime(this); + if (lastSyncTime != 0) { + lastSyncTimeView.setText(getString(R.string.preferences_last_sync_time, + DateFormat.format(getString(R.string.preferences_last_sync_time_format), + lastSyncTime))); + lastSyncTimeView.setVisibility(View.VISIBLE); + } else { + lastSyncTimeView.setVisibility(View.GONE); + } + } + } + + private void refreshUI() { + loadAccountPreference(); + loadSyncButton(); + } + + private void showSelectAccountAlertDialog() { + AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this); + + View titleView = LayoutInflater.from(this).inflate(R.layout.account_dialog_title, null); + TextView titleTextView = (TextView) titleView.findViewById(R.id.account_dialog_title); + titleTextView.setText(getString(R.string.preferences_dialog_select_account_title)); + TextView subtitleTextView = (TextView) titleView.findViewById(R.id.account_dialog_subtitle); + subtitleTextView.setText(getString(R.string.preferences_dialog_select_account_tips)); + + dialogBuilder.setCustomTitle(titleView); + dialogBuilder.setPositiveButton(null, null); + + Account[] accounts = getGoogleAccounts(); + String defAccount = getSyncAccountName(this); + + mOriAccounts = accounts; + mHasAddedAccount = false; + + if (accounts.length > 0) { + CharSequence[] items = new CharSequence[accounts.length]; + final CharSequence[] itemMapping = items; + int checkedItem = -1; + int index = 0; + for (Account account : accounts) { + if (TextUtils.equals(account.name, defAccount)) { + checkedItem = index; + } + items[index++] = account.name; + } + dialogBuilder.setSingleChoiceItems(items, checkedItem, + new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int which) { + setSyncAccount(itemMapping[which].toString()); + dialog.dismiss(); + refreshUI(); + } + }); + } + + View addAccountView = LayoutInflater.from(this).inflate(R.layout.add_account_text, null); + dialogBuilder.setView(addAccountView); + + final AlertDialog dialog = dialogBuilder.show(); + addAccountView.setOnClickListener(new View.OnClickListener() { + public void onClick(View v) { + mHasAddedAccount = true; + Intent intent = new Intent("android.settings.ADD_ACCOUNT_SETTINGS"); + intent.putExtra(AUTHORITIES_FILTER_KEY, new String[] { + "gmail-ls" + }); + startActivityForResult(intent, -1); + dialog.dismiss(); + } + }); + } + + private void showChangeAccountConfirmAlertDialog() { + AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this); + + View titleView = LayoutInflater.from(this).inflate(R.layout.account_dialog_title, null); + TextView titleTextView = (TextView) titleView.findViewById(R.id.account_dialog_title); + titleTextView.setText(getString(R.string.preferences_dialog_change_account_title, + getSyncAccountName(this))); + TextView subtitleTextView = (TextView) titleView.findViewById(R.id.account_dialog_subtitle); + subtitleTextView.setText(getString(R.string.preferences_dialog_change_account_warn_msg)); + dialogBuilder.setCustomTitle(titleView); + + CharSequence[] menuItemArray = new CharSequence[] { + getString(R.string.preferences_menu_change_account), + getString(R.string.preferences_menu_remove_account), + getString(R.string.preferences_menu_cancel) + }; + dialogBuilder.setItems(menuItemArray, new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int which) { + if (which == 0) { + showSelectAccountAlertDialog(); + } else if (which == 1) { + removeSyncAccount(); + refreshUI(); + } + } + }); + dialogBuilder.show(); + } + + private Account[] getGoogleAccounts() { + AccountManager accountManager = AccountManager.get(this); + return accountManager.getAccountsByType("com.google"); + } + + private void setSyncAccount(String account) { + if (!getSyncAccountName(this).equals(account)) { + SharedPreferences settings = getSharedPreferences(PREFERENCE_NAME, Context.MODE_PRIVATE); + SharedPreferences.Editor editor = settings.edit(); + if (account != null) { + editor.putString(PREFERENCE_SYNC_ACCOUNT_NAME, account); + } else { + editor.putString(PREFERENCE_SYNC_ACCOUNT_NAME, ""); + } + editor.commit(); + + // clean up last sync time + setLastSyncTime(this, 0); + + // clean up local gtask related info + new Thread(new Runnable() { + public void run() { + ContentValues values = new ContentValues(); + values.put(NoteColumns.GTASK_ID, ""); + values.put(NoteColumns.SYNC_ID, 0); + getContentResolver().update(Notes.CONTENT_NOTE_URI, values, null, null); + } + }).start(); + + Toast.makeText(NotesPreferenceActivity.this, + getString(R.string.preferences_toast_success_set_accout, account), + Toast.LENGTH_SHORT).show(); + } + } + + private void removeSyncAccount() { + SharedPreferences settings = getSharedPreferences(PREFERENCE_NAME, Context.MODE_PRIVATE); + SharedPreferences.Editor editor = settings.edit(); + if (settings.contains(PREFERENCE_SYNC_ACCOUNT_NAME)) { + editor.remove(PREFERENCE_SYNC_ACCOUNT_NAME); + } + if (settings.contains(PREFERENCE_LAST_SYNC_TIME)) { + editor.remove(PREFERENCE_LAST_SYNC_TIME); + } + editor.commit(); + + // clean up local gtask related info + new Thread(new Runnable() { + public void run() { + ContentValues values = new ContentValues(); + values.put(NoteColumns.GTASK_ID, ""); + values.put(NoteColumns.SYNC_ID, 0); + getContentResolver().update(Notes.CONTENT_NOTE_URI, values, null, null); + } + }).start(); + } + + public static String getSyncAccountName(Context context) { + SharedPreferences settings = context.getSharedPreferences(PREFERENCE_NAME, + Context.MODE_PRIVATE); + return settings.getString(PREFERENCE_SYNC_ACCOUNT_NAME, ""); + } + + public static void setLastSyncTime(Context context, long time) { + SharedPreferences settings = context.getSharedPreferences(PREFERENCE_NAME, + Context.MODE_PRIVATE); + SharedPreferences.Editor editor = settings.edit(); + editor.putLong(PREFERENCE_LAST_SYNC_TIME, time); + editor.commit(); + } + + public static long getLastSyncTime(Context context) { + SharedPreferences settings = context.getSharedPreferences(PREFERENCE_NAME, + Context.MODE_PRIVATE); + return settings.getLong(PREFERENCE_LAST_SYNC_TIME, 0); + } + + private class GTaskReceiver extends BroadcastReceiver { + + @Override + public void onReceive(Context context, Intent intent) { + refreshUI(); + if (intent.getBooleanExtra(GTaskSyncService.GTASK_SERVICE_BROADCAST_IS_SYNCING, false)) { + TextView syncStatus = (TextView) findViewById(R.id.prefenerece_sync_status_textview); + syncStatus.setText(intent + .getStringExtra(GTaskSyncService.GTASK_SERVICE_BROADCAST_PROGRESS_MSG)); + } + + } + } + + public boolean onOptionsItemSelected(MenuItem item) { + switch (item.getItemId()) { + case android.R.id.home: + Intent intent = new Intent(this, NotesListActivity.class); + intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); + startActivity(intent); + return true; + default: + return false; + } + } +} diff --git a/app/src/main/java/net/micode/notes/widget/NoteWidgetProvider.java b/app/src/main/java/net/micode/notes/widget/NoteWidgetProvider.java new file mode 100644 index 0000000..ec6f819 --- /dev/null +++ b/app/src/main/java/net/micode/notes/widget/NoteWidgetProvider.java @@ -0,0 +1,132 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.widget; +import android.app.PendingIntent; +import android.appwidget.AppWidgetManager; +import android.appwidget.AppWidgetProvider; +import android.content.ContentValues; +import android.content.Context; +import android.content.Intent; +import android.database.Cursor; +import android.util.Log; +import android.widget.RemoteViews; + +import net.micode.notes.R; +import net.micode.notes.data.Notes; +import net.micode.notes.data.Notes.NoteColumns; +import net.micode.notes.tool.ResourceParser; +import net.micode.notes.ui.NoteEditActivity; +import net.micode.notes.ui.NotesListActivity; + +public abstract class NoteWidgetProvider extends AppWidgetProvider { + public static final String [] PROJECTION = new String [] { + NoteColumns.ID, + NoteColumns.BG_COLOR_ID, + NoteColumns.SNIPPET + }; + + public static final int COLUMN_ID = 0; + public static final int COLUMN_BG_COLOR_ID = 1; + public static final int COLUMN_SNIPPET = 2; + + private static final String TAG = "NoteWidgetProvider"; + + @Override + public void onDeleted(Context context, int[] appWidgetIds) { + ContentValues values = new ContentValues(); + values.put(NoteColumns.WIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID); + for (int i = 0; i < appWidgetIds.length; i++) { + context.getContentResolver().update(Notes.CONTENT_NOTE_URI, + values, + NoteColumns.WIDGET_ID + "=?", + new String[] { String.valueOf(appWidgetIds[i])}); + } + } + + private Cursor getNoteWidgetInfo(Context context, int widgetId) { + return context.getContentResolver().query(Notes.CONTENT_NOTE_URI, + PROJECTION, + NoteColumns.WIDGET_ID + "=? AND " + NoteColumns.PARENT_ID + "<>?", + new String[] { String.valueOf(widgetId), String.valueOf(Notes.ID_TRASH_FOLER) }, + null); + } + + protected void update(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { + update(context, appWidgetManager, appWidgetIds, false); + } + + private void update(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds, + boolean privacyMode) { + for (int i = 0; i < appWidgetIds.length; i++) { + if (appWidgetIds[i] != AppWidgetManager.INVALID_APPWIDGET_ID) { + int bgId = ResourceParser.getDefaultBgId(context); + String snippet = ""; + Intent intent = new Intent(context, NoteEditActivity.class); + intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); + intent.putExtra(Notes.INTENT_EXTRA_WIDGET_ID, appWidgetIds[i]); + intent.putExtra(Notes.INTENT_EXTRA_WIDGET_TYPE, getWidgetType()); + + Cursor c = getNoteWidgetInfo(context, appWidgetIds[i]); + if (c != null && c.moveToFirst()) { + if (c.getCount() > 1) { + Log.e(TAG, "Multiple message with same widget id:" + appWidgetIds[i]); + c.close(); + return; + } + snippet = c.getString(COLUMN_SNIPPET); + bgId = c.getInt(COLUMN_BG_COLOR_ID); + intent.putExtra(Intent.EXTRA_UID, c.getLong(COLUMN_ID)); + intent.setAction(Intent.ACTION_VIEW); + } else { + snippet = context.getResources().getString(R.string.widget_havenot_content); + intent.setAction(Intent.ACTION_INSERT_OR_EDIT); + } + + if (c != null) { + c.close(); + } + + RemoteViews rv = new RemoteViews(context.getPackageName(), getLayoutId()); + rv.setImageViewResource(R.id.widget_bg_image, getBgResourceId(bgId)); + intent.putExtra(Notes.INTENT_EXTRA_BACKGROUND_ID, bgId); + /** + * Generate the pending intent to start host for the widget + */ + PendingIntent pendingIntent = null; + if (privacyMode) { + rv.setTextViewText(R.id.widget_text, + context.getString(R.string.widget_under_visit_mode)); + pendingIntent = PendingIntent.getActivity(context, appWidgetIds[i], new Intent( + context, NotesListActivity.class), PendingIntent.FLAG_UPDATE_CURRENT); + } else { + rv.setTextViewText(R.id.widget_text, snippet); + pendingIntent = PendingIntent.getActivity(context, appWidgetIds[i], intent, + PendingIntent.FLAG_UPDATE_CURRENT); + } + + rv.setOnClickPendingIntent(R.id.widget_text, pendingIntent); + appWidgetManager.updateAppWidget(appWidgetIds[i], rv); + } + } + } + + protected abstract int getBgResourceId(int bgId); + + protected abstract int getLayoutId(); + + protected abstract int getWidgetType(); +} diff --git a/app/src/main/java/net/micode/notes/widget/NoteWidgetProvider_2x.java b/app/src/main/java/net/micode/notes/widget/NoteWidgetProvider_2x.java new file mode 100644 index 0000000..adcb2f7 --- /dev/null +++ b/app/src/main/java/net/micode/notes/widget/NoteWidgetProvider_2x.java @@ -0,0 +1,47 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.widget; + +import android.appwidget.AppWidgetManager; +import android.content.Context; + +import net.micode.notes.R; +import net.micode.notes.data.Notes; +import net.micode.notes.tool.ResourceParser; + + +public class NoteWidgetProvider_2x extends NoteWidgetProvider { + @Override + public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { + super.update(context, appWidgetManager, appWidgetIds); + } + + @Override + protected int getLayoutId() { + return R.layout.widget_2x; + } + + @Override + protected int getBgResourceId(int bgId) { + return ResourceParser.WidgetBgResources.getWidget2xBgResource(bgId); + } + + @Override + protected int getWidgetType() { + return Notes.TYPE_WIDGET_2X; + } +} diff --git a/app/src/main/java/net/micode/notes/widget/NoteWidgetProvider_4x.java b/app/src/main/java/net/micode/notes/widget/NoteWidgetProvider_4x.java new file mode 100644 index 0000000..c12a02e --- /dev/null +++ b/app/src/main/java/net/micode/notes/widget/NoteWidgetProvider_4x.java @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.widget; + +import android.appwidget.AppWidgetManager; +import android.content.Context; + +import net.micode.notes.R; +import net.micode.notes.data.Notes; +import net.micode.notes.tool.ResourceParser; + + +public class NoteWidgetProvider_4x extends NoteWidgetProvider { + @Override + public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { + super.update(context, appWidgetManager, appWidgetIds); + } + + protected int getLayoutId() { + return R.layout.widget_4x; + } + + @Override + protected int getBgResourceId(int bgId) { + return ResourceParser.WidgetBgResources.getWidget4xBgResource(bgId); + } + + @Override + protected int getWidgetType() { + return Notes.TYPE_WIDGET_4X; + } +} diff --git a/app/src/main/res/color/primary_text_dark.xml b/app/src/main/res/color/primary_text_dark.xml new file mode 100644 index 0000000..8ad98e3 --- /dev/null +++ b/app/src/main/res/color/primary_text_dark.xml @@ -0,0 +1,22 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/color/secondary_text_dark.xml b/app/src/main/res/color/secondary_text_dark.xml new file mode 100644 index 0000000..9cf8a1a --- /dev/null +++ b/app/src/main/res/color/secondary_text_dark.xml @@ -0,0 +1,20 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-hdpi/bg_btn_set_color.png b/app/src/main/res/drawable-hdpi/bg_btn_set_color.png new file mode 100644 index 0000000000000000000000000000000000000000..5eb5d44f561b5484eb094e18159ac10e0a32b53d GIT binary patch literal 3588 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 QZ~y=R07*qoM6N<$g4u_m#{d8T literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/dropdown_icon.9.png b/app/src/main/res/drawable-hdpi/dropdown_icon.9.png new file mode 100644 index 0000000000000000000000000000000000000000..55250257a0cd618f2dd365cfa27a38d323c7975b GIT binary patch literal 443 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/edit_red.9.png b/app/src/main/res/drawable-hdpi/edit_red.9.png new file mode 100644 index 0000000000000000000000000000000000000000..bae944a5f822df5d030a91466d439b5a7f7259e3 GIT binary patch literal 3458 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 Glm7#CUYk+? literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/edit_title_blue.9.png b/app/src/main/res/drawable-hdpi/edit_title_blue.9.png new file mode 100644 index 0000000000000000000000000000000000000000..96e60925b9ddf7115029b6c3a5eab53ab509b0d4 GIT binary patch literal 5100 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/edit_title_yellow.9.png b/app/src/main/res/drawable-hdpi/edit_title_yellow.9.png new file mode 100644 index 0000000000000000000000000000000000000000..bf8f580aaf01a744d9e7ad6b1464883eb2ed2b60 GIT binary patch literal 6000 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/edit_white.9.png b/app/src/main/res/drawable-hdpi/edit_white.9.png new file mode 100644 index 0000000000000000000000000000000000000000..918f7a6b19dbddf940ff3e75b9558779ef570d57 GIT binary patch literal 3441 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/edit_yellow.9.png b/app/src/main/res/drawable-hdpi/edit_yellow.9.png new file mode 100644 index 0000000000000000000000000000000000000000..10cb64213f33586622830edd55bf8ed6349fca16 GIT binary patch literal 3634 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/font_large.png b/app/src/main/res/drawable-hdpi/font_large.png new file mode 100644 index 0000000000000000000000000000000000000000..78cf2e6fcc38567b27f1fba2d5518eb3b71b2682 GIT binary patch literal 3161 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/font_normal.png b/app/src/main/res/drawable-hdpi/font_normal.png new file mode 100644 index 0000000000000000000000000000000000000000..9de7ced77ee2bd01542f6853b52f05e9301a81e5 GIT binary patch literal 3097 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/font_small.png b/app/src/main/res/drawable-hdpi/font_small.png new file mode 100644 index 0000000000000000000000000000000000000000..d3ff104884a11386b10830b13b34e430e1b22a45 GIT binary patch literal 3099 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/font_super.png b/app/src/main/res/drawable-hdpi/font_super.png new file mode 100644 index 0000000000000000000000000000000000000000..85b13a1d31218ac8e264808e743f14cdfaada1ec GIT binary patch literal 3188 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 a<$D0Bg_wt;87WHu0000*?y}vd$@?2>|OKBsl;8 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/ic_menu_more_dark.png b/app/src/main/res/drawable-hdpi/ic_menu_more_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..bb6aef1d069a14a7fc1cea9780c919c61679e4fa GIT binary patch literal 148 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpUtXipc%kc@k8uWjUIP~c#3xZ62X z=G4p^oaPsfxfS0Jish)R3f(&WG9yqa14Evg(y_dGGlfCy2iXqR3?>_SEs{VyhV?DH iJ0OaDc|iOR772{!kNsXaOPT8&i0|p@=d#Wzp$Py$I4IEo literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/icon_app.png b/app/src/main/res/drawable-hdpi/icon_app.png new file mode 100644 index 0000000000000000000000000000000000000000..418aadc70cb9a94f11020b1b94251f771cb5ab9c GIT binary patch literal 6887 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/list_background.png b/app/src/main/res/drawable-hdpi/list_background.png new file mode 100644 index 0000000000000000000000000000000000000000..087e1f97a35a36bd5c168d62996e54573446c2d9 GIT binary patch literal 567323 zcmWh!WmH>D6Atd~PJj#a)Vo;4K!QXkR2al;Tc-LV!}-tw3>i z$;bEOo;~N@oxNvwW@l%fXEs*n?JE*OMnV7pK=N7xqz3?CtO5X-xA>S(Z>*^(3!fSS zcMTIy0Dy?<{|^QrD~BEcAk_Mxs;Z;&-p$L+^Szrp`)gHIcK45N&=1b`0D#~8SAAdO zFITh*D_8bphAOkiwHeOg03b&N{vf$YA^B&3btE~Z($6Rup&>O5MUDofFJg*N<11`E zpQp(|84fdzgP2JlvMrW01P2@)9Nf*^wQc8Y-;er_k%duEa;Iz+Is#<$qU2uAvL$J2 z^!;iN!=%wz#bzhp8t!qx`3V3VWBL1qc-1K0V^q5VFahpUFE}X&*3h3?bhwQG>?wd% zAmug@MzS7Y@P)x3HDHh)P@`XOM+is-0G$1URDb{^31I*HwE_-cw(QFy9bmSQxeOnW zfB``8yyC=EY6Vz9!u13&yLtfm6-vMt*j-f^VJ1IBUtxx|;{bdTjg!fgtN>vM6#*20 zT^bXh%1SkY#SX^G7yi?^T4w1U)ue#|=o(HN$$0ZejJhf9H>2B

5x0ARcs?|zh4Oy1u5yS4@0c0M})S@`I5>;_bLcCzx=7LSPy zAb&e{G;g`NIgRB$fKlV!=~VU(FmDKWzj9+Pwm^_?O87hACeB~_UWqlgKxa^ng_)3u z=zzQkkcxIK)mBI0_r&G9%8 z75b3KJH9SnYbHPgKQWGN(gA7>_&4jNfS&zITc_L!6+K}~e<1kcO9H5f*6w=y1FvD& zxhv!l12c})_>T`jDdbEro{=a8K<*$e>VE|QeCfPNQsTz|jAVS<007$l(VLZ~(t-Q& z0RT{bIA4u29&tByMHgvKH%nU=9i}xdNQs!UOO9Lx_iq?8VF7)*GJ`?a%USG(8Z5?q zimWyA@7*HOB-^W$X5oA8bhuXZxjpo4(FEAagZNa|&tAePY!YXIqxf`)L~Nk7hWO{O zZ|plTYF*&Z!H?fC%Tydw%r!Vp1wT^DB$z4PCNB)Ki^A{WZLdU9!|QahCNaI0noHRj z;r;oZ<6h!q=3(iDPUDQ?li6qby?`RDBg2!lO$|ejHP^Nn7VSUkMKD$SZlV2Hwja5sz_Bp;&w%{8Pe2Nt5 zc@F$is{NfSfbyo#&*o)qvaxyv_u(_vXSrM!&q=8)zi4oh{`&m)E#Wh+WYO0|ubng& zGz7ote^dBF{vijwIZgsp=K3OV(@rBZ52 z*eh;g|CcAKg2+eej+Et2;v-=%^Gsj6Bp2&iF;>pjbziR4u2CYn);pf!QsQz zd!Ze#7J{WutZEs*GyXXJ!`s>3`E>3}OcG7v<$eiOy=>5S=G7Ij!YMBLhv)I~?B=SOQ48Q3=VGbB8t?H9E_F;he=8wGHzbbtd_i$(L5pOIZc9|lg7?_2 z!i4Rf{|>>$&;{wv()go%nwcD$B}EL z6vOXZQu^K(jlV8>-o$+v&$o~C4 z;eOUW?t#pu^(EJ(%jFmgikXsSTGmT8=%bf6%E#HgZSUKfcyC!>S?`XK1Cv96=hrg{ zy5cv=K^ zrO>Z{nHP{3(^1?3T#@hK2$>E+gy7xh-pSq$KO|juuKAzRp1j4e!sy1>#Apv^46ny> z!eYZlVE>0Ffs=sKiYr8{K%+uTKw`r7@rzp*-6_+Jt=OW2K-M_T5dK#hQ>I&C6gQZ4 znj$fJ41a|@#I5)Syo36I4_kfZ3~OThz<{8;38v=d6Ggt*)%~vT<>7TDFkSK26J)X zD3h9#np31l@*({@|BP@WPop-JpZ^QVU;izaA*L@eLsx$}ZamKxXq=@YnV=otw0}lZ#ak|XoK35Yjm1w>Svq$OiosToocPL9C7+|zAr?~ z^;+!wJ{O3hSf|-R zjvO@u(nWLGt02JfB5~yV$j}Iugtf%MJJgSgh0_AbqRW7h)mz(oqb!TTCfs3AG0;|SL_s#4uxB2XYEZ+uqQ$Erj<<0KrE5$*98#@0A zMtc`~M^+G_jTiWP8vgu$UUqs{2o|~I%NMjC{fjU9%3{Its-qDdawM{0>pdWmWR#o# zl}G;M=5NH8jS{<(+^=sHahv-& z@XBU^tMN^xe3ksG5ch{Qjp}!9d-hku2S##LUguhSvg1b+p|_4*Q=T)|GcU~Z{M(QE z_n8`9xtExmxLPi*eJ&5^d8Nbp-9WcJ}e8ysY}=0LK7Z+o-?%N%4K<=tA&O(^1RHKsy_P=U(Yi=WP7e zcA(_9_LahR(Br+(Rpi+n*PlGGr)ZPiRzpt<00`g$0Kz^205|BTb_W3P76t%ztpI?R znE(Kt+h@z4>Hz$&8m~dh27dFX2a{?plXULr$`5X`S1o}cQVBH>^v5ixnr1$L0Mz*p z-HA_${{X3jWlIz~i|mvQT^0H;upas#^%pHQ_TS_4 z5W2?|be`g3=)(ruaw`wL5|Vg}j&nH9yWmAWmV{!WwI6cY3m+}f$+t7;DYPf6#Z>1y z*>vcsB^ohS_UI5?ivG`XJoGl{)%}H=;={`00Q#h5`XSB-y%2ih7V@y9_}GiyU3pya zt*$=vGx!g_yzmYLhr=_=K7$a1ouddY;9=bB$w(ONKT(**l&F5D(Y5g1>FZh;TwPrq zjxPqG5R28YSK}5-5aH*Di!4KD;G?+(C`9^U_>f;<=%@y;&bnhUx~w$Dfir}ONLPfS z%u)Bo)D~4ionA;hR+we0jx8c0B37?M1JNxmXB@pP91@`D?YE8)3Y;|gVtj~Iy@;an{-=6si z07a(+;KtA*xTq?GqtFstjLII;lq8aICoEWq9I8O-J=}-aYpSK+37=_D7}jbexkDjo z-sS@ylZ-l5ibgJ zrv#BIZyR|72yGdxwfs_lL_q&p&tBZ38#$R=-7(K`r{5c}05Bz7j7#j~a%tnmr{h~B zUpbg2P=>#pFpe({n1j%2fE!B#k9L){mQ;ZTHpqUOhZgMywpRc@~wD(%yNiU-{6d z0YdTs>psWzr6Nn;E84+%Xlbpl{`Cs-*VpNRU}bfnZ+!ltgEXv%ijUVDLLHCC3ySwA z=*OebJGL}_^kFEv^KQf~0)bh!QAzn`bnUBC) zCn7K&ps}&q@t4-j${rGB6w=h>u>I6nS`MiPi7or=E;v`ysO@G;Y|{h1YycT(WlGoI zekyB{eL)ZHsN(7|-a8xybGWZN&>&1eqMlG;PY{xK4Tc0YrXmo$h0xPWpHUgeoP6Hc z_V6%~m|Ag-@PxOyBkds){_q7cE7o-Xn3uL+r>)mL0E2ZTXL{hkOIx#%uY|wA10u_o zad6(CzaLi+PCZ$D3+!{L6xfopaOQ^jEPt7oIt5ynuAi20Vn5@ZH@Wt#(2s&*xL-%a zd2vuj!q=hTSbT!-qowC4%-xr1<7}v;5DDJzGDnE&({wZ;*JngOncQL-Jibbb8kA48 zRmgL*Wd?cWj)_FWK;IDSYC2OEPE(d8j-$=#M*kt2Wkt&Ik^i>OWcoRQ6>QM{gItqB zJp@HJ&{qoTxb2-~Vy}ivH5QvB9;XQ^9b%Edt9)9l$njl*ji&fP6ikLJJp}&>_$^q~ zOIO{%gu>Os*Ww6-~1PML|UWaDUvhEfjUC5-J6e!kL%teU)F>#kRUEhUx>Af^{p&mwcJ+ zp}4yor})e%l2D;NAU9Hg88_-3xs){*5gml0(y5GZlt))thC^W1pg27xC469;wUF{q z;B#6rV+!)KN!uR24Yg3XX*PWNw6G`Eoz74o-Ug2iU?~Nx9YqeYunEM{XN0$o$sEad zO!x5q5}3_C3=fzOF3ZBFO3@G+NA_UM+k10~L1;GkxD3;fa$|2m5bun)QEdD@Q?h)< ze}fbT=>49KHsfyd8iRsh58uO;d_(~s$j*_Xb{eP&ZFke$HRX=w6AjSzXvRzQPDKLE zOwyv9^dd*kRC*)VtB}au8@ZD>%bXq%2pQoJX1U!yEBXb#*vj8Swo{}ShghO}n~YCq zZyCZ?4P{Iz6sSP_5^xfPR-s@o))%qj2o+5r9(09$CNn+DU6hapZ*$8q?>hl~ZlnTZ zCgQ|O3|O-PWDdmJ(C{Qg3M5arme*5@kK=}`mvec!9WvBwpKw{6Qh zj?`&z@+s37d^E9zy}jlCIy%SU9#RaY2k&o?h3;c0kyqDs))1N$z92T~R=x)_M?Y*= zi6JBysG{sc*Nj+WK>Tau6`P8$YgD&;ZFE>s%onIypxOR`4rz}|oyuUH^B|B4p$Ds1)na#n-;mtLuYV1wS~#=oz#7)&6x zVBhD(do79ncHHUeP{Lt)EPJvpj0yva6Br6LBm>o5dnEz?9Q%d(q9F_VAJPvyE`OUv zQYR?En!;p`E*ojD4vFOxtM*2GfUalu7dWbl)&6(lPaikCG(eAvtX5Aojs$%h>idik z2*`atv;dP!>|HwP6a5OSHP9Wl{Zg)Z0LKj`I28W=rArFN^SdX`YmSSNV#>&h&I8E@ zL_}$_WiQH4n?j=lF*63}Z9AujDjI^~*A6W^reSUTMUR|?PB-+?MgAxRg)~Kf%~{Z> z|02%P@}Dm9^Pt?mz6y}^40Y>Q{GXA~{)adqbxNto35~nd+9zIk1rNpOF|q^qcoAfb zO+@KN{$HW{hG`l@Atp=}k2+B6?c5HBGaW-jdufxd@5zP7~}K8g*yWZZ#LBnU@}Bx}pq$^4Cu z-^}*wB;k$UO*1$1n?#SYVi0UM@=a%ZMcKB^yoY^<(8vEfGwslE^kL_NCE5r*75d=k zPyGVVnzp|VddQ{=5~$-By{Eg3*P)4PsxEvnjhO4lzj{#+yK{CkjQFWyTm$+K-dWf! z&{bDg{T!N)>#j{P>nl2taYFHm@|$f;h|Vl zP-^`7K3NxPb+&p{WH-tQoyV&xh`*&2>Mer7M7D$flUVO`i$Gc#TDcyE;Y?{(( zXsQPHY>a@mm(9@+A-W{_TwgucE3MD#g=Q#q#c+NAU3lDudoBI+Bv$scx{xXyP90#OC{}}@`(IXMY-@H_{-pjd0lq3to6`nR1D<4f z47bS?mn2nwr+Pv_?)S0Rv`9GETCcvpU#eJHZ8#V!AXqrxLx>NWE7`lmI&g9^qc}WE zV!J9_dCbmDrN0Sp+ZG1?Q3W7Try4XE;ApL$LP%NhS~oJyz87Xv2Qra}n+^8BDPQA3 z^uj+jXTRr4G-B^B{D&YX{Jf&BOTmnhpnDKXTf!_{3YhR{h@^r8r_372zt(p}m? zkEToy0v|o5S1ljJmFhB2OS#rxD?r+2mgP$G6paFBjU-e5{D(c2to z_RXNou{57)kDbvL8Xa6!u8{Ojl)zm$5xMs=263)UPLZIoh53<^!j@hvN#?SyTh5b~ zhMU=wmDLqjJO^}sb1&XcO(DinjBFWo!p!Hff#&c+qd#@Whts#-c`!>WIM34K9fW5i z?WTl_nJO(1&(#N=wMSd(J#jd%}fpozf($_0~&5OPTW+*vll+4E!he;(((Krc4Ol<8v)54Z2C)De{cnTxyQ^gEf zq_dc&P|j6FNd|qMp%~+!`>{5w zBM|)-wk7BMk4*9YpyfsWfMkDbM#hFT?3-xl{q=-*E`)if_;RiHF5?v&mE!$zZ$lMd z56{l##mU-3%=W^<#^&bTQ78I*=Rlg($sBZlVPrWXlldBgK7Fvv9ea}|#$VrYyW4x` zd*ojI_|#P~t!K_eEHtVsiQ(<0}2=_V;81^tTUfBNEr)iko%SXvJ`Gi%SX%h> z$GAN7zTB8d|4PXHNlBhU7D70%&qHpxGf;*#>C8U_J=6J=qM+b!*E2WDs}*v_B>IEy zu1_XPqzZvs$I^*6Px8$F21>N^9#1nmQU1bjp!cWSifp|K@_A1hl7h0E`!k;{?FBN6 zkDcAF#jpu~V76@wyt`h1JsNm=);W8cw^AT#6V*bTd3ym@SrEF zx!di99hwR()mJCrxBQx!@|N6y>=85d;1`?g5G?Z zyF`f1OXvF~p-|p^f&1R1(7OdPMPb`P^&^Xw;OpbuGSq&x;{8QQ5*vS@FjO4o*2k`Jl|FnleiSw zzQ60d3#_Spn!)+PO7M!i&$tJ3=#_7$-8$_4X|$^qG>ukLDgLnH0JG?~}r+&urFU!c#Iyuz2I^ zM>n@Ie=w9ZN#^;B{wl}VyfG;?0z9)R0kQBDtII5e=iBepKzQqIuB-Rn2(iM*(mgbK zPRG6rbeMlW?r(A3`djW2mGXWp4!d&&Rkhdme(%YYiS1ZyMvgOPW*W8g45s7(7Fc$# z_6T?JxjEbQ5HXD8g0wd~19_}TvCAv+TO!dTdoSw=U9h(nGG`FHVOwX|551Sv{KEgN zD1zb}rceCLwqqsB`Q$aDs?X}i1r6+xu^JPcm#~VI8m3;1)QBv#$N_pMK`WoINdp>o zz&tmEmwG(KGv4M;2wf@z52x}O;{f$mD`EdPWtVGHsj}jMc+_4S?DdpfQ0AI8f`L27 zFLuQ0na$Mp0#j}hqH?n|4&zhZVrhiyA3Sw+@5(o7;Z!z4HNp}ny@(4}akook>rszR z_ofwv(gT1>=XL4jiw@qj%;qx8dbs(puSr6B6s!_aH`{Y_c_~L~Fy|~e-NGuAw2u(R z`hj`8PSH!uv@JL0WS+DU4l#!~rc;QRtp*O1()cGZ;7>cD9OGcT&S$9ySeO z9>5)$nA!bM&qrT=h2DE9)V+^6n6Ihc_I2BIZ)uqSAe`Z)bCSVNj&1ZB`aX2rGWbp# zeXNZJfr@*Vq=NK3<2@_c9&dYxhxa^~N0jUmkDV$}*x4#kF7XX*$exq8PElef(Xr(^ z_)>HK4Oq|q%6Eutg#rA2a`mHLn?L|H0AUY_UNA(&0S`LXvz8dnx6Y$AXKd+~#t#WE_Yg?Dd`IJ#Nef{-tU3IIj&|*mXVo6 zuL#8QX4KS-t48R5S#32;doa&9svn0aw2k#W;l)@Sv54u@O(Kv2itouuVV|?hDx z3STD17Nuj19+o78r;!jR$C@PiFJiGVuiMUQT~MuAbMPyd`~oNMVJsSPydIW6D9cp#B=!Xg; zKC#kl(*Gz+`~GIWBPVlkDJEeIgn~luxR-sF@YV%!O{BOeXxQFULRBHL$O~P8%rE79 zj_(A-fGuivO^pUqM$YRTl?{L`Qv7OsBHk_R5Mzqi;*j`pR6Dc{pC|W6z|!?PkX2?|n?goOVT+yvq6A_eCumqSKM-6O6pK%l zAQLdkGY=jg$)07*-Wq~#)nJG)iX4p!c}%Zq>gc)#vBAY|HvVrvkN>xyJJMibsdmN5 z^XjLtubj+su4b=A^h@C3YqiMw%ve-Bd@{aFxI&D@0Hjtp;%&CN?A_2~i+Y^RKJ}=_ zWEbnz>&F$F62Vi-8_W-Wjgc5;Krj`93|rz|ZRO1xdHALv%Y}J-#ABzRW;Bb_f-Cmwms8qU%Aw3YNQZZkld=E?| z1I)P_wpgMHqsN^lLZV5azec79D?|ozpRIfrZd<9apbH16wgTq@(CbKBwPfpIv_uXP@M`$p2Ww2)oypolOP(2``nyIygehX~h>7^#`=k*Ofm zMc9A;K_Z}j@9;f9gLvDZuv1?{>m1rzV7)bsEnJl)#++HYiK%-_J28l~2;C&q|+ z$(DJ|DL$4hZY4c!uLawM**h*_9y^j8qMzbqZVM*Q?ytd@axpzI9iDuGX8Ec50tO${ zTsUy);E@lw@5-YVxPYQ3EL?Zu23rxSwyZI*2%@Cw_@ZNIe$lpVw9=#ji4H(qfLtmf zvl18oEli|#c9GcHpu0;i>@ut`+W*K@XMM86Yv&OlrSXxB9`Q4{fNktl8jS&ypTF>_Ter&OlWX64FjuZjR4rl%y1o=Ll6dul>+udhOio3Iz5w#g z#)gI_EgpnW3kE*d2z==!C^eOUv2Nyg8?-{pSG(uL;{kT5r0QgnGd=7evGIS@mU9a; zN!XCCeq&Ns2aM&VGG&U0Q!->u8qijJ5RYzPe=A)E`kNPu4t$vMT?slnXf)WQXd*jF ze0Dh|K+B61dF~>BMZ^-R3{m4HStB!~iGGXh=j>ub4mlfS3kuVx$>Vk5NAPp>XDWRu zBUs=SpeXx?UB)g-jcd+~4Tf5i;YlX=#GAa=_8i%lv?EV}Ip zjoBi3SS5x^xjluey+=1{(;IQk8A=CpeJBt3aQ}{^*V?%P1&@%)ko;hFv9F%wp}48S zyJ_+gYQf)4e$@oCPf$<*my9sjF`@9@ugJTkR{X3prSZu}3<_z17FH3C-#snn8t29? zpCb|;{Jv*nh{YRb`k^qc$SCaBMWPY8GcsF!ftDTa6N)Rj1LH=;rI_`(XQg~zA&6%c ztMJ7bZVED{L#I(Jz_|x=aFSSmTVyk4sk3U< zc!gWuTN5qmME-{dd4dz#Nkq~ID=NWY3P~n5#fS6T+d3DaOc?rjtTh74$L;eTMReMS z%^mmO>agxr_h0;bY_Dov6J7Ef;fb6Wgm-7J9JspSdxl#^?Q)CDKL=POACc#_47Z*6 zB-Qf{8f63yM*&JMvFOK-O4Fi(*7+rlBl(66c{aQ{tj})t$T@Eb5mx$$51qo)+3h@H zQ67o-Z?1e=U;kYYKFX|z`(n*Hyc{*T|CG-5{LTW_$XQSwiQl=F$V5B4%yGa41hP62 z0Wa@%^MnlinW;o;Ho{b%Nfs#SEK{avgi_Md9!BG~M!;qofawU9fk-*MA50WJEMdKy z7+uP0^|j`=b)!9+N*=borjoI560wUS?i!a^34gPQN3yRUdJ@N5`)`8Cwe4--ETl+Yt1VE|^u?MS(2^%;e&?ycrCE~j=q`!}VLWT;ru*BI0$*ibxpXEcKr`#RXo%`EjgB7W?drnY9^nOMTPaqut&2&XZ(ICyFUOD8`1pvc_+bo&?RkSPl< za+7D~=paaPMs<>xFMiXV%@(u9s)Uj$=C?dk9u)1T|ACl9+1V;}qtla9>k=x`S!-iX)l>#(DgA!53Mx%{v-*#h=+mI2jK$NBXFdMCpqe2lNC!6r4+8z zCB0xZ$bWTkJuP`=<|J6;s1~R$D%zOq1MXvTvJTXshi&hY>$UU}N+v_rg8pB!Etpn; z^;P66Y@|-I%lJ|z18GEjSFy`${1k-Bc74eL=!sI>)t9IpF-YjJinrGNh!q+Xs3YL3 zw7^Fku(GhQ;N!w_#p#*%^X2w9NtWvGDZGJ71gmFQXSgn9?u@s2W^UZa-jSsxZKc^p z-aoA5_PS>f)Oic@3^Cz50Vlu}Pc@V28m@S+SWlTFE7cI4H14&jT5|A==^IFuH_aBs zK~XZ|b-M?BJ0BoO%wG9d8{;e5ry7==0c?I;N4k4Su}{BOTSmv`e}Wf_4)6^BQdpVg z-w$-Z+-|FKdh3q5@ncT&X2!$DUE(SQMOOb@+Kks27zq~(HqR){%zEG3ka=Y_DmRd0 zyDosWji=_}Lz2=aFZkP~qCtrVTMK_+=Ct8w?}IIb{tE%c$4=3+&CQ=%|HrRpM8J?R z&9(I;e6b}Cn{Zt-dpTC2B8O*_++xLDs>cW26}|phX~T5WpAZz`3aJb8YW?)v{x17b z$Bw0R^i7yk3as&8IM-GT)r3{WnTA=Om%&H<_m$aBwoOc|W@p{g@!ftBYH$aiyjlb& z!Mw=yz1{TloE1!%n0 z$d+AbtUtX{*KG_)^R~#?vFZ>!k>lt6WNeJH%{S>Ys~qM5bP{a*0Q&a-kolvrrun1G*NwxNW1cV6i#)l=2Y&i3gQ@Vl<`I4!^rZ&I7c3o3ATt@W zaF4ejO%$h_Vh{@OH{{0>^ZP)?E=i1^Pq}XkGkXtIcB}-+$IS}q`+HbyyFmNn52L41 z&g!a$Al~bIf4W{=a-Vw@XxWa#JCmt%kcdWtgoprtZR+UW>%J@cX1FLOrTgS{n7(7H z$A>t_R;re-U5raWLT%=`?HlgGw4d4GAgP_qSh(}7DIJ(EtW$p+yP1Yxk%)L&WWYx= zEQyOA?t$Xq@25}WEEM?bgfaAqA*`n7SleJxSrJFGaiE(7(Cs|E_#n;N6R*lP6u6I* z9M#>0hsmazm!jA8m9qJaw5eaa%Q;*6iO! z)j01dqt-X7!sLf6OaPOF^K69$5%N$M9nDMnc;=7KZcDjq}td7nM^ycx^e ze{KUwt1OYLPO*epmXl+S(a)?wR+(FwmNfnX5?FfUJR=?B_WF{_7=+sEn9R+-F!A{M zO8fx)?i@tYz($aQOZ=lc-z-29HPg~QCpl1Mq9i0FxFNU2A!?-`Qxcr3-GCu+1JxIf z%LileOooIbCTAOy{5AAhJ|_BGj4{=QZ;R$KO1Bw!Y1in+QjMEtBosK(pQ&@QmLCqh zOC9Mi@`>PvhJCm*w7PDx86JUwPW*<6(1v%R1eNakB27CTB;7Y*kdiDQ7eW$u^jCkf!@9~ z5&#aQ$=&QHl8J4*yA~+d+SjrlpFFeYDDv9_V|oENi=Sv0_Qf(wGu`BQL1;I~+00dal8pMM}{zojnfxQS+U*$&f=S*35!z6W3}-Xx0WGjsbjjFh%h8UC}m0tsp5U$2`i7 z^vb~H9^)hZu~O`Z#NNhTGB9`7Era|t+gaH9s$?n7P#c|>R9j0d@G84`G%8>l*RhuD zDQ?O}Ecj;Pk$&@M?s!3CCtDG3P+vIz=h;%R3g#_Immc6s;G_O;1yA!#U0x$DO3zp7 z9@4QOyi-#AK#UchhM3u$Bs0vio0|{|*VT@s`Y$lsV(qbO8Dojm8~1%a#CVsuU%ahK zNll90D0ZLkU5BtMN(hCEC@c=y1FiZw zv;=0(f`+tqsadsJ#-?ScV*h!6C3ngHu4aUJ@dbALqs6(?cW$DBH3yupJs{U57jEk2 zpMM^iJr$C|9Ggys*5*cuw&LBb!-4KAv)7W;SS^D&wg!|i z@W9C|$&L=iarmlmL?J=Ika}^QtAVc6$Uj59?jUT>+~X>=$IHh5oYK7j%Fjx$?CBVr zDs&_Uc{skvK95k8UH(AzjPWNO&4({0TWC8|t(k`RLcU5L$K6zpCj3=f=u>HSub$Y) zpkT<)q@S5MiS0^8KmL`+nT>b2BjF}T<2>UIn)+W-5KlFuz2-mkF>B)BfeA> z_OYO>B^^1)+WhAmIL!0SYJ$nd8s|h_%Iq^>tFJP?C;404WMhIA(4*dywltuuQY}7h znubF)C zAaR=bdxp(a=Q2`sXK1k4ku~d?hx8mpb)9$MRSvEBTVx<4`15|q$$v&@xuE7Q=sY47 zS;<mE^oYn zLRcxU#vwfvscG0$tp%NR&4Dk{SHiQygj}wFUcK!OJ0arH9^H%F#|JA1Ri3q2Ek~c` z_GchqxX{3^z+B(G)S3=zO%;!ImppuVx16HG0Omo}?HYboCgl#PzzXz&+3t>n!!)SL)!`p;pT-=)ZjSm|)9w*_c*X z-7)izcFU9&{rs!tKdq8SMstKYm?14eF6|6*jp}de6@*grE7{e>I(T3C@)K&iE?wPY z4LE^hEuge!>+WZ6J!DtDnxM0*wdMW+FA$!ultQD8^h$L1=}(b#$d zzKU!wkIG@4L}gCgYGP#kdpVG|`Ah~jB+S#ilyYU_x%;fz>^y1ZbPH-YUu&={0DLWV#Ic-T- zD;KsBlKib6IkFc#&1Zx?En91>GWUFZ48Hs$S^`jv4D<>$iZsP_4-)tFbY~QG@#h1# z8mclfUg7CG*P@`<7;D|izm>ZEzp||AWn1yFoMAlVUVN|l@uKRNMAI57n&fP2ZPE2Z zSKK;LRSSqa$K1{8Z_DU{oj==zSF7;w*5T5DR%B;Ko5GmXZ&ugleUa^c=_9Rq(%$B9 z+fu^!+B&QK+fHkZaiUaaNTz$xxb0JcWlD;G3X1%>16R1*r`phQ?tq51*Au#?U#mfR zuX*2NgwOSi8;q=~5z|wRmE%}O8pw%e)@By`!*$A5%N&xAV|)r1l0u)TTlBtz;-0<{ z2=sV-x3W{+d3U*BNU3KRmVA7;B%70y8K8fcGzi@g>t`m(JJNlBjY(9;(TN-6|6sc%9_(ta45@I-<_qj(yZIN%U_$wECmvg^N$fyYoNkriWT;K)!?6 zAR-Eq3xWG~owiT^wKmXr>;I7QEp#iE_tWhnMd|%q@M!A&xRnDF_?Y^v*!}E1)oz&5 zTfE)6_PXx5NHY1svqcWW2uZv82GIgnhm^|4K}}Gc|Je{hXQ*Jzsw0YEK^v-`=Oa5Q zOhe?7`b9Fk^?AD|an2*^4V({xvTrTAYUVhHA-CT{x zQv-PtCk<-oeyFb`4pM|+^{Q(5_-eZwhCdYj;0RfYtX%k8@W$IFr<3VZb?PJ&YHG55(>L|mgjHetJ-5?k@)ozo_n2UtIp16h z&e@0PdZtB!_#lu8h%Jd#`bsIe)hjtVa#yZ;?CCzKGhf!gM$0JlTJ*%hVYlUg(CPz` zplcw&OL)kJQaTFrp!=n@Yb|hDgGfgng)0}hr0V-OB8Xd!{iFnPoy{Iv2yWIrb)7VT z4aujtH46wDo=;q4>+}gvzlN!d(AaFDqp^^Zuy1Sj zw#6B>&rWl?IlwI3c%yPsGFA02LS`*<^~}p3uJFsC{4|Cw^mfjOjhwLz2)T$+yjKo= zSdv-^zBA9WRKv#g8vA*olmD4};XAI5P4`oEq}JcT7e-eCX|j5fZt-Jer%RG8T~f78K$bO& zsDWZZ4;HFQcg~lv3Z?pz^l)tHba)?WQ7YC&@$Vd*JTK%{UVbzZf619DDc0Dqf1P7X zI+Tu4BkuQcrIo$3ssZ%VhX_89H)rEAd{|)6_2_y_exG-aiFql09Xcyh$>Y&a zPtWun$6wY`s`lm8i-iPf7s7m3uQxvbt-Q@<*9@Wf$CdwFiM5svxoCxd+&i!lj(VyG zPq1ahm+5mRcd+*(W~wAU|F2L=wR3G6{QGn(CpgIH-9P7XvqRsR7gC74PhL-jI2D}O zf@-+XFcvdNe%tqE9*De!W$5*uW$4M7r43=M@YD+W(f2^^_eKc4PS`;zHgNfohLGpC z4~pweHf_XXf$WcFg6soIqh7ufe|n%coksx?1B zb8BiHBG^#PNtDcUkxxjVan#-NBlB@QON9U1qOk>S42!J0g@zJOex^n~(z~E-Lf#36aO~faOBV za4;1A z`9hxW9p4ub8R^UKPHQ`l_he$jCO6R0P%roxjVw`)F_~Cp^D%bani;0*YcbcRGcr}3 z=Xv`=;Pk|#1arkE9n)e5v)cWc!TOBb2LJ#xiVHl1yQBp+2b)Tm`tO|9 zx@CTNXxDWi_5$u)jY?M&nVW=5^z!nu1xJ6>+}{i8SuiozvNC@Ld}D?FMmtW5*AZV@_SLs-E`Q4`zX;N8z*GJ_`o!jtI$@dNF} zuu+IMMq$+kCU&Py+ZeuJ!-hD->o^`bZn|$E@g3U=On`;wm>8lyju*rSZ>kn&riwvi zcn4)+a*#cJ(XE8-z|$TWFbTtii@!_(zOC;%ga~_tWn-PKA$IqdmsjStPulce##{%j z(C3Ht*%%g51ElT5J%HVV)9y2_>ogTJi#k3SoNYSdOn}Kmai?eacHan^=a-oVh?{D4@7|SO&!ka<88Zy!1&=dS!~)iv%#|bt`xJ)bBO4tpMLuA{sRzW z+{_Je{Q5V)L6Qp`Iz;79fBMT;AKoWXcz^>4k0t2bA*0@?Gu}me%iUY83AaYs(lnaPwKO7E35~wO)h3?77@nfEK-!v>EV;iV>gUw%LF>( zxk=Dc)kiD&UJE40{H&DLacjZcn(%f{7Sp?xwmHyrZV{BUgc6gL_5$d!Vdt@Z#`JeI7jVnv3(5)E_zZk;G5)!()5d5f+jdKb%oUWI zn_p4goz`*lC6L37ksvJJpl59X3-j%*3Vd)&_%ySIjeXpM z(jWg3lD_qjAph~!XZ8(R?H&pAHzKWjP^O~en6lMPN2i*bslq?DqN2dpwmHcDmzFezwp+ndosD)JDyc~hGRCCUw1Tn zJK?JNisLvU9F%@)wr{}X*O$*ZsZwo#l88M6=ZB50+3p4!?eT@2R`AJ)i7+Fb^MD5n zrV^^kTxtgLa%E=Jd0oQtI1X59n5yZBj5!8|LZG!o(=?lO*p^i-6xJ;(Eg~LcLcnd5>Xq*pUptp2@h~wH}}GLYmre| z*IMYBv6r{UK&is?qNfOjh6czd1}&Q-+an)9sj+a-f!$Hr9!DZl88$~1Mdwpfgqx0{ z0*m9DZ@>E$q)lTC$cjEapI^Oy*ABJK+F2r^X1A|fZ5TYkd#^MzYW&M!ab5j|lc`LN zH}@8#)Xm~V<{|NxayC4)9dPgst7madzeh(1?@-`MP)x#700rse<#9ewYx0)zt+rCz z>z=>#{zq@#1U|D*pFW`muib_NniW8N?eo6Pr46Jif3PtAe#`V~opHCAVl` zJID7MY~-h17P>mwRr3vMMTgh)%L3?u(IQIt+b6G$ zu`(YoFHkIQ1_<__+?oK|nZ;`m8yE!CgfvRAPfeT*6xCtk+t+;CAiwqMXfFlu+RdY@u?jfPVu4x{KNpGiB zmg_tb?9f;4P76mhrmC>Z!}t>G9?)5J!qCkaYjz~^O)#*ooqN*p4M6MW01l^V9`aQz~suHJ$W$G@Tg1?QWInd-2{f( zVH4YOzKbSPJB}IQW;lQ>GFfPh@jOqWQd2d9x4?Csm6?@mT@ij=r$^xOA7f+%Xy#^i zUQZT2uM43qb58iIn+}}d{c=gJb=|Y9Ii@hFiK)Q05zZKe+{nlXKs`Nqzs^g9UteGE z;ly%R8xaNVj7Neh9+~goy%&}0Buk79y3P`T!Ku-XW#~b!0f`3Vd(rlsj7(g#YC!Ni zbS9#sMyUDIy0$KwHtBtoV!QT%)<6@ahyp`OQNAv0|h9v-T?xI$IxAggJ{6+ z?jBGHBHpYs!_I3@T$?i3xo&N{SfFiGCFZ^GNP%NoL{O8=YtErJV-J8#G^%4`z${_s ztVU&Fwaz)KAU9ntoNnL!#tgGZ*&$8A)%ZM@W-7X_g@^B39E-Xh6V9%zh0z7Sy}b=M zEf-yD^DQg_*~@l+Asrh+MANQOl<{d}H~HngiGT0hhmn}nZP z5veAsO2u=b`hRc$8iuN z@yIYRxG@}Xa*(wFi^yX>BHRY@&l(WCuIKB^<9VKlSPKt;eaA7ke;!^?q74Fhj)|{p zF%cD1Z7$3zJm#z&n+rbK7!y_{MFrm{)v>Ni1g}2SL{#x1x89?D7(nF)!4&x&8UFHk zZ3nfY^LgE+Rk$-X(0^W+wCtPKx=>)wIiJrr7zVV^U$LzkzF2EjQ`(t`GeX5cSy|Uo zv*UPRtUBk>eB{E|Jhsn!XJWLEN~~+0_!TVq9Vr84hu}QAt`mcnDuObesBCwo&*$?x zm$ep=Zu1#cwT{22eX6!SNENLWnR%YiFI1YuOvlmkg56U#L!;fDKtg4K7VMUuLcW`s z;l37#85|ySOe#FL!pVas2^DMGdvI%6Bf^)%G^3}fDiEYpB}x-vQBe=CN^Qv{-QjtU zm)B~KZ*M%Z2ta;U3h+ZhjI^gF7+<>ai$TK^bijkv>F3nlh1jp0sD>SW;>aU*tV_snKz4NbL<*ZyP0#hEDCYtI|-EUeikuEVCn#b z=`Tx=gvwT(osZ*%nW|!pp{mQ>RB^R#$7lLNrr1bJQDqfxkL-J}-pGR@fNp_{4C>D? z`}FD4oU=hR%!ovv&*vBh78b5mUkk;BugivEJ~q075Ei=5C;shP=bQ(|7sv4!!y2Gx ziR=tJ3?xANZJ8O1hqpZEc;FF%2^*-^i-swFJABZ0R6Io6o*8obujc=#G~T-SPid0-Mw+e2zgrATdLL}iU(Ow#CQ(c?HWa~>0R@Mu=H zH(+aaI_i#T(|cQIjo1_{Dj3E`1a5b9@!;;F{i-TJJssLfeHq|51v?l^6vr7n5mBm( z>OI}bjCb$e1K`5M3J@wYRo*AAj&rz7{KOk0@_QHdYkl|ncFx4wqnb#vF`v3hdSk% zsxq78#ax*nesm6GBx9Vw3{nGH8JrT;)*MSj=bV50+Ydkg#m|{IBj7;t&wu#6{^r|n z{_&e{L2HG%BE%Q99TK1!XBN0&;Y$Lr-#w#N6>(u0m|HM*6Ynqp^+1`%JKT)#yzwuU zis3Ddqy-!{7yhxEp1W-(FH)Ww1Eq_aecvT zlQ!Znqak;W!48P|d}n0loYR+MMog`#;UYqAEbcbmR7Fe+H&EDy`e1tUc6X!RNNp<$ z3r8s5z|8=H+|E9#8F?H>SFc2ypW9d}Bp#}!qGn_HBBt{^;XHXf9taX_BAN+3bSsv!J&!Qqgm1bCh)LMrbQ>8$H;b{4`+~1qPqEBI1$8~f5}z3? zhzjL)-{l?&c3i^=RSWB!12jhj7411;9*;+67C~o3m|m!gZ;;T`S~~o>Jc5gClds$2 zmFc=Jv|qO)-S+;4+jYsd1B5+GRUyZDs}lmV$1SatF>I|186A727mh;RFAM3Bo6@7r zawD{=0{HuLTx=!pAzR1KQ!xw7yLW|zAa=%V90cmCo!M_jCeoQnxm_=6s6%n2joO(tcc zf+8NseN_U2IF7lN?-`x$6B*Q>+{S?IQTIiND&3iwU-&*7Sk=oH#@73Wu>C82MYn*Auc*5EgOoqBa2w5VsCy zB==j}Z4%d=gAQZN9r^?NO*LiKBD$U@yrob*b#8K}f3;P#d&~pwWe%YLSZ-?8ITs?Z z{(zfOJK`$LQLhXa)nm?0%JM8QL6ETOiKBba@^yu5&-1Jb&x0baOGh&pOHVrknxh6S*9i zKQXg=0z_t(Op^V5ccmqJkL2z$6&xync)nt-HRssr)8u}ElRW0E$}uPCk6=S?7R+an zZL4)Mn=KP<%jat`b%XXr(FR|X04O(xt>wb}d_J=xqlQ^*6L!q0LBy7QIl(O=GLJcM zwU05F346bi%=FLSfB%c0|9oAint>?%&wu!X{^q-HfBoxU10Pt|HRl{Q&g+7*rn2@5 z6A?*AV8PgNb_L(K%Fw=er2uRb(!M`S;884e+~gSOR_+IpTc{#Ee<;8bDiR65zSNF< zzs=-2wfYtvea7rXq2wNBTY41yh5HP6m)qS~L?|5)4Vl@T@Y@spdEo{lpW;fWP@B!eY5>^!*prvn8>RK0QTesI$`?3>P zTVD~2%sH~sJ)p$esRBk#{-a^z2n|%D#VQZ;v(V5K)-oAMBf8Xpu@hdjGPZB37bB=t~HOb0|=XxUE5Wax8Ztb z0;f{5^ExX_g{2w0BC1p%ebtsqQD&}d$-bMn0eE-d5s`u9un;B~e1ntPJ{v4HthNl~ zx=tKD?(6Y5)&-ofvSRBAM;nVVQI)UN^-2MIY!wx_D;@pyMJnno#fHHB4n%J6EyS1+ zUFSkg2|Cb@ZDTk}-gG0pI|Q$Q?kv6EJIE0O#@wu=tQ)*HT21kMXdvx*o05nOoA40O9S6C& z6D@7J)`ACOn!N zv)V{AGh61cocI+`&7h= z_{^v)gj5aCdrdKI20wbYuAM9l;j6pb&NJksam=hn6+NN;BKHNXxrhK0q4t_{&SQ4) zn+FqDMkQ5()Wi`n3^Oj;`JGLagoSif&M~j+x@kEuE%4|}5I_gvd7I_#|5a7doqD%* z76}By#^jK1lC?cgL&SP;?Cth+ z9FJzsQ3>m3SgNg@MYk#}_nZWStc)GozR&#HnR1wV0rbTEjAQ3GCTvrva{_73iQkav zpVK9Fkc7569*2m+ZL799Axv9DZ8tt}zZ=(Ds`~c!Bub*1bLJike3@*frc_)7)540X zIW02b@|;=6Jn%lNiLpq65LLadvmJ%nfsBzQaZf&hRc*O^Lt}Hy>N|pN^EOkd&PDB5 zjjZC<#TNLO@Y!hOw_ObA3;x5vGzsnSwN4gA*RuSYV_xervDo~}p5_QwUfgEMtT?qVr+QM{U<*oFR;wU94s{FTk80cenU^yIVkjn-6Zi3de ze0AUkH_HsHiCzN#qWRnJN?bCzWwf3zrvjWj7(HNefsqN{W}PLdMrEayskTD6n8HOuEdH&at~jiLoy4W&uh;4g`;#=IwHJNdu88I5a74r zH;}1qrH?uOXIj-AHIEz;co2UNU2Qp2 z+g~0pSv|?XX(+1UUOi(0a;9h^=W#S~QW#1_9ivMTG{{AB?i_9+W`-OCR7=paJtM5Q)jIU)kOk=OfQv}o7W6;vRi%5;3)FU9YdNs#cU^&Y}cK6c$J@2EjwSL+CRK?D*}01v>{))hJ}vOy0z#$o9^S zaF4)6g-f)m9*+l-prJ?yIAdloSi#|F!!UsqMl3owQG9!0;wkM`m=OjIjt96p$Xv!I zKhJZ{Lv}6%ly}>RgW>-!n~l@Z8IGxq>TZ2gJ4b)^v%bwZJ;rP+kNuuCV#&@f#Lx@x z5ro$r{imogo zX=0+>kuM#Fa;*~+e^5tzI3`^PpdUIO2UZn~M3L)?+8i4Cp8U|hxDby9uZivW3^phT zJP260&g;%F!wGU*>^D!5ntZnVQ-66p-rnBK28%?xiiU@5A24n^blQ?mg{-43p37^e zt8`p|ySuj+get5fH$}lRV1N+AMr5cq%|m%xrXVDWd1dZCy07|Sh7%TE#&GuNWriR$ zzBAjHMJ5=54q|}b9(4B{e2npYd+LA{wGe|Oz(v`C+{9Fci&IsLX+O;3ZJ>113~GDx z-o{?wgE!Nk2>HT5ZwnBoK;pr~loi6t-MI=3Cb7lZC_`Ax(w#+?!;hui&~agV)9nFe zW5 zHFz8c+|AJi6C>cAZ440%32T@gj{|=@h@3?Q9b~ij>5e|ash2FmEMv^on=GIgA36}A z1rI>(z^XPb#faeL_1&;>9LM8$fbk4J7s&tj@Cq6AZ6+5H*SSD@%m$O-@_@}|CvvvW_n@Mr1OZ$`{em7c!Gl(2V646t zu*=8G0~B_Y0M}a9t&YHLXPBam3o48^J(0oTy>GVPJW5NvP1!l$>$;%7f;_B}Advv^ z_Ih5r?T*H@Ij1O}=ZU^2+|TEeC?g^xR)dBL?zx(h$aS5>EF^8oQgy9sU5kj;f(=bj z)g1Hrd>&&m(QypZL3Cq?K(RmqBcgmhpUjD7BHXD;MULah2!t&~#4tOKd5odbJR%Vm zmFv2ykI)#_flt@@%yv~oCK?EWBqBrj7~?>qk_g7#m}4JvRumC|Mkc~pfvkEIo*rIR z*K%P^O4wNUBLcZ4sEDq0bwr*jHJ$EOvRQ=BVXBhNHo-JfB1>4QNDv~U%FNgK0bU=>8gZm#mau+7^dywW?Q8=PpBj|w zxF)N4A<(m|^SZ8ZCLZJHY8_eIuwrJlopTRC@9{X+S^?!^2LtiX^S$nYg?ip-eOG8b}J)^&ZhHm9;V zW39G^5=H84gkxHG2UUp3YKaaE_{D%$W5NYhaY0w6CS1`f zAiG-;c$ZMYmtZ#4oN6tf$E+e#owM}PEH##5gqFj_L`to>OYhl%S zrtYLp7CMf3ohMKc_%~q!1IIz4R8x~-El<{>-g2UP+Yp;+Q8Qj3MFFNi#|(G1vCb=r zCKBmY;O%S25z9s7ye{PI)V5U{!(>cC|E}P`aBlT&=Mx^YA_Lw}m@#4vn}J_6C#;UN zs6b3cL<43)Hb=Po3hRKL&y9kLJm21q$D=BB*iE7sbLMJiNzm$5C4(}&{VG69MTjtS zR_GWeN=0+bYn^b;jL6rQm*w8TNW0!tWf3!2R#gRGD&5s3(CwX;!YpiKQft-Ps;#KF zD6=S;g@nXRw?PHLc`+iw7ZmCdKIV)_kSyVrB|>Oqpc$Fth**uoGTpToRIg}uVbUNb z?dJ!>zqQaYoaZ@@0|i`1bZQTo1a7^>Hf-DPNJR*MqpVIj5hE%blyH)`9YwI4Z>18Z zGOFwz+yuqWQQHi^*v^0LVBRi+d(c%$#puZbSg`v-Pyz6Czt%YBI+rL{G#koP+RhZp zQek8$Gm&T9{6Zp98=pRYgoA4lMJ!c)d3pKsU%vnO&%VA>I*aP}zyH1d=DTly^{el) z2z2zFrlna)$!!n41%z_@1U803cUtS6a(#C(prE1r#kD}pv|Aw%{ZPc=dI9&stm8_- z*q>uYwRo(G;M(k$W8k)bPTWjBKqWYQRn=5HlBwpN+t3CF+JlWaD}W4cYa!gC(stNY z=XK#zZL{gV`Bg+jxtN4N^zJbxl}aa<7gJ@3w)mxuB$~Ngu*eW*)8T&IDs4)#p}Z4a znPrY~o^O;j)FSKgct|U|$|E80N$7pJHS`73JC=w@PZ6yl>E6V%ABceHGQg;322vE1G5^Ui8 z+=gipgHX8E#jL!AIS`>?29C=Nm3!T$xC|2a@bdKBb(Y+2Z~)3d$1WnF?md`tR~h+-Kl}mboK#a067m8ZktC#Q-nx>41_XaHw_Oo)bvT}gnJ9NYcYEaf>S<38 zpP09&8mO|kZ?EfW2Y2Fa_DY~GMrJ3BwF}fJA~B(z0+(5;3~|9ub3oi25LZ(nW?7A3 zFer4}2!{J0n}fEG6i9E&K`4&Qe9Xhl?m^-)W@Z#u6uG-s+!pKrOs}=FX=#b(fvQZ$ zd>j}^Alp=wQ3+;{FwglQgbWmk@>*-1PiPrnYWR401sOv{uIq$zCJ`UUWF{R}9i&ps zoSrJO&UIdwnds2tafHV@*IFywi8zJY7h4om$mJ34B4ZpAG|#D%ML0>AND1*vKuhKr z=i75FuO^YPw^PI*q0D%BdEYjqq&J>`xz;e7W15Zd9wESdfT*suAlMY*IqdoNCdh$n zORurk!n#)x1NjGn+Dy5tl%gsUB5jC(<`~BuMJYroRFQ_vP)a7U0po#W;&6wF2e{aC zOcg8}5J+r}Ijm*bNTKA8+AtNZ%P|x|C67omWKF?n9+R|) zWuu?f7-Ow#Z!3kk1`=Xv-$XJS;hox%x9GMCH7TS##g#i>Dt4?TaNaA=P z2;H`)h`GYQXO*hG94|0FMA}hC!kM7sU$UTb%zoF>;or<=iXSd2k%ce;oCYWsiHgy_ zU;_Z+`0iKVp~H*u4F(T4J9}FBj4Ev7TKk*YB&-|Y=9>^=Yq?<qbLeK+^X`nC?tG4p3SoAv2`IwNRfshUv0~#sZe7CQzyBG6$onR>;8SgqT zG{U!BQ$;9i`BD{l?mz{^TY9Bt2~k;;m^!Keu&t{w2oh#xIj?ITQ`*arRQOsxOm-}I z&UsYDy26w(LE|Kw2+?RA;B~Dz1ZB|jG*dO%e)Do&m#U~}c&bWz6{o5}%ZJSYryH~& zMWkE333?W@tjj%f4i&Yw3>68#wqiC4lT=}~0eo+*fRs@iyke?0w-UsCWvp}6t!OWa z%*V@-S;QHg10Y2F@;H_|;-l~kx2JYD>}pz|<)>%eo^!5_JL?++fg<5i6_~?s@=VJt+7@aDO9Bsv*IVp#2#Cuv66FQu zCZ{q3{E^Qt*moWcb!ZN^yelK$-rio{y{Z}*+RFO--~XsoMhSF@oK@nopS(F zyq?!QEVJgExgD#yP4wGk2}by;fC4qPuOlYKW5TmanAx+V24byo%scJ~a=9_*9z<*x zOCn-PkJ~{p&@2&|C=rcgV33ND14vZun^oCAr)WhC9fYvBc3DYZt4PK)96A8jZ3wa8 zQLpQ1V-OQ7VGdbYB)0%~aFq>U#5%J^o!7Z94h?S~1SL`uVBAaYmG02^L z%uHK0(%xyHvNh;0lAbo&lLWg4I&u=}Q4-{BRgpnVx@kpQFP0)K#LHcW7Ben@IgCZA zvXWE;a&XjiNaH3DT~vD2?bsCq4la_}c0~Y@k+Mo$Ma|}d&Fnk|tf}ziRTT^h+V$y} zZI+Fz8vH0Y)X#As{ZBS5*}TIf5L0 zXgSw)0pzJx@OHKtzSNy71l@lY14d&ejPd52tZ;L!NKz5T@7Y3tw#^bnq@SpGgcPyJ z`}glr@c14iz88YP&Jyl zu8W8tk3(Cbr0{`j*HBfD#muPiwI4mNbwP@qRp8ZOq|>NMv;Ap@r!b;XF>?bB#Y}5m zU?icqfZh9?M#U@wO?`s0dh@G9GPWBObEd1Bdoq&^!!R8KsHUAo?Q#iz@l@+4+YGrpoa+GCe#y zqKiqGm-}^Ia0(!1HBC>^_Rc0|9fO!F3S#Bs@yKfXY!+qFtSI7J`n)adV4Q;SdorTA zhQX(}V1%2rlYC29J#yGMpHEfUv!TwKK;AQ?@Ib@E!-g`+IF8JO+X<|%+&!}8=I$V0 zGB8t+yKi?iUrrfp9c%;tmJSCH7Ut)94VYMZ;^Y#N^E~m_nHgGKCSqk_1*mSrnhHi8 z@IlOQE{063dHQg3og=q3PbM96!e~&KMOhVTWV%0CPf)RX@k3A;+EC!I+GD2{L#^vV z6_4mUGktse#H_#>LDs%A;F)<{i$$pN@pyQIM^w_7=4*)>oOp2#gl7qZDAkUbL>}Hq zngFNX6>Y;Ji&~%B+(VicF=vr=NDJ)V14w)p33Z{t%}7xeO0UdR zlXhox=dtb48+oGzM*O&8LTZ~S33J(J9DM^%7z>W~A zO3%#laJ$va)YhYWTt*`N+0|hM3&ZIN!*>ksL}bhZv#)htHb+qsNkx&0sG_il2uh-! zo4}DVt2ncc$AS6k);EoomJ$)A`!(!{T+EtLI&`gtg8Evns^gdmiBNli88(WIQOwUz z&pBri1lEPo&Kx5=@7n?fzL?ogxJWV)Nk%Y;n#F1c=MXVlt!Ig~&Uf$LcWNJVcx>S^ zt0*MqK*@noS0)Lk`>?qp01e6Kq}m0t>~`<8ihz#4(Kap>LjyPGj7X|9)5vlp`BE(p zVT!2RD+a={>pV@({lfK}S(#B8duqi(9ElK|rKaH_qGkqi9i2q*=I_R3sxzZWAu6$XizodqnuTGx3Lxb z<}LHfjPrVW^uS!Z1BKI|I2=kl>h0M%k zGp5ju}KKxgLj zd17EP%v#PsMMTfHXF_g1bX^y0-oTJSmxr1Uw$7E?!kA$*qTx=AgajSa5*e2)=kv{m zC9{Y{`aB*0f9{%ojuF>_ArTgXuK*HaHWI8*2frZad7PF&-fQ zMr4s>rJ7AU&>s{LOPft55sZDtoMINSj>l1nq;_GJV~)xUFCqeu=jG*q8<<*| z4S1%*%0gA#{g{u+_G*8gPp%rn%!GuF<3JUS*uaJ@R5NI;Wn&;f{wDV2=1^C}wU(Mi z6(zZ^a(DMVvo2SMA`+)_%kYXL zNmP#G(SfjA7`fI3(XD$@)wP}?7VD}?#I06gF3T#q1yxbmUD!L+i1ga9@2T&~4O7d&LSA_Kn%o25j z*gPH|fBFcufOef&Ok#5a;X>Smh^a_%G4q^<2rGQj>$7@T%#O#Q!Yp!LryTh}MNB=+<%QFfq#vAV_l_#n@|#JwNAwY?_63hOD|rd2&@|&^8)nlA?MX zuWxV9+hHd&g~>#hUob%xVy0GDWaM?8qU!4cVMGO3EmJaOv(rRnnnDsStXvFz$J^T* z@+6iAF{zpRRm8gMKn%y$T7cKbJTS;hPpaNQU^;W-yio2GeCC+s_Q~U-6$?~dW}+ky zuVPbykyB-*=W)EO1zz*#EF@wX)1<>oc;$t=9G)=5v^=0`%8a7C)&f1OGs#4m35%`O z`J{Lk;a-*Q?&+0Pm1gpIOz4sA&5K!QTVZgUG=3iyvh+h>}@*xfi)F3`JFyf^=XZG~aN0-z;Sll}MjD;437; zX7h0zQ4Y?H8hGFw;Y19QgPD3jld7oSnWY0LnNcyVb@3J!hj)~hXYvi5Hw(BmP99;y zFmHjawyGY-gtQ5*CDI_TYxM{#0`XPN9=t&CJ&lB6sAQ1P)?wWkglYd|e)CrptXEP1}IxUe&@K zx1hH3x@Pz>CW)-`q9ipPYDGyq$Xp5_%*+S^4ZK3s)^&|BuzH`@g(w*!svuUr&L@Di z=kxjc@>-eUX%ka^hTlJNnGIwhpfC?Fkk(Bt!=uR8g#miQ8HhgZybyv<7L2()!&IvI zQI~ACc2stky#Jtx$bfksvH?X!F{5gBqYjv{2@A;T{fCC_0C-~NIc!B#2eKr!l!m~B zj7U>cRoK2L%rx4$t;aG5>k0Rr)~GBT1&__`Xw#Qg4?l@1!x2qzUDuc+Bdf=QFc(GQ zYJx!s>%N4=3L`1He<;ph6kAMOaOJEp(}>DuUvvpO#9G_{A%!X-rJFh1T$Cb~2ou-m z6kXA_%r4sLchYhSQEMSS3DE`ftY*20FrU|HWA^+RRu-(P{Ns-wKfHer<)8GC3 zf8UxwiXDQvx5Ts=9zrsvVG57z190`ik!C>9DPd3s{wHcBGmZ4DU=XT_kl=x$FTAR9 zjNzU(Mo{Y!L^Pu%7ZEY7$`5XZyc3*nl0LxS{D6^3IWoA`K8{_$y zxXimJ%F`FT z`_&X=XH^|@b`S;7b{kBrJ0uLY8#ZjMD?F~XL=^J>&(@DsLj*E2q9TQ_rbRlniCspf zUk*_p6ZyK(61hjFV?=Wt58_Hl@0i|x`Y0k}Uzya=kood>83wN_Qqg%#Wnq!1%5)ta z4&d&>ih_V(D8nM!=5}o!L`V!`kj#jyV#u%`ROm~lDk?XqD47cvJ7PDkAx=0yA%+|UP_V|4JbY7SHf(TedK7D$7 zbf6+VuO|tOF@_ifFE1~znc*HqaJC$j6z*@Iodi#uCF}CV39E< z`nn_Nut^pL2`} z^YoiUAq-q46CT5+!`DKlPbKJ)K}^RntBOhBtymQ}wL6NJ+62VZ%qGfrF=HY$x~=bL z5m8naqO39-vC52_lCSN8d0xxiG5(+A8v5zx1mgGU)v)`BZxCLsN4LPdyxBo>uMsdAfXK`kc2 zHsC3TD&!wsAc3@C(MH|jVVmhJ68~jK>_95Jv&6TIg~y6M{BTl z5_~f#B3>TzJfA8is^@j$YKbToUVd3es;4qXrO9pXJlkw`%!ptrlQGnwlRD-Bxea#9 z7!yH!qH1cMiCz%MkE&khbBqCv8M=`3I$vI1n2AKF$d}`MY6IvZk^2BCeKRbrNar4#FdBFSukBV1K5;01@TC{@ips7i4fDOa&5E7Nuvt5(WXWfj~w z72>a=IS(@hZOIX1kq$8dz9tpOVzr$eNtH7S)9ya71m0B!Q*V&IhFVZgn^_Ly$xqKu z#~fqK1;2Pe3Tw43awjg9u!vx8#o=qr0|q-Hgif?|=6@{mpmZ{_5Airb=Q`Q#DPTzYuytn*^7A zB9K5kwNtncWSB-HJOY;%;_O71U&E%bWWaY6uv%YGY7BWT5k;&qW>%RhY_!mDg#g?@ zBfp0bt7&-J&~}Mcbzfu5O*Eo8$91jcD>F?6`)ZxnaU2mY#4J12RAr}o2(th{XkYH? zgRJezNf7gnOptIdlJA5&Pm?%tER>Y*G;mfvd6LJ*X_g>s(@rV|3+ZYMlbN z7A`L|1qd9d;&~WsD?C`*93kupZ9Ge1tpRw5h&5pYD#D)Gr5fD>K6vI99?0 zY+DTrpH*e(SROC052_50-yN)2&mY$n>7XWqQo8xpuruL{XCy$hcIU)&gCb_ zozy(4ag1CkDj8W`*m0fi7zq*9F=xQM5Nz2hMhCsgIvGhKu^fbS_>y;)8cfX^yXAXMmp+Hpos35%{C5Yl5Fl5%;pJG z;FdY;odj19EPXWvtrcDzW}~wmcb=w)!*`+?vQ?0f$R-wRo6uvU5!jXp=QSM_AV^3= zuyRyL^(Z0D~8&QnBVyFuo0QBFAqq|gvq1aL%BP$bZ1rSHi|NR=zM#A8p9~l%&4$x2NA&q zz_Wx%RIhca3T=7obvbBo7|~?A@iL1zq#|mj=KJM>z4km$SW+mIs#WeWOnSvf%yCea z`-MXg{B8)5Sy+XS@rdmJiPWn(2Rxv&N|>+f)Hb1q8F8raoO5()1b4hZbG7hBS^?3a zw<7Dhs&Wif8&qjJ0Icr`Te~WX5XkAwviuTJN>YO$R@*pf*ccNsoVBjV8a7lpD=^#0 zz(qox?L;z6z1rweOalNQ!@QTPXv_hLa8?&q#E0pkY9D0WtG`* z4_3L>Q(7?#IgBL8?-gn`$Mkh!;DJ-4Dq+|8MY6E?y3nq*_FAoqRyuq(DpL)_Wxm~Y zTIkz2q0f_T~A0Pcsb#&=Zx%cwHCx=YWa1P{(ZRXeLvJXs3d7jOLe6 znzbnp!a6%tg?NRFNHL%1n_mtR=rFmKXQisJB4ArHgM`Hf3w?P1UKN3}&diU;Bf^OZ z=1L~*GCaq@EHLAXOdD+%KtTY}co#9RFApe;)YMeoK7E3{Koz~dJk%hZ<;chkf~8u9 z`vSKv3yJBQf*|CH?1DD?rUAX+_}j8@(5O;ZKQ&Pq&W^@j$9GRMDDeGjj0f5 zga=gtrWc_ISG75gPai+Qm}14U0cS*t2on}+Q+8u3;>aTA%tG9)n2kBde5egzJuk-t zLTwTXqN)&+@D!5>M@Z&%ULYp2kf{nOD;INdiLhtc9C#|noSC6ER5UuZSpI^hk|i zQPweMF#$Bw$JA;^ z$KlvPRQa|EA{B|)Xo<4fKv8|I3z9$Ff)P%Y+EMp)x#M(>%yCTJ>B&6`sw6I;G!TnN zmZ@YGg23ZiEMoJq*2RL5+*%RX8 zv(SVU9NTJ>J@)jL;g~5YZVr}qVo|Zoh-`OnP)R{w#dOYwy01OpCD2!Vt>Vh4Fvs-nuQ%aZDy&>l*My8e^^N zdM;!vP*TQ%FH%Mzabi!rDKohcyS_~c3;u!?873m4E0&5$foGX;wu(rbBO`V$`2T~c zKWnlixvq4K@km7FRWky4ro;YQn^i|BKWx3*RfX+*%qoBtodp>q71qjDKifnEASHhZUJNw4@MJ~gjp`DsQWkuwLE+l3{M*=hRO;KR7R*f z3bb5V)jm8{m?;>0P3(?SZ&XxM4|O8WSfY+O2@4>fX?|p76K|^!NmCV7L>yy?8bo^; z1#Uf*XJTr~s&>EMKF;P^GmdlM931YQNz_W*#K+-k8`OznP(=#1oLHtNyb0Y+jeS~Y ziIAG3FT_T%pHv@AtDcag#sLSFem6~^HkhjxHzU3Xb9`Z{>R54%bFDBFm~}E@m)>Af z@5~FIbEygD)TS1d_jRGyyWY3^(bPy4!6KdZyQs0|KB`5bMk;2?V&P&^B!@y8$b_== zv49eH;WB`a$~wQsX>Q84V^FiQ0CXE`0ssPir2BxAITN6a9XdcWO`g={$WLrMj40+04iQ6%Et!ZMLqA;QNoz}Zn19Qi`h zv>yohf-LP9*pR8rc&n>KWzOXr>%9Lr;yNl@m?|r>h|0}@_#nmx!xRE|CMJ5%d)UCn zDLZ{Qf)ho!v-we*GVid?Sb3Zya&5?w?1&0gAT4QCbOIrgO-U@(WM-~AN777CYT;YQ zZnKg=*uj)_iCTBvajRLZ#oQ1ABBG+2xLRFTL}VCr zFPVsCfq+-s@(vNHjg)#)1C-Z>h!Ydv^M=S2V#f{IVnTECgq*U7RugfbA0H18iXu}~ zQ8FW1bc?c?BSKwct_=wzsV-KPrpWc($9GSfA6C)aolo8%27*-8%#!X5O_)1E2!z4ub`5;0>tCAmVCPscWoyTz^k3v}d7}$jYEBcT#NtoA4=8~O~b%5Da+%R`WB<7)Aa7 zX2a?wI_E8_;O;V!n!n#~Rb^tZ8355f#=s*4>3wmVdv&ilshX8%EJ%R%K!!Ogc3ef* z7x^+)R+bpgxtfZ);g!oO>ODaPrUe2g?8Go{e8d$v?2uMdCN|en!HnD1oaWX@jEhCj z1ps^_5kU(C_y#^y!OJeFXA8UT%)lA_TT92SOjjaCc73U#={*Ms?t?VoVy2sXQc7-MJ5rCVS8NFwAQ4i zV+_QgYzXJGUTC5*tfGp_)ha_&BNOv($O`Y6;~|Szgo>hyzwS%Ss*{jdVS|N87-Upt zcGLU1)vdtzfCMFL#xznuV~|Ls>O|%0BBa7iu=X1f18y)^uu=wf)g3Wxr(;wEs|+8V zT@|9%QLwjcGwzd>?KU!7m{?@aWoDw>v^f%Z?Ri6^9L1rlG1HniAQk2YfCLes*t)=h zW627bcQeD(vkJj210TB&qRy)BJdY26Qm~?3>puJd!H%ltb-!LO6$w!AiK0SHsXM`a z&tmSwM^xhZ&RQaR-M|WhdIlr(c8~MCp>;$opJ~)oY8n;yS>OJds&=Bf&-P`8S87?!I}*+Dky^M89rnsdUqsA#NK(bC_h3{HB-hJ_oy|%odhQt$_<1r1~fuV5sRAK zP1yeW*Z=1?zxqvAKnf)+`+)w_pZ={@0LezQwRVT88>AYx-1AJGV?r6V%mH{gwl(cNHv>n zttc{#We2$uC@sod)KLKp%32HVdzhOA>7_d(l{zURk8xC|i6g=sS=z|KLW)xF$Zcj; zz?6|P^dzn-1WO;^{i-rlEmu~j?!9WbRqy+4X7Bqx4o7T9vy8)YCG_kFl~7eC8e_Pan%*G*OhOxO-$gs|e~YZg8S|+mT)$ z*Zmd|$74nX?s=Q2EUa*Az%^31T|a7n)*m~?s=U|d3u_T{w9%weEN67pap z>l_1lug7tq0Yca#5fvD0fh7SKk(teh{Zf_S1Dl$OB0CCeL-11`+A7GLS=o^RiS1ge zx7k{RNo^p-5_!-*9E=M!jeK$)si`@hK(fp@j)S`IIWrQ=p(m7>0sd`*4>@44;72im z=K<%gC|8jRM+P--A0jYY*!V?mc}-SC06X^!{8rgF#KV|*UH2C&KO;>wHkh|$OOl^i zYc~@`l$%usf_hB7x>fk+Z=Zko!|%IE(OV1s&p-cJfBNB%Km70`igtQ_RRuEmpM=Ai zHQeX{HN}oo+rhw?d6_Hi+<{UtFa)YYA6yyA6IE?wS!K=p%1j^51rTKs(Tsp^#>}?t z5h?CIx~sBQB*ay?OI2;f0tQ7k+fdBmK_bj6kmV zLn5QNRcs8;EawKNS$#0V1v+j7tTU1?<>j_wr=oTT>0XjWskG*$`OvIIs zdz-b1Rd+Q9$TEYZXMlKxt0N!1vJu%rRgr6$gC2DFfXW5O=v=eDmV1DWb&2?P#|n#R z#yXB;Rdune5Oe0j(Y!0i!pygT8^ouHQXSDO=yQ+5tGc>!#Rl&(fI+g>bhF6ZnF#=k zv52yXS5;T_6Mp+xRm;XOGc^#}=5ZX&dm6U09GTbCBt>SdDXN=0NW3BdnL{GP@G)ck zqKIcm;0zke8FRaGNg|fJBLk_kB2$fpWv__(T5nuQIUdKDF> zScxj(k+q1KJIIrOOR|W{iYRJsj)=%);kBZRSjg0wX+>gdhiMG6KIxsCTSUw@j6f6X zHuI`b)-1}(u3Bq~nwoWO34pm%x2Ou!`}5Q6=$$Pfk*Q*;TvW7!+l99Y1Q+s7Sj6CV zm*kl4>wY~qH_Z&G%_@4o-=dmbwPido?{QNDB|7I6QWDCn^E{L#YfEvu39@tumiLG< z^E?L>pJ+hFIrd16jkz;hRcu&gJqq2zKV-Ulbc7MZw~2)rWQ*POJV;-@655EnMlLBGTUU@xa3^VJl>$)M1b~7AsAaNp@#?)fPFP>u<3(cu|wP)IwL?EUzv({H;>jM$qez{5ztVE=`qXO;N_7U=?BdJJteg!@V ziaO0@*FAmXpV(b9D>8+-Ga*+%9>{SV%#s%e1QRSB&s+=O6r5)$%=7|6gzPzz?}(l9~u-aYfy z)~ebDH8Y*fuA0uNpjnSrh@qIi1)1T(mywx{#?1XV4& zO+{ogkK7F=mWPMe2_4V25;U`b0E^ER#*K9!M4zEMGZd zsoL&c2wP(VI*zHcNkm13xS4nyM+O+OQW2~s#M!B=?%qsmPU=>KLaQ?Oo}?3<=c^h7 z*d59gu~emzb)?(LT3yssS;siwsl^L9=cS^>faC0L3;-IG3+{@>HX<_?MzjY`XVslp zDoR3!kDUw53`}r$MI`h+V_4*#7|wfk6`X$t>AERZ9miNJR8JI0KxyPL7i(@6?YpY6F&3$JRSDAZdR+amZC%z~m+>bfu zHb(gq7bI4hehli)Sd2puf+0~N!cqv)Bg8cCi9Hf;D}L{Yr{1zm+6paiSR^;{pNLvn zYNODhppfBi?y=Wv_Pnloj8TtmOq4ShCYHi-&--;8Yc03YyL)PoHv7p6VG*|ho$N7Q zB$R74;5j0d0WAkg71%MxVND$YB;bQ7#~U z7YPN24-?_F@ZfbsswqY&qR{0~H9}yw_jk?tb){s5nwwiki*8ozqqtb6#v;{es%|#t z?c-=jr!Wa&`TTqXu?d1`WMre}<5-6>ZRHZ;h{}lL7?Fuej=F#U``;1qocDPk z0h0fM5ywwI{d+$#4JJxz@Av1gfBkD9_Ej`i$P*Xx6@b0R=MULgL1aQo9(7SuQ^tbv z56n3+-7K4Kkh&_1i@w-Yszy~1IQ0V_R5ir)ifH7*8nn7xv4OQOyG~U>6!Q`o6cUEPVn(YQd5w7hS6Z4G+Y)!B8 zmDO7`$%y-7Pz>(teVj){*%&~bsTlrcGFt7nGtiY$)ePh z)c{#Mk?`8onIVkLX^L(|FfN;@lHE2bK9~Et#xWiTwhi-ZzTFQr8Nj44$@Ts;EG@ya zi>^*{ui`mxcb{uMEFWX#Qqfph!xiwe6Ch%d2t!{{8M*av1siaEG$t{#hi#j*g{ zqpW}a8gUqFqCTlo)%WN1tM5LDHv<=?G(d>L*f+4SAYDdw3?t38wra9)Oc%9aFVWTN zKzS`6E_-0lMTItJhm0VCv-{ai6UH&hPE63iiOB19?%+NEiMD}mU3DG@2@gjU9(KWn3Bd57CSc&9Rm61-LvuGB?wHsjaS|#{VuXs4Z;?2y zb)UzH2%@#nwmXb4Ft@@xC(PqD)?65J;y79>RiD8xz%#^n$#t6&mAO|WmT_3I1}-r3 z&YtrgV^oBQx*sb8?5N{7D$~?hxw~S)ShYP-I|+fgs8x~cDo74vWfocU?&7G$gngb6 zl$0~(x=pR3?C^D6cAVGyLZv2}u!EHl~M}ft*Zyv((KZv6gP| zCacOlCsz~GILD(JggLl~JF6dKEpW;Oxu=f-_62oc?;H1(nP#S&XC^R>-DKw2iOsdZ zrg%Omp+`)>}+Dhg~$S)u|t$Ptkl!+j$o zAR%QCiiwzx<3M`sF^;Hm_l%_~A{Zfd&NU8)jcd+Z#E?z(?ep7?DveTA+jdr(E6vnY zOzoPt!`o7|Rk+=2Efaf2i%f)cRHQ_14(D~f-A_;-&eu8b+gv*dh8Ht$ZXrQ}sIWw2 zA(*L&Rn}Zh1m_c$eyW<4`j`nG?**cEb`PSWYb~>}Pj(h)-uGNoY@5P&BCzCIqROHG zJ<@~DK$i>=2=05_6Ol2X*J_Lhc&&8++f?1vbKS@JQkJ=*i@uynNRFW9%qptGk3FO& z0k{tN15g=ZDGL2@c781h|I|#hcNbEfpWoi+#|K=0NSFf81%d6V(i>v8^KwiuTD98p z4^oAkgLb00aI9b^F-5Msick?X!N-LaR#RsL&emPyHLEaIdG21>uh)nujAh~U-v{U( zy($z=XrD#-y6j_RK1(rx8V~VJV zf|>-eFr3XS>ZVyW?+eIQW@@T=$9KQ_t`a0X#j2pWPal!n-+)#OZLg|6TP#~^Wv*_B zf1H}`IWcX)+`(*Mr98&b)JRR-GA1!tNn-^jyvPL>;Y7Bq5dM`pZ#VVfx^YCb?rFZe z1k54lyjYEiAVVaks-F1tm@^u#C1{-Cl9+2Ubi^1CndM4kq!AG?nphoge({_v;$w*H z{}YnG#_-_-E1!PC-`AS<1UDlw1By&yuFNrx?v73@`_Ua%mF@U-?j}G&(3}nT`(7%% zA~IqCXycB+Gc-ns?gWxz7hI@Vjj0-nI#Y*;5Z^1(4zWXHW>s(62F_@OMU25R+L%nt!-%@} z0cdLP_xt1Hh1Cdiqk;yhS=O4olj3%cr1D113X8cCmAMnqF%HbcafEFR9Qa2fZhGA} zwD%A0hrn_~r2z^vaEjT1u%GO0lNVugJI^z7w>eM$p?zUF${Uo&sn{MsK9zavE z3dvqIi0H3AepUM?$!^}S0TJGLTrkk^uDQe&1^DYYfl0Gt#7YsKbDC;%KiXBIst2jF zH@w50<+1QIDa(1BO>`V5@%E}vlMgc};mzft{A8w?sECh?W0Aa<&dOcarkIb84S#?MrlrY^!#GGnPS@RA#!0%s=inhX42 zRa13lLX2tQ7bg;yYtDoMwx%#&*Joy`%ah4%)iuUJB<8NBYFp$32r@*Ik(rsp#|D8B z4$V4V=URzvaAdAEMdaA?s3MZ#BO*V}*D(eW-}5aZBwU#w7S5Qay6#1pYt62Dzu!>{ z5#u64wejd1$dx_LLsdHV?5UeD3V>7q-zIYYOwD~TlL0@wQ*psLAvNpH%&fJ~vN2A4 z$W2({VldjoH0Kmy0D~%vs?5i{=UQ{#v$7(hw@eeJ>bcgUrf!N(2zbXakYKrTxet02 z6vr4Ue6OXf#C*R$nYc2xnT(j4Ga`{nQsBt*7{1mm#?4K*NVkxTn@Uxh(nKq&tHwAY z^L4&57ZHy!R;+A5VnvkaS`d{NblimN6Gfr9du5CL>TEy59(H$ zws;Q&l5YCdci&Y7!o@SAA{Aar-p#JCG*zr3rp&0W1X!Qg#N3UlBQq=i`@jDi%S;i; zs{Os=Sv1=cD^u;P-~Q$|YfU0-vG(|kh}Mb~aE2D|$C`5`)&;`cS+Cc*R)|P;%{4)g z`S^Gp$JmOKBqYlL2gR)1#oJECEKmsSJozyk>cXtb%l6haiKyOZ-?l`L^Lf{i3qtt91=bF=O06$-igS%C=vxW~eCWz;Nb&9C)x3TK` zeI4h4j4o_QSa?PtOsit45DO;^g)9hA#JzTF0nm(+RJV@Aq-zHU5(@AtdA%vE;a znN((0B3l4=Dp+(w2Nt9*R^13>$Y|nrGyM9Qp(aK35NMT|YwfKGsK-^E06%9{6cL$8 zH<^owG;b)msWnmLf-LsFXIDn%nv2jAbY0h*n(q0AJfE7HtBBM*GgV~_H#5pO++nfG z*t2yJ>gviI=YeyIn7;e?HSK^=7qk0)UGF!tN@Itm6{tqp8JQ11ws9?uF_=k6XWXvJ zOcD8d4WQHzumT12j&u@H8`XRq2gcKE8y-F9#6}uQ3>YAUMSZYHZF)Ua#w*ukVNsd) zyysHo>|~~Kyuhtq_w3B!hG!DVyjf+2$O?pzaA&R+tjtX7zGH=|jWLdKn!9i98k=gu zN&`*zIGC8aRCvzV>si|Tad5DS8pRf7%~gTTd}hphzOOfO42asycL@#q1Z4YSTSx5U!fX2aaM7`BH_q~q8w?2&ead|zx46(aK7Bv^*+^fd$%4Q*b z0?kPXoDuBM(JLY1S{RWNCL$Z6s1lK5IKeQDzNHAw3kxEz1hHxIOt-hk3iIwSAhK{) zsF^|FHJ6$pDSZsD>a5^xzLOPl~@Js4_whAno$tqAkU4P zA}3Wd=J-&sGcognF(e>|R<84PX2gb5F|(+oQi2$iu*p{)}*CnbL9~F%mDPylPnHeFU}4Kwy5bVYs#v-GKHW)808#n;{6r8MAgITACUC~oX4X+yx*W%WpDH4O53^x7 z`U@cceP0k7dBTCqY`O!@0Z3R8Fgz@XTOdYqquy@AZIZxdf}UWdCVf6VG`Qz+f-frbidkR} zB4Kad&wQ-akM1BcgjvM*`9UPYYFj=48R+>sAy{IfjDq>CDe>ig3D~Jg0AFK7!Z%eB zx2SE(5KCrMH{v+3(xlCB-fIjq|NB4w{`=qkuAYEwRrxP03IFwf{4rM`POYjl!`yeu zWT%e-^93FyKO9XGTq+sM-QoWf6%_+=sEUr^2zsE+77^?^Av0p;=2o-&p6GTn0+eam z3Vr4h94yCHvo!C!sgS&xYB zQneZDb-YxSxl~M4Vg-KgDuV=WBy zRFsf2+l-qviBxn)Q}iB;zyX9Wh*`SH&5=X)d^l2>2sZ)nzMr@j+Sx-JQy(k9_t-xY zuzd8D(Svix@B7A*R#*X$hjzBQlz7K8?&T{W^1O0w^GJ1MxB;@_;BY|{zykZbVpZer z-4t=7@JI3-pw*E9e|C3eZXw6Ycyh;gtWwub@S&#cgyKM1nR%^sp69wRGiTw61&L~9 zA?(;h5Vo+PfckvnV>IZSYETELfSYFj`~Uo(fBBa`V7AuWMEn=%p#S~f|6R=h8dL-S zm#{)b1cM{dHUp7PU-m*E@Il{ypadku0QS=}g8^_I!a&rdSO6gNqKOV4J4lfjYIEIp zh(6Tt-hP~H7Kp|OX(^aB?}UZpgp6U{m#U%ACN74J5Zesi@+@JlY)Fw!KsVw&2DWv1JqrpnyH{Q3Td0SIiS_)P^5mLbDIRAkJGSvY>X{JCaOr-=ima_XS^C-WYmw4^LF)yGMXU}U@yHG zo?bS!wU%r%9xE%!PS2?-Y`RR9Xk-0BGJ^R7J9d1=5OHOuyRSJ(Xa$@;>Z)M8H0|~m z@XihUq^@c>jk^o67Q&ne@vQ2mpMU=LI*+P0&~HJr`{{>2{_x|E8}++OE&lJn{_VHF z`OQ6VLzZ=YP_EqGD75ASp?UU={BU|)>_NWaR6P{WvZ}L zthLN+#eyGcL;oO7+F~O{o(MR_U4=nyRYk!p4$kl+Y@!_~)x=UHI>SG*eOYyqBGg^khLZgk8w~JkWx@R!k*Jjh=b~`HE%a-Zb$}? zaqN(R;qpLB@CPIE@o+xY3zD_AZ5pkcnq(J#*vJ$Cg|2{5fX#hntQ8n~m>F^3_r$)w zH{ek|-|zGF>Pi-_qA?s{;miUww}Ui>TBbW~!ueAq0T zj|A0$Wu*J4y}BJ!U1@PTF=@lL|B)?(4B60yvJ9IKFd-(OIvhCvxa4*USnglvWy>Ooh+ zBuDi?)>^l!!WW7V3Q>&;GY3{_xIfM|jfkD>g$Y15E6;h02sepZqB9_N)2NI!yBbRK zh*j0B%uQcRc6u(a?84|3zsSbZRev#Q=bY}EnQKjGT8Zes=MES_54{Zpv|(-7V?9NZ zsN&+ltOkpy2ckt^1O==ax`?5n+W%Dl;rGAqZgWE(u&Dg`zi>c*|EK-$3PXPM?dQ+) zJW*N##S1tN>L9GYGO`nK+Du<&#*O`AX1?!B_sm+*Bjd{!Wo1UIKHO>hui&uYuh~;q z0UFo4mdBZ(D-mJ2BXH)NK1_%Jd&0&H|CX?*3ARrn0(>ya^XN z)BTWOnAe&j)?A44gBr{nGGt<=&N6q*FuwF2xH3;4S+&-LFb?85T+fhiZWnLWTydUf zRY5+iDhSL~v+T@RU+IkCz+k~rPYMQ>X;98EtZSkmCmiFzqot}WSVi*A)S%5sS!-6- z4lu*mcmG3yo##DoVyWJOdS=e-%IK!Acy;#!y2k8u!26iR3`e-BKx#6EcQ*##__L7( zDLsSUN1U~R32wg0>D>|Wah}Z-k?^?2TIcHoBkl2UX?K}=RP5Ncwaf=(MHuy(d1SJ( zGMl-oKqH9q*0GjVBW_`x>o&(=kLQ|H92u&*qCk}abviST*U?p(J2nWwPasoptpY>^ z!HlUBP~J*N-a5z8&3^250lzYD4j=cPm!S<>n>@_BUEt<5Z`ifW91Qd|=Xt*1w1A;^ z#jJ$x=w{wr(um?_MVh;iiXs@7iPfcxY#2SD$m%{0Cz6N>Do8aQ@e7RgVFg9RR+Vf18M`d7Ih1LC}v)sosTr?w7M0Ch`Yw57>KE1Z1FV z1u?A|FxT-@>H;W6y*ckIavaA)tLM2Ew-A&207Mjwz-`p10{25yGgHN0AFunm@gZZy zy%+w}ryqE_bkk8bv!CgUwm}Hl!Y%=Nm3%gzduNI2P0U;grE$c&A-!6yUTmoO+)Nr-$qQON8`mVQ-d#9z?cXRHqm ztcV`RAu75nPaMsa87M0EPeohm2Wk;jQ8q^S!w0LawV+|Zzpy348~3G{FrMQTk(Jfm zuh)q%a${?v%06C$xozjukePgZe1Pd+-3u#;3{oTiRb6v0F{QUO5 zuFtg=c2*(+BtO0{5<=ORSy0h}s9aUR4U5_s$0J5|+-DKlR1h{56?`}5j_Nh`q_S&o zKKEe_er{%+uNOo?UnH!|tg5+gn41uLiZ#(%lZxiN5$=bvjF}@xVh=RBgvrbz<2a7P zL4%ufP9NSy_dTiU^V_$qnsWhm!z|{b_xvOy5+R4~18757Ff1^68iJ=ZLSy-etv!IOV$|JifU&qm1D`r)*LSPqo zq5!-H=tddOChhJXnRpoJiI|BUBO*-Q-Bsi~hr46S1l8Kt>m$@e(p4F0!VwFJ2h}0M zGbVmtAOX;{ch$V7I|5N1QOixWt`Snd>-@_vZ!n7EV-r zefrZ6fBgRY@1GHcRHv~1{P_)O-~9J-Wk zMnz_01gvV9X8~ymCU+(h^MsgoWG)1ZyoXs>(E!dOqLm4MITA~oN>~^(Mr6t*jq~8% z+X-lsF*u4`+$<_;cD&AvR7D4BJ_a+7vG=aKQ-fZDSVUtj0AOK;7U6nQjtI@Kh^iuf ziHOD+bFP)k#4-y71!lgGh4HSPtDE69*gm(aEvi$gopXp)r@0&CsKCZP)MM;;(-d_f zV=lbr%B(%qqle^5%))an=%222Gs&<)Oxamkuo@95ghM;ip8C43<2dkao7r5~>*Iy$ ze)wP^KqtB~c5q^u*@}7J2vo##xFC=a(X|qMn6G&hhQiRycGG=dJ94ngT>(Tzz)9*a(FGK5YpL2U=$KS=t=rwyO*Uqv+>}{9-=D`Z zkhLbvm|7r=LR7NrYdZxRnyONEX6_RK^zapKE-G2|MDFe?7(Wss(lNREnkA_TW<)UA zi(#SnShpMa@7{nmkvSLs;L417@5rmQj^h{)zW7<8%S!a7^+faRd`lc_wOKl}R}p*1 zD0niDG1g5t<(T>?Ua;Mh|MkEB@Biyx{$<6YZU`U# z=U@J;KYjnlfBUz8CqYzp0l_-PFtZKW>1GlZ%0g1hM$+8()l?g1m}T3#E|1KMabxfL zmp8%#?%uD8riw&JM5#;70p`bo1;P|e3^Ixs&z6{~sX;r1eGonHCT42xj=;umt$7~j ziU8w0YcGy;r@Mo|$-^DXE)#<#?7A+qFG^v6Z*`t0rh$d@}3@#nnUkAK?cMs~+7>W;S^3^c_fwCfOe zaMS^!hIs?5l4x-=VjSmnUC%u?i5Z^w?h;}#xI^hHa}GAnh!o|FLamBHlNs!+c;2?c z;lXMHV^XTRV*T^U01#DgP!7aMRNZq>VvRetk<3gTBh=^9XHo7gC&H7B*^6ye81vVI3*w)-<7nHGJ?4z1s>gBc zJXsMKTQ*FCTY1+V#U(86^}%YhhUr zx}dtcjp`Prc`wjXOa*}X-dL|DW(1$disKm79kGC_0!)iHRdz3zvU0fZ?xbn1Aj-$g zS&;Or;VDz>Hm~>P<9KKZec#iz2Z!{Z_MZ{+Nlw}l7mNtd1>+#AY*e85MtqF57UsFQ z0yo-!_pL-kE7n(;R+;*c8*%7lChIS$>d?B*b(=a7<9@=n8Qwf$p7S=_d$Z@rGn55i zQe~Vn#7!&_fm#MLknVCHYfk)vh>nFq^lRI>MW%`*5seivgFJJdftF*>sol*C+PFEF z2vhTynBnz$;VTt)~(cN$iKX3Auld5S~M=XTE;@81oK}4gHS=_9uFeb#y z1%P<(#qz=*d8|x3(DQzTn4)|fC*mu2q+fRvz2BE(R>_32F4n|AQr)`>pVgcb`g+Jl zl|@tm6eH>d2rV@_`r{aL#qI`b^GjER3bsEy*KDHU&JSdy9)5`VfyS}BGg1Nd-l|i$ zuXcPdzBn}lKoJw|45;zyOKtbaFz}J4F){v4)So z{_StS{mpOiW1uAkZuI*f|MVwD+hQJTRVT{E%to1sIXc7}x?|^ws{!qXzT}D0SimiA zdmxj@8_hmcx zmJ#LGP1XAp!_ju%?|o6Nh0_W@Ospj)gnevp397qM_v_;Y>BVsz*stQORMq>w&{{^s z*CB;qE!m33DWYgPai&B}Oq?8@g<*sgP(^L(EBek3RVTbXUVVVX)i^iyLz=jZSu z-DcLvU<3_H$_fIv62GKS&qQe=>B~$eD;If-5r5r1`6d^ux0edQ%oLO;`iD%b z<2ymi0OAY2IZceJt=Gg+MoriweKGJ8_ed^38{7WAytiAA8*Vjk?X|8SkZm>NWSSK} z<;hRZ1+`q#t~E~;GyODDnqdAJCG=q5?&z_f7Nts#%fLc~SFp9~`ox5nL!#`*^4o1n z-#`@OHlcdIj%*Q0lILJW9vv(^G_;TZ?EK}*^{t_Na) zu}oB@qh(ZH{Z{G|lKY&K&lkJcnWmVbG1(m$^{)d85B5pH{u5sg=0g{T8zV>i@I7LC zNY}aF?>W!X4$X_fvdWl;Rp6D98Ss?QwUlisLhF&d3X^K%RP0 zj}jar=avN@_%kXd*RAh9#(l2u4!c&ll%!OiLIpG=^p{sUrVU52GkQ^vKVGoWTFZ!x zo_p}p&gs2+NcdI36p7-xg#PJMQtKS6Z_Gwu5!`E6lzfAS-_dD?w3ou#8k6kaz3_y_xm5S`=4dMiZ~$dA=X7p^*YeP zl4vpi)toxHp89{3vvga*-5=VNU=2BAYCl=btO*T!)2LzDE>f}Ox^>Y7Y{oWI>t;}? z?yCwh@~jy)$lhZNyEs8}q=G_sVqdCBP;NP}X|Sw6jUOT9px>Z;VU#IcNh$gAmiest ztiPH;*0-_(KSA187pM<(un*eJc@DIfu{BRrL`gn8o-hFu!JXSmn~Fm02*y9jy&7G= zmok|Ak<*B-wSfpx8V_>XDJ5DcF-_uVLUf>fef_Bm5kiRXCQqz`f| zP0#MLS=#NzxL$QVQu)NVvp!UkRFw6u|RDyh;UYc0~KeyJ$lR1o2P0$wx*am%@ zGcL_t+vIXkkGX+L`c<_ai>Gd!$7jxkYW*^&ncyus?KlNpg-1B#;M?{uVwg$y&zDj> zy2Lcj^Ehf!(lNHF(VAq2eUBbVF?QBGiwtQK`P#*B)%(*a;52CYEcbEEGpIgqk5V!p zph)Ts&HV1vv(o46z7vWhg%RCq5YvJ6wvF5^zWPB0_-*gI3RlTTt$NGMW00?F;p2FgW_NyM5)*7w*OP zq%czF#h42QSr}~6qeS41lUL$lhVq*QC*n+HzG!4Z569UwI_%uoc03rY9f$SmOGnR| z6A<&4KMlVo^C|s}-M>LWb=ZvM&q|L!@pRq%`4rLjKBy|1cBrU3jMJM0F+KQ6FcD~D zzA!A=h`U`wJ!kus|L3dVroJ=|9WfKc@DB6btLg2oiM4)};G0t(NJ;C2Vv!E5o!yRj z$PXpT*HsMlw*cv>ZOo=6^$#cdbJ+cot5p@q`VM@?t^l+Q)15dRm*m1o;U_-N0!*_P zx68}L$6&@^YgmjSNLz> zfKKhMI=OU&2UwnvKS1ctXR*1>ebToP^!HJh3~|a(;oPU*F4!K4zAbdyTq*yL@6ugd zPYy|XzarwreZWEUhnh!G&sN_rc053YCc0H!6k^5!S=XeJJ#9Y@cxv@8sU4nt`JVln z9Z$VKC;qC%6wyUNb@t|c)AfC$)s4$f>mR$LmMoC;EaV!iDUYW(JI zqdYnK{7~te{LVA=Of=r$1CFU`Yvu6<-6tEQs#3^;CJRy+R0t$dEGBbPh4&a9@*VCT zg>_mx^E$_V_%Ak8A9TX{duZW-^7Oy+fUgy{qj##+0y=;UpS~R}exDs4b{Be~rZpNK zx+&=@d33$${ogd-JN{K!q5ePMIT-7M7!SA2So^Gz-qv2+{|E&mB9C>UcJ=33=O<0! zpT}3>M3A9di-KI|iH!+))Or1`vuXQ2o)_B3KyffT^{V^9>08c$kG>3z9Nvnksp(Hk z?!h_-SB;U#a6PM7b!@w69tYRwg&@+h7GNF4`KXr`j{$zV5esE`VX%n4H6z(@nV#o+ zFR*`N$p(`v!2(9KEqn7{CmVpqfM6FgcA^2JI zH#ERUVQR`nVfVwU&I-l*f7)<8{*Ms2>~He0m_;K2iarnTUZLpKh^crGQ(6-(9uvd3 ztzv_jWr&G3IUU3FhOBoDg-%ErwrzKP0ydA@cvt5 z4qd+Yui??XWs^Skx~_bY^Rs_VA79=ihfKT<*{*xZ2m@{VvdlF7ZC5>|3k-Dbu5nA$ z(A|=Btw$d`AXhRUQNTJ;Y9_0}mdQz6zoRlY;v00S2`}2Lr`iht% z#-8At=3_bjI#+rhs6KutKX1V^u+9eRPJSe-5$CKk&M)?*NibFyK=vl((YqDtx7RBnp&t#B zNP3&Sin{+D*8pio9Xsysk-5Oowfe5>y#nqQDPk{XP+g?f-<*E2lbz|kC$!};8r|KY zW=l-HYMI5U@JXg6qjvdTeD(NcP4hMWNTvM8&|FBZDOM}bj$o5K;>k}ZccgXWacCCf z9>KjYGY4d~BGwifUQ0PvDTWf+n{eAp%n9jz3`FdQbEhn&TtJ!EZQmbsV$qFuPsZVyAc5P}% zpd&C2`3Cwh)Crq~Kqi}Wk}6!v?q%5cPTqQWuUANi*4IJmQVdtK<9)bhENtVi;3rw{MH|8lS0u^ibLl*@sZB z3gdxWPj~*D5a=W$nOr)3IFAc!U3Hqtu{?tF0~zP;ox%H9u{+!PDk zNxpM^;ml|A6B3%F5oc=N@3`#BQG4_u&Khl*pNR$~`&I=d9`SA=kW?O5DvXfnS>uU<{WKW+-q%A;%#k?&7(njy= zY<=9Ny6*5|rRqnnjU;{%jRDP0>Xf#|{gkkmb|A0{96iQ2hj{NZ4ZEw?(kdR9J&8F1Y=lws z=|`oxk;T=vtDuL??pREt@9o_ZfA&dWK$apc<|&SY`L)KEYGkQ<7Mdh>W!>tEwfz#s z2!C+Du9{Q624oysRqYKGs4v_s59i^jZ$9&dW5JEZ@)aeza5v>Y zbnTYXH#bD-$8l`Ld0!SqJ$$x^x8Y*4D4cY~q$x8=?eSy7XjN7lFQ3FM?>m<4f1C;4 zFVj|pY$=*vaSe5NLGJ>-OM>iO1mz1(4F&}D3>-h>Ujhm6c>|BW+RunA%;wH01EP!x zQcR*Z#&&z>EleQJ)!wm{&5KH3)XkY@(x-4vbv)$XS5(Q~a3#>`@%WRd8DKGzIn>35 zMhkF%=&+I~KTeWuz-D6ujT~uJkwcORmSy1+x&_25_?6OA3?Ilkw)ve-qK4L|?Y1HI z&TOmWhc78;@d}^1Vl>_GYYGAH1&nZCSUCMTu9dM(>q#w}SS1^0W0NwpZ5YX%+Rj^qz17cQ{P&aA zdASIB{&Jfbn5Y!bLRjCyAQv3~#`~OK6y4er1>T*-I#S@f^q?uj*2{tKOrsJx~RcSdudgE`?XgVZ~nImE-?;Fc?n-$JF^ zUj<-~ZRNPBtXlsYZgZfzhXa;Xdh=wk{}9xRY|O%*CjSgy(kg4z#2Jfyt!r-sUa_C0 zAocJ^ZDu^LPi|?G5-_S7()_)eKiFG0{#qmy5C#TL+XA#!73#;PB&AkYjYaswF-J%4Qkhbex(Vrf3J~$XnCuuL4$1{+g^VkZ+rmfOE64m z`#fG;p#a=W- z6$8&c84wk5yv2=so=h&VY*m?0Nw%SEKHlwq$Jw?#mX?D+!hMkys z>UFLo)fF>@uU)U2xERborz(n%@eQoCX3UZ=D>wJWx}zZCh1KXBsyyw0Vt_5l-KsXX z#+1@cE*ot$Q2z$=i}AJ-qH=)qPvhGSLjzJ@tiBCLmO75KSwbS<8t=U zj-jGPc3KOpb)1{f;z4;`-Tv~7p)qI~M?jo*;0mIKg5(ZdnO86@t>T)`CqigE(drq>< zJ+w*c{@|yc%Pg>oOXAX)r%u$nHH8mEZ9!{%%e;b#?K|;)!0HxA=$$+x3&_M%Tw07h zr2vf4iQ17w81cAOolX>0Q)vF_G@g1c_;5pQoD37PI8>{tBHCZ0E?v34cdD8<9Co%6 zqMF2VblS-H)HI$tZrFS*Mo&MmCdgsGMf7X&A+Xm{O?%UgUoOCC@&&B?^8qJt9XhTX;G{75&=5-mHM;k>In?IVn z`9j`d5~zLGs=$@OLwRYYnL3M|RiNG|+V$hZ1s4&q5=9~VRUyylQOgQrF!*bkvSc0C za;G=*;%uJTR3kQTG^#ZyM`iA?w{8qi5XVBoxOfnWgp}OnR)A3k;*3QLZ_4XD4I*wmQ#?0VsTLVKj*3dvP_{aEPI zAM>qq3l08r+-EA2kY@YEew1s2St`0YtO7o)F7U-F@3M%_L|hzR5EG9NZbC`YpS49( zR`S|J#G)>+VWwcCQ_D#olXo~%9ir@~p$#h5tafnN@KJ4a)Rk5FX$4>pus$4*5+7px zaEC9~ca;8{B=V&+o8T5(Ys~~mD-f1YE=l8DuAD#;8{2bgIfk#zG?q3_YOD{*F=4S_ zbPJ^RHF^8TeeWxOiy6WhuIg)lU`^0IZd!sjawI6EwfeA0;vg*F+0V=4pEF$}VFI38 z;oZwN=iG)^C&4dA-tG;Q2uYe%IHsl5)T2cMnEdV@;;R1fAgw>5F=W8I1`2c~akZvR z?MmT%kyDdtb12c-bI&wmZ0*s{VSpX0lO7;wqE&#g5nkC)VT8a}qJ1aX>(l=fI4`<-g?V% z7=E$LI%4MD|NZQBxz1vg@=X6%D96cLKwD_AtPsMl1y>}Q?hcFhe!Dj%?)h30uz_a&iI2r+^hw?jAy3@RAYUM1sIk{@iR$1xZet9T8W^RGr_8 zSN|Iq0A6XfXFJ23i{3KAeQvLI^Q2QI`%y952FtB|DD=9Eg?YR1&7+L_*J@Fr3Bm}T zjq}rp%eCh2D?0DM_o0`+Cn9G42ek~TUHwA zw)#cawj_B}3cNI$FI-oDI|suT1NW|Xf2id&LZq_toLG%OVn^iVTuEy#xa1{O#1(w^Ho^I<{n)*v*VkLUp5HX26CAFcQrocgwajy5iSY#(brHe?nZ16tPd zipf4n{_r_W3CJ|fl9^K5C<4$oiw9Kr-w~4f>}fGA-aj{pgRfzYXEyS}#Ui3P+~xgo zD9f`bkcB&Kt_h<=fF9!y5(Wl;ZP{#K);>uucS7RIRiiJzIhucpf37ljtD)!vmd$r~ zJuq84qcw);JQt;XVGG$w6l8Rok7*>M-8W&=TY~UYTGQ{()WUCu)UNM(@_xX!?N2!57ww-CjS$;gSmDK^SI@uA z`UwT(I+zBKy!=kfO0#|a43AsXTcnKmO;BrEsGIR{Ut@pvD)C`PiXK)ZZl)tF(RAMc z7F5zA+BX&5bCf0iuv4&3({_&4L4i^9MXjh=Q|m)1VPc}t&imom+u zwr@BWI9^6k#DDPH%_$>|%|{x&CF?~ve?Y(!%I=vXIT(wU+5-<}2!;1~v3KwIZSm>F!M?P-z)1EcZ!IO1Ea3MJJ& zD)~B~zq63($dtjNxD4^}&q>xVEPs#Lh));bql(ox*!OBK>VovwSqUBdp1=ulGqjui z!iY1e(ogIZ+@A#Z3k+11+PXj8w0>U-OZyd1YZ6N_OB8=$h{YyRcLgJw2D<(6pl(94 zps}6(SK#C&hIZ4l8&i_m_>!b`;F+7SAV0VOyGLP=P<1TFqq7kd*1;461r~VhaW^(Z zAsteNFt9i#R3(PL~Rr$;NoqnZp9HA^wFtJZ=<5r1w{Txl3kemP=ve#WXLoNj+AK`hEo;^m59xFWY~zil zug-`AOfQ>R(i!kA22(M+uSO|Zk3rZr( z(<Ip>-Q7~ zO}FrDv*&`3Yu{!&Q3455JAZ^Ru~9BN7yc4xcmg%n(j5fx79NZ1wt^uzD)p!NmMchGQ+F+!fL5Q- zmA4>d7x_H-Z$(Bv8xWOix%`h$6v1r3QU3DIXKI+wOF84AmsKMMtOCVV zhKD_YN__wPA0UFbHX^QvA}C=M3N79J{R0J#-cMvxQSEa6+BKFI&@OWw*O+&39|RMh zWSvw+6DtF8yY=;#KY(w7iwQV`@Z=UgDTKiQ%C#k&OPdjr_2b=A%<087KhS=GF5zG9 zqz(>_Pe9;dS;ovX_aA;(2woaCcT0VNG>*KrEtao)>JJhnC)+b;(LDaQ*KSj^3_A`g zj7)d}p)lD$3Sye+?JiOn4(E z-jqtY4r;y)U_`06v;aj{Wn)BZpx6>Y1*aLTV0=rSOI4ma<0*+&4(9oBBGuizxP->H zx%D4q^!kywy+3`p|A>`jap~!^8>Lx;ha-)wklbqX5MTfVX-h z=wCiSV}?{YG1){HDp*(Y+xWJz6zO&#r)ZL9(lY~1_kPWS0+`&CfBpssht&Z8Rw&_K zMbVIkfm>C4;kH~OhJWR>qkglihT{mtFq2+@4>x5@^+Yp(*-N96+~8qcv2FQ0kC>zc zksJ<}$6gVvD@Rch0YZ??|Gg=wgzl)L*s?%c7R%&cWFj#{Cyv^nX%*_%XUd^9OOQ!=o1Q2q02LigG~nMCWv?r~@LHws+PG*> zna#h~`_T-XflDOLWXBI^dJb9AGy#l_jiuvE3;6Z8VFtK`Og$MlI-cQD$93hbcvfbU z`Xm$@JpeX%{9gUJY!balpEt*$tE3a9JY&M{!bdYSd7YzhBkuCYvBw;PY;>GYmNTe{`KX#M2UfvfNR?N)@VMm558s{zy&1e;=a$@D><~jGP;X6&_&{0 zVVO_whl3w6|F}vv{|%5TvxJOVLa-UOxX04fKKb0GNJ6xK%7a)rv>U?VGm!t(|A&ul ze4G8tI;CZ|TqR%$N`_C61IgG5&}~!7^sjQ-%nYPxk}^qvv-tin1_Z+75y+m3 z?aT{?Z>RZ{_O2Ot;Jo70UaR$T*i?QonWmEyKKGmI~g9(uXewug_ZfQ&$aIG6x`Dnhi|N{utG-Kq{A#s2)m zfn=k-ii8g*O|jA3&M+<$AB*?!C`xp+!GY#i-lf^USAho~Ure79^@htC}a8E8Z~ zlOYEhEq%vexw9?ZV$TJ_`h7FBPn80W1vkA@S<0}U0}__&Uo2qFbQjd@0IYC2ZgKo^ zpBm^zqZKWpgniklYAT1nCe^vCJ*zG}^*^&Mm35{P5s|MkuYU5bs)WnTO!1w@z$h4X zVV=sNpNUTyEwP2IuprIJ)2AX6MhU)U?MyBK6;i4XU7$vY%G`R==9YKJnEH2=^&IV* z(}^YZO^9Mt&(%G-##Z|r!8%Xe6Pkp0*3)~TbncZGh2dP0$pKMxPBWSMk>)SVT3d7t zaH=2g$K4k5R1p$v28cl+pTnxCXastRbZpWnivVl1&3p`v4?ifK!KB2NVt_o%)Z|;4o^GJ1*-NKXG)B0A zaH>KN0fcB_M}i;mXho$wM3@?AFiV3D7Km!*!PwnhC0Kw_R4%{F!;G9?zs=VaHp2Mc zn4nps1&%I$G&^u{q@(fC<-!XoPcn5ID{`E;tj#>PkeusasN+?m!?J<*O6GH7^4)2SpNLHh#XWwlrR{NVfD4rv^K9f zs@z;R1ldb5FNpLS%=b*W)%{$3yO@y&bO7WwDVxdI8#9JNP^=S{y}g>nN)%l!Klf#m# z+>yN}fo$EoP_V{{_s+Ii8Gz-q4G`09xx=_$3Mt9RGVC-S5Ne|jC3owjHp+HKBbJfF1gX0Fm0mCuZ&ki9W-BEnyOSEZ^#umg zmf=+m&S4&Ft6tp_OGDb*X}b2bt#{6Vl3871tK6_#&8I?$%29_z)J|4n{~B$3O*tM_ z9Sw6ZF4{oX0pFTo%%*|nhob#bla&FJ$gbskRGby_kuusD(#A9}UzT#zN!ClJY%ESk z8kD+&OuY!}`497c6D@r&p>00m=J@8kulrK}Kc;V$n4NASIUGf~bCVEes5hExqcQ6(_`DbWYLaP-^f)zT zZ8IvkgJkA;I)A{CUGnoMx5%AK`MI%z92KVU7Afa4rntBfjHy9M8Lobo{4RSOXBV}u z?SJ+4o0ofUb1`F!_JZYCF)_7nrFca?IjuhPqPv>EgV|6AGC2>NB|O96I2?XaoY z2XE$jNmrrRqPp_p$4?EQfB<1|yNp-W(ajdvKo zV_-(W0_fGS_o#GE#LDCnbHUSQR(C+e);H zVmZI+9=Ur$NdH-$_aH7YJXa}8cjXeY>SKwYbuR9%Tq2XByR-BM7iAG_RPa{;Zm zGVvlfcs9m$hq0nzrqv=?iNZ|Qbab_1N{UG(E)!DF3YHZ{owR{b3Qpp#*c`KtHf(~Z zD5>-r5qGFi;5!p#FIGiC5O1h~eOQ!%UEDg>MX{zo`3s1FV4 zo~9tWjBlx+407iB)slNq-ulm-1Xh@45Vd$-HZ z=lSRH{0I!aZ^t-J1bW(L>hYU}jbmt(AvGD^gw&!>A`AXHelF!dY-M#wc57acD70${gLx zzj~Srd_{te$JR>)4z}jyY$wl`jQUNQVxHJu+7_n)z98e2fOwg5sz0B-nXb;G_fT|y_PX0?KX{1M-K(+r#8FOLM-|J7<0M)xXb&T&9 z*Vl)=s?tTi5%#eI-BQ<^hR^rsH9Pqzbj)I1;k&UkzDVx|;M<8eIwZ(V#BJY+r1_ou zkC76Ci~KHD*_d>_DhR+w+&>V(%J*SZb|bjcdUoSei>d?=ODQ)-&jdowj~+5inu{!8 z9ki^D#KG7A!uDGGU6?iTd^Li`;~u`KTXfrcI)#v6%VeEj1b*gJ)tlt2KpRa1*1z)V z0Xyp3w&#X_F5yGi>IKu&%%t_r^g}Rt2OVV?{;zLQGxn09t$cZk#pVnB_6D^Rv#JR0 zsGMq3lhD&c(Egw5etuUD4}fEdJ)?;IEh#cxnT`06WBL?+lbfN5{gl}eK;8OP_}kV{ zd_wLJeNk0rdP8|?r1exNer#X>6(8k6=7$02D}|lOuF0ynrJ)jt!~(oT z0eAc3X>QX~8#pD2m1>HwIJ%p|dikplmcag%GA5u_6GQE~fXv5e3!)->yjrfgvbY3Q z+Nbo@qxmkPaqT}#Wug3BwPZf^c^myksbNb**nridU{)P4h!(HIxzOK;Z6{O#bK-Ru zQ$m)IPjPxp*qIJ@TETHvd-ERy2ATSfl7Wm6__~ydi@^F0Vx+7WGH~^xSu_M~4wFvE z?Z?F|E;t%7=Tu-_w~bS=3`;0Y>3uzhF389^l?Seq3y~k0fzxzvGk?uL4bNIf_M{t}%W&InEyD)k3{_>>`i-lQA6Ia!tL;+yPPwyOvf_OijQgfIx%-;D=e#+Aiclk z;^Qk4o=-`q=dH6oF3EG1g;DBP-;bRzy@@EhcGpka(Hp05dZsrcsVk zlyvWvRlXwz2&Luhr`*tv)5kU&JCbdOOQ+ulHao4L$|_QnR;l_aWrdxNNV$gE@zrXL z#2Pk=N+qg0X;i5IHqC@N^0kgDCGefw+F#7qQ<1&4tDn#bF$`@lU;c>8$^DN3HoAqQ z@22vb1EEoSd7Q3UkZs9RW$dMdnI<3g`&eOdfU7wng%-^Me$WcVK0vHCxR;Ie-6G-c zT;ay#hu+<)++&wfVC0mh8rt0$`VhS6Lu167X@V@*W%OG-)wpZ*4&>);ozPbNvRG}# zd@&;u=l!}oaxNPM3v{1tTs+O^d_q&{2Y{F4BpH3uDByKv_A7j0w?!U?AIe~ba;$AV zl?-IdokyWWw=Q2@?G{}Nc3)n8`d@K>EJOXYD+&U=*@6YV_x6zsXd{O8)wHh~WB_A|4en(io z@nwo9Z>s}yKa^~QLDDON*^yh$sleHAEOQd{ZRhd*l_&R*~RP@Q$j?BTEL41W6T=;HdMz34Jvm6XM5JLjuF z@zBD^Pvqx?f4vTEm{`6?$Z}@+UtEc(jHYnqW0R5N0zn z#&b6$Kl$s_7UtYGIy&mxsh)1|9D^ONW1&hHPa5tgUn@r=Wq(UI)gOP`)Ew&M zM6=$$|CgV6e@^DxAEPx4TmePH6-4*(XYzK2zt^2WCp7nuJ`^ewMIGlk-6xu@_iD5i zsitdXFE{l8#b5>Q)Q?_vhbr`RK(0_V3k|6-vdv*MUT@Tga@ckoBHbDK0-ouM?HEY3pLp*y8eql(d-CNA+jd{Vy{T8+G67%DiCVwm;N~^7S#rAGc%169$pb4JwB3VovWfhtWmh>YX| zi|?$9xx(tVm;h`G`}*MfaiC1cF{UYY;>>J&vvhOr2PNuFeuvjNB2hFYv^~DA)It2Zo4M|H=?be-gg-Bw76*)ee^Q0F4=(u+XS3OLFln4p zn^Xt?n4mE#hMNuhAj!5XM2T{eTBNe!MZeL_v@4VuM5fMFZ*O9gXWojs&b=%+K8?6; zzx;bt6n;Jw(NQDXK%VvoyWM>1)qU~D!nmfd>)oK0!9}vJmu)e}<jhM&G7EA zk_~_Up;!=QDRLA2aOA{;sO%vWy6{^+1;ZIKQK~ML{o;-QxPhxBH?~3oE#N&Wy**IB3!g&Uawu|)w%BYxHV2RZR?n#=Kkb~!{klcvb9|M&MZt}n z#{+5Y(ka4LA~Pxb4H*S=YmO|JmzOzu4Vt}}$K4BfADc(DJ^Xj@7yEVbpXApT^|JLs zq_HsRZVT+Y@b3ZWzFWh~*)sx9{`cQM;Hc6e-Cq_?m1n)0DxEJgV(-}+GK%x7E?O)! zH&9&-OX19$a$m#+1bjq=JU0?VS?ca6e1$*?pSr(s{er8Wuz;%+Obfo(GsW6#%kh5C z1MBL>#Q|OFjPD&!F3~w_o5dOa**@E(_tSUte8wNF(si4~PD;Quv-S2HD!t_0fXeFU zXdw;MIpagw%U~0>IL9XMq{Y%=1CJ8iM@@Y7xMUV?p>V!a3uzQNY<}NlCTcVO%?H=A z{OQEx-p`o^Q%RljDVGS@_IlF(qu)y$Qv$98Yu&L#!^(`MZ+r%J#^PU>g1G*5sUeJ! zkinq*%yL2QIFPIHmK2QjJv!HW`E)E<3p-4v#CZPU@gDRwn^sf)Etnb=q05WyIjf{| zh6r&g`duWddRwXqX`d5_sWY>Yz0kkX zBujn)sssck`em!lQ}&PQF)zO>b!~qWT~RF6)PBogz}2DCWh6t7oTS_b zlBRx-+Gva@I=MWqA$AEo|xY$DxK<^XCMa6uluxInz<3{R(`#)dJgXJ0|rP|x>3-Et~W}cFj zyg*iC@4j3tT|X10!q1U&%F%N(3#U$l{hN-;l}teIKxP^lkcd7K);yFv z>dQUr|7cP|ojr-#8EJ;?-z5Gd7#(Nl=o~2!6=8*Aevy0RT?ux0*m7w5;#h=Vl>+Ot zCVa0EE9;+eakBS#++;`JjD#t3PX0%6?%hJO5(j5FBS<#7R%eeNIbmQHjn(vbT9fpB zBv~ECvmw$;ApM+n7WN~krM)_naq;2rczYEY$nxVC_R6L0sROt|^r^?jHc2!trG_hT zUTPv${1`qxWt+8Mv}`kk{!JPb-ci6;~pdFVkMh3;^JS zjk?FnUa1he`|s2AUe!Xo+B7LJ?*_LJK$T!2HajyJ#-1m8Yq>40J89*~IojjDLdfQp zhNQ6eGowpEd5OHa4Zd&uFfduhPbHFMxAFEEHOQ@K{R;gZ07f`ttpFj z1uqjDl^{XSU7(05B@)&$ZKwqGG=j=PkN9|q4MTg!qbr=)S!3gKge}(9w|`9jA4lgM z&G!4gaYYp!#47!mu}2j_)hH!K?U7iuN6fa=mRcTF%mpLC`s|&JedmmgYV11E1h8#(oqp}duvN%%~jwDHi-o_HV zMZe5sA<}|s{>MX2#jHrIc6~A(mQ^==U9IZ7GafwqEBId)j^jM=o0f)ZJP!?l)KGAR zVDP+9d~?U^BNjUcdWgQ-rSNc;vS56bFU6^H zdVrTF8&g`cqHsxzRdBZW`uz6^uy>`qs47WKLCwg7J2;nRSmqgvMVE%Z!FD$~Uw2dy z4=}r%Eq&O2#m9_>2Sttwvg+c33N_!?oc0l3E!KmzlF6&82}utyv=98>{W`WNrCm#> z;8@g9%_V(c6x0L)dlN;J&tdj0`{5HwFm*KkCX6h|hNdA&mrhz!EInhR!yOn&o9bx| zJ3A|X7mEMzcg<&K>3Pd6Jxl4TCmR0y*O);5s-JCi1~FP1d%RIpUAff9x9X}^0o0Y0 z$i?+|Pb36*S^p`+YzlQUy~d~ZiF5Qpny$q05S-%P%sRX@uUs9|h>K{^de5bu@y{qB zZ}ghWG}ly_j#w<#L6X&M zj3_J+Qf>))=%PKrs3c|pT_ zbY}yVIRW*CHvzRgOttzIkh>N4J+vc$uduN5?jPGyuc`~;3VeI%iPYS=nbd&WV_7cY z;IG8o`XBcC^TR2*d2(=nM?J8!(D9!Ww<5%?>r8;s2K)}Si@?SUDhlq?nCPlGUjOv& z7IX-Dw_b2=3f*jikGcv%nX`0sLh7^XlDemUM?m#R;YYRUQlEYIUM?Rpa}CXiO?k7I zM1U-anl&N3?3ni-QlH3k^8IrHGu6+o2WCVC%Y~&?%VLx@k_`NureOW6jlUj z9%%f5KR@Xd8+t@z6vD#{7Dj@-w1eNQzXK!&Yhh<*RDZl zd+?2j_Y7!dX+c!$5~?ZiQr5;)gsp+@0|}OzUtEu_NQ;jq$qy_2#2=<_V79+hT4>v6 zFUo$v)TQs$-e8+kF#QQ|Gc+0VQOG>nkm2uh6_Y2;y?Y%7$V?yjlzRCU%TUSB`w-*P zpA)?I=>Do?*o2zhYa5iz%h1KA-g=->rtu-s*s0kUx8rL>-LInvl7@M#tn1aK+)cn06I!GPHqTY| zV{yU#N3#XpUC`ajPef@pZ7-H|35=(n|S^!;n(_)qhkixgvy^a=yWfBUvIULhy^?CI!{Sd`!mzt}94lWt<6ETs&Z}p_imyso00OM_7Fm4^R=65AqfC~i zN>2_uWrXv_CX=>e(Rw9P5aakeZDo?c?_HDkFBE3FXt33O+GpLV+}>{mY6hMWCzg3c zL}b)R6bk%$DVJH@C%MOMm)}f?SpqER_c>1-D)h7^)T7n!=&zQTKJfAo!x~Nxc&`90 zJ&&Ka4WS-lC4moqfMxzHnh+kQsZ2#gEnrvX;>++0H5KU5RMA`8#?Q#`(&_>G#tAtOq!X1IJtFn^+m&q zyw$A#(RJIw(3eW*g+S&mp(6})0dxNuYj-r?RRRTpzq{`+E~)G0Vw8&h%bI3UFJA$B z)_LRq8=CM*Yz`~p?i3g1a$7lx9A|x-Al!rioBBr98pywj;T5e4 zq#nN)=NXh6oP4!g7YCHK!8@84>mxB|S6|vaOw!np8^nZgbJ7w3(AIQa#Y?@#QqfNV z@=GL~tfq7C=VoI(1ZV{%&`nr$7n@8v(`CtQJaZKrV}SkkC@rfV?o1cks1#!xH}+8f z^>a78&fW{=UJh%|k&8!z+`}6Lllz{DTU$1YlS&>+u$AnBOVO=OBZO)oln1HJ7RZ^T zWf8{(1AZ~t;>jWo8ic62|gCEu*mW7h*f8e5S9~e>;9h2PTD3vE-duHHl zCc3fy%GLr8r`a){>&brR;+dSOH~t8vm;m34Q6-n_^OS>o-gR+?^U?VdWoZqU!fpZ{ zB^NIpv^x~m?w1+zxLgwu;iW|J>eI28q~8z{6%9`Ruz6S|#*=kxrtwDGo%#grS6+(; zs-5KN-F5{x<|N*`{?25h++e^}Xj82*Q_ixJ%9Lu3d?2i7^FTGx1BnJ-%j5hY)&ysM zXfqq}iX2k;muAf6n6~ek)gEJT{RSN!xXinxJQIwZjje*NrS8v{Dl-|ej|_E`ipV%U zFt#Ylnu4qY@PrATS?G14OE;;1XFtM1lMJkuTk}y&rL;Mf9!S~9g2coo#;oTH?*?<$ z@VNr!O)V{}s@Gx>);)VFFLKtGPd;~_rUqIVYm>?=@%u+d{q8?*vj*ya?vL7D`s}FW z{jLwS(~K}zJ3I_26t=X?^ArY|^_+SbA99*ui1AmEpkMc{~ISN-{>s-+~i zD@s}GV0e(VB_%{ZtU{K!kZN%s{B_{L3ygviEg|}5ra|5#+j4V0;H$jJ$6*g2hKZ(t z6On&#+bS&>BYyl$d~*v!H=t%Te6&PoFn0DFY1%T&U0hVa)}ot7GS&#m)j_D zHTL{Y+o>@3NsuO(x8Y(}^J2B>-F-x$Gez|VKj^LmmSBZS9tZ;*FTijA2mJ0$SAAkF zZxKkDjtI_DZgomjul-!5J^qd>6RWE<4hnLR(NSs`EQZB;eKmX-W>T^cZMK>6hD z1ecuQx7Xrk&I1cAK4SP6?$yNpTd2vniS=5vyACQ3V7z-Ut$xEUYDW9At+(}8cM-S0 z!Jh>m#)EX?@iH347S~;$kui8iPgeGf{+e|QSN4+8G*r0V&TFRxC<^olHGlTJwL^n6 zR2um7(I+Wr=vQ`5rM?MUI_^xPaI{?zs4O42VXl+SYuGi($?tfC;$!M~n})xdvE-8n z^35nsM~E<%Betk5)tF4wC*=MKEISZ5QsahMZ>kRJtpbP2xG}Rl@?#AEjDg;H34P#8 zOfntN|Hp-#iJ*#q+n?lzi8$#we^0R#^T`k5=?d}KnfN@&WvIwciR|pj+Ay10`=oup zn3I2JxP@NTc`GpP;xHd^95QFGQ*jJBf!oac=TTnhdAqfxrYj=&AJ*n#9r2~uytH=G~=et7zSR?eMnB4oTW!{$&ZxS9(Sch4D@De?acz>%P=qnL7}x+hRicjN2kHZ4=w8=m zEIlVabp5Sk7Zq?ds8Jy{yxKfVofsOY_wLto6stSe?9KMS z7sd*8{Anh>o8CMP570D5n*yl;=zJ-ZK#5n80z;r+=}%P3hrH!dw?Su(z`AiWG)f;Dv{)=(_jCwF_5UH!qu_DVXn@=N~E?b1$}XS6W* zY%=MqMgUFBjzr&NX=FXdKb`;K3;8 zo)Rve-+8feZVy-^ut}yW^Yk>GH?Qj0qC&wiW`2#Wx157hjA-(vm_&sAB_I_OynoNRRj&s$}aPpq@6-Du^#4!*C~ z3wCIwDA3xuln!jAGgwTDB^?#v&N4brKIaCB5#+=y3tC^ zx2S>SXY=Fx~Fe+RAz{*iw)w4pFgIVpUoN@Hch(Vl~7$qK;fKrp!X;z~l|kiMNf z?zU8qq6RKpu(&g5t?iWOI%g2YuJ8H9xitt-csn7Ptv`ymY0m0t?MZ^yEO{*Mc(7Tn z`(|~6CnY<07Q7u(^3~bbX1AKjA-v1&GLGGb9hJ&`q63UVe^bRtUtCvzPPgWyBZZ~L z3&bnlUY76`(vt_{gJRT%nE+f)M%|sDK?u#Q@ALrO^xq|F#XQX0h9KP!s5m{wJ{q1q zRWr^3(;}tddgBZlP<|5sN^M$0KB%On#gES`Eb02^!72N~M^MxUuOEGug+q3;QVOFT zPil4GYv`_Dq&r}&LPU4OTVfm4;kO)+kW(FiFiX@dHG~h)`7XvKa)4~a_V5keCFu=X zF0Vh?*j!HfjBtofQiu}z)FL#1qi{Qk&ymvM)~+Io5`uv8;Z(4wQfV{K?_!DGW$em3 zR@83SWF6)M{JrfB*FH9}4VwS*lV`Q9%%MM?)0Y07qnJU{0ysBiW5H#`qyR*ExqfPM zn?eGE;Z?o6^^6w#@wLIB>1Q`n_bc1SZh}9UGq@>%id}a(jBO#$$dzo5?CNj7-qN8lKM&=4ysr$7t#K6>fd#3=)?F)K+uyPcN+QVyjQomvLcA zZB7DkB5aD_f@0JPrB z9DSgyG)BVK7~K#abxrXqTa(1=RD5^o(rtPwB(KC(eM?SL>f2`Y_AyhQM3KPpD}u^tYWNhfK4#})yw4QKUy%=%Sz1X@h1#QkHdh9acw_F zl4_ekDL-j+5eSkO0t^Ie=?#B=gMh{-oS$zJd1#b$!pStTyaIMOF|Df{JkZu9x6F?6Eh1nJ2~%Yjh#P6k&W zV5N*37W=@r_AV_RFY$<$C-#aoIGeJdrd)r!2*HP>tPnA+?>1Q?TQ3L|wgh8+l z`-})DwzRb9V);GtdM<90s??X;7cSh2Z{1A(P{d&uS8h~NV?A4?Z@mI%vFNh{6RNv zVS4%GAo7y!>h9TD)Ejk5Yt3d=r4d8KDY$^+b+#I?!|q;*I;HLG@Lc|fU1X0b;6Xbc zKjkU_?Z-!Kv-xW4HJd%aUftQ26KXdWLN(|6S_U)EwT!~3&{Ez4lhDGRgrL?}3vc+~ z&eNO&p>L(nstp@O6%+$KSCaiRr+Zb?Z^pJ#8u(nyGWeFnX&-d;q+>8LrK(843+Cj! zFEtrUy74z`baX>S1e@Asa|*7$PECe~)wAgyk)y+$-~x@qK_TME)5EzoCUYcZ0g7m? z7U7n;|O= zPxBljR|DVviksog3eo9CiLwg{A=f-I4R4lipMU0xIXV(JUtHCcGy=aJWE(Q3EF}88 zyxb*Y_d3a%dKyEZO6>Kct*!sPguCW!FjEq<>S`{1vjQOmjD(PAd{hkK5juUEN3Azg zE%UqQl@N9d&zG#E1UI`fh>}t>`8Lqb(VJwwUGy`_(Bu8jsG3d;zvXlhR%2*_kh^v` z1|bQW5(Q`mReD0P7zfAujZ8_O<5! zQ-8cNgc;DLmHuuFdEBe4#26 zDJ-dHV8l2@XO-lL$aYS4b^}}8uk}5q9SQ+|;-1QVcUQbPeO^&@h1%3xym&W7(N*r3 z4DWT%+1lmum2m5Zj=Tb%?upsDH(mwXI9+OsDeOHO$qB#%MPxFO1wt|=U~MzOi`U-_ z;Ji)7t?pIsyy12u2bN>T)a-~Dvt7FaxnBg&9!H(p0G(urnpOir98t~0*WS^Y=-}sq z6H$-cVA_VjFsX+?s5@aXNDQV8#ezT#XOwUHoIuO8*#K(~$_~{wDz&>@{jmb`$H%E5 zab}1YAXY4fzULCo?m1S}oq8_<4OJ=c;xqOht+l>d{#R?Q9V`VWPY33_mV+`tvjVS#ojAcxLM`S_l4U(A)AU-+rcY6 zs0gFll9JYQ)7i0$7l5fW#!h8)+y^H0LuN(le=l69A>Wrt4^N|myo!XMO@Vs@zupXC ze~F&UvJ;ni6}M(T2xMPF_#4BArbA3(3tBW^bzfuS9NRD4m1gJulD^zr5lNJ!1+W1m z;)DN)*3YvSkDNJS)0h4*l)wIUb~f&`YLL!YCL2bsF1C*hE{Vg>Paim#W++mB{#zoUaz2guP7m%mum^U0 zPmq?Hir-xd?%cC>q^YLp8uFpiQy*mA?0eZeAcEYCtnh~2HH50W{UT!Y=riQ9D^;i3 zjm3Us@F>}dus2%6n2o>zVV9;upvyCbqXwjIdqNjmwqm6GCHefkKA9e-Sa?B=JNeT_ zYG41+Pc<+Hs+ATkYtdX?b*x1L7J-k%iz`(0tZ5c%qVf`LmVfjHnZ+YisF+q%gu-Oe;W3Vo5Cc=hiQWDGW^y-&A`*ka>}d!{+w=_USBX88qD@uYioIRb_I}( zZ?J~qzj;br=60n2OnKa^z%KVD+(CU+6+5T#E?hQ(wo-mQ5hbVKBK8HaKl&T46(BNH zAG9euD)`~uLq*0}a4>Psl(X<*HKH$s&|8NQDedISz^2-vhB!=EK#^Z9z;wx;i(4C4 zsxXs2QsnKP4ns6<>IDMMuUZb4{*k~vK^`${Sahf;^MG1QRD2@O4_Iz{TQ-1M8BK6e zk`+GI(HG}u88QE&VBc=IuZW!M{ z;pmGMjt~FKWTI5@ri^{*=cCOvYS~AoUW-0tWG$j>Wm5&6z|%GFxT%gc>PFO(O=45U zuvTDw8W7)WeKz5+YIoiEjpCk#r*^7O05o%y?{`QiTu8iL6O&Cs9T?{InNbjCu@+QgEj(uw$VbSg?*J90}GaKsZKTE&vr+Pf90dcglL=J3P@< zq=DW|dg5?p4{z2B%k09VTy3`QDjkDPlxR6L_%^dy#CfQBj^Em5LslLs({?5;?@rrKIo&N@qQswc2a%3bfe@Sb^t_sz^? z|Kb4`F1H1E3dXqax)GEReOnD?qW&r$;fv|jz9J{@xt%UL07Ryj?%7r7w4<*9uy1k;_5u(*hp0&s+T}OtKTON^4EGMh2p{^Eg>I?}_ zn4#O+Hf$-i^Y9cyue2XuTUzFFOkUa3`SHPtVn4Fg91S{ka?*#&#sHtYv)=!WHD-{T zdnicJK;QGt>11Fy9LCVNauEo&n}V+qkb6kuuX~?GCgU-}S-PZvdMKwaGb?OYM{zxg zhg2whSvflulAVg0j3JqD|MjA|ZA7hlu+9&7DdonSFC03fmhQ=4?ViD*YbwR3z@TRC z*y?{tgW-7K&kExeWZzfz*RvPLH5bQJ7DcVO&YWPW^TqnpzyI?)oX?M^edP7*OpJpP zsFMfZpn@e-ptAeg7L&UISzZ@fZwOOgSSv~b-+hLoXT54<<9QfZNG)YoH>H(&$MMnb zft-&SlJx<`uVBvo^VRxGa`lT*072lwtcjc@s*f6Ae5fEM8IptJGk8=1`~+0XL3+c@ zhN7LPdp9eA_r3@-v?=_Z8{T+`23P#-rQV}O5*%HU)ux)IR^#7x7L^#H>O1i(_>X|D zu$brz_2Fz>94zzFm9ksmZbn(?i7gyyNd>Q4O=kc_|BG_O zetCu`L7*hliFxXU-5K+Qz7ot}`oYK7N3~ZC##7^>hi)L=KIN88 zSK%)8e0dsA-+F?;3=<&q-?b+S`DyNns1O)*))gV{#S2C^ZwaoP;HCmGGf~9bYxpO@ z6nj78Lm&qLRr(+vYxl;sB@26aSe~z1kIhi(^fvX_5{K2RAE*HB6NDobjm9485==gr zDSxmj&0i1T0y@NNJTs4$_`K_OfcGjo8C7}sxO`@T`kuY8Or(JVGSix~pYe}PSl;b0 z&FOdsY6=LVy@AWES}(`lpr>-5f56n#Q&5s1JzrV|&bxQxwB8tqdcrJ78&Pl=B>T3j zIT##|c~S#!dt8+)$OUaCUnj}t)#JevZ&0dMkRCWEI$>Dc@iW94mMZ7}xlQIdu?V02 z;2X107r}gyPYoo#_*Z=x0a>PoBZuE_ISr~_VVsChY?>oremhO}S0Wb(y{hUUAVj7^ zpT&?07JTI}(fMqSQaFj7y=5k@)rk@>CGpdN??SWD=Ywr$a{|#9aCSa56@&95a!gj+ z`RS*&)8(4ZG*TY_w_YcnMItV$<;*FR6qQktZ+Ez`X{(59Fs-Lst8}sST$r?d)UJ&?}1UmZnKfjxf^Vy!y+)nsb&V+B|yoJ z@C)Yc)@ju^uKM)UybqrI8eFv=pYp&YCaYG;V_y+VU9g-Q>7;c~Eg#{3n>Om=ym?ru z=`44HSENh^VtQRk?v^k^V7v|Im|y|=jj@gO4*o?;nY02^CQi5Ezr`Zo4h}oO4K7+e znA%lW#>S`PSxMkOClsUjn!&`f&szwDQi-Cd=o9>PdABD!^ou&cP>96fhucpn2dd9L zVH5)@InnHQjJw_uV>V@!>P1OUum~*k32wTU|0a{15!(ttmYMxYMo6J!!;({@`cGqo zxsny5&Da`8PXDoBz%s*F;M=(Z1nI=d56!RT1-q1euUyM&sC=U@vkopbTlp*l|Hsb% zGm3{Db%49eUNtSB<>PW_KXlr49R7jvsu4sM1Ux@|PG{>kWZ~^5{8zLTEbmG-5p!pW z2w0*jB-1^-Y1UJ4aswBZDcjKv{9fN(*if4ejg*!r?A{fNrck#OBh^riHj_V%F=)mv;r z$G1LpJqKSb#hhluP%EJbA}(e(mTTB^_E}=igP>jqQB*z?=6sG?xkCE%6#rw%4EWhV zPoS3;sS%XZufivN{JXT6cHE&2bl<2=+`FM1Dxwf=4o81gn`CgCD6Vs_kcc;b+{oCM zif2QLlVkiB&cJ85nv+@QSablYwZ>@8=h-F2XNe=B2}ug4c78K}#R9u*UuofN=qqz$ z05u--(Ri-dV>M8# z3iTr+O+$_8>)0lY^+&cLRljo&pdrgRd)XE%7syi##z|Z2NkYG44Jtu}u+e+9Js4-# zEn^ZKq>taJ`7=#(s%Ei%QTRl zw~#bWHMuk&A{}!#l6Rg|{S{Bo{MteYvtp{q5X>>$!7TTwaT6bzVhU0OvKLd}SXcaTNX&&+7!!FH2(B zAM(x)bkn4SPXtn<7&0CDXz+}R#7dhv!PV$+U_($PxmUk$M%XtnIW| zbo>HQpKqt&{@fVQE=8m8jH3XsOPv?mDa!S&O&HjuW`@Nwm0jhjUE}5a0RQeC`5o@; z&mwr9IQ_;SyayOs*F`RXL!6pNqk4S=i z#DYZ_9OeQj_*F)lW87T}mO1!e|CL*N+oWbl1psjH_SU_38D;Yn6Opd{zT^a58z^jL z;%3QB1}bm_Em<*KN1MfL_``*A-Q{+E0`4{^?bVydxI>Rol#d6NC{U9@UH6lmDl+!= z5laq^y5JAmVBaYM;T{L-MlT&G2lK_fd{`BURRdw0BSOU_IPMN1kvb1b#T^3I-hfhp zzbPj{T(+eZn14s%O7*Bu(rnNca!Q2CPsL|~?4HO@Z@^Pkg$4Sb&gqBv7JVz5$;{@i zkC@I9Y^m`j1X#6W3aDk$vU_xNZ?m-DVw1E5{Dq@*W%Y!Txw#KhNj01Ir}D1zTMYMA zrW{co~$>BbGtl!cT*fR#37Sp%wnbCq#qvINp8XI+tkal z|5j^Ejz0QkC-&jyA6!fAMBc;6c}m$>#ehbyfA>ow_qr6uPOznrfj;V`UN<+GBFeySVfym^3`a&t?2hnT7sDJ(UW~RP z_`BCq0o;bd>kY!V7p{9EKBGgH$T9Djj|I-vKh0@H8c#34XE%~Xxp-n}IFXwUxYgaX zRiZd}a`U;8iMou*7hTx!v3txeb8n6Psv%#)1kqG~?!FV0N|LjL?~z^ZjbDF3VkHL9i4_2CsC z;h*vQVO&8ejP==eEYfl2j-d0qS@=kGj`|0j)<`cf^eZ`q5g$y1qctkTBmTjGsy*Yw z-rvEXN7kn6gJNOkj+3#iawQI?t5z%Wb@l$5Aj;IVPk&4^`cldW}m7w9?${ zV~_PRk{pnE_l`)-6&)ny|*^i^Vb(86kf%*MDtx!Q$u(cYj4bvE3g$m zjXxQ6%xk}7TH~@Kr9a`RwdqkE#-kopW73yUS0Bqv?6FMdARML>7Tt$C0=HOr>@wum zE?rndi=@Qlj#Y*u3b2cmgnmU!LT&C(W0p@qm2@Qy)36NEkTDYnQa#{ggCy&ly}Isz z8LW&u!(sfYI18p%LwI|m#DiGgK7t}fkxD^D5-updy@F%v4`#}qx*{HI@3$uP;a5bT zj@C6$G;*Jmj+DB-`UW%vQ=iK~UOW{IRs9}=!8X-re&$FP|C7{Q*K`v9A7bY)inpRn z^+bM1^A`)-7(R6;LUd&`oTIU0x*=naJDsY7!-*K>tTW09HRE#^)!@c{wc^bQFA3^H zO{?8|EFO|2@Ggo~e#hahGkIeienTYqsb;#T@&;ob{rz*c3-$AUDNf~j%84ZufUEZV zt_LXcn+%et*h_bW{2*gH#hW=slDTK#0=*VWXND~&5jg60N%kUh40nJh95K>vBUcny z*K0285Gl$aJeOJF>s{9~bsC@ODdWoPn{43 z3wFKz-?|h{!=h|$>if^k-=j1$#!J48@Mb9jIHl&%{7UV{KVH$vsnm$g)Xlb)Gvo3` zweNr!8HG9MnG#OsZRs(-ZV@rjrUa~UqU*c~Y~-@u>5@x~=^;WfYlQM2>w3DB1z*w) zkQtWpVQvWXRE2vS%1Z4&6RJabuY9h*=-VhCC&A4=s&`gMrp^;`pj>;PF>E#U>lV2A zm36nK?fmhLwV1b)vu`{CCtI;#i!TXpmNZBp}e6 zMXR#h>XDEtWUUQw?tK;pD<|En$NQUp5m;TvbBXJ{_x%f+ zHh96mwL9$q1;c`ah?K3(l@)=WO!Wkhaw$#EVYbDSg}uKqkHbSmnn1?%pVOBrd_>2O z#-Ba)T4|U{bz7OYY4{ZG#p6n4H9(gAT0t5*rfjIHJCmUYy}eC%^%3YKZ11N|d_DY) zZ_vyEs3!_0Nc|}1|NecgF`9%;-Amk>J}w(ltOo~^qY76Au@qd=ntDbn zgGiy4$Zv*9ymtzu^CT5ky+wZSTSREyAl{S2`bEF;$y`bNM)s@HcOMN;|NA60M{9D$ zBq(fh%w#|$M%lai$I%xrFFB$NfNJ>|*7Sy3t^~D^&)m_CQ}PLWPurs2iTTjb%BZp* z9`%Dd@r`g;-mJQ2&2+DN`)ULpH12#+AtlcgR{s%0<%IIy5mV@1QNOm&*z;~+rQ-3e z?(Ra@k0(PiLHX9Xv$rxVVTG&mI=Ma{z3R{f#%`rA_eFm<^V1lIvr2pY3FKY6hPpoj zX<6j=tJ=ht$`q`)49`bA62JZ=oger&fI=I|PlX0#=zr1La{kzFFFl{+o%T3h1?Jnn zR96Zot{x5a;h!&9!>mr8$J7N_r@vl_h|j|@sC5~WH|@ptUTAu>0j$#>7W+O4i;#O6 zt_nhqP)?|oePFfUD#M7XMup-ESc)9cf7p<#Y`E3^{%Z4BTUYfFe7(a{!uEc#b1A9S- zmSj7ivl`7Ug2g+iH*^ul)VBBVg5FRf{$D)2)wB zDC7aNpTFNm24xT_){_l4VA$%poHG@#)m!;Gp-#i3WBUeoevIUI%HdIXuVy9>u&y&9 zf*i%WI{yezjRF0u?)^H${`a0h9%7g*s=B>R8_;~!1bh1WAvC^M`7pX|WbYp~w&6eF z2mPrH)}BKeUB;!#)5?s~Aw#Bj>Zg7c>#hbboD>3o^){X+?ca3VoPoDF)g18x-8M*) z23`#+>#U%Ld^47{C6%5ikZ>spyFmG39mH@Zfl=s8-5WfUV+p-mx@+kP+pfOxZ`!XI zLpV|r827nBUEWR@`y-;uNvlThPM+S%O&Y!Bb47y%o0^LCh0*?mb}9H@qFm=dBGdy> z=p)sU_5O)qOw)Rtf7LEIZS6njv6lM9HH;_qBf$HrJA^gfqLkU;mX3Pw&l@=N?bf1* zG}k-ACq4$rfIkeay%f_-Z`n2A7lXK{7q3~Al&}A9M?d>SyukV8g{SSroUi_Wn)XQG zLg2zovG82lExHx?xBTbo>YV=&O>m?!U`SSbvtIl`u*FNQVpVbkZ1j&yS(FLo1LoDf zj1(mb{qrP}eO%;mFXVhKTS;x@Dev@n<&oE{h7R|ms~Ya-&w(vkcIDc=M~}63OW3_f zBlv|Usu)ILzN%hm7HmL#63s|Nd~wrLG2?MLLzeTOmi)Z{wJBFhYg{4UovUQ=pqE7W z<~U-jGo1k#b*iAbupzmi|1E^q3uYWcVh9XTmA z%#7pu>4(SM_20D(`a>gNCLaNdgpr`sXlkw(R3QCFWh#nzS{Wq3J!EAFscKls&bOhK z!JpV$K@K-V7AVoJPJ28fZz9Mi>KRPM4t}0u>;$S+-!PSTxd8rl^&czW}>dRaJT0&lw+KxqiJPmE*2Yq=-m%1t5J z?Y=+39aOl0&W(IJRW~iSf9Gc{vw7*h_GwF76%L31XF@)wg5qo6@B zSb#9Ght)mh)&X7BnfRkmcwBlM+%z(&WVqN&6{#ppYxnE8ss=FCWg(S=XAUWdasxa# znE7#Alu7L4q15xmtyr(SOMZM-rso2DG$USqy>`wAChR;FYkSq6Bs=}ETr_{L(1_e8 zN^8d6ThFCo+tQNZVJSDR6$IXpb9TR*9c z?(rmJ2Rj`h_eUj(AW$rW)bKS$sJP}L1Ct>Cu0y$RNoP~?jY?NGO<1Gc<)`7`4-z5i zZXeKMU#=7S%|}ZvsCjqoes(G0A@)ybcQ^%;lodIAU(vdBXr+>`0E}u$s&$ln0AoZYqdC zIZa0uUeRG-rMSAYLzh2^+p;M5gej^ozCyP_0;QuKU>J!c!#ro5!qtR+^GUvb@N~%8{`lP*WRF<= zJgKyfQWzAJJcKEZ{CcOJh6_m*{VpN$g5wtErhoWUwEdh}m+logdOa8{Xi0cCeYQQ9 zcyc~QGgfc*W=sk5H~cv+7$>3)k`+YXypQ@Ad+4!<|KVv|pSw&siTv48^W-d4eBVZM z|81crhgv;NIKyUXy{vV9)3rTmGx}4-N~@P~VFZB7F}bXK7mXPXnskK0+&)yEa$jyoAex7J+j^X{;_m%KNV)Y4 zk;^4c0u4M#wdO(^)3sQI4r*c9i>FtFK)bdhQPbx$3C{;ZMUm!!3eyv%T#`rGLRjkGsEuXxvn^v!{QUsA4B?Wsj*EX6XCs>DEt+@) zPyxSH6nSy9+6Gx+AD;)Ul_82<{o=4bzK=j>+V8)7cBI0Sxe8+`scArHl=Gu_J4Tr` z7YjhuMk=30C~BaO8QDA;Z-ADNe)ZafTg$=$ey4#{xPwU&Y4qfI*vJhLe3S=RP{D&y zkFaeVE8!B)$6L~FeHbkFc<}}FS7n5!M$#`w-;*;vXh`K`xJ;tB*7hcI8f-GaW>P!N z+88|gvGOc9bc9v7@m)=j^WA*b-6-cquD#D!ptkXASQ3d#LQ>ueY#J+4D7hF?cn8Se z-)p-H)Bl#E5q*yunYhUxh2g_B^;)lzz`H+8o43hGfKKVxc^`NGBdb6z?XEa?#Hm;q(j7nC9tTUhE{A&mzaa>0rzWnV&0 zy({8|3#3MJiYsg{Cm^>k*8KIn?&j{FoKa8Zwc_ZXtHah-#ay)yTVN}#qdpC!qRF-nARSqO-R z;p9VecA)BTh-0pl=MNElS#=aa=5(?mj?v;V#vO80`vYZAxq-=hmhDu-Qj|EX@`c3_nS5b@*Lh0vs;fRDKQ%mB_&YVeUkm=nrSQml8QMyDLL2G9vR2vu zIIsO?3SzXCQk&j;wNs%lv$|i~kdyEF4;{#=*AE3N1Y%na;XRA_TdSb1T`AM%nCls) zhZ(XcQCbh2+--PYh>*2P+A+R4=BqHi9f5)!+Gs*l`%tauBdYhbt$BJ9V}tT|BD6yF zJm3AveRr{++jgE%HZ-+0ggv1iu5D-MEJVE}CLrhG+Xv@mfOIKZ`|mh+pmw=HW1B!P z4JddHp5VluA|keKiMYM*FD6--Td(?~(Mc&O*g9az_YQ^Pry^6Xig!OrrR4c~M*K^? z51CHIPt}c#P^clYTsSotK)FBlY-IL$xC}1)gBGhA`dK~W@+ftR6bvh_pnT5|@5%My z-Ud~oked;O;J#OqVdDzQrr%gn07>x)b&|1B_ytzxS^1z?UKNoNIyK(W@bg*YQ8sYCIL%h;1QO5SvoW*SmmX zO9+b{GAYT9yIG_bu7KoU$*l<@kTpIEfT}*K2UJFsAclhoNcL)0D35%WgxFTFVwz+A z)ow_$?vz6`r;_;#{q;)g1Th&9;PI_dM=)m@WnsUKqIKVKk4{dcQ0DL8%hdv6e*9|b z71z8lXnS8t5;Pt>>{&010-TEnrzuG&iP*)bNeF$`!9d=ui(o>vnIdyr z4g5BoHvrueO1zt5-9lEMx`ZJqyDQ$zM3*oVFq>!5ck&-I6Bp0Q)L;-kO6!=`5=+cK zN2mvc!v6RWGTL^U8zXY;`X62WzlGA$%J@P-QYwAnwUgurT?(L@&UjH^#bA^`ul)MG z>+{n?_=l_;^0CGOccl{&6JHgQv%NnnXByP&PGGLmLt?>p9hCXkzh=J?Vafng6M9mz zm!JNGljjFJL;!2ue-a#M!)1nRh`o?k;>N1qS}K04-vCPevMt_3nuX}kOUm%ySl zcmUJ;+RxUGd((Ew|1W;_p|PX;H%wNUa5CBg_3Ki!!uDvI8p*u?N|+t6cA%_2-lX{n z@v15`c!6T3wZWNe3@p4MlwAvyt0d zg#@976o0CV?DhUyr6*;Z0KNQ(0Z7b6 zY@a!8n)BT{oN0;XRph=BJ8L+y#afI0C+FHmQB~A1nZ^gHt**MpkRxbLneCGqGX3pf z3SkhbKsph~`^~-Ck698g#p`MZv3v(Q=KLfO80kzoszu2y)6^ndLa!1Y%Fs>m?)>uT z22hLHM`Y!tN`|L}fQq9wuggA&mreM$m>DR@xi13&fV9+3>q}NC=#8jtYKuc~7|-U( zPl1}7Ma_1(p0scrJLnYxPw&cB*<*}zxN z$AZD3ciaJk!{}EvOFP@zZxcv)emXf1|Bs||@n`yf-}oFGQX3J9W*CixCFk=ToAZW| z95+Hrj1Wdsn;esvoT(3Urh^%PF0l$#G@TZ{Nr7Z`gbH<8@#6bv-Ww2>Ce=zQZ_YK)U} z@2K_z4HjC&Niw~SmSXesqM`n2^p-+JA-_Jo2Y_y z{pmZ^S*3i+Zz*WwyCG_(xijf)@M-anZ!|UC-;o?XH2U3^+3mR|bU#Krk;bEcFScsw z^*3l!-V-H(U(?xMlNVf;VPBVT?@!f*I`78XZ@~$zt`U^6=N}l}KwDyJX z6)I83n-yr?8d>}`PFN04*Oh}ZNcg=yk`PB%A>r##QAQcZOZ5KRvhf`#ko_Q13OmM9 z?8=MwJy-5a#koA;$R5BmTOR8Wen;sQO`4l%^(x)LS<0;bdbG>6I#zK_1-52ee>NiSdhl2}zF=!Ub)RS37$A;CM)btD! z*xCQPV^L9E$0EeVcKF_-mM$uLObEQ|xngKB3H~LL)%4(ob3krGEYn8(z@7$_D*$2yycI6Bh2p0gahI6@ymt5Oj0HUQBAG@+Hf#j(KR`Rffs}i zTK76%tCZAyZfgp~oOAl)KE>U#7fS(W&4m?N`di)K@T9Whr29&3mdFv{EXiZ*#0ygJ zo1FD8h+8VSR`ARL8(E*RZE23zs0*S=@ri$44|aiTC_io4m=cfrCTX2WDYhD6x8i?a zBw(Y_tj(C2dFRr{H&=ss+c9x-9;+a7zHQR%^a1K}A$DoK?+U z4enGt<6f?$od0Diw}!QQW#x-v3FekSB~nvwbQ}#nRT-+AE|%MDW$79a8=Z=^gDeIe zKa&bCHL73HzCs0K%!Y>At7YN%pD$mMHE`%#f}3$OOD3oqTKCKUfUeOlm5ZLkNl)&b zJIF7qtX#ce3W%uLwem$Pe*id_ma3>%zjG#6QQ((Dl(3q#H|$v^=K?Gaw!MtCkK{4| zR`|A7lKEzS4Q0HoTaj@Oovyk_e#Cec#=}pa29S|({^j{d)BsT4-&h6le@L# z>73D=mk^*RWsi}tpYZ;{uMy~82pUTN#2T6F?C4CCIl?P+2ciO9UZ>flEo%>F)JdhD zZDr_A`<*jOF!zo^7<@b`7Tu*4?x}}1&yjct2H5k4V=`65Trk|QTdMk;l&+Lrma+}%>4R1aIq#<7{Y;L;00IW`OW6akKhs*D*$BAZr9#fx8CvPl`kEMTP zy{lmk)aZvPmMy7P(4E#)%5>L8KsLtAGSS%~shvQ}0Jz zTv%W+R^C>lHABzbljon2dJnxsfYpMT$mqGqI`AcHA%RGF+(70hfT`Sv{&aaUHRF({ zWrHZ}unM?w6*Y)EvTW@KmDR)^p?GC_X^>Yf|L#JXYG_f(gUR9U z^(+jpe<+cN*5kT;h4m_Z744iMKfW1bP?FXgvW&eYKYOPBIC$w1)FGFA_a3nIf{+%u)xbJ_+U-{ z=A7^n4X3P}D3j%sb8=VY)e&XdV)viMCg&WB(h%CK?Du!un^CtF^YjMwQiW5eqBQ-b zr$=ah&%QsUnHDn?bOohN#Twh|S121|$5@pS$DK713hOnG-h6U%`6)f~4jSuaJMHM- zkX%?TGf=<{`KU8uIDG&97BB$3`dxNya(lT>-AfQi)U(T&Xl0^U$ zFy?m!A4|{hC7tu}`0(tQ6E+pa3iamyWg7TBGG}7xBP2>rbUfm=p5Jw1SDfAmL%^XF zvRJW-?_JS1cg&fRo0e27CDaWg-ymPLJsAt{_(Zto#9`{LxD~QHH@0Tkvlx1dkydqS zTRFymNu95M;dyRQRJT6^-&pU{QMQK}?$&+wwPgO%>cP|XY>x9C`gP;qUhk;Ss^sU+ zEA{Nzc(#2P+u+VKc4voV?A(ez{PspmT)A2v3c!3a6J%MA$;s>3s}S&o9WN9!yG`7J z79REW()h7##Oxv7%N@gOBVT4G_f} zzOTfrPBy;r7W2gKo#Q-@2ZKJ!Uq%2-WIvyoa*Kfd?PTVSgMNJ6KzK2x43P5S8B+Dd zb|0`AmEs;D=o}Ipu2vWPSU*;gKS!&&XwERDw6(om&(WB1oiUaA{1Fe0cSW)|Rl|#+aFIRBqX52QjOp0W3K}~Qht!zP zFstOfduH(~m!bVN4q24C#k|il9O0fB9eebKR=3e`?q_wllB36qM^v&r=ttzF5|*=M zTrCWizE4djd_Fovfp$yxn)b}6!$40K76`&1<(VoW&P%sN)au7*Ut)5sUSeHrxTu!F z`j6DGef7t6av!NmiEuS#OsVYuGe`dfKmyh*X>t;Szf8c&6s4+~8iRb<5!07yaCbLY z=^P7&^RN`Hect=W>GkOB*=%gSf}GVkgEO6)XEP2*BZya?A831FXPHe$F-4ExOfXe= z9p`s^L&XQ`=x&j-#l?MLPc3gXoM!4=HThT`@jTCbqVZTsd3$Rf!RnG;T&);$Vd&<@ za6wjRk2tJZVURsr&(K=FIMJb{sb$t;PDfw8Yr_}xyVI-wW1pngw#dXE-N+EX_kupO zAn}WiBi_H(9v4-XpBD7z04}%Pe7`RBJ8AmEY<9A$MPmX4hfW*=d-UjLE&4I{?)Lz1 zR8U`?RJX7aKt~gaK^`ucViv9@Z5gJ<{Bmz!^2Ou>Ucx#-W`?Pwzcw7IDmd=8Ywl(b6@7L`Jh(bw1Kj%dG7lE(6zHHS#eKcU9^F;bx*2IsCBOhv$K33 zS3SDX5nyPB+~Dldx&dF04+P;|5d6I_oFO8Ck1LOQ$B;UX|KgPfd;5H)e+S2=q7c&t zOcI4S2rn~jyjOpRmHzx8a6P`#bZvG+VY;MJ9}TehaeAdj@GJNJaD{sl5Xiay3zGF( zCCS*Y)r0Kq?Du4)v-fg05C2}ihz3tF9!uP-8fd3(o}Ldw#5FKM0!hz|?ox zT3$aQe(u?ZwAIf|r`lBCEJn0px0vJ~2Md4uy_&&=HHkZht*RL5zX9?h=6Hp zbh5@6;E{wRV=Y<#(^BV$Un^UJo}Z7Ep4E4LL?(02-il{)w6;}pK4gJP2NZ+IHg|=B zSO1!5%K??E@^Z^H5UGD6>s1}=f<_uoj^3E=&{dW^+e%9bbjUQ+J3SII0+U^~sxNFB zM?>%QqF$=#YkVUVWxaZ|#e*}mPjx+N#jXeg87zhOO47&v4W$wMR6Aun8>9}2$a?Vur zJ~yl54D`y$EdQ9W>O7#nA#J#MV?_wal?A_+1FZ=*rwp<0K5+ z-4Wt{QB1%&Dg}Et_WLY0M}_n?&MOjbGMdaU8F0&4`D#?J9X9x(2lDpD`x0qYyy$H~ z2TEhddD1N2 z^Ey3ld7}704f;qLE4uLPbxVD$^j9iJJhXZ;_#_#_RTreU<3qfn*LLNe#oZ+hoHOo* zzYJbXfrjz)q`$9Ovi6jTtHUIl5nQ2d0*r;6=T$gvpRuX*I~w;4cmF9a&*kH=b*uU} zW(|DTc!+Q(JX8qcV7~kBpS5j?Rk{1}dKs}<<89pRj#_y6FG0O27raHw$dJTb;OS3CP8;ec^tg_BCvseHD&$D94%GGl)MWHx=wQVQ05x3HxbkvJYzkGIj+ z14**^Zwiv=N6mv!R%ACfH_eLQ1Lf{R4ONuwf^}X_|H{j^-qHU#&#_-IP6`>Y-_`Uq z7^r3qE{0s09vzpS;YG?lPOS1MDFMaCs$^q-U2wqr@rbC;$6qgjRnS}N+1C@;yINh- zW&FndC$MLx7mW@!?XxD5g-dH3&V00OaW1cHa=?weo_$!|zw>S0$4@kvSOY6bq0{!s z3srE9P>J?_*&~tofIYiRN0Vpy`Gph=t36LY@E6_!w?x~!0#h% zfL0xShQ{9;&z;A6o>k}kIf%!jCIFKPJxMXc9-lDLh6P-{CgMN7nHU=rf6d=_5fj4u zMqTtRFz(SmB8e52m84SjKB^9JSM)-C;pa0X)=v#j>)$6gf+dj$#G?#{p5&K#s<{f); zzQzT1F&-A;+tnHGc?t36kxWAG>3~72HSA2XZH@k&*u2Z0U}Lfkx6oen3zARCz#_R5lT>zX8|+#oE*(Sqi2^SD@(K7(UvwBE4_0M?)b?Z%Ct}vkXOBr~y?oQ&<}yDr+Hc6kx1O%a6X1>7bTxdzmI9JX7|U6D~{m_txldn{0+l4uC_5 zJftV=zco7CEIyP3zzeN1-EIFR{QH;CQP*bpC-@+{@iElt1F>+XC(|<=hk_Tog45~o z0^uIZlQWA>Wv=e-Ds5)jDvPMt&x4I$2ZT9tn=K9OAf^E7zZc@mH}e|81h zv%n0|@OfTl+oOg<7kzt!3`?gL)l99jnVQ-&xU3^cy*pTn1W`jenH5em&O@}9B5RFSOwk~U_MS$Ps@SFv1#;zSSLYn7={GNfp;3G2J=sud zXlpmf>wu6ID-$t^W{$zO!aupMU$vMj7y4VUvJVySsey~}R;)XQyPl+d-i{YG<2U-= zC?#}0#rM-U>u?kxLhJ_OriJWgtPw*4$02fsE*=yNxwr^~TU6PYQQ)%ev&X^E5AiRG z1Cw@)VMaPuhXf|G?-9n#=Lv&w4rb2lEB2hzZOz&*D+?LfVd-@J{moqwa1YpQ!*Fy| zQc=PQvx+KnRVwMERS55#CF67bz2xK;A!2l6!8a=dLD2CdDB`~L7n%Y$smT6FjBZK< z|G8TI86_3D_qV!=pRb2U$_kd2xcnJ7;Xq1Hp+3BL;)3Z@`QqljA}(uqHy8_ zu!}v@btg1xBz?ePKbM1b;_ReN4n0TCHyOaU`!ddlkm^L^XIRX16&`T0%DX|XA1{C1 zyZgo}DgO%gRF=5|SpwHpys~0ivaBC~_%@aUo`9H+FJ|hs2eqi3UYFeb?eoUuCn8+N z6$Sx$qRNi;u^0@(3q%#wdt1PZc71N>Xmz!Qkatoz)%H~uO2-bG*xLP6YW$T256e_Ki=VS3h1p+iSi^i-Y?!DqIbd8(m zrs|_aedQ4K!IJgWX#*;wwwdYpZAC$QyWm zJ3R;WlNEP#QKSRHk-u-_Xm0nqbFnO8ffm>_T5$f_`j8vB|4I z+0X>lHoQSXr2c~D^3!lT0wwT=q~?UXYm|tMpODC7kV{MzGvpueM4R32^G{?J>KyG8 zF8Tqc1RzCi7`s-Rp?7tw7T4j`MN^f}+d$}YLDIDz+^`QR)cB^joo47lXuG?o$$ebY zuWZ9>&S?Eq6^ty^CQ@Q>|23Kx{^<~V@cU3oit+4EO>S){q@u=+VSXk^Rn9Sj2T-2* zMWAZ}AggyC1HGu3F#z|!DCL9$D5WzMOS1B$UbXVAqBVB6XV17Gd~o<(cd3obtXdlJ zb+s)_y8MkJ zw5Dt4z|yD9U9TB2-1)4P%zjs=qoYiw;47*$4n*U$R#RHThon5EIAh!KzWuFdg=5lN!} zBf0v+U&a3rX$Q|90~_~sM#ffpTtx8ZO86xk`J?s~b*5rZ?*<&vAe`_v0ju3_1O;$` zgq$M;Wt%bkfEy+?LRJ!`Hx?i4~r+<(WZzyDv5NZ!#F3FL5TpHK|IrWFsz) zV>d%KmT*0Y#%XW$9iD$*be6Ov=6V15sgE6PVe4yxU}s;EcTWTBc`^JwTbv_$H#b-_ z8>@o*PTq2R!ZS>k%xZjqbpr`9D**=0vTcfPFGv-j7e>gKBF4ec`P7}+&>CX2-Bc62 zzV}Iiaq0xoZ`$-bX=_l`f9cpSKpRqmH7mM&6fpUmUc|Wckh)8Htm^prdRM25==tVf zW|b;CF&&+&>#zRH?B3R~bZcODc=EEQBuD9xq<7H2yD^ObxodMPoqokCzkjUY3!y-w z+H|?-9VzF@L4;A~Z7RCiv53;2Zf2FChyJN^%wg1vv6l5MZHraZA7pgI?QdAd!b<1t zhNYwK{*I3(fB*2@;nrh;LT8);|I;n*f&xg<@5U|DpH^qS3mI=Vn4v}7@3v3ghL_)7 z+S2}JhkvuoF;|xc~ihAD!zWCC?HtD)RI$3G{l&ur0-ncOb;%WLdug zR(NLN0QNvzkrt0-{Vs&s-I{xOEsATfG9p0ZA|)JTV|}DH#cjO60r{|Kibob8+z9)# zy7?B$)=&N0J{MEFz{sUp@Mxm@2njeOo*Q&?g8{~`Ui|3T^5lppfeWD)tcBJUh&>%N z`)cSC5Y5+6S`w?_eBp29;8BlZrp@01R#O|-%<)E-JNaC~F9ZzV{E`PqtVeo!R$gl3 zE)lw)3GX;X0f=Is2pvw*Oa5`b^1MPb!+KSZ7py<~o96wZa5Cy!lG*F4xq$oDT%)SA zKZbbo&yLu0-JC3=#5VyCEt8E7TUDff82*s^t$xss;Zcod<{)qH^7f}nq9TRK>8Mt4Ni-WA758Oaa_;N+{1=GdCq>`FQR z$%A+q^7l(|8^JSeB2x4dnckh|NxxFFk30Yg;QCHA-RH^=D^Umn;(Yt=fZ?U3gVi*$ zaa|h+0hlnHo$TfHGhPZTc)J+q+GA2N2`(yuyv{k?9l8!_l0rrANiiv;%yTeQ^9NIt zG<_>h*;8!|)vh}`WTyD0cMDg+sOK>N!@W@bbqTi`3{MLcmoMvZCP_BZ0^adiVV-|{ z1qR8r--m8>uJ@)m4?dtWGTuRjCHmTQ#}bb1Uz&i6fNyzr*U+h0DqLKK(E(EWC?p6? zv?i5*aTi~D|GMIWtY5MxGbdFF)O^W1d%OLU`+~lK*ZswT+RD+_NlTje2JrQFc2Jny z6O*#WhKP6mO=>AL0C!fUH#hLhlo?P~Z!qD{ev$=-qMhAjX@%mu+=hVC%ncUF~OO`qXyv4$Q_r0CKsU$@B%L9Q`Y@Kz_ znLFoCelE&g8unw*lt}AV&|nmo_&b7UJtG#~((|)Z_L5s$mZX%o=g`QBxD(*f!bwvR zEYeM220P))uX!ti4+KjW#FKiT#?MZnKvY^+@k{kH#~r6Ov{pEEf;6~@RGA>9L`tBP zh%XYyfTAx)TxOomI!Ihsht}fw{&3JFLjRVI|NGsSaCp9(Gt=JpR;F(-I8iYxqgbFs z&o8dqxeX9GumTLCK1R6~sXjlu(0V=tnph`ObJ!~W$@1nsSn9Zgj%?D@eNMz-n@Bc z>dAO-FfL&?lB&^`t{AC#(?zcI=kPcOO#!3gQn#!8$>k%nwKlMLPO@#D0&WGmZEAuCPCJ+85{yne)qzyhVJk^=LkXOc zkc2A#yhk#%aF*l7r5%%~z?GOmltm+3Dlfd=*2k~VLmOTVKIVHYd8@$u=^(AVk_TuJ z^qSUuP(z4{mJ<{}LQ7-gA57hj)vkWGNv92GY~{LHRO?Z~vIHQh6AogY5i`o|^a^#} zA3Eud7p~5$(7I^=Fy958L1-qkpB-W$ZVo+1+flU=3(EX93ud@`0x}WpVmXs~O+*JW zT3dFzS51>by~>6qn+P+YUH=YNdZ~DAHJD9UfA*V~V~)c1XTdnFYF(NqJ|mzG4|+;!5~o6?m2}4ND7$g_d>8 zEm+{Yv#-cBoq%&dPUryU`s`6D&o|KtEEhlNBo|B+vvD;zs@+@N0tqZ9$|= z-Zb*6|rrax2&?$K5A0De3=S8oP*QD>)!h9RMj z>Du#l-BwCv0`rQUou9S~yw=%OX@wl6id~@a$T7L9U;Z`ip9R0yrTRXzfQJG56IW`tXyjk0(mRT!Tt$g}B0`}w2 z31}}0=;>e}?PdnJ%$VVznzB3{9a0bU!{&y{HB56|aQee^0TbV&5`1LjnZDM`&@;E8 z<2pG@2s!l$E{ETeiM*}~ay*fk^H)6I_%DPUT5p+i@kavZ42>@t8=pSNXl?``lr`1^ zgk-(5D;>D9`}*6=u(Gl&ov>CDf1tu2eRX{tW?LWXF3ERm`0iCN@T0orL}-!13XkgI zn1UEUqENuo764#}K>WX~I=o2lw}YWYHTABj+)<(eN@nNpi>oi_^t69WhEzxJr<5Nv z?d=^D|9EiQe_$qa;m(jTaR*MvEobm-KPzevINQ zSLakRNvur+dWz8@!9UQm!I~P^b*dLqW>M7X5#o;{#UrZY$M{d>mu6)-Xap6+As^1f zpZ4~>jm@MzFh{ua3h3BxDTKkNPknZ?su7Z!cS1}snnk+<*QQ}EGt?5i=dp=S9zaS% zGy1%I;3B~*#~?d^`^qKRrcz1um>zP+YB$o@AjRDPR>#E4GP z*vyCygTS@7=}lZ7v@t0-(b09d%ORm{O+{m`oMtx{MzwgsW9(-dQKmsK(fVrXkUA1>WpS@} zUbQC#W$cjYM*6;#^8|YIfiVCiLoC)-#;32PelFC>I2ms2=V+4Ru66O2xy3PE--!3O zXU_xL>%<&sx7tYqJ(0hkuMa}!*MnX&R^payXzT7O_P@`wt`k9`juQDtP8@N_Fv?}- zNz1Tqbzx6tbB_Y4zyY^Qxs!!N62d*zb-i!ZNZgt)FPZ8rCSN(A7}LtN4-M!QL(tMjzAO0|ySi4@kG2Dv@lN z{&wZ1QPxar-O#gBQVq}$N!b(Q$Ih_ssPgdoMQ^Dk)~@`{<`R~0Om!>vwy)cweB3!L z8JX{9l1}L#F~O6Dff{mFkfTR1=Tzh`!~4gUlACkBle3HXlu*-0GmVvcx(@eklRT+l zl}KpblvQ5EzM48f^g-XBngi+{TNnr(12i5-STGtK8g7g(2z$gh0Wz#SO4uB9gh54GdjFJf=FbU^!(Gf)cx;opHbx96ucRR zOJw9c|9kqpYRDkB4n*m8S8;G{9jy1@w7<(!R`_IIBE@<_W7>}g9;x4$b~f?^3Kk|Q zWc+8q7xWtVlARt-UOe3A4piXcg)P^msPuLB9XC{TtJ$HwnCOJzkKf=ZE*Yd=Rs1RCgH2&2K2?17v8b

bugsGA_N!+86-i*}5>zZ*_* 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 z

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

K~e=Xj^!m==^?uA2#d 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

plp!9Ko0*47^YF?b4}}i z+AS?hn|Jn~cS%9cwjPaRT+Tv^tK%`RrD{M@G(mQB;jJ?pu%APe#8D-#_r@^P>QFBH zuH)B2I^a3{RL6zHf@7xD>a__{yiW}a&-V)O2=B|ZwyIa~(?P~CXu0y(Pj8J$y_`sp zBdNxU(5vSAlP_ms!MasJ2WX^OTTc@?B54l!@x+9E;H?~zEv0S_`7D*(+!A-R8F-vE zd)>O{w_ja4#?SWx^Q?oDF1&p>qQ1}MFhE9&ArEZiebHR&AP(hiDmQGtudP#}2PW$T zCaG#9kexHjo+e&DvU>jt{Q^dqHs;Xz8GDvi4yhRoqMFZ)kBoSd7EE%B?U%FH1pwwT zSAnrd96*LVcDRw?avE2!l=vM%0X*OHtqgE zM;K9XdG*wX!DZr3YYFGsCQJih?#uI1$+4I!Z2vhtUC{GVP|%ns?sSEw{EafE#&y+h zHNt8@ys{SGdIt>~A`i4|8qvSDOo;FO5`%dTu-z>pR>l+F{Mw0)*`M9q49k6NHFKik z=8?WG?yf44+xXjp?BOI)R+dNFy7Dov1txGXnF_VRJag2jk)3#)jk8~tbOd#MV?$nz zT2-BzER?u3;`iUMXPF=Fm{u7KzXIoxe?(1m%Bvyp^=~I8+mkSUY%Xt@Y~oOIO?e#7 z>~8MrqI=W4SzFHW;X@}`42JSg-wut*h!d~`6%XjQ4S2a`&F>oLLF5wbt?yhx>S4Ev z8vDgXH)qI$!VCp#Tq+LJ>Nh^S6LIA@J}n+ZLH9+syC6dMnUVjT)%mS3B%&&Tr_&Zq zOENX%zcz@YG`lxE&X9-{i+h|a!G7CIN&9>rAQDEQVuPFtT*B*>u>0XZ{iki`BLKXO zZ3SiTg7@B1l}68VA|yOS$1}#F2^sm17>heDPX$sO7;3e1u#6fopno<&7%shWaK||I z1xTEqp{nLnk53qXLdl4<40b9R9Td2n(0&dNt!d6|I+_cTI=np2d%YkKVFQ6_Jr&#B zbOmI(2?-1LjE=hjFk>4{CY|nA%}M9lq~Qr0Q-=?KO8op4&)?07&Tp*MZ0oT&-)QF2 zf@&@+1Xb+B7T&PA*tdyLpNSFPr7$Oap7xPTH0r@`PbWoNWEG@cU_LH$DB7yV?3qISdymNT+`ku8fy6j z?5&9CVDIf-u}wwng?t1ThKxsBn+2VLeN}mJ0+HzeX}h(5sRyf?d$6$^H@1NDI*}X} zN(!MjnjDe8^M~M_MIHiluUJW5?_DxS`l}jRiZQwqB zkXM^Y_&jN;CiXS)U79exdVstmA|eY1QcBk*+3-G&qj`h zRs7Y(b#ZXV0x=)jqk{au+pMnjQZ9vUpA&mK;Yr6d@^e@o2f$Ws9y9b}aqF#veWOXTrgZan-TM}P2jr4dRLU_C#(L1Xaihx1@4 z%G`!_RAMy|==DiH|I28d5$ zf^!nVzLDzo+?IWhoPR7H^m*p2no7?{hAeFb3GY@zh?#|PRME--lExF`_L;Sis#mkk z>J>x!UH>N6kRLQV);_$yp1lBXv}je~smUxw_q=Qd+^#+|>snFaQoLB=O%#q!`p4#U zwGDT!{QCT~o|SRD62`ePNTx%-gT@)Z`w3PxB6i-Eio}nDnp{tZkWyu8^ue#|fEw5P zp}0dO>oL}U!@?~kgAo88@6-1XJ*`ewj4%3Jn)Bg9tG68M*n{G=K&{$T4ZdCORhyvb zD{@ah4n-qV3Y@!9je*ElGOY^ARS~hVwQ8BcXUyD=4@Z_Be91}x^nS8$m}PASrXQ7u zB^}qLi+3bL9L3-2QAdkwK0o9ue@r=fZ$)8mh3$AcqwNsnYy)ozfe8nv)eth-SxP!f z$jv*>r->LRgc!+NSKTZN5wj}H%ks)qfeCox!ajva!{sZ&oXWN4uHoy44x*2I`k;CG z0pI*<#rFw9tD5)2NtPly@CqUn8bJ(m)3D6R?U7Q+w1jf=j~s|Yvf2eLgroKL*(2|- z6M1S3_LNBu@m6A9RV_E&ZK$c@_`y#!2m)ZE%A=MKksFt@m3lwCFnhe~@6Lhg0W#u+ z@Yv+P&9&HB)4!b9U5@F$qsY_t)t5p;gHQ7-3@TpomW1g%bsO$U?7_0CDpKHYVsl0? z*$!f}BV)&h7vPknS}K;(Lnhm&2|s7yx$C_T37KBAd|NFBM zUU$w|gm%lKvamn;I9e}oF0D`~!~MQx&Lzi-VUCA_BPAg?Wyp!6YH*Ju!IH>eoooba zwpDF;W9Rb%MDp#Dh%!Wn^j5%};1xhk@91boI;1_)*CubZp9aDmy%|3Tud+hqZ(D@m zB$=bGiU1wYkcG*V6ICG==l=G=dKrj%EtDIF-)RB}d#NM-ZKVHhE*`Dy2Zphbp z`MW)jD=w9&IE|d$ZVA_oPck(%Q9jSYs0kkR9iL0=jA?fsbLMQ+{JsSuj51sYRD+E& z`T0742jMYaIWcuVW)upqWGqK@X`|R-}?ArWNc<{B%nSV0EZFwt1&5`d;CM3ccBm>I^ zXvIlIqATtm=%T&{fUbWSye`iZY)K0BzT4=er$w=Lvfjf;i}Bbwg;##*QL`c-`s2ZgqK5C+FqS*I2ZD$^|-hHT>r1xv>oR=2xz~Zhl)IohcxAI?z)xB zSn)md+G}*^+Zf9bi!(e>?a-!;z^?0-5&#LGV#Vy0fu)6z1dgM~tpE*j$%I5cvxZXUnAPDQpHducv>b$Yl@L7|}gH-ggjcdLQxFXdKX|Lw0) z0r_=)IPL089=rR~UY>NSNyNrn_|gET}pW=0cC4S?L7x=%je> z88WLZLW(d$w?KXs%`UME88DLR7HDgXiv+gKUe9WHZL(k`_#Y9Dg>d8AZIng;u zNr#f~D~cu)4N4lAw`I?XH@c1{yTtMcdpIiO(0qvkd_T3}uQD^_dCBMdTKfTP{?88M z{LKE;k#IK~MgI5Xg`Le-wIqj=Lfp3tMD4~~{ysUrpcZ>coN`uFN9StOKJnuV+|k`T zUm#ogCq{E6%1ivyPJsEV6%^UYcZ}*WF!vFNFktu2s*q1L2O&Ljr(P4{$+>f{uWali zuJJtzB`A-&ZM?G5R0cdPnGF^`OT7Kt@G>s{^Ro%1&NIz0LMR;0A0`1;a{xN&i}z=z z{`5QTna!3YalE$sg-AnS$&%xC9~Y*^b&huVrP6C`m?Ns@EuC=~F{`InPdOdxr)3r0 zwV){oP}1a~kVudGhzcmRvXyw&(u(p}FjHLw-f*sTn2YzFa`6}&!P}!^owDv-rYXcj z(&+fmm1S3szg>?Zv~XtXu$1T5owK|rQ)k@9MDOwBGtm43&)dlf;`gO+B?5pub=KTh zi4zpqge->x0D^bP;EM`KGc(;r$ay&Lw#n}9zV8z4E6-e4m*`LKT%(#guzp~$yRo~| zz#VmBIMaV0bz~feL%zkS@W1Cos|zCJXY>P&^CI813Wy^Wo`}b5&{TUwhW%Z_*AeDU zdF!b6Sis3tlS%()))q=IJjYdtX=`+LGxB((R4|Hg8X0_j{(<7W2;yvH%^-un}4wR~E8xG9xVJNcZIC?h$sf_v0+pEw8c z^GvvMyfOwf;vHk8KnKy%4YyVZO7c&AQ0qGs!LF;OnW>HMoV=aJwl;pQtcFR3^U<^% zg5RW{wZvQc8mQ3ax#iUTqNii&yukG+6HrxolglY+V#hHR;}#eGL^%qTlqW51@u2&8 z@sVhg7~oR>%jMI}THBxV>|Q`71A8g<#_gTYp5c@>f-ktu zG0(x~8^29|hPn|J5LbQ~r+ibK(TZyQ;%^eQKkj20p`;^@gu!*#`MrHoD;7AD`>T53 z5rE-^A|9-Fh$zp9zx+%1M@(An1A&O|$i3E*PEOIeV@iqmZ_@D{CUVo$r_g9b0ACLH zFuQ8SUB#%)R)W^r!cX`K;ivMtIpj{-@BpNN-MQm>V^UBr@5S{yh#lbr)YAU)^xrqJ ze_nO%FHZlxGHKqp@Zs(v@6HU*YTS$HgS&uUDS9bRq}{2ScT5pQ(#f zb|?8byP>}=oIitBBv8TLW{zCiE}7)%@VF)(F;@?;lIId0hs0RTih7+7b-LMppZjPd z8HFyM+DM*zaF58#lHs8nQHUc?G9uCJA8nSD_*%^9p$H>&vFT0a}(=9)FeZ4zLp z3B0`K-Ia?z$yumgQ6)%F5N+=QUNUbrj$$2M41IO9d}= z8w1ZM_eS5Wcsl_iJOW?;y`HgfsO@ZJS+0^;<{hh-7z$Lht1#Mo-DT%7 zQ6&oT1|r=y|4k2y$$t+5*o(=RDIcSwTPtfDmhVieprlfyTJFVhLOrNKFjuBQh0Jwr z$Vr6^&>M#1OmZ+s^GfJgp*~XmBnJGfbV-wZ`xF52h^uq{u2dk6Rji1N<=+TAQq3OV zDRXRkd5qZ|^~ljncO>#hfZrlBUK1i=J|y!r5uB}dsdAiwQFM5(8J%+nW81(|{M|?8h3mvT`9WR^A)$J@c@8Ea3a8 zyo8bZ)THqxi{t-hF!joqq7KXAQrC90o8YZqQRK2VGC*KLA#Z7!0w#%jS-2W{kx`wLMb7yF?T4|7S>ZwUoYa1;~eDJW|V1>{mbtlA~ zwT13|7bJ?%%C5Z4fw$;c71<0Q}<< zJpqtN=uN${D>Yk%Nw$%_t-FbJugOB6BIo7YwBO!))ZehU2H8@`@P%57EQE zus3hQJff5flk?Sh;QXa~q-<)7oE7h$9{Rz^a){{-d2!e!?@%WuNjd9UBtuFZ5Lhh; zl~;1If_W+^j^6c7q-Wvrgu5&OWp4$AbavnDVho}PZ3Hrud5yb0V;{-Uhs?F9WvAaqa z5CkVgSh0AP5>J0d-#RmVC$0DT)1g4^kTAaV)HjZ(iwfr9VM6P>&y!uT+a|65$x!tN z1O?(a)_%N|HrJDm*h9BTo;Pe`0${u(`lR% z;FH}CBK<4pT5r-ohn-~>GoBx(f2jEvElzVFurIN$mG}g%9_IPl>|3dCi5U+N5E~WK zYIven0|CxpBWFv${^5LMw1EwpKYi%@w{eJ?^{6F>*hf+%n9ool4iI7mjZLWbmRW$) z=(fL2f^j;6K2{i$`qx-3`Hz$AA=}BjEMGs@jMujICm76T4hi94*4wbg+T8GE+L+77 zcXD1}5C|hfG5!o6lGS{x99{eDYbN#li0~NGl@2EM^rs3n9cz>>D+gl5T|PfJCDuT+ zl$W+PO*z;)^-tyBqUgV0rT_Z=WlhS-u>qiB&WqT8d$9#8Ym7hPMr17o;)tSZDm!hkywC^CsSzFHDCviEY<(cZAa(P+AeLK>e|;-K#t;u`O!p5zf;!W z9PV_tH;dxsa0ZScKl)uqg5aOfh)QtBGbxRYk?!0Wf9Mvmt}gH+5U6YRtlz-rQes_- zFD8no`;FC7s%%A2D371h{PtEmdoA+x*wH3Lc^oZs>c5c{+>^*@^Y5KUvCN^VS9b8; zhKA$A%dq+N=bygxSyncw`JZfCJED**Bj_^*n+$9P@(A<2V^L~@{Q$(CwHjI-~J)!y4~chaSEn4XiA!P~LbOOz*IwyEx<~T=4Xn_hoKRQa%z9*6cl6ZuT#JZj#rs_(odnra%G;aj)j{i3&Qjy;H~QtQI=tU;01;>pU(ej~GkK%zA=5cAMJ* z(bHUG!W4(U1m>$E*CtL~CToS+TJGOaOgH_zXg8VpKJ`!`JLuO7@yw%H{Km)!E!oh_ z#&&z{mg$RvRaC^ho~D{~6$x=Wv~DoHbl^H575k{XhoTBc=a zVrs&U#_-By92T7vgSN8nOf4Lhi7-DyZBG2=L+`T_fN6_0(bM(tV|_u5H-*XIb3ZVl zx!+Y^7cIUwZYM%b_ApQSiN@wc=xD3v^uwcTd!($l@7YTMa5$=#ELI31jmQ3>GUDT{ z?p!${cIgvrOBG*NQwKr7OeRW)?Kltoq{~|c3{a;o_f2YE_Al;e`j*xLGl^9AzOZS= zYq4uF)EB@EAG|vYm2v5nR=&41Ms7G2P69c^Q+wX<5v!9&1}TaN)+_hvXY`@I zz1_iwrN#Ej{%dZ4LmT2_gCEt~E>rSvlxSp8xWf};G~YoLF(uw9at)_TO6?!K?#OVy z=I1U>oJnCtvzPyTjtSGP2);jk=IEs`Ct=_hra-wD%&7ar{l|N<9^%R?CeX>$~(f68Cly?{%*YKWV$x;b?^377Hn?TMEU88Y+iMvaP=KW z1K!2wgD@+n`6W>NS;|jyR9wmA>5vBSk?--6Pv`)#^2k)9ch{kZd0)^H3`hMXmwC>9 z8f8Tb)-otbjhWvz+}_6wE%fy*cRn&qTu3wC7!W(=L(&k+I*-Lfma-Yj;&6o6!Paq8 z-1)r31r}==Io4;ehnd^l(3uG+QQ<-RkK2oR9hZDxh1Sq;zT2tMR#*6LN0wE^Stjvd z3b;&{hG6K}z+tdNe4b$zdQW8vv&yboUa9 z+*NMpNo8HzZZsyG+*GYGD$%f|C>8}RV*uYa11CEze|L%^k_8lMk|PD=Tf#wble~9p z;Dp>Xkh8c8Kp1?EHPVjxlyUrDS?thL#)LaFM$SlPIt^ zfig5&Y7O!K-RX3!uIR;Jg^%%P4DyZ2LP?Triz!PqbW1=r+(m zWG$A~F%FMWbqM{F~g3 zGC7=hmLdk(*>LW~*k0v^Ov9qe0{~A#6Icboxd__Cc$g~#Dc&Mwsb?P4FzE8-NN6MP zEyp6GY`Ar=R<@;`i|%%=*9ulH=b1k&zu zZ{T;ftUMw1`gc+Cy8Q6>mEN%lL2~LbW9C|NGFH-M5SKt>_?=9t0T!9cotB&Oe;j0l z$}?_@tZBnb%}k~lQ#u%ah{4}%l9RUvfV3U#X@Tuo!5=+YJWNWe;m;89>0C}T18QEiU*-@xMNY0m7% z^ZEpgPbssY@>M{MjTevkJb&`tX{lr9=2q@f6Vl)tiTLWsdhSF^k~OCU9X1!esz(FV z_!Q*fXP{6Gr2Tw=mKaLjoK*1pWwIk))kwR2mL{H{-80OvCf0t|e|Y;ZWqX_R^ljz5 z6V!oZWLg5{R{Hj5S;tWWhAQvo+Befgg<}01`TJ;RU77)0M|HD=7eckQb^?`ekKf*& zvB1AX9yG-6vtsvdb`AG0M}$;8`nz>1mVW5Z^pO4}AeTRF$4O;!_+wpAK7$`Yr!R~z z*nV7>I*B;?2s-i+d2j$jfCo(u163{`qe^sDhhb*y;oWIN$~@7+l)D zFre0M=-R(GN{Lu{6_eol`L3&nn0#8$$6!nYTQVyQV)KOlh|$K?XaLN@GdrJDGa=A^ zqRXViB$V5U^CpA12m9l1^^pc|?zx_4HR3pLcOTRG?Nn!_tZF9|ETzaTx9Ox;IeFyF z%|&9UnMI`4rP5Ukk_E*qmtz-Yj2hk|RYMa%Zb4D^8PqyepYPs$WWad};`A{cls7Ic z)~IxPdb+~=Cc5aI;9DW)pM&U(eS^H0W+MZJ44#&taSICF1&l%<9~5Om0^|Fb;!>@! zEGa0zLeQ@Qlp~(a#j?}+2OIAssc1z-hWTilTE8*KdrNGVDp&{v;4ksZKMFP{76q;R zkxD!xc1aviq!%-Fo*Wrvay;uv-aFJ1R`k+k3!1xsg0)i3ZIS>XRB*J_3E#FC@|Zc( zMDl)@+SI~F$`I-)p!X>t9;WU{|CXX^^w0z8@6h<*Nsi081@(iy>3>tkZGzXne^J4p z@b}fiL}MwhKjTp9D7(3kaV$bX*LF461#?eT1Aj2opLn5Wy{^I>-VKD*E~QV7F?dGg z>iv1nc|E=T$rZ1!oi11Y9>o)j;TrsQxa8MPrr4$C*OH8o%aQHu$^D$57Oymn>!|QN1$Q^WgJW28V@wsJJ5Wz;`5eu@oUyo(!#cIB-`XHvlrZgx_@Jctq>g3k$3)>8UoOhs&F?n3|}w~T0sVeiM@ACp>jGG zvXAz!eEozzk41&)woreqKdDd6zbn)X)d=?^~~m%UA?y-+Le|Ckn+ z{`r-}l3$BDGC!infI6~S(;s~ks+|>`-e^0H8)MFCf8n?cVl!PJ4)p4oAX7$iyic3P zVj_z(_{m09HUHc(!0^V9JA(HRZ}qNjLWo}q(D%HqA6KXue&rS6>fpC`t`!XN8EUwZ z9N^aU8R*ce;jz)>p9~M~DjvVIGoJ zbHo4L=(VuYj^i1J%eAt@OzQiBQ5Ty~DUrBmk2CK6Z|eOp2j9nO~1VUfrcbYFg{ht##muR-Sm?NyB09OJlwwYYzNS?G^^l$DcGe z<1wAklw|6VpwW-9b|Y%P(O>heS?2TW-k-1}sQyn2P!4(S2|Mty{l}-JStyg7N%PIAt}oe_so((3FnC@7>&g7S@xqF90+8AcJ&DP5 z36g9GF&kEQ{XL)Qh^gabI*~{{whPPyyUimZcIV?5`>mY)fyu`es3@riVt}vDOiNk% zJ|%EOJBN*Ic!D5}Ix-AC1mV-b2*iv!WP>V{t8MdH z3sST1=gDF3KGsK-4j+b;1kGPvW*>T<>;{CVnqD9RE(rH0NL= z>iJ=N)8lreWx5)o^Ei#(&t#U{H1~Anpc9qtINw_)ThF~@8&W3r+i$i zf{MV5iAh#fkpBeTIsfY-R1_i>`JPizHx?yc0Nc<^h`_uHa z$xqXN(q((+9|iz+uKru@k~@AxzB=PuZSHx@$Otc`_m|1TYH96Uy)p2v@@*?h%gFdf zlu07abY(!>tqBg$Y!TykAj1)e6*e@`O&t-tyHoTwq&HYwSM;XuNDCwmydB=I60-j3 z@%D>8{zlHT@h2R)5;`@tjQ{4cob5X~e03|wjM6vDLym}~pFkPJ{fLgTW1&283cks{ zq!)XAeSP9k_WNR1h;Y}&ffV&q^SE$Cm%P0~7t^+j!8JZNAshPEVmNIbXAo-#3H{t* zmho$LZ|k{S(7Jb?TgLi57b=?4z%oAhkk0sW^TUPSdbJijo~}LJ_`+j8AU}5QrcDat z;CfslS03KVaTvRHa^YA^U9K*2dQSvmh6&}oz|QMC9jqyzX~}>149z{Ec{U~}RvdDw zC1|MT%%<$a`(5?ANjpYm98Jfr<9YBSOdH8}#b;s%Z(e#tpNt$HKNGfu<3P(9>ziG> zv8bTXi1|k$W8GOp`T(!Y)f1v9zs_ge$9?k9wPNA86XH{6rd^jQ!yUg+X7YV&yBixb zazSC-V4-7;A?bx%Q}dvRHc30?!&{mu-|z4Jv&SBLydR&}`~7;op4p$j zG2fQt)@-B1xhW>$y~N9Bw`zT*58@LGybN$eNITgGyK%pr?L7%}*hvqt>DIiQA|@+a zfOm-}+g**QX>OEe*dZ_kyJ8YVzrCgYTLN*Eu|IyqT zqz0Th^N=Eb@^7{Tns3CRorB$8Jl=Z)u4;F?wX$q;3DJ9Kt(4NO^$Lv?G7sT^nCi1DNS;$22MzE#Wry+3R?%?C6 zc+6IV2tHS}UBJPKx$;iG$~)heN}_Hqaq|ASlU)ZUvO{IhV3^L+D+DjVd) z^d{YM3(1Y#KDlLkJLe_>-s|#xq58#u2W}y3+~4ENo2t)g|GE10cjuld^HqG!uwCbW z1hWHv25a=5Jm5D6_NYRD6PmVmbumS$zk#L5gZ0!9L82cvl4)F&rs|d6&fGxiqu+ktQcTpTRP1Aa`govF zM2GB)mf^&$Q2sGBLBOW~8^3eurq_Ue{GpPFy!*JSVS0oEQx*IZoz5`$ImoHHi1f{y zzVm+x>p}YkCCl)aREK7g+BP7Du`i>6S+ zSC%x(cQ2+y1ePf-%`F3e%E=4g@2{mT9s}M)_AZ?{gXEHLKFai%JBiq(y;^-qoW2{! z>QFTNDh-WBo4#7z{+O55z9~$Z%&aC3O6FwQh>8|ZClBG~r(L*`($ng<|m=U{wzs{bniJpFCcz`~X43w&C z0Kab?Z!w&x`^q- z*)6xUsQ!6gj~sAAP?s4_yTXno7@oUtN%?sUa!}41^9t_xP`CA`{b7xy0inuNaQFaK zY2;|p?DzMj(`ikN5X^g~aEk!_uufv+)#Gv(@ivQ0w2X zMQqt8+PQ$VgTwY!*S3Sh(A@7OoMg9PFR{d(&RO)$N}5+9hc169o&DP1HEK#o>q=<& z6^vcWIW^4gF>4Ry+Yi_!8dMK^JO2ujsn&VJGo*Ujdn}GJG9&wIbniqk8fNi(qmqFd z#cHHO+}v8uco+u-Fzp??OCkGt%{_I^`(t8S(C)e zgH4%I0h928Hp@ib-Q>hpC9A6mPYE#`fKsowFWwJN9(^Fw(I+w&CjBd z$&}hW=shg*mKdeJV}*XH7sK*q23dqK;eD@q1-gKC`yH_am{NW2ibVLwj7uX$W~VP4 z%kky%JQYf@5Tm%k^wk2kKK zuG*cht^DiEWf79X-uu!_zuf)Ejz1~?uHl;C(y^`luP#k1;;e|?;NtXPG$gWG8m`)n)$>3G8nd4^~NsKlFol{dsU!PkFJC`xo zB-Rcv!vj{z5Kyu_lDVw5dG|p@ZZqckm)46^e{#`tmpOgR;169lTR4}3c}(+J1e3@WQdk~^Qm!sm zJ2KPQdE&YuuPb#go43JKgPE?HoYX?2?S!SM)DD}Q*;wafVM%5uN99+l{4M(*-!_vSrVdsRrkHF39}R>r~?OaK=jQBZy;9+7IEJ zldt&s`98_-?_5Ug3E~zRiQjf8+5~%SPZWi+;<@{5&r*5PsL0IRRCYK*oxLmBt|IqB zmQf+TVkU7_>e)Gz7&MJhU&DGIGmk{#jv2s6wtster~ldg`z>XVC`SYitS+}!>9)qd z-fb2^KI*W`zUWu(s%@bqGE3ijj!L^Eo@R{N>;Sai!5Kp%f%&;X1XsnfO9*@1e|v}e z!@ZgF)D-!uk6LV$x>)pDP8q5LlKpLO?Rc^7Awj`XT)W)ActS}@qP+PacinpG*qe(TOL*_SPkLVnF>C?dF~i@ybic)*jNA-@HHtRQ6I&xVh?I})Mk+!1 z@nm0@=P&Z)F&rt?6HEH?$R*};!MPW^*JCY9dF2!bAorzHYVmrNun-? z+RW?@f%~tx$mXWz(gOt^e0#^JO1_JG=9?(7o2E8WF7k;#65Pa`f_YU7(uP~Y9zJ9i zBPi^Rw>OtPcWMj%3zyJ- zkaEpZNgiW=<@46@arVXwD+Ii1J)CiKm6Qy`2rCC>^CI5=clvaz*UMdXb*Gk=u`M4R zQc!7{VphRgnHZ;dcLXqmNkcsIqBA}`4s?=4@Ys3ix7(y7=2Tb87*`3;OtO+t;@?Z{ zmhaLe+t@k#3ZozM8Dk}G*pBOi7{h$vidP-z$-{5uInk1AjAO!`Y`nOS64rM`XCpZJnN)n(q<@y-V90 z7S0l>CP8udMUe}$YkU9xJpN}_oWcV-Fah=KFe<3({!*|0-Di+~9|N?{pM4L!f!Pal z%ejdDZ$&eI{=Lps=E_DO=bL*2?HP>k+L%)h1hrun*RYjF|0*(>i<;u*EuvwrKW41) z`OSG+pClbZ}6r6384dXmfmPj!Y zyM)_S3+txZnIU;?sLT+mfXHfuLBS#GzFlJ2b&eGmv%y;eu6%u4>SX!O7>AXla^E9ckN^1V zN#$iI@$^-|f#BB}1_9^Up8&eGqt{AeX70YvnSlok>q?EZW1gm-J*8HTv8u)VxlG(j z_p%S!y=yfct}d2TnMD;QT7>t!C1368&bhyfTwU`S6dzmU+r5CFL(Q?^f%@7+vQbXq z#Pl=@Of0&{W!gJzWG%AQ4!JXDJxAvRp9JGZ8H@GyNGJ%K*>#j~F84l-m(0H^?(4N{ ztnuA5r^6ofzr?OLH))^`wOLYmdHEGzFRW30#=*FEviR>JYi&QiZ__PS%*-Z8!Mmf0 zWbYOF#^quu^k>K|T}x%is~2Zw*JihBVjaYg&s|;5ercb{B-YJ(ee+@Bw;<^u5)^J* z=t)7lUKULE_&@HB_;;M*mmX&%5O;c%-ThPa-_LQz-s@_D5w0s}Lm0vbWqopVRNQs8 zXCg@X%bgKTsiW?a+UDL2p_F1z2$WaTwJwE?ADPlXGJ4g7PmObSs|WZf19YV@0tYu6 zLGpg>Qb?xWju?Hxqr~K$8zc%Kcz>q8l!d`ppAsz8tp28=cpv($tM=qqjDdkWZ~EGCf7^_J!1%^oZ3jv{&;C}5uL13L zir6!XfdHQlkev_|Os>y6{d1y+9aBA{4I2I8s`q5h-mS6B^v4%G!zp8NuN*inFyBc- zPp(-gBK9Z8kVpyRaTkp+jECzB#t+%8h`eGMaz)74g8gK%ROqd%x;E-8Ik#Y{ zu0BE)+44E+d`#~c_d5#JIHHgC(mPr1Q(LGRCFIw_qFd&v3d@t<{T2zpQh5yX{>NkC zXeg!qdRrrSkP4f~!lz0gd##BRyTD%oHuIWALjib)++WMJ6xlcQ>*BeL)RNE|v#GLd zI=Xt#`iY@q#L|mWu({c15FEe>=V*F?@z&dJ6)xmJVX|%LTUbe`a%mhqYS$?Rw~3_< zEk#cQw(&dp1E$WqnuAgXUPGo9S+GTD@7kXKN>91TM9$L0B@*5_;h8-v_!>)lQ->J9 zJjH$jZ~-e}_z^Zwcc6oE!>B9kxRlsXso4%G!P3PB}6Gx=w#oC)_Ap8u#DfM~09C zhxam~1&p`Yms|5#t|i?9+g?S)9yz#UHct14DKgQIY;?WdciBxA2}q0n53@Y@9)gQ?+=6~ zARP2;T9SFx-_%{}kQZw@c2ri9PBaq#G5nkpXd3YNG2+ln$?wnF&~Wf^gGKmmjB?tQ z=k)E!ilPpakx?rE;2GQS3m_~$f237L=5wGdmaGRsmiC#E=?8BMmbHTciUKKoOf z==SX}nEUUY2R2)O4v%N4jnB{eK0f&~u;pl9Dagm_&!aFxrVIm^NHN4-&}|A65nIxF z`$dBqe&{B&1T{KoQ-SfhUcd)7s&+qrWlxq)1OC_jKZobK2S@g9QAzu}BT7Oj#-@ zGMcUxI6u!A*vg0W*-_o8TZ{3&UTnHig70A;$?On|gUiLDn{njXzL<~-wHfO_c{W_D zqzZbk2ZmF@*e{@1VT2ieTS7x_p(|->JQ<|>%A?bkk+8-}lLtPfku0DQ1!QzSnLYBl zP`Qle@c7HwJ`w;$X)T?k1Gr@Dqr5|J9pPA@B+_Q zk>^&R4kXg_LCx0Jw$7&x77_Qx`EKa8{MZVp23PfuQTL<9x`x@tA z#83VmiCzsdKIh=hDM=ilRD69q)He(2QF(r?EI!U$g>Ri;?I=4be{hTYDwbLJv6(~y zJd*rt9QuL`w+}@y^AV0h@72v-XNcS^(}J`{Pujdm3>YSt*faSx&7Nj6L0XMj)6lSBCd3c!px=N*Z%AW)M9_R7V`AU>Q6;=PgJ8J6iYXOfZzT&96U_GnWd zF9!)mr>Az0qd5~R+5cgGyb&?>CHW(r^W5xO93F3u&%(`-{i`1B&Ni|DJej7hO+EdS z%+9?{`raiM)=|+IN2EH>k>^~#&-eBws((hSyNZ>$PA40Db8{R{PAsP9-f`*0uo~HXoK{I?irN)z z4Fb!UpG|KhyPYL~pt?8hxdjdwl?&on6hNBz-+s)pD3*n#=` z!~SX68a}?7K#0^3#hDd0;(~JCOrOe4S8YZ~%ZTyQ>tOPe<1u`l+gS@ca3311k*lz3?$NyDYXB|GaFa`}B1!)&6R(YR3vMBUDc9 z2AYQwfM%}ib^m@J?gc9b76|=u&jy3VaqvbnTF2I< zc&O7&Zt+NxsUajvq-U(Z*XyRfE+|SX&FE(`^XT$s!X=rRwGd?VYWu-)fDEV1aiBva zzfdD)sZ=%+Q=j~~zZQSX2A z$!B`s(J3&0yb#R7&v#Zk2~nWp^weAigPRJ{cH#poV62>b!fc-Aluf1_Z*Mu!XI~W7Y5%>^8r;^{Z7=?S7lC z*Ia9xDThaN9_>%ke$j>$rx*IBG=BNmxE`ZfJ~Kc?4;(iu_j(u|li9j}ly~owXC2mR zvYok|lX}_p`^(}<9v6Ysz1fq_r@<^t^2T}uk{k}o&wY8?*8P_i4vubOf}Olx=@2&l&j;@uAc3(`g;wX~WSvFpTJcGn z4Zd#ZaBby_Ga{FQH_kK8axRuk3_v_$l6DBb_BA4eudOR70l*4AQO zf^E+#=pSkY%`VXYdo4nb2nY>U;6=gAUG>ja%da+D>fcnL%^9J!-t6S?;vvL-%~D<{ ztg7Rvt@K<>_~@kBlu`fCb+V{OTzYY+mMEY6=uqm?1fJaY6&Ych$6_RoGMi?R{rjfY zjl2eJC0Ewch@Or*(nuNzfG*r`7*)JcSyM}^nS*X(Y>~PW0;};9Ij2j5&u=A}(>g+;sVsq4Y-@HI1f~6iGl}u6_&5FcTu62#t-+wMn^VJ=Q5zuc`U( zl-|Afe{b^>yMH(`AkCQfct7-Xje0fWU&rHNliNErKOGGm)TC(Q6zRyS73Jb&cfyx3 zB}=J9GR37}%^S=x+hIhykPc04dhC&YSy!%g|IG!@Trtp{t2nkdQijj+UCk}fd@4cas@K6Nj+8ai-FWN!y zKbTSzFhMwBf^<~a)W7#}))#l-K0 zzH1zg_jJVOTzm6h<4HL9c<=R5*V+xizYOaW?EO>9JJndCsZ|SAT=|H6O6*@124ppt z1lPL%V7)i1wvn1HD^{){oJw{O>?$npT)wf?Q9v8iOnqam*0O9SvDF#O{8yvI? zYTL|)E?x0&s?7V%ZO#O}A2HAhF;wI%Gje5EhYClBb~=DJV;~9c>!wm>qe2yaAVS2+ z+RVnStV%{1f~H6etMfFt$PF0i$8lCkgCk$vkR>~l zJIt7i-aHa~i^P052} zd0>3Si;_3JS>=eh@&+-!#uC7}qV8iio~y1lBQlk5XB;gFZ|tsA1EO3>Rt`Z=a{>h~ zu@EZ-dr_t}LygTXY?#cx3pW7mUjn-4RGN&%h5sJvep+9?Y*>OX+eIPmbB9)zcV?gW zGU;y=(4Jgxvc%lh(gqEU9pSam$&@XhPKo5J{}#FnXRr4X2f*3~A6w&?N{_#^GC_jq zhp*46kL^f0YEm=Obr4UYt3&0@hb_}+YT5Ur5;)SO(a_ZIvnh6>TkLb{ANGI8ZG|YT z(N#5j-kY`w282adWm1P$HngNVId53#Z6D{{{}C4d1OMCh+FE7~WGu!|sS)9{w(k?( z-BntBE}44N1NyuPSddwkA+V5w|JT6y@T#JgvHiGbihVPu_uAzR-fxe*UoUuN9Zn59l@@>MXvQlrf4*%BbwQ z>j^TLbk=1e&g&1k^Q$8Y{RIU1r1%4!op2nNrBle;t?3nEd;}H6H_7=hSeg(M`CwV0 zUJ)?-J$dq)Ofp$9Gwso_i#=YsK)theK+Qw4kcC9T%}0l$NxAk0B%!RdGpPariyv$b z%%P-2GW@m0&4P?tn&*hA#^TA)ox0hGd+4nB{r$DB6uDYi1VZ~8GHrDb5vaTvkz<{z zU*D8=pMTd~s)uhrY4{$-zwVq4JNW~1{nJZuFDx8XiMXnGFgx4YKobitO!_d5Bpple zJavKJ-O`FBC$Y`Ghm9r@6^}_~+Tx>r>yxj-Qm6qMA2UeR6im)_{F#VvzTV`3_ae{y_`v?R;tUt=M~aaN62n zQon5bs}D;~HBwEU5%VU}kM&xg8C!xOmOmOIgb(Q6uKX&GEdlaL9VBFdJ^;k87~n&Wv#2)Tq{1j@I4 zfmfUYaQyS)VEh-U?``aH(3>07{k=a&{r2{5D#xs4-w)J=e=N^B;S5}^! z$c|FyMZg6KzrSJJKjP*GOmC;ZYdrpnG?}oye7tLzz%=$r141=CnDNO9|`!L*f zi*@<>^I#4b^?E&4Rxdb*tgaODb`1nHynYB0f2QJN6VvoLWlr;(69n7&6b%{R<)8?(u*xZmMrEf?&x@mtO?)7p$qNPxs ziXrBtv08SE5!1V~st&WgUWog|1FWtBCFU1LP)d8PjMT3vGji2&xgiKXKKBxcPC2WA zdwdf5(pl-z!yYEHbeduVNn_`Dk@)++zc~_`E`m>olAdFr6zdtaa++&mzLEJ@MU}ZoaqP1Z%n4d9ozQQ%Han1 zhw&;Zx+11`2a6D2Oas{D(op?LZb+MnEc#Z>b6E0_ipk{ z?&f8zE}kIg+|}1F4PC2Du<4tpe+&e%@*g}O-3tsG`td65+yZGGUj2gaT1*qlY0G)| zbC=WvbKK0@#cPuuVH_Cy=TBshhH67Qcc^zr;6(F1$sNGUX1MF8cjW~e7R=QaH&PK$ ziDv|H1-P%3L*G`!8NTxKgV;GO|5D`lX3GGBX=(uU6TK@=6<9B`cwMm+7NSd2ziTRt z?jY$~l)(cD*>aM+B-zS6{P?Ml<+$Yg3t^kTG_DP3W`TvI(qADuj`!|OJlX3X-{O$g zIg%5IE1Z6Cjq=^;5;|gujUA@Ft=ogY>D*6l3@8M9CJz0F=;t7jc%eoh&>Svn_OMbH zcgThPHn_X*NWd|bCl{2&Q1>^XS-T}6E;KKJWE3y00Dg&(-oyhIZV=L4i?cCr()9RfXi?h*-08_Hf9nZaM(?t>6r8 z0wb;G7@wFDz<8$@|Es%nq2Y9GZU4)E#gC8G|80q${&)3s|7s|A8EXZ*z!z0ZTnrd*W8o6d9X=Kzz4eCz83+;u@k1A3htXqN@+X84UPE}qY6Ir z3$w90IA)oD|8hdJz3|Cm>K}@BpdoV7Rbfa$kd_7R&%bUXLfUto>ShaB#^J}i)rv=U z3;=wEcU^$nWHjVH#W4&`nHASGBcTBa@(dHTf zFw-gL@bztj(@&#B!$2E2x_1{PD<_-m{S@}Ke^G%Y(b=3zNP(1JOgHZZ#2eM`M1xF+ zVqJ*I>^Y+gfe9QumA+@c%8#JZR_Xf0$Xu3|+xo@;YxxFwNJBl*Y~u}MrlO}he;htY zH?g$8)qlFV5PK=3G!+NWs?aSm#^H5TzWY3M1=c=r>G;sVX`i_F-^uZL=9~{d+IJCU zP8L|C$cFuAvh|1phkU?Tb4yko{rYfXd?&jF+`;l<0@boe-kO4Ol)u?FBbBWxm>$h&HyhV^!T_G7)3 zIW-PSnfWDuH9(fr&v4y|qmkmRql@!c_UGm))~NM3Ow8q|9@^IJ&lYKsg-eYnTNNgL z*(@9`h6%iX+qBgc$Ddolz2fDC(I#+8`9l(npNCnNvirHOI7tN$3wo5#D0 zX7|354=yi#{vB%XXVx#XDXti0HEA- z%d}D&JHJ=iRPu-u*UcL6$Wp4Kb6}9T;?0nAxPGU5vzoDu?#}R1!=>GEg((d@i;!@^ zhuNnWIW#9tth<_T4{9c84`O@g%mu6ounnQjT$Ujvf4QJa$0)%m=d6c@+E`tpz!-~~ z5TB3$JV@L?cRHlNOy88)4~lyrosFG(|Ib3Z9>+$aJ=4FTBc1rhQQ@K_oYSv*mXke; zy_8}<_TNbtj|A2i^EDEATahV*5mJ*%L$3R9aXL9N@fy(KZ|A}aTyf|17I`_Wf9~%O zi!l1^BEu+d*00>uB0)eQh&DtgU!R3VNJK3;Jij2%JolYRSpl^7T-NG39$DE-Zzgcv zy=x6`7zRQFN|AgV>A@DP2V&p({Uou2y-b1oPT!7rQCCE1?0DS%1Q%SF%x$7C@|S>- zB!5@-c>Z#1Q-pC1#6@#*vIA9`uttzn{T%a3jcVO>b9Dsf4F_C7XyQn&M30Rb%fct~ zPDAVHBa5`3zb(=5Od63e_0z0ST@WD6n^qejTK7S8%2%mnsfI`_W)*h*qG1q{`<42> zuR*;jwUYP25~y;Rrfc?;8%zB!eYsJrnis%nM9OKKgu|g^Zw@JK0z~{`D=@r(ujtzS z_PgfIt&lP^2w0N?g4))Q;t&7#S1Xo#`ay*r%Y;l$P8zC=I`Jg$ZvO>}9xdyWv#46G zTfmMzP8$N?33)8%c#b)IL19c`aHA`Rt91&o!)io3=vp4-f<2MiZ!Gi@7wfy!!m%L- z;T<%E3?96GfEeb#N1s&H5WA2(%Xa&k)>jScoe>RQBqz_?<1UTFyat0ixJR^mTDH_q zK}6n)=C$31gj8N_cJ8mvH*{|&cQQjK8?(S+OUO4Z%$X>$QvJUNd!r*_Q7kgIV`>BV z9C>0RA=kPdM~H~Jdb%<=d1Y5yr;m&O{kDS=VNEE{Wud``|FAHytH|6hNWL%D|=lBpZgBVR!wp#BLZ(jy&57GZ`!gesLV5IM1E>v3v}Px=8wuWJX#&F* z_1L;co2%DlL2!OYPfM_ZL)2Z_yO(xDWR-WX0239eeH+Ur4V3n;(f~)oGB2<_Bc1Ni#9o z?)3h&edrQ6;>VqkL%rDJ#9jW%J4GA88e$g%PW+N}y+RU*0vQRk6%TnD^#9~VG<{2n zi8J-Kxr^g1m6cJKYB@c6*c}np$vA?dp}>>P@yDN6PW~1%Zs%8JM=I@+n#uLvDQ|yu z%@)MQGOXpDT@U=$%>@8M*nVkBBIrS~&f)?E01R-KAftbkL?QT7RDM;rS&*`{#Wl_Jj$Itg!q6tQ!P~}0_zMT)Kw{sN>!DWoeX?4rp#R3QMeBm*Bu5B zUko)Le^#yf-kwcy@h^jRt}Co>Zh}9h+<`^Ah45xpYJ-T6mUo%BuCWpjgyj*m4x7N# zgiqZ`Im{*VEM#YUuBMivFxS@vfN`d>Yj!?c+S~kDPCl=<@KxK4s*#WorzuwQC`=$8 zuqoTBYjo3m)aYCyX!gXQ+?TC93Vp1zCNNO9Xf6pSqi86A?iU3(2OOGaoG{s0!rla6 z=Z8j3e!jfkuyY)Ty(}Gc4q3+4EM_5;S{I;yj;~{WO2=#!Vfqx&FKCN{syc%c$idO| zB}Nafp=342Q>2|r{EEzrY_Wf>t<^2`97^P3Nzmxz@o1YAp9>Q9_4NQjfMClHjuIKsI zG+#I(w1qpMEtvH5b<#qhgxw=LgTTIVW4vnE6#V)~%~q_F##P)C>hOgOaGy{nC%Pze z8I1SnLfn2(!kpXVU#s#eq0d8Q)(%7ULEZ}Nyni=u{yQ=ENz`LUAW;cMr`r!7A0LT6 zjw00%nX=4@*yaaLs}?Rz&WXpR$>20!J@1%p^RfF=}mMO>pF65Nl}m7r;}qRE^l(>$sWLaM+u;aW%jxiFUkC|g%aAio(lESi;V|a z9<8jKmlR$OkjC=f#$I$H41bb8D=9q})__JNm1g;@EY~AoAoGRKFJ|9Mh->eE;Q*{> zezn9;5Hy0Iy4tq}9qB?DOYWD(??wB@BYW@MAj?-y_s5E;r{`KUb8!5<|3m;;R)?c? zUC+f7WG+=hTGd;x0dG@Z*X2W@7vHi}0hVV)oZ`WL(4?+%DS(hEL6Rbyk{Sy=e?<|*{5dCTTS+S241=~kiJ$1g_7 z4pMY>3ahE7^gJBI|oCBDR!G*G~H)1Y6j;LqPjLW;jh ze|2$fN}I{nmmZM6TQC_AJTEsNL*h-b=!KW1iktx1lonE$)FlEF5{hZckFz&$y`=Aw zTx#TdzRq;SsK{}|pHeSt$2QIcucQYkO~)GLE$K%MkpPMQHgul?_RV#Ro7mzu=F}UV z%MZm#pGm=+xvTyB4I3Jx`EyvH&QMmG%mKfh(mIXHIqC*ol9dS*57zFXAil#uAbb`W z9JXt6Ha(umX76sR5*zXFFzoj7Vk2*ked7DJy0iv{V^QE!h=_v$7Kz?iT!?XZuANzJ z_}!BHT92qF1^>|;_fFQhBt8|W@hsIj__Z`6=TC=y2*+;RH4(fo}+~(1oH~po990i&3d9^VEm7Fa=iU&t1#fASRp9Tp3uX@f8E?0go!*=?&NT``|%sC zMNL%27!AZK&7U>QI}^5oiYJDjuve)gP`5Xw65y~@ANHBjf2m;K+-tG7%>IB%QToW3Qte{S9gV=+7*(MVzE61E?t?b0D; zoZCih{G8J_sz!SI4Bc3gjDW$}I#>Wqsa%^wh5-1w6V2nY!RGmm6I(0|%i?YK(0p6| zcTt|!+>xjItX2FSoI%D$nBGQ|Nsu5=+GT7grP%gs1lJkj>{kA~C9mT-r>>P^&3MB4 zv284hXrb?jMw{t?c%2cz?>^ctl9ZtUyA5ihiS%zC(Ygl+-OZv@&}SE#f1QvXQbQ(I zr0W9M8l(X9w%H0WeIIATedScJB%YEU^2)Hq&|ya_S!|KH=E63M5mAE$$@z1+6@Ed~ z5O?MAd$GonJqp>vdT1_W#_tB;SEtzL7sXw1U|bx9m&p>O$bzD!8U^_8vxVC-Z83>Kvci@_>yj}p4Fd{I1s(-#d)JSAu~%mfX ztC&Yd9}E2n3Fn1cj`}QCSI4(Jx1x8GoVN=L(@eeXTDh8E9SvbaLXfwpUUPRYmEZrM zp?!f$HXW%1t#p*7%A;xFTJoQxSbsoYHs?0?I=eYTeR24Ys_T4+d5FJJ3W-vKCG-x@ zpad%2WDdZQobL#`|UJ>rK`$-L$zx3cPQm5m>3X>o&UnHWO#s#XM(QLD-Zmm9BY2Kl8~_!lLY zK$~o`GC%cM%&qFV(WErBXDuaa*)4G&Np4=NKXXKA2RXEMCr(a;$j19GnwG{|!)@te~+ zX2V=y7_m?R1P1do)bkzYLk-RF9t+I(4K&t0j>8MsuuPMsy_Bz!Otf-SmXM;ljbCH8 zV3k55HSqwNnvijQn>cyuw?bha)cU#wFZNywvHnft@T9yCcX;>in#xDpM`IUJ9uJU< zVTDeBPgdIJ0X+p7(57Eq*@XNSV3!}AS8YXe=R=C9)YWx67yk)`H*b7|cDKTl-_o|T*x+B1b@grrRb!=)ARQ2< znA$-1`u0}CHvIH!psIhOgV&OErEDQaWZ7FQM_^!M>=o`TGSrMbYa6XU zWRtr@Km8s2vbnL936zj3C#StFH=&-_;-dM~zCdaoUb@@@2!eBD z0dDSAvA>87`;f;+1W+i+PJ{~iEfp5k5p*MdtI#}>JbO$jGkpjMVLkwxlQrzQyxv?i z&+z}UytTG=7}2fHsZz!lct@Feq0>AGYdx(ibRaGM?bzlx4QUbs=n?AcJD%RQI1IZ4 zV}{DCavo|fJ%lcWZB9`d3z0&2DA33ZpuL>xLXT)!9V0`Z$J!R}jzKP0l0&WcQh9z~ zOoO`pR8V3<-i!Ti_UNNze+`QS68VST{m+Krx$rZ%%emlt(NU(zROSH3GI^xzc_ee7xcSM}s^(vqBuB>?Jii0L5fk;VKUo%TxF6E@dGin-Mj0$#2Xp7^kLM4{mJKB^~h=3h01k<406ap7!OKB1Cl6KI{>CIK>=jqo}pjQ{LnL6~k?(hTE!^S`t zrq3V=d);w)fdrIpj}9MZHIJTYaWnvVeuQYqjA)?6;IIaSQqgFX-FBcr11Zf>IeA8b*23FB})-6|op0X9KFp9S$=~vu{n1 zAZc?Q(jq=HF)`XY+Enl@mfZ8VUX?5q2ZRFi%HH*7sg`2^NX)-OyMNnPu7)=at-B8A zFfhlDcY97(fR-7{)#qz+ck9mcgjE84jEDg^k*B?o)?`wdY-v(u!vE4EOYCbA(TJlINrKBDH6%Ezi zn&PA)3O8L{3S0CjJ6h}ZM1@$xWsl|u*+RR{EEAdytP%NmC+Do-4k%<#Pe-zsd~iT< zv?M<2zKnazw37e4>4mqARcsVxtl|OG!OA)O9J>cW@pywXCm}ajWIs0=AniwBHr`l1 zMx-D53_vibOI%x0VO3;Rla%_JEIx06m_q%5q?qS8|yCLM8x(>S_Y!wr(>)~x@ z@$`!=X8=!kRc{ROulh?lS5}DrUKTEeRQWvb^aGl?ybemg1inQOp#oDk)1q-_I-4oH z4lZ%tSI*x5@Ni{Vp=kj1{<(kD|8R6Bj!ZxPAKzv&N7=?)Iku7HC`aXHW{yhbnyhlO zLP(Cxkztr4S7 z=D$4@6si3&vx6YX?503i$}N@WwTEFk=TdU~*4&jXQ>brpY*nB|F753cF$d2KYai{4 z#OR84Jh*QAKv{!HP*1nPzA(SeEpE48S)gI-bI?0I6&G2fy@6}`}3WfnMcC}+SE3GgOvNriYXX8tDwxNg5D-b^(Q zeP|ZPJe_Y+rtN>>V2J(a72nyIweFFG4`Y(gBGB4E_d48Y%&d#QE>KwT@XOKh>o{Ur z09WeZCWVdeZ3@^h#tp7H7Mg3^dU#iVoE3S`qE}y8IQGu|ouX@=w~_@hZM&o*;`Yg0 z!H1g%>Hf8qIdT`lpJEl?eI7Ga0I*5X`_Z?ruDP!0cJAJ#U&8D1;MbL;%^j~B71}WJ zbN#tx#8H1o4}9rK(Z+F-Kh)>!5e9<<5Eric7E>Ek+X%3zyIpGa`p5A8pJ71ExkM9^ zjQc>fm&j=Hr}J+6e&6A_KdB>*=Wl1SNwS4lN!ZrTH@>8A zUxvlrHBX~@ru)~o(y1~7zC^FhneCgmmZ;I|&D6pAUKWQ`1T$HhiVCx9u1&-J=S$K( zM#$7xd=Wdw-b1H_aM~x;KDl`WDZ+eK&&|!Kp=ow_fvwA9Zp?=57~h0dM~H9DsQ=>p z{HR>f5NJK%L27DF(fMXj(cx#NjfXWGwR-h?Pjl-b+;%H)V|CNiU)fhiLtEe6cK7~C z(+Q{Cyk@!Qj^xPQ8=Ln8FwdehZlVn`qz}>Gncijgny+AV92Tg}5wCue1YzhQFA$mf zD-~^q12Gnhe$^__V@w9Ulqms<w^x!C(X*Yg+b@o)SvZINIxY9(mwE2D7?*k3 z-O(z9G`@aYBL9#|;2(W4SkCusY4la)Cr~W#|NE2OF8=o+R-Ob|c z?9g%aaNKLGv&Fk|;Q8}3YpEjKS6DX%r+S(Hi*gyK ztxsy0UsVkHsG+C@Kzn0Me=`;JU6m=VwFF>jomB9VfYw8rRPI{rt<|Vo9{EHLKxN+pQJ4F&z{ZvKmv<2jR8ml%B0mKRmY&Lw}kqdZ@e=<}x)Xo;~B) z5xalfO;o9h=~rXiW}f=r;xySPLpuBK1g@O_9joxSS18MK zwf?yOyJN+;3)Az|m1~B746&m8epb`K%DxL(wu+q9jr|)o%_(T?j0#etzj5OrMqz7> zR^EXnU}N_iTL(hFNFJyhKSO-a_cYF*!k90>ieHpy28UdX1@#f`shOYPrhvO zZ&ri8#R^OpXM_`Z1dI2Qg&Rhqx2-5EZApGT3DIj!#@DQ-uhkZrFx%&r-PV3bj)m;o zqhD~3gD~uqN@B9w&)WI3DoUori_>7e9Uafg%HyWMdMeBG7p+A zbxs#P8w11{_*KYC9Clptu+kl7*)fCp* z->Hv0=qLead>?=3ET5TM(vn@;##uk$s5VKFZl#v%f8>O5+GSxL@6w-URHRYo_0+_^ z06S(m#!JpoEwl$&M%qSu@9?9aPxpQM=_6v+b5wNicIQ4He3tW_e|o&7-`zvkG~6MyXeJPt7YO!l%jv?MKyts&{9`-P)^%ZebTD62fqbxF%i5ZA{OJdF?+A5Oq5Ab97VD`3#F0WO7!+hZ z^&k2&R!{mI>pf)lvDRUGeRtz_*-ZBx$2phmn7pvomb+TeY+BX#za5c=Q4(cKucXp< z{LX}!7R4JL9s_ylz$$kHA(7BxfApe_Vet)aMW>X=;7LSX`O!zygM;kh5w#{F=_J5Jjgek1; z$o4<=hWnqGd$mWuAxed0JQ`bAu16&TCn+Ced*%uE2FF&4tCtJ^`a~&aP^n$rq;!QV zH-n_7#cUD8WyQ|n=9$_md3yA|cg*kg#usUP_$Hs2C+n}Lj!qP8eO4Y`{#9jutThyR;re9abNf5?&eb!;d0jC= z;mh;#cCTx!QEeOCmt$3$_vqIaWEHE%K8J{KpeW0UK)_$?rj)k7Qsb9h_FJzY{^*se zRb2{GNc|fF`_VQVptrMU{fWln-mx;Ge$O1AIA6XoyI&*vpVl=Kft%a|no$*H4P%xf z623J(eSL4I8*j0fVOv#e9~xv~ceHOMj?bJIdeHYxtU2}vx6Q5g1N$)TEt@xU7Vq5W zrIPwg|J4s0n;o}N{u{eLzW*n4|BGoj4+RJC2wIt~(4wLX2uu;d$?BSUqP#T!e~Si6 zI#CIFi>sMC^Qs1!Zz$bpX7>xu-?jP455|nkT!YS-!)2V97R+Z?qu1*=9M5#l%2lWnHtKOq-&#*d* z3k~Y!5~dTD7rEm|P+18J&yxG|TyPtGfczv%Mci`yK|r~yN~5xV>eb4`zhw9SVk`<3a1zT)K^x14`%bKTD~I! z2pBxLVwU4)>SOt>q}D|Hmwqn6&G@N_wqSN(qrM)x*tOhHM={KY@9)jeLGJ~uJTB^n zY}9-n&Z0h7#XaNM=-W0X+1?`G&R-)uY>c!(=^(Y=UG}eeZ2q=gZQ=`OhPx=m6K#sY z;;z?$Bw(obnUi=^cDi@(#zqxO-bGG#LITQkuNiIpW^#wNP^CFMGuXbab%kiM^nwSh z_@MoMcYoC!HWb$|St}eBfDF*VV&_<^ z(S_57_Sve=QKH#47%<#2q6npU?bUQPO{=k)6d~^J#9Ns3{YnpXJ~$e`w^h8)?)>v- zGWJjHzBOhtJr5>WX<|A%+Y$3zABk}y-bJ|pZ$BFh*bbJJkd~e`xxi5>KX4KfQYFwf zSEb6SLHh?_a%=NggWwd(bozgl0#ST&UfaB@z!k&QFG^s3R=T%qy-nkyW2+4Z>R?Ii|zYxCoz?)Tc zl#VWq>2bukfpTbRW$4v|kVvB2$oOS;mrX}}B7Jx7&hm|~`uIght*z9vY&o;dRfzfH zm0!n?uw~OqTBSO4&XEAhDM(DM87KATjscOX0*tJ_K@1tn_;^#d^xcsLs^!wtXO@ zVK%PEm@`AcVQr>v^MCWyNXvfzO1r`S`Fz;-)=V_g$@|gj-VDh28n&Mec^g{1g^VZL z%g640h+T5K!y}T%?hEvI6Ky^P)`sv{1b;uYWSV4`+#Jfz1LS^jd0({|wYEj0k-PF; z`O7>5+0%u|3asgQqZkWwxSClKvFFF@inrF0-B*_T)E@`U`MdE$q_^~FpJGryNwV_w zoT8BDEmg_t@o{j!3t^&o`v?5>Eh{5^)nLHx=;yZvnS4U;Um4$+cDALgTn7Aymj+s^ zUL~kBjNiH~_v*cCAIXIywbl0YmpT?dBQKI!-JZ7wC^0~9&xfRuRq3CjziE9mCiykT zd48Wcmps#qJAkfk%FfDi?OTmG2pbndMjwdMc<#SHeJL%P{m#+~y%_))N$5zYg?wI9 z7eT}}b3qJBGGPG6X>>+-q);>Aqb zrn_|;zg>DK4wHBZMn}(bCtETDEfpQTBP5jBUeBW}QfwWyw=Q$_o}~?tZ*6%E&75VQ z57YcXO5Z5nP*4=I%tyIAo*8d{?aAExRia2>)cP!w)-0%UYwsUlorPI|>$6DTB06Wi ztP#~syqt}HS{BKp`}4V^?HG;5%d$d*s4E<4$8THXYQ_lwWFEK#r&30frfoO89H6-7 z8Kz`Qi)B$cO&MNTw6Knu=|NciWT?pO%u9QA^#F0EOt10iuV))O>+LHGT8o#17J&Ot z<;Gd=a;ntv7=^wwm~1=x`oA?@h4+3s_%eA>YXzO||4}y!8uxwrS4kUfL1P}Au~Lb5 z#*%gc6x;hxHDcE@=4Cy%Z+OesZ^-#l?eXg3Fx=?8p|Wcf%k>Gj!g3!?Op4O1hqm*( z2mM%(M$}Ia#(V=nU}3XLsetsWpFXI|dWBbJ7xnaa@n^LP6Y?^GpDn01LIeeM;Qa4} zQ7JT<;7gs}QuJAC0-3+12F$pXL=5oahnfaBS+1Xd1j^2)jk_inHHU-#ES%Wy?)>vA zD3-&Wwfgk}jgGe%Ys349OuTh|{@9(f?q&c1!c&;Q8@F$CojyfwQo2oY(mvM;jJr|~ z0Fl}b0ReUgGk-nkqXwpQE86mP%aLO4WP}K{K<^F8AqR7Cs$S{96he|U_q4Gn3K@7a z65TzM4YO5I=l{(JfQS0=IiGviB-=WC6$M{9j7vZ#0tF8^y(a1tF=|1cQlK zjM-h3y0&AtIkn{k!U89w7^Re>zx1oRN!JmjhB$Sd=HnB=}%g9r@ zZ+GUff;IkkO99VY%*bYTyO(>}F>cCA=v9K}?XpL=m#!;^3Y|4`BqtXy3B$A>%pWXr z1@sxMYJV-VHp)3Ak-M zi859Tz3DL-uWDT5oJezgE`XSpRKqc3*sefppLLjmf)(!Z_^v_i3c3tzR58OX3JI6@ zp1sk{f_iajiYUAu5J*Ny1BD3XP=5!)g=~s82u}44TA3+lgzAP&o*%@}1yD(e zB0n0L9XFIq3h?&0648MQoiK8+Aj)4mC1a7--Jk8b4+6FIhY2iIB3?mS5ya(yU z**kpBiH>wvGJiJ>2>wVlB6^k`8g~EMJW|e&lB?wn#AlwI%!o*Cf0!loh%HTg8&I^x zAOK5cjIZ3#-Q@mzs(l%>ERXq?tzqV)Y-a|5`N2Sy8K~t}9R+Aa9{UY{ znNU`9__fd}{~t8pUR=n~&tCysQfmsZMRGZo=uM=0Ds_1;RHw_qlB`Gci}BDVMX6Gk zXpB;7)QNX|45;3#DnBcTI{?zi4cu~Wxu|GQtBp#7X!X;iJI0C}isND>fHUK0Qk&&; z7RgbTn)hE*i}bNe6{^X+2X2Fq@O=R>=X_{Jr5)b4!@LiP^(GJprpmvs;di0!^XE)v zA$)Dt~1NaTI!h z>}Fbvnlp4(0S3%UO+!|GjyQYwUq4B?p3sQ1fOl!2&Qb(P*HpD)r1RP9T0}gw{@WDS zUT*!ZaOpjJx=tD-a;$yq=|HJWJv~oaBUMo2VD|e5>Ug`yY>oG(ZURcD%NYEz_}4um zU-4gDVYMVny)-t-arD37+Qan_mF(@dJVc#lvF^km93wUO$0(C$xKjs{12b%<{gA!C z?Hz$e4T&DO=TpZ@8MIB>`oB!&6pEj{GZ$Y?EatSd0p}d;$JP zc4+S-2#dDO>t5ZrHh!M~b7oQ@)V$`gW<*GOKvc#%O5?aVk+toV!~OTMv?!76dfYnE z=#X!wL$WckmEnZIB)iuOMeclT4M5qw6Fnkw>Gkf98`1LX^aNj72T19_hgVlK9UjOX z)=VOTbZpUrT4ql=<>x>7XX=+R%@11CfgsY_#$`Na&!^nDUy+3;CM|6+pM5;Xg?DN5~XlomXW3I!Q8Ea<;-@=2Vu1!9Qt;LLAB&O!IU z7>tG9fzDcCfMZsoMghY*lp2|5k!t(Wd^nM*)mz*7ucnhR=}B6AjDG(rlVsy*FGo*I z^g4u(>~zUXET`U>oxYS;bktlL_k+e)ZgQtG%9d!Pn&*VO6(4Nl{;i{+$n4 zYZ4Qa1vTG%a-`lIG_uXlFZiEFQDyf@nlq)cq*qElNqur$OMve|-^!_tHKMY)8lU_m z!Z9wvA%_jTIHrWQOEL|yTdhXPIAjaa>gr0p=x2EJ9b;41rQf7_73kE)ImZ-f!9E(N zi6&K-r6N3VFA@Gy$8`xJI=rVh%s_tCCpd?tvyPh`=vrH(gKdG%6ZGR9p!N4g1%rkj#ef} zmO0+>KHcK&hiG9xqZ4O{PAw;2z!SFH8tbyqWwNR)v8O_sI$?DLB2j>&?S-E4_woja zybsA}l7L!B94OJ$dYwxCb}3uPkP%N$Q>}ivvu;?n@z0NPAgKHfIPD?1E*JH9qKf|NT6!e*yPYbJ+U}!@WGFGw)QrmoKn^ z(sXdF|LSt!5YDhUig8QaoA&d5>gmHe51jPrNRNJN2)L^!9^T`lk9RKr{!S1&atW$} z9J_3WLwBKx7e8l+RGu{>q9#u#De*AXoDg}ZA#45xC!8(9^|(55)Mf406juUa6S2{b zz{(2(6clQkT9}qT7Lb?0vXe0kxK;|F=SQR#26O+Yl6q8-6ABE6J9WjYE2G4RU8w4X zbs$_WOmK(PnTXV3b+NZE8-%W{&;($_cz8WwARAD`7MnyO!V>j||M?4O82I}7KIdyYd18*5ZTN_M3| z5ryk7so(uD_2(Q@9?@5_uz4gSG`}%7Aw?B!q6UA!7T@~|8bkXt=sbV z$m3J`Mpph6cmWmm|to9*7CO)8#3hLuXT3JhhlZ}bHZRVr592m+iG zCElvi=iM5|w0gsb&w5Px>;Af$Nch^JE0+F-kU}<$PidegBaxWdz?&8-xA2I3UMS_} zRw-X4Q^lAf9GCUdNnEO1jNwlQoI2pb@tg}hEtK8ra0FR@OCr70mVuj;lsqJze!ZS1 zpnWaT;@M`2kQB|r=R*8@t>#3bo}mNxt{JB=m;AK_k?^h3`G9fKg?BLehTH7C5yR9N zrt>tQe=bTm`(aA|=Z-0eL&WJVsWN0j5x~lw%m&zaX7B6t^ijOw=%j&{a6zv_Z&mtV zeh)-HqMI*kW!Tw~p-~$F>U<4BCHQ3s>y2g1>kBiSD|qsCYPc%N?cVq;4+d6M`G^V* zgtjd4kwgQ5-mQIl8E?GO&Cm-kz49e7M13XrT-1qCg7kPy=CQ)|?w;vOr`-M=p$kAj z2f$lLx|Mp!WUwtRFC&Ej;9fT98O(cJ7dTm)8C1M+ag>ztgT#`Swi}3%Z{Xx;RgN<- z1mk$kvhiJ^+muMwh1o;o1n$7m+5LaF@khF%g055z!@p;X9GqPVzx1{Gdk=4VkBpsR zHmFa9SELQC#AIs%k14{A&#u`|a4Xb(cLlm^og|2Y4H-?Z(c79Mt%A&S)Si-~t4yiSRob@hu8;hDshkk@YbEtOcAzm@v4k-e2hV3R{|9%_MEuq_%F3pZou#^;9V;~qLJ&!7V8yQkoBBGJiO&W@<99ZuN+IdCZ z;OUA3p5wZ_`6GBez~Pz}AP1gS*Dt+Lcu-X2ZF3d?dsv)+vn~adyZ`}(Q(%|x`Ck+` z1oP(-y?u^%UGNKTA;}uc?*I8yu#`ess+2!O&YxgKNgHotrM=vO^oL7RMe<;_=3rp` z=AUK0N1^H6KbwRZ(AucM@#STy{%!z)U-g-e>b=q&s1Br3Ya9co8|b~#W@S#{^p<|v zRBMI+3d|pLA6L2WqMG^WuWP_39n`U|(;lrFc0PE-Pl)9$;cgkGjV=FOUn?8%wvgxP z5ap?6NFF19Z4)z~!Vm(qnbZbb<6s{;BvpZ)N2*zlr=nE4WwHn!MDr(*`Z}Kr%H#&? z5{d{B?{Nhvs01e(oT_5yWaA==PJq4h7YrZ0UFNj_;lyF+;_wO@sWPHZ6ST;e<^y?w zhJH_I>k&iY{5Wa7V_uPu05b@ zip_0LACpzh0UKCiSsRHW&Xq<0ZP^F?=80wQFh|CKb8cP_uOXu8lzZtGT9q%$MfaFs zi=5l5M|qt!axXT*3Upwl+B&6}15F)e8Y6Gn>Ue3PUwY5$0DZZ2a%4wXS4xe*3HaTB z+Dz$%NnIt(-0lPV#FJZu(9H#3yrhQ~p^rCtQ!U_*G`=Iq+ZwHF$B|e|jD@rT@`E;d&a0ygZ3I<= zgWqV}<_8M?xP02}Nsv{=FZVKrbN+y$+K_&q6!6f03bP#=lS^8PswfL-v6=BxnfK}- z{8idazMmQ|gtSVbVXBCL+JMs()X2+MAF6UoQnfi*$CQxKvXL<}4o}Q27W?|t*p1)y ztek*Ks4L2F=C|-0fC7=J!_NgkfroicW&^WF* zSo%*#&_zi*6=z~XIh>t9@#oTVQt+sL!td5G@m7wqw|eLn6=4_RcPd;CiB9xx7Zk+d z({`N@N$A^wmXWYN>;?Ek3eS z1fkNT#IVc9p{NnsUY^O_$(r9ABA=|PkvS!6?h+tmJ~*pyGQsXY32Xrlqy*w{933Tmsh}pKjo4z6e&T#ws=PoAhuwcewMfT;g*+ z1-@P*v^ilwjJc+x-6x(?qB#rxkK^f$j6eJR&mD;p_3}{3u@HzO!mc@#k!7J1epxg$ z`sB0cntpGCwX;+<Ld5}8lr;iUSiVDt04GAZ0c@g8@gg+(G8YW87dwnfvaUJht8R$c zxF==Q*GP1WA;l{t#KqQjmgwUL8*ezgT`g-R^H#NOglRX^SMU}4CjCyzAi zFDoY2y=C-!izVZwXT2`hU1yw_jZ@4iLGc;tJdFDK1@d3uboT)W+Skn%^|UEVYsEK$ zI6*3)N303oD+86#j&#rX$I3Q7!9bccVBb4xk^M|9J)}p%wblu#M-XALEJr$EV-&cB zw-vgITjm!rKk`Z^4G_2acV$WIx7QsdZ=B${IFI=RDDY+eFt3aL(79KtM}$65;6pfg zxD=JcAO9i%r2`is_80Uif!}#F$4Comp#`srQ@pfH>y|7L5+Go3{-qEY3@Y@H-?jic zcVaUYRw^8Dex5fBXr~TcF>Y;8d(G*-qXXh zDQmr-f`OR{T)*)FH7%*%=doThD41OO^WTdKKO{h02iAQVw!l6cPX{LY*g0e0C+aUt zp`FD&YKvVtTo-V6#8CF`jlMo3nSd`}w5gN}g)1{Wsv?L4Cw>>nS8QO@!syu)CkiO9beNK^5QEM1@ zX;J<@%!a7#wx!3J!ILqQ;YjV5Vlw!XL(Ss3QK)yNo=)Y~UA8x)3&wvFVc4^ig)lIb zIUiOq9%Fjii=s;X#DAnapFnW5sOeJ%l&6QsTtSc`5t0=`AH-tp94*RT+tR7NLE%F8})al4YAf<)Jy8Ey^=ph~YWPz;=VKMpdeKUkR+zCe%Tq#EJ#* z%B7)@hIH6^`ZHrji%{3!k#cv7`&G8MWehE0f~x6$#}N6b0dP#%5mK7{>C{&w<=ZiR zAfmy~3F?W6c;K$~M=k}P3Ml~Ru*NT1HFyYHtTMqM2|{;RFb*3h6JxJI>RdKr-ZUQwJa-xXch9 zdn*f5LZZ@tuf&{(ZOQgADBKP_k8p2|TVL=Jfw#?^OKe$4Fguv_ve1#uT-K@}Drv1v zRw320H#-7UV8XzhZ;`WGww`AwCU(sl%0syFDSw5fG#$g!fO@o13GM(6h9wqlUFGDI z0s!KOFxjOMK?DVhD=sc(&n?fW6hlyOAG3`9ZXr?d0afg+ewBw?->lQpSJll$IsIlQ z@qD)iyn94csD;2h-vi_T6L(AO=MMfOZz%`t4~|uTp1CPev?Nj+HkTCrYCdlsDG00%qCu@eRyHmhu@MuO=?OK}9Vgcl} z%387Cp=|jFqq*>75b!GOxKmRY+4q^R5-8`-f6{bdwsb=_uDtrPav8l8W_Vr_@a$42SpkE9%$_N5J;+(2Kw+i^<&r5scTl4=H^{}=7>&rY_ zf>MrM`HS)ODnO$qN(`-aXL)_Y{~$i|L7$4sYS+L2KWqMbyMd!q)X&l(BzkOAVTZ<) zErLm<(Es-WMbOM!^B9GT4y97T%fZ^oyx?)kk6;>T%y$Kj$$0`U_zXzYR8#ZQ$xjHtwjJA zqXsh>woYih#b;|O)$v~awVZ=MFI6l(NCJfdv#n8KjAr_6HHDPUhUOJs{L8UL=vT2x z$Ha`0fJd%X*uPVomoFK@rR{R3r*-HsblmG{6676#x%yK`x&&^Pl9$qvGbA=Jrs43) zgM0S2<(K>nPwwWI4oTt4L-yX#a-rG(j&U2U4*>ClB}SnGw;VR zss1rTlo;^zdQt)udR#{?0aynSqmFD#yi5Ot&+4Myb+u7b0#`q~>OZJeB9us3?%4L0 zVNS}Op?>Es&1Um!3VzbQfDq<=e0g%6{S2i&2jxRbl@c% zQFV@`_@P7-l<|)Hup-E=xq4To^)A%#-l;0j!&<0;=0U3ZuOE9(MJi~O?u+hsR*u^O zs>;wUcS)M&jxPSk;N^;M3ak=MrNiV8Y2q$>o*1yp&fYpTGyagKwIU_Pq^YRFs$?H- z53(mu6V2271FoSs3;?eZ_St7z!K{8-~gw;`)JR7!C{PdqQ%Ka>$<@TtL@M3cTVk;H?d>I{61& z6s1^U6<%+yWMlXOemQ>QOZv{qY*==d^hT4T0L+9S+sR$X%p?CI4?z~%O!3KlwigR& zs;tK0M`ZF?v;Gl~_F9#DTgBGnrfEj~ZPJ5H>dlt(Xgd|~JQQ(i1CWXYkMeb~ zQt5RnrQyzP*+^|mkeOqc2!zyA`UsL)ns=vTF>HEk2RTRaJKTOpHY?ATE{It!wduMZ zsL&S*Kn$^}lu**kpM@1yQVO0d%+#;bGgJr@@3IaaIXlc&KWlaf(0<>BbwUvfI6GOs zdVpYO3$^GTkJ1W(-Ski*j%husRi>$!>)fRa1f#t4Q0N~SSFB4_OBszHO3?>}8r?-+ z1PDWglb2@v<&O$0&T%iRzZkP$Y~t(&-w45cYH0$U)J&Ah&W6V=CdW&=rDw1@(h+G_5e_B#1+11wpB4$VV?f^i$-umX_%fhvPE0ZU7Ez zHs#c@e)fEg!e>TgXMthJV5w9t>EeA+h16s^U;i9aDL&vw+6CW5^HaJi*^5Q3rZM8syoCA_~Y zYinI;b2RK;VVNAwv`MS3v?@nA9ns8rtn=gZdVL;0bTFo%?f8m_hP=!IZZ)4u;LnCN zr(9n<4|Zq*j9q5fzl(OXsfu4E`}BYI7bRja9>W*_9VDIdyCwE-%e)a&Om;e?kB2Dh z{CUE3f4lQ_%vLPpeVC?9F?JcR{ema_nk2A^!>j?8ih`_R> zikh%BRHtt8PtQl?apn}qlXz|=gwfPOc6Ocr&*u&mi5ExN3xJ_m=Tr0dHNAp}PL|0G zYn{UbzKJ5(uj`|6A$VV9FLAS6(K+k>Z#%ITC1pyPS_j0LhveG=xq3vXt@h32iTfie z)SFTcpIJ54*3a0j-(%cr$Co7xGN`G}RBYnwp2ET;3$}kvX+t>D6ZH9lG#C=6q{Kfl zCn(We=xUi*rucpVcp;woVnc&@{`LB1*?_pT(p5YgsUH8FQ>3aQzU-{RlqP`lD{$ih z)mI7XQbd*_(kU`!jvI399jgW%L9O{UFupRWcP*004>OxDQ={<<{gRcoATN3}r{0`o zs`FlssB0l2${C-Wv%bg|hTw5isRrH+ti;jop?SnehfMfnpOpGXBUXU0Hk1xF^qn)h z*ur3>-VBj`G}YG!B-q$Gmg#uvzGhCdv-%wuJ2)3O@wvf{-K;Tpn4Hr?z;B}sF1BJ^ zPwdvlwB0oiWzd~uQji1NMjcMaz2Lyh)=cvHMuvy|MNm22_NA(St`;X>PzN0_108TX zla&}j&AMfQe;spJc)*sSGIz`#K+wbiRIATN=Gv-<_D^+CAc^-kIvyq(3Wv-5bZv)Q zR3a1k4dr`eA$_FqP+8+4bxj?tFXEI|7Bb~Q6j1Mz`x{L6>fz5F$BAc>%-}@;sKo0} zlHVC$^~e4?y>Du1R|tu8Dqdc)h1c|>UQI3P2?`n%&GrqMf?iX2$!BG(a%tN-u0s zyFQ_!&FX;<7+9hy9zF~c^xPQlvrCNPwghc`KAbjHg)}kkELIReE`Ma%JON=BGE{ti zRF~dz5k8_;rDz~#E0CvO1uvTfArU~v*FB%^tnC?w z*JhZDYLC&_PwFA+33x8AW>U8vITt?6IQAK%CHDjwJ;RZ$J?l0J{&IOmSHbkl z*Ojf~$IV=W?K}|ACkxsx5xawB5i$GV$s&Z^>CELx%7Vv$Ue>_xJCbD&70-BMl4Ahu z`9IOK?`KuCw0ZCr!Bm>pM)a*`DC3Q=Snide#GFi!{JHT^@lJ3 z($Vv_YKmUtW&RbOjB?36?-!uU{D`221WCUFD%a;RIXU0Ermv!4KAl6ulc=CqGpBKv zTh*2NpN%p5>mKykh`JAeZ``T5o_4hg*-&Cjnfj||I#V3PR7L6-CJ_xv0kCqNU?n6l z40`JcMe#vv$<>bfI#is^XATNL?#C*>{0a8~m#Jc?K4ssDh4(+sh)tfhNTb%P8J5Kd zG~c(-=TmV&U{J7zpG}gAVrps*DDkqhRv)i8M~>ZVi_4N~r7sjH0+`y>a6Y)=IUf7r zkBPT>h_cP=inm^IIZ(k!GpV`F2v%dfhVFL<7ujQ#u8ZI>5z8RiW(oaICOgB`*; z#^o1JLv2nFFHkJ|EG?Chxg<=krhY={#Z(-28*Hgx)4 zDn5ae;GDcTD)3H9>im&w6~P(Y8HErW@RXHH|Fra(P)$$IJF-VL9SzVH3t7@%5i<&yUJkoDbkusm&H<_v^0cT=ynyOJy6p+FQ>h{z_j}CT53cL6#Z>g zsyB*Wr#Z)`7dw}98*}K(@bK@*n3GiZp?BNoU~wSI$*Oer$p`m@rdMb>U2plI_$S<- zDgzixnX802{od!(m31njg_BPF>00YtCKmMb)@quhZPmlP;1{k`@M7F4M!`) z5GPd8a4kb?e1^Ok$-;$liH_gZfAUVKx=YDrAcu0kH`51GZfv}1gupZhjkcv45#P!T zdY$ht|EFbT`ETz|X65^g!FWalwv1C65gK0!^PvSMwgx zuNsNDI10uns{%0eSJSjNgY_j|7x1ldSH6th3Y19ondBLSBAB3a_$b{pX~8a(pik|? zWX-b}a^K8h;D-?I0YG=W5=X=mx!FeFK^N-riAKRhf(Xn zZY`SQ_v2LOg8}bC&W7!6e;dqz(h6rFX2?v-x3zuUQW zVt=!Ef3wfD&Kie0O{;A^&QEZQRPNYFq+o57%=@dTywiL>5aVH{j+gq9OhMucX`V&_RMbS|{ta={@55UlUSEiqr=8%CFLaFK<*S=`{S^X`7up#bvP9=4O+Z z6VD8yL;o;_mYV!jL%JM%vE`tHlPv(P6;1H9SNe^i(m09oPiU|`=(+>yBWsp2Wvi0g zk;qTAMCQ5x{+mHFRF`HVrAt>saxHM-Mb$%M<6f*zHv@Ck9EhY3cztNyT}OhF#D3vu z#MH4!Ov#(b|M!=>aZXZ*X9S$C|FIHz!*p8X91T*%dBeb%UCA#JTwWqNVJ!RWbtFpN zh7uX7N9Wq^M0dstm1tgCWO259H^wV^s})r{8$CV@kPlr!h88^o*bOg!+vmSJCz z@~dG;%lJ{~HKNOd+mQu!*o+BvWMpCrJ|Ak~q)XIm44t1TlE!sY)N|~pkbZQi@udjp zhnQIr@kjr;r-V>_t2r>|T-6wti|C@eB$opR`OmAcLpLUI%qtW{!{PI2Jui3;BVA_i z(%pUy9sYN(#3uV?RNEn@meC_FiPiRnA8XXl-|exASP zc*&7U;;07hV4=&n%!!x5fW(PgLxBH$FC|btZ;P$Fm0xnWOKp-6TYfBupxeFdv6hm~ zdo`kSV2>>M2zn)K_pfU1%RRiV+0icVi`b784mZYS9C|@oAhwtD_d!c9F7ynd#MWF` zOxr3+ND-=oON8$U`gCxl&1+c+&@+$AVDFy3ohP~jHibR_JK^CLF`q8^`<~7<%$nM0 zX}GWy>mn?3p(rGt&ir_qK@l&E@x&rJG?c@Aziu8hTb?vZ+SJ;8=~>Gmb8 z)#*6shS9)#8wii9!~Ly{Mi?(?Y5|}_T76tucYs2aNVSk$*GkIw{QQ+4M=0cjlxxN7 z+alQS_22uizBNdo0<{d1XY*YnU6yV%CeP|3nZCCbM+B{U-l~_;c4w^cYM{7AnPb_X z#z3o_mHF4H)AQ50qliOPQ+d%6(OP}Q#0785T_vD2>F@TZ+YEdBXP;|9nYKjJNyh+! z|vTROfnhF-u-eaXb?65&6&Y)Wwrw*Bo?ov}`XGi22uaCnXJ3AD}PH z^!gur7~XQ6)H$2^)?iZc4tK2&@ca0cNj@m0yu=cvPr+cJxEwW2Oc7XB~vZ&PW+>XjPT!UZlG{%V7oqep_{NmBB%;q539_uzC zh~iuUExn@wvTX00KLDtx#>Vr2@VwU;~?RK4|LW|Gg6!~QTf=h5(3;a#ahcJl4h za1;4VlA_7vFRD^#b7s|EllO)WZBtAkRq|vHvS!>!7JT#@0A#um& zOL5`INs0Q2PlW@~-4@=J9kVP;`5p}Ka*-(PpzI@Uvk-)?m7&){K8!Ny7I zuK&ltim)GuAOnIx(_TRgqbK&xfhPZ0)z)3buy*ANHec z4H&%bxAFQMM3}?~n+6T}>*mIRu8WIxm>2REyA$H6265P!(b%$q3k=5=KIIPQ_V<(#c+ zZ}wv>D-;hzfCD$9Z+|hBw=l)Wlzf})jnetz#g-0CF8$thw`n}Gq#DsfHm-_!O+Y_S znWaXV>P+6dOL?R`=C$bbBewg?@&kMkn9Zv@F6z`(Ur$CbO=%X~Ry(3giTpJ)eiD5; zO%qWlDtXAfI3m9-y1x8~A4>X`LomZLM`M_vDp#_Dx@}of8ZqI24V}dhkCy0DHUq|1 zYG=J%s0Tx^(ojz?ei{i+AWYT~Gnq9KzNh!46|?IP&h0(*wn2zv2>M7Dmr=@sOSz__5oCxQ;V-@KJ`A(S zusjF-S{ZAs;Y=hC+^EDFdn9RzF^8ErUcxO3%CkWBwfetMyMX{5b z3$;@xr=__Gy|Ye|pKUUe>wv@3#?dBZ-xD?mv|I7LohZFH?Kj|DjS9kAL{~}q4v19|EguAUc!VOzan;-R4#c%=?{v90vGHJ14;x-{~ z@)^mjBo7`4!3k;H|MV4C=T6kWam;5f3yZNE67*A+{nPBDAj3P@2Ff>oE(?G_=_eF~ zUH7G6e8!68W~V46B9EDQYg3$vz1Q z)T15^7cAj`KV*d_r^cKIz1+BonF$$*kdK;MX-1>7j+O&EsrFNg_Q^oN%b`Zy*i3nD z@Sw%Vu`N<4PLwNv9)}y2tSIK`fJ|q4DSP2dG{HcP+b~QmUl}0Y;}-|FHEd}4BdLs| zd5mSNhQ9e4a*V}xUUYlCNGwA#L;YXwo?lOLKF3}|(+zaCClHM4#zKC55~5x52YCE+ ziy1CFF90a>YAz5b<9mo%w$52fg&O+#Ya3$jSjM$Q-~iJ9_MJM;fgOrqD}O|@Bjm_s z;^FCw?$aA+&(}cv2ZYY~o&Lz%8LAd$vIF%Wc`+H&UM``Qc>n;_`a688PI+;Fp5LQM zyDe?1U7u8Lz$KzI#ts!>i$sH;)QA~gxwRC`2J;8 zr5-SM*TNe*^%U0Y_{8Hh`V94%coSwZ8IMuEazGUExQ*WXY%Z2yHZh_*x^jtO64901 z*wL;qMJuG!8@;+KkZSk*_V?lXGg@>iiwV7>YLovDu0Yc-W(Suk@1CK8DmoZ54 z)&cfl+UKUiJU3e`K5L^BP1P(IJ_d(mEZ&;JU?}uXD zK9bi1ZanAr_vrQd2we8Piygq5iiW?&D_?+opBDr_hzH$ii0XMr6j&jvCgB&A*4E!1 z9vOOYUcd?y-v^6$y{U|4_$m$|jB0>wH7fb8?I*kY;zhTAYeWGbJpA=`Cn~am(o*$U zx%=zeyUUx=BjP>uwo|>>=*~M=(I*Hiwnalb8E^=-#z~F?#A;p&n=`b2`H3&j$2E^Y zSX>UeAbPV(kp!{?AN9i#35&bow`Hu->{ACUGS0!dXtU(l*f@ycGJpJmeZIiq$<**F=;#Z}|TxE}ECP8J9!SAm08s@M2Vu-|z zjb3AB=GEmg*hDb0G-`p#-vo0(bomaC5#Ns}lW@bw_}K3fid9v}3Qbf6{6P7Pao_6Q zq1@`e*GiRMA^yQN%XLYph+8Dr=22|-IdVKOt|zH>5Y^wUr~EAD&c|1(iJo1HxPgec zUw1u!EC*e%jxbTYHkVVCTj&E~0W^rvB=ToBjzTppPJ9^-;TImFn zKAB-j?yU7w3967u@oCQN@Kg@ruOs{@AEfs2*2J@-FeU(<|GQb+EY=JjCR=nw`6r+c z4kAy8Ows9KC`;d&xy4fEy>lz-fgYuARtozml-t)KRQQcN0oP|DE)93l!vVGsDhcl!@b(~$%iT(r}3>NK_VF@=#Z7@H*L;&QzsS)$=!I0;q6;PfN4 zdbK|$VD3VSnWw@z?D-6$z|r1xwn-wswST`1Rly;B`5M~xKv*OlH}~HVt5DeAPlGEI zO4p7C3T=cZi>j^QADU7^Lf*R?%ItF{)4#iX{P!6yY5V5Jo>HBD%|G#S&mjw4&fC9g z-mNe=`<c#zFrE{#g|4c!c6}|8ur?u%!8~i@`DL-)x#D`3^_{%NlNB^l`q`Uv z4ZQLxR$F9m0gJ`12syu=B(75z;?&^aV&H%U{YpWGGM37yr26s*)cc_$uv}N}r7wwE zFYfb8UwsTw6<$cTF2NQS#C!!)TAEYB)76H5sw{>ieDHT4y&xd>jBR3XG+s`|&I64d zNmSYCc@?M|p@4BX1Gnl~J|qW?gg8IUl3H{tIn!I)x;oIa9Qe}bAJ-_4$qm zHmiPQkaiNQUEFW&IXun+DC*~JYbSm`inciGLv^?jM)+Q6;tmcO@=VI|4t2dUN1>>x z1!^a`J*q-_yO>byM94O`zNAXWtdWzcAQFv~dO`L3N=7{_$ZA}utZ;B!DDT7vjJ-zE z@DJij^_vo^XnU{weBDI}BchIw?elxdP&Q)b{wrwKVwB*a;LZ94iRO_30@)~^eO69< zD+&p7mScq_s@Budmcj6)Gp!-)uaWxGzS3>`A|-cSkqdprC^fi*=F-Fu!u+HVh3#Fo zQuWu{v4qRyy-R06weG<^(0E&Y{YL&hxNX!Dg*g~(Yk%=PmHf8;r$}7%$<=A$kaHyB zdfSEFSIe^67mGviNzWHjq1iFFfw|M-aMrABV*7fRsxN#v;b9Yr&uuO z?e+Eorn$xx*?!8SLA$!=I5JACxx~NDVcV%I9RD0z%uQD|N3-QQ<8zjq&5%Yok;?M@ z4J;$0zxM73JI z^T?*#(oh^ z-rCwbQGzyjzE3-m2qNPa87cda*bjKRoXC?=r19-j$uIw@mADsXYMqn_Uj`VotY`G~ zqEGFUM)srhgwHMQFe}t0QtLTID!zPnWeMd8O)#)qU(aUC?o+kD$ldk#fvjX z|2+l2uA1AG>-;`iek$X-7-|wP#p})x)U4@$tDz? z*tf9Z;kCj(#z@^S&*i-St$)kGCC;7P^xJV(wN)kh>U5Qw=Yg9_QBV1k!$C4&h7y4b zOAcLk{Vd_%CuELuekulSf^v41MMkL6@AfrgdFs@SR?;0Yw9S=}n)O%gD?8`$asoiH z&$T`9Ey{^z&_GRr9PG2vt9D$AW`kc^Q_nmtzNa}iu3$C5`ug@@w=mLgNo&6=S7j55`l>*fw*w3=mdiG*rV0$rc8-=dkuT~wqja2LhqXCiQuni;bBI2))qagq?U4Vl z&KLAbS9k33K&ti3yr(Z>m3p+*e_^ybpw}8kHG4Xe)dGA#keKU(KD>ATJuh}?O;24s zOcgAwC;B-wBHKfa$pIC;$*&iIF_eg@;zyFnJm~ixeyORD-P?}|AAL>>NzaOcI?lnd zKlY9;X6m3&W3B_-_IVzi-4yRY`^>(!MUYuvu7U>uB?q3+^x5jAa4JF9 z+v~xRXNS8yGReD}kdmT50=}q_WPa{QW(h0)L)*EuPrPLg#XHV){ikznr6hLN>*~aS z$^>O23>?`_UEZy@TrCkB9mCM`v=VSHZlMA-MXaNnQbQJ~eK)YY2hT`h}ZweH@e|o>#9`M6JB-ZyJh$+%t5c91wKEpA0Hy$&BdM`&rHDdTqO6i!Z@V zzb(+Ee6p*ORu^Yi<~pkLJ3A0#`zE;q0tHfMf(VwbZ()!jDz zLF1jG)6UPG*1bzLq9RGuNK5I;Ews)=@4)IY zqNaIpLNr(0E=JRb|IOJBJwM@B_c7felzaB?QePj|LsC-t==A6$TwD2uzy3;fWLP*_ z$<9N!yBMwX7&Z5@!qnS$C&-;q$&;=ZO4ll&CB>m}ap?h!M<>z%`xxzFy|ZOKQ;+I~ zP#wbW3|`3^u0N}xm)>Q6IIIB^t-_(NzpleFOsz@i<-cqnaLCBGorBi$9*N@7M_!77 zh7wB~T~|8*`3&#f2kS>iJp~dsBepj4b?cPfpXax0DT3`iAhG4!$u?R1H#4VaR*s^P zs=*KmrPh8gM9Sd<3rMpv!`uohpE#~#0T8ob1zS`|nQX3CZGJ7gvq`=P$1o$LFh8Oe zD4s=%-wUD^=!sP&pl=fG1-M_a0rB@8mg^E2ZwUcNLl7C*#-Z((n7?m(%g9R0F{0>n zPQbuE+4!P-c&v_00c#(va6M_jyYRQPOLI94~82INnP9@#4 z&w{B%|MbU;O_50+blPw)(eKq>wtB%dtxFGn0dPYjB6VvsNJr$wlVqfdRo-XvH$5q5 z{csf&ZuHOOi-yD&@^%Tey^a_U$iJtO2Y?FY+*qu^{~^|^_kV$o`@9_#<-XXr;vUmI z-)`@j&U_td!O}jb#$EX$Y>k`Q!%d!%Q4Aw1RxfY-HOJh>Nh`W0+yf2pH3;ExWxs_A z%ayHf`8E6qhy=fjiN*%ZJs2Q1OSq~ma{~9fcCrHreP+o0dmiZ&-XaZ|T6Q+;|N6^S zhGMseR60Q1wx;3tJNOS!QeX~c@sKFbT0$c;14A)M{K4w7vc^+iTwOgi5HKcXo5oUS zacui8ET;TKrgTkVE)iky>g4!v_dT2~-mJ>(Op4?P%{s{xut>y6aS3cg4;*t?VobL*$ocn2Fsg zUYiS_8hA`!v62v-t{(3yaX;@ibVpl`Df-^jj9l)>5b6%b!$mPS8kZ$`Udp z|79SOyDCT-UxunfY^z{WpE3?J?MOwxrFj4sj@3bs4&?K)C}viF!Iu zf1|!=adxsj2-p5QKf003Jgvx>k>ZLaZFo$#e16{Un1_6}7ThPA!L!&b0#F4^tR+eT zc+xw3kg2O4VCyf0VuWL2){7dil*am;h-%sB+D|c}0@uVbMxK?#bmpj}ly-T!e;1)y z_dTKIVowCXZI_fs^F=WwQKW&;3sh0PE)3!zOJ;fFsM^A#VtZL*E}E*7@>yg|n6o|? zr#=)W8BFkzC=M#_KAGOhC2j{jt3R3V3+~?T&$xPwZ+53Im)k~yOS%fkx&N*c%%=Xv zLISZEN{Ei}n;{rK16#46K*s}1o$}@mUqmgq03l%R-;zro)!yYrRty?14ya%eINWAo zG86#Y*f{7E$!I$|78><{qJ!uSs!y^tG|Qc!ziGU-hndIUYyNa)&Az2qu&y0F1(>yd7%sskQffkW|Z%^ij~!9O?sGKpkm z!=xGb#U;E%Il%;}tO>5c^HFKq^&E{&;-nA3J69}}Z(qaRlL1`ZrA^;Vs34lE^S|l{ zlYn^UeEJ|7YjQ!Z>+N={xa+LQQ%Pmf45N6Xfj&R8QCx*iE%Qhpe%k`&DQW`6((5xrW?m)X_#bG-yge!BXr?CnY%02kfeBHCG*B7AmPg5< z%DL)e6C9S;HkUZ%{&;Q1D}OGwy8xk|A?hKG1be<)->g0eKdghBG+ypKH~s5d;9uJe z38g?a+bz^B!Xq=I8j^%suy~nR|K?S3c4Z}_LcGeY9qKKk@{Um14J~*1L;(O~_#?nH zeE~l){gWEQH1vKmx38EX3&5_`ESkY$v!OiN{^h>jK;igg_;LOE!ENN&14;|>N9UUw zfZxB^&VUXJvnP=t23ky>56!q|-AQG55LvBcG!OtpB(ZMB|F*myR1&yu(A#IBH|R*} z?KkZ;7m%^J98{}-A<9dGz`XVQ7odQ9Ui%t-@{$MIamR$O*dy}HsE-l z<3%1B#-@)lE`5iTTA~2hRKo08RQtM}K9;{$3Ciwmthp`Sn<{g^=Gy*h7zfjfN7D#g zgcVqyA;j|`NY&FY5Pl*1Moam}=?o`;w%^}ZS?C;f9f~16-z)*YLwTG@sL52AaQT;M zf0TDm+!bw7aXV>D=6Zkez?X%pb0-;bCo4d`rZU@9()!8CNy+K{tuP3PQR*UNo#)hC z&gpq2CA4>5QGzYzvA1V~R4grIrtMAUpxws{TJ_DiMiS|>95a6+zNJ=&qY>T=ATWSy z3vaTotlqD>QS0mw2C~sF3Pu~1#_U`OKAj91_GS7QctgH;nRzV4LJ zO&$`&=9EPD{$-!(+taX{T#JD(RUgY_9N@EMqr0h{-A=)EHzW)`1-1J3?zG)3wYA>exSu^mX9>1$3=>-9=mMpKl?TCD{M$M%T%piiOFXiNvKvjIm7})PQV` z%rqj;++iuwN!uTHsafv|Glbd*#dSy|z;fx21jkU-R|-5l8H|#8w3``KRoI4$!VP8m z*N6T-$I`)4_mqW0afvzbsAvCOWLZXrnDrP6d{x%en+&_Pj$6BHH) z3R~t>L$+yJe&{QY=DlrZk$19*RmfnyIqKJa9t!T&2)G`~3j#cBnxhtY=QXBUh|B;- zTXg?(zv{{B!Oi=zx_Y&)g4eaj{7}kW{-0wN14e?a1ynLkX%FZIhrb-ZjxjlZTjw)) zb^dAx{hUpnVTr$vvmpJ6)v_@RkvN~$K`$v_E$!d?gm6w{&Z)$T2xjIBaCc7hEzQ2R z$AW^2y}jXduM;J5x_Lm|t6{?lXKn}TX+?rpqju=It48JVj#*qMhr475m*Ol4o0yR8 zMe7P5-fUKc7iPAPPl!?s@r~xVuCr6R!aOC+->nn(*1EO-z_D1Nd|bGgSkcbi(Q#mB z;D!`aFr|{}6M;ly#Q7GKb+I}d5^J8?n=~1#1r-yM@Cq}4>#K%z5a+1EgrQB8v5+)l zRogpj|6A93?n;~9-MKAIjhW_zG=Fc6N&)}^r4`DmUWY`ql?sLNx>c$l(G7I*i48Pb zy8`QUzgcBxW|CG9^J)vkCNI%TZWKySpI3j&T+?hL=^pkpZR11GYWqvqO z`5U#+9TQVTA}A>n+Lj@Qu%WsBEQyZxNTJEl0FN6;Z`63nf?mVMC!)yWcE(0zUBB)N zhW~tm?f>e&*|}KdX=lsdLcRVp)xlo*dC9N^|2-XhuP4);3$N?PS-2m1y}rcuFVrqQ zdpIYHEZaNB3>5xAwoMdvU(kH6fAK(j%JGgECg~@@lx53_b3l5FfR=qmFyLfl35V9# zII*+|5}FsAYu{N5$zJrZZ3_+&re|Oo+!^%>S9}*MYV7N6%fL8_^Nx`pMa290*e73R zaJckdC0|Y~FWKgATkdUHdHMd)*iOe6K})#zAVA+=dZNq=?pl&{xD<>{xo|vy4Fcyy zy>9lnq}sVdEjgVyI~Q2^v4HLDZ^PLjol>FifV0C(m|=BiHfFGAyQ8c)k49~5nwA+J z+M)H#32>WI?MW--LI8P+)Md)bAh@p*{?2$)d1w7p&U?xXPUwaHhL(9RNXRviokvY6 zp8H0X*Tb50&8^lTo^R^{*4kiw(?6QVP~Wt0EAedh3{6@qy?^~^EAHQJ&fJiC6~E+L zooBvoEiZtNn?+6f=yS*rBZP#SYIC)NrzDEt%QU-kyw)F7@)EW!PNr?P{5WVYp*Wy| z|9(1b?}F~s%R{BRGJnAZH}W|ljnohNUSquuk%g*nq#XNySaPt>%9E?#yqYeVu8l? z?(7yEm6TZ0%}r;EpXoT;u^dw=;#k^1)%_hq#NuKgA3r~X*lYTI%F<*nPN$K|B`J4}vJ+p|h)sSM!^S7F`-P>N>!<=QnQbA2f z=4TSH_Rqw=){BnBqfIq&T1>&r&Bw{L&$HlkAO_C@G)oMg*?hh|eW3&DzR+;ri+|_} zJ);=4NQ{8A(peIHZAP(=QCHm^BtmP~|NiGYc5ge|)}{Nz1_kxt;kn$S5PU(f`)v28 z`zLSk_AiTEEOgzV$G(cP!8?^C?Jq4Z(4kH=7Z^BXw9vUr1 zr@_{3i)2JzZoH>}K07^Ge$xWTMmhf~Cg!6b1`N3fsfl6xl3aiE2?ZGO9MXz~rGDlVxfg%xwQ*kSmGuLE zPv&x(K^ou?Fllq<%o;!R3nIqQI5-=Y!I+oBV2clx47tQh!sIw`Faoe5zS@hFJr1x7 z?L#$EcpLYWB`cPoAA+gzwYsb8YT8Lqdc3yPR(t{aCyMF1XDAj`vr6mY0y!?vUZ+<* z1$Ni7B#zRDhySFN{M&a*q^~D3_~rES<15bCH)6^L`9#&uG237TkIODzls`BO%`XxYRO?-hb z(PPE)Mo^o0!!QvIP3gBMtQdddVE=O9UrQusJT&UA6tj&h=V%ftN7FK4hvH_yn;ZvmNOPe%g{SvYchU7;mK%Ni4iIzwp%s+QU10~R=Mt% zIX2D=NF7oT{SmMic^eSE@V_qJZ=)qt_fPX)S58i2o5n_|vG{AeY+(;(einm2q~JPT z?v9^BaO@tut$%cSe8ld(3OuLu-{{B_qbM0MqoUnSk0ku2{Hm2KWJ4b8Q#~X<>lEDW zi~_8BC_}jm&QCBsj!)LR#Aj>l?1#qP*$}#VwM{{P`WuHnVd$~b2-~X1$EX)IP`e26 zrRAg6H~l98zVX~;$Tf9aKzWq-u!8-o5zx$L#NiK>9bq&jR zR980**8{!8O;_uMmqU8+)xE@}Zw;Q~?$u8lX!L6uR8xyPzFk{)xV7H?muZH-YHiR* znJda=WH8T4drb#2UNq*>sFZOf#0AB%ueqAr2qhIGo{37 zBqx}McJU%(%5ROU-ikc37bk*lfr+iOa8UascO4}Lw*F~}tBXsKCj%s|ArzFlS=FCl*VKWaL|3xmq>>S;vFG`1Ag)-7f9C5)dW^z>P@bO19h%wcysg z!U<=yYTw}Qg>n>&VXhi-!IW z%d5`BYCZ=PyNuEcoJ(k5HvYxVWwiXIp^HXEU1%ZC*7=Z17>OPPH>gsvz^aR16Oj2y zCzZg(Vv5%Khm%P0R+9~SbZ#7={JX0Nhepz=5P)D%6XOk!ot+XGN8_-%)uoVswk=A5 ziAV$G?5&Z$Tz|YgG?y!&q`cRC+7L*ht;AI!d%8qe#imX~&rU^O^9C8ZVdr+J2d$uFr$#L(II4sx zv5wjFPV(|6isYd4m3^>zb7TLz@+Z;=4`}u88}XFog!2eHjMKjpO+V++>t$@s<^vK) zb%x}!_ICQ5{q5*2>|7QD09Y+&Wb<>-z}AXdDYq2QCNuN7S5n;I=4;LMc{T3r%qK;y zes3K?Abv%Njg4b`;``^yDEYE`oc|aFYWW+1rPj08?Ss>fIFuMZpPZU4dm1v5=Su6C znN5M2vEHr!kuAuIv9XS8*DL7rK|c0YK(pVc``voL9~0Gd!RXj&{EKH`|G)P5>RI&9 z*#P>DU><9i2$q>JlZEwU$3+2%dg8khr)+>#WhipWIh`ZQJ@`= z#gHH%WL#=6NKcuj91O^!oG>yYpe_{M9(DH`tFiqEP@;{>H5>7W9R-Gh%66FK30ZT4 zPjY(gV-cAN%_NRX?gm~gDwSalXl7pCaEW3qHgJCZ^@4$n+V$OGB~7m#jiQc+@6}{^!7HM*v^!x9_?~}E^FCR5rD%C3^r`^pBDvOQwkk+ zs)2d9*_$`0r#mv=p1Yo7stC6Ve!u*gF_rJxoqQi7WG+I&H1zhy*REs@t(=IGWfAH7 zOMC_SbJY4j4J*0*ZafRNj?#~_c1~h+y0r}x1$`IhGjr>6cLorqNM-wK|9I-RVd+Yi z>Ld$ZNhjK2WOa3L7285rF46r_NkjjHj+OM|!x#XtR`?HPo-<@|Y=WT{)^u4e*V#!Q zq0IXYnvtM0; z`hBQOBL7eu%mWGlzmr-<9Z(;H4S5|l!=rHtkW#6}qWTfhnSXF&?S?cta zx|wtNde?@9bNIDL|Byd^Tn1c!)vxpBrqfR9(DZXYa2Y+JS>V>Eyn8# zvAU}lFWiG37fK14iLqj$=SH@c{3gycF)J{0yI#cl`sI+xh8$y0Qx{3MIL}Kz?55No#q%%tg*yUsw zC(h2Lg%y7A$YqCLWFJa4WC}?dS=Ck;`g>wofkZJU7%=urfIm*X^FLnsu_@RASSza~ znxc$QD#VkJ{KkS{!os7x$RAb%!nVt92A$-;5n;SySz^dCSrzUOrdoP~BTZW*X>yOd z8C1I+1Ba*1m#zF^VMaY;bgeshTV&YsMxy-W zForgZ6ADS?x!2Ak)rW3FEqSs zSWTyp&e6_zM6U+TJTdJl81Or~-rJ)hzKcp%sa~UKb{#Pn#*^@|vEBRau&+;D8VYcv zg5=RaZU)IReav=onxeF405c=eToQ&GNVwNmk5iwYLaV#qHh4_RYJbbe){5i-_qx~2 zMnQPFV-`B#wUHupAf%T$ubBl<@J`3Et(+8Dvq`hGNSNk_@v@C4PQmW)2nvvFvZhtw zr&|lUcZA}GS$*Z>1MtL>xU-{IQvmdN#LRBv3N;pjxj{P*{-Xtq($?eNbz_guUH>F& zAYuP2D8O3`Z2LD`aymZ4&q&H+NSSOmUgr~Wj@zV#y-2?9^APjQ(A2X(nzWPf+k+g$ z?VUGy!?$BUG2*lzC0Z8(s<(PC60&563~Fe79@} z5kjq7cAVal;+kkff8&pXo9|e|c9vxdDss}m&0@6_d6!bfiOVI4l%dqf*#|@--J)q4 zCVu~Fk3AHz9c=p`fm0^)*&uSquMAoHZs7b*ZYWqrD^iwr9EVeHgIbV)UvV>U0I{7C0BFPqsiRl<@JS~+-ajZy>1tSKG=hp znr)i&FO1D1D;^>VWfqBWzM%hyQM`RrT-w&D-E@`iRk6rwY}RHnqqhsZ%O=#mn`3K* z*(h>|V5u_{Pnl-8^^eHg-DmxA)7%Xp%$@wTF|NrR2|7p}543ad9o!tC{n3yHWUTW@(uz)#*7AMUE84^3ENh zSA6cl5CGfU)lrK+)_ele1v*ck%cs-itwW`FlSHYFL&saMC7(aSFVTXtQ#&~I3kB{L z1|O3-vH`5g!xh*KJD3hva_uItG)k zdWk^D!F~-xcrpO`zx4`@a(2-0e@F{Gc|kAj>Rx|L`KQs?)5BpZZ;KM%n;DCJ z=JRNDn#hp5KCd9Zc8>U#ovk!KZ-G7*e`p1?b{@iWKtLPJYhS4a$v}Qth&e;8rWX0j z^be&>hbogcwO5&;?~(;GCxf41PW(GxaZg@NzN^1XlG}X|DsSFj51C2|HY8&XJ{FNv@PK8>z|6hjUKcBd?hiqe-2Vbkbx6>jM5_AEqvQA6grQRLgV1p@ih&P(vDibslTc2M@a zjLhO0FYAUm=TeU+Lukex;LE1|I2`1%=Eq|?#-r2aohn(y46==v!V)=3aZZ`aDMpxu zx33;r@FY932r`H%E88`oc^u)}KTGIVVW9w#YM^rQZ=)3T?=OybqazcQcOYT2($D7p z1O&6IRou?`-7+N;77Lh+@sxZW2Gt(K%IpmYYa%A&1ZEnuAyw9=^ z;Np_eY0bdNTG{OJGN${#wR8{gXt?}C1MjyMe`6ffRA_-p|HU^gC8pZX!eR1V&rnkv zr)JRjvFS-eyTEcjH_`ivgwzg_aSy*?0H-p%D+`Kjz;O;b)gqYp7nPhKW+>S zbMusjbZ@_5XEN|23UEuIu6+A&Ru zk5*x;5B`9&@u3I0FUp4b1SE*1^&2K?nIOe}jd+j~sW-JD5T}VeIj&Ri3nPYA$ayssIpu3Bxmdq`ta3AhWoyJ*zxCs{5{SeSpU`=Y|r! ztEAltP#-q-?6i4foC_)2$3+^apsO{j{vd{TXj0ID*{SKoI-(sj=W}D2+Xq$z2zAqb zF|kK^UL_&toAA@jMs|{w`{TUmW9hc%p~C(iiwT8d-1B&0t#F@q3325+8+K2MrKka_ zS~5Y6Zqsz$)ki`e!ffzm0KkaMmwJET*q_lTL=`TRA9*mN6 z3s;u&$oExKy5V*0;p?uE+H4!2dDLj0_3$*TX!6-T)y&2k=nWa=U_%-$R=2q6O$vY! zWPh+xW8{3ga4Y^JV=QVwNJ1BaQ{k2tgFuh_{Fh+!@U*iGQFhc_CQYsP8)L*;+DmX z50+XZ8&}sY))+bP`c1q}8 zR`&%#J*m2D!Kx^6^Q%q>gpy(RG7ayDDWUW={2Y}HzJl+v4_5v5QQC5i&5g!-3f&`q-3TwWWW%6z zc0!9u{b#Ma>_fo*>(5o_O*NW4$plJ79T}$O zLAc-Q9MiqcXipv?qbAg2wzsyfKjjl03a#Q+=~2m*Y5X_O0wi#CqNwTH+}Yaaoa+{@l&=?MQ(PJO@-9}e~VE% z+omeDIf7X>&45fS3xrYntPrlQ7u__q2$u)NeS{SH|Fytu@)$_m0JeOP94kL7SVNcL zg|Ig5eSR77CQ-GDvB>;5vb$Tv+8Y7$(4a<~{@uiF+hr?w_cc}PHchE;=NzGMkDA3_ zKjIKCaD@V1Xu;1RJtfTTpD3cje&hvsr4RdWLgcmm1ytLpv8SOQbo=%>8avWOJ2>0R z4s)Hl=4jvWo<41GzlbK&!iVJS=ZA`RIZnpT^xYAqGbv}0>S)~xCVkqVZ>vbj-a6qe z2;27Jn5!gB$k-KwOkT!va?uJ2l@dxG%?b-%SJsviE^>qG1?ulXT;24(JQsjxWP+O& zBl|3nS8t`^ll$WxqAyQs@s9>deZ3fuF>qGXB9bk)@ifr zF0U;Zp`BGXE1}qH4AoQPaNy=fzGz0pygGWZ9^vF_aP6@;2SZ(Du~Z#f4n63ftEvj> zA@QIp>j&=-TFhe@_#$JO*wX)tRyaFeiTk(VLShFL2s{wH-~2TN0-nkP6QxskXwURL z!$RI9qmc~!weQz%$jalU=uO1J0O~xcKE4+xNv5fTjVcwBS7`?~D0Uc01cLGKD00Sg z3dn^?NmEh{oDz^rwF-zm`Y1ANo@@$Huw6A?O!|`zWt>BbeT4mq?RIlLCt@K>*1gPg z9cyo3ds&%Vp%e7Gl_?7(VQZ`?4nRK_>z*%21pDaJ6W%h}p|6ETzVv*d4ezkUZPO~t z;r~O?nK&~2|8aaI%~8x1DaRa16kE>R%^BZZbCYw*97)ba($pLom1C6TZp=Mm=E@b5 zRHhu0z|J+_-k7xIUby&!LO52VSDjpwD@HOaovxI_f8T^fCSzZRpZoI67S)~r$ zOsy;@?MJbaMwy$@tFcaE0+3uFT()i~uW*X(W{sYL7aYhP2%bF$Nj)NHxJJ{FE`^f-@!HU)}Jf~%R*?lAnmm}1AxR&jK8GsD-+q(s znwAd&%s4AKMYFZp9Wp=b&>AbtYo!Ej;^S-zAa>bFHYLy$w=T+pp4Gjjxfv(3AAeO+ zIlEVUUq}yw!5I&a{~c}2vIeT-t)|l3aj+<)?q&AQZtfodaeN2Ro(v?H>I; z1~V<+?OF5U64)!AGt2{HlP|jmbjHoMr$@~#AN<|bleM*BFl|oiC;p(knzPJJXJqrS zJignk0GXd<`24XOxN}??R)2Os4=nH3i0N{_;JS*sw&P^C5}P&NHk|?ZVx0sS6>}a) ze#HyxX12XU5#}U-7uF;;oW``Ozy~Xp*1s3eFc)SoLoPotC%rKK93fk-;3ppc{en0M znq2T$7-^Eme6+vXr*|qB`#zf8q8@B}yW(H}oZ9|y1vZe%UQP+Dxyhvc zd~<;k*#AY>_S+!(+ylY@_#JuJWqv_L94hm`NbD2x(J$TjsW0fQnRxr*xPY_v*}$`E z{BbLtQrB6zvQEamcU0@e2j@+iZ#l3mv`ThD0!68ANUKKNh1IyiEDu2Ve-B3M5`mDx z$FjU`z<}RIvF`*Y*v5@Rul3L@xJjlzin~ z(!GA{F9}dk5Hu7(?^v?^DVezC_#XevvD5bR8YY#SgX1?vMC_u0=pH?~on?@4whCg& zkJ##J&Tb14Tx=Cv{=T{UeB9HF56tx}&3drgDcdumYu&Hm;0w>w{gA33`;#G1p8oRx zCM61ulop6(%`E@RLly=5&cBO*VX44e#MdvQh%qK}cwv)^Lo7+sQJ7+e;6w;-YTtZ? z%itIPzIAXg@twoizV_##TQ>Y7i^jt&dGX{gOSt-kfBY@QtaASyP7K z&0!OP?fcrFX7)`itF%1TG}Q6-SUstL+dRwSV}}{>9S&xn4oZeOIZyHdRO7{D?Gt9QP!x!1PZ~F3J!#Qt21*8hg$_{J~ z4pG;-rMkNz2Ci`AVrZe}M3T9sRO!ip4DIt5@KIJe+iGET(i4Q$j0!bPN$FpR?uU;e+d z^(hu#GK0J^W>ZS%BvQ?~L6U86li&BVydD5U%Yi51YSKelJZeJ4sBp2t3;uvV7e5mv z5H52|EErPt!q~wfVkB7#{h32RG{9IR?>QeGU5cXV|#qMU%R8mE7SxHiQbJu;jh32 zUJgt$b-%j@Uh~4<2@Je8Z*u-7fWI{`+`;=s*R!D*_nGUEQ{wGaJ+kibOg#7LgjWEZ z7WR|%Bk1oKx6Gc@{JnPzDyJ`pD2tbUnNiV|z?K)VtG=-dKujF&Z7VHSqDAD(@q3W^ zzS#DmK+n-N(1J>+!^50Q32Un51cZcH*B3gQi{4JFXecF6Jp$B&ey3Pre-;b`u%97m zL!N0poDMEMq3$4WfKk-+6jfQZ!-}u!2eYm4eK#NCH|$~WV!4`bNPEl57Jn|hZBnlEXD$23 zRj(VTciezYr2a&wxX(FFSLz?XTsuJ2u6fT_ey|rLRd9kJ*SHG4K^;_sm!o z=fO3zQDa(Z8nNrKK0Bi*MsWGL9M!kL0fiv>(-(DDDuFsewqvAz+n*?_GbAK453nvzr@d@xN+P(W{Px_J>8qSR5m!deO};ficm#A$j^dyG zIB^rD;A+nOEFJp9M&pnEFdUf1|%g1G}6=9eh8)|8*LKiWy`Z zK2el0QpdeNz{$t@=Hy7WAIAO2e(MfEim`<=1BVYnMc81VSaKWbWu_h`5@5fY5Y`BE z%rfPD0e7y@=U-TpxYh8^CJ87IzO%8&>s_T-&jT_!vB{HN<-9SwF_{kop7sx^SC#z| z;MuhjFHx5*&23KJGtH0!r=LxeeG(s9ozwl8R^1%IQ4((Ta9_|4!HsXu}-s3^_POJaUt@(Y*{2zP4JIX$0ro7 zeLDD+4(;5uwhJG!JBVvHhW$D5$zfy#AS-*Hne3^$l5FYlxnB{(@lq|nUJD|{%zu6b zrpmtm#`!*k4;P2x}Bb5)nLP!8s*#W>*AvX7|o_ zCsk#Fpu(7SwjBS*2VUN)(z16JB^c!IC8cLs27h)#xcU^+HS3Q~R3W}=U=5e?<`Wn< zG7A2F8a3Vf5d13o%RRVS4(5GSR#npXwKCF>EJ+euJs=APr7bSi<}7uO<70H%AU@;X ztRSNG@TJ3)%G^CK*n34t#P(*(!`zZw=EKf_>fSA#{G$Kp$bKF)hmgH|Lk0lfn@n6!xen#8y)@H zIurBreWkSgqupr?_*z+%S>6-QJ}x~aSfQedD9o zwcuxMH940;Z6t-@&SAZslYu`pCpXu8_-8zLoB=?=q$GZ*l+=K>q`-g(mAqK`IG)V> z+j;e|F}e5FM#iLAMga(nJlLd!Et?R!_O*bnjm(^s6^#u2WsW>(`yer{JSQ zL%i`YV^|=AcJLZHWBzG~LVNa;v*2B>6X}y@1~D>GI;&@L4uzb+=WbjZ4 z9)EwTo_WTAaMzIAl+pe$_PJ`EwwVz$FAVbdJ0nY}xG;>SW+n%aKOgJH zbXTQk)`^0Ggdzr*u@~hJQkAC$HKn;S-52divG490J^#vSdI<&NYa)y`v_u8Z;A8um$D z{?oL|isN7qjeCZmMy}#`OO>@vkVZ1JLaj{CwL}cltZ!eoyRbG_4`(mN}L5$`lz zL7UNTs_P1XGHC?jD(P;;OU5T2tkc2L$_`E8&P4mEb#K=jT{M!K@~bRd`{kRlIms^$ z&e#(cNa}cez~G{@$s8?D{PJDc!?-vq%1PPRj!@!kUcB5M-OkDBX3{)*3yuVO$mK>%T}`PsAI8+H_b{60q)B#Z+VrCgPLb=sqgzWfRWw$=2kDV}EJ9dYuY&WWH zx@Z0rhDf7m2fv+>Dy-rIgN@`rN00HnKgBQ?JL?y3ndx{lj#1IUUy zY+7Tw^ep2)htcplAy^|dKbZ6DBt9b`IhMy<@DTK3-6XbCY(k_X9krGi6wTY z5)R17ST{M5YbO09qZ03#^|+f(l7Y)#W|TcuZ>*@_e611+A(}2d@HGvM42y%GZeYYBB-^N10>| zc7d;MVXbKnW@!P!n1B?IYV77e?^5diH(q>|R!Sg!4Hh-M8Lb1^Bl}dQSl>zn`hcZ$ z&UQ*1-7;yUL5e;jKqJ&;c0CQ`gvRoAtP`~weBa%1w4m&ST-rUXTUeV%_2#A!L3J&v zK!+*1ANWnMKi<1gpM9(*4$4hj$vxrsG#Fnf}bGd@^k{ zz_C7#09tKh4Qs|$n2lB|J`683)#`Q|A$+yo ziqh={h?%=52ojv|*tTjnY;XA<_W7VCy?;`1p9ciJvHKXi+z`QJK-;2(x1;>^EP7&$ zCZ8uszc$81G2r?z;&v(Dtjag?&NXX)TZDt%3$6?h2(}197Z)O{Q|&Vp^N0!fa}zP7 z&-B^8TOh;Kg>WqGcz>+@uVfta)*}{|6y^(CAv=ktn~1-C+m1*u{r-G~eD)Uk_ZyY? zoP}5E;K(CdLrE%LY+b~X22 zkc;Ax6>*Ar5|eQhTxV-cyD#Y!rYZKD0((LeNILw&-H0io+r^A zy=wiZzOQM0JHb!Q#S=U}_Xpy`X!z68(0Y6XQP`5#Y3r**dU`E2H|%KZ8}?$QNPdi> z%XjyRXT;Cg{RTC8N5^X$xnnCuaA+E4 zu<~f6#SKBtEj__Aw%1K*B=mQgIa^fpmwPy&^1|4PNg!4B&(ZZ}Z~9=vEg_$yQ`xxG zCRPunW@kW4mS1BkUJBIQyXS%$yI5J35Fc*<=P@?+jRMDC?ma8Pw;QQ3)>nSnP3e6q zKM20pvb=5Sr9J_~z;HH+byPdG!-qaOV4`5JrJxAY+Qy;L9XJz~&hQ6fTr5WA2**50 z>r=fZeu2;lal(#&4{HMrZ#H0T%60#^yv#}Y$K*KeIOqOtC}6>UbwPBta}ERhqkWan zaZdFNOdyMT4JxA}m>&Ng&8S)H=^}8wgds8xlT-xeWBn0GmzU4XZoqsMZ%qY=xH6Ee z38ubKw}qdmFs#~wC?U6=Vs=Xw*44|MGinX~o%_;QiVb*q-x($VxVe3HBYdi_!jV$0 za-w6J`^nLi{;?q%Y5)U20R=IrG2xbt&l4M)lc_SIxb6mOKoQBAU17|+K5r*Lc}Trp zC0qDz=%ExC&vu#a3**lu2c>%CRoyqcf~m=}5o-<<1Pcml6rF#ENp5_HR0hBb0;=s_ zC32O|mnNKjdqv=W>MWi95{|h;%dV;OgpH4v1Os4RKT(-e!#Cm}2fG`Ob3oQ*He_1* z7gzmi!3@Qp9<-^+@M%Q`S<9dsYF|Yh#I3VY;cOk;M$T+^c&-gQ`=P1==|8h>)}L#xY-9|P5eyUu2`5nOuUzVpU!&B`A9;BA$%6!J90^M~ zIb*r-x)l2}w|X`hK3o7uoqU@bqco^0{Jc-~8{jJ-(8$(%q|h9_pm~PHE?nh$30IrI zl=Ky0TC4LgtX<^Mbz-vU09$yjdS>HJ9XZ1~abX-I6&~b_pT1}W8xPA)t&x<0p7=6F zQG%>2MGyy!o^OLTVlD(SNA-hdb3?Jb*z zp_y`hSmriM+?{BngMD6$9I+5wur&TKz?e!PC` zc_^&!;%MVo z+7`{^w4a2C1nfa63#?RxuwEG>#3gw$8jDQR1(hnwpq$baw(!k65p!|8C0MW_j2~ zY?6B~f|;?<&HTI^3#S__JO~W;6LlGbn24CJB-{@J)FwQj_rS4xxuid3FZ_|TC+@ZVO}z!)NP(o> zq9(6eyPYW%Uw8Dhmui{^*{e2m`A&7@YRg*TmK1e&cdN`=c-h^2;Wg%N27eN!%hDjD zk=m=l$^wo(U#%iY$ovHMHW^14k7~B-p%{of;26z{h#nkHxMl~VxWl+z%O8KFm=}kA zlgHt>$Z80YQf4Y2iUB_UF8oEF@|p`Axc0T7e0t4+AKffdP*X*w=s?o+auS_)B826O zfz}yHQhWtzXqvcyQP;wlzg;-AJhMYw{)*-ei;M%nRj=UjahE3ki$ z^7$1XT!Tzkh|n%wDRM(Lml%sF)HXi^#>AUVP$+$i!vSoylfgXoajoaO_-~&34YMEI zp||Mic`(uhCl6T(nfiOI`}u17(b8>Z1i129k=kLOewQ zE(vB&2yzte{xN}0Od4E?$JvX^t^`$&?w)kUUSLdIYP z{SCU07oB%=6H)Bn4;KmC4mYC;I{>x7r#&=63Ngqr#|kXfgA}WE!(<&)>&NKv7RhWM=1)IHe_$rS;L6a_WmlyL6G}8Qu9A45 zs`9(FELlo`U+UMl>?BHfMI&aMvl(?Q2+3gg8lx!+NQ^7m3qkCNK@${qF^Lh9$Jmgi zFn~M0Cs3=me7=7&?%}_vA8}~PNjsyv9_9*y`=Y2I?}!PBW@-RA8+-$U+iR)*EnKM! zpKz(zO}4!k@pQuB0>j|~z^);-dIWjoj&uY`XRsF~v-mJ-E^-OYJlq0)XiOCfWQT5| zeZ1i;=*jpQe&?G!HwTiiP{*DV4Le^g!zReaKJcUCV!eDTD z&Y7G>fBWg$T<@C@pqv6L%Ih4YyF;KWOtv_5D|#r1o*!wRjPDVgId~0zjWbgk=*d3* zF9Cz0w*=@bf!%6WJOI`?oKgaYF;ztSVl_gHyTE4QBCPOPiWyqXMt0eK!ELn0F*`j( zgd4>6CH&3qR;uyof_vCh*fPP3-7}_?bv>~00^8aM+{FX=v!;0qU4qB<9t@MruHuy| z4*%nq19S25*<}!~Ae>R-G|NQ^t5^I<@2LdXA1_wUbn!*&Ohd)oM$&UVfx0B254q{g zF}S<+hUV0BCzbd_rh3$GGl@7%4S!Ml!qKc6*gN&CgELHMhS*f6ZGX=KsLF*Clltib zb6Z9l2>ou^O=M4WMPv2wnL;x@sUg1y?kGziA2qdau*%m7{lmTC87(HKCA;^#%{Eg8 zKth6;{h5Qsys9UzEde}1)}Q;4;~piE_;6ogD|z;=W`u5Eyh=66eBoB++yITT^13@tv2xmR1Lx)_a$7cPs6t+%&R3rWv3nwif@BOCMGafGZAY)o6xQJWq(6sIcq@_D?o+K*GFKnK9WgHBiu1&?gov z5S!}`$lwBnPUq#M1Cs(L=-b}%UVb8*?&2o$F*HisMi3J}opmGdxz6fwyb{v^VS{+iF zU1WxyZmsgAy=Oraifu-qzH6qmRvecG?~qz+gY@;KxC zBs0RyZ^%s6^44@)V7p!#y#<~LV2)FGxeC3B(hp<`|HcNg3X3-Yi$eT_rK@q|DR6^- zy9-$!1C;%tF5gJz>ih_m+LRs<(L}vv()(DqB#1P8tEDQm!BTWKCk)K~$JNz(LoUpP zLuk6TQHCPX98`g6mg%T_0}THFE(k(e-JEn%`b5zg9vDGcuh+vt>QS`s zqnGDWE)Vph?VB`}ouhEV^-^pD+T0jwEBxf+bcK&D4CH^&*VwGBdUxb1B|J`@xN#Si zA>oPN-?XL<$g-o4Z3<*6cCG^iV`F2(SJygWB^{s8-GSqv&LRH0TON0wl*`X7lJ6gX z-n{7~aKm`AQdT9E-z%tD+7C%~=@q5MF z-$f3ACs_#eXV(SX$KGK49Dz7g^$5yl4e3+QIO!C`Blvar*G6?O}2Ji&aO-H!RG&R4(6_6`iYHdd+o;-_tp^EF!hhPH*(84!Y` zV9S*^+x@4F)aX)Y z%pt=P+xxe5SX$bBfUB$c2~VBp#d(a<)y>V#s0*M=w>(>4T8kC7B$mKWpG4PXD0XVU ztkhz~J)NjyA|?VDWq1@}*~Q`*OChu_%Opx#2*?=ws+uOLsH%E~)RT>c1kFEa5)>^A zU`}LXSs154?U&czhU~+q97Ait7X;Zo^FRg_Rz5k6X*r0UH&+C*2;t0gA5td18Eb-} zb;aT^w~55xQicWs`|9412~=<_3~w{?t1-JqXg)v3{ZxG=x$$a-!(`e1T|o1gYynF% z0)=|zaG9f#%C1?!_$0GT>ZEs8z88{z*kwLYbaKb zi@n^!7gn5?c(FeI*^M;nnA?6t@;Y(D@IOv;3dYrq$qFZY!8PydB=Z^uv@zEG-4;^% ztmrKO2*d;j^F8Sbx(+ib#+aZ<1Z2SFlg;0+6k5!97=L2}+!=4g<&joZ)3iI2T^8ER zWhrd@iRW&DbRc246d)(SOVy`kInBT<@)^eTYH*bj$A=x?3@!gR(LJq*dGd2~K#9XW z4q2V1ZyHjoxU%IH9HlkbFKfj-`#qy2xWW>P?`9%ntk)24n2v-Z6&6^m|-a#qEju zxJq$?WlEx9zRlv<2)sfnw!e)lY7*I~4&VumkawEMM^6&dM#TI`Ns4R+>^GBQ-H5Sq zM=o5AlTjg8N2@U2y%DaBkouiK?1`l7f;^kLAxwU-L11hpF<(t-B-Y(hsn9D!%q$^i zetxDWQt_prciRHEtKYMjqcWX$m8=jCv`$+H`SKQ&k#xTBwIt;s!F}~C|5Im}JiB1# ze8Zhm37VMNVsCHUyGqPSY-d7sK4 z^beCK9DIT{;519c$1)?W!>jU@{GM$*1!sc}JSMdbzVmVbiz4L(GIbq&!J(aXzz*;n z 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

XkNud$|rS*`LI7vgK=*tU3ARJEPi<$PE2 zkbqK2f*TXcOM%kXdH$AP?ntSC+^e3Pu)yWDMoCAFoDl#h`;4E_ySw$-TN(L#jXW2M zLJcR!$_i*{24f->L zXLmEGfxbSX%r=rss0;hd3Z+p>8pyvIw~4fe|L`{9(22j)TjGSZYlydIrA$^#-H##! zKw?=COpSJXtzuA_z7)|NcT!?v4ge@nfm^GdC?_;HWv#|k%256N8<(U@RFh;TW9h>$ z8%cFeG!#SewpB6DjCq03GnJPn;ZP31ePLY9e3*7`iqblZ6_KCtg<;hMBlp>5%>?*t zR%HXM+@wo%8y5Zaaml!k)+2^pH)G{|XPP#{B_*IhOPdVC4KQq__-{<)L>HAhFA3x~BeO7aBx%m=Ov!p__NXxq6!xg=-`35LlsPAreal8j2! z)JY`u?R*O=u0~hRq#vMeCnN$1EmlroWru%T^F`b~)!j>Lcor#;Nf7Z4_Mh#J zAiQ`t>c_)ULz=Rw_`xf^#n_MFg4ouD5%c`Q-cZGdvE!(^o^3plHVZ5y>j9o7GdngzJ7JIT3T?Oa*n%^=_i<~@wVI`;b#(=GNDZlg@jBY_em;M(O$EMVp|_(+efw%YwF(-egT9^e`(0zPk2 z)rzQEB>{u@bLF#3(5e#1iN?_O@&MDM@({0QNMy}BA9Q?X)QM~Effb(bI1mQuHM++= zpOSM8Ayy~Sviz$1es?WIw}pT5t*el>BxBlhqA{!2}=>3v0rP}Z8B7N)p-Fmp>Te1 z@=#2-sUQphs@vDm9j1vutd@Jz#e_u7V3>y&6p_8GwvjhE9_KC%WDDa|?98f}uPKku z7W_(AfmG>*RZ!@Y{-b(&{F2h|&XTd00s_x}&knYNZg!pGxGl`@p*^0xv#sy&9Q-&L z$cRq)Y-WA`RUAeMF>QT+x^EyG4%34bjqtdeSXrLP2t*=`JxsAr zI5>o@WdMWJJV6d~Ds?)-nHFj2(%p?I6e_;`{85{Vu(4T#rCq9q7AGe(^tEjEyb6|% z%HpNCkIR$S+Zg!#`lMU)G;b4gY!+_PPorYNdIYVTx=CwJJ1^x?9pDdng51JMfc#A~ ztU+y$(`ZhLPa!5vB~OXTe1OM8&q^yyvFSlk1D!9PrU!f7ZDpOss3@Ki_r2U5M_zll zW#-EPF-mq+?<9Bd%WMQO?vDJG=SGw6%pdTr;2yE`t7ry-XzBbrv4(iGZv=XlHJ6nUQZ*@2rQ>ZE9j|2fX;CfHEo znYXQvJ1ZqzS*jn*n{y znWiIF=a9pG0<)X0J%7lA6CjV3l)Z8nQ*-+l7sO=!XKvWzY`8VB3Glyd^XOw92C}XI zqhe7b7&C@o(t>+2vJz97j4$#xf1@HH?7jnU5)P}6{SO`#J+j`swAXc^Tz3ON4Q-!B zpnY#gt0^?Xv|)G8TW!t@Bb@-UH<2?3`eV+<0w*vYO8&+H^4o82oTI5=1zsgi7Lg}H za$krtLpd>|Y=;m5_pwU@2siq4nYp?!8piY8#ejxN7$1Rgt8GaYHay#$w)x!T;(zSo z%y_oCY>Dc%h-z&jvWns5?mCHGcTrL5opxrJ5R?_m^0c;V-=F6)@40z7{TK{UW@jL` zx)Tu+&R@OmjMy~2CXqZc)bTOFYyVtBwC

v16tv1~dCNXheHF>5(*JP`az`0m`!I z_=tom@xE%kP0l2etoJ*PUyJ@Nh47&N@+EtKD zN#V+_23(2ktAZ$1PY=BXc`($$;NGI#k&h}^qS|yu{p0fTalsG8neqt-nhjU}G zJ1^=){o2iNG>2mMX}1q6AsnT*q)LEw7z(I>uIY2+JD;5E0zf!sS+-np~89Q&@_e2!dhF^#$7CCplW%$EQCwuzrz+UT?aR^}mTv2vU`f z0gZae)cdEbd)OtpAFvN<-%;leB67z;0x~l7$QxYDtmjuav|#@04L^0#?|$n=^Zar_ z>fFs;U39S$es41<<7My7yLsMee?eKkI53VS5W z^aBJ-zpCbF=;Pj$MEbOI{&6}rHFUtQapLJj4?x zK`J&4lRQa{5(s7n_;caJKKePQG$hqhdH9~DuYG%A95G!&{%8k*7v6npZVKj*_k_B6 z4u_S85!f0%D<=7a48-pjSn1Ljr>PB>gtFC5PcBhEpYKRX7$B4WMn&MAdcKyV=!@EJ?tCpcTEu-RS_<#%Kj&=M8J1y5R7U8;or(fOfn zVSm10NoS=aGs|3|0}k=(S};dm1K3P2zMMI!6w<7ctYMQn^XpM=(yc4KPlP7dkn&zv z%R`;nGxt8s3JSq?A2N?d|9>G)i`!4N6Ak5*4?ycQUxD2Yvw3K}7=Td}!>HZn%&

e6V5FRup@?R_P~$5#0ato4?dx|UT+YZe!uO{R^{ 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
ccgGPtth9g(3C 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%0DofVu@{9+M?15 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/list_blue_down.9.png b/app/src/main/res/drawable-hdpi/list_blue_down.9.png new file mode 100644 index 0000000000000000000000000000000000000000..b88eebf67ab0a5e65237187408873878ef7130cb GIT binary patch literal 4361 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/list_blue_single.9.png b/app/src/main/res/drawable-hdpi/list_blue_single.9.png new file mode 100644 index 0000000000000000000000000000000000000000..d7e7206fc2e942f9cdb0645af8855bb2bbd24206 GIT binary patch literal 4618 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 B+)@Al literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/list_blue_up.9.png b/app/src/main/res/drawable-hdpi/list_blue_up.9.png new file mode 100644 index 0000000000000000000000000000000000000000..632e88c844ee1d377841adb49c0a80ffe3957a2d GIT binary patch literal 3301 zcmVx!^P)KLZ*U+5Lu!Sk^o_Z5E4Meg@_7P6crJiNL9pw)e1;Xm069{HJUZAPk55R%$-RIA z6-eL&AQ0xu!e<4=008gy@A0LT~suv4>S3ILP<0Bm`DLLvaF4FK%)Nj?Pt*r}7;7Xa9z9H|HZjR63e zC`Tj$K)V27Re@400>HumpsYY5E(E}?0f1SyGDiY{y#)Yvj#!WnKwtoXnL;eg03bL5 z07D)V%>y7z1E4U{zu>7~aD})?0RX_umCct+(lZpemCzb@^6=o|A>zVpu|i=NDG+7} zl4`aK{0#b-!z=TL9Wt0BGO&T{GJWpjryhdijfaIQ&2!o}p04JRKYg3k&Tf zVxhe-O!X z{f;To;xw^bEES6JSc$k$B2CA6xl)ltA<32E66t?3@gJ7`36pmX0IY^jz)rRYwaaY4 ze(nJRiw;=Qb^t(r^DT@T3y}a2XEZW-_W%Hszxj_qD**t_m!#tW0KDiJT&R>6OvVTR z07RgHDzHHZ48atvzz&?j9lXF70$~P3Knx_nJP<+#`N z#-MZ2bTkiLfR>_b(HgWKJ%F~Nr_oF3b#wrIijHG|(J>BYjM-sajE6;FiC7vY#};Gd zST$CUHDeuEH+B^pz@B062qXfFfD`NpUW5?BY=V%GM_5c)L#QR}BeW8_2v-S%gfYS= zB9o|3v?Y2H`NVi)In3rTB8+ej^> zQ=~r95NVuDChL%G$=>7$vVg20myx%S50Foi`^m%Pw-h?Xh~i8Mq9jtJloCocWk2Nv zrJpiFnV_ms&8eQ$2&#xWpIS+6pmtC%Q-`S&GF4Q#^mhymh7E(qNMa}%YZ-ePrx>>xFPTiH1=E+A$W$=bG8>s^ zm=Bn5Rah$aDtr}@$`X}2l~$F0mFKEdRdZE8)p@E5RI61Ft6o-prbbn>P~)iy)E2AN zsU20jsWz_8Qg>31P|s0cqrPALg8E|(vWA65poU1JRAaZs8I2(p#xiB`SVGovRs-uS zYnV-9TeA7=Om+qP8+I>yOjAR1s%ETak!GFdam@h^# z)@rS0t$wXH+Irf)+G6c;?H29p+V6F6oj{!|o%K3xI`?%6x;DB|x`n#ibhIR?(H}Q3Gzd138Ei2)WAMz7W9Vy`X}HnwgyEn!VS)>mv$8&{hQn>w4zwy3R}t;BYlZQm5)6pty=DfLrs+A-|>>;~;Q z_F?uV_HFjh9n2gO9o9Q^JA86v({H5aB!kjoO6 zc9$1ZZKsN-Zl8L~mE{`ly3)1N^`o1+o7}D0ZPeY&J;i;i`%NyJ8_8Y6J?}yE@b_5a zam?eLr<8@mESk|3$_SkmS{wQ>%qC18))9_|&j{ZT zes8AvOzF(F2#DZEY>2oYX&IRp`F#{ADl)1r>QS^)ba8a|EY_^#S^HO&t^Rgqwv=MZThqqEWH8 zxJo>d=ABlR_Bh=;eM9Tw|Ih34~oTE|= zX_mAr*D$vzw@+p(E0Yc6dFE}(8oqt`+R{gE3x4zjX+Sb3_cYE^= zgB=w+-tUy`ytONMS8KgRef4hA?t0j zufM;t32jm~jUGrkaOInTZ`zyfns>EuS}G30LFK_G-==(f<51|K&cocp&EJ`SxAh3? zNO>#LI=^+SEu(FqJ)ynt=!~PC9bO$rzPJB=?=j6w@a-(u02P7 zaQ)#(uUl{HW%tYNS3ItC^iAtK(eKlL`f9+{bJzISE?u8_z3;~C8@FyI-5j_jy7l;W z_U#vU3hqqYU3!mrul&B+{ptt$59)uk{;_4iZQ%G|z+lhASr6|H35TBkl>gI*;nGLU zN7W-nBaM%pA0HbH8olyl&XeJ%vZoWz%6?Y=dFykl=imL}`%BMQ{Mhgd`HRoLu6e2R za__6DuR6yg#~-}Tc|Gx_{H@O0eebyMy5GmWADJlpK>kqk(fVV@r_fLLKIeS?{4e)} z^ZO;zpECde03c&XQcVB=dL;k=fP(-4`Tqa_faw4Lbua(`>RI+y?e7jKeZ#YO-C z0uo6?K~#9!?A<+X6Hyd~;rG}c0wK5y3J`-3H9G(au>>}O*a1sm2Z)Xpu!IN+c0h>` z0tbko3jqO+eJF5Be&jLn$>=>*s_5#`cRk;|#Y|)-RVE@bGlN1Cm4GTvPXd7i5=bC{ z1QJLfM<9U&I`$c~JbeeypZ}j`{`aa+;|WZG32+EZv&D&g&=RKs)`20g0jw2Bk*NB)biqs}SePI34<*VB}&z|4i+PZKjA}&_g7Mb~eZ|}pC+c$4KdiVDA?i}lI zfe_@v_dyYH8aV&r)%gCE(e}MB6POmcTIvU!ZQ#v#_u=(xqX)pp%=~uTK<9wb{*Qcm zFky36?B1;xu+i{ocq(oI`URkU!Ek zX%i$+p&r!nJ!XPz(k4hCfdsNi+oauMjzAVg6C_Z*E!Os17D?SVFDzqOgSH>~NPfNg zva>+TDvH%Y6jgwZUT%^djnGmOG&4be|B=pa2B>}&_h%vkB? jvmzq@b)lP)KLZ*U+5Lu!Sk^o_Z5E4Meg@_7P6crJiNL9pw)e1;Xm069{HJUZAPk55R%$-RIA z6-eL&AQ0xu!e<4=008gy@A0LT~suv4>S3ILP<0Bm`DLLvaF4FK%)Nj?Pt*r}7;7Xa9z9H|HZjR63e zC`Tj$K)V27Re@400>HumpsYY5E(E}?0f1SyGDiY{y#)Yvj#!WnKwtoXnL;eg03bL5 z07D)V%>y7z1E4U{zu>7~aD})?0RX_umCct+(lZpemCzb@^6=o|A>zVpu|i=NDG+7} zl4`aK{0#b-!z=TL9Wt0BGO&T{GJWpjryhdijfaIQ&2!o}p04JRKYg3k&Tf zVxhe-O!X z{f;To;xw^bEES6JSc$k$B2CA6xl)ltA<32E66t?3@gJ7`36pmX0IY^jz)rRYwaaY4 ze(nJRiw;=Qb^t(r^DT@T3y}a2XEZW-_W%Hszxj_qD**t_m!#tW0KDiJT&R>6OvVTR z07RgHDzHHZ48atvzz&?j9lXF70$~P3Knx_nJP<+#`N z#-MZ2bTkiLfR>_b(HgWKJ%F~Nr_oF3b#wrIijHG|(J>BYjM-sajE6;FiC7vY#};Gd zST$CUHDeuEH+B^pz@B062qXfFfD`NpUW5?BY=V%GM_5c)L#QR}BeW8_2v-S%gfYS= zB9o|3v?Y2H`NVi)In3rTB8+ej^> zQ=~r95NVuDChL%G$=>7$vVg20myx%S50Foi`^m%Pw-h?Xh~i8Mq9jtJloCocWk2Nv zrJpiFnV_ms&8eQ$2&#xWpIS+6pmtC%Q-`S&GF4Q#^mhymh7E(qNMa}%YZ-ePrx>>xFPTiH1=E+A$W$=bG8>s^ zm=Bn5Rah$aDtr}@$`X}2l~$F0mFKEdRdZE8)p@E5RI61Ft6o-prbbn>P~)iy)E2AN zsU20jsWz_8Qg>31P|s0cqrPALg8E|(vWA65poU1JRAaZs8I2(p#xiB`SVGovRs-uS zYnV-9TeA7=Om+qP8+I>yOjAR1s%ETak!GFdam@h^# z)@rS0t$wXH+Irf)+G6c;?H29p+V6F6oj{!|o%K3xI`?%6x;DB|x`n#ibhIR?(H}Q3Gzd138Ei2)WAMz7W9Vy`X}HnwgyEn!VS)>mv$8&{hQn>w4zwy3R}t;BYlZQm5)6pty=DfLrs+A-|>>;~;Q z_F?uV_HFjh9n2gO9o9Q^JA86v({H5aB!kjoO6 zc9$1ZZKsN-Zl8L~mE{`ly3)1N^`o1+o7}D0ZPeY&J;i;i`%NyJ8_8Y6J?}yE@b_5a zam?eLr<8@mESk|3$_SkmS{wQ>%qC18))9_|&j{ZT zes8AvOzF(F2#DZEY>2oYX&IRp`F#{ADl)1r>QS^)ba8a|EY_^#S^HO&t^Rgqwv=MZThqqEWH8 zxJo>d=ABlR_Bh=;eM9Tw|Ih34~oTE|= zX_mAr*D$vzw@+p(E0Yc6dFE}(8oqt`+R{gE3x4zjX+Sb3_cYE^= zgB=w+-tUy`ytONMS8KgRef4hA?t0j zufM;t32jm~jUGrkaOInTZ`zyfns>EuS}G30LFK_G-==(f<51|K&cocp&EJ`SxAh3? zNO>#LI=^+SEu(FqJ)ynt=!~PC9bO$rzPJB=?=j6w@a-(u02P7 zaQ)#(uUl{HW%tYNS3ItC^iAtK(eKlL`f9+{bJzISE?u8_z3;~C8@FyI-5j_jy7l;W z_U#vU3hqqYU3!mrul&B+{ptt$59)uk{;_4iZQ%G|z+lhASr6|H35TBkl>gI*;nGLU zN7W-nBaM%pA0HbH8olyl&XeJ%vZoWz%6?Y=dFykl=imL}`%BMQ{Mhgd`HRoLu6e2R za__6DuR6yg#~-}Tc|Gx_{H@O0eebyMy5GmWADJlpK>kqk(fVV@r_fLLKIeS?{4e)} z^ZO;zpECde03c&XQcVB=dL;k=fP(-4`Tqa_faw4Lbua(`>RI+y?e7jKeZ#YO-C z3l&L3K~#9!?43`D99bR5zrX70KbbVyOp?ha*@R>Rx`wFi$&(6u@u(nPyr|$|!TTO$ z*_HL;VG+cGpa*qx5rS7i1YJQ8HV0V=uC7@&*~5l7F_~;KlbK9+*U!WBn9ijCO;=TS zRlUy#ijb+Us^5F>_xrxzdsX$y++6@w!pz*=jhcYU_%uQd08nfqssI20p#}f|gc<+< zp#}f|gc<+<5NZGbgc<+<5NZGbgc<+<5NZGbK&Sx#szN;LfoA_-^TzsHJg`OmzX1SL z373>e>JDt)-yZ)c<297xl*jK1bW74fNo`372E-Zwpi1nD^robBNgI;31_ZlU8TGD6 zzx1WgEx&c?XFoV`V&xn4dVHLA3?idov;@KXZl}{-y>;vMZ@>Mm@4fN%U#_l6>I|82 zNS$4qna{k;shLHR4qm_Zhd0kXfBt3lK9>AZh{BMEeS6OtiZ~XjoODPqK?Ivp?K$1J z{^8G`|I}Ar>1Wr;Q;xJ?p>9Yz+Sz*lAFRH!AnvD98q;uZ=;P2{wSb~@&JDTFUWaEGz?6+Tv&+Cux+*Nz&fR^G&XO16J zyWLhC#~(}j^`mRoe%QQtapoz9v>A1z^iPeH-I?^lIbm**DUjKkZW=_BfUtXT~PVRE%ttjCkG^?yhd)I`-@--T3!E zb+X%4%U#;umNgpRmGu2I=MU{!XUBFZLC4|+umS&^fuz>Z=5|NDUT;^yC23`m8Fg04 z^gMfi3tRwzw#Me1yC_eR%->9mXkZ{q0!SYtuKXr}dCeQ>M1e$Oc72^oj6?x71kQY zatJlcEquA3c)%kEwTNgqhJjFe|IXvX6(lYNf~P(JV86njrenxb{J}zbUg_hK}I11M*FR(;vt(g<}Z z*{TO@@H1+bwKK7>%0vwS!@#dfJaO{%}BKW+6;5aN`D> z@n6WRE_3(e$lWb~iboKDP8bI3GJC(1$qc-uW+_7>b%e7{&9Jzn8G9bzB&4GTD7jEW*d0ZhjscMegt~%5e*!z~(E`BS z#V5}@b#d`coGF+I>|*=0VRvTN;HL1x+j5BZWw>%)MnX;gN+1Q19ow9)G0tBG_bqgN zWPEVGWFpiV>2y^EjXkfh?z_8M)2joEC^L*jyv#iOnm}lEhf2}#_9~pJ=vk40z07J05>OSjpu*K$RzwP&6ZYClMfWR)oXFcV0 ztwi-)=vc4PE94B-fuw*$WdUW%U;C<(Q9A)hJ5XNQs;YGqRiq+WLbE!Zl9wpBEbz9% zpGSJ3XSy&`RN;#B3OcM490(8@YIub#%IbM}%;Q=K+t(^qCII}mFhZUFW}@XN*hT7O z$Gshf6PKg2q)xDF?i6k6qpB4@Y~5fBDA39H$byS%S1J563NRRfK!>nL2$}n5;XlRY z?s9h!P7=i#5%dV}0Wg>A%r5!ex357Ui zAzi-Pqd0;anMm!DjZx<9Lu9f zc`0EUq3%iA>~25o&%p#E)CAdL>eq6PHb#6f6W#5Hs<#fyYPBbYI>YojjZk+at*_m@ zx_0FF^0FseWRyVtLRiikHFf9KH61wkl4`Yj{~n?j>SkhB()#=FzJ2+{FMsFdgUg?n z8PgvC5XjKaO&e=B^wI4#wa&F=aV(d#zS)tvOG#1)p>|1Ium1SYum8xre)MqbtF>Bm zjONR9=+86@Ktbu+k{&cKs&o45YBgFii&XDD(tq!+t9EYX34u1V;g9i6)gidqtOuLf z?l3i$)RNSeboBR^FJJ9$ZtBF!iX`dQdPg60>pFGnxH<`q3v=)6VE%P8%QZ^TW)?+? z<5-PmOH1vx4jgQ&*=(s6$7Eko<#r`) zNO~k`<6OIa=YG3=v{A2X<;W48Khw~$O;glv>rlI;s2KwXv@0ZILF1)hUZ0hdDh8}(LiQ**Dt<{_Q)6ECEz5Ym>on8@xi)^mg;zwOo zrw$gi7+Ef{xzw!d)N)&2{PZckaO9*8)@rInk-XQ__S%{rUc2^|c9!dyc}^kDx*~4f zx%1k|_ugwX+`suuk{s_PiCoe#NuO;_a3lQF}CNK#GG0ZGqDIx6W<|Nn8{=&F2OX4?Iu-Zk|x|Mv;k8+?G> z#~kA$_9r9$=0mPA?i@bmm|=E|vUS`sgV);{GsLzr|N5AHd(V+}Uo^s|!Oi=>8+9I= zaLq}!?6o7>QwKI7!yT9TPTDtV@uN}kU?qtAy?&eYw~nMuNe?8gNxH9{DdCb!({*9q#98j_Z@bHlOT7wSmUEt2me8g=jdmJj)RmICZU&OPp$KEl3X4XqL9^${ZO z6OPe7#84B?w^z_7btFDzJx=qxarNUP&NWF?ru}r=G(+=of;P=svpWmeU{X9o1p-*pFPRG~``z)h#O>18oaUS>4jKLZ*U+5Lu!Sk^o_Z5E4Meg@_7P6crJiNL9pw)e1;Xm069{HJUZAPk55R%$-RIA z6-eL&AQ0xu!e<4=008gy@A0LT~suv4>S3ILP<0Bm`DLLvaF4FK%)Nj?Pt*r}7;7Xa9z9H|HZjR63e zC`Tj$K)V27Re@400>HumpsYY5E(E}?0f1SyGDiY{y#)Yvj#!WnKwtoXnL;eg03bL5 z07D)V%>y7z1E4U{zu>7~aD})?0RX_umCct+(lZpemCzb@^6=o|A>zVpu|i=NDG+7} zl4`aK{0#b-!z=TL9Wt0BGO&T{GJWpjryhdijfaIQ&2!o}p04JRKYg3k&Tf zVxhe-O!X z{f;To;xw^bEES6JSc$k$B2CA6xl)ltA<32E66t?3@gJ7`36pmX0IY^jz)rRYwaaY4 ze(nJRiw;=Qb^t(r^DT@T3y}a2XEZW-_W%Hszxj_qD**t_m!#tW0KDiJT&R>6OvVTR z07RgHDzHHZ48atvzz&?j9lXF70$~P3Knx_nJP<+#`N z#-MZ2bTkiLfR>_b(HgWKJ%F~Nr_oF3b#wrIijHG|(J>BYjM-sajE6;FiC7vY#};Gd zST$CUHDeuEH+B^pz@B062qXfFfD`NpUW5?BY=V%GM_5c)L#QR}BeW8_2v-S%gfYS= zB9o|3v?Y2H`NVi)In3rTB8+ej^> zQ=~r95NVuDChL%G$=>7$vVg20myx%S50Foi`^m%Pw-h?Xh~i8Mq9jtJloCocWk2Nv zrJpiFnV_ms&8eQ$2&#xWpIS+6pmtC%Q-`S&GF4Q#^mhymh7E(qNMa}%YZ-ePrx>>xFPTiH1=E+A$W$=bG8>s^ zm=Bn5Rah$aDtr}@$`X}2l~$F0mFKEdRdZE8)p@E5RI61Ft6o-prbbn>P~)iy)E2AN zsU20jsWz_8Qg>31P|s0cqrPALg8E|(vWA65poU1JRAaZs8I2(p#xiB`SVGovRs-uS zYnV-9TeA7=Om+qP8+I>yOjAR1s%ETak!GFdam@h^# z)@rS0t$wXH+Irf)+G6c;?H29p+V6F6oj{!|o%K3xI`?%6x;DB|x`n#ibhIR?(H}Q3Gzd138Ei2)WAMz7W9Vy`X}HnwgyEn!VS)>mv$8&{hQn>w4zwy3R}t;BYlZQm5)6pty=DfLrs+A-|>>;~;Q z_F?uV_HFjh9n2gO9o9Q^JA86v({H5aB!kjoO6 zc9$1ZZKsN-Zl8L~mE{`ly3)1N^`o1+o7}D0ZPeY&J;i;i`%NyJ8_8Y6J?}yE@b_5a zam?eLr<8@mESk|3$_SkmS{wQ>%qC18))9_|&j{ZT zes8AvOzF(F2#DZEY>2oYX&IRp`F#{ADl)1r>QS^)ba8a|EY_^#S^HO&t^Rgqwv=MZThqqEWH8 zxJo>d=ABlR_Bh=;eM9Tw|Ih34~oTE|= zX_mAr*D$vzw@+p(E0Yc6dFE}(8oqt`+R{gE3x4zjX+Sb3_cYE^= zgB=w+-tUy`ytONMS8KgRef4hA?t0j zufM;t32jm~jUGrkaOInTZ`zyfns>EuS}G30LFK_G-==(f<51|K&cocp&EJ`SxAh3? zNO>#LI=^+SEu(FqJ)ynt=!~PC9bO$rzPJB=?=j6w@a-(u02P7 zaQ)#(uUl{HW%tYNS3ItC^iAtK(eKlL`f9+{bJzISE?u8_z3;~C8@FyI-5j_jy7l;W z_U#vU3hqqYU3!mrul&B+{ptt$59)uk{;_4iZQ%G|z+lhASr6|H35TBkl>gI*;nGLU zN7W-nBaM%pA0HbH8olyl&XeJ%vZoWz%6?Y=dFykl=imL}`%BMQ{Mhgd`HRoLu6e2R za__6DuR6yg#~-}Tc|Gx_{H@O0eebyMy5GmWADJlpK>kqk(fVV@r_fLLKIeS?{4e)} z^ZO;zpECde03c&XQcVB=dL;k=fP(-4`Tqa_faw4Lbua(`>RI+y?e7jKeZ#YO-C z076MbK~#9!?9?#|z%UF$(XZV9&Ob{VGG>ZPvA4Ggfs6{EN*(|(*zP)#Seu~HI6#uM nnW3iJ`4v9&6C2fd$36!D|0xs@o3d`+00000NkvXXu0mjfC&^}j literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/list_green_down.9.png b/app/src/main/res/drawable-hdpi/list_green_down.9.png new file mode 100644 index 0000000000000000000000000000000000000000..64a39d9516f8c9df1034a1830235a64db4c663ea GIT binary patch literal 4488 zcmX|DbyyV4*BweqI;BHQL;+ExQ&!rg1*Ab@0b%J{K?OldVu1xjK*|LqB$iZ~rIlP- zV8NwR`s4k*@ALgJ_uhHVbLQN0=Z~3py4q?qR2)`P@C+>>XX~0Pvm2(DN}) zIAE2VIk2NMR2thXL%O^I0)l9YPI{AU`VYYBH9ez3+nWd~LuM9+bcjJ~=r9!|BVs=5 zMva4FWW=*512f5W-pTxLLH-+SYsaI<_4suBNuOUo9fE=JTKrPB6L<6p z?P@>}vp{A^`RJFhKOD%~0N5n)^9_c7l|LaWbpyn}eOTlwW5?Wi7)JM+5#WmlvjU8G zYN9wO=oHcKWCoq=;HzGREfq)vz{M|6NdOelfYse6a%5nvFkzAnjAe5bQh;b8ka|Py zDzQQxurzoD6((-}0kY5v0wSc%B}535Dls);L<1S{jxmm-Q?LYxR3+gaz$ZxzlzEtX zN%%BLvhEEv%@$g?zo~%`fo5z{FH&PjoVg}xfWv2db9SD8{)bDMk`>!cdV9(RfpjEF zkO_h((d@en0LS6r_cKZPIQ-JW+>$-sWn;H3`^Txbd=48e<;LvwK)W!5vQ0sq4&KgkmXp3G0Woif~9RMgaKLe`%e?){FE zI~SjGn~e(Izd+A${+r-snnG%Eb57XlODk9J5@-w_OR6O5dVm)^>v$7#8gp}S{(hO6 zFiYf?@w*yb0j&xG-vHDvvzrwpvT3$c0HBif>eg39^2^_u z(ap5!-?{6X*@&$!sVH2&+AKq_bZG&>MfHh2S@DW~v(y;rx344|Sqy1&^p)R5C28=p zjApM0?rfJV*)xBz*T1DCRqUi-vf`JDV6cuE6X>I0ON}8Fu!7wGfXL-riC}&z(AMdZ zOI)br6mJd@+`i+%{3zN?;V2H*$tMc6)#+t^;1wyNWm5dk)Bg(MXqCc(+BoydW3i&f0 zw)$F2mBkr9MqgX!=i$#3dVZaj$sz%AmA31{f;JVuP@LEk>L<<+9OO=}Uas5_y<@uO zH9{P$YkGmA9D(LT##hJD#p!%F?rK@6W|nG;nAfDtz6#AvWK@^1lV2qL{83CPHLK`p zZ(-&yilPXqkI$aKvb=Tg>V+3F-SP4|CV{`B13=gC^IyfG@xVr+!P)>#Ms3HfD zL(a?OEBKYLU7yP|Z)w6hAl5goIA004lFwd!q>>Dif|Kw?`Uai`^22^b)cRix=)OER49a_KP@(&~kn$Jnm*GNggSx^8 zC4EpIXsmAkQ;VENi__2}8=CUBZysm8h2-elRJUJ==4Wjev)eLO8u2hBAqYFCXjz+< zAFgV8lO1z<-wn{zQ}!&fN888SXDq$!C8BLFo85dgp03`<-$&CIaEIiM{GGB9r(*l! z;Npi9{u7N8)@vSXtZRgc4KMc$g$&`0Jt>&fffps_0p=;@4F>1c|3~hp4Z&}Pa<6-j zc4cZ%Z4b7av&Z&lV`O8H_u;+!6c6IAxQI&HZ1%+2EIX$-)(mdGo-1I$zQDw{zQ`GT zl5@T0+IqOdZwX&EIeWAlmo@tSwB4k$jFq*c7%sOpw{4;EW^bZ%nmuN)@+Z8fr&D+m zJ%;XDjd?Vj?wo1WI9`uCiGK50HN8ze>OoXT@y*YGqPtSEiboFGFYBg>3(%Peat9_w; z*nU5E4;Lf%h%{U}&;#z(PeJ@`xbf$#`=!Q|MXA!aMK@O`Z`&Z)}7 z+X3z50(G%jMb#i`ifUf@hW}OFLNdacu2QbOTWB3?m3{ZylNj%kCZ4{Krk@PADOsG% zu4P+V>BDCF$e2i&eNnu2m%P)rUDe2y2*ICSW)#7H_evNvgquQ7qo&B_|x<*~* z!%~J}(!S)Bbdd7Vi?=$Dz1qbob)dKX;;($D72MG>R2i8@_m96Ezw;PZ zd3*F;^^IyB``fn@XcqjIVBMSv;oS!df`^_vI2M;Tnu9r&&=Or*R?WKww|!07O?_)1 z4UlKQ#Aoc!{u~NYhq4AX#C_GR`C2hn<7=`tE6}7`$0``5$L1p zyQ2$A{(gO2vovp{Z803U=LegZm{zauUL!yVxdd1Afk{)TdV`bV@W9(mnqtna=tWKo znEEvQlfTnmOmAgxcQ1*AmBgB9PZb)s{pmr@zJErDIo9yB_)B%;__c|VrYWC*9ojH% z7U}7Y#MSz5w|$MA8&re#T!+>}r(!v*IWbL3!BaJAK00lgu>qe0$oEw@2u^S}m&wwm zrgBOc^g%QaM9O^;g>aidt)=;VbANV=_J`u)_vX1J`dgy{cYpbArWhonU!%vcI$8w!&HBP8nqgb{?RxQ~5 zbPiH#>PE0Tz^)m|l)!hj2-1TaKSPe3nuk3{|Bi~7fAnkEXkX>5cD**mRU?Gi`|G{G z#^yt{t~qJ$AM0Cs(l~MYhx~}{Pe|oinO!q%_OE5LWq*qa-3BdXc;;E+`OomVA+;X0 zVZq0O(Xko4yqq)~4coST33K`7`Aq%Y!G`C41kW${nbY}Wjeg^ku}$j3sQ#uBzrr1l zjW30zQXPUFy!Cy4vRip4#eKM-jhYS2Oh*H6>WveHGu@rRBb$!=0i6RmeBjy1-GkRV z$3jCN#V>xFd^QlM76AT203gBuI6S||D*$-i1K^J(08%Lcu(^G(XnPF6rEgDE6!m>4 zR;T)7xQ1ECXFYK?%&LkAMf+EA2#1JmV#xRomGD?uKgj}Fd1PWZ#5;bQ7_G}1aYuM8 zMgA>iN*Q@To(^ltgW|k8!gP_e`1=0AC&jg*^`f*tE5~0v35H%>J)p$srjU5W7?V5A z$Lc~wBXz$!0@DF0Gl5PIiQNr?Ev8RwR02~|^Yv(N>G->}w)`EDCQ>+$i>j+Yz8rG% zgufyl(EB)j`i7gbS(FJ5D5QX-entPFoo#CcFIc`VZ5tIyi^#dQ4Cvv&y#QmThF|3Z zx1|2r@+|{}0U|^e$?US%(SGQv$DR~G?;hD(vv7l3n8?r)(`{mf{&Hu?v>X0ArAptESwUa$--eFl=CiPnJ2ZNM(ixq(P>I;(>Ef0|jCNrG5-JQ56O zl)G+(T1^S&0^0P^13n--kDfd5p`_g*V6;|-y1iSdWzJHqgPi>%w_q{b2 z6;R`b578pG~$&4{%>>y)Lo#n!ln$`f( z|9eIdBm#adI<`6Y{9%%lbr>3W0k7Uf2)fd9uf2&F}^>4$&6F?YNSmP=GV z;t++)K+-9c7AXD$f=p%Zk{pehi!u1r?uT4Rn3=0qtD9XE9qjPb_*!N-fEx;U1XsZy zso`N1Uzu@NaOVxFPvVgi|y z$7fN;r43u%oXD-QI%0)~)$`tgr!B|>!FeRVr|Z>ap5UYL>*s;zI=q2!{Gv~GjWH2| zXLwRRK#^Xq=CnLL^8BngW)B9udcNIcr+w%cMIh{{k?d(0rlAs>Yi_2A4nT(8(S81J!@VzZC9TQ*6)ja!mu$>;=ou1gt(Zoov#7Nlq9tJ83bKyugO-KxE$W z;bK3-OL>8H)z*g$TTKyvg~YFWS!l0e%o<)ITOMbqw#K$p8Vsf0 zhkkM5b4T2#UQVs*vpr|I_4HD?bLe%>eRCK>TXwU65?OYsN#aHOh`Dsbs;>;|TTlEN z^^X_6r->x*CxT@66c$yT*o>^IdEj&c^WhPa+}n%RecjqpE~`#0JT%z4NeYZdmUNSk zZ!gT&`Br-G3N})qoAReqCTB)w6W5`v=?}?kGCW^=khr)BtJ=dg5+dfQ zjC5A?;bEu_&%nH&@itH9oGjFf6?2*?C@3&%FG^UIP3uxz_^DvIQiaZ`Yddj4H!DrSdx1u=n_b%2 zT31;*VQedY^tF{1#fGW2hOVn=pY_5XD#<}B3wCUBU*_R{y~r)4%DgW%4yqGie^-{Z*DRUoY1CZU8HSHXYn4)laTPk{ z8A{9k;FFdw-QYD|Qk)^OV!!A8(+XD+@8bAAKhubl;EjG%JvtQ45pb(5tppcj;L%$@ z;X3+g>Wk=*NNKRhC`ROCYiWLq;b{M2dcSSzj-SY9;kOSRMPK9AK7FVgo?9;8modgJ zH;k0DC#&21DQGIh$yTQYeF_8o(}nyS3{-l=1$I}R2sb8@Va~E~;}5GW8>l_Ko~?=r zBzxjeV$}`Lj&n@SJqB`cxjuHIf@YrW&SX>+bEu*Z8XaC1cDP2rw5vNSM!$PzUdiGH zQOhC>q=1}z!Du=eiRyW0r9chTM8w@z#lp`?064!0rG>Z;os&iJ7mpoyqN=S@qGTER Ee?o7YP5=M^ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/list_green_middle.9.png b/app/src/main/res/drawable-hdpi/list_green_middle.9.png new file mode 100644 index 0000000000000000000000000000000000000000..897325a4f62defad10d745c527cf39b6acf2c833 GIT binary patch literal 3179 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 Ofr_H$lTvxh*Z%`qbR0MU literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/list_green_up.9.png b/app/src/main/res/drawable-hdpi/list_green_up.9.png new file mode 100644 index 0000000000000000000000000000000000000000..141f9e1678a0b34a5343614e38d3fda52ed47cfb GIT binary patch literal 3351 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/list_red_down.9.png b/app/src/main/res/drawable-hdpi/list_red_down.9.png new file mode 100644 index 0000000000000000000000000000000000000000..42243095f3c249d529d55523ff1aba2823ff61f9 GIT binary patch literal 4307 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/list_red_up.9.png b/app/src/main/res/drawable-hdpi/list_red_up.9.png new file mode 100644 index 0000000000000000000000000000000000000000..46b475797d7636ee9ac20ffdab422853612ea876 GIT binary patch literal 3277 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 UYW(2rmj(cxy9Rfv)$POo2Q$;Ge*gdg literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/list_white_up.9.png b/app/src/main/res/drawable-hdpi/list_white_up.9.png new file mode 100644 index 0000000000000000000000000000000000000000..e23cd5cb09c271ccd56716f3d61d11892f70151a GIT binary patch literal 3220 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/list_yellow_middle.9.png b/app/src/main/res/drawable-hdpi/list_yellow_middle.9.png new file mode 100644 index 0000000000000000000000000000000000000000..b6549b2945d0d92247366118297633d69031cbe9 GIT binary patch literal 3150 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 XsAQrV2j1U2(LhB}^J$5^Meu(B#^L)R literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/list_yellow_up.9.png b/app/src/main/res/drawable-hdpi/list_yellow_up.9.png new file mode 100644 index 0000000000000000000000000000000000000000..4ae791cecb795142f46ceb5fb2352ac0af82ee2a GIT binary patch literal 3335 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/menu_delete.png b/app/src/main/res/drawable-hdpi/menu_delete.png new file mode 100644 index 0000000000000000000000000000000000000000..ccdfc4ba5468ad2a5c865f2e2c9bd1f210c69b67 GIT binary patch literal 3426 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/new_note_normal.png b/app/src/main/res/drawable-hdpi/new_note_normal.png new file mode 100644 index 0000000000000000000000000000000000000000..e24e0d142cb9685ba598a2f838c6697d8a1f12b5 GIT binary patch literal 89221 zcmYIu19+U>*7n4<(^!qsph+4#X>2yO8{4*R+qTo#wx;34PW#XMo^!tcx@KlS+WXma z@3j~1wIUSdB~cIw5di=IinNrNG5`Rv2R^QZhXwz-7-Tbm8w3X_Ehhi~3G1IP1RygT z9{@mnws*3ycOa7%6(w`{X>Vp}V+sJcZ{(=BX(m143hX|aqN$6lT{ooJ z1OO-~tKrAdwF=P_0fxcom_j2V;fU(kI2hSdYQurch*CM>2l=$^=E9NT+EHq{+*hPq zWi39Qpv%j*)wgb7Ht>DMV;0RH1Cu7RQ^gbV=w86u2R05Wb!fG7#pG!&UER6grM z-(H2jLrA+61fYL1WjgKq0y}nl${eBF?e*RP`N5z~gNPv>9l9C95k+=d7A2Mx5K49i z82})BnIHJWEf^0xIodxl1KNP@M+*N~U)xg%kl*b7>5hhk2B6E&f;RMzk5`}^#vtll z`m8H-02}H6i`^GJ_DzI*ZNxdxmnaYJcOjD80>yDYVj@H&q)Td}f*#hxD1pE1`}TWL zzK`I$e>Od@0gjnM88!VyK_8BWcCNL`vA{`a5jMLgAmyL25WkODy7>c+23-A1TpeoDF>LReqU}#Q$G-r+)x13p$h%-t#B=qHvPU=5Rg%*nhUM~A>TWu zXhNg}0J=HH7mp_ZAgS*qPKW^lFr8L>2mo~d#@8)R#*-a|2LQzK1L*68;gAQgtNT&2 z2Z+1-@gNOh#e|Tl`uWgBV2}KX5DV~Ag$Y#qdDoy@>Y)hpF*5hjn+MpqQGk1xx&h}7 zc(4Zexr6xKp$O2zL@2Aj2z8(ns??v)ALU)w4Nty zCgJyQEi9Y={@cYF;1d~Z>_5+jY8Jh2s2d$7ZV;hKNHd0Oe5}c-9>-}+tohXy=Tm>K zAqbudGRhz80{%xZ`k+l&lccCne4US z;Azmk8!}2LO3;{;5iNl=ffqp;ej5QxhHNR!Vp_(yD(mW(PZ{RvXzBK9n)HwK-Z%*p zm?^v|>M6b{z)Dp$CpE!kk4hxfDmApKAL>4(5^7C~hZP7*xK+y)#A;m?T(vXGZpv|r zvr76!z4{-4uf`~ip&=6ap;ASv#%-enG32QL!C2Pr^^}XG`?KOy28AD za%J(7RS|WnG^;jCFv~e{oQ6OhZP>f!Si&&oJ zZ0lUZ-u3Ry_n43p@$3raYHN&o1w!7E|*l~0VbPp`7qFK+kA{!bkG7Aq#8X6= z#4F#Nzj^<3cA0Xuap*oT-sc#q7_JyP)iD2LUf`5-$B9?^J$@21%{2{A#kMT6%r4J! zGUb@?s&k=b@u4WID{HG}-F9hvihsnX>P?P0>(ej2A%2kX{q>XPf#cL+PFYsj;9WeB z<%jDJtsieaBnnO0G`TCRw&R<_I(t2nUIx4Z{HCunr%(c;0+4y0d11Y!y%f9ry_CKy zz8Su7@40W^UMD}|p8NJaZgFqqVGJM!AdVq=0tf?|psb-tp);UM;5cDoV7g#gkOgo= zkP%R{NPi~T_v77udNF3-GH1-3$C-f7!O{No$~r|OOR|Cy8#)WWi|%V*`XYNe)e0ZJ zCutMjPHIVzf%oErO-KKwlKD)jS;g7W`H69*`bg`|yeIZ1t|GeQ+oo0PPgnD5D;s4S zu371iJ1O;UVj|76m4$3<@b+MJ5>e+S2btazV?BwhsWfaTQW`aQhvhzjF%C(B9xUwwe4DLGkI_~XKJyP0B?7L=v z&R!^y0&%^2;_DUL>zmfv-L-D^DEh>^a4Dly@Z6Z$^prbI+%2ycd?qa>8&f|N4>Xn4 zZmm4FZex{$7D`G)83HvpQYw;vP1@DoYj+sq7^ax0fvnP&b=3Xn@ly1w9jeP~pX(*s zPYyKX^_RULJZv{Mc4XQnF3+XTi_h(G~~S0nQE=xye;4=di2ck)0DzYmxRqO`qbHX;=A20>83D}8|PKx1@|ZpI=6DRx7n)e>uW@?RpyEz zk>YhY&hoe4$hypQYjMz~M;#PC9{9Xl>g{!?_`6_cXlrPCH^Z;(0sdUdgJFTU&!w8F z$Tpw9pa=9jx+sVE2eD*t+h1Q0+o7?`7-yVDZhj6e|IN!$VA5fkNm*`=ydeKl#+JvE z?0bf_o|0aVx#(=JAfEG;Y@7bmue%*!oZfY}!#%~5(I$1<_Zt3Meo0@4kA0~+9s6_B zr^!nVzFOydx$|%Hphdq|tNvxD)#p`ay*!T|(CEddHanVaqIT-ehiBKvOFTEkE7>hQ z&p7wG_uh?D&+O`CtJmYwr|yTE(s5-WVr4xdEn!6eID9ZnYJ+KrO&Ap%Y=Fr+CVU3j zQT*{<*buHCPO#{^gFk|Ch?f>7Y>A~v>akL0%3ERUCYtt;0bw$XGRb~o_Y zZu-mCKS#VAXV*WwaWSlB8pqmu#|*x3lL8ODv*Yd@1$+xoU4Ur+JDVAMd3KJvSpCQc z-vXcf`#A!oJNC8xx4>xwkmc;ZJz*ZbyR~ol z|8)5-Up>8x=l*9J9sRj+3aE5d8ng>;yoYyqKL4HWf#)CQTy^(lEW{fXU*BH*|6&3j zcy|^n5~P9%;)hwK2TW*_l{o(&Cd{=!&{f3twQ-0#l==XLmQYFZ66LnjpSzbp-v0ux z{ao|NU!rjO&8PbMHjl}mfbnniH!U9pN1u8XW~BRDef8c|m@SgOUJ-q_qzwD~yfp*qylo&zS`dc|jq}aQSLrjP* zC!|#$UK&88w|~)Nt_L1weSF(>t9x>;uY27ZGpPvU=&Gb0HoaMv6xSej8^8|4J32LFclC<5aLb_nLoQi3LMY zhG>T%j3=nD0F!5*`M<6}->-GL{y9!)xFcA+YYN)Bq#xZQx(_qvonf?UxSLch2}l
>ZVDwitaE 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�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%0A_#trX&}SgOfFQUml39{ezh%g|F$RNFw0xo} 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/new_note_pressed.png b/app/src/main/res/drawable-hdpi/new_note_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..c7489362c9809fff748149c72fd927b27c9871d3 GIT binary patch literal 90126 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 BQtE)ii5P5i05$W&ov$xCC9R2x(7B)oHDR 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 QxT6g~Q&mr;TFLJHe@{=aV*mgE literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/notification.png b/app/src/main/res/drawable-hdpi/notification.png new file mode 100644 index 0000000000000000000000000000000000000000..b13ab4a9232b11f23a3eda4c4c80e543e6802c7d GIT binary patch literal 3107 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 Y0NbM{;)bwtBLDyZ07*qoM6N<$f~1kZuK)l5 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/selected.png b/app/src/main/res/drawable-hdpi/selected.png new file mode 100644 index 0000000000000000000000000000000000000000..b889bef091f6f8bb3630195a02f908db4b0b17de GIT binary patch literal 4959 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/title_alert.png b/app/src/main/res/drawable-hdpi/title_alert.png new file mode 100644 index 0000000000000000000000000000000000000000..544ee9ca6c956b580dce42e5bc1bf3192b64face GIT binary patch literal 3696 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/widget_2x_blue.png b/app/src/main/res/drawable-hdpi/widget_2x_blue.png new file mode 100644 index 0000000000000000000000000000000000000000..a1707f4232b0715116a668fe3792d376ba2a1fe6 GIT binary patch literal 1946 zcmeIz>pv5U9|!QsWz}&fx8=B;D23Issr@9fxsIb!b3Z0claX8&5+i0|tmWj|Tu!Fk zj%$7{A(wG7j>}9$Ih;)<_v_|z>g7E7{SUtf@9+2Z`aJkN_&)iP9UZKsj;b96002@p z)`)B0_V{;)CBDs>xEV750En?cm^(f2oF8xVQ@E-aGZoCRId@82S-WAr=%z*+V?)(_ z8{jIGG;Hw4(JoGA)+CsJoKUsfGQA-7RNr=r*Q*ZE*=T^5EZ6GfRaC2czQ5%Kp7S>Z z8yec_F$Nsbwq%H<`(K*V+nIY&R`2$sT%zcW51wUiqB$J2T#y?tV7-0-76{YmfBR6l z2h9>OZ4rj-@i(lT#u;|Z^^)~*TJfVvglH>?BWHnz)~)~Pq8zCMaTQ&;hxj7BSj&>i z2xGItVd9XzCkE%U4i$NXRvykvLf!;9<0l@TglX@#ccNudV@X!$xuOpE68Oo` zk@2Sg7*K;ADM+8F}D|7l#y2JW7eR z_d)V?9&ZI2Z}d40)Q&e#WZ9NfDjgyF+tK+Y6@FOPOS|~gWTjl~nU{Y9f<0s6r|~sn z-YHrzkP8aD6~s&L%O;ra%*L?@i*KuMC``EpehRmUfah+oJXk$;2G4g| z_;zt;Z6~jM?i^sLb0~?){MkW6TYGUgBswtSV)M>I_9BTMz0uh%c+&Zck{IM<5?@;V zERtAcpjLpwZcYG6wfwu_j5|&~sJW$5vQ$t(m+JIu8eFETz8DR1 zfnmt#+2<+ruk>tDtzDE85-*uLL>p?+o$mRfFVeok>$ggk2A8R}a*% zkM^dX?=C;sQLM~s)`;GnE&;dvNF>puZm?E8EMOzOY!qXAA8pJ4NDsll*^a2K$%#$j zE^9A~)s}fI-YsK-LuhQ?OBhZLO1Q231{jyUp}3%5)1floG;-#BnB4>E+aL7mJSXQe zc@I&#wD*NmOEdHh`f)mnl3?WvXzhO;85Lp#2c=l@ey!qMN{}J>wrCvBadx-{G`kNS z+sE&3O}^QD;oPj0s5k0(`(ik&x29p`zZK__B%U_Hf2bIBtp2pxiPQPWm$R1ra-BTs zuafV$gk5PKi;uaHf1`%W0bB2rVs7UM-7$uuguE%mHjAZMe@;p>&Jq1&Sv1#wz zj6qSPT{+M~K}}bRr^9Zd&j`YdOt?Z}ICh%2^jkgAK2yFa$=|m$Gj0*?X(7-tY$cSlwg|qrc zG;-Fy;!|i@!So-=bFDp>E~nmHk%&;RSi5&;_-f{>MC(td!o*&=gBxHJQeQ1~ zC62X!xAjys|_Tsfj?a+wunHJX->@AX)Zq(^~WV+x+(-?!; zw@zp@)q-%c#CSTrZQSkSO~2W!hUQvWil+0`u;o6}@rwNi#(0y5 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/widget_2x_green.png b/app/src/main/res/drawable-hdpi/widget_2x_green.png new file mode 100644 index 0000000000000000000000000000000000000000..f86886c142f3650dbd9b06818fd3dd1b9c0696d5 GIT binary patch literal 1954 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/widget_2x_white.png b/app/src/main/res/drawable-hdpi/widget_2x_white.png new file mode 100644 index 0000000000000000000000000000000000000000..5f0619a37a8e5ea3ddfaa84b3ef0f925e54ac887 GIT binary patch literal 1901 zcmeIz|34Fm9|!Qwv_uZO(>~eCmvZtw-woB$Y~*VZB}SVlM!sJ85*uRe40o;%GOmwG zWxj+@TRTLyw!W}cL(W>v*9y~UMvUvu{d9lB{qTIfACLDB?;l>jysrlMVKmkC)Bym1 zrk5w`_}3}=lN$JIPUKA>0f4RcUZ}%Cm$0*<$Mr(wcSMO@iV$~L>X&aN&i_rOd~=Xw zgk9J!75&KAWuid0swG6}QL^;mD&g091eK=oln|Dm(*Y5%DUCmF=S%9m*XH_JX?Xkp z)Pm%rrmwv@rqRYyfwHSBXCfs+AP=>&F}=N(rB`r=>^zVzt)ntBnXAjoa#6Y9)%N>2 zYo8^&51B#JhcLW8QQvCe-GVdPNYG2g<)ZL`AxC@+0(*PkE4_fJo5?j1apkc4vt}a; z3F^O`v>`>-6`8*b@zdS;Lap~Lr(UQ0C~-O#;} zZKS@zR>w%`$8{&z!#1Fl@YiPjO=x#39Zsk1d5o}auF+dwd~X>CVltZeN2>c+ZWl^; z_*q3J&>n#IFJFk8ojIG_pt9VB2epuf0DnUgh(ntU9Fc@g+AsshO=L}N*d`8`thosX z;(#}`0CAwd{Cn;n-M#b`9G|}E8r%lM=;XI&E@80vm^lZus^r%^9mEaKw?+$qFoaBv zR(eT4!42R(#yNuI7^>z%e8@e~-@13i%@4QRg$FhM_V(tAeXJ-GNntkl%TJt8q|)yk zRGjm@BeX%;7gi{+G|qDeYs6j47EV=>#S5YaErlCO52JAmF$@bwK}Gc|`qB@pOO1kq z8>usVamj@pj}rC8kL3R=I{%<*rm9oAii+wq5zRHtFXH0ag9L|mI-M>$Ygm6Taez`A zKymjlv~J-T1?cpvqdg4A`+q4{z1ivFir9VV_3$}ox8B99-ZU52>PIda2Qs)RADCN9 zcJu32KEEqbtd3+U=ZI+@wblj9S}5A&Mtr&}-`<$_f)N$7)4K9h6+*%-ZL2d(#}wS+ zCibxWsMcLy#)ux*uAWpVE;1P->6wA3>kh3`@80o?6Q2wZpN9Xg^#RKFsd^KKzzUIG)(&J%DDv>Kd0tefM$i`s9n88o%H7MoU&cq&g~R zo(WBQj1{Bn>_gmf*}as?4SD%UMAn8_3xs_zs@vgYCwOaTVw-MQZDNFr(4JiEaEf^i zxBc&bjBFoQ*tGbxCbA!JwnpV9H$2LXzBk2j6;`B-U3W;ZLhoYd>dvbg`Pelhz~`}C z*CPx!{^ewaUo&&yv}7nl$M`4V%*tq9UP3dI1=#{qN~QcSR4H{Sy@|WDbkQlaF&Jb{ z{()XC&YBl%ru4*bnH2c_>?DKN;#Wyh9%*b81@N(;nw@W4mmUOo5J>F6U2P9N&^i*;)CX2i-FN3$i`A;$P z(|B)Icca#b*|gC%9;8F?EZ`I>ok&3~+FdOT0S{&I50>RFAp$t|0E-p@}Pm{sEA_VKHS86 zc|$yMBEg;z{=OnPM~iwtRh3OsYPJlQ56@0>&SKg? z->}_gHK?U{A>CkqF&07Av7+^VId31UPxK{t|0p^tCRIFFIqIZ7&}?3idsi2_+eIBi zvQamUk9ud(R{m7v(occRG!TJ!UEanfk~yT8ngz*KAbo7eew=m1B(NK+wvDqTEqKquS=N z(~;R%jn`v-!qc#YKOZ!#pQPUBK%h{XuY4niHdo?ZR(po<^^F3&Jp52i?vc5F00d`# ATL1t6 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/widget_2x_yellow.png b/app/src/main/res/drawable-hdpi/widget_2x_yellow.png new file mode 100644 index 0000000000000000000000000000000000000000..12d1c2ba7b40158b5115b7bbc6ce8b6d07b67893 GIT binary patch literal 1978 zcmeIz**n{b8VB%SL{e*IP+QU^s+^X=DNT!7Y71JiCAAePN+%)cRJ6n#%R$uEmX<-w zFmq6nP@+|Wl%j}GQd?swrNmOT6(@2!<2g6yZ#Wm9_kEu4#rNX9c~hM+Xjv&WDF6Uu z?d_~xzwhxsNkG5P*~D2305}wHZ+!`S$9HM`?_q-$Dsj`RbbI6x{Ui5PJfA%u^y}<0 z53sr-gB8kFBl90>n)Ovw9#)bzE+~&aws8Alt@Q)nSTk)*gw`-qWs4j~r-!zbA*;(G zX?@(jJ~xNX0cXrN94+0mC{*?$@m~j#AMw+ZF@djZ_E}Gp_>h>Or z2~B&Ix#≥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 Sc&UT$0l?JA(y;10D(YW+)3Aa7 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/widget_4x_green.png b/app/src/main/res/drawable-hdpi/widget_4x_green.png new file mode 100644 index 0000000000000000000000000000000000000000..fa8b4526faa77582794ac18bca85e8b5d7ebf512 GIT binary patch literal 4192 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/widget_4x_yellow.png b/app/src/main/res/drawable-hdpi/widget_4x_yellow.png new file mode 100644 index 0000000000000000000000000000000000000000..d7c5fa48dfa1fa767ce494df9555e59565b251f9 GIT binary patch literal 4199 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 sIa#C5eWch*7HE)@p6Z1vu~7Db^~Amb#kVB + + + + + + + diff --git a/app/src/main/res/layout/account_dialog_title.xml b/app/src/main/res/layout/account_dialog_title.xml new file mode 100644 index 0000000..7717112 --- /dev/null +++ b/app/src/main/res/layout/account_dialog_title.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/add_account_text.xml b/app/src/main/res/layout/add_account_text.xml new file mode 100644 index 0000000..c799178 --- /dev/null +++ b/app/src/main/res/layout/add_account_text.xml @@ -0,0 +1,32 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/datetime_picker.xml b/app/src/main/res/layout/datetime_picker.xml new file mode 100644 index 0000000..f10d592 --- /dev/null +++ b/app/src/main/res/layout/datetime_picker.xml @@ -0,0 +1,56 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_edit_text.xml b/app/src/main/res/layout/dialog_edit_text.xml new file mode 100644 index 0000000..361b39a --- /dev/null +++ b/app/src/main/res/layout/dialog_edit_text.xml @@ -0,0 +1,23 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/folder_list_item.xml b/app/src/main/res/layout/folder_list_item.xml new file mode 100644 index 0000000..77e8148 --- /dev/null +++ b/app/src/main/res/layout/folder_list_item.xml @@ -0,0 +1,29 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/note_edit.xml b/app/src/main/res/layout/note_edit.xml new file mode 100644 index 0000000..3f0c279 --- /dev/null +++ b/app/src/main/res/layout/note_edit.xml @@ -0,0 +1,410 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/note_edit_list_item.xml b/app/src/main/res/layout/note_edit_list_item.xml new file mode 100644 index 0000000..a885f9c --- /dev/null +++ b/app/src/main/res/layout/note_edit_list_item.xml @@ -0,0 +1,39 @@ + + + + + + + + + + diff --git a/app/src/main/res/layout/note_item.xml b/app/src/main/res/layout/note_item.xml new file mode 100644 index 0000000..d541f6a --- /dev/null +++ b/app/src/main/res/layout/note_item.xml @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/note_list.xml b/app/src/main/res/layout/note_list.xml new file mode 100644 index 0000000..b62a661 --- /dev/null +++ b/app/src/main/res/layout/note_list.xml @@ -0,0 +1,69 @@ + + + + + + + + + + + + + +